informaČnÍ systÉmy
DESCRIPTION
INFORMAČNÍ SYSTÉMY. DATABÁZE V INFORMAČNÍCH SYSTÉMECH. Ing. Roman Danel, Ph.D . roman.danel @ vsb.cz Institut ekonomiky a systémů řízení Hornicko – geologická fakulta. Proč databáze?. Každý informační systém pracuje s informacemi (a tedy s daty). Data musí být někde uložena -> databáze. - PowerPoint PPT PresentationTRANSCRIPT
INFORMAČNÍ SYSTÉMY
DATABÁZE
V INFORMAČNÍCH SYSTÉMECH
Ing. Roman Danel, [email protected]
Institut ekonomiky a systémů řízení
Hornicko – geologická fakulta
Proč databáze?
Každý informační systém pracuje s informacemi (a tedy s daty).
Data musí být někde uložena -> databáze.
Co se dozvíte v této přednášce?
• Opakování pojmu z databázových systémů
• Co je to relační databáze?
• Integrita, transakce, normalizace
• Modelování - ERD, DFD, STD
• Jaké jsou teoretické základy relačního modelu
• Objektově-orientovaný model
Návrh databázového systému
Základem úspěšného fungování informačního systému je návrh databáze.
V rámci životního cyklu informačního systému, v jeho úvodní fázi, kdy je systém vytvářen, je vytvářen také návrh databáze (volba typu, návrh její struktury, způsob práce, řešení efektivity…)
Databázové systémy
Historie:– Manuální systémy– Agendové systémy– Hierarchický model – data v stromové struktuře;
rodič-potomek– Síťový model – zobecnění o mnohonásobné
vztahy– Relační model– Objektově orientovaný model– Objektově relační
Základní návrh databáze vzniká v analytické fázi vzniku informačního systému.
Analýza – studium problému před zahájením řešení.
Úroveň databázového modelu z hlediska abstrakce
• Konceptuální model
• Logický model
• Fyzický datový model – konkrétní db systém
Návrh databázového systému
Základní modely vedoucí k návrhu databázového systému jsou:
- Datové modelování (ERD)
- Funkční modelování (DFD)
- Časová (dynamická) analýza (STD)
Entitně relační diagramy - ERD
ER diagramy slouží k struktury databáze.
Cílem ERD je zmapovat data ukládaná do databáze a jejich vzájemné vztahy.
Datové modelování - ERD
• Entita
• Atribut
• Relace – vztah mezi dvěma entitami
• Kardinalita vztahu – mocnost vztahu mezi entitami: 1:1, 1:N, N:1, M:N
Vztah je informace, kterou si systém musí pamatovat, nelze ji odvodit.
Postup tvorby ERD
a) Pojmenování logických jednotek (entity, atributy)
b) Popis vztahů mezi entitami
c) Stanovení pravidel integrity
ERD – Entitně relační diagramy
Notace ERD:
Chen – klasická notace - obdélníky pro znázornění entit a kosočtverce pro znázornění vztahů
Coad - Yourdon
DeMarco
Nástroje ERD
• Avolution, ConceptDraw, ER/Studio, ERwin, DeZign for Databases, MEGA International, OmniGraffle, Oracle Designer, PowerDesigner, Rational Rose, RISE Editor, SmartDraw, Sparx Enterprise Architect, SQLyog, Toad Data Modeler, Microsoft Visio, Visual Paradigm, Kivio nebo Dia.
Data Flow Diagram - DFD
Cílem DFD je modelování (v grafické podobě) datových nebo řídicích toků v systému.
DFD diagramy popisují funkce systému.
DeMarco notace.
DFD
Proces (funkce) – provádí transformaci vstupních dat na výstupní.
Procesy – datové a řídicí
Každý proces má název (měl by vyjadřovat činnost).
Prvky DFD
• Datový tok – vyjadřuje přesun informací
• Datový sklad – místo dočasného uchování dat
• Funkce (proces)
• Terminátor – externí zdroj dat nebo místo určení dat
Grafická podoba DFD
Terminátor
Proces
Datový sklad
Datový tok
Postup vytvoření DFD
Kontextový diagram – nejvyšší úroveň – jediný proces který reprezentuje celý systém
Dekompozice DFD na nižší úrovně až na úroveň základních elementárních funkcí.
• Nesmí existovat proces, který nemá žádné vstupy a přesto produkuje datové toky
• Nesmí existovat proces, který pouze spotřebovává data a nemá výstupy
DFD
• Účelem kontextového diagramu je zachytit vztah systému k jeho okolí
Příklad – kontextový model
Důlní závod
Úpravna
OŘKJ
Expedice(výpravna)
řízeníodbytu
obchodníorganizace
OKD doprava
odštěpný důlní závod externí organizace
veřejnýpřepravce
Příklad – DFD
vozy
přepravce
program nakládky
obchodníspolečnost
a důlnípodnik
seznamloženýchodběratelů přiřazení
váženík vozu průměrování
a přiřazeník vozu
tvorbaprogramunakládky
vážení
objednávkavozů
přistavenívozů
operativníměření
jakostníchparametrů
zásoby
Stavový diagram (STD)
Stavový diagram (STD – State Transition Diagram) – obsahuje sled stavů, v jakém se systém může nacházet a za jakých podmínek může dojít ke změně stavu.
Stavy jsou statické, změna stavu je většinou důsledek nějaké události.
Vyjádření – např. vývojové diagramy
STD
Událost z okolí může být následující:– F (Flow oriented) : datová událost, odvozená
od vstupu do systému– T (Temporary) : časová událost, odvozená od
časového okamžiku. Vyvolá činnost, která se má např. konat pravidelně.
– C (Control) : řídicí událost, odvozená od povelu.
Datový slovník (Data Dictionary)
Datový slovník slouží k formalizovanému popisu dat systému z pohledu uživatele.
Metadata – data o datech
• Spravuje databázový stroj
• Přístup jen ke čtení
Databázový model
Model systému = ERD + DFD + STD + DD
Dále se podíváme na:
• SQL
• Množinové operace
• Normalizace
• Integrita
• Transakční zpracování
Databázové pojmy
• Redundance
• Integrita, konzistence
• Efektivita - dosažitelnost
SQL (Structure Query Language)
Deklarativní jazky
SQL příkazy:
DDL – vytváření objektů
DML – manipulace s daty
SQL
Normy:– SQL86– SQL89 – přidána referenční integrita– SQL92– SQL99 – rozšíření o OOP
Množiny a SQL
Každá tabulka v databázi je množina.
Každý řádek tabulky je člen dané množiny.
SQL – operace nad množinami
Množinové operace
• Sjednocení - zkombinování (UNION ALL)
• Průnik – nalezení společných prvků (INTERSECT)
• Množinový rozdíl (OUTER JOIN)
• Symetrický rozdíl
• Kartézský (direktní) součin
• Projekce, Restrikce
Normalizace
Cílem normalizace je dosažení ideální struktury dat.
Normalizace se snaží vytvořit relační model pro uložení dat, který minimalizuje datovou redundanci při zachování datové integrity.
Normální formy db
Existují tzv. „normální formy“.
1 NF – záznam neobsahuje žádnou opakující se položku
2 NF – záznam má pouze PK a neklíčové položky jsou závislé na celém PK
3 NF – vylučuje tranzitivní (přenesené) závislosti
1st ≤ 2nd ≤ 3rd ≤ BCNF
Příklad – 1 NF
Příkladem by mohla být entita „Objednávka", která bude obsahovat atributy „Objednávka Číslo", „Datum", „ZbožíID1", „ZbožíID2", „ZbožíID3", „Množství1", „Množství2" a „Množství3".
Skupina atributů „ZbožíID" a „Množství" se zde třikrát opakuje, entita tedy nevyhovuje první normální formě.
Příklad 2NF
Představme si entitu „Faktura" s atributy „FakturaČíslo", „DatumSplatnosti", „ZbožíID“, „Množství".
V takovéto entitě je klíčem kombinace atributů „FakturaČíslo" a „ZbožíID" (jedná se tedy o složený klíč). Atribut „DatumSplatnosti" je ale závislý pouze na atributu „FakturaČíslo" a ne na celém kandidátním klíči a proto taková entita není ve druhé normální formě.
Příklad – 3NF
„ObjednávkaČíslo", „ŘádekČíslo", „ZbožíID", „Název zboží" a „Množství".
Takováto entita není ve třetí normální formě, protože atribut „NázevZboží" je funkčně závislý na atributu „ZbožíID", nikoliv na kandidátním klíči, kterým je v tomto případě kombinace atributů „ObjednávkaČíslo„ a „ŘádekČíslo„.
Entita tedy nevyhovuje 3 NF.
Denormalizace
• Ne vždy je ideální maximální normalizace – důsledná normalizace může snižovat rychlost zpracování
• Denormalizace – agregovaná data, předpřipravené hodnoty pro sestavy – zrychlují výstupy
Integrita
• Entitní– PK – jednoznačná identifikace entity + nesmí
být hodnota NULL
• Referenční– FK – null nebo hodnota v sloupci na který se
odkazuje
Referenční integrita
• restriktivníNelze smazat nadřízený záznam, pokud na něj existuje odkaz z nějakého podřízeného záznamu.
• set nullPokud smažeme nadřízený záznam, v podřízeném záznamu se hodnota cizího klíče nastaví na NULL.
• kaskádováPokud smažeme nadřízený záznam, smažou se i všechny podřízené záznamy, které se na něho odkazují.
Transakční zpracování
Transakce – sled operací, které musíme vykonat, abych dosáhli cíle a přitom databáze zůstala konzistentní.
Konzistence může být porušena např. při paralelním zpracování více SQL příkazů, které pracují nad stejnými daty.
Transakce může proběhnout jako celek nebo vůbec.
Vlastnosti transakce: A C I DUkončení transakce: COMMIT nebo ROLLBACK
Systémy založené na transakčním zpracování označujeme jako OLTP.
Vztahy mezi tabulkami
• Databáze obsahuje řadu tabulek
• Všechny tabulky spolu nemusí souviset
• Tabulky, které jsou ve vzájemném vztahu, vytvářejí schéma
• Databáze může obsahovat několik schémat
Datové modelování a OOP
Datové modelování
Datové modelování je specifická část softwarového inženýrství (není to programování, ale ani pouhé kreslení diagramů).
Cílem datového modelování je převod reálných objektů na datové objekty.
Teoretické základy
• Teorie množin
• Turingův stroj - zařízení manipulující s buňkami v paměti a používající instrukce
• Kleen, Hilbert – rekurzivní funkce
• Lambda-kalkul (A. Church) – nástroj k zápisu a manipulaci s počítačovým kódem
Objektově orientovaný přístup
• Základem je „objekt“ – modeluje nějakou část reálného světa
• Objekty dokážou reagovat na požadavky (zprávy), které jim zasíláme
• Objekty v sobě uchovávají údaje – vnitřní data (Properties) a dále uchovávají operace, které lze prostřednictvím zpráv spouštět (metody)
Vlastnosti
• Objekt je pro nás „černou skříňkou – zajímá nás co dělá, ne z čeho se skládá (zapouzdření neboli encapsulation)
• Dědičnost (možnost vytvářet instance)
• Polymorfismus – vlastnost, která může mít více implementací
• Rozhraní (interface) = skupina metod, které jsou k dispozici
OOP
Dvě koncepce:– Čisté OOP – ideální pro programování a
datové modelování, ale obtížná praktická realizace (SmallTalk)
– Smíšená – ztrátou některých abstraktních vlastností OOP docílíme zjednodušení implementace (Př. Java, C++)
Relační a OO model
Relační model – prvky reálného světa se snažíme zobrazit do pevných předem připravených struktur
OO model – pro prvky reálného světa vytváříme objekty, které se jim podobají
Rozhraní
• Co je to rozhraní?
– ODBC (Open DataBase Connectivity) – API pro přístup k databázovým systémům
– ADO (ActiveX Data Objects) – COM pro přístup na data; Microsoft
– JDBC (Java Database Connectivity)
Literatura
• Straka, M.: Vývoj databázových aplikací, GRADA 1992
• Šarmanová, J.: Teorie zpracování dat, skripta VŠB, Ostrava 1997
• Gruber, M.: Mistrovství v SQL, 2 díly, SoftPress 2004
• Merunka, V: Datové modelování, Alfa Publishing 2006
• Wesley, A.: Myslíme v jazyku SQL, Grada 2004
Shrnutí
• Opakování pojmů z databázových systémů: relace, entita, atribut, integrita, PK, FK, kardinalita, normalizace
• Co je to relační databáze?
• Jaké známe jiné typy databází?
• Datový model – konceptuální, logický, fyzický
• Datové modelování – ERD, DFD, STD