Функциональные зависимости. Нормализация отношений.
Внутри отношения всегда существует функциональная зависимость. Ее учет является важным элементом при конструировании модели данных.
Если задано отношение 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 НФ.
|