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

Для объединения множеств атрибутов употребляются следующие обозначения:

если наименование атрибута имеет смысл, то вместо знака объединения ставится один пробел;

если атрибут обозначается произвольной латинской буквой, то знак объединения не ставится; запись XY эквивалентна X Y.

Множество атрибутов Y функционально зависит от множества атрибутов X, где X, Y {A12,...,An}, если значения атрибутов в X единственным образом определяют значения атрибутов Y. В этом случае говорят, что между множествами атрибутов X и Y существует функциональная зависимость (F-зависимость), или X определяет Y; обозначают F : X Y или просто X Y.

 

Пример 3.1. Рассмотрим отношение ПОСТАВКИ (ПОСТАВЩИК, ГОРОД, ТОВАР, КОЛИЧЕСТВО). На значения атрибутов этого отношения накладываются следующие ограничения:

1) Осуществлять поставку данного товара в данном количестве из определенного города может только один поставщик;

2) Некоторый поставщик из данного города и в данном количестве может осуществлять поставку только одного товара;

Перечисленные ограничения являются F-зависимостями и их можно записать так:

1) ТОВАР ГОРОД КОЛИЧЕСТВО ПОСТАВЩИК

2) ГОРОД ПОСТАВЩИК КОЛИЧЕСТВО ТОВАР

 

Пусть R(A12,...,An) — схема отношения, X и Y — подмножества атрибутов. Будем говорить, что отношение R удовлетворяет F-зависимости X Y, если для любых кортежей t1,t2 R из t1(X)=t2(X) следует t1(Y)= t2(Y). В F-зависимости X Y подмножество X называется левой, а Y — правой частью.

Такая интерпретация F-зависимости является основой алгоритма ЗАВИСИМОСТЬ.

Вход. Отношение R и F-зависимость X Y.

Выход. Истина, если R удовлетворяет X Y, в противном случае — ложь.

Шаг 1. Сортировать отношение R по Х-столбцам так, чтобы собрать кортежи с равными X-значениями.

Шаг 2. Если каждая совокупность кортежей с равными X-значениями имеет также равные Y-значения, то на выходе получаем истину, в противном случае — ложь.

F-зависимостыо X Y на множестве атрибутов А можно считать упорядоченную пару (X,Y), где X,Y A. Тогда множеством всех функциональных зависимостей над А будет L={(X, Y)| X A, Y A}.

Если Y не зависит от X, то записывают X Y. Если X Y и Y X, то X и Y называют эквивалентными или говорят, что между X и Y существует биекция, т. е. X Y.

 

Пример 3.2. Пусть поставщик осуществляет поставки ТОВАРА, определенное КОЛИЧЕСТВО. Он находится в ГОРОДЕ и определенной СТРАНЕ. Можно сформировать следующие зависимости:

f1: ТОВАР КОЛИЧЕСТВО,

f2: ТОВАР ПОСТАВЩИК,

f3: ПОСТАВЩИК ГОРОД,

f4: ГОРОД СТРАНА,

f5: ТОВАР СТРАНА.

Аксиомы вывода

Для различных состояний отношения R(A) могут существовать разные совокупности F-зависимостей. Интерес представляет выявление множества F-зависимостей F, которым удовлетворяют все допустимые состояния R(A). Для этого нужно знать семантические связи между атрибутами отношения. Такое множество F-зависимостей можно считать заданным в схеме отношения R(A). В подобном случае любое отношение со схемой R(A) должно удовлетворять всем F-зависимостям из F. Данное множество F конечно, так как существует только конечное число подмножеств множества А. Одним из способов его нахождения является использование алгоритма ЗАВИСИМОСТЬ, что требует много времени. Другим способом являются аксиомы вывода — правила, позволяющие на основании данного множества F-зависимостей получить все F-зависимости, которым удовлетворяет отношение R(A). Рассмотрим эти аксиомы.

Пусть X, Y, Z, W — непустые подмножества множества A={A12,...,An}. Тогда для любого отношения со схемой R(A) справедливы следующие аксиомы вывода.

F1. Рефлексивность: Х Х.

F2. Транзитивность: если X Y и Y Z, то X Z.

F3. Пополнение: если X Y, то XZ Y.

F4. Псевдотранзитивность: если X Y и YZ W, то XZ W.

F5. Аддитивность: если X Y и X Z, то X YZ.

F6. Проективность: если X FZ, то X Y или Х Z.

