přednáška 1 - cvut.cz...datová kvalita, gui, opakování, diskuse 02.01. 09.01. test –teorie...
TRANSCRIPT
Databázové systémy
Přednáška 1
Vyučující
• Ing. Martin Šrotýř, Ph.D.
– K614
– Místnost: K311
– E-mail: [email protected]
– 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 18 – 20 bodů
B 16 – 17 bodů
C 14 – 15 bodů
D 12 – 13 bodů
E 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 datDatabázové schéma
popisuje datový model vůči databázi
Datový model je myšlenkový popis daného prostoru
problému
Prostor problému je dobře definovaná část reálného světa
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
• Telefon
Entita Prodejce
• Jméno
• Příjmení
• Zařazení
• Plat
Entita Produkty
• Číslo produktu
• Kategorie
• Váha
• Barva
Doména atributu
Barva:
• červená
• zelená
• modrá
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ěstna-nec pořídí
objednávku
ZaměstnanecČ.obj.
Datum obj.
Č.prodejce
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
Relace - příklad
Produkt:
Cena (Kč):
Hmotnost (kg):
Spínací špendlík 3 0.005
Nášivka 1 29 0.005
Opasek 1 429 2.000
Boty 1 1499 10.000
Atribut
Vektor souřadnic
Záhlaví
Tělo
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ř.:
Zákazník
Jméno Adresa Povolání Stav
ENTITA:
ATRIBUTY:
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ěstna-nec pořídí
objednávku
ZaměstnanecČ.obj.
Datum obj.
Č.prodejce
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