Rozdíl mezi non-identifying a identifying relací

4. 11. 2012 | #database #twitter-bootstrap

Pakliže se někdy dostanete k návrhu databáze v MySQL a budete k tomu používat nástroj MySQL Workbench, možná vás napadne při návrhu relací stejná otázka jako mě: “Jaký je sakra rozdíl mezi non-identifying a identifying relací?” Při výběru typu relace totiž jak u 1:1, tak u 1:n, je tato možnost volby.

Upřímně, dosud mě nenapadá ani český ekvivalent, jak tyto relace označit. Samozřejmě, šlo by je nazvat jako identifikující a neidentifikující relace, ale informačně mi to pořád moc neřekne.

Každopádně, pidíl jsem se po odpovědi, jaký je vlastně rozdíl a proto jsem vytvořil tento příklad:

MySQL relace

Příklad vysvětluje problematiku na ukázce dvou relací typu 1:1, kde jedna z nich je identifikující a druhá neidentifikující (zvolené označení se mi moc nelíbí, kdyby měl někdo lepší, budu rád za feedback:)).

V prvním případě můžeme vidět, že máme tabulku osob a tabulku států. To, že je relace nedientifikující, jednoduše znamená, že záznam v přidružené tabulce není “silně” spojen se záznamem rodičovské tabulky. Z jiné strany, pokud bude osoba smazána, nijak to neovlivní přidruženou tabulku. Stát tedy může existovat i bez osoby.

V druhém příkladě, který naopak reprezentuje identifikující relaci, je situace naprosto jiná. Zde jsou záznamy v přidružené tabulce silně spojeny se záznamy rodičovské tabulky, přičemž primární klíč přidružené tabulky je součástí primárního klíče rodičovské tabulky. Jednoduše řečeno, účet nemůže existovat bez osoby.

Přídavek na závěr

Z mého pohledu se skutečně nejedná o žádnou magii. Na závěř přidám ještě dva příklady.

Kniha patří nějakému vlastníkovi a vlastník může vlastnit i několik knih. Ale kniha může existovat i bez vlastníka a může ho také změnit. Relace mezi vlastníkem a knihou je v tomto případě neidentifikující.

Avšak, kniha je napsána nějakým autorem a ten autor mohl napsat i několik knih. Kniha ale musí být někým napsána a nemůže existovat bez nějakého autora. Tudíž je tato relace mezi knihou a autorem identifikující.

Diskuse

comments powered by Disqus

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace