Нормалізація моделі «сутність-зв'язок»
Таким образом, переход от ненормализованных отношений к отношениям в 3NF может быть выполнен при помощи алгоритма нормализации. Алгоритм нормализации заключается в последовательной декомпозиции отношений для устранения функциональных зависимостей атрибутов от части сложного ключа (приведение к 2NF) и устранения функциональных (транзитивных) зависимостей неключевых атрибутов друг от друга… Читати ще >
Нормалізація моделі «сутність-зв'язок» (реферат, курсова, диплом, контрольна)
Нормализация — процесс проверки и реорганизации сущностей и атрибутов с целью удовлетворения требований к реляционной модели данных: каждый атрибут должен быть определен для своей сущности. Это достигается путем разбиения таблиц на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных, и делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т. е. исключена избыточность информации. Процесс нормализации сводится к последовательному приведению структуры данных к нормальным формам — формализованным требованиям к организации данных. Известно 6 нормальных форм:
- ? первая нормальная форма (1NF);
- ? вторая нормальная форма (2NF);
- ? третья нормальная форма (3NF);
- ? нормальная форма Бойса-Кодда (усиленная 3NF);
- ? четвертая нормальная форма (4NF);
- ? пятая нормальная форма (5NF).
На практике обычно ограничиваются приведением данных к третьей нормальной форме. Отношения в 3NF являются самыми «хорошими» с точки зрения того, что устранены аномалии обновления, удаления и вставки и требуются только стандартные триггеры для поддержания ссылочной целостности. Для углубленного изучения нормализации можно рекомендовать книгу К. Дж. Дейта «Введение в системы баз данных».
Нормальные формы основаны на понятии функциональной зависимости.
Первая нормальная форма (1NF). Сущность находится в первой нормальной форме тогда и только тогда, когда все атрибуты содержат атомарные значения.
Для приведения сущности к первой нормальной форме следует:
- ? разделить сложные атрибуты на атомарные;
- ? перенести в нее все «повторяющиеся» атрибуты;
- ? выбрать возможный ключ для нового первичного ключа или создать его;
- ? установить идентифицирующую связь от прежней сущности к новой, первичный ключ прежней сущности станет внешним ключом для новой сущности.
Вторая нормальная форма (2NF). Сущность находится во второй нормальной форме, если она находится в первой нормальной форме и каждый неключевой атрибут полностью зависит от первичного ключа (не должно быть зависимости от части ключа). Вторая нормальная форма имеет смысл только для сущностей, имеющих сложный первичный ключ.
Для приведения сущности ко второй нормальной форме следует:
- ? выделить атрибуты, которые зависят только от части первичного ключа,
- ? поместить атрибуты, зависящие от части ключа, в их собственную (новую) сущность.
- ? установить идентифицирующую связь от прежней сущности к новой.
Третья нормальная форма (3NF). Сущность находится в третьей нормальной форме, если она находится во второй нормальной форме и никакой неключевой атрибут не зависит от другого неключевого атрибута (не должно быть транзитивной зависимости между неключевыми атрибутами).
Для приведения сущности к третьей нормальной форме следует:
- ? создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от неключевого атрибута;
- ? использовать атрибут (атрибуты), определяющий (определяющие) эту зависимость, в качестве первичного ключа новой сущности;
- ? установить неидентифицирующую связь от новой сущности к старой.
Таким образом, переход от ненормализованных отношений к отношениям в 3NF может быть выполнен при помощи алгоритма нормализации. Алгоритм нормализации заключается в последовательной декомпозиции отношений для устранения функциональных зависимостей атрибутов от части сложного ключа (приведение к 2NF) и устранения функциональных (транзитивных) зависимостей неключевых атрибутов друг от друга (приведение к 3NF).