Datové modelování
Dekompozice vztahu M:N
 Tisk

Dekompozice vztahu M:N


Většina SŘBD není schopna vyjádřit vztahy M:N přímo.


I když konceptuální schéma má být nezávislé na použitém databázovém modelu, existují dobré důvody, abychom uměli rozložit všechny vztahy M:N na dva vztahy typu 1:N.

Obrázek zachycuje vztah M:N. Tento vztah znamená, že ani v jednom směru neexistuje funkční závislost mezi zúčastněnými entitními typy.


Navržené rozložení na obr. říká něco jiného. Vztah DÁVÁN implikuje funkční závislost KINO na FILM (instance entitního typu FILM je determinantem instance entitního typu KINO. Vztah DÁVÁ implikuje funkční závislost ve druhém směru. Oba diagramy vyjadřují každý něco jiného.

Dva různé vztahy DÁVÁ a DÁVÁN se snaží vyjádřit jediný vztah, což je jistě nesprávné.


Správný postup při návrhu dekompozice vztahu M : N.


Vyjdeme z výskytového E-R diagramu. Každý výskyt vztahu odpovídá promítání konkrétního filmu v konkrétním kině .


Budeme-li zacházet s každým promítáním jako s výskytem entitního typu získáme následující graf :


Vztahy KINO - PROGRAM i FILM - PROGRAM jsou oba 1:N.


Novému entitnímu typu (zde PROGRAM) se říká průnikový.


Někdy jsme nuceni vztah zachovat (pokud se samo nenabízí nějaké jméno nového průnikového entitního typu, převezmeme jméno štěpeného vztahu). Místo nového, umělého klíče (CISLO_P) můžeme využít skutečnosti, že klíčem vztahového typu je dvojice identifikačních klíčů entit, které jsou členy štěpeného vztahu. To pak vede k tomu, že zavedený průnikový typ je identifikačně závislý na obou členech štěpeného stavu.


Vztahový typ má pouze vnější identifikátory. Jsou jimi entitní typy - účastníci vztahu.


Vztahovému typu nelze označit jeho některé atributy jako klíčové (aby tvořily jeho částečný klíč, podobně jako u slabého typu). Z toho plyne, že náš příklad (poslední E-R diagram) nepřipouští, aby promítání téhož filmu bylo evidováno pro několik různých dnů. Atribut DATUM není součástí klíče.

Řešením je (v praxi běžně požadováno) v zavedení průnikového entitního typu tak, aby byl slabý. Atribut DATUM se přidá do jeho identifikačního klíče (zbytek tvoří klíče zbývajících dvou entitních typů).


Výsledek dekompozice je, že ze vztahového typu se stane entitní typ .


Štěpení vztahu M:N se někdy nedělá na úrovni konceptuálního schématu, ale nastíněné řešení se zahrnuje až do algoritmu transformace E_R schématu do schématu databázového.