Konceptuální datové modelování Databázové systémy Konceptuální datové modelování
Konceptuální datové modelování datová analýza (ne funkční analýza) zpravidla následuje po analýze informačního systému (ta řeší funkcionalitu systému) modelování schématu databáze modelování „datové reality“ (jaká budeme mít v IS data) pohled uživatele (analytika)
Konceptuální datové modelování Konceptuální datový model popisuje data v databázi na abstraktní úrovni nezávisle na jejich fyzickém uložení. Proces tvorby konceptuálního modelu se nazývá konceptuální modelování. Jeho výsledkem je konceptuální model znázorněný jako konceptuální schéma nebo diagram, který má co nejvýstižněji zachycovat pohled člověka na danou část reálného světa. Mezi nejznámější konceptuální datové modely patří ER model. ER modelování lze metodologicky rozdělit do dvou kroků: v prvním kroku se definují nezávislé entity, vztahy a závislé entity, to se opakuje do té doby, než se dospěje k souhlasu mezi zadavateli a analytiky; v druhém kroku se formulují atributy a klíče entit – klíčů může být v tomto stádiu i více.
ER modelování ER model - entitně-relační model založen na dvou typech objektů – entity a vztahy mezi nimi ER model databáze definuje její konceptuální schéma standard pro datové modelování označuje se také jako ERA – třetím základním prvkem modelu jsou atributy (Attributes) používá se pro strukturovaná data objektové, relační a objektově-relační databáze nevhodné pro multimediální data, XML, text Relační schéma lze vytvořit také přímo z požadavků na aplikaci bez použití ER modelování. Relační schémata se takto vytvářela ještě před zavedením ER modelu. Ze vstupních požadavků se určí relevantní atributy, které se přiřadí do jednotlivých relačních tabulek - tento proces se nazývá normalizace.
ER diagramy – používané notace ER diagram byl zavedl a poprvé použil Peter Chen v roce 1976. Diagram obsahuje typy entit a typy vztahů: Entitní typ představuje nezávisle existující objekt reálného světa. Vztahový typ je vazba mezi dvěma nebo více typy entit.
ER diagramy – používané notace
Entitní typ entitní typ entitní typ s atributem (atribut je dílčí datový typ náležící entitě) entitní typ s identifikátorem (identifikátor je atribut jednoznačně identifikující instanci entitního typu) Některé atributy jsou identifikační, tj. jsou součástí identifikačního klíče entity, ostatní jsou pouze popisné.
Entitní typ entitní typ s víceatributovým identifikátorem (instanci entity identifikuje kombinace hodnot atributů) entitní typ s více jednoatributovými identifikátory (každý je identifikátor nezávisle na ostatních) entitní typ s nepovinným atributem entitní typ se složeným (strukturovaným) atributem entitní typ s vícehodnotovým atributem
Vztahový typ vztahový typ (obecně) binární vztah
Vztahový typ Vztah mezi entitami charakterizuje kardinalita vztahu. Kardinalita vztahu může nabývat těchto hodnot: 1 : 1 - každé entitě odpovídá maximálně jedna druhá entita. 1 : N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá maximálně jedna první entita. M : N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá více než jedna první entita.
Vztahový typ Kardinalita – maximální počet vztahů daného typu (vztahové množiny), ve kterých může participovat jedna entita. vztahový typ s kardinalitami 1:1 (one-to-one) vztahový typ s kardinalitami M:N (many-to-many) Členství – vyjadřuje minimální počet vztahů daného typu (vztahové množiny) Povinné členství ve vztahu (1,*), nepovinné (0,*)
Vztahový typ vztahový typ s atributy (nesmí být identifikátor, ani jeho součást) Instance vztahového typu je jednoznačně určena identifikátory entit ve vztahu.
Silný a slabý entitní typ Entity identifikovatelné pouze svými atributy jsou silné entity. Entity pro jejichž jednoznačnou identifikaci musí být použit i atribut jiné entity jsou označovány jako slabé entity. slabý entitní typ – je (spolu)identifikován zvenčí vstupuje do vztahu vždy s kardinalitou (1,1) tzv. identifikační závislost (implikuje existenční závislost, což je integritní omezení zajišťující existenci identifikačního vlastníka) smíšený identifikátor automobilu (SPZ, Mezinárodní kód) externí identifikátor vodoměru (Ulice, Podlaží)
Průnikový entitní typ vztah s kardinalitami M:N lze jednoduše převést na dva vztahy s kardinalitami 1:N + tzv. průnikový entitní typ ( - slabý)
Vícehodnotové atributy nahrazení vícehodnotového atributu entitou a vztahem (více způsobů – zobecnění původní situace)
Rekurzivní binární vztah rekurzivní vztah – vstupují do něj entity stejného typu důležité rozlišovat role
ternární vztah – entita vstupuje do vztahu s dvojicí entit Ternární vztahy ternární vztah – entita vstupuje do vztahu s dvojicí entit Slabá entita v ternárním vztahu je identifikována oběma zbývajícími entitami zároveň. rekurzivní ternární vztah
ISA hierarchie Model může obsahovat také prvky pro vyjádření vztahu generalizace-specializace mezi entitami – ISA hierarchii Využije se v případě, kdy máme obecnou entitu a několik dalších entit, které mají všechny vlastnosti obecné entity a navíc se navzájem liší dalšími spec. vlastnostmi. nadentity / podentity -podentity dědí jak atributy, tak vztahy (případně integritní omezení) -nadentity pouze jednonásobná dědičnost
CASE systémy CASE systémy jsou nástroje pro podporu analýzy a návrhu aplikací (Computer Aided Software Engineering). Mezi CASE systémy patří: CaseStudio, Oracle Designer, ER/Studio, Power Designer, XTG Data Modeller, ERTOS CASE Studio 2 CZ je profesionální software pro visuální navrhování databázových struktur. Klíčové vlastnosti tohoto produktu zahrnují: ER diagramy (Entity Relationship Diagrams), podporu pro různé databáze, generování SQL skriptů, zpětné načtení struktury (reverse engineering), generování velice detailní HTML, export do XML formátu.
Příklad – Rezervace Vyrobeno v aplikaci ERTOS http://urtax.ms.mff.cuni.cz/skopal/bakalari.htm 2. krok 1. krok 3. krok 4. krok
Příklad – Rezervace 5. krok 6. krok
Příklad – Rezervace 8. krok 7. krok
Příklad – Rezervace 9. krok 10. krok
Metodika tvorby konceptuálního modelu 1. Zvolte jednu primární entitu ze specifikace požadavků. 2. Určete atributy, jejichž hodnoty se mají pro tuto entitu zaznamenávat. Označte případné klíče (identifikátory) a vytvořte ukázková data. 3. Popište slovně navrženou entitu, její atributy a klíče. 4. Prověřte funkční vztahy (závislosti) atributů a v případě potřeby entitu normalizujte. 5. Prověřte atributy navržené entity a zjistěte, zda je třeba zaznamenávat informace o jednom či více atributech v nové samostatné entitě. 6. Je-li vhodné vytvořit další entitu, zakreslete ji do diagramu a vraťte se na krok 2. 7. Spojte entity vztahy, pokud tyto existují. Popište slovně vztahy mezi entitami z obou stran. 8. Prověřte seznam atributů a určete, zda některé z nich potřebují být identifikovány prostřednictvím dvou (či více) entit. Pokud ano, umístěte atribut na příslušný vztah, který spojuje dané entity. 9. Prověřte, zda v diagramu nemáte „smyčky“, které mohou indikovat nadbytečné (odvozené) vztahy. Pokud je vztah skutečně redundantní, odstraňte ho. 10. Vytvořte ukázková data. 11. Předveďte navržený model uživateli - pokud je to třeba, upřesněte diagram.