ER-model (z angl. Entity-Relationship model je abstraktní koncepční model používaný k popisu struktury databáze. ER model je schematický diagram, který odráží vztahy a závislosti mezi entitami (entities) v databázi.
Entity v ER modelu představují skutečné objekty nebo pojmy, které mají hodnoty atributů (attributes) a podílejí se na spojení s jinými entitami. Atributy jsou vlastnosti nebo vlastnosti entit,které lze popsat hodnotami různých typů dat.
Vazby mezi entitami v ER modelu jsou definovány pomocí vztahů, které mohou mít také atributy. Vztahy mohou být jednosměrné nebo obousměrné, mohou být jeden k jednomu, jeden k mnoha nebo mnoho k mnoha. Každá komunikace může být povinná (mandatory) nebo volitelná (optional), což znamená, že v databázi existují nebo neexistují žádné propojovací záznamy.
ER model je základem pro návrh koncepčního schématu databáze, který je poté převeden na fyzikální obvod na konkrétní platformě nebo na ORM (objektové relační zobrazení). ER model umožňuje projektantům databází jasně prezentovat a organizovat data, což usnadňuje pochopení struktury databáze a zajišťuje spolehlivost a efektivitu při práci s informacemi.
Základy er modelu v databázi
ER (Entity-Relationship) model je grafické a koncepční schéma struktury databáze. Používá se k popisu entit (entities), jejich atributů (attributes) a vazeb mezi nimi.
Podstatou modelu ER je prezentovat informace o skutečném světě jako soubor entit, které mají určité atributy a vzájemné vztahy. Entity mohou být jednotlivci, předměty, události atd. a atributy jsou vlastnosti těchto entit.
ER model je založen na následujících základních konceptech:
- Entita: je to nějaký objekt nebo pojem v reálném světě, který chceme popsat v databázi. Příklady entit mohou být: studenti, kurzy, objednávky atd. každá entita má jedinečný identifikátor (primary key).
- Atribut: jedná se o Vlastnosti nebo vlastnosti entit. Například student může mít atributy jako jméno, příjmení, číslo studentského lístku atd.
- Vazby: je to vztah mezi entitami. Vazby mohou být jednosměrné nebo obousměrné a mohou mít různé typy, jako jsou: jeden-k-Jeden,Jeden-k-mnoha a mnoho-k-mnoha.
ER model umožňuje vizualizovat strukturu databáze a je základem pro vývoj databázového schématu. Pomáhá určit, které tabulky a pole budou použity a jaké vazby mezi nimi budou existovat.
Definice a principy modelu ER
ER model je založen na několika principech:
- Entita (Entita): entita představuje skutečný nebo abstraktní objekt, který má jedinečné atributy. V ER jsou modely entity označeny obdélníky.
- Atribut (Attribute): atributy určují vlastnosti entit. Mohou být jednoduché (nerozdělitelné) nebo složené (rozdělené na menší části). V ER modelu jsou atributy označeny ovály, které jsou vázány na příslušnou entitu.
- Komunikace (Relationship): vztahy určují vztahy mezi entitami. Poukazují na spojení mezi dvěma nebo více entitami a mohou mít své atributy. V ER jsou komunikační modely označeny kosočtverci a spojeny s příslušnými entitami.
- Klíč (Key): klíče určují jedinečnost entit. Mohou být jednoduché (složené z jednoho atributu) nebo složené (složené z více atributů). Klíče jsou označeny podtržením uvnitř oválu, který představuje atribut.
- Kardinálnost (Cardinality): kardinálnost určuje počet vazeb mezi entitami. Může být jedna ku jedné (1:1), Jeden k mnoha (1:N), mnozí k jednomu (N:1) nebo mnozí k mnoha (N: M).
ER model umožňuje vytvářet logickou strukturu databáze a je jednou z nejběžnějších metod návrhu databází. Pomáhá vizualizovat a porozumět souvislostem mezi daty, což usnadňuje vývoj a optimalizaci databází.
Výhody používání er modelu
- Srozumitelnost a přehlednost. ER model umožňuje představit složité vztahy mezi entitami srozumitelnou formou. Vizualizuje datovou strukturu, což pomáhá snadněji porozumět a vidět souvislosti mezi entitami.
- Snadná analýza a návrh databáze. ER model poskytuje šablony pro analýzu a návrh databáze. Umožňuje snadno identifikovat a uspořádat datovou strukturu a identifikovat její vazby, atributy a omezení.
- Škálovatelnost. ER model umožňuje v případě potřeby snadno provádět změny ve struktuře databáze. Umožňuje přidávat nové entity, měnit stávající atributy a vazby bez značných nákladů a problémů.
- Komunikace a spolupráce. ER model je vhodným nástrojem pro komunikaci mezi různými účastníky projektu. Umožňuje vývojářům, analytikům a zákazníkům snadno porozumět a diskutovat o struktuře dat.
- Ladění a testování je efektivnější. ER model poskytuje úplný přehled o datové struktuře, což usnadňuje sledování a opravu chyb v databázi. Zjednodušuje také proces testování a ověřování správnosti databáze.
Příklad použití er modelu v reálné databázi
Pro lepší pochopení, zvažte příklad použití er modelu v reálné databázi. Předpokládejme, že máme databázi pro e-shop, kde chceme uchovávat informace o zboží, zákaznících a objednávkách.
Pro začátek vytvoříme tři hlavní entity: zboží, kupující a objednávky.
| Zboží | Zákazníci | Zakázky |
|---|---|---|
| ID zboží | id kupujícího | ID objednávky |
| název zboží | jméno kupujícího | datum objednávky |
| cena zboží | jméno kupujícího | stav objednávky |
Jak je vidět v tabulce, každá entita má své vlastní atributy, které pomáhají popsat jejich vlastnosti a vazby na jiné entity.
Nyní k navázání spojení mezi těmito entitami přidáme další atributy:
| Zboží | Zákazníci | Zakázky |
|---|---|---|
| ID zboží | id kupujícího | ID objednávky |
| název zboží | jméno kupujícího | datum objednávky |
| cena zboží | jméno kupujícího | stav objednávky |
| id kupujícího | ||
| ID objednávky |
Nyní vidíme, že podstata "zboží" je spojena s entitou "kupující" prostřednictvím atributu "id kupujícího" a podstata "kupující" je spojena s entitou "objednávky" prostřednictvím atributu "id objednávky".
Použití modelu ER tak umožňuje názorně prezentovat strukturu databáze, atributy entit a jejich vzájemné vztahy. To usnadňuje vývoj a porozumění databázím a pomáhá předcházet chybám při navrhování a používání.