Zpracování báze dat
Doc. Dr. Vladimír Homola, Ph.D.
Detailní popisy postupů, metod a nástrojů podaný v předchozích kapitolách stojí v popředí zájmu těch, kdo své databáze sami budují a udržují. Pro uživatele, které již vytvořené báze dat používají jako zdroj informací, mají význam ilustrační, upřesňující pohled uživatelů na konstrukci bází dat, a významným způsobem ulehčují jejich komunikaci s bází dat při formulaci svých požadavků.
Tato kapitola je úvodní kapitolou do rozsáhlé problematiky práce s bázemi dat "výstupním" směrem. Z hlediska takového způsobu zpracování existujících dat lze uživatele rozdělit na dvě skupiny:
V současné době je zřetelně vidět tendence implementovat dotazovací jazyky (které jsou nutně formalizované, se svou syntaxí a sémantikou) do programovacích jazyků. Tak je tomu např. v novějších systémech s programováním v xBase, které jako rovnocenné syntaktické kategorie používají (alespoň nejdůležitější) příkazy SQL. Podrobněji právě toto rozebírají dvě následující kapitoly.
Tato práce se nezabývá programováním jako takovým, proto jsou informace k této problematice podány pouze schematicky.
Programovací jazyk obsahuje dvě základní třídy nástrojů: popisy a příkazy. Pomocí popisů (také deklarací) programátor popisuje objekty, nad kterými budou pracovat příkazy. Každá z těchto tříd má relativně samostatný popis syntaxe a sémantiky v daném jazyce. Proto se často vytýká zvlášť jazyk pro popis dat a jazyk pro práci s daty.
Za nejjednodušší "jazyk" by mohla být považována pouhá tabulka popisu dat, informující tabelární formou o souborech, jejich polích, atributech polí, indexech a vazbách.
Komplexní jazyk pro popis (logické struktury) dat musí plnit následující funkce:
Jako příklad může být uveden jazyk DL/1 firmy IBM. Byl používán i na počítačích řady EC, u nás jako součást systému DOS počítače EC-1026.
Základní konstrukcí tohoto jazyka je strom. Mezi stromy mohou být logické vazby, listy stromů jsou zpravidla segmenty. Odkazy mohou být vertikální (rodič - dítě) nebo horizontální (sourozenci). Tento jazyk dovoluje popsat logické i fyzické uložení. Jsou k disposici hierarchické přístupové metody, a to sekvenční, indexový i přímý.
Jednoduchý příklad popisu dat v DL/1:
DBD NAME=VRSTVY, ACCESS=LOGICAL SEGM NAME=SOUVRSTVI, SOURCE=(P1, P2, ... ) SEGM NAME=VRSTVA, PARENT=SOUVRSTVI, SOURCE=(Q1, Q2, ... ) SEGM NAME=TEKTONIKA, PARENT=VRSTVA, SOURCE=(R1, R2, ... ) SEGM NAME=VZOREK, PARENT=VRSTVA, SOURCE=(S1, S2, ... ) ... DBDEND
Pomocí něj aplikační programátor určuje, co se má s daty, popsanými pomocí jazyku pro popis dat, při zpracování stát. Jazyk musí umožňovat
Ve shora uvedeném jazyce DL/1 tvoří tento jazyk např. následující příkazy:
GU VRSTVY, TEKTONIKA, PORUCHA (TYP='POKLES')
dodá první segment vrstvy, tektoniky a poruchy, která jest poklesem,
GN PORUCHA
dodá následující poruchu (jakoukoliv),
INSRT VRSTVA (Q1=..., Q2=..., ... )
vloží za právě přečtenou vrstvu další vrstvu.
Přestože zvláště ve starších systémech existují dotazovací jazyky na úrovni uživatele s oddělenými částmi popisu dat a popisu zpracování obdobně jako v případě programátorském, v novějších preferovaných dotazovacích jazycích jsou obě části obsaženy v jediné konstrukci.
Tak tomu je např. v systému IMS, který firma IBM začleňovala do "velkých" systémů OS a který nazvala IQF (Interactive Query Facility). Tento jazyk má dvě charakteristické vlastnosti:
Příkladem dotazu uživatele pomocí IQF je např. tento dotaz:
QUERY VRSTVA, TEKTONIKA, PORUCHA WHEN TYP='POKLES' LIST X, Y, SMER LIMIT 5 END
který zajistí výpis informací o souřadnicích a směru prvních pěti poklesů.
V současné době je jedním z nejrozšířenějších jazyků pro zpracování na úrovni uživatele jazyk označovaný SQL. Protože se stal poměrně obecným (z hlediska implementace v různých operačních systémech) a kombinuje programátorské i uživatelské možnosti, je mu věnována samostatná kapitola.
Rev: 6 / 2007