69
времени для каждого из различных значений поля А обязательно существует
только одно из различных значений поля В. Отметим, что здесь допускается,
что поля А и В могут быть составными. Полная функциональная зависимость.
Поле В находится в полной функциональной зависимости от составного поля
А, если оно функционально зависит от А и не зависит функционально от
любого подмножества поля А. Многозначная зависимость. Поле А
многозначно определяет поле В той же таблицы, если для каждого значения
поля А существует хорошо определенное множество соответствующих
значений В.
Таблица находится во второй нормальной форме (2НФ), если она
удовлетворяет определению 1НФ и все ее поля, не входящие в первичный
ключ, связаны полной функциональной зависимостью с первичным ключом.
Таблица находится в нормальной форме Бойса-Код да (НФБК), если и
только если любая функциональная зависимость между его полями сводится
к полной функциональной зависимости от возможного ключа.
Итак, можно сказать, что нормализация – это разбиение таблицы на
несколько, обладающих лучшими свойствами при обновлении, включении и
удалении данных. Можно дать и другое определение: нормализация – это
процесс последовательной замены таблицы ее полными декомпозициями до
тех пор, пока все они не будут находиться в НФБК.
Рассмотрим таблицу Поставщики. Очевидно, что, поскольку все
содержащиеся записи относятся к конкретному поставщику, которому
присвоен уникальный Код Поставщика, то эта таблица находится во 2НФ, а
так как каждое поле однозначно определяется этим уникальным кодом, то
таблица находится и в НФБК. Аналогичные замечания полностью
применимы к таблицам Продукты, Блюда, Заявки и Закупки, Состав, Блюда
заявки, Минимальные цены, которые, следовательно, также находятся в
НФБК.
Итак, проведя аккуратную разработку инфологической модели, мы
добились того, что при разработке системы таблиц для базы данных удалось