Model diagramu vztahu entit (ER) s příkladem DBMS
⚡ Chytré shrnutí
Model diagramu entit a vztahů (ER) s příkladem DBMS ilustruje strukturovanou metodu pro vizuální reprezentaci dat a jejich propojení v relačních databázích. Navrhl ji Peter Chen a poskytuje základ konceptuálního modelování pro přesné definování entit, atributů, vztahů a jejich kardinality.

Co je ER diagram?
Diagram entit a vztahů (ER) je výkonný vizuální nástroj pro návrh relačních databázových struktur. Poprvé jej navrhl Peter Chen v roce 1976 a poskytuje základ koncepčního modelování, který přesně definuje entity, atributy, vztahy a jejich kardinality. Tento tutoriál pokrývá vše od základních konceptů až po pokročilé techniky a pomáhá vám zvládnout návrh schémat databáze.
ER diagramy obsahují různé symboly, které používají obdélníky k reprezentaci entit, ovály k definování atributů a diamanty k reprezentaci vztahů.
Na první pohled vypadá ER diagram velmi podobně jako vývojový diagram. ER diagram však obsahuje mnoho specializovaných symbolů a jejich významy činí tento model jedinečným. Účelem ER diagramu je reprezentovat infrastrukturu Entity Framework.

Historie ER modelů
Peter Chen navrhl ER diagram v roce 1976 ve svém zásadním článku „Model entit a vztahů: Směrem k jednotnému pohledu na data“. Jeho cílem bylo vytvořit jednotnou konvenci, kterou by bylo možné použít jak pro relační databáze, tak pro sítě. Chen si ER model představoval jako koncepční modelovací přístup, který by překlenul propast mezi reálnými požadavky a technickou implementací databází.
Od té doby se ER model vyvíjel s různými notačními systémy, včetně Chen Notation (původní), Crow's Foot Notation (oblíbená v moderních nástrojích) a přístupů založených na UML. Navzdory těmto rozdílům zůstávají základní koncepty konzistentní ve všech implementacích.
Proč používat ER diagramy?
ER diagramy poskytují řadu výhod pro návrh a vývoj databází:
- Vizuální komunikace: Poskytují jasnou vizuální reprezentaci, které rozumí jak techničtí, tak i netechničtí aktéři.
- Plán pro rozvoj: Ukazují přesně, jak by se měly tabulky propojovat a jaká pole bude každá tabulka obsahovat.
- Připraveno k překladu: ER diagramy lze přímo převést do relačních tabulek, což vám umožňuje rychle vytvářet databáze.
- Prevence chyb: Pomáhají identifikovat nedostatky v návrhu a nadbytečnosti před implementací, což šetří čas a zdroje.
- Dokumentace: Slouží jako trvalá dokumentace, která pomáhá novým členům týmu porozumět architektuře systému.
- Analýza systému: Pomáhají identifikovat všechny entity, které v systému existují, a vztahy mezi nimi.
Komponenty ER diagramu
Každý ER diagram je sestaven ze tří základních komponent: entit, atributů a vztahů. Pochopení každé komponenty a její interakce je nezbytné pro vytváření efektivních návrhů databází.
Příklady ER diagramů
Například v univerzitní databázi můžeme mít entity pro studenty, kurzy a přednášející. Entita student může mít atributy jako číslo role, jméno a ID katedry. Mohou mít vztahy s kurzy a přednášejícími.
Subjekty
Entita představuje jakýkoli objekt reálného světa – živý nebo neživý – který lze jasně identifikovat a o kterém lze ukládat data. Může se jednat o fyzickou věc, fakt o podniku nebo událost, která se odehrává v reálném světě. Entity mohou zahrnovat osoby, místa, objekty, události nebo koncepty.
Příklady entit podle kategorie:
- Osoba: Zaměstnanec, Student, Pacient, Zákazník
- místo: Obchod, budova, kancelář, sklad
- Objekt: Stroj, Produkt, Auto, Kniha
- Událost: Prodej, registrace, obnovení, transakce
- Pojem: Účet, Kurz, Oddělení, Projekt
Sada entit
Sada entit je skupina podobných entit, které sdílejí společné atributy. Například všichni studenti na univerzitě tvoří sadu entit „Student“. Entity jsou v ER diagramech znázorněny pomocí obdélníků, přičemž uvnitř je napsán název entity.
Entity jsou reprezentovány svými vlastnostmi, které se také nazývají atributy. Všechny atributy mají své samostatné hodnoty. Například entita student může mít jako atributy jméno, věk a třídu.
Silné entity vs. slabé entity
Entity se klasifikují jako silné nebo slabé na základě jejich schopnosti existovat nezávisle. Pochopení tohoto rozdílu je klíčové pro správný návrh databáze.
Silná entita má svůj vlastní primární klíč a může existovat nezávisle. Například entita „Student“ může být jednoznačně identifikována pomocí Student_ID, aniž by závisela na jakékoli jiné entitě.
Slabá entita nemá vlastní primární klíč a pro svou identifikaci je závislá na silné entitě (nazývané entita vlastníka). Pro dosažení jedinečnosti používá částečný klíč (diskriminátor) v kombinaci s primárním klíčem vlastníka. Například v bankovním systému závisí entita „Transakce“ na entitě „Účet“ – samotné číslo transakce není v celé databázi jedinečné, ale v kombinaci s číslem účtu se jedinečným stává.
| Silná entita | Slabá entita |
|---|---|
| Má svůj vlastní primární klíč | Nemá primární klíč; používá částečný klíč |
| Znázorněno jedním obdélníkem | Znázorněno dvojitým obdélníkem |
| Primární klíč je podtržen plnou čarou | Částečný klíč je podtržen přerušovanou čarou |
| Může existovat nezávisle | Existence závisí na vlastníkovi |
| Spojený s vztahem s jedním diamantem | Spojeno s dvojitým diamantem (identifikační vztah) |
| Příklad: Student, Zaměstnanec, Produkt | Příklad: Transakce, Závislá, Položka_objednávky |
Vztah
Vztah představuje spojení mezi dvěma nebo více entitami. Vztahy se obvykle identifikují pomocí sloves nebo slovesných frází, které popisují, jak entity vzájemně interagují. V ER diagramech jsou vztahy znázorněny pomocí diamantových tvarů. Příklad: Tom pracuje na katedře chemie.
Subjekty se účastní vztahů. Vztahy můžeme často identifikovat se slovesy nebo slovesnými frázemi.
Příklady:
- Navštěvujete tuto přednášku
- Přednáším já
- Student navštěvuje přednášku
- Přednášející přednáší
Atributy
Atribut je vlastnost nebo charakteristika, která popisuje entitu nebo vztah. Atributy poskytují podrobné informace, díky nimž je každá instance entity jedinečná a smysluplná. V ER diagramech jsou atributy znázorněny pomocí oválů (elips) spojených s jejich nadřazenou entitou čarou.
Například entita Student může mít atributy jako ID_studenta, Jméno, Datum_narození, E-mail a Telefonní_číslo.
Typy atributů
| Typ atributu | Description | Příklad |
|---|---|---|
| Jednoduché (Atomic) | Nelze dále rozdělit na menší komponenty | Telefonní číslo, rodné číslo, e-mail |
| Složený | Lze rozdělit na menší dílčí atributy | Celé jméno (křestní, prostřední, příjmení), adresa (ulice, město, PSČ) |
| Odvozený | Hodnota se vypočítává z jiných atributů; neukládá se přímo | Věk (odvozeno z data narození), Celková cena |
| Vícehodnotový | Může obsahovat více hodnot pro jednu entitu | Telefon Numbers, E-mailové adresy, Dovednosti |
| Klíčový atribut | Jednoznačně identifikuje každou instanci entity (primární klíč) | ID studenta, ID zaměstnance, ISBN |
Tip tipu: V ER diagramech jsou klíčové atributy zobrazeny s podtrženými názvy. Odvozené atributy jsou zobrazeny přerušovanými ovály a vícehodnotové atributy jsou zobrazeny dvojitými ovály.
Kardinalita (typy vztahů)
Kardinalita definuje numerická omezení vztahu – konkrétně kolik instancí jedné entity lze asociovat s instancemi jiné entity. Pochopení kardinality je nezbytné pro návrh efektivních databázových struktur.
1. Individuální (1:1)
Jedna entita z množiny A může být asociována nejvýše s jednou entitou z množiny B a naopak.
Příklad: Jeden student má přiřazeno přesně jedno studentské ID a každé studentské ID patří přesně jednomu studentovi.
2. Jeden k mnoha (1:N)
Jedna entita z množiny A může být asociována s více entitami z množiny B, ale každá entita v B je asociována pouze s jednou entitou v A.
Příklad: Jedna třída se skládá z více studentů.
3. Mnoho k jedné (N:1)
Více entit z množiny A může být asociováno s jednou entitou z množiny B.
Například mnoho studentů patří do stejné třídy.
4. Mnoho k mnoha (M:N)
Více entit z množiny A může být asociováno s více entitami z množiny B a naopak.
Například studenti jako skupina jsou spojeni s více členy fakulty a členové fakulty mohou být spojeni s více studenty.
Symboly a notace v ER diagramu
ER diagramy používají standardizované symboly k reprezentaci různých komponent. Ačkoli existuje několik notačních systémů, dva nejpoužívanější jsou Chen Notation a Crow's Foot Notation.
Chenova notace
Chen Notation, vyvinutý Peterem Chen v roce 1976, používá geometrické tvary k reprezentaci různých prvků:
| Symbol | Jméno | Představuje |
|---|---|---|
| Obdélník | bytost | Silná entita (např. Student, Produkt) |
| Double Obdélník | Slabá entita | Entita závislá na jiné (např. transakce) |
| Elipsa/Ovál | Atribut | Vlastnost entity (např. název, ID) |
| Double Elipsa | Vícehodnotový atribut | Atribut s více hodnotami (např. Telefon Numbers) |
| Čárkovaná elipsa | Odvozený atribut | Vypočítaná hodnota (např. věk od data narození) |
| diamant | Vztah | Asociace mezi entitami (např. zápisy) |
| Double diamant | Identifikace vztahu | Vztah se slabou entitou |
| Linka | Odkaz | Spojuje komponenty dohromady |
| Podtržený text | Primární klíč | Jedinečný identifikátor entity |
Notace „Crow's Foot“
Notace Crow's Foot (také nazývaná IE Notation) se běžněji používá v moderních nástrojích pro návrh databází. Používá různé konce řádků k vyjádření mohutnosti a je obzvláště efektivní pro zobrazení stránky „many“ ve vztahu.
| Symbol Description | Význam |
|---|---|
| Jedna svislá čára (|) | Povinný Jeden (přesně jeden) |
| Kruh s čarou (O|) | Volitelné Jeden (nula nebo jedna) |
| Vraní noha s linkou (>|) | Povinné Mnoho (jeden nebo více) |
| Vraní noha s kruhem (>O) | Volitelné Mnoho (nula nebo více) |
Chenův zápis vs. Crow's Foot: Kdy použít který z nich
| Vzhled | Chenova notace | Notace „Crow's Foot“ |
|---|---|---|
| nejlepší | Konceptuální modelování, akademické využití | Fyzikální/logické modelování, průmyslové využití |
| Zobrazení atributů | Vizuálně zobrazuje všechny atributy | Vypíše atributy uvnitř rámečku entity |
| Kardinalita | Používá čísla (1, N, M) | Používá vizuální symboly |
| Komplexita | Může se stát přeplněným | Kompaktnější a čistší |
| Podpora nástrojů | Omezená podpora moderních nástrojů | Široce podporováno v nástrojích |
Jak vytvořit diagram vztahu entit (ERD)
V tomto tutoriálu o ER diagramu (ERD) se naučíme, jak vytvořit ER diagram. Následují kroky k vytvoření ER diagramu:
Pojďme si je prostudovat na příkladu diagramu vztahu entit:
Na univerzitě se student zapisuje do kurzů. Student musí být přidělen alespoň k jednomu kurzu. Každý kurz vyučuje jeden profesor. Aby byla zachována kvalita výuky, může profesor přednášet pouze jeden kurz.
Krok 1) Identifikace entity
Máme tři subjekty:
- Student
- Kurz
- Profesor
Krok 2) Identifikace vztahu
Máme následující dva vztahy:
- Student je přiděleno kurz
- Profesor přináší kurz
Krok 3) Identifikace mohutnosti
Z popisu problému víme, že:
- Student může být přidělen násobek kurzy
- Profesor může dodávat pouze jedna kurs
Krok 4) Identifikujte atributy
Abyste identifikovali atributy, musíte prostudovat soubory, formuláře, zprávy a data, která organizace aktuálně uchovává. Můžete také provést rozhovory s různými zainteresovanými stranami, abyste identifikovali entity. Nejprve je důležité identifikovat atributy, aniž byste je mapovali na konkrétní entitu.
Jakmile máte seznam atributů, je třeba je namapovat na identifikované entity. Ujistěte se, že atribut je spárován přesně s jednou entitou. Pokud si myslíte, že by atribut měl patřit více než jedné entitě, použijte modifikátor, aby byl jedinečný.
Po dokončení mapování identifikujte primární klíče. Pokud jedinečný klíč není snadno dostupný, vytvořte jej.
| bytost | Primární klíč | Atribut |
|---|---|---|
| Student | Student_ID | Jméno studenta |
| Profesor | Employee_ID | Jméno profesora |
| Kurz | Course_ID | Název kurzu |
Pro entitu kurzu mohou být atributy Délka trvání, Kredity, Úkoly atd. Pro přehlednost jsme uvažovali pouze jeden atribut.
Krok 5) Vytvořte ERD
Modernější znázornění příkladu diagramu vztahů mezi entitami:
Nejlepší postupy pro efektivní ER diagramy
Pro vytvoření jasných, udržovatelných a efektivních ER diagramů dodržujte tyto pokyny:
- Odstranění redundance: Odstraňte duplicitní entity, atributy nebo vztahy.
- Používejte jasné konvence pojmenování: Používejte konzistentní a popisné názvy. Vyhýbejte se zkratkám.
- Ověření podle požadavků: Zajistěte, aby diagram podporoval všechny potřeby ukládání dat.
- Keep It Simple: Vytvořte více diagramů na různých úrovních, nikoli jeden přeplněný diagram.
- Používejte barvy střídmě: Používejte barvy konzistentně k zvýraznění kategorií.
- Předpoklady dokumentu: Uveďte poznámky vysvětlující předpoklady týkající se obchodních pravidel.
- Revnázor se zúčastněnými stranami: Nechte firemní uživatele a technický tým zkontrolovat diagram.
- Řízení verzí: Udržujte verze s vývojem návrhu.
ER diagramy vs. diagramy tříd UML
I když se pro modelování dat používají jak ER diagramy, tak i diagramy tříd UML, slouží různým účelům a kontextům. Pochopení, kdy který z nich použít, je důležité pro efektivní návrh systému.
| Vzhled | ER diagram | Diagram tříd UML |
|---|---|---|
| Primární účel | Návrh databáze | Návrh softwaru/objektu |
| Soustředit | Data a vztahy | Objekty, metody a chování |
| Metody/Operace | Není podporováno | Plně podporováno |
| Dědictví | Omezené (pouze v EER) | Plná podpora |
| Průmyslové použití | Správci databází, analytici dat | Softwaroví vývojáři, architekti |















