Upload
nura
View
27
Download
3
Embed Size (px)
DESCRIPTION
DBI007. Organizace a zpracování dat I. Prof. RNDr. Jaroslav Pokorný, CSc. RNDr. Michal Žemlička. Zdroje. J. Pokorný, M. Žemlička: Základy implementace souborů a databází , Karolinum, Praha, 2004 J. Pokorný: Základy implementace souborů a databází , Karolinum, Praha, 1997. - PowerPoint PPT Presentation
Citation preview
Organizace a zpracování dat I
Prof. RNDr. Jaroslav Pokorný, CSc.
RNDr. Michal Žemlička
DBI007
Zdroje
• J. Pokorný, M. Žemlička: Základy implementace souborů a databází, Karolinum, Praha, 2004
• J. Pokorný: Základy implementace souborů a databází, Karolinum, Praha, 1997.
• http://kocour.ms.mff.cuni.cz/testy/pokorny• http://kocour.ms.mff.cuni.cz/~zemlicka/
vyuka/DBI007
Proč sem chodit?
• Základy efektivní práce s persistentními daty
• Poznání světa, kde se setkává teorie s praxí – aneb jak o iluze přijít ne příliš bolestivě
Typické úlohy, které budeme umět lépe řešit
• knihovní agenda
• rezervace místenek či letenek
• nabídkové katalogy
• sklad
• …
Cíle
• zajistit „optimální“ provoz souborů
• zajistit „optimální“ uživatelské rozhraní
Neboli:
zajistit, aby námi vytvářené aplikace byly dostatečně efektivní při zachování dalších dobrých vlastností
Zpracování dat
organizace dat na vnějších pamětech pro efektivní zpracování
techniky organizace dat ve formě souborů
interpretace dat uživatelem
konceptuální model, dotazovací jazyky
vrstvy struktur + zobrazení mezi nimi
Teze
• klasické techniky nepostačují pro zpracování velkých objemů dat a netriviální dotazy
• nelze zajistit optimálnost provozu souborů ve všech aspektech
Ať žijí kompromisy!!
Hromadné zpracování dat (HZD)
• Založeno na souborech a specializovaných aplikacích provádějících dílčí manipulace se soubory
• Využívá zejména statické organizace souborů• Typicky data zpracovávána v dávkách• Minimální nároky na zdroje• Robustní – aplikace je většinou možné po selhání
restartovat bez poškození zpracovávaných dat
Nevýhody HZD
• Redundance a nekonzistence dat• Obtížnost přístupu k datům• Izolace dat• Problémy s více uživateli• Problémy s integritou dat
• Nízké prostředky pro vytváření vazeb mezi záznamy souborů
Záznam
• Logický– kolekce logicky souvisejících položek – hodnot
atributů
• Fyzický – logický záznam doplněný o oddělovače,
definice délek, zarážky, …– Délka fyzického záznamu, R
Typ záznamu
- dán jmény a doménami atributů
Aj: dom(Aj) A1:D1,…,An:Dn
Soubor
• Identifikovaná kolekce logicky souvisejících záznamů
Pozor!
Je to kolekce a ne množina, neboť v souboru může být více totožných záznamů.
Homogenní soubor
Hodnoty Primitivní typy
Deklarace S(A1:D1,…,An:Dn)
Obsahuje pouze záznamy jediného typu
Nehomogenní soubor
• Opak homogenního souboru – obsahuje buď záznamy různých typů, záznamy se složitější strukturou, nebo záznamy různých délek.
Klíč
• Klíč souboru je množina atributů Ai1..Aik, kn, takové, že k-tice atributů <a1..ak> (klíče záznamu) jednoznačně identifikují záznamy.
• Vyhledávací klíč – atribut (či množina atributů), k jehož hodnotě vyhledáváme množinu záznamů obsahujících pro daný atribut právě uvedenou hodnotu
Typy vyhledávacích klíčů
• Hodnotové – hodnoty z dom(Ai)
• Hašované – algoritmická transformace hodnot
• Relativní – udána pozice od začátku souboru
Operace nad soubory
• INSERT – vložení záznamu do souboru• DELETE – rušení záznamu v souboru• UPDATE – změna některých položek
záznamu v souboru• Aktualizace souboru = posloupnost operací
INSERT, DELETE a UPDATE • FETCH – získání záznamu ze souboru do
vnitřní paměti
Fyzický a logický záznam
• Logický záznam – množina atributů• Fyzický záznam (délky R) – fyzická
reprezentace logického záznamu na médiu– Může obsahovat pomocná data navíc
• Fyzické záznamy se ukládají do fyzických stránek (bloků – jejich velikost značíme B)– Bloky jsou minimální entitou přenášenou mezi
primární a sekundární pamětí
Blokovací faktor, blokování
• Blokovací faktor (b) – poměr B/R• Blokování (umísťování záznamů do bloků);
říkáme, že záznamy jsou: – Neblokované (b=1, B=R)
– Blokované (b > 1)
– Přerostlé (b < 1)
• Pro implementaci je důležité, zda se R mění, či nikoliv – budeme předpokládat, že se nemění
Schéma organizace souboru
• popis logické paměťové struktury, do níž může být původní soubor zobrazen spolu s algoritmy provádějícími operace nad touto strukturou
• může popisovat více logických souborů svázaných dohromady
• primární soubor – soubor obsahující uživatelská data; N – počet záznamů v něm
Fyzická úroveň
• Abstrakce fyzického zařízení– fyzické schéma souboru– fyzický soubor
• Reálné fyzické zařízení– implementační schéma souboru
Abstrakce v přístupu k souborům
schéma organizace souboru
fyzické schéma souboru
implementační schéma
úroveň typu
logické soubory
fyzické soubory
implementace fyzických souborů
úroveň výskytu
Operace SOS
• operace nad soubory (insert, delete, update)• BUILD – vytvoření struktury• REORGANIZATION – uvedení SOS do
nového výchozího stavu• Stav souboru S (S*; extenze souboru S) –
podoba SOS mezi dvěma ukončenými aktualizacemi
• CLOSE – aktualizuje některá data o souboru
Souborové systémy
• podpora práce se soubory na úrovni základního SW
• uchovávají metadata o souborech
• umožňují správu souborů včetně mapování souborů na médium
Dotazy nad soubory
• dotaz nad schématem souboru S – jakákoliv totální funkce vyjádřitelná programem definovaná nad množinou US, která každému stavu přiřadí odpověď – zpravidla množinu záznamů
• hity – prvky odpovědi v případě dokumentů
Vícerozměrné/ortogonální dotazy
• dotaz na úplnou shodu – zadány hodnoty všech atributů
• dotaz na částečnou shodu – zadány hodnoty jen některých atributů
• dotaz na úplnou intervalovou shodu – zadán interval hodnot pro každý z atributů
• dotaz na částečnou intervalovou shodu – zadány intervaly pro vybrané atributy
Další operace
• READ ENTIRE FILE – čtení celého souboru– sériově – podle zadaného uspořádání– sekvenčně – podle fyzického uspořádání
záznamů v souboru
Vyváženost struktury
• omezení délky cesty ve struktuře při vyhledání záznamu (např. O(log M), kde M je počet logických stránek)
• rovnoměrná naplněnost stránek • faktor naplnění stránky (0<<1)
– někdy se označuje průměrné naplnění stránek
• SOS splňující obě podmínky – dynamické; ostatní – statické