7

Итак, я просматриваю свои заметки и материалы базы данных, пытаясь освежить общие понятия и терминологию для предстоящих интервью. Тем не менее, я застрял в зависимостях, но без потерь. Я искал все и вижу множество уравнений математики, но я ищу простой и простой ответ на английский язык или пример.Сохранение зависимостей

У меня есть контрольная точка от http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt, которая иллюстрирует пример, который я не могу полностью понять. Он размещен ниже.

R = (A, B, C)F = {A → B, B → C) 
Can be decomposed in two different ways 
R1 = (A, B), R2 = (B, C) 
Lossless-join decomposition: 
     R1 ∩ R2 = {B} and B → BC 
Dependency preserving 
R1 = (A, B), R2 = (A, C) 
Lossless-join decomposition: 
     R1 ∩ R2 = {A} and A → AB 
Not dependency preserving (cannot check B -> C without computing R1 ⋈ R2) 

Так что я понимаю, что имея → B и B → C означает, что у вас есть «ссылка» друг с другом, в то время как → B и А → C означает, что нет никаких ссылок или связь между B и C .

Так,

  1. ли Lossless-Join разложение означает, что данные в целом по-прежнему без изменений? В обоих сценариях вы все равно можете получить обе данные, верно? Если это не так, пожалуйста, поправьте меня! :)

  2. Каково значение того, что соединение B в C во втором разложении и как это делает его не сохранением зависимостей?

    • Если A удален, вы просто будете иметь B и C без каких-либо отношений.

    • Если B удаляется вы до сих пор → C.

    • Если C удаляется вы еще A → B.

Потому что даже в первом примере вы все равно получите похожие результаты при удалении значений.

  • Если А будет удален вы все еще имеют отношение B → C.

    • Если B удаляется вы просто A и C без каких-либо отношений.

    • Если C удаляется вы будете иметь отношение A → B.

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

Мое предположение заключается в том, что при удалении отношения «средний человек» (есть ли для этого термин), B в примере 1 и A в примере 2 состоит в том, что вы все еще можете связать пример 1 A → B, затем B → C, а в примере 2 вы застряли с A → B без подключения к A → C.

Но, как вы можете видеть, я вернусь к первому вопросу о том, почему это приводит к зависящей от данных зависимости и при поиске в googling «что такое зависимость данных» или «примеры зависимости данных», это просто не имеет никакого смысла для меня.

Если бы кто-нибудь мог помочь прояснить это для меня, будем признательны.

+0

FD не имеют ничего общего с «ссылками» или «ссылками». A → B выполняется в отношении, когда все вхождения каждого заданного значения для A отображаются с тем же значением для B. Прочитайте определение. – philipxy

ответ

2

Lossless Join не означает, что любой из кортежей потерян или не может быть восстановлен после соединения. Без потерь соединение означает создание ложных кортежей, которые приводят к «лишним» строкам (кортежам) и «информации», как говорят, теряются.

Полагая это просто, я думаю, что зависимость сохраняется, когда мы находим обе стороны FD в атрибутах одной подсхемы. (кто-то, пожалуйста, поправьте меня, если я ошибаюсь).

6

Разложение отношения R в R1 и R2 является декомпозицией соединения без потерь, если вы можете построить обратную R, соединяя отношения R1 и R2 (форма R1 ⋈ R2 вы можете получить R).

Для разложения соотношения R в R1 и R2, чтобы быть без потерь, она должна удовлетворять любого из 2 условия:

1. R1 ∩ R2 -> R1 
2. R1 ∩ R2 -> R2 

Если вышеуказанное соотношение не имеет никакого смысла затем думать о нем, как это, когда вы пересекаете 2 отношения R1 и R2 и получаете общие атрибуты, тогда, если общие атрибуты могут определить какое-либо из отношений, то этот (эти) общий атрибут (ы) является (являются) ключом-кандидатом для полученного отношения (подумайте почему?), и, следовательно, вы можете присоединиться с помощью этого ключа-кандидата другим отношением для получения R.

Относительно зависимости p резервирование, разложение отношения R является сохранением зависимостей, если Функциональная зависимость R может быть получена путем объединения объединенной функциональной зависимости всех разложенных отношений.

+0

Первый абзац - правильное определение. Второе - нет. (Вы взяли их из википедии, но это неправильно). Это условие, которое * подразумевает бездекомпрессионную декомпозицию, но не обязательно. В любом случае сохранение FD не зависит от потери. (* Как говорит ваш собственный последний абзац. *) – philipxy

Смежные вопросы