Вторая нормальная форма (2NF) – одна из возможных нормальных форм таблицы реляционной базы данных

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

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

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

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

Примерприведения отношения ко второй нормальной форме

Исходная таблица (1NF):

Фамилия Имя Отчество Пол Дата рождения Группа Специальность
Иванов Иван Иванович Муж. 19.01.1990 ПП-119 АСУ
Петров Петр Петрович Муж. 20.03.1991 Э-119 Электронщики
Васильева Катерина Ильинична Жен. 17.04.1990 ПК-129 Прикладная Информатика
Петров Илья Петрович Муж. 20.05.1991 Э-119 Электронщики

Данные, находящиеся в столбцах «Группа» и «Специальность» могут повторяться в процессе заполнения много раз, что вызовет избыточность данных в таблице. Следовательно, данную таблицу можно разделить на 3 сущности, имеющие отношения между собой.

В результате приведения к 2NF получаются три отношения:

1) Таблица с данными о студенте:

Фамилия Имя Отчество Пол Дата рождения
Иванов Иван Иванович Муж. 19.01.1990
Петров Петр Петрович Муж. 20.03.1991
Васильева Катерина Ильинична Жен. 17.04.1990
Петров Илья Петрович Муж. 20.05.1991

2) Список групп:

Группа
ПП-119
Э-119
ПК-129
Э-119

3) Список специальностей:

Специальность
АСУ
Электронщики
Прикладная Информатика
Электронщики

Третья нормальная форма (3NF) – одна из возможных нормальных форм отношения реляционной базы данных

3NF была изначально сформулирована Э.Ф. Коддом в 1971 году.

База данных будет находиться в третьей нормальной форме, если она приведена ко второй нормальной форме и каждый не ключевой столбец независим друг от друга. Если следовать процессу нормализации правильно до этой точки, с приведением к 3НФ может и не возникнуть вопросов. Следует знать, что 3НФ нарушается, если изменив значение в одном столбце, потребуется изменение и в другом столбце.

Пример приведения отношения к третьей нормальной форме:

Чтобы привести базу к третьей нормальной форме, надо:

1. Определить, в каких полях каких таблиц имеется взаимозависимость. Как только что говорилось, поля, которые зависят больше друг от друга (студент от группы, а группа от специальности), чем от ряда в целом.

2. Создайте соответствующие таблицы. Если есть проблемный столбец в шаге 1, создавайте раздельные таблицы для него.

3. Создайте или выделите первичные ключи. Каждая таблица должна иметь первичный ключ. Для примера с клиентами это будут ID_Student, ID_gruppa, ID_Specialnost.

4. Создайте необходимые внешние ключи, которые образуют любое из отношений. В нашем примере нужно добавить ID_gruppa в таблицу студентов и ID_Specialnost в таблицу групп.

В результате приведения к 3NF получаются три отношения:

1) Таблица с данными о студенте:

ID_Student Фамилия Имя Отчество Пол Дата рождения ID_Gruppa
Иванов Иван Иванович Муж. 19.01.1990
Петров Петр Петрович Муж. 20.03.1991
Васильева Катерина Ильинична Жен. 17.04.1990
Петров Илья Петрович Муж. 20.05.1991

2) Список групп:

ID_Gruppa Группа ID_Specialnost
ПП-119
Э-119
ПК-129
Э-119

3) Список специальностей:



ID_Specialnost Специальность
АСУ
Электронщики
Прикладная Информатика
Электронщики

Целостность данных

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

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

Целостность данных может быть обеспечена по трем направлениям:

- целостность по сущностям. Здесь имеется в виду целостность атрибутов внутри каждого экземпляра сущности. В данном случае более корректно говорить о достоверности и непротиворечивости атрибутов внутри экземпляра сущности;

- целостность по ссылкам. В этом случае контролируется правильность установления связей между сущностями в соответствии с приведенным выше определением. Здесь решается вопрос о возможности выполнения каскадных операций удаления экземпляров сущностей (или редактирования значения внешних ключей), о запрете каскадных воздействий, о назначении пустых (null) значений внешним ключам;

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

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

- отсутствие проверки;

- проверка допустимости;

- запрет операции;

- каскадное выполнение операций обновления или удаления данных одновременно в нескольких связанных сущностях;

- установка пустого (null) значения по умолчанию.

Наши рекомендации