Konceptuální úroveň - ER diagram

Stránky: E-learning VŠCHT Praha
Kurz: Využití databází a jazyka SQL
Kniha: Konceptuální úroveň - ER diagram
Vytiskl(a): Nepřihlášený host
Datum: úterý, 1. října 2024, 09.12

1. Definice

ER (entity-relationship) diagram, někdy také uváděn jako ER model, je nejčastěji používaný model k vyjádření organizace dat v databázích a vztahů mezi entitami. Existují dva druhy ER diagramů: konceptuální a fyzický.


Konceptuální ER diagram

Konceptuální ER diagramy se obvykle používají jako základ pro logické modelování dat a pro definování společných vztahů mezi daty. Konceptuální ER diagram používá šest standardních symbolů:

  1. Entita. Entita (entity) je objekt nebo koncept, který reprezentuje data. Entity jsou také známé jako silné entity nebo rodičovské (parent) entity, kterým většinou přísluší slabé entity, jež jsou na nich závislé.
  2. Atribut. Atributy (attributes) jsou charakteristiky - vlastnosti entit.
  3. Vztah. Vztahy (relationships) vyjadřují asociace mezi entitami.
  4. Slabá entita. Slabá (weak entity) entity závisí na jiné entitě.
  5. Mnohočetný atribut. Mnohočetný atribut (multivalued attribute) je atribut, kteý může mít více než jednu hodnotu.
  6. Slabý vztah. Slabý vztah (weak relationship) je spojení mezi slabou antitou a její silnou entitou.



Fyzický ER diagram

Fyzický ER diagram je více specifický, ukazuje definice, vlastnosti a vztahy, které jsou nezbytné pro vkládání dat do databáze. Místo obecných symbolů je každá entita vyobrazena jako tabulka, ve které jsou uvedena pole, která reprezentují jednotlivé atributy. Entity jsou v diagramu propojeny pomocí některého z mnoha systémů notací (notation) určeného pro definici vztahů mezi entitami.


2. Entita

Entita reprezentuje třídu objektu. Příkladem entity může být třída člověk atp. Ve fyzickém modelu pak entita představuje databázovou tabulku. Každý záznam v tabulce pak představuje konkrétního jedince, tedy instanci třídy člověk.

Entita se v ER diagramu označuje jako obdélník s uvedeným názvem třídy.



3. Atribut

Entity mají obvykle sadu atributů, které entitu popisují. U třídy člověk to mohou být například atributy jméno, věk, výška, váha, barva očí atd. Některé z nich mohou být jedinečné - unikátní, čímž záznamy odlišují od ostatních instancí dané třídy a jednoznačně identifikuje. V případě třídy člověk to je například rodné číslo. Takové atributy se pak zpravidla volí jako tzv. primární klíč. Ve fyzickém modelu představují atributy dané třídy jednotlivé sloupce databázové tabulky.

Atributy třídy se v ER diagramu uvádějí v obdélníku pod názvem entitiy. U atributu s významem primárního klíče se uvádí symbol *.



4. Vztahy mezi entitami

Entity v modelech resp. tabulky v databázích mohou existovat zcela samostatně a nezávisle na jiných entitách. Nicméně, pokud to logika datového modelu dovolí, lze mezi relacemi vytvářet vztahy (angl. relationships), které přináší další informace o datech. Vztahy mezi entitami tedy slouží k asociaci (svázání) dat, která spolu souvisejí. Každý vztah v relačních databázích je charakterizován třemi vlastnostmi

  1. stupeň vztahu
  2. kardinalita (angl. cardinality), také násobnost účasti
  3. parcialita (angl. modality), také volitelnost účasti

4.1. Stupeň vztahu

