Главная страница / 32. Модели данных в информационных систе...: 32.4. Нормализация отноше...

32.4. Нормализация отношений

Нормализация БД как процесс основывается на понятии зависимости между атрибутами отношений. Под функциональной зависимостью между атрибутами будем понимать такую зависимость, когда каждому атрибуту А соответствует одно и только одно значение атрибута В. Например, каждой фамилии студента соответствует один и только один шифр студента. Частичной функциональной зависимостью будем называть зависимость неключевого атрибута от части первичного ключа. Например, имеется запись вида:

ЗАКАЗЫ

Дата заказа
Номер заказа
Наименование поставщика
Адрес поставки
Наименование товара
Количество
Цена
Сумма

В этом случае атрибут «Адрес поставщика» будет зависеть только от части первичного ключа Наименование поставщика. Следовательно, в записи имеется частичная функциональная зависимость значения поля «Адрес поставщика» от первичного ключа отношения.

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

Под транзитивной зависимостью будем понимать следующую зависимость: если атрибут В зависит от атрибута А, а атрибут С зависит от атрибута В, то С транзитивно зависит от А.

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

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

Рассмотрим отношение, представленное в табл. П.1 (см. приложение). Оно не находится в 1НФ, так как поле Адрес поставщика может быть разделено на поля «Город», «Улица», «Дом», следовательно, оно не атомарно. Для приведения этой таблицы к 1НФ надо разбить поле Адрес на несколько полей. Результат представлен в табл. П.2 (см. приложение).

Говорят, что отношение находится во второй нормальной форме (2НФ) , если оно находится в 1НФ и каждый его неключевой атрибут функционально полно зависит от составного первичного ключа. Отношение, представленное в табл. П.2 (см. приложение) не находится в 2НФ, для приведения ее к 2НФ необходима декомпозиция (разбиение) этой таблицы на табл. П3–П9 (см. приложение).

Говорят, что таблица находится в третьей нормальной форме (3НФ), если она находится в 2 НФ и в ней отсутствуют транзитивные зависимости. В приложении табл. П.9 не удовлетворяет требованиям 3 НФ, так как в ней имеется транзитивная зависимость между атрибутами Код товара, Товар и Единица измерения. Для приведения ее к 3НФ надо провести декомпозицию, результаты которых представлены в табл. П.11 и П.12 (см. приложение).

Табл. П.8 удовлетворяет требованиям 3 НФ, поэтому просто переписывается в П10 (см. приложение).