Декомпозиция без потерь против сохранения зависимостей

Подразумевает ли одно из них другое?

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

Таким образом, сохранение зависимостей — это способ гарантировать, что ваша декомпозиция будет без потерь.

Мне трудно это принять/отрицать. Так гарантируют ли они оба друг друга или есть случаи, когда одно может быть достигнуто без другого?


person Aditya Naidu    schedule 13.09.2016    source источник


Ответы (1)


В общем, это две независимые вещи: вы можете иметь декомпозицию без потерь без сохранения зависимостей, а также декомпозицию, которая сохраняет зависимости, но нет. em> без потерь.

Итак, ответ на ваш первый вопрос - нет, ни один из них не подразумевает другого.

Однако эти два свойства могут быть «связаны» следующим основным результатом, который дает достаточное (даже если не необходимое) условие для установления того, является ли декомпозиция с сохранением зависимостей также без потерь:

Пусть ρ = {R(Ti,Fi)} — декомпозиция схемы отношения R(T,F), сохраняющая зависимости. Если для некоторого j Tj является суперключом R(T,F), то разложение ρ выполняется без потерь.

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

Это гарантирует, что алгоритм производит декомпозицию без потерь и с сохранением зависимостей, в то время как, с другой стороны, известно, что алгоритм «анализа» для декомпозиции отношения в НФБК может в некоторых случаях привести к потере функциональной зависимости.

person Renzo    schedule 13.09.2016
comment
Для всех, кто почти понимает желтую часть (например, я), я считаю, что stackoverflow.com/a/26816032/2550406 говорит то же самое в сером блоке. Помогли мне понять это намного лучше - person lucidbrot; 30.03.2017
comment
@lucidbrot, это разные вещи. Серая часть в связанном ответе дает условие, которое должно выполняться, если разложение должно быть без потерь. Вместо этого в желтой части приведенного выше ответа я цитирую теорему, в которой говорится об условии, которое должно выполняться для декомпозиции без потерь, когда декомпозиция уже сохраняет зависимости. И на самом деле вопрос был именно об этой теме: «Разложение без потерь против сохранения зависимостей», в то время как в ответе, который вы связали, два свойства не связаны. Итак, вы видите, что два ответа касаются разных фактов. - person Renzo; 31.03.2017
comment
ой. Я вижу, спасибо, что упомянули об этом. раньше не замечал разницы - person lucidbrot; 01.04.2017