Вы находитесь на странице: 1из 19

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение


высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Институт кибернетики
Направление – 09.03.01 Информатика и вычислительная техника, 230700 Прикладная
информатика, 231000 Программная инженерия
Кафедра Оптимизации систем управления

Методические указания к выполнению курсовой работы по дисциплине Базы данных на


тему ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Разработчик доцент каф. ОСУ, к.т.н., доцент И.Л.Чудинов

Томск 2015
1. Теоретическая часть. Проектирование баз данных.

1.1. В рамках настоящей курсовой работы требуется разработать структуру базы


данных (БД) для заданного описания фрагмента определенной предметной области
(образование, здравоохранение, торговля, спорт, транспорт).
Процесс проектирования БД осуществляется в три этапа:
- разработка концептуальной модели (логической структуры данных) предметной
области;
- выбор СУБД;
- проектирование физической структуры БД для выбранной СУБД.
Разработка концептуальной модели (логической структуры данных) предметной
области это наиболее сложный, слабо формализуемый процесс. Поэтому работы этого
этапа и составляют основное содержание курсовой работы.
Учитывая, что лабораторные работы дисциплины выполняются в среде SQL ORACLE,
поэтому проектирование физической структуры реализуется в этой же среде (а значит и
СУБД предполагается выбранной).

1.2. Наиболее распространенными в настоящее время являются так называемые


реляционные БД к числу которых относятся и БД СУБД ORACLE. Это БД,
удовлетворяющие следующим требованиям реляционной модели данных (РМД).

1.2.1. Элементами БД являются ассоциации атрибутов (характеристик описания


объектов предметной области), называемые:
- в теории РМД – отношениями,
- в процессе проектирования концептуальной (логической) структуры - сущностями,
- в процессе физической реализации – таблицами.
Описание конкретного объекта в сущности называется экземпляром сущности
(соответственно кортеж отношения, строка таблицы)
Учитывая, специфику структуры настоящих методических материалов (теоретическая
часть, методическая часть проектирования и физическая реализация БД) в
соответствующей части будем использовать термины отношение, сущность и таблица.

1.2.2. В любом отношении реляционной БД должен быть определен ключ – один


или несколько атрибутов, значения которых идентифицируют любой кортеж отношения
(экземпляр сущности, строку таблицы). Следствие этого определения – в отношении не
может быть двух одинаковых кортежей.

1.2.3. Любое отношение должно быть нормализовано. Для целей нашего задания
достаточно добиться нормализации каждого отношения последовательно первой, второй,
третьей нормальной форме.
Требования нормализации базируются на понятии функциональной зависимости
атрибутов между собой и прежде всего не ключевых атрибутов от атрибутов ключа
(ключевых атрибутов). Атрибут А функционально зависит от атрибута В (или от
комбинации ключевых атрибутов В,С,…), если для конкретного значения атрибута В
(комбинации В,С,..) значение атрибута А имеет единственное значение в любом кортеже
отношения.
Отношение удовлетворяет первой нормальной форме (1НФ), если среди его атрибутов
нет атрибутов с множественными значениями (атрибутов, которые могут иметь
несколько значений в одном кортеже отношения, т.е. для одного значения комбинации
атрибутов ключа) и составных атрибутов.
Отношение удовлетворяет 2НФ, если среди его не ключевых атрибутов не атрибутов
функционально зависимых от части ключа.
Отношение удовлетворяет 3НФ, если среди его не ключевых атрибутов нет атрибутов
функционально зависимых от других не ключевых атрибутов или, как еще говорят, нет не
ключевых атрибутов транзитивно функционально зависимых от ключа.

1.2.4. Для построения полной концептуальной модели БД (логической структуры)


необходимо определить типы связи между сущностями, полученными в результате
нормализации, что важно:
- для администратора БД (связь 1:1 - возможно соединение таблиц в БД, связь М:М -
надо преобразовать к двум связям 1:М, связь 1:М – возможно следует установить
ограничение ссылочной целостности);
- для прикладных программистов - какие таблицы, и каким образом можно связать для
обработки.
Проектируя структуру данных, мы полагаем, что отношения имеют связь,
если имеет смысл однозначно соотнести кортежи одного отношения с
кортежами другого. Помятуя о том, что любой кортеж однозначно
идентифицируется ключом, учитывая предыдущий вывод о семантической силе
ключей, можно утверждать, что основное множество интересующих
пользователей связей (а значит и концептуальной модели) определяется
ключами отношения.

