- •Методическая разработка для проведения лекционного занятия по военно-технической подготовке (курс 220)
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Заключительная часть
Основные определения
Для демонстрации основных идей раздела будет использоваться видоизмененная переменная-отношение поставок, которая в дополнение будет содержать в дополнение к обычным атрибутам S#, P# и QTY также атрибут CITY, представляющий город соответствующего поставщика. Эту переменную-отношение назовем SCP (рис. 4.1.).
SCP |
|
Рис. 4.1. Пример значения переменной-отношения SCP
Приведем определение концепции функциональной зависимости:
Пусть R является переменной-отношением, а X и Y – произвольными подмножествами множества атрибутов переменной-отношения R. Тогда Y функционально зависимо от X, что в символическом виде записывается как:
X Y
(читается либо как «X функционально определяет Y», либо «X стрелка Y») тогда и только тогда, когда для любого допустимого значения переменной-отношения R каждое значение множества X отношения R связано в точности с одним значением множества Y отношения R. Иначе говоря, для любого допустимого значения переменной-отношения R, если два кортежа переменной-отношения R совпадают по значению X, они также совпадают и по значению Y.
Левая и правая части функциональной зависимости (X и Y соответственно), называют детерминантом и зависимой частью соответственно.
Пример 4.1. Примером функциональной зависимости для переменной-отношения SCP является зависимость S# CITY, поскольку в любой момент времени одному поставщику соответствует в точности один город. Следовательно, любые два кортежа переменной-отношения SCP в один и тот же момент и с одним и тем же номером поставщика должны соответствовать одному и тому же городу. Практически это утверждение можно рассматривать как ограничение целостности для переменной-отношения SCP:
CONSTRAINT S#_CITY
COUNT ( SCP {S#} ) = COUNT ( SCP {S#,CITY} );
а запись S# CITY может рассматриваться как сокращенный способ представления этой формулировки.
Перечислим еще некоторые ФЗ для переменной-отношения SCP:
{S#,P#} QTY
{S#,P#} CITY
{S#,P#} {CITY, QTY}
{S#,P#} S#
{S#,P#} {S#, P#, CITY, QTY}
{S#} CITY
Следует отметить, что если X является потенциальным ключом переменной-отношения R, то все атрибуты Y переменной-отношения R должны обязательно быть функционально зависимы от X.
Если переменная-отношение R удовлетворяет функциональной зависимости A B и A не является потенциальным ключом, то R будет характеризоваться некоторой избыточностью. Например, в переменной-отношении SCP наличие ФЗ S# CITY приведет к тому, что сведения о месте расположения поставщика в определенном городе повторятся много раз (это хорошо видно на рис. 3.1.).
Если ограничиться всеми ФЗ, выполняющимися для некоторой переменной-отношения, то их число может быть достаточно большим (см. выше список, где представлена их часть для переменной-отношения SCP). В следующих разделах описаны методы сокращения этого множества. Это задача важна, так как мы уже отмечали, что каждая ФЗ является ограничением целостности, а, следовательно, при каждом обновлении данных в базе СУБД вынуждена будет проверять соблюдение их всех. Таким образом, желательно найти для заданного множества ФЗ S такое множество T, которое (в идеальном случае) было бы существенно меньше множества S, и при этом каждая ФЗ из множества S могла бы быть заменена ФЗ из множества T. Если найти такое множество T, то СУБД достаточно было бы контролировать выполнение ФЗ из этого множества, что автоматически подразумевало бы соблюдение всех ФЗ из множества S. Решение этой задачи представляет большой практический интерес.