Виды декомпозиций Декомпозиция без потерь
Декомпозиция отношений проводится, чтобы исключить избыточное дублирование в отношениях. Выделяют два типа декомпозиций отношений: без потерь и с потерями. Декомпозиция без потерь происходит тогда, когда после соединения вновь полученных отношений получается исходное отношение. В ряде случаев невозможно провести декомпозицию без потерь, т.к. простое выделение ФЗ в отдельное отношение не дает желаемого результата. В этом случае надо решить:
·
или поддерживать избыточное дублирование;
· или теряем ФЗ и поддерживаем ее программным путем.
Выбор должен быть обоснован.
Существуют следующие виды декомпозиций (можно доб. вопрос 4.-классиф.покрытий и вопрос 5 - теорема Хеза)
1. Декомпозиция на минимальном покрытии (если в отношении только один ключ);
2. Декомпозиция на кольцевом покрытии (если в отношении несколько ключей и существуют эквивалентные левые части функциональных зависимостей);
3. Декомпозиция по теореме Хеза (если ни один из вышеперечисленных методов неприемлем или не дает желаемого результата).
Смысл декомпозиции заключается в том, что исходное отношение разбивается на несколько отношений таким образом, чтобы в последствии соединение вновь образованных отношений позволило получить исходное отношение. Такая декомпозиция получила название декомпозиции без потерь.
Процесс декомпозиции следует всегда начинать со следующих операций:
· с определения (идентификации) всех атрибутов, подлежащих хранению в БД.
· установления между ними функциональных зависимостей.
Критерием, по которому определяют необходимость декомпозиции отношения, является нахождение отношения в той или иной нормальной форме. (можно добавить вопр. 7 - норм.формы).
Процесс декомпозиции осуществляется поэтапно, при этом на каждом этапе (в большинстве случаев) исходное отношение разбивается только на два отношения, затем делается вывод о необходимости продолжения декомпозиции, и если она необходима, то процесс продолжается.
Декомпозиция не всегда является обязательной, и в ряде случаев проектировщик должен принимать решение, выбирая между избыточностью и независимостью отношений.
Декомпозиция снимает большинство проблем, связанных с выполнением операций – удаление, добавление и редактирование, за счет исключения избыточного дублирования информации.
Примеры декомпозиций:
Дано: R={ABC} и F={ABC; CB}
Задание: Осуществить декомпозицию.
Без потерь: С потерями:
R1={CB} R1/={AB}
R2={AC} R2/={CB}
Декомпозиция без потерь:
Декомпозиция с потерями:
|
|||||||||||||||||||||
|