Entity-relationship model
Entity-relationship model (ERM), entitně vztahový model se v softwarovém inženýrství používá pro abstraktní a konceptuální znázornění dat. Entity-relationship modelování je metoda datového modelování, která vytváří jeden z typů konceptuálních schémat či sémantických datových modelů systému (obvykle relační databáze) a požadavků na něj stylem shora dolů.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/72/ER_Diagram_MMORPG.png/320px-ER_Diagram_MMORPG.png)
Diagramy vytvořené pomocí této metody se nazývají entity-relationship diagramy, ER diagramy nebo také zkráceně pouze ERD. Konečnou podobu dostalo entity relationship modelování v práci Petera Chena z roku 1976.[1]
Nicméně určité varianty tohoto přístupu již existovaly dříve (viz např. A.P.G. Brown[2]) a byly pak následně zpracovány.
Úvod
V první fázi návrhu informačního systému se tyto modely používají při analýze požadavků k popisu informační potřeby nebo typu informace uložené v databázi. Techniky datového modelování se používají pro popis ontologie (tj. přehled a klasifikace použitých pojmů a jejich vztahy mezi sebou) pro určitou oblast zájmu. V případě, že jde o návrh informačního systému založeného na databázi, je konceptuální model v pozdější fázi (obvykle nazývané logický návrh) namapován na logický datový model, kterým je kupříkladu relační model, ten je dále mapován ve fyzické fázi na fyzický datový model. Je důležité poznamenat, že obě tyto fáze se obvykle berou za "fyzický návrh".
Existuje několik konvencí pro zápis entity-relationship diagramů (ERD). Způsoby běžné notace jsou uvedeny ve zbytku tohoto článku, v podstatě odpovídají konceptuálnímu modelování. Existují také další notace používané především při logickém a fyzickém návrhu databáze, jako například IDEF1X.
Propojení
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Erd-entity-relationship-example1.svg/283px-Erd-entity-relationship-example1.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Erd-entity-with-attribute.svg/193px-Erd-entity-with-attribute.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Erd-relationship-with-attribute.svg/344px-Erd-relationship-with-attribute.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/5/52/Erd-id-as-primary-key.png)
Entita se dá definovat jako věc schopná samostatné existence a je jednoznačně identifikovatelná. Entita je abstrakcí komplexity určité oblasti. Hovoříme-li o entitě obvyklým způsobem, hovoříme o určitém aspektu reálného světa, který se dá od ostatních aspektů odlišit.[3]
Entita může být fyzicky existující objekt, jako například dům nebo automobil, nebo událost jako je prodej domu nebo servis automobilu nebo může jít o pojem jako je například zákaznická transakce nebo objednávka. Přesto, že termín entita se užívá nejčastěji, bylo by podle Chena dobré opravdu odlišovat mezi entitou a entitním typem. Entitní typ je kategorie a entita v pravém slova smyslu je instance daného entitního typu, a toho obvykle existuje mnoho instancí. Protože je entitní typ poněkud těžkopádný výraz, lidé obvykle raději používají výraz entita jako synonymum.
Entity jsou označovány podstatnými jmény. Příklad: počítač, zaměstnanec, píseň, matematická teorie. Entity se zobrazují jako obdélníky.
Vztah (relationship) zachycuje, jakým způsobem jsou dvě nebo více entit vztažené mezi sebou. Vztahy se označují slovesy, spojujícími dvě nebo více podstatných jmen. Příklad: vztah vlastní je mezi společností a počítačem, vztah dohlíží je mezi zaměstnancem a oddělením, vztah hraje je mezi umělcem a písní, a vztah dokázal je mezi matematikem a matematickou teorií. Vztahy se zobrazují jako kosočtverce propojené čárami vedoucími ke každé entitě vztahu.
Jak entity, tak i vztahy mohou obsahovat atributy. Příklad: entita zaměstnanec může obsahovat atribut rodné číslo (RČ); vztah dokázal může obsahovat atribut datum. Atributy se zobrazují jako elipsy propojené čarou s jejich vlastnící entitou. Každá entita (pokud nejde o slabou entitu) musí mít nejméně tolik atributů, aby byla za všech okolností jednoznačně identifikovatelná, jde o tzv primární klíč.
Entity-relationship diagramy nezobrazují samostatné entity nebo jednoduché vztahy, zobrazují množiny entit a množiny vztahů. Příklad: určitá píseň je entita. Sbírka všech písní z databáze je množina entit. Vztah je sněden mezi dítětem a jeho obědem je jednoduchý vztah. Množina všech vztahů týkající se dětí a obědů v databázi je množina vztahů.
Čáry jsou zakreslovány mezi množinami entit a množinami vztahů, kterých se týká. Pokud se všechny entity z dané množiny musejí účastnit množiny vztahů, znázorňuje se to tlustou nebo dvojitou čarou a nazývá se to omezení účasti ve vztahu (participation constraint). Pokud se každá entita z množiny může účastnit maximálně jednoho vztahu z množiny, je to znázorněno šipkou od množiny entit k množině vztahů, je to nazýváno klíčové omezení (key constraint). Ke znázornění vztahu, kdy každá entita z množiny se účastní právě jednoho vztahu z množiny, se používá tlustá šipka.
Alternativní konvence pro psaní diagramů
![ER diagram](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/ERD_Representation.svg/320px-ERD_Representation.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/ERD-artist-performs-song.svg/320px-ERD-artist-performs-song.svg.png)
Chenova notace entity-relationship modelování používá obdélníky pro znázornění entit a kosočtverce pro znázornění vztahů. Tato notace je odpovídající, protože Chenovy vztahy jsou původně objekty - mohou samy obsahovat atributy i další vztahy.
Alternativní konvence, částečně z historického hlediska:
- IDEF1X[4]
- Bachmanova notace
- Martinova notace
- (min, max)-notace Jean-Raymonda Abriala z roku 1974
- Standard UML
- EXPRESS
Crow's Foot
Jedna z alternativních notacích známá jako "crow's foot" byla vytvořena nezávisle, v těchto diagramech jsou entity znázorněny v boxech a vztahy oblouky s popisem.
Notace "Crow's Foot" znázorňuje vztahy propojováním entit čarami, přičemž symboly na obou koncích čáry symbolizují kardinalitu vztahu. Notace Crow's Foot se používá v Barkerově notaci a v metodologiích jako je SSADM (Structured Systems Analysis and Design Method) nebo informační inženýrství.
Zprvu byla ve Spojených státech Chenova notace používanější, zatímco v 80. letech 20. století notace Crow's Foot byla využívána především ve Velké Británii prostřednictvím konzultantských metod společnosti CACI International, které z notace vyšly. Mnoho konzultantů z CACI, včetně Barkera, se postupně přesunuli k Oracle UK, kde započali vývoj prvních verzí CASE nástrojů společnosti Oracle. To mělo za následek zpřístupnění notace širší veřejnosti a v současnosti je využívána mnoha nástroji včetně nástrojů System Architect, Microsoft Visio, PowerDesigner, ModelRight, Toad Data Modeler, DeZign for Databases, OmniGraffle, MySQL Workbench a Dia.
Notace Crow's foot má následující výhody:
- Srozumitelnost definování kardinality a dědičnosti ze strany vztahu
- Stručně řešená notace povinného vztahu použitím svislé čáry a volitelného vztahu prázdnou kružnicí
- Zobrazuje stručně a jasně notaci, která identifikuje všechny třídy
Nástroje pro vytváření ER diagramů
Na trhu je mnoho nástrojů pro vytváření ER diagramů, z těch proprietárních jsou to například Avolution, ConceptDraw, ER/Studio, ERwin, DeZign for Databases, MEGA International, OmniGraffle, Oracle Designer, PowerDesigner, Rational Rose, RISE Editor, Lucidchart, SmartDraw, Enterprise Architect, Software Ideas Modeler, SQLyog, Toad Data Modeler, Microsoft Visio a Visual Paradigm.
Některé zdarma dostupné modelovací nástroje ER diagramů dokáží interpretovat a generovat ER modely, SQL příkazy také analyzovat databázi přímo, například MySQL Workbench nebo StarUML. Některé volně dostupné nástroje nedokáží generovat ER diagramy nebo sady SQL příkazů. V podstatě jde o kreslení čar, šipek a dalších tvarů aniž by byl znám jejich hlubší význam, například Kivio nebo Dia.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Entity-relationship model na anglické Wikipedii.
- ↑ The Entity Relationship Model - Toward A Unified View of Data
- ↑ A.P.G. Brown, Modelling a Real-World System and Designing a Schema to Represent It, in Data Base Description, ed Douque and Nijssen, North-Holland, 1975, ISBN 0-7204-2833-5
- ↑ Paul Beynon-Davies (2004). Database Systems. Houndmills, Basingstoke, UK: Palgrave
- ↑ IDEF1X. idbms.navo.navy.mil [online]. [cit. 30-12-2008]. Dostupné v archivu pořízeném dne 22-06-2007.
Literatura
- Richard Barker (1990). CASE Method: Tasks and Deliverables. Wokingham, England: Addison-Wesley.
- Paul Beynon-Davies (2004). Database Systems. Houndmills, Basingstoke, UK: Palgrave
- CHEN, Peter. The Entity-Relationship Model - Toward a Unified View of Data. ACM Transactions on Database Systems. March 1976, roč. 1, čís. 1, s. 9–36. DOI 10.1145/320434.320440.
Související články
Externí odkazy
Obrázky, zvuky či videa k tématu Entity-relationship model na Wikimedia Commons
- Yourdon.com - Structured Analysis Wiki - Chapter 12 - Entity-Relationship Diagrams
- Příklad Entity Relationship Diagram Example - ukázka notace crow's feet na názorném příkladě.
- "Origins of ER model pioneering" - Peter Chen.
- "English, Chinese and ER diagrams" - Peter Chen.
- Case study: E-R diagram for Acme Fashion Supplies - Mark H. Ridley
- Logical Data Structures (LDSs) - Getting started - Tony Drewry
- Introduction to Data Modeling