Databázové modelování Analýza Návrh konceptuálního schématu 1
Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2
Proč modelovat/analyzovat? Standardizované pracovní postupy Snadnější komunikace v týmu Aktuální a kompletní dokumentace 3
Analýza Funkční analýza DFD Data Flow Diagram Datová analýza ER Model Entity Relationship Model ERD (Entity-Relationship Diagram) Peter Chen in 1976 4
Funkční analýza Identifikace systémových funkcí Identifikace událostí Definice transakcí Popis transakcí 5
DFD Data Flow Diagram Stavební prvky DFD Proces 1 Název Terminátor Název Datový tok Název Úložiště dat Název 6
DFD Top-Down Postup Používáme postup Shora dolů Úrovně: 1. Kontextový diagram inf. o tom jak bude IS komunikovat se zbytkem světa 2.- n-tá další postupné rozklady (max. doporučená hodnota n je 3, pozn. jedná se o hodnotu doporučenou) Vhodná jmenná konvence 7
Chyby DFD datastory, z nichž se jenom čte nebo se do nich jenom zapisuje samogenerující funkce, tj. funkce které mají jenom výstupy černé díry, tj. funkce do nichž data pouze vstupují 8
Jednoduchý příklad kontextového diagramu Dílna Dodavatel Sklad Management 9
Seznam událostí p.č. Název události Typ Reakce systému 1. Dílna žádá materiál Data Vyhledá mat., vystaví výdejku 2. Sklad nemá dostatek materiálu Řídící Vystaví objednávku 3. Dodavatel dodá materiál Data Přijme mat., potvrdí dodací list 4. Je první den v měsíci Řídící datum Vytvoří přehled o spotřebě 10
Upřesněný kontextový diagram Žádanka Dodavatel Objednávka Dodací list Sklad Výdejka Dílna Přehled spotřeby Management 11
Další úrovně rozkladu - sklad Objednávka Žádanka Výdejka Objednávání Materiál Výdej mat. Mat. dodavatel Databáze Zásoba mat. Příjem mat. Mat. Skladové zásoby Tvorba přehledů Přehled spotřeby 12
ER Model Cílem je vytvořit datový model postihující určitou část světa Postup zdola nahoru Vytváříme Konceptuální schéma (nezávisle na DB modelu -relační, síťový) 13
Primitiva ERD Entita (reálná nebo imaginární část světa) Typová entita (superclass) Atributy Vztahy mezi entitami Atributy vztahů Parcialita vztahu Kardinalita vztahu (1:1, 1:N, M:N) 14
Atributy Jednoduché (Datum, Jméno) Kompozitní (Adresa=(Č_Domu,Ulice,PSČ)) Vícehodnotové (Vzdělání) 15
Vztahy mezi entitami Vyjadřuje souvislost (vztah, závislost) mezi entitami Název je sloveso, obvykle je možné dvojí čtení (jazyková nikoliv konceptuální záležitost!) Například: má, náleží, je členem, obsahuje 16
Parcialita vztahu 0:0 oboustranně nepovinné členství 1:0 nepovinné členství 1:1 oboustranné povinné členství 17
UML (Unified Modeling Language) industry-standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. 18
ER Entity Relationship Model Stavební prvky ER RC Jméno Plat Od KO Název Zaměstnanci Pracuje_V Oddělení 19
Rozšíření ER modelu Omezení klíčem RC Jméno Plat Od KO Název Zaměstnanci Řídí Oddělení 20
Rozšíření ER modelu Parcialita vztahu RC Jméno Plat Od KO Nazev Řídí Zaměstnanci Oddělení Pracuje_V 21
Rozšíření ER modelu Slabé entity, identifikační závislost RC Jméno Plat Cena pnázev Věk Zaměstnanci Pojistka Pokrytí 22
Rozšíření ER modelu ISA-hierarchie RC Jméno Plat Zaměstnanci OHod HMzda ISA Smlouva Zam_mzda Zam_Smlouva 23
ER návrh databáze? Entita x Atribut? Entita x Vztah? Binární x Ternární vztahy? Agregace x Ternární vztah? Další příklady CASE Studio 24
ER -> relační databáze Entita Jméno RC Plat Zaměstnanci CREATE TABLE Zamestnanci ( RC CHAR(12), Jmeno CHAR(30), Plat Integer, PRIMARY KEY (RC) ) 25
ER -> relační databáze Relační vztah (bez omezení klíčem) CREATE TABLE Pracuje_V ( RC CHAR(12), KO CHAR(10), Od DATE, PRIMARY KEY (RC,KO) FOREIGN KEY (RC) REFERENCES zamestnanci, FOREIGN KEY (KO) REFERENCES oddeleni ) 26
ER -> relační databáze CREATE TABLE Řídí ( RC CHAR(12), KO CHAR(10), Od DATE, PRIMARY KEY (KO) FOREIGN KEY (RC) REFERENCES zamestnanci, FOREIGN KEY (KO) REFERENCES oddeleni ) CREATE TABLE Odd-Řídí ( KO CHAR(10), Od DATE, RC CHAR(12), PRIMARY KEY (KO) FOREIGN KEY (RC) REFERENCES zamestnanci) 27
ER -> relační databáze Parcialitní omezení CREATE TABLE Ridi_Odd ( KO CHAR(12), Nazev CHAR(30), Od DATE, RC CHAR(12) NOT NULL, PRIMARY KEY (KO), FOREIGN KEY (RC) REFERENCES zamestanaci, ON DELETE NO ACTION) 28
ER -> relační databáze Slabé entity CREATE TABLE Pojistenci_Poj ( pnazev CHAR(12), vek INTEGER, Cena REAL, RC CHAR(12), PRIMARY KEY (pnazev,rc), FOREIGN KEY (RC) REFERENCES zamestnanci, ON DELETE CASCADE) 29
Vztah E-R a DFD Kontextový diagram DFD 1. úroveň ERA diagram DFD n-tá úroveň Definice všech datových prvků Specifikace procesů popis všech funkcí s uvedením na datové prvky a s popisem podmínek vykonání funkcí 30
Děkuji Vám za pozornost 31