Читайте также:
|
|
Функциональная зависимость (functional dependency) описывает связь между атрибутами и является одним из основных понятий нормализации. Сама нормализация представляет собой процесс разбиения отношения на два или более отношений с целью недопущения аномалий. Процесс разбиения отношения с целью уменьшения вероятности возникновения аномалий называется декомпозицией.
Функциональная зависимость (ФЗ) определяется следующим образом:
Если даны два атрибута А и В, то говорят, что В функционально зависит от А, если для каждого значения А существует ровно одно связанное с ним значение В (в любой момент времени). А и В могут быть составными, то есть они могут представлять собой не единичные атрибуты, а группы, состоящие из двух и более атрибутов
С практической точки зрения смысл данного определения состоит в том, что если В функционально зависит от А, то каждый из кортежей, имеющих одно и то же значение А, должен иметь также одно и то же значение В. Значения А и В могут изменяться время от времени, но при этом они должны изменяться так, чтобы каждое уникальное значение А имело только одно значение В, связанное с ним. Другими словами: если нам известно значение атрибута А, то при рассмотрении отношения с такой зависимостью, в любой момент времени во всех строках этого отношения, содержащих указанное значение атрибута А, мы найдем одно и то же значение атрибута В. Таким образом, если две строки имеют одно и то же значение атрибута А, то они обязательно имеют одно и то же значение атрибута В. Однако для заданного значения атрибута В может существовать несколько различных значений атрибута А. В этом смысле можно сказать,что функциональная зависимость – это связь МНОГИЕ К ОДНОМУ.
ФЗ описываются с помощью нескольких различных способов нотации. Два наиболее часто используемых способа показаны на рис. 16.
Рис. 16. Два возможных способа записи того, что атрибут В функционально зависит от атрибута А.
Другая терминология: А функционально определяет В или А стрелка В.
Мы будем игнорировать тривиальные (trivial) функциональные зависимости, т.е. зависимости типа А—>В, где атрибут В зависит от некоторого подмножества атрибута А.
. Детерминант функциональной зависимости. Если А -> В есть ФЗ и В не зависит функционально от любого подмножества А, то говорят, что А представляет собой детерминант В. Другими словами: Детерминантом функциональной зависимости называется атрибут или группа атрибутов, расположенная на диаграмме функциональной зависимости слева от символа стрелки.
В конкретной ситуации ФЗ определяется путем детализации свойств всех атрибутов в отношении и выводе заключения о том, как атрибуты соотносятся между собой. ФЗ не могут быть доказаны путем простого просмотра отдельного экземпляра отношения и нахождения двух атрибутов, имеющих те же значения в более чем одном кортеже. Это может служить ключом к тому, в каком направлении следует вести поиск ФЗ, но не доказательством. ФЗ необходимо получить исходя из базовых свойств самих атрибутов.
В качестве примера вновь обратимся к атрибутам в отношении КОНСУЛЬТАНТ (рис. 15.3) и, в частности, к подробному объяснению того, как эти атрибуты связаны между собой. После изучения описаний атрибутов могут быть выведены зависимости, приведенные на рис. 17.
Рис. 17. Различные способы представления ФЗ, существующих между атрибутами отношения КОНСУЛЬТАНТ.
Соображения, приведшие к этим ФЗ, в деталях обсуждаются ниже.
1. Номера студентов являются уникальными. Каждому студенту назначается номер Сном, причем все номера различны. Таким образом, если вы знаете Сном студента, вы знаете, что с ним может быть связана только одна фамилия Сфам: Сном -> Сфам. Обратное не является верным. Сфам -> Сном не является правильной ФЗ, поскольку несколько студентов могут иметь одну фамилию.
2. Каждый студент прикреплен к одной комнате общежития, но в одной комнате может проживать более чем один студент. Таким образом, Сном -> Кном является верным, а Кном -> Сном - нет.
3. Поскольку в каждой комнате только один телефон и каждый телефон, в свою очередь, имеет уникальный номер, получаем Кном -> Тном и Тном -> Кном. Данная ситуация обычно обозначается в виде Сном <-> Тном, и говорят, что Сном и Тном взаимозависимы.
4. Поскольку в каждой комнате только один телефон и этот телефон имеет уникальный номер, следовательно только один телефонный номер может быть связан с данным студентом, или иначе Сном -> Тном.
5. Последняя ФЗ представляет собой пример сложного набора атрибутов, входящих в ФЗ. Зависимость Сном, Курс, Семестр -> Оценка означает, что оценка однозначно определяется только в том случае, если известен Сном студента, изучающего данный Курс в данном Семестре. (Необходимо помнить, что студент может повторить прохождение учебного курса и получить при этом другую оценку).
Самостоятельно следует проверить отношение КОНСУЛЬТАНТ (рис. 15.3) и убедиться в том, что данные в этом отношении согласуются с функциональными зависимостями, представленными на рис. 17. Например, отметим, что
Кном = 120DH и Тном = 2136 всегда располагаются парой (Кном <-> Тном); также Сном=3215 связан только с одной фамилией, именно "ДжонсГ", как и должно быть, поскольку Сном -> Сфам. Другие ФЗ следует верифицировать аналогичным образом. Читателю следует также отметить, что в экземпляре отношения КОНСУЛЬТАНТ, показанном на рис. 15.3, только один номер Сном связан с каждым именем Сфам; однако это не доказывает Сфам -> Сном, что является ложным. Это говорит только о том, что в настоящее время нет двух консультируемых с одной фамилией. В будущем может случиться так, что два студента с одной фамилией будут включены в отношение КОНСУЛЬТАНТ.
Дата добавления: 2015-07-08; просмотров: 227 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Проблема обновления | | | ПРОЦЕСС НОРМАЛИЗАЦИИ |