Действительно связь 1 : 1 однозначна, а значит возможна лишь посредством


ключевых атрибутов. Подтверждением этого тезиса служат примеры,
приведенные ранее для иллюстрации особенностей связей 1:1

Аналогично связь 1 : М возможна лишь когда в качестве атрибутов связи


одного из отношений участвует ключ этого отношения, опять же по причине
однозначности ссылки на 1, а в другом отношении это может быть либо
подмножество ключа, либо не ключевой атрибут.

И лишь связь N : M ,в виду ее не традиционности, возможна либо за счет


совпадения подмножеств атрибутов ключей, либо совпадения не ключевых
атрибутов.

Тогда, определив корректно ключи (имена и домены соответствующих


атрибутов), можно достаточно формально установить и возможность и тип
связи между отношениями.
Принимая во внимание важное значение имен атрибутов для перехода от
предметной области к структуре данных следует обратить внимание на
проблему идентификации атрибутов и связанную с этим проблему синонимии и
омонимии. Надо видимо согласиться с тем, что наиболее точно эти проблемы
может решить специалист предметной области. Однако, при наличии сотен и
даже тысяч атрибутов, справиться с задачей можно лишь с использованием
человеко-машинных процедур. Основываясь на опыте идентификации
атрибутов, можно сделать утверждение о том, что семантика атрибута, в
основном, определяется множеством его возможных значений (доменом).

Таким образом можно утверждать, что атрибут является универсальным


средством отображения связи. Здесь нельзя не заметить, что реляционная
модель также определяет связь между отношениями через атрибуты разных
отношений, определенных на одном и том же домене, не объясняя однако
почему это так и не уточняя, что значит «определены на одном и том же
домене».

Вопрос о степени соответствия доменов важен не только для определения


связи между отношениями, но и для анализа состава атрибутов в
концептуальной модели, для решения проблемы синонимии и омонимии при
идентификации атрибутов

Если определены множества возможных значений (домены) атрибутов, то тип связи


между двумя отношениями можно формально определить в соответствии со следующими
условиями:
- если ключи двух отношений имеют одинаковое число атрибутов и каждый атрибут
ключа одного отношения имеет в ключе второго отношения соответствующий атрибут,
определенный на одном и том же домене (по крайней мере домены пересекаются), то связь
между этими отношениями типа 1:1;
- если ключи двух отношений имеют различное число атрибутов, а каждый атрибут
ключа отношения с меньшим числом атрибутов имеет в ключе второго отношения атрибут,
определенный на одном и том же домене (по крайней мере домены пересекаются), то связь
между этими отношениями типа 1:М (на стороне 1 отношение с меньшим числом
атрибутов);
- если ключ одного отношения состоит из одного атрибута, определенный на одном и
том же домене (по крайней мере домены пересекаются), что и не ключевой атрибут второго
отношения, то связь между этими отношениями типа 1:М (на стороне 1 отношение с
ключевым атрибутом);
- если подмножество атрибутов ключа одного отношения имеет в ключе второго
отношение равное по числу атрибутов подмножество, причем соответствующие атрибуты
этих подмножеств определены на одном и том же домене (по крайней мере домены
пересекаются), то связь между этими отношениями типа М:М;
- если не ключевой атрибут одного отношения имеет в другом отношении не ключевой
атрибут или атрибут части ключа, определенный на одном и том же домене (по крайней
мере домены пересекаются), то связь между отношениями типа М:М.

1.3. Формирование фрагмента физической структуры БД и определение средств его


наполнения осуществляется с использованием SQL в рамках лабораторных работ.

2. Содержание работ

2.1. Проектирование БД осуществляется на основе интеграции информационных


