Основы проектирования реляционных баз данных. Учебное пособие




Процедура нормализации - часть 3


Шаг 2. Выявление полей, функционально зависящих от части состваного ключа.

Поле Вид функционально зависит только от поля Блюдо, т.е.

Блюдо->Вид.

Аналогичным образом можно получить зависимости:

Блюдо->Рецепт (Блюдо, Дата_Р)->Порций Продукт->Калорийность (Блюдо, Продукт)->Вес Город->Страна (Поставщик, Город, Дата_П)->Цена

Шаг 3. Формирование новых таблиц.

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

Блюда (Блюдо, Вид) Рецепты (Блюдо, Рецепт) Расход (Блюдо, Дата_Р, Порций) Продукты (Продукт, Калорийность) Состав (Блюдо, Продукт, Вес (г)) Города (Город, Страна) Поставки (Поставщик, Город, Дата_П, Вес (кг), Цена).

Шаг 4. Корректировка исходной таблицы.

После выделения из состава универсального отношения указанных выше таблиц, там остались лишь сведения о поставщиках, для хранения которых целесообразно создать таблицу

Поставщики (Поставщик, Город),

т.е. использовать часть исходного первичного ключа, так как остальные его части уже ничего не определяют.

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

Пример 4.2. Для улучшения проекта, приведенного на рис. , нужно определить первичные ключи таблиц и выявить, нет ли в таблицах полей, зависящих лишь от части этих ключей. Такое поле есть только в одной таблице. Это поле Страна в таблице Поставщики. Выделяя его вместе с ключем Город в таблицу Страны, получим проект, приведенный на рис. .

[] [] []




Содержание  Назад  Вперед