Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

-110 -

3.5.5.Составные функциональные зависимости

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

Составная функциональная зависимость (CF-зависимость), имеющая вид (X1, X2, ... , Xk) Y, представляет собой множество F-зависимостей Xi Xj, Xi Y на схеме R при условии 1 i,j k.

По аналогии с терминологией функциональных зависимостей (X1, X2, ... , Xk) называется левой частью, Y - правой частью составной функциональной зависимости, а Xi - левые множества. Правая часть в составной функциональной зависимости может отсутствовать, в этом случае запись будет иметь вид (X1, X2, ... , Xk).

Пример. F = {A B, B A, AC D, BC E}. Зависимости из данного множества можно представить в виде множества из двух CFзависимостей следующим образом: G={(A,B),(AC,BC) DE}. В первой составной F-зависимости отсутствует правая часть.

Понятие эквивалентности для CF-зависимостей используется так же, как и для F-зависимостей. То есть если имеется множество CFзависимостей F и множество F-зависимостей и (или) CF-зависимостей, то они эквивалентны, если каждое отношение r(R), удовлетворяющее F, удовлетворяет G и наоборот.

Аналогично и относительно покрытий. Множество F является покрытием G, если F G, а множества F и G состоят из F- зависимостей, CF-зависимостей или из зависимостей обоих типов.

Пример. Имеется множество F = {A B, B A, AC D, BC E}, состоящее из одних F-зависимостей, множество G ={(A,B), (AC,BC) DE}, состоящее из одних CF-зависимостей, и множество G = {(A,B), A B, B A }, состоящее из зависимостей обоих видов. Все эти множества эквивалентны.

Множество F-зависимостей F является характеристическим множеством для CF-зависимости (X1, X2, ... , Xk) Y, если F {(X1, X2, ... , Xk) Y}. Если каждое левое множество из CF-зависимости встречается в левой части F-зависимостей характеристического множества F точно один раз, то

- 111 -

множество F называется естественным характеристическим множеством.

Пример. Для CF-зависимости (A,B) характеристическим множеством является F={A B, B A}, а для CF-зависимости (AC,BC) DE — одно множество G={AC BC, BC AC, BC DE}, а другое — G = {AC B, BC A, BC DE}. Для первой CFзависимости характеристическое множество одновременно является и естественным, поскольку оба левых множества A и B в точности по одному разу входят в левые части зависимостей множества F. Для второй CF-зависимости оба множества G и G являются характеристическими, но не естественными, поскольку левое множество BC в обоих случаях дважды входит в левые части F- зависимостей. Естественным характеристическим множеством будет F ={AC BD, BC AE}.

Естественных характеристических множеств может быть несколько. Наибольший интерес из них представляет множество вида {X1 X2, X2 X3, ..., Xk-1 Xk, Xk X1Y}, которое легко представляется в виде кольца.

X4

Xk-1

 

X3

Xk

Y

X2

X1

 

Такое множество носит название кольцевого естественного характеристического множества CF-зависимости (для краткости будем называть его просто кольцевым множеством).

Пример. Для CF-зависимости (A,B) кольцевым множеством также является F={A B, B A}, а для CF-зависимости (AC,BC) DE

— множество G={AC BC, BC ACDE}.

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

-112 -

3.5.6.Кольцевые покрытия

Определение. Множество CF-зависимостей F называется кольцевым, если не существует различных CF-зависимостей с левыми множествами X и Z таких, что X Y в F.

Поскольку множества CF-зависимостей подчиняются тем же правилам, что и множества F-зависимостей, то все алгоритмы, которые нами рассматривались, могут быть адаптированы для работы с CFзависимостями.

Становится совершенно ясно, что для множества F-зависимостей G можно найти кольцевое покрытие с количеством CF-зависимостей, не превышающим |EF|, где F - неизбыточное покрытие G. Для этого все F-зависимости одного класса эквивалентности представляются одной CF-зависимостью, где левые множества образуются из множеств eF(X), а правая часть получается путем объединения всех правых частей из

EF(X).

Пример. Для неизбыточного множества F={A BC, B AD, AE I,BE IJ}существуют EF = {EF(A), EF(AE)}, где EF(A) = {A BC, B AD}, EF(AE)= {AE I,BE IJ}, eF(A)={A,B}, eF(AE)={AE, BE}. В этом случае можно получить кольцевое покрытие G={(A, B) ABCD, (AE, BE) IJ}.

С решением обратной задачи могут возникнуть сложности, связанные с тем, что при переходе от кольцевого покрытия к множеству F-зависимостей путем объединения характеристических множеств всех CF-зависимостей этого покрытия с числом CFзависимостей, равным |EF|, что интуитивно предполагает получение неизбыточного множества F-зависимостей, такого результата может не получиться.

Пример. Множество G={(A, AB, B) CD, (AE) IJ} - кольцевое покрытие для множества F={A BC, B AD, AE I, BE IJ}, рассмотренного в предыдущем примере, после объединения естественных характеристических множеств будет преобразовано к виду F ={A AB, AB B, B ACD, AE IG}. Действительно, множество G имеет две CF-зависимости, а множество F F имеет два класса эквивалентности, однако полученная зависимость AB B является избыточной, поскольку AB B.

Если G — множество CF-зависимостей, содержащее (X1, X2, ... , Xk) Y, при этом A Xi, тогда атрибут A называется перемещаемым, если его можно перенести из Xi в Y без

- 113 -

изменения эквивалентности G. Левое множество перемещаемо, если его можно целиком перенести в Y.

При перемещении левого множества следует руководствоваться следующими соображениями: все левые множества эквивалентны и если одно из них является собственным подмножеством другого левого множества, то возникает ситуация, когда естественное характеристическое множество будет содержать зависимости вида AX X. Наличие зависимостей такого вида говорит о наличии избыточности и позволяет перенести множество в правую часть.

Пример. В зависимости (A, AB, B) CD множество AB можно переместить в правую часть, и тогда множество CF-зависимостей из предыдущего примера можно будет представить в следующем виде: G ={(A, B) ABCD, (AE) IJ}, его, в свою очередь, можно представить в виде уже неизбыточного множества F-зависимостей, сформированного объединением естественных характеристических множеств F ={A B, B ABCD, AE IJ}.

Определение. Кольцевое множество CF-зависимостей G неизбыточно, если из него нельзя удалить ни одну CFзависимость и если ни одна CF-зависимость не содержит перемещаемых левых множеств.

Пример. Множество G={(A, AB, B) CD, (AE) IJ} - избыточно, поскольку оно содержит перемещаемое левое множество AB, а множество G ={(A, B) ABCD, (AE) IJ} — неизбыточно.

Таким образом, неизбыточные кольцевые множества позволяют получить неизбыточные множества F-зависимостей при объединении естественных характеристических множеств для всех CF-зависимостей из кольцевого множества.

Определение. CF-зависимость {(X1, X2, ... , Xk) Y} G, где G — неизбыточное кольцевое множество, называется редуцированной, если левые множества не содержат перемещаемых атрибутов, а правые части – посторонних.

Пример. Множество G={(A, AB, B) CD, (AE) IJ} содержит перемещаемое левое множество, множество G ={(A, B) ABCD, (AE) IJ} содержит посторонние атрибуты AB в правой части CFзависимости (A, B) ABCD, следовательно, оба множества не являются неизбыточными кольцевыми множествами, а множество G ={(A, B) CD, (AE) IJ} удовлетворяет этим условиям.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]