Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Проверка на нормальную форму Бойса-Кодда




Проверка на 1НФ

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

Проверка на 2НФ

CandidateKeys:

· {Блюдо, Дата реализации, Продукт},

· {Рецепт, Дата реализации, Продукт}.

Primary Key:

· {Блюдо, Дата реализации, Продукт}.

Неключевые атрибуты:Вид, Порций, Калорийность, Вес (г), Поставщик, Город, Страна, Вес (кг), Цена ($), Дата поставки.

Функциональные зависимости:

· БлюдоРецепт;

· Блюдо→Вид;

· Рецепт→Вид;

· Продукт→Калорийность;

· {Блюдо, Дата реализации}→Порции;

· {Рецепт, Дата реализации}→Порции;

· {Блюдо, Продукт}→Вес (г);

· {Рецепт, Продукт}→Вес (г);

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Вес (кг);

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Цена ($).

Аномалии:

· Обновления: При изменении названия блюда или рецепта нужно просматривать всю таблицу.

· Вставки: Нельзя добавить новое блюдо без присвоения ему поставщика продуктов и наоборот. Нельзя добавить новое блюдо без указания даты реализации.

· Удаления: В данном экземпляре аномалии удаления не прослеживаются. Но можно предположить, что удалив строку с каким-нибудь блюдом, состоящим из одного продукта, поставляемого узкоспециализированным поставщиком, удалится вся информация о поставщике.

Отношение находится в первой нормальной форме, но в составе потенциальных ключей присутствуют меньшие подмножества атрибутов, от которых функционально зависят некоторыенеключевыеатрибуты. Произведём декомпозицию. Вынесем детерминанты и соответствующие зависимыеатрибуты в отдельные зависимости, затем удалим зависимые атрибуты из универсальной зависимости.


 

Отношение 1

CandidateKeys:

· {Блюдо, Дата реализации, Продукт},

· {Рецепт, Дата реализации, Продукт}.

Primary Key:

· {Блюдо, Дата реализации, Продукт}.

Неключевые атрибуты: Поставщик, Город, Страна, Вес (кг), Цена ($), Дата поставки.

Функциональные зависимости:

· БлюдоРецепт;

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Вес (кг);

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Цена ($).

Аномалии те же, что указаны для универсальной зависимости.

Отношение не имеет неключевых атрибутов, зависящих от части сложного ключа, таким образом, оно находится в 2НФ.


 

Отношение 2

PrimaryKey: Блюдо.

Неключевые атрибуты: Вид.

Функциональные зависимости:Только между неключевым атрибутом и первичным простым ключом.

Аномалия обновления:При изменении названия вида блюда нужно просматривать всю таблицу.

Отношение имеет простой ключ, значит, относится ко 2НФ.

Отношение 3

PrimaryKey:{Блюдо, Дата реализации}.

Неключевые атрибуты: Порции.

Функциональные зависимости:Только между полным ключом и неключевыми атрибутами.

Аномалии:

· Обновления: Изменение названия блюда влечёт за собой пересмотр всей таблицы.

· Удаления: Нельзя добавить дату реализации блюда без числа порций.

Отношение не содержит зависимостей неключевого атрибута от частей сложного ключа, значит, оно относится ко 2НФ.

Отношение 4

PrimaryKey:{Блюдо, Продукт}.

Неключевые атрибуты: Вес (г).

Функциональные зависимости:зависимости только между полным ключом и неключевыми атрибутами.

Аномалии:

· Обновления: При изменении названия блюда нужно просматривать всю таблицу.

· Вставки: Нельзя добавить ингредиент не указав вес.

Отношение не содержит зависимостей неключевого атрибута от частей сложного ключа, значит, оно относится ко 2НФ.


Отношение 5

PrimaryKey:Продукт.

Неключевые атрибуты: Калорийность.

Функциональные зависимости:Только между неключевым атрибутом и простым первичным ключом.

Аномалий нет.

Отношение имеет простой ключ, значит, относится ко 2НФ.




Проверка на 3НФ

Отношения 1, 2, 3, 4, 5 не содержат функциональных зависимостей между неключевыми атрибутами. Таким образом, отсутствуют транзитивные функциональные зависимости неключевых атрибутов от ключевых, иданные отношения находятся в 3НФ.

Проверка на нормальную форму Бойса-Кодда

Отношение находится в НФБК тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.

Проверка отношения 6

Отношение находится в 3НФ, при этом имеются функциональные зависимости:

· Блюдо→Рецепт;

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Вес (кг);

· {Продукт, Поставщик, Город, Страна, Дата поставки}→Цена ($);

детерминанты которыхне являются потенциальными ключами. Произведём декомпозицию.

Отношение 6

Primary Key:

· {Блюдо, Дата реализации, Продукт}.

Неключевые атрибуты: Поставщик, Город, Страна, Дата поставки.

Функциональные зависимоститолько между полным ключом и неключевыми атрибутами.

Аномалии те же, что указаны для универсальной зависимости.

Отношение находится в нормальной форме Бойса-Кодда, так как детерминанты всех её функциональных зависимостей являются потенциальными ключами.

Отношение 7

PrimaryKey:Блюдо.

Неключевые атрибуты:Рецепт.

Функциональные зависимости:Только между неключевым атрибутом и простым первичным ключом.

Аномалий нет.

Отношение находится в нормальной форме Бойса-Кодда, так как детерминанты всех её функциональных зависимостей являются потенциальными ключами.

Отношение 8

PrimaryKey: {Продукт, Поставщик, Город, Страна, Дата поставки}.

Неключевые атрибуты: Вес (кг), Цена ($).

Функциональные зависимости: зависимости только между полным ключом и неключевыми атрибутами.

Аномалии:

· Обновления: При изменении названия поставщика нужно просматривать всю таблицу.

· Вставки: Нельзя добавить информацию о поставщике, который ещё ничего не поставил.

· Удаления: При удалении информации о поставке может удалиться вся информация о поставщике, если он поставлял только один товар один раз.

Отношение находится в нормальной форме Бойса-Кодда, так как детерминанты всех её функциональных зависимостей являются потенциальными ключами.










Последнее изменение этой страницы: 2018-04-12; просмотров: 699.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...