Программирование >>  Реляционные базы данных 

1 ... 39 40 41 [ 42 ] 43 44 45 ... 125


На рис. .4.39 показаны некоторые кортежи отношения, которое получается не-посрелственио из эюго опрслелеиня.

пате

Carrie Fisher

Carrie Fisher

Carrie Fisher

Carre Fisher

Carrie Fisher

Carre Fisher

J s/rce/ i 12з мар1е St. I 5 Locust Ln. I 123 Maple St 5 Locust Ln. 123 Maple St. I 5 Locust Ln.

city i Hollywood

Malibu

Hollywood I Malibu

Hollywood

Malibu

Star Wars 1 Star Wars i Empire Strikes Back Empire Strikes Back Return of the Jedi Return of the Jedi

year

1977 1977 1980 1980 1983 19B3

Рис. 3.39. Множеаво ogpecoe, незовисимьа от фильмов

Множество адресов предсгавлено здесь точно так же, как на рис. 3.8. Кортежи того отношения были расширены компонентами, соответствующими атрибутам title и year, ключу для класса Movie. Эти а-грибу1Ы представляют фильмы, соединенные с кинозвездой связью starredin.

В отношение на рнс. 3.39 входят два гипотетических адреса Кэрри Фншер (Сагпе Fisher) i три наиболее известных фильма. Связывать адрес только с одним фильмом, а не с другим, нет никаких оснований. Поэтому единственный способ выразить то. что адреса и фи1ьмы являются независимыми свойствами кинозвезд, это повторить адрес с каждым фильмом. Очевидно, что при этом возникает избыточность. Например, на рис. 3.39 каадый из адресов Кэрри Фишер повторяется три раза (по разу для каждого фильма, в котором она играла), а каждый из фильмов повторяется два раза (по разу для каждого адреса).

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

name street title year - city

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

3.8.2 Определение многозначных зависимостей

Многозначная зависимость - это утверждение об отношении R, согласно которому ирн фиксированных зиачения.>с одного множества атрибугов значения некоторых других атрибутов независимы от значений всех остальных атрибутов данного отношения. Точнее говоря, многозначная зависимость

AfA....A ~>* В, Bj .. Д,

верна для отношения R при наличии следующей ситуации. Если мы офаничимся кортежами Л, имеющими конкретное значение для каждого атрибута А .., А то множество значений атрибутов В....., В ие зависит от множества значений атрибутов R. которые не совпадают ли с А, нн с В. Можно дать еще более точное опреде-лек1гс



Многтоначная зависимость верна, если лля каждой пары кортежей t vt и отношения Л, совпадающих по всем атрибутам /1,...,/4 , в R можно найти кортеж v, который совпадает:

a) с / ii и по атрибутам А\ ...,А ,

b) с / по атрибутам В Д,

c) с и по всем атрибутам Л, не совпадающим ни с Ai.....А, ни с В .., В .

Заметим, что, поменяв местами t и и, с помощью этого правила можно вывести существование четвертого кортежа w, который совпадает с и по атрибутам В В а с / по всем другим атрибутам. В результате для любых фиксированных значений атрибутов /1 А , связанные с ними значения атрибутов В В, и других атрибутов появляются во всех возможных комбинациях в разных кортежах. На рис 3.40 показано, как v связано с Mi и при наличии многозначной зависимосги.

A-S-

- Bs

Другие -

Рис. 3.40 Многозначной зависимость гарантирует сущесгеовоние v

В общем случае можно считать, что множества {/4 ...,А } и {В, В, } (левая и правая части) многозначной зависимости не имеют общих элементов. Однако, как и в случае с функциональными зависимостями, допустимо добавлять некоторые А/ в правую часть. Заметим также, что в отличие от функциональных зависимостей, в которых мы начинали с единственного атрибута в правой части и допускали множество атрибртов справа только в качестве сокращения, при многозначной зависимости необходимо сразу рассматривать множества атрибутов в правой части. Как показывает пример 3.45, иногда невозможно расчленить правые части многозначных зависимостей на единичные атрибуты.

Пример 3.44. В примере 3.43 была введена многозначная зависимость, которая в новом обозначении имееп вид

пате - street ctty

Здесь для каждого имени кинозвезды множество адресов появляется вместе с каждым фильмом, в котором кинозвезда играла. В качестве примера применения многозначной зависимости рассмотрим первый и четвертый кортежи из рис 3.39.

пате

sfreef

city

title

year

Carrie Fistier

123 Maple St.

Hollywood

Star Wars

1977

Carrie Fisher

6 Locust Ln

Malibu

Empire Strikes Back

1980



name

street

c fy

i tiUe

year

Came Fistier

5 Locust Lr.

Hollywood

Star Wars

1977

Came Fisher

123 IVIaple St.

Malibu

Star Wars

1977

Ho это ложные кортежи, так как на самом деле лом 5 но Locust Ln. относится к Malibu, а НС к Hollywood. CD

Обозначим первыГ! кортеж л а второй и. Тогда из многозначной зависимости спеяуег, что в Л должен быть кортеж, который по имени Carrie Fisher, улице и городу совпадает с первым кортежем, а по другим атрибутам (title и year) совпадает со вторым кортежем. Такой кортеж действительно есть -это трети кортеж на рис 3.39.

Если обозначить первый кортеж и, а второй г, многозначная зависимость определяет, что в R должен быть кортеж, который совпадает со вторым кортежем по атрибутам name, street и city, а с первым по атрибу1ам name, title и year. Такой кортеж тоже существует - это второй кортеж па рис 3.39. □

3.8.3 Логические рассуждения

о многозначных зависимостях

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

Правило тривиальных зависимостей гласит, что если многозначная зависимость Ai А,... А -** В, Bi... в , истинна для некоторого отношения, то для пего истинна и

AiA2...A - C, Cj... Q.

me атрибуты с - это атрибуты В Л вместе с некоторыми атрибутами А......А . В обратном порядке можно также удалить атрибугы В......В , встречающиеся среди атрибутов А,А , и вывести многозначную зависимость

/1,/1,.../4 - + D, С,

если Df,.... О,-это атрибуты, не встречающиеся среди атрибутов А......А .

Правим транзитивности гласит, что если истинны Ау А ...A -*- By Bj ... В и By Bj ... в, -*> с, с.... то истинна и

А,Аг...А Су с,... Q Однако для многозначных зависимостей нет правила расшепления/соедииения.

Пример 3.45. Рассмотрим отношение на рис. 3.39 с многозначной зависимостью

пате - street city Если бы действошшо правило расшеп-чения, зависимость

пате street

тоже была бы истинной. Она означает, что улица нз адреса каждой кинозвезды не зависит от других атрибутов, в том числе city. Но это угверждение ложно. Рассмотрим, например, первые два кортежа на рис. 3.39. Гипотетическая .многозначная за-висилюсть позволяет 3aKnra4trrb, что в отношение входят кортежи, в которых улицы взаимно заменены:



1 ... 39 40 41 [ 42 ] 43 44 45 ... 125

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