Title: Datab
1Databázové systémyteorie a návrh relacních
databázových systému
2I. Všeobecný úvod
3Základní rozlišení bází dat
- Nestrukturované a cástecne strukturované báze dat
- souborové báze dat orientované na FS,
- firemní elektronická agenda v ruzných podobách
(dokumenty, tabulky, císelná data) - Nerelacní báze dat a prechodné formy
- historické souborové databáze (DBase IV)
- tabulkove orientované databáze se zárodky
relacního prístupu FoxPro 5, Paradox) - Relacní databázové systémy
- Oracle, MSSQL Server, MS Access
- Objektove orientované báze dat
- XML (.)
- Objektový databázový koncept (ODC)
- implementace ODC v soucasných relacních
systémech - využití v komunikacích (Queuing)
4II. Relacní databázové systémy
5Charakteristika relacního DS (RDS)
- Hlavní požadavky
- efektivita (HW, SW, Lidské zdroje, rychlé
vyhledávání) - spolehlivost (bezpecnost dat, stabilita,
zabezpecení proti zneužití) - implementace relacního modelu
- Historie
- teorii relacního modelu zpracoval v 60. Letech
Dr. E. F. Codd - Axiomy relacního modelu (koncept)
- data jsou reprezentována v rádcích a sloupcích
tzv. relacích - všechny hodnoty obsažené v databázi jsou skalární
tj. jednotkové neboli atomické - operace v databázi se provádí vždy nad celou
relací a jejich výsledkem je jiná relace tzv.
uzáver - Implementace relací
- napr. MS Access recordset množina záznamu
- napr. MS SQL Server resultset množina
výsledku
6Obecný koncept RDS
Aplikace Uživatelské rozhraní
Databázový stroj není soucástí databáze
Vlastní Databázový systém
Databáze fyzická implementace databázového
schématu
Databázové schéma implementovatelný popis dat.
modelu
Myšlenkový (konceptuální) prostor problému
Datový model myšlenkový popis daného prostoru
problému
Prostor problému definovaná cást reálného sveta
7Možnosti implementace RDS
- Databázové stroje - bežné
Prostredí pro definici a správu dat
Vývoj Front-end aplikací
Microsoft Accsess Visual Database Tools Microsoft
Query SQL server Enterprise Manager SQL Toad
Microsoft Accsess Visual Basic C,
C HTML ASP Java
Obj. komp. pro prístup k datum
ADO DAO / Jet DAO / ODBC RDO Oracle client BDE,
BD express
Databázové stroje
Microsoft Jet
SQL server
Oracle
8III. Príklad rešeného problému
9Všeobecné zadání RDS - príklad
- První neupresnené zadání
- Je treba vytvorit evidenci výzkumných úkolu
studentu a pedagogu naší vysoké školy. Na škole
probíhají výzkumné úkoly ruzné povahy. Jsou to
napríklad vnitrní granty, granty ministerstva
školství (MŠMT), bakalárské práce, diplomové
práce, postgraduální výzkumné úkoly. Na
výzkumných úkolech se podílejí jak studenti tak
pedagogové. Studenti se podílejí na výzkumných
úkolech jak v rámci prezencní formy studia tak i
pri kombinovaném a postgraduálním studiu. V praxi
je možné, že se student podílí na výzkumu i po
ukoncení studia, ale pak se obvykle jedná se o
zvláštní režim výzkumného úkolu. Na úkolech se
podílejí pedagogové všech zarazení (zamestnanec,
externista, práce na dohodu o provedení práce). V
praxi není možné, aby se na výzkumném úkolu
podílel pedagog který nemá v prubehu úkolu
vyrešen pracovne právní vztah k fakulte nebo již
tento vztah zanikl. - Cílem vytvárené aplikace je získat operativní
prehled o probíhajících projektech, evidenci již
dokoncených projektu, možnost kontrolovat
projekty z hlediska jejich casového prubehu
(každý typ projektu má stanoven termín zahájení a
maximální délku trvání) a dodržování dalších
stanovených pravidel (pravidla pro probíhající
projekty viz zvláštní zadání). Jedním z výstupu
aplikace by mela být možnost obeslat výzkumníky
dle vybraných statusu jejich projektu (termín
dokoncení ve skluzu, precerpání pridelených
financních prostredku, dotaz pri zmene pracovního
zarazení nebo ukoncení pracovne právního vztahu
pedagoga, dotaz na pokracování projektu pri zmene
nebo ukoncení formy studia studenty) a to jak
formou mailu tak i formou doporuceného dopisu.
10IV. Prehled fází realizace projektu z hlediska
realizace RDS
11Fáze realizace RDS
- Úvodní studie
- Cíl co nejlépe bežným jazykem popsat požadavky
uživatele a zaznamenat všechny známé okolnosti,
které mohou mít vliv na rešení problému - Procesní analýza
- Cíl co nejlépe s využitím vhodných prostredku
pro vizualizaci procesu (CASE, Visio,
PowerDesigner) popsat procesy dané organizace
které je nutno vzít pri rešení , - poznámka u relativne jednoduchých nebo napr.
historických projektu je možno i v této cásti
ješte využít víceméne prostredky bežného jazyka. - Datová analýza
- Cíl popsat s využitím vhodných obvykle
grafických prostredku nebo prostredku prímo
spojených s cílovou databází budoucí datový model
RDS na abstraktní úrovni. - Implementace datového modelu (back-end)
- Cíl prenesení datového modelu do konkrétního
prostredí pro realizaci back-end cásti RDS
(implementace vlastní databáze) - Implementace aplikace pro prístup k RDS
(front-end) - Cíl vytvorení aplikace, která umožní uživateli
(nebo jiným systémum) prístup ke vzniklé aplikaci
typu RDS -
12Fáze realizace RDS zúžený pohled
- Úvodní studie
- Cíl co nejlépe bežným jazykem popsat požadavky
uživatele a zaznamenat všechny známé okolnosti,
které mohou mít vliv na rešení problému - Procesní analýza
- Cíl co nejlépe s využitím vhodných prostredku
pro vizualizaci procesu (CASE, Visio,
PowerDesigner) popsat procesy dané organizace
které je nutno vzít pri rešení , - poznámka u relativne jednoduchých nebo napr.
historických projektu je možno i v této cásti
ješte využít víceméne prostredky bežného jazyka. - Datová analýza
- Cíl popsat s využitím vhodných obvykle
grafických prostredku nebo prostredku prímo
spojených s cílovou databází budoucí datový model
RDS na abstraktní úrovni. - Implementace datového modelu (back-end)
- Cíl prenesení datového modelu do konkrétního
prostredí pro realizaci back-end cásti RDS
(implementace vlastní databáze) - Implementace aplikace pro prístup k RDS
(front-end) - Cíl vytvorení aplikace, která umožní uživateli
(nebo jiným systémum) prístup ke vzniklé aplikaci
typu RDS -
13V. První fáze rešení problému analýza požadavku
zadavatele
14Datová analýza zavedení pojmu datového modelu
- Entita
- abstraktní kategorie, popisuje cokoli (jakýkoli
výsek reality) o kterém v systému potrebujeme
uchovávat údaje - silná (regulérní) entita takový popisovaný
výsek reality, který má smysl sám o sobe slabá
entita takový popisovaný výsek reality, který
má smysl pouze ve vztahu k nejaké silné entite - Doporucení pri odhalování entit v úvodní studii,
slovní procesní analýze, slovním zadání - vypsat nebo oznacit všechna podstatná jména a
slovesa - pokusit se prevést slovesa na podstatná jména
(oznacení) - analýza dokumentu a požadovaných výstupu
- sestavit seznam kandidátu entit
- rozhodnout o kategorizaci subtypu entit
- provést kontrolu nadbytecností (redundancí,
duplicit a multiplicit) - pokusit se o zobecnení tam kde je to možné
- Pozor, vždy je treba pocítat s tím, že v rámci
rešení problému se bude puvodní seznam entit
rozrustat i zužovat dle nových poznatku a dle
zvoleného prístupu k realizaci - Úkol 1 z príkladového zadání vypište seznam
entit
15Všeobecné zadání RDS - príklad
- První neupresnené zadání
- Je treba vytvorit evidenci výzkumných úkolu
studentu a pedagogu naší vysoké školy. Na škole
probíhají výzkumné úkoly ruzné povahy. Jsou to
napríklad vnitrní granty, granty ministerstva
školství (MŠMT), bakalárské práce, diplomové
práce, postgraduální výzkumné úkoly. Na
výzkumných úkolech se podílejí jak studenti tak
pedagogové. Studenti se podílejí na výzkumných
úkolech jak v rámci prezencní formy studia tak i
pri kombinovaném a postgraduálním studiu. V praxi
je možné, že se student podílí na výzkumu i po
ukoncení studia, ale pak se obvykle jedná se o
zvláštní režim výzkumného úkolu. Na úkolech se
podílejí pedagogové všech zarazení (zamestnanec,
externista, práce na dohodu o provedení práce). V
praxi není možné, aby se na výzkumném úkolu
podílel pedagog který nemá v prubehu úkolu
vyrešen pracovne právní vztah k fakulte nebo již
tento vztah zanikl. - Cílem vytvárené aplikace je získat operativní
prehled o probíhajících projektech, evidenci již
dokoncených projektu, možnost kontrolovat
projekty z hlediska jejich casového prubehu
(každý typ projektu má stanoven termín zahájení a
maximální délku trvání) a dodržování dalších
stanovených pravidel (pravidla pro probíhající
projekty viz zvláštní zadání). Jedním z výstupu
aplikace by mela být možnost obeslat výzkumníky
dle vybraných statusu jejich projektu (termín
dokoncení ve skluzu, precerpání pridelených
financních prostredku, dotaz pri zmene pracovního
zarazení nebo ukoncení pracovne právního vztahu
pedagoga, dotaz na pokracování projektu pri zmene
nebo ukoncení formy studia studenty) a to jak
formou mailu tak i formou doporuceného dopisu.
16Všeobecné zadání RDS - príklad
- Zadání zvýraznení kandidáti entit
- Je treba vytvorit evidenci výzkumných úkolu
studentu a pedagogu naší vysoké školy. Na škole
probíhají výzkumné úkoly ruzné povahy. Jsou to
napríklad vnitrní granty, granty ministerstva
školství (MŠMT), bakalárské práce, diplomové
práce, postgraduální výzkumné úkoly. Na
výzkumných úkolech se podílejí jak studenti tak
pedagogové. Studenti se podílejí na výzkumných
úkolech jak v rámci prezencní formy studia tak i
pri kombinovaném a postgraduálním studiu. V praxi
je možné, že se student podílí na výzkumu i po
ukoncení studia, ale pak se obvykle jedná se o
zvláštní režim výzkumného úkolu. Na úkolech se
podílejí pedagogové všech zarazení (zamestnanec,
externista, práce na dohodu o provedení práce). V
praxi není možné, aby se na výzkumném úkolu
podílel pedagog který nemá v prubehu úkolu
vyrešen pracovne právní vztah k fakulte nebo již
tento vztah zanikl. - Cílem vytvárené aplikace je získat operativní
prehled o probíhajících projektech, evidenci již
dokoncených projektu, možnost kontrolovat
projekty z hlediska jejich casového prubehu
(každý typ projektu má stanoven termín zahájení a
maximální délku trvání) a dodržování dalších
stanovených pravidel (pravidla pro probíhající
projekty viz zvláštní zadání). Jedním z výstupu
aplikace by mela být možnost obeslat výzkumníky
dle vybraných statusu jejich projektu (termín
dokoncení ve skluzu, precerpání pridelených
financních prostredku, dotaz pri zmene pracovního
zarazení nebo ukoncení pracovne právního vztahu
pedagoga, dotaz na pokracování projektu pri
zmene nebo ukoncení formy studia studenty) a to
jak formou mailu tak i formou doporuceného
dopisu. - Doporucení pri sestavování seznamu kandidátu ve
fázi vytvárení obecného datového modelu pokud
možno ignorujte veškerá doporucení zadavatele,
která predjímají výsledek analýzy, tato
doporucení je možno vzít na vedomí, ale je velmi
nevhodné s nimi prímo pracovat, podobná
doporucení v textu podtržena, doporucení však
mohou obsahovat nové kandidáty
17Seznam kandidátu entit
- Krok 1 nezpracovaný seznam entit (dekompozice)
-
podíl pedagogu na úkolech zarazení
zamestnanec externista práce na dohodu o
provedení práce praxi není možné výzkumném
úkolu podílel pedagog vyrešen pracovne právní
vztah termín zahájení VÚ maximální délka
trvání VÚ stanovená pravidla (projektu) možnost
obeslat výzkumníky statusu projektu termín
dokoncení VÚ skluzu VÚ precerpání financních
prostredku VÚ zmena pracovního
zarazení ukoncení pracovne právního vztahu
pedagoga mailu doporucený dopis
výzkumné úkoly (VÚ) studenti pedagogové
vysoká škola škole výzkumné úkoly povaha
výzkumného úkolu vnitrní grant grant
ministerstva školství bakalárská
práce diplomová práce postgraduální výzkumný
úkol výzkumné úkoly studenti pedagogové studen
ti podíl na výzkumném úkolu prezencní forma
studia kombinované a postgraduální
studium student podíl na výzkumu ukoncení
studia obvykle jedná zvláštní režim VÚ
18Seznam kandidátu entit
- Krok 2 vyrazení kandidátu nesouvisejících s
probl. (analýza) -
podíl pedagogu na úkolech zarazení
zamestnanec externista práce na dohodu o
provedení práce praxi není možné výzkumném
úkolu podílel pedagog vyrešen pracovne právní
vztah termín zahájení VÚ maximální délka
trvání VÚ stanovená pravidla (projektu) možnost
obeslat výzkumníky statusu projektu termín
dokoncení VÚ skluzu VÚ precerpání financních
prostredku VÚ zmena pracovního
zarazení ukoncení pracovne právního vztahu
pedagoga mailu doporucený dopis
výzkumné úkoly (VÚ) studenti pedagogové
vysoká škola ? škole výzkumné úkoly povaha
výzkumného úkolu vnitrní grant grant
ministerstva školství bakalárská
práce diplomová práce postgraduální výzkumný
úkol výzkumné úkoly studenti pedagogové studen
ti podíl na výzkumném úkolu prezencní forma
studia kombinované a postgraduální
studium student podíl na výzkumu ukoncení
studia obvykle jedná zvláštní režim VÚ
19Seznam kandidátu entit
- Krok 3 ztotožnení kandidátu (analýza)
-
pracovní zarazení zamestnanec externista práce
na dohodu o provedení práce zmena pracovního
zarazení ukoncení pracovne právního vztahu
forma studia prezencní kombinované postgraduá
lní studium ukoncení studia Pravidla
vyplývající z analýzy v praxi není možné
výzkumném úkolu podílel pedagog vyrešen
pracovne právní vztah pokud student ukoncí
studium pak zvláštní režim ? stanovená pravidla
(projektu) Doposud nevyjasnené záležitosti ?
možnost obeslat výzkumníky ? možnost zaslání
mailu ? Zaslání Doporuceného dopisu
výzkumné úkoly (VÚ) povaha výzkumného
úkolu vnitrní grant grant ministerstva
školství bakalárská práce diplomová
práce postgraduální výzkumný úkol zvláštní
režim VÚ termín zahájení VÚ termín dokoncení
VÚ maximální délka trvání VÚ statusu VÚ skluz
VÚ podíl na výzkumném úkolu pedagogové studenti
studenti pedagogové financní prostredky
VÚ
20Klasifikace entit
- Krok 4 výber entit východisko pro datový
model (analýza) -
pracovní zarazení slabá ? reál.
ent. zamestnanec externista práce na dohodu o
provedení práce zmena pracovního zarazení
ukoncení pracovne právního vztahu forma studia
- silná reál. ent. prezencní kombinované postgr
aduální studium ukoncení studia Pravidla
vyplývající z analýzy v praxi není možné
výzkumném úkolu podílel pedagog vyrešen
pracovne právní vztah pokud student ukoncí
studium pak zvláštní režim ? stanovená pravidla
(projektu) Doposud nevyjasnené záležitosti ?
možnost obeslat výzkumníky ? možnost zaslání
mailu ? Zaslání Doporuceného dopisu
výzkumné úkoly (VÚ) silná reálná entita povaha
výzkumného úkolu vnitrní grant grant
ministerstva školství bakalárská
práce diplomová práce postgraduální výzkumný
úkol termín zahájení VÚ termín dokoncení
VÚ maximální délka trvání VÚ status VÚ ? skluz
VÚ ? podíl na výzkumném úkolu slabá abstr.
ent. podíl pedagogu podíl studentu Studenti
silná reálná entita Pedagogové silná reálná
entita financní prostredky VÚ - ???
21Vytvárení datového modelu (DM)
- Krok 5 stanovení entit základní krok tvorby
DM -
Definovali jsme tento seznam entit Výzkumné
úkoly (VÚ) Studenti Pedagogové Pracovní
zarazení Forma studia Podíl na výzkumném
úkolu Financní prostredky VÚ Nezapomenme, že nám
zustaly i otevrené zásadní problémy ke kterým
jsem doposud nezaujali stanovisko, k temto
problémum se vrátíme pozdeji Doposud
nevyjasnené záležitosti ? možnost obeslat
výzkumníky ? možnost zaslání mailu ? Zaslání
Doporuceného dopisu
22Vztahy entit zavedení pojmu a symbolu
Silná entita
Entita A
Entita B
Slabá entita
vztah
Entita A
Entita A
Entita B
n m
1 x
Entita A
Entita A
Entita B
1 0, n
n x
Entita A
Entita A
0 x
Self reference (unární vztah) 0, 1 n
Entita A
1 x
Entita A
Entita B
n 1
Entita A
Entita B
1 0, 1
23Vytvárení datového modelu (DM)
- Krok 6 analýza vztahu entit rekapitulace entit
Do tohoto okamžiku jsme definovali tento seznam
entit Výzkumné úkoly (VÚ) Studenti Pedagogové Pra
covní zarazení Forma studia Podíl na výzkumném
úkolu Financní prostredky VÚ
Úkol 2 nakreslete schéma známých entit a
pomocí známých symbolu vyjádrete vztahy mezi
entitami
24Vztahy entit jedna z možností rešení
Finance VÚ ?
Výzkumný úkol
Forma studia
Pracovní zarazení
?
Participace na VÚ ?
Student
Pedagog
?
Dotaz 1 jaké by byly nevýhody prímého vztahu
Student ltgt VÚ ? Dotaz 2 proc není vztah
Student ltgt Part. VÚ typu 1 n ? Dotaz 3
najdete nejaké zjevné vady stanoveného datového
modelu ? (pokud nikoli, pak na ne
možná prijdeme spolecne pozdeji)
25Implementace entity obecné vlastnosti relace dat
Relace - Student
Atribut
Záhlaví (Header)
1 2 3 4
Telo (Body)
Vektor hodnot (Tuple)
Skalární hodnota
1 2 3 4
Kardinalita
Stupen
26Implementace entity implementace relace datv
MS SQL Server a MS Access
Množina záznamu / Množina výsledku / Tabulka -
Student
Pole hodnot (Atribut)
Záhlaví (Caption)
Množina záznamu / množina výsledku
Záznam
Hodnota
27Oponentura datového modelu z hlediska normalizace
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Participace na VÚ
Student
Pedagog
Pracovní poznámka nutno doplnit pracovne
právní vztah a studium
28Úprava datového modelu na základe oponentury
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Studium
Pracovne právní vztah
Participace na VÚ
Student
Pedagog
29Užitecné otázky
V okamžiku kdy se zdá, že máme vyhovující a
správný model enit je vždy namíste položit si
následující otázky Nechybí v našem modelu neco
podstatného ? tj. nezapomneli jsme zcela
(vzhledem k zadání) na nejakou entitu nebo
vztah Je náš model správne navržen ? tj. je
náš model verohodný, dostatecne podpisující
realitu nebo daný problém a je také zároven
dostatecne obecný tj. nezávislý na našem
subjektivním (nebo také zaujatém, predpojatém)
úhlu pohledu Je náš model normalizovaný z
hlediska teorie RD ? tj. je náš model
verohodný, dostatecne podpisující realitu nebo
daný problém a je také zároven dostatecne obecný
tj. nezávislý na našem subjektivním (nebo také
zaujatém, predpojatém) úhlu pohledu obsahuje
informaci o všeobecné vlastnosti,
kterou Duležitá filozofická poznámka V
reálném svete neexistuje neco jako zcela
optimální nebo objektivne správný návrh databáze.
Existují však ruzné vyzkoušené a doporucované
postupy které omezují nebo vylucují základní a
pozdeji neodstranitelné vady návrhu.
30Užitecné otázky Chybí nám NECO ?
Jak na rešení této otázky U velkého a
komplexního projektu budeme postupovat podle
standardu UML analýzy popis procesu procesní
analýza definice aktoru vymezení úcastníku
(hrácu) procesu definice rolí vymezení úloh
aktoru vyplyne definice enit definice
programových nebo datových entit definice
vztahu entit definice vztahu a komunikací defini
ce pravidel implementace entit implementace
aplikacních a databázových struktur
(tríd) implementace vztahu entit implementace
obchodních pravidel atd. atp. V prípade
použití standardu UML (Unified Modeling Language)
je už samo korektní použití daných Case
prostredku cástecnou zárukou úplnosti a
správnosti navrženého modelu U menšího
projektu se musíme spolehnout zejména na vlastní
kritický úsudek Úkol 5 pokuste se v zadání
najít informaci, která signalizuje, že jsme
zapomneli na celou oblast, kterou je potreba
modelováním rešit
31Všeobecné zadání RDS - príklad
- První neupresnené zadání
- Je treba vytvorit evidenci výzkumných úkolu
studentu a pedagogu naší vysoké školy. Na škole
probíhají výzkumné úkoly ruzné povahy. Jsou to
napríklad vnitrní granty, granty ministerstva
školství (MŠMT), bakalárské práce, diplomové
práce, postgraduální výzkumné úkoly. Na
výzkumných úkolech se podílejí jak studenti tak
pedagogové. Studenti se podílejí na výzkumných
úkolech jak v rámci prezencní formy studia tak i
pri kombinovaném a postgraduálním studiu. V praxi
je možné, že se student podílí na výzkumu i po
ukoncení studia, ale pak se obvykle jedná se o
zvláštní režim výzkumného úkolu. Na úkolech se
podílejí pedagogové všech zarazení (zamestnanec,
externista, práce na dohodu o provedení práce). V
praxi není možné, aby se na výzkumném úkolu
podílel pedagog který nemá v prubehu úkolu
vyrešen pracovne právní vztah k fakulte nebo již
tento vztah zanikl. - Cílem vytvárené aplikace je získat operativní
prehled o probíhajících projektech, evidenci již
dokoncených projektu, možnost kontrolovat
projekty z hlediska jejich casového prubehu
(každý typ projektu má stanoven termín zahájení a
maximální délku trvání) a dodržování dalších
stanovených pravidel (pravidla pro probíhající
projekty viz zvláštní zadání). Jedním z výstupu
aplikace by mela být možnost obeslat výzkumníky
dle vybraných statusu jejich projektu (termín
dokoncení ve skluzu, precerpání pridelených
financních prostredku, dotaz pri zmene pracovního
zarazení nebo ukoncení pracovne právního vztahu
pedagoga, dotaz na pokracování projektu pri zmene
nebo ukoncení formy studia studenty) a to jak
formou mailu tak i formou doporuceného dopisu.
32Všeobecné zadání RDS - príklad
- První neupresnené zadání
- Je treba vytvorit evidenci výzkumných úkolu
studentu a pedagogu naší vysoké školy. Na škole
probíhají výzkumné úkoly ruzné povahy. Jsou to
napríklad vnitrní granty, granty ministerstva
školství (MŠMT), bakalárské práce, diplomové
práce, postgraduální výzkumné úkoly. Na
výzkumných úkolech se podílejí jak studenti tak
pedagogové. Studenti se podílejí na výzkumných
úkolech jak v rámci prezencní formy studia tak i
pri kombinovaném a postgraduálním studiu. V praxi
je možné, že se student podílí na výzkumu i po
ukoncení studia, ale pak se obvykle jedná se o
zvláštní režim výzkumného úkolu. Na úkolech se
podílejí pedagogové všech zarazení (zamestnanec,
externista, práce na dohodu o provedení práce). V
praxi není možné, aby se na výzkumném úkolu
podílel pedagog který nemá v prubehu úkolu
vyrešen pracovne právní vztah k fakulte nebo již
tento vztah zanikl. - Cílem vytvárené aplikace je získat operativní
prehled o probíhajících projektech, evidenci již
dokoncených projektu, možnost kontrolovat
projekty z hlediska jejich casového prubehu
(každý typ projektu má stanoven termín zahájení a
maximální délku trvání) a dodržování dalších
stanovených pravidel (pravidla pro probíhající
projekty viz zvláštní zadání). Jedním z výstupu
aplikace by mela být možnost obeslat výzkumníky
dle vybraných statusu jejich projektu (termín
dokoncení ve skluzu, precerpání pridelených
financních prostredku, dotaz pri zmene pracovního
zarazení nebo ukoncení pracovne právního vztahu
pedagoga, dotaz na pokracování projektu pri zmene
nebo ukoncení formy studia studenty) a to jak
formou mailu tak i formou doporuceného dopisu.
33Užitecné otázky Chybí nám NECO ?
Odpoved Zrejme ano, chybí nám adresa bežná
pro korespondenci adresa elektronická Má neco
spolecného bežná adresa s elektronickou ? nic
podstatného jedná se o dve ruzné kategorie
popisující zcela odlišné veci v reálném svete,
mají pouze podobný název Zajímavost z hlediska
návrhu Adresa (bydlište) je jedním z nejvetších
analytických oríšku, který v žádném reálném
systému není vyrešen ani zcela obecne ani zcela
správne. Príklady toho co je velmi težké
rozhodnout Je skalárním údajem celá adresa -
muže být, ale j to velmi nepraktické Je
skalárním údajem údaj typu Date/Time Co je
správným císlem popisným Jaké telefony
zahrnout a jak je kategorizovat a jaký je
napríklad vztah císla pevné linky nebo faxu k
adrese (tj. jedná se o atribut osoby nebo
místa) Jakou konvenci zavést pro smerové
císlo atd. atp.
34Úprava datového modelu na základe úvahy
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Studium
Pracovne právní vztah
Participace na VÚ
Student
Pedagog
Adresa bydlište
Elektr. adresa
Úkol 6 navrhnete vztahy
35Úprava datového modelu na základe úvahy
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Studium
Pracovne právní vztah
Participace na VÚ
Student
Pedagog
Adresa bydlište
Elektr. adresa
Dotaz jaké výhody a nevýhody mají vztahy 1N a
11, 10,n, 10,1, mužeme si v praxi vubec
dovolit vztahy bez možnosti nuly
36Užitecné otázky Je náš model SPRÁVNE navržen ?
Odpoved Zcela jiste NE (z minula již víme, že
prakticky není možno dosáhnout pozitivní odpovedi
na tuto otázku) Zkusme to tedy jinak Je model
obecný ? Na tuto otázku v tomto okamžiku ješte
nedokážeme odpovedet, bude nutno dukladne
prozkoumat jednotlivé entity a zjistit 1. zda
se nám nekteré entity neprekrývají tj. zda nejsou
fakticky totožné 2. zda se nám nekteré entity
nerozpadají tj. zda jedna zdánlivá entita není
vlastne více entitami Poznámka tento typ
úvahy již jsme intuitivne nekolikrát udelali (viz
napr. rozpad formy studia a studia apod.) gt
musíme zkoumat navržené entity na hlubší úrovni
jejich atributu Je model optimální z hlediska
implementace vztahu ? Podíváme-li se podrobne na
náš graf vztahu entit, zjistíme vztahu
daného typu / typ vztahu je více než n-tic
entit daného typu vztahu (prosím
spocítejte) vztahy se kríží navržené vztahy
jsou nejednoznacné (násobné) Poznámka obe
tyto skutecnosti mohou naznacovat že je v rámci
modelu nutné další zobecnení, ale nemusí tomu tak
nutne být, jedná se o indicie a na jejich základe
je to nanejvýš pravdepodobné
37Datový model
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Studium
Pracovne právní vztah
Participace na VÚ
Student
Pedagog
Adresa bydlište
Elektr. adresa
Úkol 7 spocítejte vztažené entity, spocítejte
vztahy a výsledek vzájemne porovnejte (nápoveda
vztahy unární, binární, ternární)
38Užitecné otázky Je náš model SPRÁVNE navržen ?
Jak exaktne postupovat pri overování datového
modelu Nejdríve si budeme muset osvojit
následující terminologii redundance
(nadbytecnost) relací dat bezztrátová
dekompozice relací dat kandidátní klíc relace
dat primární klíc relace dat normalizace relací
dat normální (normalizovaná) forma relace
dat normalizovaný tvar relace dat 1 6
typu Jednotlivé termíny se pokusím vysvetlit na
príkladech Pro zacátek predpokládejme, že máme
hypotetickou relativne složitou množinu (relaci)
neusporádaných dat pro názornost si napríklad
predstavte excelovskou tabulku která obsahuje
následující údaje (atributy)
39Trocha optimalizacní teorie skalární hodnota,
redundance
skalární hodnota jedinecná hodnota, práve jedna
hodnota (informace) redundance nadbytecnost
hodnot (informace), hodnota která se v relaci
opakuje bezztrátová dekompozice metoda
optimalizace dat, jejímž cílem je rozdelení
relace dat, která obsahuje datové redundance
na více relací dat, které obsahují méne
datových redundancí nebo žádné datové
redundance a to bez ztráty informace Úkol 8
najdete bunku relace dat, která neobsahuje
(relativne k jiným hodnotám daného atributu)
skalární informaci tj. jedinecnou
hodnotu Úkol 9 najdete bunky relace dat,
které obsahují redundantní (nadbytecná, zdvojená,
n-násobná) data Úkol 10 rozdelte príklad na
více relací dat, tak, aby výsledné relace
neobsahovaly žádná redundantní data se zachováním
veškeré informace
40Trocha optimalizacní teorie klíc relace dat
kandidátní klíc atribut (jednoduchý klíc) nebo
skupina atributu (složený klíc), která v rámci
dané relace dat jednoznacne definuje konkrétní
vektor dat (záznam) jinak receno v dané relaci
dat se nesmí vyskytnout více jak jeden záznam,
s urcitou kombinací hodnot kandidátního klíce
(tj. predpokladem kandidátního klíce je
jednoznacnost) relace dat muže obsahovat více
kandidátních klícu primární klíc je zvolený z
hlediska implementace dat ireducibilní
kandidátní klíc, který je v implementaci více
vzájemne korelujících relací dat využíván jako
hlavní identifikátor urcité relace dat umelý
klíc je umele vytvorený kandidátní nebo primární
klíc objektivní potreba umelého klíce vzniká
zejména v situaci, kdy prirozený klíc je príliš
složitý nebo potencionálne nejdnoznacný
Doporucení obecne je vhodné vždy nejdríve
hledat reálný KK nebo PK, teprve pokud vyloucíme
všechny možnosti reálného klíce je vhodné
pristoupit k definici umelého klíce, pozor však
na skutecnost, že prakticky použitelné kandidátní
klíce se v reálném svete vyskytují pomerne
zrídka Úkol 11 ve vašem príkladu rozpadu
puvodní datové relace urcete všechny možné
kandidátní klíce
41Trocha optimalizacní teorie funkcní závislost
dva atributy jsou funkcne závislé tehdy, pokud
jeden urcující atribut vyjadruje identitu vektoru
dat (tj. jedná se o kandidátní klíc) a jiný
(funkcne závislý) atribut, který již nemusí být
jednoznacný je funkcne urcen urcujícím
atributem. brrrr. Tohle urcite není
možno si zapamatovat a nejedná se ani o presnou
definici daného jevu. Presná definice toto jevu
by se musela opírat o matematickou teorii množin
(reflexivita, transitivita). Nicméne o funkcní
závislosti je potreba se zmínit alespon jako o
jevu (bez bližšího zkoumání) a to z toho duvodu,
že na tomto jevu jsou v zásade vystaveny moderní
databáze. Úkol 12 pokuse si predstavit a
osvojit predstavu funkcní závislosti atributu
na príkladu
42Šestero prikázání RD 1. Normální forma
Normalizace instantní doporucení jak
postupovat pri vytvárení optimálního
datového modelu 1. Normální forma datovou
relaci je možno oznacit za 1NF, pokud jsou
všechny její atributy definovány nad skalárními
obory hodnot jinými slovy je nutno vyloucit
veškeré neskalární hodnoty POZOR! urcení
jednotlivosti je v praxi casto mnohem
obtížnejší než se na první pohled zdá, viz
napríklad ruzné syntetické kódy, konvence
apod. datovou relaci je možno oznacit za 1NF,
pokud neobsahuje tzv. opakované atributy
(skupiny hodnot) tj. atributy kterých muže být
v praxi n., ale model relace dat pocítá pouze s
omezeným poctem opakování POZOR! v príkladu
jsem použil opakování, které je sice teoreticky
neprípustné, ale v praxi je velmi casto a v
podstate oprávnene používáno jedná se o klasický
príklad rozporu teorie a praxe presto je
pravidlo o opakování velmi užitecným pravidlem a
v jiných prípadech platí casto témer beze zbytku
Úkol 13 vyškrtnete z príkladu veškeré
neskalární hodnoty, které neodpovídají 1.
Normálnímu tvaru relace dat Úkol 14 oznacte v
príkladu veškeré opakující se atributy hodnoty,
které neodpovídají 1. Normálnímu tvaru relace
dat
43Šestero prikázání RD 2. Normální forma
2. Normální forma platí vzestupná hierarchie
normálních forme, tj. relace dat je v 2.
Normální forme tehdy, pokud je v 1. Normální
forme a zároven všechny její prvky jsou
závislé na celém kandidátním klíci (v
implementaci PK) jinými slovy je možno tento
požadavek charakterizovat jako prikázáníže
jedna relace dat nemá obsahovat popis více
ruzných entit Úkol 14 vypište relace dat,
které jsou 100 v 2.N.f. Úkol 15 vypište
relace dat, které jsou pravdepodobne v
2.N.f. Úkol 16 vypište relace dat, které
urcite nejsou v 2.N.f.
1
2
3
4
5
44Šestero prikázání RD 3. Normální forma
3. Normální forma platí vzestupná hierarchie
normálních forme, tj. relace dat je v 3.
Normální forme tehdy, pokud je v 2. Normální
forme a zároven všechny její neklícové
atributy jsou vzájemne nezávislé Úkol 17
predpokládejme, že se jedná o entitu student,
které atributy je treba urcite odstranit, aby
relace byla v 3.N.f., doporucení pokud mužete
volit mezi funkcne závislým atributem a urcujícím
atributem, vždy volte odstranení závislého
atributu Úkol 18 predpokládejme, že se jedná
o entitu student, které atributy je treba
pravdepodobne odstranit, aby relace byla v
3.N.f.
1
2
3
4
5
6
7
8
45Šestero prikázání RD 4.-6. Normální forma
Temito normalizovanými formami se zde nebudeme
zabývat, protože se týkají speciálních prípadu a
modelování složitých (a také relativne vzácných)
vztahu
46Ješte trocha teorie a pak už více praxe
Posledním duležitým termínem je INTEGRITA
dat. Integrita dat v obecné rovine je
formální správnost a vzájemná hodnotová
korespondence dat v databázi. Pro zajištení
datové integrity existuje více (ruzne
implementovaných) mechanizmu zajištení datové
integrity Integrita je následujících typu
Doménová integrita obor hodnot (souvisí s
datovými typy, nezamenovat !) Prechodová /
stavová i. definované stavy vektoru dat
Entitová integrita PK, constrainty, triggery
Referencní integrita FK cizí klíc (sirotci)
Transakcní integrita Datová integrita
Procedurální integrita triggery (Access nemá,
respektive velmi omezené)
47Trocha hloubání o NICEM
hodnota NULL
48Implementace databáze atributy
Analýza entit z hlediska atributu Definicní
atribut (ID) nemá vlastní význam, zajištuje
identifikaci Proprietální (vlastní)
atribut obsahuje skalární informaci o
prirozene vlastní vlastnosti entity z
hlediska reálného sveta Popisný (volný)
atribut obsahuje informaci o všeobecné
vlastnosti, kterou definoval tvurce aplikace,
k realite má více ci méne volný vztah Statutární
atribut obsahuje informaci o statusu sledovaném
z hlediska aplikace Úkol 19 pokuste se nalézt
a definovat dostatecný pocet atributu
jednotlivých sledovaných entit, tak aby v
dostatecné míre urcovaly základní vlastnosti
techto entit Úkol 20 u všech definovaných
atributu vyznacte jejich zarazení do jedné z
kategorií viz výše
49Hledání správných atributu definovaných entit
Úkol 21 spolecne se pokusíme navrhnout vhodné
atributy pro jednotlivé entity Úkol 22 u
navržených atributu navrhnete domény hodnot
Úkol 23 u navržených atributu navrhnete
omezení
50Úprava datového modelu na analýzy atributu
zobecnení modelu
Finance VÚ
Výzkumný úkol
Forma studia
Pracovní zarazení
Participace na VÚ
Studium
Pracovne právní vztah
Student
Pedagog
Partner
Adresa bydlište
Elektr. adresa
51Implementace databáze datové typy MS Access
Vybrané datové typy MS Access Autoincrement
samo-povyšující se císlo typu Long (-2109 -
2109 ) Integer / Int císlo typu Integer
(-3104 - 3104 ) Long císlo typu Long (-2109
- 2109 ) Number císlo s dvojitou
presností SmallInt malé celé císlo typu Integer
(cca 9999 - 9999) Float císlo s plovoucí
rádovou cárkou String textový retezec typu
Varchar Date dlouhé datum Money presný
financní formát Bit booleovské hodnoty True
/ False Memo neomezene dlouhý formátovaný
text Image binární data / obrázek URL URL
adresa a nekteré další. Omezení Null / No Null
Hodnota Null trístavová logika
(podrobneji dále)
52ANSI SQL
Pohádka o standardu který témer nikdo nedodržuje,
ale i presto se jedná o jeden z nejužitecnejších
standardu v oblasti IT o jazyku SQL Základ
jazyka SQL neprocedurální jazyk pro
množinovou správu dat relacních
databází Nástavby jazyka SQL T-SQL, PL SQL
obecne všechny procedurální rozšírení SQL Typy
dotazu SQL Dotaz pro náhled / zpracování
výsledku dat DDL dotaz vytvárecí dotaz DML
dotaz modifikacní dotaz
53DDL Data Definition Language vytvárecí dotazy
Dotazy DDL slouží k vytvárení, rušení a
modifikaci datových struktur datových
omezení indexu pohledu triggeru
(spouští) procedur pro manipulaci s daty
54DDL Data Definition Language vytvárecí dotazy
CREATE TABLE database_name. owner .
owner. table_name ( lt column_definition
gt column_name AS computed_column_expres
sion lt table_constraint gt
CONSTRAINT constraint_name
PRIMARY KEY UNIQUE ,...n ) lt
column_constraint gt CONSTRAINT
constraint_name NULL NOT NULL
PRIMARY KEY UNIQUE
FOREIGN KEY REFERENCES
ref_table ( ref_column ) ON
DELETE CASCADE NO ACTION
ON UPDATE CASCADE NO ACTION
55DDL Data Definition Language vytvárecí dotazy
ALTER TABLE ALTER TABLE table ALTER
COLUMN column_name new_data_type (
precision , scale ) NULL NOT
NULL ADD lt
column_definition gt column_name AS
computed_column_expression ,...n
WITH CHECK WITH NOCHECK ADD
lt table_constraint gt ,...n
DROP CONSTRAINT
constraint_name COLUMN column
,...n CHECK NOCHECK CONSTRAINT
ALL constraint_name ,...n
ENABLE DISABLE TRIGGER
ALL trigger_name ,...n lt
column_definition gt column_name
data_type DEFAULT constant_expression
WITH VALUES IDENTITY (seed ,
increment ) NOT FOR REPLICATION
ROWGUIDCOL COLLATE lt
collation_name gt lt column_constraint gt
...n
. lt column_constraint gt
CONSTRAINT constraint_name NULL NOT
NULL PRIMARY KEY UNIQUE
CLUSTERED NONCLUSTERED
WITH FILLFACTOR fillfactor
ON filegroup DEFAULT
FOREIGN KEY
REFERENCES ref_table ( ref_column
) ON DELETE CASCADE NO
ACTION CHECK NOT
FOR REPLICATION (
logical_expression ) lt table_constraint gt
CONSTRAINT constraint_name
PRIMARY KEY UNIQUE ( column
,...n ) FOREIGN KEY
( column ,...n )
REFERENCES ref_table ( ref_column
,...n ) ON DELETE CASCADE
NO ACTION DEFAULT
constant_expression FOR column
WITH VALUES CHECK NOT FOR
REPLICATION ( search_conditions )
56DDL Data Definition Language další vytvárecí
dotazy - strucne
CREATE INDEX CREATE TRIGGER CREATE
PROCEDURE CREATE VIEW DROP
INDEX, TRIGGER, PROCEDURE. atd.
57DML Data Modification Language aktualizacní
dotazy
UPDATE INSERT. DELETE. Aktualizacní
dotazy slouží k zmenám množin dat
58DML Data Selection Language výberové dotazy
SELECT HAVING. UNION.
ORDER. GROUP. Aktualizacní dotazy
slouží k zmenám množin dat
59Implementace databáze
V tuto chvíli již víme dost na to, abychom
se mohli pokusit implementovat reálný príklad
funkcní relace dat na základe našeho
príkladového zadání. Úkol 21 pokuste se
pomocí rádkových vytvárecích dotazu postupne
implementovat veškeré potrebné datové entity,
veškeré vytvárecí dotazy si postupne ukládejte
jako vzestupne ocíslované dotazy, v první fázi
nerešte otázky datové integrity a vazeb Úkol
22 u definovaných entit stanovte a
implementujte PK Úkol 23 u definovaných
entit stanovte a implementujte FK Úkol 24
implementujte potrebné indexy Úkol 25 v
prípade potreby pomocí vizuálního návrháre
doplnte hodnotová omezení Úkol 26 do
realizovaných datových struktur zadejte urcitý
vzorek reálných dat