Analýza dat a modelování Přednáška 1
Informační systém definic existuje několik, např.: IS je softwarové vybavení firmy, které je schopné na základě zpracovávaných informací řídit procesy podniku nebo poskytovat tyto informace řídícím pracovníkům tak, aby byli schopni vykonávat řídící funkce, mezi které patří zejména plánování, koordinace a kontrola veškerých procesů firmy. (zdroj: Fakulta informatiky MU Brno)
Informační systém IS je celek složený z počítačového hardwaru a souvisejícího softwaru, k němuž patří také lidé, kteří tento hardware a software využívají, a procesy (činnosti), které přitom vykonávají za účelem sběru, zpracování a šíření informací potřebných k plánování, rozhodování a řízení. (zdroj: Blackstone JR., John H., editor. APICS Dictionary, 14th Edition. Chicago : APICS, 2013)
Informační systém data též údaje, slovo data pochází z latiny (množné číslo od datum), strukturovaná data zachycují určitá fakta zachycují objekty zachycují atributy uložení má řád, lze z nich snadno vybírat informace znalosti
Informační systém informace informace je podmnožina poznatků, která je někým použita v konkrétní situaci pro řešení problémů (Kuhlen) data se stávají informací pomocí interpretace př.: data: 1604 informace: 1604 výška Sněžky v m n.m.
Informační systém znalosti znalostí se rozumí vzájemné provázání souvisejících poznatků (informací) souvisí s abstrakcí a generalizací fenomén současné doby ontologie, sémantický web abstrakce roste od dat ke znalostem
Softwarová krize 60. léta: růst počtu počítačů přibývalo také sw. projektů, ale ubývalo úspěšně dokončených projektů někdy to došlo až na hranici únosnosti software byl, nebo mohl být, příčinou havárií (např. Mariner I., Ariane 5)
Softwarová krize E. W. Dijkstra: Hlavní příčinou softwarové krize byl nárůst výkonu hardware. Jinak řečeno, programování nemělo problémy, dokud neexistovaly počítače. Dokud jsme měli slabé počítače, mělo programování jen snesitelně těžké problémy. Nyní máme gigantické počítače a k nim gigantické problémy se softwarem.
Softwarové inženýrství Definice IEEE 610.12: Softwarové inženýrství je aplikace systematického, disciplinovaného, kvantifikovatelného přístupu k vývoji, provozu a údržbě softwaru, tj. aplikace inženýrství na software. Také je to studium přístupů dle výše uvedeného.
Etapy vývoje SW (IS) úvodní studie analýza a návrh globální analýza a návrh detailní implementace testování zavedení do provozu provoz a údržba, podpora likvidace
Úvodní studie základem je zadávací dokumentace úvodní studie by měla obsahovat: deklarace záměru odborný článek součástí je datový slovník strukturovaná verze se nazývá katalog požadavků plán projektu rozpočet (studie proveditelnosti)
Analýza a návrh v rámci procesu analýzy a návrhu je nutné formálně modelovat skutečnost reálného světa, kterou chceme v IS (SW) zachytit, zpracovávat, řídit, formální popis je jednoznačný, srozumitelný odborníkům (někdy i laikům) v rámci SW inženýrství modelujeme: data (a vztahy mezi nimi) procesy
model Modelování souhrn pojmů (vztahů) popisujících reálný svět příklad: matematický model např. soustavy lineárních rovnic, diferenciálních rovnic, atd. První vlak vyjíždí ze stanice A průměrnou rychlostí 60 km/h, druhý vlak proti němu ze stanice B vzdálené 100 km průměrnou rychlostí 80 km/h o 30 minut později. Vypočtěte vzdálenost od stanice A, kde se vlaky setkají.
s = 100 km, v 1 = 60 km/h, v 2 = 80 km/h ujetá dráha 1. vlaku s 1, ujetá dráha 2. vlaku s 2 čas jízdy 1. vlaku t 1,čas jízdy 2. vlaku t 2 matematický model - soustava lineárních rovnic s = s 1 + s 2, s 1 = v 1 t 1, s 2 = v 2 t 2 t 2 = t 1-0,5 s = v 1 t 1 + v 2 (t 1-0,5)
Analýza a modelování v SW strukturovaný přístup dynamická část (procesy, aktivity, funkce) kontextový diagram, Data Flow Diagram statická část (data) E-R model
Analýza a modelování v SW objektově orientovaný přístup dynamická část případ užití (use case) sekvenční diagram (sequence diagram) stavový automat (state diagram) statická část diagram tříd (class diagram) diagram objektů (object diagram)
Analýza a modelování princip tří schémat (ANSI/SPARC 1975) externí schéma pohled uživatelů analytický, konceptuální model (E-R) formální model světa interní schéma datové struktury, databázový model
Úrovním odpovídá i postup návrhu externí schéma pohled uživatelů analytický, konceptuální model model světa shora dolů logický model návrhu bez rozhodnutí o implementačních technologiích implementační schéma volby v rámci implementačních technologií
je analytický model, na jehož základě bude databáze (resp. IS, SW) navržena vlastnosti: Konceptuální model srozumitelný, přehledný, věcně správný obsahuje vše podstatné měl by platit princip 100% - postihuje všechny požadavky uživatele, být flexibilní, aby vyhověl i požadavkům kladeným v budoucnu pozor: neudělat návrh složitější, než musí nezbytně být (vysoká složitost a cena systému)
Konceptuální model je konceptuální, nikoli technologický tedy platformově nezávislý, čili PIM (Platform Independent Model) neřeší cílovou platformu (progr. jazyk, databázový model, konkrétní SŘBD) je vytvořený na základě úplného odproštění od implementace
Konceptuální model Proč jej vytváříme? slouží jako společný základ pro pochopení objektů aplikace uživateli, analytiky, správcem databáze i programátory na přípravě schématu DB se mohou podílet i uživatel (zákazník), pro nějž se DB tvoří a ostatní řídicí pracovníci
Konceptuální model Proč jej vytváříme? poskytuje dokumentaci: k ověření správnosti analýzy východisko pro seznámení se stávajícími databázovými strukturami východisko při analýze nových požadavků
Konceptuální modely E-R model vytvořen Peterem Chenem 1976 E-R znamená: Entity Relationship: The Entity Relationship Model: Toward a Unified View of Data česky: model entit a vztahů definuje grafické zobrazení pomocí ustálených elementů
E-R model
E-R model E-R model používá k modelování reálného světa tyto základní pojmy (konstrukty) entita slabý entitní typ vztah atribut identifikátor kardinalita povinnost ISA vztah
entita zpravidla modeluje objekt reálného světa (např. čtenář), měla by být samostatně vyčlenitelná, identifikovatelná, odlišitelná od jiných entit, schopná nezávislé existence je popsána pomocí hodnot svých vlastností ve větách zpravidla vystupuje jako podmět identifikována jménem (čtenář) př.: čtenář s vlastnostmi: jméno: Vít příjmení: Fábera datum narození: 5.5.1975
entitní typ abstrakce popisující typ entit čtenář s vlastnostmi jméno, příjmení, datum nar. Vít Fábera, 5.5.1975 je výskyt, nebo též instance entity často se pojmy entita, entitní typ zaměňují, pod pojmem entita se myslí ve skutečnosti entitní typ
vztah vyjadřuje vztah mezi dvěma nebo více entitami (je to prvek kartézského součinu mezi entitami) vyjádřen slovesem, přísudkem např. vztah mezi entitami čtenář, exemplář: čtenář si vypůjčil exemplář atribut učeně: funkce f definovaná na množině entit nebo vztahů s funkčními hodnotami z množiny hodnot (z univerza)
srozumitelněji: vlastnosti entit a vztahů příklad: možné atributy u entity čtenář: jméno, příjmení, rodné číslo, u vztahu si vypůjčil: datum výpůjčky atribut jméno: univerzum množina všech řetězců představujících reálná jména
2 entity: atribut příjmení František Kuldanů 320612/1234 Josef Novák 521006/5678 zde přiřazuje funkce atributu příjmení entitě č. 2 hodnotu Novák
pro záznam E-R modelu existuje ustálená grafická notace v Chenově modelu entity obdélník vztahy čtverec postavený na vrchol atributy kolečko, ovál grafickou notaci si budeme ukazovat na příkladu databáze knihovny pro vás by byl jistě přijatelnější příklad z oboru bankovnictví knihovna je každému srozumitelná bankovnictví může být předmětem semestrální práce
existují varianty grafického zobrazení směrem k UML entity obdélník vztahy čára atributy zapisují se do obdélníku k entitě stejně jako atributy třídy v objektově orientovaném přístupu
entita RČ atribut ČTENÁŘ JMÉNO PSČ SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP DATUM_REZ EXEMPLÁŘ KNIHA PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN (přírůstkový katalog) vztah (autorský katalog)
entita ČTENÁŘ RČ JMÉNO PSČ atribut SI_VYPŮJČIL DATUM_VÝP EXEMPLÁŘ JE_OD SI_REZERVOVAL DATUM_REZ KNIHA PŘÍR_Č CENA D_NÁK (přírůstkový katalog) vztah TITUL AUTOR ISBN (autorský katalog)
Poznámka č. 1: metodologické zásady pojmenování entity podstatné jméno v jednotném čísle (např. KLIENT, ČTENÁŘ, UČITEL) pojmenování vztahu sloveso (např. MÁ, JE_OD) Poznámka č. 2: v realizované databázi bude zaznamenáno: u každého exempláře pouze přírůstkové číslo, cena a datum nákupu a nějakým způsobem (podle typu databázového modelu) vztah (odkaz) na příslušnou knihu
Poznámka č. 3: teoreticky v databázi dle tohoto schématu může mít kniha pouze jednoho autora prakticky bychom zapsali do políčka Autor více jmen např. oddělených čárkou, což může ale způsobovat obtíže při hledání, výpisu všech exemplářů od daného autora apod. řešení 1. zavedení vícehodnotového atributu (oborem hodnot je množina) 2. zavedení nové entity AUTOR a vztahu NAPSAL mezi entitami KNIHA a AUTOR nejlepší řešení
NAPSAL AUTOR KNIHA JMÉNO PŘÍJMENÍ TITUL ISBN
Integritní omezení (IO) tvrzení o objektech (neboli pravidla) čtenář nesmí mít půjčeno více než 10 knih čtenář si nesmí rezervovat exemplář, jestliže je exemplář v knihovně zásoba součástky nesmí klesnout pod 5 ks minimální zůstatková částka na účtu je 500 Kč RČ je klíčem entity ČTENÁŘ Klíč atribut jednoznačně identifikující entity, v E-R modelu označen podtržením
Kardinalita vztahu typ integritního omezení, omezuje počet výskytů entit v jednotlivých vztazích kardinalita: (1:N) jedna entita může být zapojena pouze 1x, ostatní libovolným počtem (M:N) libovolný počet výskytů u entit (1:1) každá entita může být zapojena ve vztahu pouze jedenkrát
ČTENÁŘ 1 RČ JMÉNO PSČ M SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP N N EXEMPLÁŘ 1 N KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN
SI_VYPUJCIL (1:N) čtenář si může vypůjčit více exemplářů, exemplář může být vypůjčen pouze jedním čtenářem diagram příkladů: Josef Novák RČ: 521006/5678 1 N Babička přír. číslo 100 U nás přír. číslo 58 František Kuldanů RČ: 320612/1234 Hřbitovní kvítí přír. číslo 1005 Babička přír. číslo 101
SI_REZERVOVAL (M:N) čtenář si může rezervovat více knih (titulů), jedna kniha může být rezervována v daném okamžiku více čtenáři Josef Novák RČ: 521006/5678 M N Babička ISBN: 80-85190-38-9 Učebnice jazyka C ISBN: 80-85828-02-2 František Kuldanů RČ: 320612/1234 Bylo nás pět ISBN: 80-00-00076-8 Divá Bára ISBN: 9788000005027
příklad vztahu 1:1 občan karta zdravotní pojišťovny každý občan má jen jednu kartu zdravotní pojišťovny, karta je určena pouze pro jednoho občana Kardinalita vztahu typu min-max jemnější popis kardinality pro binární vztahy specifikuje minimální a maximální výskyt entity ve vztahu
zápis: R(E 1 (min,max),e 2 (min,max)) příklad: vztah entita entita SI_VYPUJCIL(ČTENÁŘ(0,n),EXEMPLÁŘ(0,1)) čtenář nemusí mít vypůjčen žádný exemplář, může mít vypůjčeno více exemplářů; exemplář nemusí být vypůjčen, může být vypůjčen pouze jedním čtenářem
příklad: JE_OD(EXEMPLÁŘ(1,1),KNIHA(0,n)) exemplář musí být od nějaké knihy (musí být zapojen povinně do vztahu) a musí být maximálně od jedné knihy; kniha nemusí mít v knihovně žádný exemplář (všechny jsou zničené nebo ukradené, ale kniha zůstává v autorském katalogu, protože se plánuje nákup dalších výtisků) a může mít více exemplářů Otázka: Jakou kardinalitu by měl vztah NAPSAL mezi entitami KNIHA a AUTOR?
ČTENÁŘ (0,n) RČ JMÉNO PSČ (0,m) SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP (0,1) (1,1) EXEMPLÁŘ (0,n) (0,n) KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN
Poznámky: entita EXEMPLÁŘ má povinný výskyt ve vztahu (exemplář nemůže existovat bez knihy) exemplář je existenčně závislý na knize EXEMPLÁŘ (1,1) JE_OD (0,n) KNIHA n-ární vztahy vztah může být definován i mezi větším počtem entit, event. entita může být zastoupena ve vztahu vícekrát
DODÁVÁ OBCHODNÍK ZBOŽÍ postihuje situaci, kdy obchodník dodává zboží jinému obchodníkovi arita vztahu = 3 v příkladu s knihovnou jsme měli pouze binární vztahy atribut může být i složený, neatomický adresa (ulice, č.p., místo, PSČ)
Slabý entitní typ některé entity nemohou být jednoznačně identifikovány svým klíčem, potřebují k identifikaci klíč jiné entity jsou to tzv. slabé entitní typy a jsou identifikačně závislé na jiném entitním typu značí se obdélníkem s dvojitou čarou KOPIE (1,1) JE_OD (0,n) FILM ČÍSLO_KOPIE JMÉNO
Příklad: Slabý entitní typ v kině máme tři kopie filmu Amadeus s čísly kopie 1,2,3 a dvě kopie filmu Piano s čísly 1,2 k jednoznačné identifikaci kopie tedy nestačí její číslo, je nutné připojit identifikaci filmu, od kterého je příslušná kopie
Nástroje pro tvorbu modelů E-R lze je kreslit v jakémkoliv grafickém editoru (i v ruce) existují lepší nástroje (case nástroje) Microsoft Visio Enterprise Architect Oracle SQL Developer Data Modeler Case Studio (Quest Software a další datové modeláře
v praxi se E-R model doplňuje ještě datovým slovníkem de facto specifikace domén hodnot atributů E-R model je statický model dále se při tvorbě informačních systémů využívají data-flow diagramy (diagramy toku dat) a specifikace procesů (vývojové diagramy, pseudokód)