потребностей потенциальных пользователей, которые отражены:
- в словесных описаниях объектов предметной области (интересуемые атрибуты);
- в документах действующего документооборота предметной области (нормативные
документы, анкеты, акты, протоколы, счета, …), информацию которых целесообразно
иметь в БД (получать из БД)
- в информационных запросах по информации БД;
- в отчетах, справках и т.п. регламентных документах;
- в файлах информационных систем, действующих в предметной области.
2.2. Каждый студент получает индивидуальное задание, содержащее фрагменты
описания некоторой предметной области, соответствующие видам информационных
потребностей приведенным в п.1.6.

2.3. По каждому фрагменту студент должен составить сущность путем прямому


перечисления атрибутов, которые можно выявить из описания фрагмента.

2.4. Каждая сущность подвергается типовому анализу – определение ключевых


атрибутов, анализ на соблюдение 1, 2, 3НФ, приведение к нормальности в соответствии с
правилами нормализации соответствующей формы.

2.5. Определяется возможность свертки полученных сущностей и если таковая


возможность существует, осуществляется её свертка.
Возможность свертки определяется следующим образом. В названиях
подмножества атрибутов сущностей, составленных по формам документов могут быть
выделены элементы, которые составляют классификатор (множество возможных значений
некоторого атрибута), который и может стать основанием свертки первичной сущности в
более компактную. Это может быть перечень районов, или типов объектов, или периодов
времени и т.п.

Например, перечень курсов в ниже приведенном примере составляет классификатор курсов.

Институт Всего В том числе


студентов в На 1-м На 2-м ... На 5-м
институте курсе курсе курсе

В результате свертки получим

Институт Всего студентов в Номер курса Число студентов


институте на курсе

2.6. Определение дополнительных сущностей с первичными атрибутами.


Среди атрибутов выявленных сущностей необходимо определить вторичные атрибуты
– атрибуты, значения которых могут быть определены (как правило – вычислены) на
основе значений других, первичных атрибутов – атрибутов, которые фиксируются, а не
определяются по значениям других атрибутов.
Если этих первичных атрибутов нет в других исходных сущностях задания,
необходимо придумать дополнительную первичную сущность с такими первичными
атрибутами и включить её в состав анализируемых сущностей.
Например, если для сущности с ключевым атрибутом Номер группы есть атрибут
Количество студентов, получивших балл более чем хорошо, то это вторичный атрибут,
который может быть определен на основе первичных (фиксируемых) атрибутов, например,
такой дополнительной сущности, как экзаменационная ведомость:
Дисциплина, семестр, дата проведения экзамена, № зачетной книжки, полученный
балл (оценка).
Если соответствующие первичные атрибуты уже есть в ранее полученных сущностях,
то об этом делается соответствующее заключение, сущности соединяются (с исключением
дублируемых атрибутов). Если же таких сущностей нет, для них составляется упомянутая
выше дополнительная сущность.

2.7. Сущности, полученные в результате окончательного анализа нумеруются


сквозной нумерацией С1, С2, ….

2.8. Определение типа связей между сущностями


Определение типа связей между всеми полученными в результате сущностями
осуществляется на основе сопоставления доменов классификационных атрибутов и прежде
всего атрибутов ключа (см. п.1.4.). Для этого все множество полученных сущностей
разбивается на классы (подмножества) с одинаковым числом атрибутов в классе.
Для выявленных связей типа 1:1 проводится сопоставление сущностей внутри каждого
класса. При совпадении ключей принимается решение о целесообразности соединения
таких сущностей, с исключением дублируемых атрибутов.
Для выявленных связей 1:М проводится сопоставление сущностей с разным числом
атрибутов в ключе (различных классов) и не ключевых атрибутов 1-го класса с ключами
сущностей этого же, 1-го класса. Принимается решение об исключении связей, которые
могут быть наследованы от «старших» сущностей.
Для выявленных связей М:М анализируются ключи сущностей различных классов (на
совпадение подмножеств атрибутов ключей) и не ключевых атрибутов 1-го класса с
атрибутами ключей сущностей других классов, определяется ассоциативная связующая
сущность и принимается решение о целесообразности её включения в КИМПО.

2.9. Формирование схемы КИМПО осуществляется либо «вручную» (как приведено в


примере приложения), либо с помощью средств автоматизации проектирования, например,
Erwin, важно, чтобы были приведены все результирующие сущности и отражены связи
типа 1:М и 1:1.

