Опубликован: 02.08.2007 | Доступ: свободный | Студентов: 3892 / 754 | Оценка: 4.55 / 4.39 | Длительность: 27:09:00
ISBN: 978-5-9556-0111-3
Лекция 5:

Функциональные зависимости и реляционные базы данных

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

Алгоритмы построения минимального покрытия

Алгоритм MINIMAZE (G)
input:		Множество ФЗ G
output:	Минимальное покрытие G

	F = NONREDUN ( G )
	Построить непустые множества Еf(X)+, состоящие из ФЗ, с левой частью, 
	эквивалентной Х. Ef(X) - подмножество Ef(X)+, отвечающее атрибуту Х.
	for any Ef(X) из Ef(X)+  do 
                    for any Y -> U из Ef(X) do
                           for any Z -> V <> Y->U из Еf(X) do
                                 if DDERIVERS ( F, Y, -> Z ) then
                                        заменить Y->U и Z->V на  Z->UV в F
	Return(F)

Примеры. Построение минимального покрытия ФЗ

Пусть F = {AB -> C, C -> A, BC -> D, ACD -> B, D -> EG, BE -> C, CG -> BD, CE -> AG}.

Расщепив правые части с помощью правила декомпозиции, получим

AB -> C, C -> A, BC -> D, ACD -> B, D -> E, D -> G, BE -> C, CG -> B, CG -> D, CE -> A, CE -> G}.

CE -> A - избыточна, так как следует из C -> A.

CG -> B - избыточна, так как следует из CG -> D, C -> A, ACD -> B.

Больше избыточных ФЗ нет.

ACD -> B может быть замещена CD -> В, так как C -> A.

Первое МП:

AB -> C, C -> A, BC -> D, CD -> B, D -> E, D -> G, BE -> C, CG -> D, CE -> G.

Построим второе МП, исключив CE -> A, CG -> D, AC -> DB:

AB -> C, C -> A, BC -> D, D -> E, D -> G, BE -> C, CG ->В, CE -> G

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

Правила вывода для MV-зависимостей:

  • Дополнение. Если X \subseteq  U, Y \subseteq  U и задана МФЗ X \to \to Y, то имеет место МФЗ X \to \to U - X - Y.
  • Пополнение. Если X \subseteq  U, Y \subseteq  U, V \subseteq  W и задана МФЗ X Y, то имеет место МФЗ WX \to \to V \cap; Y.
  • Транзитивность. Если X \subseteq  U, Y \subseteq U и заданы МФЗ X \to \to Y и МФЗ Y \to \to Z, то имеет место МФЗ X \to\to Z - Y.
  • Объединение. Если X \subseteq U, Y \subseteq U, Z \subseteq U и заданы МФЗ X \to \to Y и МФЗ X \to \to Z, то имеет место МФЗ X\to \to Y \cap Z.
  • Псевдотранзитивность. Если X, Y, Z, W \subseteq U и заданы МФЗ X \to \to Y и МФЗ WY \to \to Z, то имеет место МФЗ WX \to\to Z - W \cap Y.
  • Смешанная транзитивность. Если X, Y, Z \subseteq U и заданы МФЗ X \to \to Y и ФЗ XY \to Z, то имеет место ФЗ X \to Z - Y.
  • Декомпозиция. Если X, Y, Z \subseteq U и заданы МФЗ X \to \to Y и МФЗ X \to \to Z, то имеют место МФЗ X \to \to Y \cap Z, МФЗ X \to \to Y - Z, МФЗ X \to \to Z - Y.

Совместные правила вывода для F - и MV -зависимостей:

  1. Если X \subseteq Y, Y \subseteq U и задана ФЗ X \to Y, то имеет место МФЗ X \to \to Y.
  2. Если X, Y, Z, W \subseteq U, W \cap Y = 0 и заданы МФЗ X \to \to Y и ФЗ W \to Z, то имеет место ФЗ X \to Z.

