Databázové systémy Přednáška 1
Vyučující Ing. Martin Šrotýř, Ph.D. K614 Místnost: K311 E-mail: srotyr@fd.cvut.cz Telefon: 2 2435 9532 Konzultační hodiny: Dle domluvy
Databázové systémy 14DATS 3. semestr rozsah: 1+1, zimní semestr zakončení: klasifikovaný zápočet počet kreditů: 2
Obsah předmětu Základní pojmy Normální formy Vazby Datová integrita Základy relační algebry Nerelační databáze
Harmonogram předmětu Sudý týden Lichý týden Téma 03.10. 10.10. Úvod, základní pojmy, ER model 17.10. 24.10. Normální formy, kandidátní klíče 31.10. 07.11. Modelování vztahů 14.11. 21.11. 05.12. Datová integrita + základy relační algebry 28.11. 19.12. Relační vs. Nerelační databáze 12.12. Datová kvalita, GUI, opakování, diskuse 02.01. 09.01. Test teorie
Podmínky zápočtu Písemný test z teorie 02.01. / 09.01. 1 možnost opravy (nejpozději do 16.2.2018) Max. 10b (min. 5b) 5 otázek po 2b Realizace praktické databáze Zodpovědět dotazy nad databází 3 možné pokusy Max. 10b (min. 5b) Ve zkouškovém období vypsané termíny
Bodové ohodnocení - stupnice A B C D E 18 20 bodů 16 17 bodů 14 15 bodů 12 13 bodů 10 11 bodů
Literatura Skripta DATABÁZOVÉ SYSTÉMY PRO DOPRAVNÍ APLIKACE ČVUT, FD, Jeřábek, Kaliková, Kalika, Krčál, Krčálová, 2010 Internet Přednášky / cvičení Sharepoint H: Weby vyučujících
Organizace semestru Docházka přednášek nepovinná Docházka cvičení nepovinná Písemka: 02.01. / 09.01. Kontrola semestrální práce (cvičení) Další změny vyhrazeny info přes MMS Dotazy
Databázové systémy
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é 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 Db.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 Entita Zákazník Jméno Příjmení Adresa Email Telefon Entita Prodejce Jméno Příjmení Zařazení Plat Doména atributu Barva: červená zelená modrá Entita Produkty Číslo produktu Kategorie Váha Barva Váha: 0.01 200 kg
Terminologie Datový model - myšlenkový (konceptuální) popis prostoru problému. Definice entit, atributů, omezení entit, popis vztahů mezi entitami např. E-R model (Entity Relationship Diagram)
Diagram entit a vztahů (E-R diagram) Objednávka Zaměstnanec pořídí objednávku Datum obj. Č.obj. Č.prodejce Zaměstnanec Zákazník Příjmení Č.zaměstn. Jméno
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 db.stroji = relační model dat
Terminologie Databáze - jakmile db.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 Jaký produkt si dnes koupíte?
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 db. 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 db 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í Produkt: Cena (Kč): Hmotnost (kg): Spínací špendlík 3 0.005 Nášivka 1 29 0.005 Opasek 1 429 2.000 Tělo Boty 1 1499 10.000
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é, tzn. že 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 (Entity Relationship Diagram) 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: Zákazník ATRIBUTY: 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 jediná entita s atributy : ulice, PSČ, město, stát,.. Nebo můžeme každou položku modelovat jako samostatnou entitu.
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 (např. věk, vzdělání) Datový typ - fyzický pojem (např. 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ěstnanec x výplatní páska) 1: více (př. zaměstnanec x faktury) více : více (př. 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 prodejcem je nepovinná Ale prodejce je vždy zaměstnancem, jeho účast je povinná
Diagram entit a vztahů (E-R diagram) Objednávka Zaměstnanec pořídí objednávku Datum obj. Č.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