V ER modelování se uplatňuje několik typů stupňů vztahů

  1. Unární vztah. V unárním vztahu je relace spojena sama se sebou. Typickým příkladem je tabulka zaměstnanců ve firmě. Firma má obvykle několik zaměstnanců. Někteří z nich jsou však nadřízenými, přesto stále zaměstnanci ve firmě. Sám nadřízený může mít dalšího nadřízeného zaměstanace atd. Vztah se realizuje vložením primárního klíče do tabulky zaměstnanec ve formě cizího klíče opět do tabulky zaměstnanec.
  2. Binární vztah. Binární vztah je nejčastější formou vztahu mezi dvěma tabulkami.
  3. Ternární vztah. Ternární vztah je vztahem mezi třemi tabulkami současně.
  4. N-ární vztah. N-ární vztah je vztahem mezi N tabulkami najednou.

Vztahy mezi více jak dvěmi tabulkami se nemodelují snadno, avšak v praxi se vyskytují velmi zřídka.


4.2. Kardinalita

Kardinalita (angl. cardinality, někdy také násobnost, angl. multiplicity) je vlastnost vztahu mezi entitami, která vypovídá o násobnosti asociace instance jedné entity vůči instancím jiné entity. Může nabývat hodnot jedna (angl. one) nebo více (angl. many). Kardinalita pak díky uvedenému faktu definuje tři typy vztahů

  1. 1:1, one-to-one
  2. 1:N, one-to-many
  3. N:M, many-to-many


Vztah jedna ku jedné (1:1, one-to-one)

Vztah 1:1 se používá pokud záznamu jedné tabulky odpovídá právě jeden záznam v jiné tabulce a naopak. Takový vztah se nepoužívá příliš často, protože takové záznamy lze umístit do jedné databázové tabulky. Jedním z důvodů proč využít takový vztah, je zpřehlednění rozsáhlých tabulek. Jako příklad vztahu lze zmínit vztah student - židle (v diskrétním časovém úseku). Platí, že každá jedna židle je určena pouze pro jednoho studenta, a zároveň platí, že každý jeden student může sedět jen na jedné židli.



Vztah jedna ku více (1:N, one-to-many)

Vztah 1:N přiřazuje jednomu záznamu z jedné tabulky více záznamů z jiné tabulky. Jedná se o nejpoužívanější typ vztahu, protože odpovídá mnoha situacím v reálném životě. Příklad může být vztah výrobce - produkt. Platí, že každý jeden výrobce může vyrobit více produktů, a zároveň platí, že více různých produktů má jednoho výrobce.



Vztah více ku více (N:M, many-to-many)

Vztah N:M umožňuje každému záznamu z jedné tabulky přiřadit libovolný počet záznamů z druhé tabulky a naopak. V praxi je tento vztah realizován kombinací dvou vztahů 1:N a 1:M, což vyžaduje zavedení třetí (vazebné, pomocné) tabulky, která je složená z kombinací klíčů použitých v obou tabulkách. Příkladem může být vztah student - předmět. Platí, že více studentů navštěvuje více různých předmětů, a zároveň platí, že více předmětů navštěvuje více různých studentů.



4.3. Parcialita

Parcialita (někdy také modalita) vyjadřuje volitelnost účasti ve vztahu. Účast relace ve vztahu může být povinná nebo volitelná. Lépe řečeno vyjadřuje minimální počet vztahů jedné instance vůči ostatním. Pokud je účast volitelná, nabývá hodnoty nula (zero), pokud povinná, nabývá hodnoty jedna (one).

Ve výsledném spojení s kardinalitou umožňuje parcialita definovat celkem čtyři možné typy účastí instancí entit ve vztazích

  1. jeden a pouze jeden (one and only one)
  2. jeden nebo více (one or many)
  3. žádný nebo více (zero or many)
  4. žádný nebo jeden (zero or one)


5. Notace

Pro vyjádření vztahů mezi entitami se v ER diagramech využívají různé notace. Jmenujme například Chenova notace, UML notace, Barkerova notace a spousta dalších. V tomto kurzu využíváme tzv. Crow's foot notaci. Následuje její podoba pro všechny dříve uvedené stupně vztahů mezi entitami.


Kardinalita


Parcialita


Kombinace všech možností vztahů