1.3 Нормализация.
Приведение к 1НФ.
1 требование (требование простой структуры). Каждую сущность с атрибутами представил в виде множества строк. Объединённых ячеек нет.
2 требование (отсутствие одинаковых по смыслу полей). Одинаковых по смыслу полей нет. При рассмотрении каждой таблицы в отдельности мы видим, что информация, содержащаяся в каждом из столбцов, различна. Например, очевидно, что один человек может иметь только один №Паспорта.
3 требование (отсутствие составных полей). В сущности “Человек” было разбито составное поле “Образование”( разбито на поля: название учебного заведения, адрес учебного заведения, город учебного заведения, начало учебы, окончание учебы, специальность).В сущности “Работа” было разбито поле “Предприятие” ( разбито на поля: Название предприятия, адрес предприятия, номер телефона, город предприятия).Составных полей нет.
4 требование (в табл. не должно быть одинаковых записей). В таблице нет одинаковых записей.
С учётом данных требований получаем таблицы вида, которые представлены на рисунке 2.
Человек Работа
ФИО Дата рождения Место рождения Адрес проживания Домашний телефон Почтовый индекс Название предприятия № паспорта Название учебного заведения Адрес учебного заведения Город учебного заведения Начало учебы Окончание учебы Специальность
|
Личный номер работника Название Предприятия Адрес предприятия Номер телефона Город предприятия Должность Дата поступления Дата увольнения |
Рисунок 2 “Приведение к 1 НФ”
Приведение ко 2 НФ.
Определяем у каждой сущности первичный ключ:
1шаг. В качестве PK для сущности человек выберем “№ паспорта”( сам по себе номер паспорта уникален и у каждого человека он свой ) и “ Название учебного заведения“ От № паспорта зависит ФИО, дата рождения, место рождения, адрес проживания, домашний телефон, почтовый индекс. От названия учебного заведения зависит адрес учебного заведения, город учебного заведения.
2шаг. В соответствии с выделенными смысловыми зависимостями разобьем таблицу на 3 части:
Анкета Учебное заведение
№ паспорта Название учебного заведения
|
Начало учебы Окончание учебы Специальность |
№ паспорта
|
ФИО Дата рождения Место рождения Адрес проживания Домашний телефон Почтовый индекс
|
Название учебного заведения
|
Адрес учебного заведения Город учебного заведения
|
3шаг. Для удобства введем семантически не значащий первичный ключ “Код учебного заведения”.
Анкета Учебное заведение
№ паспорта Код учебного заведения
|
Начало учебы Окончание учебы Специальность |
№ паспорта
|
ФИО Дата рождения Место рождения Адрес проживания Домашний телефон Почтовый индекс
|
Код учебного заведения
|
Название учебного заведения Адрес учебного заведения Город учебного заведения
|
1шаг В качестве PK для сущности “Работа Человека” выберем “Личный номер работника ” и “название предприятия”(Подразумевается что у каждого работника свой номер, который на одном предприятии не повторяется,но повторяется на другом). От “личный номер работника” зависит № паспорта, дата поступления, дата увольнения, должность, название предприятия. Для “Место” PK будет “название предприятия”, от которого зависит город предприятия, адрес предприятия, номер телефона.
2 шаг В соответствии с выделенными смысловыми зависимостями разобьем таблицу на 2 части:
Работа Человека
Личный номер работника Название предприятия |
№ паспорта Дата поступления Дата увольнения Должность |
Название предприятия |
Город предприятия Адрес предприятия Номер телефона |
3шаг Для удобства введем семантически не значащий первичный ключ “Код предприятия”.
Работа Человека
Личный номер работника Код предприятия |
№ паспорта Дата поступления Дата увольнения Должность |
Код предприятия |
Название предприятия Город предприятия Адрес предприятия Номер телефона |
Приведение к 3 НФ.
требует, чтобы таблицы были приведены ко второй нормальной форме, и чтобы между не ключевыми полями таблицы не было транзитивных зависимостей, то есть, чтобы значение любого поля, не входящего в состав первичного ключа не зависело от другого поля, не входящего в первичный ключ.Все таблицы соответствуют третьей нормальной форме.
Анкета Учебное заведение
№ паспорта Код учебного заведения
|
Начало учебы Окончание учебы Специальность |
№ паспорта
|
ФИО Дата рождения Место рождения Адрес проживания Домашний телефон Почтовый индекс
|
Код учебного заведения
|
Название учебного заведения Адрес учебного заведения Код города
|
Место Работа человека
Код предприятия |
Название предприятия Код города Адрес предприятия Номер телефона |
Личный номер работника Код предприятия |
№ паспорта Дата поступления Дата увольнения Должность |
Города
Код города |
Название города
|
