Pokračujeme v našem výletu různými notacemi ERD a podívejme se na notaci Chen ERD.
Peter Chen, který vyvinul modelování vztahů entit a publikoval svou práci v roce 1976, byl jedním z průkopníků používání konceptů vztahů entit v modelování a návrhu softwaru a informačních systémů. Notace Chen ERD se stále používá a má se za to, že představuje podrobnější způsob reprezentace entit a vztahů.
Entity
Entitu představuje obdélník, který obsahuje název entity.
V zápisu Chen rozlišujeme typy entit :
-
entita
-
slabá entita – entita, kterou nelze jednoznačně identifikovat pouze svými atributy. Existence slabé entity je závislá na jiné entitě zvané vlastník. Identifikátor slabé entity je kombinací identifikátoru entity vlastníka a dílčího klíče slabé entity.
-
asociativní entita – entita použitá ve vztahu many-to-many (představuje extra tabulku). Všechny vztahy pro asociativní entitu by měly být mnoho
Atributy
V zápisu Chen je každý atribut reprezentován oválem obsahující název atributu:
Atributy jsou spojeny s entitou rovnými čarami:
Existuje několik konkrétních typů atributů :
-
klíčový atribut – atribut, který jednoznačně identifikuje konkrétní entitu. Název klíčového atributu je podtržený:
Například, protože identifikační číslo vozidla (VIN) je jedinečný kód používaný k identifikaci jednotlivých vozidel (žádná dvě vozidla nemají stejné VIN), lze „VIN“ považovat za klíčový atribut entity „CAR“:
-
částečný atribut klíče (diskriminátor) – atribut, který v kombinaci s klíčovým atributem entity vlastníka poskytuje jedinečnou identifikaci slabé entity. Diskriminátor podtrhneme přerušovanou čarou:
-
atribut s více hodnotami – atribut, který může mít mnoho hodnot (ve stejném sloupci tabulky je pro něj zadáno mnoho odlišných hodnot). Vícehodnotový atribut je znázorněn dvojitým oválem:
Každý uživatel může mít například několik různých koníčků, proto lze „hobby“ považovat za vícehodnotový atribut entity „user“:
-
odvozený atribut (nebo vypočítaný atribut) – atribut, jehož hodnota je vypočtena (odvozena) z jiných atributů. Odvozený atribut může nebo nemusí být fyzicky uložen v databázi.
V zápisu Chen je tento atribut reprezentován přerušovaným oválem:
Například po uvedení ceny bez DPH a sazby DPH můžeme vypočítat cenu včetně DPH:
Některé atributy lze dále rozdělit na menší části. Například atribut „address“ lze dále rozdělit na název ulice, číslo ulice, číslo bytu, město, stát, PSČ a zemi.
Tyto atributy se nazývají složené atributy a jsou znázorněny následovně:
Vztahy
V zápisu Chen je vztah reprezentován diamantem (kosočtverec) obsahující název vztahu.
Rozlišují se dva druhy vztahu:
-
pevný vztah – vztah, kde je entita existenčně nezávislá na jiných entitách a PK podřízeného neobsahuje PK složku nadřazené entity. Silný vztah představuje jediný kosočtverec:
-
slabý (identifikující) vztah – vztah, kde podřízená entita je existenčně závislá na nadřazeném a PK podřízené entity obsahuje PK složku nadřazené entity. Tento vztah je reprezentován dvojitým kosočtvercem:
Volitelnost vztahu
-
Podobně jako u Barkerova zápisu povinné vztah je znázorněn plnou čarou:
-
Volitelné vztah je znázorněn přerušovanou čarou jako v Barkerově zápisu:
Kardinalita
Stupeň vztahu (kardinalita ) je reprezentován znaky „1“, „N“ nebo „M“ obvykle umístěnými na koncích vztahů:
-
jeden ku jednomu (1:1)
Zaměstnanec může řídit pouze jedno oddělení a každé oddělení může řídit pouze jeden zaměstnanec:
-
jedna k mnoha (1:N)
Zákazník může zadat mnoho objednávek, ale každou objednávku může zadat pouze jeden zákazník:
-
mnoho ku jedné (N:1)
Mnoho zaměstnanců může patřit do jednoho oddělení, ale jeden konkrétní zaměstnanec může patřit pouze do jednoho oddělení:
-
mnoho k mnoha (M:N)
Jeden student může patřit do více než jedné studentské organizace a jedna organizace může přijmout více než jednoho studenta:
Omezení účasti
Sada entit se může účastnit vztahu buď zcela nebo částečně.
-
Celková účast znamená, že do vztahu je zapojena každá entita v sadě, např. každý student musí být veden profesorem (neexistují studenti, kteří by nebyli vedeni žádným profesorem). V zápisu Chen je tento druh vztahu znázorněn jako dvojitá čára.
-
Částečná účast znamená, že ne všechny entity v sadě jsou zapojeny do vztahu, např. ne každý profesor vede studenta (jsou profesoři, kteří ne). V zápisu Chen je částečná participace reprezentována jednou čárou.
Výše uvedený vztah znamená, že každý student bez výjimky musí být veden jedním vybraným profesorem a jeden – ale ne každý – profesor může vést mnoho studentů. Neexistuje tedy student, který by nebyl veden profesorem, a na druhé straně mohou existovat profesoři, kteří žádného studenta nevedou.
Nyní se podívejme, jak náš příklad s knihou a kapitolou (uvedený v předchozí části) vypadá v zápisu Chen.