Статья посвящена использованию функциональных зависимостей и нормализации при проектировании баз данных.
Ключевые слова: проектирование баз данных, функциональные зависимости, нормализация, нормальная форма
В основе процесса проектирования базы данных лежат базовые принципы, основанные на функциональных зависимостях и нормализации. Именно этим принципам и посвящена настоящая статья.
Одно произвольное подмножество множества атрибутов некоторой переменной отношения функционально зависимо от другого тогда и только тогда, когда каждое значение второго множества переменной отношения связано точно с одним значения первого множества этой переменной отношения. Другими словами, функциональная зависимость — это связь типа «многие к одному» между двумя некоторыми подмножествами множества атрибута выбранной переменной отношения.
Функциональные зависимости обладают целым рядом свойств (или правил), как, например, сложение в математике обладает переместительным и сочетательным свойствами. К этим свойствам относятся следующие: правило рефлексивности, правило дополнения, правило транзитивности, правило самоопределения, правило декомпозиции, правило объединения, правило композиции и общая теорема объединения.
Функциональные зависимости распространяются на ограничения целостности базы данных, определяя какие из них тривиальны, какие следуют друг из друга, а также многие другие моменты.
Кроме использования функциональных зависимостей переменные отношения должны упорядочиваться, или нормализоваться. Переменная отношения находится в некоторой нормальной форме, если она удовлетворяет набору условий, характерному данной нормальной форме. Выделят первую нормальную форму, вторую нормальную форму, третью нормальную форму, нормальную форму Бойса-Кодда, четвертую нормальную форму и пятую нормальную форму.
Рассмотрим процесс нормализации переменной отношения на примере того, как она будет проходить через каждую из нормальных форм, начиная первой и заканчивая последней.
Для того чтобы переменная отношения находилась в первой нормальной форме, необходимо удалить повторяющие элементы так, чтобы каждый кортеж содержал только одно значение для каждого из атрибутов. Этот шаг является первым в процесс нормализации переменной отношения.
Далее необходимо сделать так, чтобы каждый неключевой атрибут переменной отношения неприводимо зависел от ее первичного ключа. Тогда переменная отношения из первой нормальной формы переходит во вторую нормальную форму.
После этого решается следующая задача нормализации — достичь того, чтобы каждый кортеж состоял из значения первичного ключа, идентифицирующего некоторую сущность, и множества взаимно независимых атрибутов, некоторым образом описывающих эту сущность. Тогда переменная отношения из второй нормальной формы переходит в третью нормальную форму.
Затем необходимо удалить из функциональных зависимостей оставшиеся аномалии, чтобы позволит переменной отношения перейти из третьей нормальной формы в нормальную форму Бойса-Кодда.
Прежде, чем перейти к дальнейшей нормализации, необходимо определить, что понимается под многозначными зависимостями.
Одно произвольное подмножество множества атрибутов некоторой переменной отношения многозначно зависимо от другого тогда и только тогда, когда каждое значение первого множества переменной отношения зависит от значений второго, но никак не зависит от значений некоторого третьего подмножества атрибутов переменной отношения при рассмотрении значений второго и третьего подмножеств в паре.
Чтобы переменная отношения перешла из нормальной формы Бойса-Кодда в четвертую нормальную форму, необходимо удалить все нетривиальные многозначные зависимости.
Из четвертой нормальной формы переменная отношения может перейти только в пятую нормальную форму. Это будет последним шагом на пути к окончательной нормализации переменной отношения. Для этого нужно лишь удалить из переменной отношения все зависимости соединения.
Нельзя не упомянуть, что каждый более высокий уровень нормализации включает в себя все нижележащие уровни.
Стоит отметить, на практике не всегда целесообразно максимально нормализовать переменные отношения. Данное решение принимается архитектором при проектировании базы данных.
Таким образом, в настоящей статье были рассмотрены функциональные зависимости и нормализации, которые лежат в основе процесса проектирования баз данных.
Литература:
- Дейт, К.Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. / К.Дж. Дейт. — М.: Издательский дом «Вильямс», 2008. — 1328 с.: ил. — Парал. тит. англ.