ТОРА (9) - Лекция №5 - Третья нормальная форма

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску

...начало

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

Свойство сохранения ФЗ

Алгоритм проверки схемы БД на обладание свойством сохранения ФЗ

Пример 1

Пусть $$R = (A, B, C)$$, $$\rho = (AB, BC) = (R_1, R_2)$$ и $$F = (A\rightarrow B, B\rightarrow C)$$

Обладает ли $$\rho$$ сохранением ФЗ?

Смотрим:

1)

$$H=\varnothing$$, $$УНП = (A\rightarrow BC, B\rightarrow C)$$

2)

$$G = (A\rightarrow B, A\rightarrow C, B\rightarrow C)$$

3)

$$A\rightarrow B$$, $$AB\subseteq R_1$$
$$A\rightarrow C$$, $$AC\nsubseteq R_2$$, $$H=(A\rightarrow C)$$
$$B\rightarrow C$$, $$BC\subseteq R_2$$

4) пропускаем, так как не выполнилось условие в 3)

5)

$$H$$ не пустое.

6)

выполняется ли $$A\rightarrow C\in(G-H)^+ = (A\rightarrow B, B\rightarrow C)^+$$
$$A^+=ABC$$, $$C\in A^+$$, значит $$\rho$$ обладает сохранением ФЗ.
Пример 2

Пусть $$R = (A, B, C)$$, $$\rho = (AB, AC) = (R_1, R_2)$$ и $$F = (A\rightarrow B, B\rightarrow C)$$

Обладает ли $$\rho$$ сохранением ФЗ?

1-4)

$$H = \varnothing$$, $$УНП = (A\rightarrow BC, B\rightarrow C)$$
$$H = (B\rightarrow C))$$

5)

$$H$$ не пустое.

6)

выполняется ли $$B\rightarrow C\in(G - H)^+ = (A\rightarrow BC)^+$$
$$B^+ = B$$, $$C\notin B^+$$, значит $$\rho$$ не обладает сохранением ФЗ.

Ключ схемы отношения

Ключ схемы отношения – это подмножество исходной схемы, состоящая из одного или нескольких атрибутов, которые задают уникальность значений в кортежах отношений.

Если атрибут $$A_i\in R$$ входит в какой-либо ключ схемы отношения $$R$$, то он называется первичным. А если не входит ни в один, то называется непервичным.

Пусть

$$R = (A_1 ... A_n)$$ - некоторая схема отношения.
$$F$$ - множество ФЗ.

Тогда

$$X\subseteq R$$ называется ключом схемы, если выполняются:
  • $$X\rightarrow A_1 ... A_n\in F^+$$
  • $$\forall Z\subset X$$, $$Z\rightarrow A_1 ... A_n\notin F^+$$. То есть $$X$$ содержит минимальное число атрибутов, для которых выполняется предыдущее свойство.

Алгоритм построения ключа

Базируется на определении ключа. Позволяет построить только один ключ.

1)

$$i = 0$$, $$X_0 = A_1 ... A_n$$

2)

цикл по атрибутам $$A_j$$ в $$X_i$$
Если $$(X_i - A_j)^+ = R$$, то $$X_{i+1} = X_i - A_j$$, $$i = i + 1$$ и выйти из цикла;
иначе продолжить цикл

3)

если $$i$$ возросло, то перейти к шагу 2);
иначе $$X = X_i$$ - это найденный ключ.

Пример построения ключа

Пусть $$R = (A, B, C, D)$$, $$F = (AB\rightarrow DC, BC\rightarrow AD)$$

Надо построить ключ.

1)

$$i = 0$$, $$X_0 = ABCD$$

2)

$$(X_0 - A)^+ = (BCD)^+ = BCDA = R$$, значит $$X_1 = BCD$$, $$i = 1$$

3)

$$i$$, как видим, возросло, значит опять 2)

2)

$$(CD)^+ = CD\neq R$$
$$(BD)^+ = BD\neq R$$
$$(BC)^+ = BCAD = R$$, $$X_2 = BC$$, $$i = 2$$

3)

$$i$$, как видим, возросло, значит опять 2)

2)

$$C^+ = C\neq R$$
$$B^+ = B\neq R$$

3)

$$i$$, как видим, не возросло. Значит, $$X = BC$$ - ключ. Но не единственный, $$X = AB$$ - тоже ключ, просто у нас получился сначала этот.

