Вторая нормальная форма (2нф)
Отношение находится во 2НФ только тогда, когда оно уже находится в 1НФ, и нет неключевых атрибутов, которые зависят от части сложного (составного) ключа.
Неключевым называется атрибут, не входящий в состав какого-либо потенциального ключа.
Для отслеживания функциональных зависимостей между неключевыми атрибутами и сложным (составным) ключом составляется схема (где знак ← означает функциональную зависимость):
Составной ключ |
Неключевое поле |
fID_Student, fSubject, fSemester (Код Студента, Предмет, Семестр) |
← fLast_Name (Фамилия студента) |
… |
← … |
fID_Student, fSubject, fSemester (Код Студента, Предмет, Семестр) |
← fGroup (Шифр группы) |
fID_Student, fSubject, fSemester (Код Студента, Предмет, Семестр) |
← fMark (Оценка) |
Из анализа составленной схемы видно, что атрибуты Фамилия студента (fLast_Name), Имя студента (fFirst_Name), Отчество студента (fMiddle_Name), Шифр группы (fGroup) зависят от части составного ключа Код студента (fID_Student).
Но атрибут Оценка (fMark) зависит от частей составного ключа Учебный предмет (fSubject) и Учебный семестр (fSemester).
Следовательно, отношение Образование (Education) можно декомпозировать (разделить) на два меньших Студент (tblStudent) и Оценки (tblMark). При этом в отношении Оценки (tblMark) необходимо дополнительно создать ключевое поле Код Оценок (fID_Mark) для однозначной идентификации каждого кортежа (записи) этого отношения. Также включить поле Код студента (fID_Student) как внешний ключ для связи этих двух отношений.
2НФ. Фрагмент отношения Студент (tblStudent)
fID_Student |
fLast_Name |
fFirst_Name |
fMiddle_Name |
fGroup |
0001 |
Иванов |
Иван |
Иванович |
С11 |
0002 |
Петров |
Пётр |
Петрович |
С12 |
… |
… |
… |
… |
… |
0001 |
Иванов |
Иван |
Иванович |
С11 |
2НФ. Фрагмент отношения Оценки (tblMark)
fID_Mark |
fID_Student |
fMark |
fSubject |
fSemester |
1 |
0001 |
4 |
Физика |
1 |
2 |
0002 |
3 |
Физика |
1 |
… |
… |
… |
… |
… |
7 |
0001 |
5 |
Математика |
1 |
Таким образом, созданы два отношения отображающие взаимосвязи между объектами описываемой предметной области и предназначенные для того, чтобы по значениям одних данных можно было однозначно определить значения других данных.
На этом этапе нормализации потенциальные ключи во всех зависимостях, на которые разделено исходное отношение, являются простыми и соответствуют требованиям 1НФ, следовательно, полученные отношения уже находятся во 2НФ. При этом недостатки, отмеченные для 1НФ, частично устранены.