![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Под нормализацией подразумевается попытка предотвратить аномалии обновления реляционных таблиц (R-таблиц), то есть ситуации, которые могут привести к противоречивости данных. В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения. Каждая ступень этого процесса приводит схему отношений в последовательные нормальные формы. Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД. Нормализация позволяет удалить из таблиц базы избыточную неключевую информацию.
^
3.2.1. Пример декомпозиции исходной «универсальной» таблицы на простые отношения.
Предположим, что проектирование базы данных с условным названием "Питание" начинается с выявления атрибутов и подбора данных, образец которых (часть блюд изготовленных и реализованных 1/9/94 г.) показан на рис. 3.2.1.1.
Блюдо | Вид | Ре-цепт | Пор-ций | Дата Р | Про-дукт | Калорий-ность | Вес (г) | Поставщик | Город | Страна | Вес (кг) | Цена ($) | Дата П |
Лобио | Закуска | Лом. | 158 | 1/9/94 | Фасоль | 3070 | 200 | "Хуанхэ" | Пекин | Китай | 250 | 0.37 | 24/8/94 |
Лук | 450 | 40 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 | |||||
Масло | 7420 | 30 | "Лайма" | Рига | Латвия | 70 | 1.55 | 30/8/94 | |||||
Зелень | 180 | 10 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 | |||||
Харчо | Суп | ... | 144 | 1/9/94 | Мясо | 1660 | 80 | "Наталка" | Киев | Украина | 100 | 2.18 | 27/8/94 |
Лук | 450 | 30 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 | |||||
Томаты | 240 | 40 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 | |||||
Рис | 3340 | 50 | "Хуанхэ" | Пекин | Китай | 75 | 0.44 | 24/8/94 | |||||
… | … | … | … | … | … | … | … | … |
Рис. 3.2.1.1.Данные, необходимые для создания базы данных "Питание"
Этот вариант таблицы "Питание" не является отношением, так как большинство ее строк не атомарны. Атомарными являются лишь значения полей Блюдо, Вид, Рецепт (хотя он и большой), Порций и Дата_Р. Остальные же поля таблицы рис. 3.2.1.1– множественные.
Для придания таким данным формы отношения необходимо реконструировать таблицу. Наиболее просто это сделать с помощью простого процесса вставки, результат которой показан на рис. 3.2.1.2. Однако такое преобразование приводит к возникновению большого объема избыточных данных.
Блюдо | Вид | Рецепт | Порций | Дата Р | Продукт | Калорий-ность | Вес (г) | Поставщик | Город | Страна | Вес (кг) | Цена ($) | Дата П |
Лобио | Закуска | Лом. | 158 | 1/9/94 | Фасоль | 3070 | 200 | "Хуанхэ" | Пекин | Китай | 250 | 0.37 | 24/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Лук | 450 | 40 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Масло | 7420 | 30 | "Лайма" | Рига | Латвия | 70 | 1.55 | 30/8/94 |
Лобио | Закуска | Лом | 108 | 1/9/94 | Зелень | 180 | 10 | "Даугава" | Рига | Латвия | 15 | 0.99 | 30/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Мясо | 1660 | 80 | "Наталка" | Киев | Украина | 100 | 2.18 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Лук | 450 | 30 | "Наталка" | Киев | Украина | 100 | 0.52 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Томаты | 240 | 40 | "Полесье" | Киев | Украина | 120 | 0.45 | 27/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Рис | 3340 | 50 | "Хуанхэ" | Пекин | Китай | 75 | 0.44 | 24/8/94 |
Харчо | Суп | ... | 144 | 1/9/94 | Масло | 7420 | 15 | "Полесье" | Киев | Украина | 50 | 1.62 | 27/8/94 |
… | … | ... | … | … | … | ... | … | … | … | … | … | … | … |
Рис. 3.2.1.2. Универсальное отношение "Питание"
Таблица на рис. 3.2.1.2. представляет собой экземпляр корректного отношения. Его называют универсальным отношением проектируемой БД. В одно универсальное отношение включаются все представляющие интерес атрибуты, и оно может содержать все данные, которые предполагается размещать в БД в будущем. Для малых БД (включающих не более 15 атрибутов) универсальное отношение может использоваться в качестве отправной точки при проектировании БД.
^
Дата публикования: 2015-01-24; Прочитано: 910 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!