
3. Нормализация
3.1 Приведение к 1нф
Требование простой структуры. Каждую сущность с атрибутами представлена в виде множества строк. Объединённых ячеек нет.
Требование отсутствия одинаковых по смыслу полей. Повторяющихся полей нет. Поля с датами имеют отношения к разным событиям.
Требование отсутствия составных полей. В сущности «Работа» было исправлено поле «Предприятие» (разбито на поля «Название предприятия», «адрес предприятия», «город предприятия»). В сущности «Сотрудник» было исправлено поле «адрес проживания» (разбито на поля «город проживания», «адрес проживания»). В сущности «образование» было исправлено поле «адрес учебного заведения» (разбито на поля «адрес учебного заведения», «город учебного заведения»).
Требование (в табл. не должно быть одинаковых записей). В таблице нет одинаковых записей в связи с тем, что номер паспорта у каждого сотрудника является уникальным, и тем, что мы подразумеваем невозможность работы или учёбы одного и того же сотрудник многократно в одном и том же месте. Это исключает отсутствие одинаковых записей в той или иной таблице.
Сотрудник Работа
№ паспорта Предприятие Адрес предприятия Город предприятия Должность Дата найма Дата увольнения |
ФИО Дата рождения Место рождения Адрес проживания Город проживания Домашний телефон Почтовый индекс № паспорта |
Образование
№ паспорта Название учебного заведения Город учебного заведения Адрес учебного заведения Начало учебы Окончание учебы Специальность Квалификация |
Первая нормальная форма
3.2 Приведение ко 2нф
1 шаг.
Определим для каждой сущности первичный ключ:
Сотрудник — № паспорта.
Работа — составной PK, состоящий из двух полей «№ паспорта» и «предприятие».
Образование — составной PK, состоящий из двух полей «№ паспорта» и «Название учебного заведения».
2 шаг.
От номера паспорта зависят ФИО, дата рождения, место рождения, адрес проживания, город проживания, домашний телефон, почтовый индекс, номер трудовой книжки.
В сущности «Работа» от номера паспорта и названия предприятия зависят поля должность, дата найма, дата увольнения, а от предприятия зависят адрес предприятия, и город предприятия.
В сущности «Образование» от номера паспорта и название учебного заведения зависят поля начало и окончание учёбы, специальность, квалификация, адрес и город.
3шаг.
Для удобства обращения с БД создадим таблицу городов с семантически незначащим ключом «код города» и заменим поля «Город проживания», «Город предприятия», «Город учебного заведения» на поле «код города» в каждой сущности.
Введём для таблиц предприятие и учебное заведение, семантически незначащие ключи «код предприятия» и «код учебного заведения» соответственно.
Составным ключом в таблице «Образование» будут поля № паспорта и код учебного заведения, составным ключом в таблице «работа» будут поля № паспорта и код предприятия.