Рассмотрим сформулированные аксиомы на примере отношения R, включающего атрибуты: X — ТОВАР, У — ПОСТАВЩИК, Z — ГОРОД, W — СТРАНА.

F1. Рефлексивность. Отношение πX( X=x(R)) всегда имеет не более одного кортежа. Следовательно, Х Х всегда истинно в R. Например, ТОВАР ТОВАР.

F2. Транзитивность. Пусть t1 и t2 — кортежи в R. Если t1(X) = t2(X), то t1(Y) = t2(Y), а из t1(Y) = t2(Y) вытекает t1(Z) = t2(Z). Таким образом, если

t1(X) = t2(X), то t1(Z) = t2(Z), т. е. R удовлетворяет X Z. Например, если ТОВАР ПОСТАВЩИК и ПОСТАВЩИК ГОРОД, то ТОВАР ГОРОД.

F3. Пополнение. Эта аксиома позволяет расширить левую часть F-зависимости. Если R удовлетворяет X Y, то πY( X=x(R)) имеет не более одного кортежа для любого х Х. Если L R, то XZ=xz(R) X=x(R) и, следовательно, πY( XZ=xz(R)) πY( X=x(R)). Таким образом, πY( XZ=xz(R)) имеет максимум один кортеж и R должно удовлетворять F-зависимости XZ Y. Например, если ТОВАР ПОСТАВЩИК, то ТОВАР ГОРОД ПОСТАВЩИК.

F4. Псевдотранзитивность. Пусть t1 и t2 — кортежи в R. По условию если t1(X) = t2(X), то t1(Y) = t2(Y), и аналогично, если t1(YZ) = t2(YZ), то t1(W) = t2(W). Из t1(XZ) = t2(XZ) получаем, что t1(X) = t2(X). Значит, t1(Y) = t2(Y) и, кроме того, t1(YZ) = t2(YZ), откуда следует, что t1(W) = t2(W). Таким образом, R удовлетворяет XZ W. Например, если ТОВАР ПОСТАВЩИК и ПОСТАВЩИК ГОРОД СТРАНА, то ТОВАР ГОРОД СТРАНА.

F5. Аддитивность. Эта аксиома позволяет объединить две F-зависимости с одинаковыми левыми частями. Из X Y и X Z следует, что πY( X=x(R)) и πZ( X=x(R)) имеют не более одного кортежа для любого х Х. Если бы отношение πYZ( X=x(R)) имело более одного кортежа, то по крайней мере одно из отношений πY( X=x(R)) или πZ( X=x(R)) имело бы более одного кортежа. Таким образом, R удовлетворяет F-зависимости X YZ. Например, если ТОВАР ПОСТАВЩИК и ТОВАР ГОРОД, то ТОВАР ПОСТАВЩИК ГОРОД.

F6. Проективность. Эта аксиома в некоторой степени обратна аксиоме аддитивности. Если R удовлетворяет Х YZ, то πYZ( X=x(R)) имеет не более одного кортежа для любого х Х. Так как πYYZ( X=x(R))) = πY( X=x(R)), то πY( X=x(R)) также может иметь не более одного кортежа. Следовательно, R удовлетворяет Х У. Например, если ТОВАР ПОСТАВЩИК ГОРОД, то ТОВАР ПОСТАВЩИК или ТОВАР ГОРОД.

Некоторые аксиомы вывода могут быть получены из других аксиом. Например, транзитивность F2 является частным случаем псевдотранзитивности F4 при Z = . Аксиома F4 выводится из F1...F3 и F5; если X Y и YZ W, то, как следствие, F1, Z Z. Согласно F3 имеем XZ Y и XZ Z. Используя F5, получаем XZ YZ. Наконец, применяя F2, имеем XZ W.

С помощью аксиом F1, F3 и F4 можно вывести аксиомы F2, F5 и F6. Как было сказано, F2 является частным случаем F4. Если X Y и X Z, то из F1 получаем YZ YZ и, дважды применяя F4, сначала получаем XZ YZ, а затем X YZ. Поэтому F5 следует из F1, F3 и F4. Для доказательства F6 предположим, что X YZ. Из F1 имеем Y Y, а из F3 получаем YZ Y. Применение F4 дает X Y.

Таким образом, аксиомы F1, F3 и F4 составляют полное подмножество для F1...F6 и являются независимыми в том смысле, что ни одна из аксиом не может быть получена из двух других. Аксиомы F1, F3 и F4 иногда называют аксиомами Армстронга.

