Databázové systémy Ing. Radek Holý holy@cvut.cz
Literatura: Skripta: Jeřábek, Kaliková, Krčál, Krčálová, Kalika: Databázové systémy pro dopravní aplikace Vydavatelství ČVUT, 09/2010
Co je relační databáze? Nástroj pro efektivní a spolehlivé ukládání informací a manipulace s nimi efektivita + spolehlivost: ochrana dat před nahodilou ztrátou či poškozením data nesmí spotřebovávat víc prostředků, než je nezbytně nutné (lidských i technických) schopnost načtení dat rozumným způsobem a za přijatelné rychlosti
Terminologie relačních databází Databázový systém Aplikaci tvoří formuláře a sestavy, s nimiž pracuje uživatel Dbf.stroj není součástí databáze Databáze obsahuje fyzickou implementaci schématu a dat Prostor problému je dobře definovaná část reálného světa Datový model je myšlenkový popis daného prostoru problému Databázové schéma popisuje datový model vůči databázi
Prostor problému
Terminologie Prostor problému - modelovaná část reálného světa. Pozor na nutné omezení na konkrétní, dobře definovanou množinu objektů a jejich vzájemných vztahů.
Datový model entity, atributy, domény a vztahy
Terminologie Datový model - myšlenkový (konceptuální) popis prostoru problému. Definice entit, atributů, omezení entit, popis vztahů mezi entitami Např. E-R model
Diagram entit a vztahů (E-R diagram) Zaměstnankyně Zákazník - slečna Výška Barva vlasů Váha Zákazník Barva očí Cenový limit Přání Nickname
Terminologie Databázové schéma - definice fyzického rozvržení systému tzn. seznam implementovaných tabulek a pohledů ( jde opět o myšlenkové schéma tzn.datový model vyjádřený v pojmech,pomocí kterých je již popisujeme vůči dbf.stroji = relační model dat
Terminologie Databáze - jakmile dbf.stroji vysvětlíme, jak mají data vypadat, stroj vytvoří určité fyzické objekty, do nichž se ukládají data.!! Databáze = sjednocení vytvořené struktury a vlastních dat.!! Tj. fyzické tabulky, definované pohledy, dotazy, procedury a pravidla pro ochranu dat.
Terminologie Databázový stroj - mechanismus, provádějící vlastní fyzickou manipulaci s daty - ukládání na disk a opětovné načtení
Terminologie Aplikace - Skládá se z formulářů a sestav, s nimiž pracuje uživatel
Modely pro ukládání a manipulaci s daty Relační model dat Hierarchický model dat Hvězdicový model dat Síťový model dat atd.
Relační model dat Vychází z matematických principů odvozených z teorie množin a predikátové logiky definuje: strukturu dat (způsob,jakým je možné data reprezentovat) integritu dat (způsob ochrany dat) manipulaci s daty (operace,které můžeme nad daty provádět)
Vlastnosti relačních dbf.systémů Všechna data se dají reprezentovat v pravidelně uspořádaných strukturách s řádky a sloupci = relace Všechny hodnoty v databázi jsou skalární (v každé konkrétní pozici se vyskytuje právě jedna hodnota) operace v dbf se provádí vždy nad celou relací, výsledkem je jiná relace = uzávěr
Relační model - pokračování Model neurčuje, jak mají být data fyzicky implementována, jde o pomyslnou reprezentaci dat Relace může mapovat fyzickou tabulku,ale též může vyjadřovat pouze určitá vypočtená pole, která se fyzicky nikam neukládají
Relace = množina záznamů relací může být cokoliv, co je uspořádáno do struktury řádků a sloupců a co obsahuje skalární hodnoty existence relace je nezávislá na její fyzické reprezentaci
Vektor souřadnic Relace - příklad Atribut Záhlaví Jméno dívky: Rok narození: Barva vlasů: SOFIE 1989 blond ANETA 1985 černá Tělo RADKA 1977 blond MELANIE 1989 oříšková
Relace Jeden řádek = vektor hodnot (souřadnic) Počet řádků = kardinalita relace Sloupec ve vektoru souřadnic = atribut Počet atributů v relaci = stupeň relace Obor hodnot = druh dat,které atribut prezentuje
Relace Relace je v podstatě množina tj. prvky množiny jsou jednoznačně identifikovatelné tj. nesmí obsahovat 2 či více stejných záznamů (řádků) Relace je neuspořádaná (čísla řádků nemají smysl) Podmínkám relace vyhovuje i prázdná relace
Datový model: E-R model Myšlenkový popis daného prostoru problému Základní prvky: entity atributy domény (obory hodnot ) vztahy
Entity Entita = objekt reálného světa,který je schopen nezávislé existence a je jednoznačně odlišitelný od ostatních objektů, tedy: entita je cokoliv, o čem v systému potřebujeme uchovávat nějaké informace seznam entit patří k první fázi návrhu datového modelu
Entity - pokračování Sestavení seznamu entit: rozhovory s klientem,prohlídka dokumentace,formulářů,výkazů,atd. seznam entit nutno prověřit, aby byl úplný a konzistentní (pozor na :opakované E, dvojice E) možnost definování podtypů entit konkrétní (např.výrobky) x abstraktní entity(např. vztahy)
Atributy O každé entitě evidujeme určité skutečnosti = tzv. atributy entity Př.: ENTITA: ATRIBUTY: Zákazník Jméno Adresa Povolání Stav
Strategie návrhu entit a jejich atributů Začít požadovaným výsledkem a neudělat návrh složitější,než musí nezbytně být Na jaké otázky má databáze odpovídat? Výsledný model musí být natolik flexibilní,aby dokázal odpovědět i na otázky kladené v budoucnu Cenou za vysokou flexibilitu bývá vyšší složitost systému
Strategie návrhu - pokračování Hledejte výjimky (výjimečné situace) umět identifikovat všechny výjimky systém je třeba navrhnout tak, aby co nejvíce výjimek dokázal zvládnout sám bez obtěžování uživatele vypustit nepravděpodobné výjimky z důvodu velké nákladnosti zpracování (např. šlechtické tituly)
Strategie návrhu - pokračování Správně rozlišit ENTITY a ATRIBUTY Př. ADRESA může být modelována jako samostatná entita s atributy : ulice,psč,město,stát,.. Nebo můžeme ADRESU modelovat jako jeden atribut ( Luční 12, 11100 Praha 10 ), nebo můžeme atributy adresy přidat např. do entity ČLOVĚK..
Domény Doména = obor hodnot, popisuje typ dat,která daný atribut reprezentuje Obor hodnot tvoří množinu všech přípustných platných hodnot,které smí atribut obsahovat Obor hodnot - logický pojem (př.věk, vzdělání ) Datový typ - fyzický pojem (př.text,číslo)
Domény - pokračování Obor hodnot (doména) je spojení datového typu a validačního (ověřovacího) pravidla, která ověřuje platnost hodnoty. Typově kompatibilní domény = mají vzájemně porovnatelné hodnoty!! Ani Microsoft Jet ani SQL Server nemají vestavěnu podporu domén, znají pouze datové typy tzn. umožní porovnat nesprávné údaje
Vztahy Tj. vztahy definované mezi entitami = asociace mezi entitami Stupeň vztahu = počet entit účastnících se vztahu (unární,binární,ternární) Vztah mezi 2 entitami (binární): 1:1 (př. Zaměstnankyně x výplatní páska) 1: více ( Zaměstnankyně x faktury) více : více (student x předmět, zam.x klient)
Účast entity ve vztahu 1. Úplná - pokud entita nemůže existovat bez účasti ve vztahu 2.Částečná - entita může existovat i bez účasti ve vztahu Př.: Zaměstnanec -- Prodejce Zaměstanec může být i něčím jiným,jeho účast ve vztahu s podejcem je nepovinná Ale prodejce je vždy zaměstnancem,jeho účast je povinná
Diagram entit a vztahů (E-R diagram) Objednávka Datum obj. Zaměstnanec pořídí objednávk u Č.obj. Č.prodejce Zaměstnanec Zákazník Příjmení Č.zaměstn. Jméno
E-R diagram : vysvětlivky Jedna Více Nula nebo jedna Nula nebo více
E -R diagram: vysvětlivky ENTITA VZTAH ATRIBUT
KONEC