2.10. Формирование фрагмента физической структуры БД и определение средств


его наполнения (несколько строк таблицы) осуществляется с использованием SQL в рамках
лабораторных работ.

2.11. Пример выполнения курсовой работы и оформление результатов приведен в


приложении1

3. Регламент выполнения курсовой работы представлен в отдельном документе.

Приложение1

Предметная область Производство изделий


1. Производители изделий
Основу базы данных составляют общие сведения о промышленных предприятиях города,
такие как: ИНН и название предприятия, отрасль народного хозяйства, к которой
относится предприятие, форма собственности предприятия, ФИО и возраст директора
предприятия, названия предприятий поставщиков исходных материалов для предприятия.

2. Конечные продукты производства (производимые изделия)


ИНН предприятия, год регистрации предприятия, код и название изделий (по
федеральному классификатору), выпускаемых предприятием, суммарная стоимость всех
изделий выпущенных предприятием за весь период деятельности.

3. База данных должна обеспечивать формирование запросов для получения


следующего документа
СВЕДЕНИЯ
О предприятиях _____________формы собственности
(форма собственности)

Название № телефона Руководящие ФИО работника


предприяти приемной должности на должности
я

4. Дополнительное задание Найти форму документа Счет-фактура на продажу изделий,


составить соответствующую сущность и провести её анализ и нормализацию

5. В базе данных должна содержаться информация, содержащаяся в следующем


регламентном отчете и информация на основе которой будет формироваться этот документ

ОТЧЕТ
о численности персонала на ___________________за 20__г
(название предприятия)

Должность Всего работников по В том числе работников на конец месяца


работнико должности на конец года Январь Февраль ... Декабрь
в

6. В базе данных должна быть учтена информация следующего файла действующей


ИС предметной области

NAZVANIE_PREDPRIIATIA Название предприятия


ADRES_ PREDPRIIATIA Адрес предприятия
NAZVANIE_ZDANIA Название зданий предприятия
FIO_KOMENDANTA_ZDANIA ФИО коменданта здания
OBRAZOVANIE_ KOMENDANTA Образование коменданта здания

1Фрагмент Производители изделий


Основу базы данных составляют общие сведения о промышленных предприятиях города,
такие как: ИНН и название предприятия, отрасль народного хозяйства, к которой
относится предприятие, форма собственности предприятия, ФИО и возраст директора
предприятия, названия предприятий поставщиков исходных материалов для предприятия.

Исходную сущность составляем прямым перечислением атрибутов

ПРЕДПРИЯТИЯ
1. ИНН предприятия
2. Название предприятия
3. Отрасль НХ
4. Форма собственности
5. ФИО директора
6. Возраст директора
7. Названия поставщиков

Ключом сущности является атрибут ИНН предприятия так как все остальные
атрибуты функционально зависят (значения однозначны), кроме атрибута Названия
поставщиков, который имеет множественное значение (у предприятия м.б. много
поставщиков), но нет атрибутов от него зависимых. Значит здесь нарушение 1НФ.
Нормализуем по правилам 1НФ.

ПОСТАВЩИКИ
1. ИНН предприятия
2. Названия поставщиков

ПРЕДПРИЯТИЯ1
1. ИНН предприятия
2. Название предприятия
3. Отрасль НХ
4. Форма собственности
5. ФИО директора
6. Возраст директора

Атрибут возраст директора – вторичный атрибут, который м.б. рассчитан на основе


первичного – Дата рождения. Оставлять его нет смысла, т.к. он должен корректироваться
каждый год. Заменяем.

Сущности удовлетворяют 3НФ. В результате получаем.

ПРЕДПРИЯТИЯ С1
1. ИНН предприятия
2. Название предприятия
3. Отрасль НХ
4. Форма собственности
5. ФИО директора
6. Дата рождения директора

ПОСТАВЩИКИ С2
1. ИНН предприятия
2. Названия поставщиков

2 Фрагмент Конечные продукты производства (производимые изделия)


ИНН предприятия, год регистрации предприятия, код и название изделий (по
федеральному классификатору), выпускаемых предприятием, суммарная стоимость всех
изделий выпущенных предприятием за весь период деятельности.

