Разложение соединения без потерь - Lossless join decomposition

В дизайн базы данных, а разложение соединения без потерь является разложением отношения в отношения так что естественное соединение двух меньших отношений возвращает исходное отношение. Это главное в безопасном удалении избыточности из базы данных при сохранении исходных данных.[1]

Критерии

Также может называться неаддитивным.[нужна цитата ]

Если разделен на и , чтобы это разложение было без потерь (т. е. ), то должен выполняться хотя бы один из двух следующих критериев.

Проверка 1. Подтвердите соединение явно

Проектирование на и , и присоединение к ним, приводит к отношениям, с которых вы начали.[2][ненадежный источник? ]

Проверка 2: через функциональные зависимости

Позволять быть схемой отношения.

Позволять F быть набором функциональные зависимости на .

Позволять и образовать разложение .

Разложение представляет собой разложение без потерь соединения если хотя бы одна из следующих функциональных зависимостей находится в F+ (куда F+ означает закрытие для каждого атрибута или набора атрибутов в F):[3]

Примеры

  • Позволять быть схемой отношений с атрибутами А, B, C и D.
  • Позволять быть набором функциональных зависимостей.
  • Разложение на и без потерь под F потому что . А это суперключ в , то есть у нас есть функциональная зависимость . Другими словами, теперь мы доказали, что .

[4][5]

Рекомендации

  1. ^ Полер, К. (2015). «Разложение без потерь с объединением: приложения для количественных вычислений». Международный журнал прикладных компьютерных наук. 21 (4): 190–212.
  2. ^ «Собственность без потерь». Stackoverflow.com. Получено 2016-02-07.
  3. ^ "Разложение соединения без потерь" (PDF). Университет Буффало. Ян Хомицки. Получено 2012-02-08. Cite имеет пустой неизвестный параметр: | соавторы = (помощь)
  4. ^ "Разложение соединения без потерь". Cs.sfu.ca. Получено 2016-02-07.
  5. ^ «Архивная копия». Архивировано из оригинал на 2014-02-21. Получено 2014-02-12.CS1 maint: заархивированная копия как заголовок (связь)