Классика баз данных - статьи

       

Ой шаг: 2 NF → 3 NF


На 2-м шаге проектирования форма 2NF приводится к виду 3NF. Для этого проверяется следующее определение: Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, когда находится в 2NF, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

При проверке на транзитивность определяется существования зависимостей R.X → R.Z и R.Z → R.Y и отсутствие зависимости R.Z → R.X. То есть при отсутствии последнего требования мы имели бы «неинтересные транзитивные зависимости» в любом отношении, обладающем несколькими ключами.

Имея в виду выше рассмотренные ФЗ отношения ТОВАРЫ, где атрибут типНазв напрямую не зависит от первичного ключа товарНом, а непосредственно зависит от его составного атрибута типНом, мы заключаем, что здесь имеется транзитивная ФЗ товарНом → типНом → типНазв. Другими словами, название типа товара на самом деле является характеристикой не товара, а типа товара, к которому он относится. В результате сказанного, мы приводим отношение Товары к третьей нормальной форме.

Теперь можно произвести декомпозицию отношения ТОВАРЫ в два отношения ТИП ТОВАРА и ТОВАРЫ:

ТИП ТОВАРА {типНом, типНазв}

Первичный ключ:
типНом
Функциональные зависимости:


типНом → типНазв ТОВАРЫ {товарНом, тип_Ном, товарНазв, товарОпис, товарЦена, товарРис, колНаСкладе}

Первичный ключ:
товарНом
Функциональные зависимости:


товарНом → типНом
товарНазв
товарНом → товарОпис
товарНом → товарЦена
товарНом → товарРис
товарНом → колНаСкладе

В результате из одного отношения (таблицы) ТОВАРЫ получается два отношения (две таблицы) ТИП ТОВАРА и ТОВАРЫ.

Отношение ТОВАРЫ разделяется на отношения — ТИП ТОВАРА и ТОВАРЫ, где ТИП ТОВАРА — основная таблица, а ТОВАРЫ — подчиненная таблица.

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

Рис 3. Схема отношений в виде 3NF



Содержание раздела