Исходную сущность составляем прямым перечислением атрибутов

ИЗДЕЛИЯ
1. ИНН предприятия
2. Название изделия
3. Код изделия
4. Стоимость всех изделий, выпущенных предприятием

Код изделия и Название изделия равноценные с точки зрения уникальности имен


атрибуты, название изделия отражает смысл и обязательно используется в документах,
поэтому в ключе сущности будем использовать его. Ключом сущности являются атрибуты
ИНН предприятия и Название изделия потому, что атрибут Стоимость всех изделий
зависит от комбинации этих двух атрибутов
В сущности нет нарушения 1НФ, но есть нарушение 2НФ – Код изделия зависит
только от атрибута Название изделия

В результате нормализации получаем

ИЗДЕЛИЯ ПРЕДПРИЯТИЯ С4
1. ИНН предприятия
2. Название изделия
3. Стоимость всех изделий, выпущенных предприятием

ИЗДЕЛИЯ С5
1. Название изделия
2. Код изделия

Сущности удовлетворяют 3НФ

3 Фрагмент База данных должна обеспечивать формирование запросов для получения


следующего документа

СВЕДЕНИЯ
О предприятиях _____________формы собственности
(форма собственности)

Название № телефона Руководящие ФИО работника


предприяти приемной должности на должности
я

Исходную сущность составляем прямым перечислением атрибутов документа

РУКОВОДСТВО-ПРЕДПРИЯТИЯ
1. Название предприятия
2. Форма собственности
3. № телефона приемной
4. Руководящие должности
5. ФИО руководящего работника

Ключом сущности являются атрибуты Название предприятия и Руководящие


должности потому, что атрибут ФИО руководящего работника связан с должностью
(например, Главный бухгалтер) на определенном предприятии.
Аналогично принятому в анализе фрагмента1 положению, полагаем, что нет
предприятий руководящие работники которых имеют одинаковые ФИО)

Нарушения 1НФ нет, есть нарушение 2НФ – атрибуты Форма собственности и


№ телефона приемной зависят только от Название предприятия.
Нормализуем.

ПРЕДПРИЯТИЯ1 С6
1. Название предприятия
2. Форма собственности
3. № телефона приемной

РУКОВОДСТВО С7
1. Название предприятия
2. Руководящие должности
3. ФИО руководящего работника

Сущности удовлетворяют 3НФ

4 Фрагмент Дополнительное задание. Найти форму документа Счет-фактура на


продажу изделий, составить соответствующую сущность и провести её анализ и
нормализацию

Составляем исходную сущность прямым перечислением атрибутов.


СЧЕТ-ФАКТУРА
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца
4. Адрес продавца
5. ИНН продавца
6. Название грузоотправителя
7. Адрес грузоотправителя
8. Название грузополучателя
9. Адрес грузополучателя
10. Тип платежно-расчетного документа (счет или платежное поручение)
11. Номер платежно-расчетного поручения
12. Дата платежно-расчетного поручения
13. Название покупателя
14. Адрес покупателя
15. ИНН покупателя
16. Наименование валюты
17. Наименование товаров (изделий) далее используем Название изделий
18. Единица измерения изделия
19. Количество
20. Цена за единицу
21. Стоимость изделий
22. В том числе акция
23. Налоговая ставка
24. Стоимость с учетом налога
25. Страна производителя
26. Номер таможенной декларации
27. Итого к оплате
28. ФИО руководителя предприятия
29. ФИО главного бухгалтера
30. ФИО индивидуального предпринимателя

Ключевые атрибуты (Номер счет-фактуры и Дата счет-фактуры) выбраны с учетом