Система аксиом F1...F6 является полной, т.е. путем одно- или многократного применения к F этих аксиом можно получить любую F-зависимость, которая следует из множества F.

Множество функциональных зависимостей F={f1,f2,...,fm}, находится в приведенной канонической форме, если F-зависимости не имеют одинаковых левых частей. Для таких функциональных зависимостей если Xi Yi и Xi Yj, то Xi Yi Yj. Например, приведенной канонической формой для F={f1,f2, f3} из примера 3.2 будет:

 

ТОВАР КОЛИЧЕСТВО ПОСТАВЩИК СТРАНА.

Замыкания

Пусть F= {Xi Yi}, 1≤ i ≤n, — множество функциональных зависимостей. Замыканием множества F называют множество F+, содержащее все те зависимости, которые могут быть получены применением к F аксиом Армстронга. Замыкание множества функциональных зависимостей используется для определения биекций и ликвидации избыточности множества функциональных зависимостей.

 

Пример 3.3. Пусть F = {АВ С, С В} — множество F-зависимостей на R(A, В, С). Тогда F+ = {А А, AB А, АС A, АВС А, В В, АВ B, ВС В, ABC В, С С, АС С, ВС С, ABC С, АВ АВ, ABC АВ, АС AC, ABC АС, ВС ВС, ABC ВС, ABC ABC, АВ С, АВ АС, АВ ВС, AВ ABC, С В, С ВС, АС В, АС АВ}.

 

Вычисление F+ для множества зависимостей F является весьма трудоемкой задачей, так как множество зависимостей F+ может быть большим, даже если само F мало. Рассмотрим множество F = {A B1, A B2,..., A Bn}. Тогда F+ включает все зависимости A Y, где Y — подмножество множества {B1,B2,...,Bn}. Так как существует 2n таких подмножеств Y, то даже при небольших n их нелегко перечислить.

Более простым является вычисление замыкания атрибутов множества А относительно множества функциональных зависимостей F. Пусть F — множество функциональных зависимостей на множестве атрибутов U, а X — некоторое подмножество U. Тогда Х+ — замыкание X относительно F — есть множество атрибутов А таких, что зависимость Х A может быть выведена из F по аксиомам Армстронга. Замыкание X+ позволяет сразу определить, выводится ли зависимость X Y из F по аксиомам Армстронга. Существует следующая лемма.

Утверждение. Функциональная зависимость X Y выводится из аксиом Армстронга тогда и только тогда, когда Y Х+.

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

Вход. Конечные множества: атрибутов U, зависимостей F и атрибутов X U.

Выход. Замыкание Х+ множества атрибутов X относительно F.

Вычисляем последовательность множеств атрибутов Х(0), Х(1),... по следующим правилам.

Шаг 1. Х(0) есть X.

Шаг 2. Хi+1 есть Xi плюс множество атрибутов А таких, что в F существует некоторая зависимость Y Z, А принадлежит Z и Y X(i) Поскольку Х = Х(0) Х(1) ... U и U конечно, в итоге достигнем такого i, что X(i) = X(i+1). Отсюда X(i) = X(i+1) =X(i+2) =... и поэтому процесс вычисления Х+ прекращается, если X(i) = X(i+1).

 

Пример 3.4. Пусть F состоит из следующих зависимостей:

АВ С, AE G,

ВС D, D EC,

В АЕ, EG K,

а Х=АВ. Используя алгоритм, получаем Х(0)=Х=АВ. Для вычисления Х(1) находим зависимости, которые имеют в левой части А, В или АВ. Во множестве F существуют две зависимости: АВ С и В АЕ. Поэтому присоединяем С и E к Х(0) получаем Х(1) =АВСЕ. Затем вычисляем Х(2) путем поиска левых частей зависимостей F, содержащихся в Х(1). Находим BC D и AE G. Таким образом, Х(2)=ABCDEG. Далее находим EG K, D G и, наконец, Х(3)=ABCDEGK — множество всех атрибутов. Следовательно, Х(3)= Х(4)= ... . Итак, получаем (AB)+=ABCDEGK.

 

Пусть задано отношение R на множестве атрибутов {A12,...,An}, Множество атрибутов К называется ключом отношения R (первичным ключом), если каждый атрибут Ai {A12,...,An},, который не входит в К, функционально зависит от К, т. е. К Ai; и никакое подмножество К не удовлетворяет этому свойству. В дальнейшем ключевые атрибуты в схемах отношений будут подчеркиваться.

 

Пример 3.5. В функциональной зависимости ТОВАР ДАТА КОЛИЧЕСТВО ГОРОД ПОСТАВЩИК ключом является (ТОВАР ДАТА КОЛИЧЕСТВО).

 

Два множества F-зависимостей F и G над схемой отношения R эквивалентны, F G, если F+ = G+. Если F G, то F есть покрытие для G.

 

Пример 3.6. Множества F={A BC, A D, CD E} и G={А ВСЕ, A ABD, CD E} эквивалентны. Множество F не эквивалентно множеству G'={A BCDE}, поскольку зависимость CD E не выводится в G'.

 

Множество F-зависимостей F неизбыточно, если у него нет такого собственного подмножества F' что F'F. Если такое подмножество F' существует, то F избыточно.

 

Пример 3.7. Множество F={АВ С, А ВС, А В, В С} избыточно, так как есть подмножество F'={A B, B C}, которое эквивалентно F.

 

Пусть имеется множество функциональных зависимостей F={Xi Yi}, i = . Множество атрибутов Zi Xi называют посторонним в Xi, если Xi Zi Yi может быть получено в замыкании F+.

 

Пример 3.8. В примере 3.2 комбинация атрибутов ТОВАР и ПОСТАВЩИК определяет атрибут ГОРОД, т. е. f3 может заменить зависимость

ТОВАР ПОСТАВЩИК ГОРОД.

Из f2 видно, что атрибут ПОСТАВЩИК с левой стороны является посторонним.

 

Множество F-зависимостей F называют минимальным, если оно содержит не больше F-зависимостей, чем любое эквивалентное множество F-зависимостей.

Минимальное множество F-зависимостей не может содержать избыточных зависимостей. Таким образом, оно одновременно и неизбыточно.

 

Пример 3.9. Множество G={A BC, B A, AD E, BD L} неизбыточно, но не минимально, поскольку существует множество F={A BC, B A, AD EL}, которое эквивалентно G и содержит меньшее число F-зависимостей. Множество F является минимальным покрытием G.

 

При проектировании схем БД для минимального покрытия множества F-зависимостей полезно использовать следующие ограничения:

1) правая часть каждой F-зависимости содержит единственный атрибут;

2) ни для какой F-зависимости Х А в F множество F—(Х А) не эквивалентно F;

3) ни для какой F-зависимости Х А в F и собственного подмножества Z X множества F—(X A) (Z A) и F не эквивалентны.

 

Пример 3.10. Пусть F состоит из таких F-зависимостей:

AB C, ACD B, CG BD,

C A, D EG, CE AG,

BC D, BE C,

Используя условие 1), получаем

АВ C, D Е, CG B,

С A, D G, CG D,

ВС D, BE C, СЕ A,

ACD В, СЕ G.

 

Здесь F-зависимость СЕ А избыточна, поскольку она следует из зависимости С А. Подобным образом избыточна F-зависимость CG B, так как из CG D, С А и ACD B получаем CG B. Никакие другие F-зависимости не являются избыточными. Однако ACD B может быть замещена зависимостью CD B, поскольку С А. Таким образом, минимальное покрытие включает следующие F-зависимости:

AB C, CD B, BE C,

C A, D E, CG D,

BC D, D G, CE G.

Другое минимальное покрытие, построенное из F исключением СЕ А, CG D и АСD B, имеет вид

AB C, D E, CG B,

C A, D G, CE G.

B CD, BE C,

Отметим, что эти два минимальных покрытия имеют разное число зависимостей.

 

Более короткое представление множества F является предпочтительным: во-первых, потому, что от мощности F зависит временная сложность алгоритмов для обработки этого множества; во-вторых, объем используемой памяти и число операций при модификации БД также определяются числом F-зависимостей.

Нормализация отношений

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

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

Отношение, которому присущ более высокий уровень нормализации, учитывает все требования предыдущего уровня и характеризуется своими собственными требованиями. Заметим, что процесс нормализации не имеет отношения к физическому представлению данных.

Рассмотрим процесс нормализации отношений на примере связей поставщиков и произведенных ими поставок, используя следующие функциональные зависимости:

f1 : ПК ФС ГРД СТС ТР

