Organizace a zpracování dat I 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. 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í
vrstvy struktur + zobrazení mezi nimi Zpracování dat organizace dat na vnějších pamětech pro efektivní zpracování interpretace dat uživatelem techniky organizace dat ve formě souborů 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 Nízké prostředky pro vytváření vazeb mezi záznamy souborů 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ý Fyzický 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
dán jmény a doménami atributů 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ů.
Obsahuje pouze záznamy jediného typu 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í Reálné fyzické 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 logické soubory fyzické schéma souboru fyzické soubory implementace fyzických souborů implementační schéma úroveň typu ú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é