вторник, 27 мая 2014 г.

Декомпозиция без потерь. Теорема Хита.

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

Теорема Хита: Если есть отношение  R у которого есть атрибуты A, B, C, связанные зависимостью A -> B, то декомпозиция на r1(A, B) и r2(A,C) будет обратимой: R(A, B, C) = r1(A, B) join r2(A,C).

Например, вы с друзьями посидели в пабе. Имеет место отношение Pub (man, beer, payment).

manbeerpayment
DarthLeffe Blonde5$
YodaHeineken10$
Jabba the HuttAmstel Light 8$

Каждый из вас пьет один определенный сорт пива. Это зависимость man -> beer.
Значит, по теореме Хита мы можем разделить данные на 2 отношения:
  • man -> beer == beer_man (man, beer)
manbeer
DarthLeffe Blonde
YodaHeineken
Jabba the HuttAmstel Light 
  • man -> payment == pay_man (man, payment)
manpayment
Darth5$
Yoda10$
Jabba the Hutt8$

Этих данных достаточно, чтобы однозначно и правильно воссоздать оригинальное отношение Pub (man, beer, payment), используя natural join:
  •        beer_man JOIN pay_man = pub
P.S. На всякий случай напоминаю, что при  natural join, о котором идет речь в теореме, все пары атрибутов из двух отношений, имеющих общее имя, приравниваются, а одна из пар равных атрибутов удаляется путем проекции.

Комментариев нет:

Отправить комментарий