f2 : НП КО ОС

f3 : ПК НП ОС

f4 : ТР СТС

В этих зависимостях ПК и ФС — соответственно поставщик и форма собственности; ГРД — город, где располагается головной офис; ТР и СТС — соответственно товар, получаемый от поставщика и статус; НП, КО и СЕ — соответственно номер поставки, количество и стоимость единицы товара; ОС — общая стоимость поставки.

На основании подобных зависимостей можно составить такие схемы отношений:

С(ПК, ФС, ГРД, СТС, ТР),

П(НП, КО, СЕ),

СП (ПК, НП, ОС).

Рассмотрим схему отношения

СПЧ (ПК, НП, СТС, ТР, ОС)

и соответствующее отношение (табл. 3.1). Его первичным ключом является ПК НП, при этом атрибут СТС зависит от атрибута ТР. Отношение СПЧ можно представить в виде схемы (рис. 3.1), где атрибуты СТС и ТР функционально не полностью зависят от первичного ключа и не являются взаимно независимыми.

 

Таблица 3.1. Ненормализованное отношение СПЧ

 

ПК НП СТС ТР ОС
п1 з1, з6 т1 10, 10
п2 з1 т1
п3 з2, з8, з9 т1 10, 5, 5
п4 з2 т2
п5 з3, з8 т2 10, 10

Первая нормальная форма

Отношение R находится в первой нормальной форме (1НФ), если все входящие в него атрибуты имеют атомарные (неделимые) значения. Другими словами, значения в доменах отношения не являются ни списками, ни множествами простых

Отношение СПЧ (табл. 3.1) не удовлетворяет этому требованию, и его нужно нормализовать так, чтобы каждый элемент табл. 3.1 был единственным значением. В результате получаем табл. 3.2. При использовании операций запоминания (ВКЛЮЧИТЬ, УДАЛИТЬ, ОБНОВИТЬ) отношение СПЧ (табл. 3.2) имеет следующие недостатки.

ВКЛЮЧИТЬ. Невозможно ввести информацию о поставщике, статусе и товаре, который он поставляет, пока за поставщиком не будет закреплены данные о произведенных поставках. Это связано с тем, что каждый компонент первичного ключа должен иметь значение. В данном случае первичный ключ составляют атрибуты ПК, НП.

 

 

Рис. 3.1. Функциональная зависимость в отношении СПЧ

 

 

Таблица 3.2. Нормализованное отношение СПЧ

 

ПК НП СТС ТР ОС
п1 з1 т1
п1 з6 т1
п2 з1 т1
п3 з2 т1
п3 з8 т1
п3 з9 т1
п4 з2 т2
п5 з3 т2
п5 з8 т2

 

 

Таблица 3.3. Отношение СТаблица 3.4. Отношение СП

ПК СТС ТР   ПК НП ОС
п1 с1 т1   п1 з1
п2 с1 т1   п1 з6
п3 с2 т1   п2 з1
п4 с4 т2   п3 з2
п5 с4 т2   п3 з8
        п3 з9
        п4 з2
        п5 з3
        п5 з8
               

УДАЛИТЬ. При удалении информации об общей стоимости произведенных поставок удаляется и остальная информация, находящаяся в кортеже.

ОБНОВИТЬ. Предположим, схема отношения содержит атрибут ГРД , в котором располагается поставщик. При переезде поставщика в другой город и необходимости изменить значение атрибута ГРД требуется просмотр всего отношения, а не отдельного кортежа, так как для одного поставщика может существовать множество кортежей.

Ликвидация перечисленных недостатков достигается заменой отношения СПЧ отношениями С (табл. 3.3) и СП (табл. 3.4) со схемами С (ПК, СТС, ТР) и СП (ПК, НП, ОС) (рис. 3.2).

 

 

Рис. 3.2. Функциональные зависимости в отношениях С (а)и СП (б) связанные с операциями запоминания

 

ВКЛЮЧИТЬ. Можно ввести в отношение С информацию о поставщике, даже если за ним не закреплены данные о поставках.

УДАЛИТЬ. Можно из отношения СП исключить кортеж, содержащий информацию об общей стоимости произведенных поставок, не удаляя информации о самом поставщике.

ОБНОВИТЬ. Значение атрибута ГРД для данного поставщика будет встречаться лишь в отдельном кортеже отношения С и поэтому требуется лишь одно обновление.

Вторая нормальная форма

