Datové modelování
Editovat
Note
|
Návrh datových struktur, grafické vyjádření, převod do relačního modelu. ER diagram (entity, atributy, vztahy), UML diagram tříd a jejich srovnání. PB007 |
Warning
|
Obrázky v této otázce kreslené rukou byly sprostě ukradeny Dominice Krejčí z https://github.com/Krejdom/school_notes. Snad jen dočasně. |
- Datová struktura
-
Datové struktury reprezentují způsob uložení dat v paměti. Patří mezi ně např. pole, halda, spojovaný seznam, atd. Toto není jejich otázka.
Entity-relationship diagram (ERD)
Grafické vyjádření vztahů mezi entitami a jejich atributů.
- Entita
-
Pojmenovaná, identifikovatelná skupina atributů. (Představ si Cčkový
struct
.) - Vztah
-
Souvislost mezi dvěma nebo více entitami.
- Atribut
-
Vlastnost entity. Nemá další podčásti. (Představ si proměnnou primitivního typu.)
- Kardinalita vztahu
-
-
— one-to-one
-
— one-to-many
-
— many-to-many
-
- Asociační entita
-
Entita obsahující data příslušící některému ze vztahů.
Chenova notace
-
entity → obdélníky
-
atributy → kolečka
-
vztahy → hrany
-
kardinalita → vztah na příslušných koncích hran
Crow’s foot notace
-
entity → tabulky
-
atributy → řádky v tabulkách
-
vztahy → hrany
-
kardinalita → vraní nohy
V databázích
Tvorba ERD může pomoci při návrhu databází. Celý proces jde přibližně takto:
-
Určení účelu databáze a vytvoření ERD
-
Převod ERD na databázové schéma.
-
entitní typy → tabulky
-
atributy → slupce
-
entity → řádky
-
asociační entity → taky tabulky
-
určení primárních klíčů
-
-
Převod schématu do normální normy (pokud vám to přijde nutné).
-
(Testování)
UML Class Diagram (CD)
Class diagram je skoro to samé jako ERD, ale má to jinou nomenklaturu a notaci. Navíc, jak vyplývá z názvu, je diagram tříd zaměřený na OOP.
Class diagram modeluje třídy — jejich obsah a vztahy mezi nimi.
- Třída
-
Šablona pro množinu objektů sdílející atributy a chování.
- Instance
-
Objekt vytvořený na základě třídy.
- Dědičnost
-
Hierarchický vztah. Potomek dědí z rodiče.
- Asociace
-
Obousměrný vztah.
- Agregace
-
Vztah mezi celkem a jeho částí nebo částmi. Závislost mezi třídami, která není nezbytná.
Třeba takový adresář agreguje adresy — může být prázdný a adres v něm může být velké množství.
- Kompozice
-
Silnější agregace. Závislost mezi třídami, která je nezbytná.
Třeba u dopisové obálky je adresa nezbytná, takže je tu kompozice.
- Navigovatelnost
-
Třída může obsahovat cizí klíč nebo se jinak odkazovat na jinou třídu.
Výroba
-
Slovní analýza
-
Analytický (stručný) class diagram
-
Návrhový (implementační) class diagram
Srovnání ERD a CD
Aspekt | ERD | Class diagram |
---|---|---|
Modeluje |
jen strukturu |
strukturu a chování (atributy a operace) |
Vztahy |
jen relace, případně generalizace |
asociace, agregace, kompozice, závislost, generalizace |
Využití |
návrh databází |
objektově orientované programování |