![Page 1: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/1.jpg)
Příklady a návody
Databázová vrstva
![Page 2: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/2.jpg)
Konceptuální datový model
• Popis dat.struktur pomocí entit, atributů, vazeb a integritních omezení
• ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy a identity (DB návrh) • Class diagram zdůrazňuje hiararchie tříd a
operace (OO návrh) • Další integritní omezení, která nejsou zachycena v
diagramech • Datový slovník
![Page 3: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/3.jpg)
ERD diagram
• Toolbox po zvolení Entity Relationship Diagram
![Page 4: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/4.jpg)
Konceptuální datový model
Typy dat (které entity/třídy, atributy…) • Vztahy mezi nimi • Další logická omezení (integrity constraints)
– Model tříd popisuje i operace, ale ty se často k modelu připojí až v návrhu
![Page 5: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/5.jpg)
Entitní integrita – primary key
Primární klíč je základním prostředkem adresace n-tic relace a platí zde tato pravidla:
• U žádného atributu primárního klíče nesmí chybět hodnota (doména)
• Každá n-tice relace musí být v každém okamžiku identifikovatelná hodnotou primárního klíče (příkladem může být rodné číslo u předcházejícího ERD)
![Page 6: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/6.jpg)
Referenční integrita – foreign key
Cizí klíč (foreign key) je atribut, který splňuje tyto nezávislé vlastnosti:
• Každá hodnota je buď plně zadána nebo plně nezadána
• Existuje jiná relace, s takovým primárním klíčem, že každá hodnota cizího klíče = hodnotě primárního klíče
![Page 7: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/7.jpg)
Příklad datového modelu v EA • Výběr vhodného typu modelu -> Toolbox ->
použití
![Page 8: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/8.jpg)
Návrh reprezentace dat
• Návrh reprezentace dat pomocí relačního databázového systému
• Vstup: konceptuální datový model (diagram tříd + popis integritních omezení)
• Výstup: logický relační datový model
• Výstupem je obecné SQL, při skutečné implementaci návrhu musí být ještě výstup přizpůsoben konkrétnímu stroji
![Page 9: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/9.jpg)
Návrh reprezentace dat • Pro každou jednoduchou entitu (typ) navrhneme tabulku,
jméno tabulky bude množné číslo jména typu. – záleží • Návrh jmen sloupců pro reprezentaci atributů a
odpovídajících domén. • Doplníme informace o volitelnosti formátu sloupců. • Z nejčastěji používané unikátní identifikace vytvoříme
primární klíč, nebo zavedeme nový identifikační sloupec (ID).
• Pro N-konce vztahů přidáme k tabulce jednoznačné identifikace z tabulky na 1-konci (volitelné vztahy indikují nepovinnost. Současně přidáme odpovídající cizí klíče.
• Pro každý vztah typu nadtyp/podtyp navrhneme reprezentaci (společná tabulka s rozlišovací položkou, samostatné tabulky).
![Page 10: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/10.jpg)
Návrh reprezentace dat
• Pro každý vztah typu celek/část navrhneme reprezentaci (společná tabulka s rozlišovací položkou, samostatné tabulky).
• Navrhneme indexy pro často využívané unikátní kombinace, které nejsou realizovány jako primární klíče.
• Pro generované primární klíče přidáme definice sekvencí pro jejich generování (může býtimplementačně závislé).
• Navrhneme řešení integritních omezení (použijeme deklarativní relační integritní omezení, nebo navrhneme „triggery“).
![Page 11: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/11.jpg)
Kontrola datového modelu
• Z datového modelu se snažíme odvodit funkce: Vytvoříme matici CRUD (Create, Read, Update, Delete) a zkoumáme, zda pro každý typ dat existuje odpovídající funkce
• Z datového modelu se snažíme odvodit dynamiku: Pro každý typ dat zkoumáme, zda objekty nevykazují změny stavu
![Page 12: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/12.jpg)
Kontrola datového modelu
Je datový model úplný? • existuje entita pro každý typ objektu? • nejsou zde nadbytečné entity (entity tvořené
pouze identifikací, entity s jedinou instancí, apod.)?
• jsou zde zaneseny všechny vztahy (včetně generalizací a agregací)?
• nejsou zde odvoditelné vztahy? • je model v normální formě? • jsou zanesena všechna integritní omezení?
![Page 13: Příklady a návody - ecom.ef.jcu.czecom.ef.jcu.cz/web2/download/podklady/databazova-vrstva.pdf · • ER-model nebo OO-diagramy (class diagram) • ER model zdůrazňuje vztahy](https://reader030.vdocuments.mx/reader030/viewer/2022020412/5ad96e6b7f8b9aee348b6919/html5/thumbnails/13.jpg)
Transformace Class-Table
Transformace Class-Table (pro vybrané elementy)
> Kontext menu vybraných elementů | Transform | [x] DDL
Transformace Class-Table (obsah package) >Kontext menu package | Transform Current
Package | [x] DDL (přitom je třeba zaškrtnout [x] Include Child Package)