Перед тем как ввести эту форму, приведем определения.

Пусть R — схема отношения (с несколькими ключами). Атрибут А, принадлежащий некоторому ключу из R, называют ключевым (главным) в R, в противном случае А неключевой атрибут. Например, в отношении С ключевой атрибут — ПК, а СТС и ТР — неключевые атрибуты.

Пусть Х А F-зависимость. Атрибут А частично зависит от X, если А функционально зависит от некоторого подмножества У Х, т. е. У А: Атрибут А полностью зависит от X, если он не зависит от любого подмножества X.

Отношение R находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа. Отношения С и СП представлены в 2НФ. Их первичными ключами являются соответственно ПК и ПКНП. Отношение СПЧ не находится в 2НФ.

Сравнение рис. 3.1 и 3.2 показывает, что результатом проведенного преобразования является устранение неполной функциональной зависимости, что и ликвидирует все недостатки. В отношении СПЧ зависимые атрибуты СТС и ТР не определяют общей стоимости всех произведенных поставок. Смешением двух типов информации в одном отношении и объясняются перечисленные выше недостатки.

Отношение, находящееся в 1НФ и не представленное в 2НФ, всегда можно преобразовать в эквивалентную совокупность отношений, представленных в 2НФ. Преобразование заключается в замене отношения совокупностью его проекций, естественное соединение которых дает исходное отношение. При таком преобразовании информация не теряется и процесс является обратимым. Отношение в нашем примере, представленное в 1НФ, а не в 2НФ, имеет составной первичный ключ; любую информацию из исходного отношения можно получить и из преобразованного отношения. Более того, новая структура может содержать данные, которые нельзя представить в исходном отношении (например, информацию о поставщике, не имеюшем совершенных поставок).

Заметим, однако, что отношению, представленному в 2НФ, а не в третьей и четвертой нормальных формах (как отношение СП), присущи недостатки. Так, в отношении С имеется зависимость между атрибутами СТС и ТР, т.е. каждое значение ПК определяет значение СТС, которое в свою очередь определяет значение ТР. Другими словами, существует транзитивная зависимость между атрибутами ПК, СТС и ТР, а это опять приводит к трудностям в выполнении операций запоминания. Рассмотрим недостатки, встречающиеся при выполнении названных операций.

ВКЛЮЧИТЬ. Невозможно указать в отношении С, что некоторое значение ТР определяет значение СТС, если отсутствует значение ПК (т.е. первичный ключ), от которого зависит значение ТР.

УДАЛИТЬ. Удаление кортежа с некоторым значением СТС влечет за собой не только исключение значения ПК, но и того факта, что значение ТР определяет значение СТС.

ОБНОВИТЬ. Имеется множество значений ТР в отношении С и при изменении зависимости между значениями СТС и ТР требуется просмотр всех кортежей этого отношения.

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

Ликвидировать перечисленные недостатки, как и ранее, можно, заменив исходное отношение С отношениями СК (табл. 3.5) и КФ (табл. 3.6) со схемами СК(ПК, СТС) и КФ(СТС, ТР) (рис. 3.3). Естественным соединением данных отношений можно получить исходное. В результате преобразования исчезает транзитивная зависимость атрибутов СТС и ТР.

Отношение R находится в третьей нормальной форме (3НФ), если оно представлено в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. Отношения СК и КФ представлены в 3НФ, а отношение С — нет. Отношение в 2НФ всегда можно преобразовать в эквивалентную совокупность отношений в 3НФ.

Из сказанного ранее известно, что этот процесс обратим и, следовательно, никакая информация в процессе преобразования не теряется. Однако отношение в 3НФ может содержать информацию, которую нельзя представить в отношении, находящемся в 2НФ. Например, отношение КФ может содержать кортеж <ВМ ФПМ>, в то время как в исходном отношении информация о зависимости значений ВМ и ФПМ отсутствует, если нет значений ПК, определяющих значение ВМ.

 

Таблица 3.5. Отношение СК Таблица 3.6. Отношение КФ

ПК СТС   СТС ТР
п1 с1   с1 т1
п2 с1   с2 т1
п3 с2   с4 т2
п4 с4      
п5 с4      

 

Заметим, что если неключевой атрибут частично зависит от ключа, то имеет место и транзитивная зависимость этого атрибута от ключа. Следовательно, схема отношений в 3НФ принадлежит и 2НФ.

Многозначные зависимости