Нормализация отношений в базе данных.

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

Функциональной зависимостью набора атрибутов B отношения R от набора атрибутов А того же отношения называется такое соотношения проекцийR [ A ] и R [ B ] , при котором в каждый момент времени любому элементу проекции R [ A ] соответствует только один элемент проекции R [ B ] , входящий вместе с ним в какой-либо кортеж отношения R . Обозначение: R . A ® R . B

Взаимно-независимые – атрибуты, которые не зависят функционально друг от друга.

Аксиомы функциональных зависимостей:

  1. Рефлексивность : если B I А, то А ® B .
  2. Дополнение : если А ® B , то АС ® B С.
  3. Транзитивность : если А ® B и B ® C , то А ® С.

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

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

Нормализация – это процесс проектирования схемы базы данных с использованием декомпозиции. Каждой нормальной форме соответствует некоторый определённый набор

ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений.

1 NF .

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

Это определение является синонимом определения отношения в теории реляционных баз данных.

Пример отношения, которое НЕ находится в 1 NF : расписание занятий

Пример отношения, которое НЕ находится в 1 NF : расписание занятий

Преподаватель День недели Время Дисциплина Вид занятия Группа
Иванов И.И.

Понедельник

Вторник

Вторник

Среда

Четверг

8:00

9:45

11:20

11:20

9:45

18:35

Теор. мех.

Теор. мех.

Оптика

Базы данных

Комп. графика

практика

лекция

лекция

практика

практика

практика

21301

21301

21301, 21303

21402

21202 (2)

21202 (1)

Петров П.П.

Для перевода отношения в 1 NF необходимо разделить с дублированием содержания общие ячейки на отдельные записи.

2 NF .

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

Функциональная зависимость R . A ® R . B называется полной , если набор атрибутов В функционально зависит от А , но не зависит функционально от любого подмножества А , то есть если " А 1 I А ? R . A –/ ® R . B . В противном случае функциональная зависимость называется неполной .

Пример отношения, которое НЕ находится во 2 NF : результаты сессии.

Рассмотрим отношение R ( ФИО, номер зачетки , группа, дисциплина , оценка ) .

Первичный ключ подчеркнут.

Однако при этом атрибуты (ФИО, группа) зависят только от части первичного ключа – от атрибута (номер зачетки) .

При этом возможны следующие аномалии :

- в результате ошибки оператора студенту по результатам одного или нескольких экзаменов приписали не ту группу.

- если студент не сдал ни одного экзамена, то он не существует.

Для приведения отношения во 2 NF следует провести декомпозицию (разбить на проекции), например так:

  1. R 1 ( ФИО, номер зачетки , группа) .
  2. R 2 ( номер зачетки , дисциплина , оценка ) .

Приведение таблицы ко второй нормальной форме позволяет избежать повторения (избыточности) данных.

3 NF .

Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.

Функциональная зависимость R . A ® R . B является транзитивной , если существует набор атрибутов C такой, что:

  1. С не является подмножеством А.
  2. С не включает в себя В. (В E С)
  3. Существует функциональная зависимость R . A ® R .С.
  4. Не существует функциональной зависимости R .С ® R .А.
  5. Существует функциональная зависимость R .С ® R . B .

Иными словами , требование 3 NF сводится к тому, чтобы все неключевые поля зависели только от первичного ключа и не зависели друг от друга.

Пример отношения, которое находится во 2 NF , но НЕ находится в 3 NF : связь студента с группой, факультетом, специализацией.

Дано отношение: R ( номер зачетки , ФИО, группа, факультет, кафедра ).

Первичный ключ подчеркнут. Так как он состоит из одного атрибута, то критерий 2 NF выполнен.

В отношении имеются транзитивные зависимости, в числе которых:

1) номер зачётки ® группа (обратное неоднозначно), группа ® факультет, номер зачётки ® факультет .

2) номер зачётки ® кафедра, кафедра ® факультет, номер зачётки ® факультет .

Для приведения отношения в 3 NF требуется декомпозиция следующего вида:

  1. R 1 ( номер зачетки , ФИО, группа ).
  2. R 2 ( группа , факультет).
  3. R3 ( кафедра , факультет ) .
BCNF .

