Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

Пусть 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... XA n)

XYF +

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

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

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

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

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

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

  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 +


 

Лекция №3 - Хорошая схема БД - Соединение без потерь

Пусть F и G - два множества ФЗ.

G называется покрытием F, если имеет место равенство G += F +

Существуют различные виды покрытий. Но мы рассмотрим только один - условно-неизбыточное покрытие.

Алгоритм построения условно-неизбыточного покрытия

1) если в множестве ФЗ F встречаются ФЗ с одинаковой левой частью X, то следует объединить эти ФЗ в одну ФЗ. Это следует из леммы объединения. Получившееся множество ФЗ обозначим G;

2) для каждой ФЗ XY из G заменить её на XX +− X;

После выполнения 1) и 2) получаем замыкание G += F +

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

1)

Докажем, что если ФЗ XYF (из этого следует, что YX + (1) по определению замыкания множества аттрибутов), то эта ФЗ принадежит G +

По построению G имеет место ФЗ: XX +− X (2)

Пополним эту ФЗ: X →(X +− X)⋃ X, получится, что XX + (3)

Теперь по первой аксиоме Армстронга из (1) имеем X +→ Y (4)

Значит, XYG +, по третьей аксиоме Армстронга, исходя из (3) и (4).

2)

Докажем обратное, что если XYG, то XYF +

По построению G имеем: Y = X +− X (5)

Для F имеем:

XX + (по определению) (6)

X +→ X +− X (1 аксиома Армстронга, так как X +− XX +) (7)

XX +− X = Y (3 аксимома Армстронга из (6)и (7), и по равенству (5))

В итоге получили XYF +.

Теорема доказана.

Пример

УСО: R =(A, B, C)

Множество ФЗ: F =(AB, BA, CA, AC, BC)

1)

G =(ABC, BAC, CA)

2)

A += ABC, A +− A = BC

B += BAC, B +− B = AC

C += CAB, C +− C = AB


Тогда G =(ABC, BAC, CAB) будет являться УНП.

Свойства "хорошей" схемы БД

"Хорошая", но не оптимальная. Должна обладать следующими свойствами:

  • соединение без потерь;
  • сохранение ФЗ;
  • каждая схема отношений в этой БД находится в 3НФ. Наличие этого свойства обеспечивает отсутствие в схемах отношений следующих аномалий:
    • избыточность;
    • потенциальная противоречивсть;
    • аномалия обновления;
    • аномалия удаления.

Соединение без потерь

Чтобы схема БД обладала свойством соединения без потерь, необходимо, чтобы хотя бы одна из таблиц содержала ключ универсальной схемы отношений.

Пусть ρ =(R 1... R n) - схема БД. Она будет обладать свойством соединения без потерь, если для любого экземпляра отношения r из R справедливо равенство: rR 1(r)⋈Π R 2(r)⋈...⋈Π R n (r), где Π R i (r) - это проекция экземпляра отношения r на множество атрибутов R i

Пример БД, не обладающей свойством соединения без потерь

R =(A, B, C)

ρ =(AB, BC)=(R 1, R 2)

F =(AB)

Достаточно привести пример экземпляра r, для которого равенство не выполняется:

Полученное соединение не будет равняться r:

Этот пример показывает, что при неправильном построении БД запросы могут выдавать неправильный результат.

Пример БД, обладающей свойством соединения без потерь

R =(A, B, C)

ρ =(AB, AC)=(R 1, R 2)

F =(AB)

Возьмём тот же экземпляр:

Полученное соединение будет равняться r:

Но это не доказательство, а только один пример, просто чтобы показать, в чём разница.



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 238; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.227.250 (0.006 с.)