458.55K
Категория: Базы данныхБазы данных

Лекция№6Нормализация

1.

Нормализация данных
• Нормализация представляет собой процесс
реорганизации
данных
путем
ликвидации
повторяющихся групп и иных противоречий с целью
приведения к виду, позволяющему осуществлять
непротиворечивое и корректное редактирование
данных. Нормализацию можно определить как
процесс, направленный на снижение избыточности
информации в реляционной базе данных.
• Использование ненормализованных таблиц может
привести к нарушению целостности данных в базе
данных.

2.

Различают следующие проблемы,
возникающие при наличии
ненормализованных таблиц:
• Избыточность
данных.
Избыточность
данных
проявляется в том, что в нескольких записях таблицы
базы данных повторяется одна и та информация. Если
сотрудник работает на нескольких должностях, то его
личные данные будут дублироваться несколько раз, что
приведет к неоправданному увеличению занимаемого
объема внешней памяти.
• Аномалия обновления. Аномалии обновления тесно
связаны с избыточностью данных. Предположим, что у
сотрудника, работающего на нескольких должностях,
изменился адрес. Если же исправление будет внесено
не во все записи, то возникнет несоответствие
информации, которое и называется аномалией
обновления.

3.

• Аномалия удаления. Аномалии удаления
возникают при удалении записей из
ненормализованной
таблицы.
Удаление
записи при увольнении сотрудника приведет к
потере информации о должности, которую он
занимал.
Такая
потеря
информации
называется аномалией удаления.
• Аномалия ввода. Аномалии ввода возникают
при добавлении в таблицу новых записей и
обычно имеют место, когда для некоторых
полей
таблицы
заданы
какие-либо
ограничения и невозможно сразу вводить
информацию. Это и называется аномалией
ввода.

4.

Нормальные формы
• Для устранения рассмотренных выше недостатков и
применяется процесс нормализации отношений. Данный
процесс – это формальный метод анализа отношений на
основе их первичных и потенциальных ключей и
существующих функциональных зависимостей. Он
включает ряд формальных правил, используемых для
проверки всех отношений базы данных. Различают:
• 1НФ – первую нормальную форму;
• 2НФ – вторую нормальную форму;
• 3НФ – третью нормальную форму;
• НФБК – нормальную форму Бойса – Кодда;
• 4НФ – четвертую нормальную форму;
• 5НФ – четвертую нормальную форму.

5.

Основные свойства нормальных
форм:
• Каждая следующая нормальная форма в некотором
смысле лучше предыдущей;
• При переходе к следующей нормальной форме свойств
предыдущих нормальных свойств сохраняются.
• Каждая нормальная форма налагает определенные
ограничения на данные.
• 1НФ, 2НФ, 3НФ – ограничивают зависимость непервичных
атрибутов от ключей;
• НФБК – ограничивает зависимость первичных атрибутов;
• 4НФ – формулирует ограничения на виды многозначных
зависимостей;
• 5НФ – вводит другие типы зависимостей: зависимости
соединений.

6.

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

7.

Данная таблица не является реляционной, так как не на
всех пересечениях строк и столбцов находятся скалярные
(атомарные) значения. Для дальнейшей работы с таблицей ее
надо привести к 1 – Нормальной Форме.

8.

• С таблицей в 1НФ уже можно работать реляционными
средствами, однако она обладает рядом недостатков.
Основные из них сводится к избыточности и аномалиям
манипулирования данными.
• Избыточность заключается в том, что несколько раз в
таблице повторяются имена одних и тех же поставщиков,
регионов, цветов.
• Аномалии могут возникать при изменениях и удалениях
строк таблицы. Если поставщик переезжает в другой
город, название города, региона должны быть изменены
во всех строках, содержащих имя этого поставщика. Если
такое изменение будет выполнено не на всех строках, в
таблице будет содержать противоречивую информацию:в
одних строках этот поставщик числиться по старому месту,
а в других по новому.
• Рассмотрим аномалии удаления, помимо того, что
должны быть удалены все строки, содержащие имя
поставщика, то вместе с ним будет удалена вся
информация о детали.

9.

Вторая нормальная форма.
Функциональные зависимости
• Для преодоления этих недостатков таблица подвергается
дальнейшей нормализации. Приведение таблиц к 2НФ и выше
производится с использованием аппарата функциональных
зависимостей.
• Определение. Атрибут В функционально зависит от атрибута А,
если каждому значению А соответствует в точности одно значение
В. Функциональная зависимость В от А обозначается записью
А В. Это означает, что во всех кортежах с одинаковым значением
атрибута А атрибут В будет также одно и то же значение.
• Определение. Частичной функциональной зависимостью
называется зависимость неключевого атрибута от части составного
ключа.
• Определение.
Полной
функциональной
зависимостью
называется зависимость
неключевого атрибута от всего
составного ключа.

10.

• Для нашего примера после приведения
таблицы к 1НФ функциональные
зависимости будет следующими:

11.

• Определение. Отношение находится во второй
нормальной форме, если оно находится в 1НФ и
каждый неключевой атрибут полностью зависит от
первичного ключа.
• Для нашего примера это правило не соблюдается,
так как первичным ключом является {Поставщик,
Деталь}, а некоторые атрибуты зависят от
отдельных частей первичного ключа. Мы не можем
изменить функциональные зависимости, так как
они существуют объективно, но мы можем разбить
таблицу таким образом, чтобы левые части
функциональных зависимостей стали первичными
ключами новых таблиц. Тогда функциональные
зависимости и таблицы имеют такой вид:

12.

13.

14.

Третья нормальная форма
• Определение. Отношение находится в 3НФ,
если оно находится в 2НФ и каждый
неключевой атрибут нетранзитивно зависит от
первичного ключа.
• Определение. Функциональная зависимость
атрибутов А и В отношения R называется
транзитивной, если существует такой атрибут
Z, что имеются функциональные зависимости
А Z и Z В, но отсутствует функциональная
зависимость Z А.

15.

Продолжая разбиение таблиц получаем такие
функциональные зависимости и таблицы:

16.

17.

Нормальная форма Бойса-Кодда
В большей части случаев достижение
3НФ
является
удовлетворительным
результатом. Однако, 3НФ не учитывает
случаев:
• отношение имеет 2 или более
потенциальных ключа;
• потенциальные ключи являются сложными;
• потенциальные ключи перекрываются.

18.

• Этот случай рассмотрим на примере
«Студенты – преподаватель - дисциплины»:
• Ведем такие правила:
• каждый студент обучается данному
предмету только у одного преподавателя;
• каждый преподаватель ведет только один
предмет;
• один предмет может читаться несколькими
преподавателями.

19.

Как видно из таблицы имеется избыточность, так же
имеются проблемы удаления и изменения. Данная
таблица имеет два потенциальных ключа {Студент(S),
Предмет(J)}, {Студент(S), Преподаватель(T)}. Они
сложные и они перекрываются. Функциональные
зависимости для нее будут иметь такой вид:

20.

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