KONCEPTUÁLNÍ MODELOVÁNÍ Pojmy entita = objekt relationship = vztah atribut = vlastnost
E-R konceptuální model E-R model je množina pojmů, které nám pomáhají, na konceptuální úrovni abstrakce popsat uživatelskou aplikaci za účelem specifikovat následně strukturu databáze.
Činnosti při tvorbě E-R modelu Identifikace entit jako množiny objektů stejného typu. Nalezení identifikačních klíčů 3. Identifikace vztahů, do kterých entity identifikovaných typů mohou vstupovat. 4. Stanovení popisných atributů. 5. Formulace integritních omezení (IO).
Entita je abstraktní objekt reálného světa, který je schopen nezávislé existence a je jednoznačně odlišitelný od ostatních objektů, se kterými vstupuje do vztahů.
Vztah je vazba mezi dvěma entitami (obecně i více entitami) Vztah je vazba mezi dvěma entitami (obecně i více entitami). Tato vazba musí vykazovat jisté vlastnosti.
Atributem budeme rozumět funkci přiřazující entitám či vztahům hodnotu, určující některou podstatnou vlastnost entity nebo vztahu.
Příklady atributů Student (osobni_cislo, jmeno, prijmeni, datum_narozeni) Student je entita osobni_cislo, jmeno, prijmeni, datum_narozeni jsou vlastnosti této entity, čili tzv. atributy
Instance Konkrétní výskyt entity. Např. entita Student má instanci (Jan, Novák, …). Identifikační klíč Každá instance entity musí být jednoznačně identifikovatelná. Identifikační klíč je atribut nebo skupina atributů, které jednoznačně identifikují instance entity.
Příklad identifikačního klíče Student (osobni_cislo, jmeno, prijmeni, datum_narozeni) Mezi těmito atributy je nejvhodnějším kandidátem na IK osobni_cilo, protože se předpokládá, že každý student má jiné osobní číslo. Hodnoty ostatních atributů mohou být duplicitní.
Příklad Abstraktní vyjádření pomocí entit a vztahů STUDENT MA_ZAPSAN PREDMET MA_ZAPSAN (STUDENT, PREDMET) Konkrétní vyjádření instancemi S1 Novák --------------------------------------- P2 Matematika --------------------------------------- P7 Fyzika S2 Mareček ------------------------------------- P4 Ekonomie -------------------------------------- P8 Databáze ------------------------------------ P6 Programování Dvě entity: STUDENT a PREDMET Jeden vztah: MA_ZAPSAN Dva výskyty (instance) objektu (entity) STUDENT: (S1, Novák), (S2, Mareček) Pět výskytů objektu (entity) PREDMET: (P2, Matematika), (P4, Ekonomie), (P6,Programování), (P7, Fyzika), (P8 Databáze) Pět výskytů vztahu MA_ZAPSAN: S1-P2, S1-P7, S2-P4, S2-P7, S2-P8.
Zápis konceptuálního schématu Existují dva způsoby zápisu: lineární textový E-R diagram
Syntaxe lineárně textového zápisu Entita
Syntaxe lineárně textového zápisu Vztah
Syntaxe lineárně textového zápisu Příklad: Student (Osobní_cislo, Jmeno, Prijmeni, Datum_narozeni) Predmet (Kod, Nazev, Kredity) Ma_zapsan (Student, Předmět)
E-R diagram Entita 1 Entita 2 Vztah
E-R diagram Příklad: Student Predmet Ma_zapsan
Integritní omezení pro vztahy Kardinalita vztahů Vztah 1:1 Vztah 1:N Vztah M:N Členství ve vztahu Povinné členství ve vztahu Nepovinné členství ve vztahu
Příklad kardinality 1:1
Příklad kardinality 1:N
Příklad kardinality M:N
Příklad povinného a nepovinného členství ve vztahu
Existenční a identifikační závislost Pokud vstupuje jedna entita do vztahu povinně a druhá nepovinně, pak může tento vztah být: Existenční Identifikační
Existenční závislost Entita je existenčně závislá, pokud nemůže existovat žádná instance, která by nevstupovala do vztahu s nadřazenou entitou.
Identifikační závislost Entita je identifikačně závislá, pokud nemůže existovat žádná instance, která by nevstupovala do vztahu s nadřazenou entitou. A NAVÍC Instance identifikačně závislé entity jsou identifikovatelné pomocí atributu(ů) její nadřazené entity.
Identifikační závislost Je-li entita identifikačně závislá, pak je i existenčně závislá. Opačné tvrzení neplatí.
Cizí klíč – Foreign key (FK) FK je atribut nebo skupina atributů, který je v nadřazené entitě identifikačním klíčem. Existenční vztah: FK je součástí popisných atributů závislé entity Identifikační vztah: FK je součástí identifikačního klíče závislé entity
ISA hierarchie, podtypy entit Speciální atributy představují v abstraktním modelování takové atributy, které dané entitě přiřazují její nadtyp. Atribut je pak podtypem svého nadtypu. Jde o tzv. ISA-hierarchii.
Grafické zobrazení ISA-hierarchie
ISA HIERARCHIE Abstraktní entita OSOBA se zavádí z důvodů, že existuje řada společných atributů entit UČITEL a STUDENT a proto má smysl zavést jedinou společnou entitu. Pak je třeba připustit existenci hodnot NULL. Entity STUDENT a UČITEL jsou podtypy entity OSOBA. Platí STUDENT JE OSOBA (anglicky IS A). V oblasti umělé inteligence se tomuto vztahu říká ISA vztah.
Korektní konceptuální schéma 1. Žádná entita nemá v konceptuálním schématu více než jeden zdroj ISA hierarchie. 2. ISA vztahy netvoří v E-R diagramu orientovaný cyklus. 3. Identifikační typy vztahů netvoří v E-R diagramu orientovaný cyklus (jinak by entita byla identifikována pomocí sebe sama). 4. Entita v ISA hierarchii, která není zdrojem, není identifikačně závislá na žádné entitě (je totiž již identifikována svým zdrojem ISA hierarchie). 5. Jména entit a vztahů jsou jednoznačná globální jména, jména atributů jsou jednoznačná lokální jména. 6. Je-li entita zdroj ISA hierarchie, pak má identifikační klíč. Ostatní entity v ISA hierarchii nemají identifikační klíč.
Příklad konceptuálního modelu
U předchozího modelu stanovte a odůvodněte pro každý vztah: Úkol U předchozího modelu stanovte a odůvodněte pro každý vztah: Typ vztahu (nezávislý, existenčně závislý, identifikačně závislý) Členství entit ve vztahu (povinné, nepovinné) Kardinalitu vztahu (1:1, 1:N, M:N)