![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Проверка на нормальную форму Бойса-КоддаСтр 1 из 2Следующая ⇒
Проверка на 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; просмотров: 812. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |