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.

Zpracování na úrovni programu

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.

Jazyk pro popis dat

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

Jazyk pro zpracování dat

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.

Zpracování na úrovni uživatele

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