Нормализация отношений реляционных баз данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Нормализация отношений реляционных баз данных



Под нормализацией подразумевается попытка предотвратить аномалии обновления реляционных таблиц (R-таблиц), то есть ситуации, которые могут привести к противоречивости данных. В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:

  • первая нормальная форма (1NF);
  • вторая нормальная форма (2NF);
  • третья нормальная форма (3NF);
  • нормальная форма Бойса-Кодда (BCNF);
  • четвертая нормальная форма (4NF);
  • пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения. Каждая ступень этого процесса приводит схему отношений в последовательные нормальные формы. Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД. Нормализация позволяет удалить из таблиц базы избыточную неключевую информацию.

Пример декомпозиции исходной «универсальной» таблицы на простые отношения.

Предположим, что проектирование базы данных с условным названием "Питание" начинается с выявления атрибутов и подбора данных, образец которых (часть блюд изготовленных и реализованных 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 атрибутов) универсальное отношение может использоваться в качестве отправной точки при проектировании БД.



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 82; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.20.57 (0.004 с.)