На что влияют функциональные зависимости

Как определять функциональные зависимости

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

1. Функциональные зависимости гарантируют, что СУБД в дальнейшем будет поддерживать определенные ими ограничения целостности.

2. Возможно, обеспечат более эффективную реализацию отношения.

3. Но! Делают невозможным хранение некоторой информации.

Рассмотрим пример, иллюстрирующий важность определения функциональных зависимостей. Пусть, например, определена следующая схема отношения: ОТДЕЛ (Название, Номер помещения, Телефон). Очевидно, что такая схема отношения определяет функциональную зависимость
Название à Телефон. Возможная реализация отношения:

ОТДЕЛ (Название Номер помещения Телефон)

Бухгалтерия 128 123-4567

… … …

Это означает, что никакой отдел не может иметь несколько телефонов.

Еще один пример. Уже говорилось, что в любом отношении есть функциональная зависимость PK à R. Если для некоторой схемы R кроме указанной функциональной зависимости существуют еще и другие, типа A à B, то, вообще говоря, схема отношения R будет характеризоваться некоторой избыточностью. Действительно, рассмотрим следующую схему отношения:

ПОСТАВЩИК (Номер поставщика, Имя, Город, Код города)

В этой схеме определена функциональная зависимость Город à Код города. Следовательно, в каждом кортеже для каждого значения атрибута Город будет повторяться соответствующее значение атрибута Код города.

Чем это плохо?

Функциональные зависимости определяют некоторые ограничения целостности, которые должны проверяться при каждом обновлении состояния БД. Если таких ограничений много – слишком много времени будет тратиться на их проверку, что, конечно же, не очень хорошо. Например, если в некоторой реализации приведенного выше отношения ПОСТАВЩИК несколько десятков (или более) кортежей имеют одно и то же значение атрибута Город (например, Москва), и поменялся код этого города, необходимо внести изменения во все кортежи отношения.

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

Вопрос: Как определить все функциональные зависимости? Можно ли, и как, определить минимальное количество функциональных зависимостей?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: