Функциональные зависимости

Пусть R =(A 1... An) является функциональной схемой отношения и X, Y - некоторые подмножества атрибутов этой схемы. Говорят, что X функционально определяет Y (XY), если в любом экземпляре отношения со схемой R не существует двух кортежей, совпадающих по подмножеству X и не совпадающих по подмножеству Y

Иначе говоря, если два кортежа совпадают по X, то они должны совпадать и по Y

Например, R =(A 1, A 2, A 3, A 4), есть зависимости:

  • A 1→ A 2 (1)
  • A 1 A 3→ A 4 (2)

Предположим, что имеет место один экземпляр отношения со схемой R

Вторая ФЗ (2) имеет место быть, так как нет двух кортежей, совпадающих по этой паре (по крайней мере, в приведённом экземпляре схемы отношения, а других мы не знаем).

А первая ФЗ (1) не имеет место быть (в третьей строке другой номер дома портит всю картину).

Замыкание множества функциональных зависимостей

Пусть R - универсальная схема отношения, а F - исходное множество функциональных зависимостей на этой схеме. Замыканием F называется всё множество функциональных зависимостей, которое логически следует из F - обозначается как F +

Функциональная зависимость логически следует из F, если её можно вывести (получить) с помощью аксиом Армстронга.

Аксиомы Армстронга

Или правила вывода функциональной зависимости. Существуют различные интерпретации аксиом, но все эквивалентны. Потому приведём только один вариант.

Аксиомы Армстронга являются надёжными и полными.

Надёжность - если ФЗ выводится с помощью аксиом Армстронга, то она справедлива во всех экземплярах отношения, где справедливы исходные ФЗ F

Полнота - если имеет место какая-либо ФЗ, то она обязательно может быть выведена с помощью аксиом Армстронга.

Рефлексивность

Если YXR

то XY. Тривиальная аксиома.

Дополнение

Если XY и ZR (Z может быть пустым),

тогда XZYZ или XZYZ

Транзитивность

Если XY, а YZ,

то XZ

Пример построения множества ФЗ

Пусть задана УСО (универсальная схема отношения) R =(A, B, C) и зависимости F =(AB, BC)

  1. AA, BB, CC, ABA, ABB, ACA, ACC, BCB, BCC, ABCA, ABCC, ABAB, ACAC, BCBC, ABCAB, ABCAC, ABCBC, ABCABC
  2. AAB (1ФЗ и пополняем A), ACBC, BBC (2 ФЗ и пополняем B), ABAC, ACABC, ABABC, ABBC, AAC
  3. AC (1 и 2 ФЗ), AABC

Всё, замыкание (F +) построено. Все перечисленные зависимости образуют замыкание.

Лемма

Справедливы следующие правила. Для их доказательства необходимо пополнить ФЗ так, чтобы можно было использовать аксиомы.

Правило объединения

Если XY и XZ, то XYZ

Доказательство:

  1. XXY (1 ФЗ и пополняем X);
  2. XYYZ (2 ФЗ и пополняем Y);
  3. XYZ (по аксиоме транзитивности).

Правило декомпозиции

Если XY, а ZY, то XZ

Доказательство:

  1. XY (по условию);
  2. YZ (по аксиоме рефлексивности);
  3. XZ (по аксиоме транзитивности).

Правило псевдотранзитивности

Если XY и WYZ, то WXZ

Доказательство:

  1. WXWY (1 ФЗ и пополняем W);
  2. WYZ (по условию);
  3. WXZ (по аксиоме транзитивности).

Замыкание множества атрибутов

Замыкание F + может включать в себя очень большое количество ФЗ. Например:

F =(XA 1, XA 2... XAn)

XYF +

Y ⊆(A 1, A 2... An) и таких подмножеств может быть 2 n

Поэтому "в лоб" замыкание F + никто не строит. Но необходимо найти какой-то метод, который достаточно просто позволял бы выяснять, принадлежит ли произвольная ФЗ XY к F +

Для этого применяется замыкание множества атрибутов.

Пусть R - универсальная схема отношения, а X - некоторое подмножество атрибутов. Тогда замыканием множества атрибутов X + называется совокупность атрибутов Ai 1, Ai 2... Aik таких, что XAi 1, XAi 2... XAik

Алгоритм построения

Алгоритм является итерационной процедурой.

  1. полагаем i =0 и X +0= X, а X + i - замыкание множества атрибутов на i-том шаге;
  2. X + i +1= X + iV, где V - такое множество атрибутов в F, что существует ФЗ YZ, где YX + i, VZ;
  3. если X + i +1= X + i, то X += X + i, иначе i = i +1 и возвращаемся в пункт 2.

Пример построения

Пусть R =(A, B, C, D, E, G)

F =(ABC, CA, BCD, ACDB, DEG, BEC, CGBD, CEAG)

X = BD

Надо построить X +:

1) i =0, X +0= BD

2)

Получили, что X +4= X +3, а значит X += X +3= BDEGCA

Это означает, что имеют место следующие ФЗ: BDB, BDD, BDE, BDG, BDC, BDA, и все они ⊆ F +

Короче, чтобы проверить XYF +, необходимо построить X +


 



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



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