Нормализация отношений реляционной модели
Нормализация отношений (таблиц) инфологической модели проводится при создании базы данных реляционного типа.
Отличие нормализации от проверки корректности заключается в том. Что проверка корректности проводится исходя из содержания автоматизируемой деятельности и в ней участвует пользователь (заказчик), тогда как нормализация – исключительно на основе формальных правил и ее выполняет только разработчик.
Форма таблицы (отношения), удовлетворяющая требованиям, предъявляемым к реляционным базам данных, называется нормальной формой, а процесс приведения отношений к нормальной форме – нормализацией таблиц (отношений).
Каждое из полученных отношений анализируется с целью установления необходимости его нормализации.
Примечание:
К отношениям реляционной модели данных предъявляется ряд требований, определяемых в основном тем, что таблица является множеством (множеством кортежей, множеством атрибутов). Каждое отношение должно отвечать следующим основным требованиям:
все значения атрибутов в отношении, то есть данные, расположенные на пересечении строки и столбца, являются атомарными (неделимыми, элементарными);
в отношении не может быть двух одинаковых кортежей;
порядок следования атрибутов в отношении фиксирован, но поскольку атрибуты имеют имя, он является несущественным, и атрибуты могут обрабатываться в любой заданной последовательности;
порядок следования кортежей безразличен.
Первое из указанных требований является основополагающим, создающим предпосылки для применения к отношениям реляционной модели данных математического аппарата реляционной алгебры.
В общем случае исходное отношение, полученное в процессе проектирования реляционной базы данных, может не удовлетворять этому требованию. Поэтому такое отношение, прежде чем оно станет составной частью базы данных, должно быть преобразовано в соответствующую форму по определенным правилам.
Нормализация отношений основывается на таких свойствах отношений, как функциональная, полная функциональная и многозначная зависимости. В настоящее время используется четыре нормальных формы и четыре этапа нормализации: приведение к первой (1НФ), второй (2НФ), третьей (3НФ), и четвертой (4НФ) нормальным формам. Отношение называется нормализованным, если оно находится в одной из этих форм. На каждую из форм распространяется принцип вложенности по возрастанию номера формы: если отношение находится в форме с номером n, то оно находится и в форме с номером n-1 [3].
Результатом нормализации является реляционная БД, оптимальная или близкая к оптимальной по некоторым критериям. В качестве критериев используются такие, как атомарность, каждого из значений таблицы, минимальная избыточность отношений, минимальные первичные ключи, отсутствие аномалий – неправильностей, отклонений от нормы, которые могут возникнуть в процессе преобразования отношений (включение, обновление, удаление данных).
Нормализация таблиц проводится для:
1. Устранения противоречивости данных (в разных таблицах могут храниться одни и те же данные по смыслу, но разные по форме).
Пример: должность - «менеджер и управляющий», или «менеджер и мэнэджер»
2. Уменьшения памяти для хранения данных (дублирование информации).
Пример: в разных таблицах повторяются фамилии сотрудников.
3. Обеспечения возможности проведения систематизации и последующего анализа данных.
Пример: в разных полях одной таблицы указываются дети сотрудника: Ребенок1, Ребенок2
Для таблиц (отношений) в нормальной форме должны выполняться следующие правила:
Правило 1. Каждое поле таблицы должно содержать один атрибут сущнсоти. Это правило означает, что необходимо избавиться от повторяющихся полей и разделить поля, которые содержат несколько атрибутов на отдельные поля таблицы.
Правило 2. Каждая таблица должна иметь уникальный идентификатор или первичный ключ, который может состоять из одного или нескольких полей.
Правило 3. В таблице не должно быть атрибутов, не относящихся к сущности, которая определяется ключевым атрибутом.
Правило 4. Независимость полей. Это правило означает возможность изменять значения любого поля (не входящего в первичный ключ) без воздействия на данные других полей.
Результатом 3 этапа должна явиться совокупность таблиц, удовлетворяющих правилам нормализации. На этом же этапе необходимо установить связи между таблицами (через первичные ключи).
Основной принцип нормальной БД – каждое значение вводится в БД один раз.!!!! |
Внимание! Если в таблице все атрибуты имеют фиксированный (редко изменяющийся) набор значений, такая таблица называется СПРАВОЧНИКОМ |
В данном примере справочником является таблица Направления деятельности.