Entitno - Relačný Diagram: Rozdiel medzi revíziami
d |
|||
Riadok 2: | Riadok 2: | ||
'''Definícia:''' | '''Definícia:''' | ||
− | Entitno-relačný (ER) | + | Entitno-relačný diagram (ER, ERD, ER diagram) je špeciálny graf, ktorý ilustruje vzťahy medzi subjektmi v databáze. V ER diagramoch sa používajú symboly predstavujúce tri základné typy informácií. Boxy (obdĺžniky) reprezentujú entity. Diamant reprezentuje vzťahy a ovál sa používa na reprezentovanie atribútov. |
− | |||
− | |||
==Základné pojmy== | ==Základné pojmy== | ||
− | ;Entita:Entita je špecifickým predmetom záujmu z oblasti reálneho sveta. Ako príklad uvedieme účtovný systém, kde nevyhnutné dve veci : účty a transakcie. Ako ďalší príklad môže byť napr. systém zákazníckej podpory, kde potrebujeme informácie o zákazníkoch. Každá takáto jednotka základných informácií sa nazýva 'entita', ktorá má určitý názov a obsahuje atribúty. | + | ;Entita.:Entita je špecifickým predmetom záujmu z oblasti reálneho sveta. Ako príklad uvedieme účtovný systém, kde nevyhnutné dve veci: účty a transakcie. Ako ďalší príklad môže byť napr. systém zákazníckej podpory, kde potrebujeme informácie o zákazníkoch. Každá takáto jednotka základných informácií sa nazýva 'entita', ktorá má určitý názov a obsahuje atribúty. |
− | ;Atribút:Každá entita obsahuje jeden alebo viac atribútov. Atribúty si môžeme predstaviť ako malé kusy informácií v rámci entity. Spolu popisujú entitu do takej miery ako je to nevyhnutné. Príkladom môže byť entita zákazník: | + | ;Atribút.:Každá entita obsahuje jeden alebo viac atribútov. Atribúty si môžeme predstaviť ako malé kusy informácií v rámci entity. Spolu popisujú entitu do takej miery ako je to nevyhnutné. Príkladom môže byť entita zákazník: |
:*Zákazník | :*Zákazník | ||
:**zákaznícke číslo | :**zákaznícke číslo | ||
Riadok 18: | Riadok 16: | ||
:Názov entity je Zákazník a obsahuje 4 atribúty: zákaznícke číslo, krstné meno, priezvisko a kontakt. | :Názov entity je Zákazník a obsahuje 4 atribúty: zákaznícke číslo, krstné meno, priezvisko a kontakt. | ||
− | ;Relácia:V relačnej databáze majú všetky subjekty medzi sebou určitú väzbu, ktorá je vyjadrená ako vzťah. Relácia je väzba medzi subjektami.<ref>Entity-Relationship-Modeling http://www.devarticles.com/c/a/Development-Cycles/Entity-Relationship-Modeling/</ref> | + | ;Relácia.:V relačnej databáze majú všetky subjekty medzi sebou určitú väzbu, ktorá je vyjadrená ako vzťah. Relácia je väzba medzi subjektami.<ref>Entity-Relationship-Modeling http://www.devarticles.com/c/a/Development-Cycles/Entity-Relationship-Modeling/</ref> |
− | ;Doména:Doména je typ atribútu. Rozoznávame celočíselný,reálny, textový, dátumový a binárny typ. | + | ;Doména.:Doména je typ atribútu. Rozoznávame celočíselný,reálny, textový, dátumový a binárny typ. |
==Postup pri tvorbe ERD== | ==Postup pri tvorbe ERD== | ||
− | Keďže pomocou ER diagramu opisujeme určitú časť reality, je potrebné si na úvod zadefinovať | + | Keďže pomocou ER diagramu opisujeme určitú časť reality, je potrebné si na úvod zadefinovať tú časť reality, ktorú budeme modelovať. <ref>http://www.umsl.edu/~sauterv/analysis/er/er_intro.html</ref> |
'''Postup pri tvorbe ERD''' | '''Postup pri tvorbe ERD''' | ||
− | #Definovať entity | + | #Definovať entity. |
− | #Definovať vzťahy | + | #Definovať vzťahy. |
− | #Pridať | + | #Pridať entitám atribúty. |
− | #Reláciám definovať kardinalitu | + | #Reláciám definovať kardinalitu . |
− | #Reprezentovať navrhnutú schému pomocou grafických symbolov | + | #Reprezentovať navrhnutú schému pomocou grafických symbolov. |
==Grafické vyjadrenie ERD== | ==Grafické vyjadrenie ERD== | ||
V súčastnosti sa požíva mnoho grafických vyjadrení pre modelovanie dát. Jeden z najpoužívanejších spôsobov je práve ER diagram. Ako bolo spomenuté pri ERD používame pojmy entita a relácia. Aj pre zápis ER diagramov existuje viacero spôsobov vyjadrenia. Spomenieme napríklad techniky: | V súčastnosti sa požíva mnoho grafických vyjadrení pre modelovanie dát. Jeden z najpoužívanejších spôsobov je práve ER diagram. Ako bolo spomenuté pri ERD používame pojmy entita a relácia. Aj pre zápis ER diagramov existuje viacero spôsobov vyjadrenia. Spomenieme napríklad techniky: | ||
− | * Bachman-ov zápis<ref>http://en.wikipedia.org/wiki/Bachman_diagram</ref> | + | * Bachman-ov zápis<ref>http://en.wikipedia.org/wiki/Bachman_diagram</ref>, |
− | * EXPRESS<ref>http://en.wikipedia.org/wiki/EXPRESS_(data_modeling_language)</ref> | + | * EXPRESS<ref>http://en.wikipedia.org/wiki/EXPRESS_(data_modeling_language)</ref>, |
− | * IDEF1X<ref>http://en.wikipedia.org/wiki/IDEF1X</ref> | + | * IDEF1X<ref>http://en.wikipedia.org/wiki/IDEF1X</ref>, |
− | * Martin-nov zápis<ref>http://en.wikipedia.org/wiki/James_Martin_(author)</ref> | + | * Martin-nov zápis<ref>http://en.wikipedia.org/wiki/James_Martin_(author)</ref>, |
− | * | + | * zápis pomocou UML class diagramov <ref>http://en.wikipedia.org/wiki/Unified_Modeling_Language</ref>, |
− | * | + | * zápis ''Crow's foot''<ref>Crow's Foot notation http://www2.cs.uregina.ca/~bernatja/crowsfoot.html</ref>. |
− | Spôsob zápisu ER diagramov ''Crow's foot'' dovoľuje | + | Spôsob zápisu ER diagramov ''Crow's foot'' dovoľuje vyjadriť vzájomné vzťahy jednoduchými symbolmi. V nasledujúcom texte bude vysvetlený tento spôsob zápisu entitno-relačných diagramov. |
===Entita=== | ===Entita=== | ||
− | Každá entita má meno, čo je podstatné meno | + | Každá entita má meno, čo je podstatné meno a atribúty, ktoré opisujú vlastnosti entity. Entita taktiež obsahuje identifikátor, ktorý jednoznačne identifikuje inštancie entity. Atribút, ktorý slúži ako identifikátor je označený hviezdičkou. |
[[Súbor:entita-priklad.svg|thumb|center|150px|Príklad entity Mesto]] | [[Súbor:entita-priklad.svg|thumb|center|150px|Príklad entity Mesto]] | ||
===Relácia=== | ===Relácia=== | ||
− | + | Relácia ilustruje spojenie medzi dvoma entitami. To má meno, ktoré je sloveso. Pri relácii je taktiež definovaná kardinalita, resp. mohutnosť a modalitu. | |
[[Súbor:Erd relácia.png|frame|center|Relácia medzi dvoma entitami]] | [[Súbor:Erd relácia.png|frame|center|Relácia medzi dvoma entitami]] | ||
===Mohutnosť a modalita=== | ===Mohutnosť a modalita=== | ||
− | Mohutnosť sa vzťahuje na maximálny počet, koľkokrát môže byť jedna inštancia entity prepojená s inštanciami súvisiacej | + | Mohutnosť sa vzťahuje na maximálny počet, koľkokrát môže byť jedna inštancia entity prepojená s inštanciami súvisiacej entity. Modalita hovorí o minimálnom počte, koľkokrát sa jedna inštancia entity vyskytne vo vzájomnom vzťahu so súvisiacou entitou. |
− | Mohutnosť môže byť ''1'' alebo ''mnoho''. Symbol, ktorý toto určuje je konci čiary definujúcej reláciu medzi dvoma entitami. Modalita môže byť 1 alebo 0. Symbol modality je umiestnený vedľa symbolu pre mohutnosť. | + | Mohutnosť môže byť ''1'' alebo ''mnoho''. Symbol, ktorý toto určuje je na konci čiary definujúcej reláciu medzi dvoma entitami. Modalita môže byť 1 alebo 0. Symbol modality je umiestnený vedľa symbolu pre mohutnosť. |
[[Súbor:Erd relácia 0 alebo viac.png|center|frame|relácia 0 alebo viac]] | [[Súbor:Erd relácia 0 alebo viac.png|center|frame|relácia 0 alebo viac]] | ||
Riadok 71: | Riadok 69: | ||
[[Súbor:Erd relácia 11.png|frame|center|Relácia 1:1 s povinným členstvom]] | [[Súbor:Erd relácia 11.png|frame|center|Relácia 1:1 s povinným členstvom]] | ||
− | Študent zaberie (resp zoberie) miesto. Ide o vzťah 1:1. | + | Študent zaberie (resp zoberie) jedno miesto. Ide o vzťah '''1:1'''. Jeden študent môže vyplniť maximálne 1 miesto. Jedno miesto môže byť obsadené maximálne 1 študentom. Každá strana má vzťah mohutnosti 1. Modalita na každej strane je tiež 1. Študent musí vyplniť aspoň 1 miesto a 1 miesto musí byť vyplnené aspoň jedným študentom. Hoci sa môže zdať možné mať prázdne miesto (v tomto prípade by bola modalita 0), pravidlá, ktoré sme definovali pre náš model to nedovoľujú - nechceme aby sme ukladali informáciu o voľných miestach. |
[[Súbor:Erd relácia M1.png|frame|center|Relácia N:1 s povinným členstvom]] | [[Súbor:Erd relácia M1.png|frame|center|Relácia N:1 s povinným členstvom]] | ||
− | Učiteľ učí kurz. Toto je vzťah 1: M. Jeden učiteľ môže vyučovať veľa kurzov, ale samozrejme jeden kurz môže učiť viac učiteľov. Modalita je 1 na oboch koncoch vzťahu. Podľa nami definovaných pravidiel sme určili pravidlo - učiteľ musí učiť aspoň 1 kurz | + | Učiteľ učí kurz. Toto je vzťah '''1:M'''. Jeden učiteľ môže vyučovať veľa kurzov, ale samozrejme jeden kurz môže učiť viac učiteľov. Modalita je 1 na oboch koncoch vzťahu. Podľa nami definovaných pravidiel sme určili pravidlo - učiteľ musí učiť aspoň 1 kurz a samozrejme kurz musí byť učený aspoň 1 učiteľom. |
[[Súbor:Erd relácia MN.png|frame|center|Relácia N:M s povinným členstvom]] | [[Súbor:Erd relácia MN.png|frame|center|Relácia N:M s povinným členstvom]] | ||
− | Študent chodí na kurz. Jedná sa o vzťah M:N. Jeden študent môže navštevovať viacero kurzov a na jeden kurz môže byť prijatých viacero študentov. Diagram ďalej hovorí, že študent musí mať zapísaný minimálne jeden kurz a na kurz musí chodiť minimálne jeden študent aby bol otvorený. Modalita je na oboch stranách 1. | + | Študent chodí na kurz. Jedná sa o vzťah '''M:N'''. Jeden študent môže navštevovať viacero kurzov a na jeden kurz môže byť prijatých viacero študentov. Diagram ďalej hovorí, že študent musí mať zapísaný minimálne jeden kurz a na kurz musí chodiť minimálne jeden študent aby bol otvorený. Modalita je na oboch stranách 1. |
[[Súbor:Erd relácia 1M.png|frame|center|Relácia N:1 s nepovinným členstvom]] | [[Súbor:Erd relácia 1M.png|frame|center|Relácia N:1 s nepovinným členstvom]] | ||
− | Profesor učí časti kurzu. To je vzťah 1: M. Jeden profesor môže učiť veľa častí kurzov | + | Profesor učí časti kurzu. To je vzťah '''1:M'''. Jeden profesor môže učiť veľa častí kurzov a jedna časť kurzu môže byť vyučovaná jedným učiteľom. Modalita tohto vzťahu: profesor nemusí učiť žiadnu časť kurzu, takže modalita je nula. Na druhej strane vzťahu, danú časť kurzu musí učiť jeden učiteľ. |
− | |||
==Zdroje a odkazy== | ==Zdroje a odkazy== | ||
<references/> | <references/> |
Verzia zo dňa a času 13:49, 10. január 2011
Definícia: Entitno-relačný diagram (ER, ERD, ER diagram) je špeciálny graf, ktorý ilustruje vzťahy medzi subjektmi v databáze. V ER diagramoch sa používajú symboly predstavujúce tri základné typy informácií. Boxy (obdĺžniky) reprezentujú entity. Diamant reprezentuje vzťahy a ovál sa používa na reprezentovanie atribútov.
Obsah
Základné pojmy
- Entita.
- Entita je špecifickým predmetom záujmu z oblasti reálneho sveta. Ako príklad uvedieme účtovný systém, kde nevyhnutné dve veci: účty a transakcie. Ako ďalší príklad môže byť napr. systém zákazníckej podpory, kde potrebujeme informácie o zákazníkoch. Každá takáto jednotka základných informácií sa nazýva 'entita', ktorá má určitý názov a obsahuje atribúty.
- Atribút.
- Každá entita obsahuje jeden alebo viac atribútov. Atribúty si môžeme predstaviť ako malé kusy informácií v rámci entity. Spolu popisujú entitu do takej miery ako je to nevyhnutné. Príkladom môže byť entita zákazník:
- Zákazník
- zákaznícke číslo
- krstné meno
- priezvisko
- kontakt
- Zákazník
- Názov entity je Zákazník a obsahuje 4 atribúty: zákaznícke číslo, krstné meno, priezvisko a kontakt.
- Relácia.
- V relačnej databáze majú všetky subjekty medzi sebou určitú väzbu, ktorá je vyjadrená ako vzťah. Relácia je väzba medzi subjektami.[1]
- Doména.
- Doména je typ atribútu. Rozoznávame celočíselný,reálny, textový, dátumový a binárny typ.
Postup pri tvorbe ERD
Keďže pomocou ER diagramu opisujeme určitú časť reality, je potrebné si na úvod zadefinovať tú časť reality, ktorú budeme modelovať. [2]
Postup pri tvorbe ERD
- Definovať entity.
- Definovať vzťahy.
- Pridať entitám atribúty.
- Reláciám definovať kardinalitu .
- Reprezentovať navrhnutú schému pomocou grafických symbolov.
Grafické vyjadrenie ERD
V súčastnosti sa požíva mnoho grafických vyjadrení pre modelovanie dát. Jeden z najpoužívanejších spôsobov je práve ER diagram. Ako bolo spomenuté pri ERD používame pojmy entita a relácia. Aj pre zápis ER diagramov existuje viacero spôsobov vyjadrenia. Spomenieme napríklad techniky:
- Bachman-ov zápis[3],
- EXPRESS[4],
- IDEF1X[5],
- Martin-nov zápis[6],
- zápis pomocou UML class diagramov [7],
- zápis Crow's foot[8].
Spôsob zápisu ER diagramov Crow's foot dovoľuje vyjadriť vzájomné vzťahy jednoduchými symbolmi. V nasledujúcom texte bude vysvetlený tento spôsob zápisu entitno-relačných diagramov.
Entita
Každá entita má meno, čo je podstatné meno a atribúty, ktoré opisujú vlastnosti entity. Entita taktiež obsahuje identifikátor, ktorý jednoznačne identifikuje inštancie entity. Atribút, ktorý slúži ako identifikátor je označený hviezdičkou.
Relácia
Relácia ilustruje spojenie medzi dvoma entitami. To má meno, ktoré je sloveso. Pri relácii je taktiež definovaná kardinalita, resp. mohutnosť a modalitu.
Mohutnosť a modalita
Mohutnosť sa vzťahuje na maximálny počet, koľkokrát môže byť jedna inštancia entity prepojená s inštanciami súvisiacej entity. Modalita hovorí o minimálnom počte, koľkokrát sa jedna inštancia entity vyskytne vo vzájomnom vzťahu so súvisiacou entitou.
Mohutnosť môže byť 1 alebo mnoho. Symbol, ktorý toto určuje je na konci čiary definujúcej reláciu medzi dvoma entitami. Modalita môže byť 1 alebo 0. Symbol modality je umiestnený vedľa symbolu pre mohutnosť.
Pre modalitu 1 je na konci prepojovacej čiary krátka kolmá úsečka. Pre mohutnosť mnoho je nakreslená na konci prepojovacej čiary 'trojnožka'. Pre modalitu 1 nie je žiaden symbol. Pre modalitu 0 sa nakreslí prázdny krúžok.
Mohutnosť a modalita sú označené na oboch koncoch linky definujúcej vzájomnú reláciu vzťah. Poznáme vzťahy 1:1, 1:N, M:N. Príklady týchto vzťahov sú ukázané na nasledujúcich obrázkoch:
Študent zaberie (resp zoberie) jedno miesto. Ide o vzťah 1:1. Jeden študent môže vyplniť maximálne 1 miesto. Jedno miesto môže byť obsadené maximálne 1 študentom. Každá strana má vzťah mohutnosti 1. Modalita na každej strane je tiež 1. Študent musí vyplniť aspoň 1 miesto a 1 miesto musí byť vyplnené aspoň jedným študentom. Hoci sa môže zdať možné mať prázdne miesto (v tomto prípade by bola modalita 0), pravidlá, ktoré sme definovali pre náš model to nedovoľujú - nechceme aby sme ukladali informáciu o voľných miestach.
Učiteľ učí kurz. Toto je vzťah 1:M. Jeden učiteľ môže vyučovať veľa kurzov, ale samozrejme jeden kurz môže učiť viac učiteľov. Modalita je 1 na oboch koncoch vzťahu. Podľa nami definovaných pravidiel sme určili pravidlo - učiteľ musí učiť aspoň 1 kurz a samozrejme kurz musí byť učený aspoň 1 učiteľom.
Študent chodí na kurz. Jedná sa o vzťah M:N. Jeden študent môže navštevovať viacero kurzov a na jeden kurz môže byť prijatých viacero študentov. Diagram ďalej hovorí, že študent musí mať zapísaný minimálne jeden kurz a na kurz musí chodiť minimálne jeden študent aby bol otvorený. Modalita je na oboch stranách 1.
Profesor učí časti kurzu. To je vzťah 1:M. Jeden profesor môže učiť veľa častí kurzov a jedna časť kurzu môže byť vyučovaná jedným učiteľom. Modalita tohto vzťahu: profesor nemusí učiť žiadnu časť kurzu, takže modalita je nula. Na druhej strane vzťahu, danú časť kurzu musí učiť jeden učiteľ.
Zdroje a odkazy
- ↑ Entity-Relationship-Modeling http://www.devarticles.com/c/a/Development-Cycles/Entity-Relationship-Modeling/
- ↑ http://www.umsl.edu/~sauterv/analysis/er/er_intro.html
- ↑ http://en.wikipedia.org/wiki/Bachman_diagram
- ↑ http://en.wikipedia.org/wiki/EXPRESS_(data_modeling_language)
- ↑ http://en.wikipedia.org/wiki/IDEF1X
- ↑ http://en.wikipedia.org/wiki/James_Martin_(author)
- ↑ http://en.wikipedia.org/wiki/Unified_Modeling_Language
- ↑ Crow's Foot notation http://www2.cs.uregina.ca/~bernatja/crowsfoot.html