Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Основные определения. Для демонстрации основных идей данного раздела используется несколько измененная версия отношения поставок





Для демонстрации основных идей данного раздела используется несколько измененная версия отношения поставок, которое в дополнение к обычным атрибутам S#, P# и QTY будет содержать также атрибут CITY, представляющий город соответствующего поставщика. Во избежание путаницы далее это измененное отношение будет называться SCP. Оно в виде таблицы представлено на рис. 9.1.

Следует четко различать: а) значение этого отношения (т.е. значение переменной отношения) в определенный момент времени; б) набор всех возможных значений, которые данное отношение (переменная) может принимать в различные моменты времени (подробнее это описано в главе 4). Сначала дадим определение концепции функциональной зависимости для пункта (а), а затем для пункта (б).

■ ■ Пусть R— это отношение, а X и У— произвольные подмножества множества атрибутов отношения R. Тогда Y функционально зависимо от X, что в символическом виде записывается как

(и читается либо как функционально определяет Y", либо как "X стрелка Y"), тогда и только тогда, когда каждое значение множества X отношения R связано в точности с одним значением множества Y отношения R.

Иначе говоря, если два кортежа отношения R совпадают по значению X, они также совпадают и по значению Y. Например, таблица отношения SCP (см. рис. 9.1) удовлетворяет приведенной ниже функциональной зависимости, поскольку все кортежи отношения SCP с одинаковым значением атрибута S# имеют одинаковое значение атрибута CITY.

На самом деле это отношение удовлетворяет нескольким функциональным зависимостям:

(Упражнение. Проверьте правильность этого утверждения).

Левая и правая стороны символической записи функциональной зависимости иногда называются детерминантом и зависимой частью соответственно. Как говорится в определении, детерминант и зависимая часть являются множествами атрибутов. Когда множество содержит только один атрибут, он называется одноэлементным множеством, скобки опускаются и символическая запись принимает вид

Как было замечено ранее, эти функциональные зависимости относятся к "пункту (а)", т.е. к отдельным значениям отношения. Однако при рассмотрении переменных отношения, например базовых отношений, интерес представляют не столько функциональные зависимости для определенного в некоторый момент времени значения, сколько функциональные зависимости, выполняющиеся для всех возможных значений данной переменной. Например, в случае отношения SCP функциональная зависимость

выполняется для всех возможных значений SCP, поскольку в любой момент времени данному поставщику соответствует в точности один город; таким образом, любые два кортежа отношения SCP в один и тот же момент времени и с одним и тем же номером поставщика должны соответствовать одному и тому же городу. Практически утверждение, что данная функциональная зависимость выполняется "всегда" (т.е. для всех возможных значений SCP), является ограничением целостности для отношения SCP, поскольку при этом накладываются определенные ограничения на все допустимые значения.

Ниже приведено определение концепции функциональной зависимости для пункта (б) (в нем расширения определения, данного для пункта (а), отмечены полужирным шрифтом).

■ ■ Пусть R является переменной отношения, а X и Y— произвольными подмножествами множества атрибутов отношения R. Тогда Y функционально зависимо от X, что в символическом виде записывается как

(и читается либо как " X функционально определяет Y ”, либо как “ X стрелка Y ”), тогда и только тогда, когда для любого допустимого значения отношения R каждое значение X связано в точности с одним значением Y.

Иначе говоря, для любого допустимого значения отношения R, когда бы два кортежа отношения R ни совпадали по значению X, они также совпадают и по значению Y. Следовательно, далее термин "функциональная зависимость" будет использоваться в последнем безотносительном ко времени смысле (за исключением особо оговоренных случаев).

Ниже перечислено несколько безотносительных ко времени функциональных зависимостей для переменной отношения SCP:

Обратите внимание, в частности, на функциональные зависимости, которые выполняются для таблицы на рис. 9.1, но не выполняются "всегда":

Иначе говоря, например, такое утверждение, как "число деталей для каждой поставки данного поставщика одинаково", истинно для значений таблицы на рис. 9.1, но не верно для всех возможных допустимых значений отношения SCP.


Следует отметить, что если X является потенциальным ключом отношения R, например X является первичным ключом, то все атрибуты Y отношения R должны быть обязательно функционально зависимы от X (это следует из определения потенциального ключа). В обычном отношении деталей Р, например, необходимо, чтобы выполнялась зависимость

Фактически, если отношение R удовлетворяет функциональной зависимости А ® В и А не является потенциальным ключом, то R будет характеризоваться некоторой избыточностью. Например, в случае отношения SCP сведения о том, что каждый данный поставщик находится в данном городе, будут повторяться много раз (это хорошо видно на рис. 9.1). Более подробно этот вопрос обсуждается в главе 10.

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

Почему эта цель столь важна? Одна из причин состоит в том, что, как уже отмечалось, функциональные зависимости являются ограничениями целостности, поэтому при каждом обновлении данных в СУБД все они должны быть проверены. Следовательно, для заданного множества функциональных зависимостей 5 желательно найти такое множество Т, которое (в идеальной ситуации) было бы гораздо меньшего размера, чем множество S, причем каждая ФЗ множества S могла бы быть заменена функциональной зависимостью множества Т. Если бы такое множество Т было найдено, то в СУБД достаточно было бы использовать ФЗ из множества Т, а ФЗ из множества 5 подразумевались бы автоматически. Поэтому задача поиска подходящего множества Т представляет большой практический интерес.







Date: 2016-05-25; view: 502; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию