Připojte se k závislosti - Join dependency
V oblasti počítačové vědy známé jako teorie závislosti, a připojit závislost je omezení množiny právních vztahů nad databázovým schématem. Stůl je předmětem spojení závislost -li vždy lze znovu vytvořit spojování více tabulek, z nichž každá má podmnožinu atributů . Pokud má jedna z tabulek ve spojení všechny atributy tabulky , závislost spojení se nazývá triviální.
Závislost na připojení hraje důležitou roli v Pátá normální forma, také známý jako normální forma projektu, protože lze prokázat, že pokud je schéma je rozložen v tabulkách na , rozklad bude a bezztrátový rozklad pokud právní vztahy jsou omezeny na závislost spojení na volala .
Dalším způsobem, jak popsat závislost na spojení, je říci, že vztahy v závislosti na spojení jsou na sobě nezávislé.
Na rozdíl od případu funkční závislosti, tady není žádný zvuk a kompletní axiomatizace pro závislosti na spojení,[1] ačkoli axiomatizace existuje pro výraznější závislostní jazyky, jako je plné zadané závislosti.[2]:Kapitola 8 Dopad závislostí spojení je však rozhodnutelný.[2]:Věta 8.4.12
Formální definice
Nechat být relační schéma a nechat být rozkladem .
Vztah splňuje závislost spojení
- -li
Závislost spojení je triviální, pokud je jedna z je sám.[3]
Závislosti spojení 2 ary se nazývají vícehodnotová závislost jako historický artefakt skutečnosti, že byly studovány před obecným případem. Přesněji, pokud U je sada atributů a R tedy vztah nad tím R splňuje kdyby a jen kdyby R splňuje
Příklad
Vzhledem k řetězci pizzy, který modeluje nákupy v tabulce Zákazník = {číslo objednávky, jméno zákazníka, jméno pizzy, kurýr}. Lze odvodit následující vztahy:
- jméno zákazníka závisí na čísle objednávky
- název pizzy závisí na čísle objednávky
- kurýr závisí na čísle objednávky
Vzhledem k tomu, že vztahy jsou nezávislé, existuje závislost spojení takto: * ((číslo objednávky, jméno zákazníka), (číslo objednávky, název pizzy), (číslo objednávky, kurýr)).
Pokud má každý zákazník svého vlastního kurýra, může existovat závislost na připojení, jako je tato: * ((číslo objednávky, jméno zákazníka), (číslo objednávky, název pizzy), (číslo objednávky, kurýr), ( jméno-zákazníka, kurýr)), ale platné také * ((číslo objednávky, jméno zákazníka, kurýr), (číslo objednávky, název pizzy)). Díky tomu je zřejmé, že k normalizaci databázového schématu nestačí pouze mít závislost na spojení.
Viz také
Reference
- ^ Petrov, S. V. (1989). "Konečná axiomatizace jazyků pro reprezentaci vlastností systému". Informační vědy. 47: 339–372. doi:10.1016/0020-0255(89)90006-6.
- ^ A b Abiteboul; Trup; Vianu. Základy databází.
- ^ Silberschatz, Korth. Koncepty databázového systému (1. vyd.).