Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1401


2.4.4. третья нормальная форма : устранени е транзитивных зависимостей

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

Пусть A, B, C − три атрибута или три набора атрибутов отношения R. Если C зависит от B, а B − от A, то C зависит от A. Если при этом обратное соответст- вие неоднозначно (т. е. A не зависит от B, или B не зависит от C), то говорят,

что C транзитивно зависит от A.

В нашем примере можно увидеть, что в таблице «ОТПУСК ТОВАРОВ» имеется зависимость значения поля «Общая стоимость» от значения поля «Отпущено еди‐

ниц». Поэтому поле «Общая стоимость» из таблицы «ОТПУСК ТОВАРОВ» удаляем. Следует отметить, что здесь рассматривается частный случай правила приведе- ния к 3НФ, так как удаляемое поле является вычисляемым.  Схема базы дан-

ных, приведенной к 3НФ, показана на 0.

 

 

Рис. 2.18. Нормализованная база данных, приведенная к 3НФ

 

Переход от 2НФ к 3НФ в соответствии с общим правилом содержит следую-

щие шаги:

1. Определить поля (или группы полей), от которых зависят другие поля.

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

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