того, что у продавца не может быть сквозной нумерации счет-фактур за все годы
существования предприятия, полагаем, что сквозная нумерация счет-фактур
осуществляется в течение года (так оно обычно и бывает), а атрибут Название продавца в
связи с тем, что у разных продавцов свои номера счет-фактур. И лишь для комбинации
значений атрибутов 1, 2, 3 атрибуты 4-16 и 27-30 функционально зависимы (имеют
однозначные значения).
Атрибут Наименование товаров (изделий ) в составе ключа, потому, что в одной
счет-фактуре м.б. несколько изделий, но это не множественный атрибут, потому что
атрибуты 18-26 зависят и от этого атрибута.
В этой сущности нет нарушения 1НФ по множественному атрибуту, а для составных
атрибутов 4, 7, 9, 12, 14, 26, 28,29,30 нет необходимости разбивать на составные части.
Есть два нарушение 2НФ – атрибуты 5-16, 27-30 функционально зависят от 1, 2,3,
атрибуты 4,5 зависят от атрибута 3 и атрибут 18 от атрибута 17.
В результате нормализации по 2НФ получаем

СЧЕТ-ФАКТУРА
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца (предприятия)
4. Адрес продавца
5. ИНН продавца
6. Название грузоотправителя
7. Адрес грузоотправителя
8. Название грузополучателя
9. Адрес грузополучателя
10. Тип платежно-расчетного документа (счет или платежное поручение)
11. Номер платежно-расчетного поручения
12. Дата платежно-расчетного поручения
13. Название покупателя
14. Адрес покупателя
15. ИНН покупателя
16. Наименование валюты
17. Итого к оплате
18. ФИО руководителя предприятия
19. ФИО главного бухгалтера
20. ФИО индивидуального предпринимателя

ПРОДАВЕЦ
1. Название продавца (предприятия)
2. Адрес продавца
3. ИНН продавца

ИЗДЕЛИЯ
1. Название изделия
2. Единица измерения изделия

ИЗДЕЛИЯ-СЧЕТ-ФАКТУРЫ
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца
4. Название изделий
5. Единица измерения изделия
6. Количество
7. Цена за единицу
8. Стоимость изделий
9. В том числе акция
10. Налоговая ставка
11. Стоимость с учетом налога
12. Страна производителя
13. Номер таможенной декларации
Есть нарушения 3НФ есть в сущности СЧЕТ_ФАКТУРА: атрибут 7 зависит от атрибута
6, атрибут 9 от атрибута 8, атрибуты 13,14 от атрибута 15 .

В результате нормализации получаем следующие итоговые сущности

СЧЕТ_ФАКТУРА С8
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца (предприятия)
4. Название грузоотправителя
5. Название грузополучателя
6. Тип платежно-расчетного документа (счет или платежное поручение)
7. Номер платежно-расчетного поручения
8. Дата платежно-расчетного поручения
9. ИНН покупателя
10. Наименование валюты
11. Итого к оплате
12. ФИО руководителя предприятия
13. ФИО главного бухгалтера
14. ФИО индивидуального предпринимателя

ГРУЗООТПРАВИТЕЛЬ С9
1. Название грузоотправителя
2. Адрес грузоотправителя

ГРУЗОПОЛУЧАТЕЛЬ С10
1. Название грузополучателя
2. Адрес грузополучателя

ПОКУПАТЕЛЬ С11
1. ИНН покупателя
2. Название покупателя
3. Адрес покупателя

ПРОДАВЕЦ-ПРЕДПРИЯТИЕ С12
1. Название продавца (предприятия)
2. Адрес продавца
3. ИНН продавца

ИЗДЕЛИЯ С13
1. Название изделий
2. Единица измерения изделия

ИЗДЕЛИЯ-СЧЕТ-ФАКТУРЫ С14
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца (предприятия)
4. Наименование товаров (изделий)
5. Количество
6. Цена за единицу
7. Стоимость изделий
8. В том числе акция
9. Налоговая ставка
10. Стоимость с учетом налога
11. Страна производителя
12. Номер таможенной декларации

5. В базе данных должна содержаться информация, содержащаяся в следующем


регламентном отчете и информация, на основе которой будет формироваться этот документ
ОТЧЕТ
о численности персонала на ___________________за 20__г
(название предприятия)

Должность Всего работников по В том числе работников на конец месяца


работнико должности на конец года Январь Февраль ... Декабрь
в

Составляем исходную сущность прямым перечислением атрибутов

РАБОТНИКИ
1. Название предприятия
2. Год учета
3. Должность работников
4. Всего работников по должности на конец года
5. Число работников по должности на конец января
6. Число работников по должности на конец февраля
7-15. . .
16 Число работников по должности на конец декабря

