Примеры нормализации отношений
Вторая нормальная форма (2NF)
Пример: БУЛОЧНАЯ.
Хп/завод | Продукт | Цена | Количество |
Пекарь | Батон нарезной | ||
Каравай | Батон нарезной | ||
Кушелевский | Батон нарезной | ||
Кушелевский | Хлеб Дарницкий | ||
Каравай | Хлеб Дарницкий |
Составной ключ: Хлебозавод + Продукт.
Неключевые атрибуты: Цена, Количество.
Атрибут Цена зависит и от части ключа – Продукт.
Для устранения неполной функциональной зависимости необходимо разделить исходное отношение в 1-й NF на 2, не содержащих неполной зависимости.
1-е отношение: Хлебозавод, Продукт, Количество.
Хп/завод | Продукт | Количество |
Пекарь | Батон нарезной | |
Каравай | Батон нарезной | |
Кушелевский | Батон нарезной | |
Кушелевский | Хлеб Дарницкий | |
Каравай | Хлеб Дарницкий |
2-е отношение: Продукт, Цена.
Код продукта | Продукт | Цена |
Б01н | Батон нарезной | |
Х05д | Хлеб Дарницкий |
Как правило, во 2-е отношение вводится Код продукта, тогда в 1-м тоже будет Код продукта.
Третья нормальная форма (3NF)
Пример: СОТРУДНИК
ФИО (ключ) | Должность | Оклад |
Мирошин | Начальник отдела | 1000 у.е. |
Евстафьв | Экономист | 500 у.е. |
Сакутов | Экономист | 500 у.е. |
Теглин | Экономист | 500 у.е. |
Должность зависит от ФИО, а Оклад – от Должности для данной фамилии, т.е. Оклад транзитивно зависит от ФИО через неключевой атрибут Должность.
Для устранения 3NF следует разделить исходное отношение на 2:
ФИО | Должность | Должность | Оклад | |
Мирошин | Начальник отдела | Начальник отдела | 1000 у.е. | |
Евстафьв | Экономист | Экономист | 500 у.е. | |
Сакутов | Экономист | Экономист | 500 у.е. | |
Теглин | Экономист | Экономист | 500 у.е. |
Существуют специальные методы нормализации (разработан аппарат) и во всех современных СУБД, в том числе в Access есть возможность создать исходную ненормализованную таблицу и в результате анализа получить варианты нормализованных отношений и устранить избыточность
Тема 7
Дата добавления: 2015-08-08; просмотров: 725;