Отношение находится в нормальной форме Бойса-Кодда, если оно находится в третьей нормальной форме и каждый детерминант отношения является возможным ключом этого отношения.

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

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

Пример отношения, которое находится в 3 NF , но НЕ находится в BCNF : таблица результатов приемных экзаменов:

Дано отношение: R ( идентификатор , номер паспорта, предмет , оценка ) .

Ответ на вопрос: зачем? Например, один абитуриент потерял свою карточку и ему выдали другую с другим номером. Второй абитуриент – гениальный ребенок, и у него пока нет паспорта.

Имеются следующие функциональные зависимости:

  1. Идентификатор, предмет ® оценка;
  2. Номер паспорта, предмет ® оценка; (зависимость полная)
  3. Идентификатор ® номер паспорта; (зависимым не является непервичный атрибут)
  4. Номер паспорта ® идентификатор.

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

Для приведения отношения в BCNF возможна декомпозиция следующего вида:

  1. R 1 ( идентификатор , предмет , оценка).
  2. R 2 ( идентификатор , номер паспорта).

Ответ на вопрос: зачем? Например, один абитуриент потерял свою карточку и ему выдали другую с другим номером. Второй абитуриент – гениальный ребенок, и у него пока нет паспорта.

В большинстве случаев достижение третьей нормальной формы или даже формы Бойса-Кодда считается достаточным для реальных проектов баз данных, однако в теории нормализации существуют и другие нормальные формы:

4 NF .

Отношение находится в четвёртой нормальной форме в том и только в том случае, если существует многозначная зависимость А­ –>> B и все остальные атрибуты R функционально зависят от А.

Определение: В отношении R ( A , B , C ) существует многозначная зависимость R . A –>> R . B в том и только в том случае, если множество значений В , соответствующее паре значений атрибутов А и С , зависит только от А и не зависит от С .

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

Пример (1) отношения, которое НЕ находится в 4 NF : список дисциплин, которые предстоит прослушать студенту первого курса:

Дано отношение: R ( номер зачетки, группа, дисциплина ) .

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

  1. группа – >> дисциплина .
  2. группа – >> номер зачетки .

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

При этом возможны следующие аномалии :

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

- Если в группу добавляется новый студент, то необходимо сгенерировать для него весь перечень дисциплин для данной группы.

Для приведения отношения в 4 NF возможна декомпозиция следующего вида:

  1. R 1 ( номер зачетки, группа).
  2. R 2 ( группа , дисциплина ).

Пример (2): меню:

Исходное отношение: R ( блюдо, повар , рецепт ) . Повар умеет готовить разные блюда, одинаково названные блюда могут отличаться рецептом приготовления.

Декомпозиция:

  1. R 1 ( повар, блюдо).
  2. R 2 ( блюдо , рецепт).
5 NF ( PJ / NF ).

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

Определение: Отношение R ( A , B , … Z ) удовлетворяет зависимости соединения (А, B , … Z ) в том и только в том случае, когда R восстанавливается без потерь путём соединения своих проекций на A , B , … Z (наборы атрибутов отношения R ). Полной декомпозицией отношения называют такую совокупность произвольного числа его проекций, соединение которых полностью совпадает с содержимым исходного отношения.

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

Пример отношения, которое находится в 4 NF , но НЕ находится в 5 NF : почасовики.

Дано отношение: R ( преподаватель, кафедра, дисциплина ) . Считается, что приглашённый преподаватель может работать на нескольких кафедрах и вести различные дисциплины. В этом случае ключом отношения является полный набор из трёх атрибутов. В отношении отсутствуют многозначные зависимости, и поэтому оно находится в 4 NF . Однако в нём нет наборов атрибутов, которые составляют возможные ключи отношения, и потому это отношение не в PJ / NF . При этом провести полную декомпозицию на два отношения нельзя .

Возможна декомпозиция следующего вида:

  1. R 1 ( преподаватель , кафедра).
  2. R 2 ( преподаватель , дисциплина ).
  3. R3 ( кафедра , дисциплина).

Отношение, не имеющее ни одной полной декомпозиции, также находится в пятой нормальной форме.

Задание: провести нормализацию отношения «продажи магазина»:

R (дата продажи, фамилия и имя продавца, фамилия и имя покупателя, город, улица, наименование товара, сумма).


назад главная вперед