Имеем наличие классификатора месяцев в названиях атрибутов, осуществляем свертку

РАБОТНИКИ
1. Название предприятия
2. Год учета
3. Должность работников
4. Всего работников по должности на конец года
5. Месяц учета
6. Число работников по должности на конец месяца

Нарушений 1НФ нет. Есть нарушение 2НФ атрибут 5 зависит от части ключа

В результате нормализации получаем

РАБОТНИКИ ПО ДОЛЖНОСТИ ПО ГОДАМ С15


1. Название предприятия
2. Год учета
3. Должность работников
4. Всего работников по должности на конец года

РАБОТНИКИ ПО ДОЛЖНОСТИ ПО МЕСЯЦАМ С16


1. Название предприятия
2. Год учета
3. Должность работников
4. Месяц учета
5. Число работников по должности на конец месяца

Число работников по годам и месяцам – вторичные атрибуты. Вводим сущность с


первичными атрибутами (с фиксируемыми значениями)
ПРИКАЗЫ ПРИЕМ_УВОЛЬНЕНИЕ С17
1. Название предприятия
2. Номер приказа
3. Дата приказа
4. ФИО работника
5. Должность работника
6. Дата приема на работу
7. Дата увольнения с работы

Ключ определяем с учетом того, что приказ на прием или увольнения составляется на
одного работника и работник несколько раз мог быть принят и уволен с одного и того же
предприятия
В полученной сущности нет нарушения 1,2,3НФ
Сущности С5 и С16 оставляем в БД чтобы в случае необходимости в будущем не
повторять формирование отчета, тем более, что такой расчет может быть невозможен.

6. В базе данных должна быть учтена информация следующего файла действующей


ИС предметной области

NAZVANIE_PREDPRIIATIA Название предприятия


ADRES_ PREDPRIIATIA Адрес предприятия
NAZVANIE_ZDANIA Название зданий предприятия
FIO_KOMENDANTA_ZDANIA ФИО коменданта здания
OBRAZOVANIE_ KOMENDANTA Образование коменданта здания

Исходную сущность составляем прямым перечислением атрибутов

ЗДАНИЯ
1. Название предприятия
2. Адрес предприятия
3. Название зданий предприятия
4. ФИО коменданта здания
5. Образование коменданта здания

Нарушения 1НФ нет. Есть нарушение 2НФ - атрибут Адрес предприятия зависит от
атрибута Название предприятия.
В результате нормализации получаем

АДРЕС С18
1. Название предприятия
2. Адрес предприятия

ЗДАНИЯ С19
1. Название предприятия
2. Название зданий предприятия
3. ФИО коменданта здания
4. Образование коменданта здания

Аналогично принятому в анализе фрагмента1 и фрагмента3 положению, полагаем, что


нет предприятий названия зданий которых и ФИО комендантов совпадают

Сущности удовлетворяют 3НФ


7. Фрагмент Определение связей между сущностями

7.1. Сущности 1й группы (1 атрибут в ключе ) С1, С3, С5, С6, С9, С10, С11,
С12, С13, С18

С1 (ИНН), С6, С12, С18 имеют совпадающие ключи. Учитывая, что ИНН предприятия и
Название предприятия альтернативные ключи, соединяем сущности в одну
ПРЕДПРИЯТИЕ с ключом Название предприятия и исключая дублирование атрибутов.
Аналогично сущности С5 и С13 имеют совпадающие ключи – соединяем в С5

ПРЕДПРИЯТИЕ С1
1. ИНН предприятия (из С1 и С12)
2. Название предприятия (из С1)
3. Отрасль НХ (из С1)
4. Форма собственности (из С1 и С6)
5. ФИО директора (из С1)
6. № телефона приемной (из С6)
7. Адрес предприятия (из С12 и С18)

ДИРЕКТОР С3
1. ФИО директора
2. Возраст директора

ИЗДЕЛИЯ С5
1. Название изделия
2. Код изделия
3. Ед. измер. изделия

ГРУЗООТПРАВИТЕЛЬ С9
1. Название грузоотправителя
2. Адрес грузоотправителя

