Программирование >>  Хронологические базы данных 

1 ... 121 122 123 [ 124 ] 125 126 127 ... 348


Небольшое замечание в отношении используемой терминологии. В англоязычной литературе одновременно употребляются два термина: functional dependence и functional dependency. Согласно нормам использования английского языка термин dependence следовало бы применять для обозначения самой функциональной зависимости, а термин dependency - для обозначения зависимых объектов. Однако термин функциональная зависимость часто приходится применять во множественном числе, а в таких случаях термин dependencies кажется более удобным для произношения, чем dependences . Именно это и определяет смешанное использование обоих терминов.

10.2. Основные определения

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

CITY

London

London

Paris

Paris

Paris

London

London

London

Puc. W.I. Пример значения переменной-отношения SCP

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

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

X Y

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



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

{ S# } { CITY }

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

{ S#, Р# } { QTY }

{ S#, РМ { CITY }

{ S#, Р# } { CITY, QTY }

{ S#, Р# } { S# }

{ S#, Р# } { S#, Р#, CITY, QTY }

{ SM -> { QTY }

{ QTY } { S# }

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

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

S# CITY

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

S# -> CITY

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

CONSTRAINT S# CITY FD

COUNT ( SCP { S# } ) = COUNT ( SCP { S#, CITY } ) ;



Выражение S# CITY может расцениваться как сокращенный способ представления этой более длинной формулировки.

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

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

X Y

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

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

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

{ S#, Р# } QTY

{ S#, Pt } CITY

{ St, Pt } { CITY, QTY }

{ St, Pt } St

{ S#, Pt } -> { St, P#, CITY, QTY } { St } CITY

Обратите внимание, в частности, на функциональные зависимости, которые выполняются для отнощения, представленного на рис. 10.1, но не выполняются всегда для переменной-отнощения SCP.

St QTY QTY St

Иначе говоря, такое утверждение, как число деталей для каждой поставки данного поставщика одинаково , истинно для конкретных значений, присутствующих в отнощений на рис. 10.1, но ложно для всех возможных допустимых значений переменной-отнощения SCP.

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

Р# { Pt, PNAME, COLOR, WEIGHT, CITY } Глава 10. Функциональные зависимости 403



1 ... 121 122 123 [ 124 ] 125 126 127 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика