Функциональные зависимости. Нормализация отношений.


Внутри отношения всегда существует функциональная зависимость. Ее учет является важным элементом при конструировании модели данных. Если задано отношение R, то мы говорим, что атрибут Y находится в функциональной зависимости от атрибута X этого же отношения, тогда и только тогда, когда каждое значение X в отношении R в каждый момент времени связано только с одним значением Y. Если одно и тоже значение X встречается в нескольких строках, то эти строки должны содержать одно и тоже значение Y.

Полная функциональная зависимость.

Атрибут Y находится в полной функциональной зависимости от атрибута X, если он функционально зависит от X и функционально независим от  подмножества Х.

При полной функциональной зависимости не должны повторяться, например названия городов даже для разных кодов, т.е. код однозначно определяет название города (1=Владивосток), в таких случаях в отношение можно даже не вводить поле кодов.

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

Основные принципы нормализации отношений.

Задача группировки атрибутов в отношении при условии, что набор возможных отношений не фиксирован, допускает большое количество вариантов и приводит к проблеме рационального выбора. Рациональный вариант группировки атрибутов в отношении должен отвечать требованиям:

1. выбранные для отношений первичные ключи должны быть min;
2. выбранный состав отношений БД должен быть min;
3. не должно возникать трудностей при выполнении операций добавления, удаления, редактирования;
4. разброс времени ответа на запросы в БД должен быть min.

Отсутствие рациональной структуры хранения может привести к ряду проблем (изменение данных). Для решения проблем выполняется нормализация исходных схем отношений проекта. Существует 5 нормальных форм (НФ) в теории реляционных БД. Эти формы подчиняются правилам вложенности номеров, т.е. если отношение будет находиться в 5 НФ, то оно будет находиться в 1, 2, 3, 4 НФ.

1 нормальная форма. Отношение называется нормализованным или приведенным к 1 НФ, если все его атрибуты простые (неделимы). Преобразование отношения к 1 НФ м привести к увеличению количества реквизитов (полей) отношения и изменению ключа.

2 нормальная форма.

Отношение R находится во 2 НФ, если оно находится в 1 НФ и каждый неключевой атрибут функционально зависит от первичного ключа.

3 нормальная форма.

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

4 и 5 НФ связаны с явлением многозначности и составными ключами. Эти формы пытаются минимизировать количество ключей, входящих в составной ключ.

4 нормальная форма.

Отношение R находится в 4 НФ тогда и только тогда, когда при существовании многозначной зависимости в отношении R атрибута В (А), все остальные атрибуты отношения R функционально полно зависят от А.

5 нормальная форма.

Отношение находится в 5 НФ, если не существует других отношений, из которых оно может быть получено путем соединений. 5 НФ используется в том случае, когда в отношении встречается несколько многозначных зависимостей и эти зависимости не являются независимыми.

Главная цель процесса нормализации – уменьшение избыточности и устранение проблем при выполнении операции запоминания. Проведение операции поиска в нормализованной БД требует дополнительных затрат на соединение отношений. Реляционные языки dлюбой СУБД не содержат требования, чтобы данные находились в какой-либо НФ за исключением 1 НФ.

Hosted by uCoz