Значит, $$A,B,C$$ - первичные атрибуты, а $$D$$ - непервичный.

Третья нормальная форма

Отношение находится в 3НФ, если не существует тройки:

  • ключа $$X$$,
  • $$Y\subseteq R$$,
  • непервичного атрибута $$H\notin Y$$,

для которой выполняются:

  • $$X\rightarrow Y\in F^+$$;
  • $$Y\rightarrow H\in F^+$$;
  • $$Y\rightarrow X\notin F^+$$.

Если такую тройку можно найти, то схема не находится в 3НФ.

Если схема отношения находится в 3НФ, то в большинстве случаев эта схема отношения не обладает аномалиями. Но существуют условия, когда схема в 3НФ обладает этими аномалиями. Хотя, встречаются они редко. Вот они:

  • схема отношения имеет 2 или больше ключей,
    • и любые 2 из них являются составными,
      • и имеют общий атрибут.

Пример 1

Пусть $$R = (A, B, C, D)$$, $$F = (A\rightarrow B, AC\rightarrow D)$$ и $$\rho = R$$

Доказать, что это отношение не находится в 3НФ.

Доказываем:

1)

$$i = 0$$, $$X_0 = ABCD$$

2)

$$(BCD)^+ = BCD\neq R$$
$$(ACD)^+ = ACDB = R$$, $$X = ACD$$, $$i = 1$$

3)

$$i$$, как видим, возросло, значит опять 2)

2)

$$(CD)^+ = CD\neq R$$
$$(AD)+^ = ADB\neq R$$
$$(AC)^+ = ACBD = R$$, $$X_2 = AC$$, $$i = 2$$

3)

$$i$$, как видим, возросло, значит опять 2)

2)

$$C^+ = C\neq R$$
$$A^+ = AB\neq R$$

3)

$$i$$ не возросло, значит $$X = X_2 = AC$$ - это ключ. Причём, можно показать, что он единственный.

Теперь предполагаем тройку:

  • $$X = AC$$
  • $$Y = A\subseteq R$$
  • $$H = B$$ - непервичный атрибут, $$B\notin X$$

Проверям три условия для неё:

1)

$$X\rightarrow Y$$, так как $$AC\rightarrow A$$ по 1 аксиоме Армстронга;

2)

$$Y\rightarrow H$$, $$A\rightarrow B$$ по условию;

3)

$$Y\nrightarrow X$$, $$A\nrightarrow AC$$
$$A^+ = AB$$, $$AC\nsubseteq A^+$$

Таким образом, найдена тройка, для которой выполняются все три условия, а значит отношение не находится в 3НФ.

Пример 2

Декомпозируем эту схему отношения $$R$$ на две схему отношений.

$$R = (A, B, C, D)$$

$$F = (A\rightarrow B, AC\rightarrow D)$$

$$\rho = (AB, ACD) = (R_1, R_2)$$

Если $$R_1$$ и $$R_2$$ находятся в 3НФ, то значит всё $$\rho$$ будет в 3НФ.

Сначала покажем 3НФ у $$R_1 = (AB)$$, $$F = (A\rightarrow B)$$:

  • $$X = A$$ - выберем ключом
  • $$Y$$, $$X\rightarrow Y$$, $$Y\nrightarrow X$$
$$Y = B$$, $$A\rightarrow B$$, $$B\nrightarrow A$$
  • невозможно подобрать непервичный атрибут $$H\notin Y$$, потому что непервичным может быть только $$B$$.

Таким образом, нельзя подобрать необходимую тройку. Значит, $$R_1$$ находится в 3НФ.

Теперь покажем 3НФ у $$R_2 = (ACD)$$, $$F = (AC\rightarrow D)$$:

  • $$X = AC$$ - выберем ключом
  • $$Y$$, $$X\rightarrow Y$$, $$Y\nrightarrow X$$
а) $$A$$ - что-то как-то не выполняется;
б) $$C$$ - что-то как-то не выполняется;
в) $$D$$ - что-то как-то не выполняется;
г) $$AD$$ - что-то как-то не выполняется;
д) $$CD$$ - что-то как-то не выполняется.
  • $$H\notin Y$$, $$H = D$$
а) $$Y = A$$, $$Y\nrightarrow H$$
б) $$Y = C$$, $$Y\nrightarrow H$$
в-д) $$H\in Y$$

Не удалось подобрать нужную тройку, так что $$R_2$$ тоже находится в 3НФ.