ГРУЗОПОЛУЧАТЕЛЬ С10
1. Название грузополучателя
2. Адрес грузополучателя

ПОКУПАТЕЛЬ С11
1. ИНН покупателя
2. Название покупателя
3. Адрес покупателя

7.2. Сущности 2й группы (2 атрибута в ключе) С2, С4, С7

ПОСТАВЩИКИ С2
1. ИНН предприятия
2. Названия поставщиков

ИЗДЕЛИЯ ПРЕДПРИЯТИЯ С4
1. ИНН предприятия
2. Код изделия
3. Стоимость всех изделий, выпущенных предприятием

РУКОВОДСТВО С7
1. Название предприятия
2. Руководящие должности
3. ФИО руководящего работника

7.3. Сущности 3й группы (3 атрибута в ключе) С8, С15, С17,

СЧЕТ_ФАКТУРА С8
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца (предприятия)
4. Название грузоотправителя
5. Название грузополучателя
6. Тип платежно-расчетного документа (счет или платежное поручение)
7. Номер платежно-расчетного поручения
8. Дата платежно-расчетного поручения
9. ИНН покупателя
10. Наименование валюты
11. Итого к оплате
12. ФИО руководителя предприятия
13. ФИО главного бухгалтера
14. ФИО индивидуального предпринимателя

РАБОТНИКИ ПО ДОЛЖНОСТИ ПО ГОДАМ С15


1. Название предприятия
2. Год учета
3. Должность работников
4. Всего работников по должности на конец года

ПРИКАЗЫ ПРИЕМ_УВОЛЬНЕНИЕ С17


1. Название предприятия
2. Номер приказа
3. Дата приказа
4. ФИО работника
5. Должность работника
6. Дата приема на работу
7. Дата увольнения с работы

Сущности 4й группы (4 атрибута в ключе) С14, С16,

ИЗДЕЛИЯ-СЧЕТ-ФАКТУРЫ С14
1. Номер счет-фактуры
2. Дата счет- фактуры
3. Название продавца (предприятия)
4. Наименование товаров (изделий)
5. Количество
6. Цена за единицу
7. Стоимость изделий
8. В том числе акция
9. Налоговая ставка
10. Стоимость с учетом налога
11. Страна производителя
12. Номер таможенной декларации

РАБОТНИКИ ПО ДОЛЖНОСТИ ПО МЕСЯЦАМ С16


1. Название предприятия
2. Год учета
3. Должность работников
4. Месяц учета
5. Число работников по должности на конец месяца

В сущностях 2,3,4 групп нет сущностей с совпадающими ключами

7.4. Связи 1:М между сущностями различных групп

С1-С2, С1-С4, С5-С4, С3-С1, С1-С7, С1-С8, С9-С8, С11-С8 С10-С8, С8-С14, С1-
С15, С15-С16, С1-С17, С1-С19
8. Фрагмент Структура БД концептуальная (логическая)

С2 С19 С7
1 ИНН предприятия 1 Название предприятия 1 Название предприятия
2. Названия поставщиков 2. Название здания 2. Руковод. Должности
3., 4. 3.

С15 С1 С17
1 Название предприятия 1. ИНН предприятия (К) 1. Название предприятия
2. Год учета 2. Название предприятия 2.Ноиер приказа
3. Должность работника 3., 4.,5., 6. 3. Дата приказа
4. 4. Дата приема на работу
5., 6., 7

С16
С4 С8
1. Название предприятия
1 ИНН предприятия 1 Номер счет-фактуры
2. Год учета
2. Название изделия 2. Дата счет-фактуры
3. Должность работника
3. 3. Название предприятия
4. Месяц учета
5. 4. Название изделия
5 - 12

С5 С14 С10
1 Название изделия 1. Номер счет-фактуры 1 . Наз. Грузополучателя
2. 2. Дата счет-фактуры 2
3. 3. Название предприятия
4. Нпзв. грузоотправителя
5. Назв. грузополучателя
С9 8. ИНН покупателя С11
1 Назв. грузоотправителя 6., 7., 9-14 1 ИНН покупателя
2. 2., 3.