Справедливо следующее утверждение: система правил вывода F1-F3, MV1-MV3, FMV1 и FMV2 является надежной и полной.

Правила декомпозиции и объединения MV -зависимостей позволяют сформулировать следующее утверждение. Пусть U - множество атрибутов, тогда можно построить разбиение U-X на множества Y_1, Y_2, \dots, Y_k, такое, что при Z \subseteq U-X имеет место МФЗ X \to\to Z, если только Z является объединением некоторого числа Yi. Набор множеств Y1, Y2, ..., Yk называется базисом Х F - и MV -зависимостей. Каждое Yi может состоять из одного атрибута.

Пусть D - множество F - и MV -зависимостей, тогда, так же как и для F-зависимостей, замыкание D+ множества D может быть логически выведено по аксиомам F1-F3, MV1-MV3, FMV1 и FMV2. Однако этот процесс может потребовать времени, пропорционального eL, где L - число ФЗ в D.

На практике часто требуется только знать, следует ли из D конкретная ФЗ X \to\to Z или X\toZ. Этого достаточно, чтобы исключить избыточные ФЗ. Для того чтобы определить, имеет ли место MV -зависимость X \to \to Z, достаточно построить базис Х зависимостей и посмотреть, является ли Z - X объединением каких-либо его множеств. Для вычисления базиса зависимостей Х относительно D достаточно найти базис относительно множества МФЗ М, где М состоит из а) всех МФЗ из D и б) множества МФЗ X \to \to А_i, i = 1, 2, \dots, n для каждой ФЗ X \to Y в D, где Y = A_1, A_2, \dots, A_n.

Ниже приведен алгоритм вычисления базиса Х ФЗ относительно M.

Алгоритм вычисления базиса функциональных зависимостей

input:   Множество MV-зависимостей М на множестве атрибутов
U, Х \subseteq U
output:  Базис Х относительно М.
  1. Пусть Т - множество множеств Z \subseteq U, таких, что для некоторой МФЗ W \to \to Y в M имеем W \subseteq X, и Z есть либо Y - X, либо U - X - Y.
  2. До тех пор, пока Т не превратится в совокупность непересекающихся множеств, будем искать в нем очередную пару пересекающихся множеств Z1, Z2 и заменять ее множествами Z_1 - Z_2, Z_2 - Z_1 и Z_1 \cup Z_2, отбрасывая пустое множество (Z_1 \subseteq Z_2). В результате получим множество S.
  3. До тех пор, пока возможны изменения во множестве S, будем искать МФЗ V \to\to W в М и некоторое множество Y в S, такие, что Y пересекается с W, но не пересекается с V. Заменяем Y в S на Y \cap W и Y - W.
  4. Полученная совокупность множеств S есть базис Х ФЗ.

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

  • Аксиомы вывода ФЗ позволяют производить формальное (алгебраическое) манипулирование зависимостями разных классов: F- и MV -зависимостями. В рамках данных аксиом преобразования схем отношений реляционных баз данных будут эквивалентными.
  • Аксиомы вывода ФЗ позволяют оперировать отдельными атрибутами зависимостей, при этом сами ФЗ сохраняются: атрибуты из правой части ФЗ могут быть удалены; атрибуты из левой части ФЗ могут быть удалены, если удаляемый атрибут отсутствует в правой части; независимо от того, перекрываются ли множества атрибутов или нет, любые атрибуты из исходного множества можно одновременно подставлять в правую и левую части ФЗ. Несущественные зависимости могут быть удалены, а затем восстановлены.
  • Существует минимальный набор ФЗ, который позволяет восстановить исходный набор ФЗ. Это обстоятельство позволяет теоретически обосновать и практически проводить эквивалентные, сохраняющие семантический смысл данных, преобразования схем отношений реляционной базы данных.

Литература: [3], [11], [14], [15], [20], [31], [43], [44], [45].

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Александра Каева
Александра Каева
Михаил Забелкин
Михаил Забелкин