Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava Úvod do databázových systémů 2012/2013 IS MHD Jiří Znoj zno0011 12.12.2012
1. Funkční požadavky PROČ K ČEMU KDO VSTUPY VÝSTUPY FUNKCE OKOLÍ 2. Use Case diagram 3. Tabulka událostí a reakcí 4. Kontextový diagram II. Datová Analýza 1. Lineární zápis seznamu typů entit a jejich atributů Entity: Vztahy: Nahrazení vztahů M:N Entity: Vztahy: 2. Grafický tvar konceptuálního modelu (ERD, UML) 3. Grafický tvar relačního datového modelu 4. Úplné tabulky atributů (tj. datový slovník) a integritní omezení
Funkční požadavky PROČ Je potřeba vytvořit komplexní informační systém městské hromadné dopravy. K ČEMU K vyhledávání spojů MHD podle různých kritérií, k evidenci řidičů a k práci s jejich směnami. KDO každý, kdo si chce vyhledat nějaký spoj, řidiči, správce systému a zaměstnavatel. VSTUPY U řidičů: rodné číslo, jméno, příjmení, bydliště, telefonní číslo, pohlaví, heslo a plat. U směn: typ tedy název směny, v kolik začíná, v kolik končí a kolik je to dohromady hodin. U vozidel: typ, dále pak jestli je vozidlo s bariérovým přístupem, značku, max. počet cestujících. Evidujeme kdo jezdí s jakým vozidlem a od kolika, do kolika hodin jezdí vozidlo určitou linku. U zastávek: id, název, bezbariérový přístup a v kolik hodin zastavuje na zastávce která linka. U zón: číslo zóny a pak jestli se jedná o městskou, nebo mimoměstskou oblast. U linek: číslo linky a typ linky (vozidla jakého typu po ní jezdí)
VÝSTUPY Funkční požadavky pro správce nebo zaměstnavatele: všichni řidiči, všechna vozidla, řidič určitého vozidla (každý řidič řídí právě jedno vozidlo), všechny zastávky, linky, zóny. pro nepřihlášeného uživatele: spojení dle zadaných kritérií, všechny zastávky mezi zadanou vstupní a výstupní zastávkou, všechny odjezdy ze zadané zastávky, nebo všechny spoje z dané zastávky. pro řidiče: rozpis směn, všechny detaily o vozidle, které spravuje, všechny směny. FUNKCE Pokud přidáme vozidlo, musíme mu také přidělit řidiče, který se o něj bude starat. Po přidání zastávky se musí zadat, ve které zóně leží a do které linky bude zastávka patřit. Každý řidič patří do jednoho rozpisu směn, kde se směny točí. Pro každé vyhledávání vyhledá k zastávce odjezdu trasu (všechny navštívené zastávky) k zastávce příjezdu. OKOLÍ Kdokoli, kdo se k aplikaci dostane, může v aplikaci vyhledávat spoje. Pracovníci městské hromadné dopravy pak používají aplikaci pro vnitřní účely.
USE CASE diagram
Tabulka událostí a reakcí Událost Reakce Přidat zastávku Odebrat zastávku Zapiš do seznamu zastávek, přiděl idzastavky Odebrat ze seznamu zastávek Přidat dopravní prostředek + přidat řidiče Zapiš dopravní prostředek do seznamu dopravních prostředků, přiděl idvozidla, zapiš řidiče do seznamu řidičů Odebrat dopravní prostředek + odebrat řidiče Zapiš dopravní prostředek do seznamu dopravních prostředků, přiděl idvozidla, vyber řidiče, který se bude o vozidlo starat. Přidat linku Zapiš do seznamu linek, přiděl idlinky Odeber linku Odeber ze seznamu linek, odeber zastávky, které leží jen na této lince Vyhledej spoj Vyhledat trasu od zastávky odjezdu po zastávku příjezdu
Kontextový diagram
Lineární zápis seznamu typů entit a jejich atributů Entity: Ridic (rc, jmeno, prijmenu, bydliste, tel, pohlavi, heslo, plat) Vozidlo (idvozidla, tyo, znacka, maxpocet, barierove, rc, rc_ridi) Linka (cislolinky, typlinky) Zastavka (idzastavky, nazev, barierova, cislozony) Zona (cislozony, mesto) Smena (typsmeny, začátek, konec, hodin) Vztahy: Stara_se_o (Ridic, Vozdilo) 1:1 ridi (Ridic, Vozdilo) N:M jezdi (Vozdilo, Linka) N:M se sklada (Linka, Zastavka) N:M obsahuje (Zona, Zastavka) 1:N chodi (Ridic, RozpisSmen) N:M Nahrazení vztahů M:N Entity: Vztahy: Ridic (rc, jmeno, prijmenu, bydliste, tel, pohlavi, heslo, plat) Stara_se_o (Ridic, Vozidlo) 1:1 Vozidlo (idvozidla, tyo, znacka, maxpocet, barierove, rc) ridi_ridic (Ridic, RidicVozdilo) 1:N Linka (cislolinky, typlinky) ridi_vozidlo (Vozidlo, RidicVozdilo) 1:N Zastavka (idzastavky, nazev, barierova, cislozony) jezdi (Vozdilo, VozidloLinka) 1:N Zona (cislozony, mesto) ma (Linka, VozidloLinka) 1:N Smena (typsmeny, začátek, konec, hodin) se sklada (Linka, ZastavkaLinkaCas) 1:N VozidloLinka (od, do, idvozidla, cislolinky) zastavuje (Zastavka, zastavkalinkacas) 1:N ZastavkaLinkaCas (cas, cislolinky, idzastavky) obsahuje (Zona, Zastavka) 1:N RozpisSmen (datum, jmenosmeny, rc, typsmeny) chodi (Ridic, RozpisSmen) 1:N RidicVozidlo(rc, idvozidla) je v (Smena, RozpisSmen) 1:N
Grafický tvar konceptuálního modelu
Grafický tvar relačního datového modelu
Úplné tabulky atributů (tj. datový slovník) a integritní omezení Ridic rc Int PK UNIQUE NN rodné číslo bez / jmeno Varchar(30) NN prijmeni Varchar(30) NN bydliste Text NN tel Bigint NN s předvolbou bez + CHECK(tel > 99 999 999 999) pohlavi Varchar(4) N muz, zena heslo Varchar(20) NN plat Int NN Vozidlo idvozidla Int PK UNIQUE NN typvozidla Varchar(30) NN znacka Text NN maxpocet Int NN barierove Bit N rc Int FK NN tramvaj, autobus, metro, trolejbus, vlak maximální počet přepravovaných osob rodné číslo bez / REFERENCES Ridic NN = not null, N = null, PK = primární klíč, FK = cizí klíč, PFK = cizí klíč je součást primárního klíče
Úplné tabulky atributů (tj. datový slovník) a integritní omezení Linka cislolinky Int PK UNIQUE NN typlinky Text NN RidicVozidlo tramvaj, autobus, metro, trolejbus, vlak rc Int PFK NN REFERENCES Ridic idvozidla Int PFK NN REFERENCES Vozidlo Zastavka idzastavky Int PK UNIQUE NN nazev Varchar(30) UNIQUE NN barierova Bit N cislozony Int FK NN REFERENCES Zona ZastavkaLinkaCas cas Time NN čas výjezdu vozidla dané linky ze zastávky cislolinky Int PFK NN REFERENCES Linka idzastavky Int PFK NN REFERENCES Zastavka
Úplné tabulky atributů (tj. datový slovník) a integritní omezení Zastavka idzastavky Int PK UNIQUE NN nazev Varchar(30) UNIQUE NN barierova Bit N cislozony Int FK NN REFERENCES Zona Zona cislozony Int PK UNIQUE NN mesto Bit NN RozpisSmen městská (1) nebo mimoměstská (0) zóna datum Date NN jmenosmeny Char(256) NN směna A, B, C, D rc Int PFK NN REFERENCES Ridic typsmeny Text PFK NN REFERENCES Smena Smena typsmeny Text PK UNIQUE NN ranní, odpolední, celodenní, noční zacatek Time NN směna A, B, C, D konec Time NN hodin Int N
Prostor pro dotazy: Děkuji za pozornost Jiří Znoj zno0011 12.12.2012