Zpracování relačních databází v prostředí Windows

Doc. Dr. Vladimír Homola, Ph.D.

Úvod

Při vývoji databázových aplikací je evidentně nutné se seznámit s databázovým prostředím, které poskytuje daný operační systém (primitivní případ, kdy vývojář sám programuje i fyzické uložení dat, neuvažujeme). Tento článek podává základní informace o zpracování databází v prostředí Microsoft Windows a v prostředích z něj dostupných.

Firma Microsoft si libuje v pojmu databázový stroj (Database Engine). V prostředí Windows lze zpracovat především relační databáze formátu Microsoft, a to pomocí tzv. Tryskového (berte s velkou rezervou!) Databázového Stroje Microsoftu (Microsoft Jet Database Engine). Dále lze tento stroj obejít a zpracovat jakkoliv organizované databáze přímo jinými "stroji" (i relační databázi Microsoftu) pomocí tzv. ODBC (Open Database Connectivity); v tomto případě však musí být v systému nainstalován příslušný ODBC driver (poskytovatel přístupu, potažmo onen jiný "stroj"), např. dBase, Paradox aj.

Protože formáty datových zdrojů mohou být různé a protože je žádoucí, aby uživatel ke všem přistupoval pokud možno stejně, poskytuje Microsoft jako jednotící element objekt DBEngine, který stojí na vrcholu databázové objektové hierarchie. Ten - s jistým zjednodušením - vypadá takto:

 

 DBEngine
   Workspaces
     Workspace
       Connections
         Connection
       Databases
         Database
Errors
Error

 

Na vrcholu stojí, jak již bylo řečeno, objekt DBEngine; jeho instance je jediná a vše řídí. Především obsahuje kolekci Workspaces - "pracovních prostorů". Každý prvek této kolekce, objekt Workspace, představuje jedno pojmenované datové "sezení", datovou relaci (session) pro nějakého uživatele. Každý objekt Workspace obsahuje kolekci Connections datových spojení (Connection) a kolekci Databases vlastních datových zdrojů, databází (Database).

Při kterékoliv operaci v databázovém prostředí může vzniknout jedna nebo více chyb. Proto objekt DBEngine obsahuje kolekci Errors. Při vzniku chyb je do kolekce zařazeno tolik objektů třídy Error, kolik chyb vzniklo. Aplikace pak může všechny chyby rozebrat a patřičně na ně reagovat.

Databázová aplikace tedy

a už jede po datech.

Firma Microsoft vytvořila pro běžné uživatele Windowsů jednu velkou databázovou aplikaci a prodává ji v rámci Microsoft Office pod názvem Access. Tato aplikace pracuje přesně tak, jak je uvedeno shora. Používá všechny vyjmenované objekty, jejich vlastnosti a metody. Access je aplikace pro komplexní zpracování datových zdrojů, od jejich vytvoření, naplnění, aktualizaci - až po výstupy, údržbu databází atd. Využívá k tomu zmíněných vlastností a metod uvedených objektů, ale také svých vlastních akcí. Tyto akce jsou jakýmsi "nadstandardem", který Access přináší běžnému uživateli navíc ke standardnímu databázovému prostředí systému. Spuštěný pccess jako takový je sám instancí třídy Aplikace Accessu a zmíněné akce jsou realizovány jako metody objektové třídy Access Application.

Je tedy evidentní, že pro rozumnou tvorbu databázové aplikace (i pro pochopení aplikací hotových) je zapotřebí se seznámit s metodami a vlastnostmi především následujících objektových tříd:

Právě to je obsahem tohoto článku.

Článek se zabývá především objektem DAO (Data Access Object); nezabývá se přímo ani RDO (Remote Data Object) ani ADO (ActiveX Data Object). Dle autorovy zkušenosti je však zvládnutí informací DAO nutné pro zvládnutí např. ADO, naopak ADO se znalostmi o DAO je už celkem hračkou. Dále se článek omezuje na stroj Microsoft Jet a tedy na relační model databází; nezabývá se ODBCDirect ani jinými modely databází.

Vše je navíc konkrétně předváděno použitím jazyka Basic ve verzi "pro aplikace" (VBA), na který uživatel dnešních Windows narazí kamkoliv myškou zašmejdí, tj. skoro všude.

Teoretický základ

Databázové prostředky poskytované v prostředí Microsoft Windows jsou založeny na pojmu relačních databází. Pro zájemce je zde připravena kapitola o teoretickém základu relačních databází. Pro běžné čtenáře není bezpodmínečně nutná. V dalším textu bude běžně použito pojmů v teoretické kapitole přesně definovaných; intuitivně jim porozumět asi nebude činit velké problémy, přesto se doporučuje kapitolou alespoň prolétnout.

Objekt DBEngine

Objekt DBEngine (doslova přeloženo Databázový stroj) je objektem nejvyšší úrovně v databázovém objektovém modelu DAO. Obsahuje a řídí všechny ostatní objekty v hierarchii objektů DAO. Je jen jeden, inicializuje se při prvním použití z knihovny např. DAO360.DLL. Nelze vytvořit další instance tohoto objektu, objekt DBEngine není prvkem žádné kolekce. Podrobnější informace jsou k disposici zde.

Objekt DBEngine obsahuje kolekci Workspaces "pracovních prostorů". V mnoha případech - a v jednodušších aplikacích pravidelně - je zapotřebí jen jeden pracovní prostor. Proto DBEngine při prvním použití v aplikaci vytvoří standardní (implicitní, default) pracovní prostor, ve kterém - pokud není řečeno jinak - se vše odehrává. Protože tento článek slouží především k prvnímu seznámení pro vývoj prvních a tedy jednoduchých aplikací, nepopisuje dále objekt Workspace.

Objekt Database

Ústředním subjektem, ke kterému vše směřuje, je vlastní zdroj dat reprezentovaný instancí třídy Database. Popis základních vlastností a metod této třídyje uveden zde, stejně jako obecnější informace o datech v relačních databázích.

Access Application

Protože objektová třída Databáze Microsoftu (Microsoft Database) je poměrně zdařilá, spolehlivá a jednoduše zpracovatelná, je autory databázových aplikací často používána. Její fyzickou reprezentací je soubor se standardní příponou MDB (od verze Office 2007 i ACCDB), přímo zpracovatelný programem Access. Autoři pak své vlastní aplikace staví na třech logických přístupech:

Druhý a třetí přístup vyžadují znalosti o aplikaci Accessu. Protože však jde o velmi obsáhlou problematiku mimo zaměření tohoto článku, lze odkázat např. na MSDN (Microsoft Development Network).

 

 

Orig. 4 / 1999

Rev. 11 / 2020