Na prácu s aplikačnými databázami slúži proces D2000 DBManager. Tento proces pristupuje do SQL databáz a vykonáva všetky potrebné akcie. Požiadavky na DBManager prichádzajú z procesov D2000 Event Handler (skripty vykonávané na serveri) a z procesov D2000 HI (priamy prístup užívateľov do databáz cez zobrazovač Browser + aktívne schémy so skriptami).

Proces D2000 DBManager dokáže pristupovať k databázam dvoma rôznymi spôsobmi:


O procese DbManager si môžete prečítať nasledujúce blogy:


V rámci DODM modelu je proces DBManager rodičom objektov typu Databáza a tie sú rodičmi objektov typu Tabuľka.

Hierarchia objektov Proces - Databáza - Tabuľka


Objekt Databáza

Objekt Databáza reprezentuje SQL databázu spolu s prístupovými právami do nej, keďže obsahuje aj konfiguráciu užívateľského mena a hesla. Preto je potrebné vytvoriť niekoľko objektov typu Databáza, pokiaľ potrebujeme pristupovať do SQL databázy s rôznymi prístupovými právami (napr. na prístup k rôznym schémam).
Proces D2000 DBManager má optimalizáciu na paralelnú prácu viacerých užívateľov objektom typu Databáza. Preto je schopný vytvoriť viacero spojení s jednou SQL databázou. Každé takéto spojenie je obsluhované vlastným taskom a môže pracovať v transakčnom režime (rezervované pre konkrétny ESL skript, ktorý transakciu vytvoril) alebo v netransakčnom režime (zdieľané viacerými skriptami alebo procesmi D2000 HI, pričom po každej operácii sa automaticky vykonáva COMMIT, preto takéto spojenie voláme aj automatické). V konfiguračnom dialógu objektu Databáza sa dá nastaviť počet predpripravených spojení (vznikajú po štarte procesu DBManager), obmedziť maximálny počet spojení, maximálny počet netransakčných (automatických) spojení a dokonca rezervovať automatické spojenia pre zobrazovač Browser.

Konfigurácia objektu Databáza


Dá sa tiež špecifikovať, po akom čase sa majú zatvárať už nepoužívané spojenia (vytvorené nad rámec predpripravených spojení). DBManager umožňuje vytvorené spojenia recyklovať – keďže vytvorenie spojenia môže predstavovať pre niektoré SQL databázy pomerne náročnú operáciu s vysokou réžiou (napr. pre Oracle).

Pokiaľ sa nachádza na sieti medzi procesom DBManager a SQL databázou firewall, môže byť užitočné špecifikovať prázdne operácie po nejakej dobe nečinnosti – niekedy sa stáva, že firewall dlhšie nepoužívané TCP spojenie „zruší“ a keď ho chce DBManager znovu použiť, dôjde k chybe. Prázdne operácie umožňujú priebežne kontrolovať stav spojenia s SQL databázou a v prípade rozpadu ho znovu vytvoriť.

Dôležitá je aj možnosť nastavenia interpretácie časových údajov v databáze – časy môžu byť v lokálnom čase (podľa pásmového času servera, na ktorom je spustený DBManager), prípadne v monotónnom čase so špecifikovaným offsetom od UTC.

Hodnota objektu typu Databáza je rovná aktuálnemu počtu spojení, ktoré má proces DBManager pre tento objekt vytvorené.

Objekt Tabuľka

Objekt Tabuľka reprezentuje tabuľku alebo pohľad (view) v SQL databáze. Každá tabuľka má svoju štruktúru – názvy stĺpcov a dátové typy, ktoré sú definované objektom typu Definícia štruktúry. Je možné nakonfigurovať, ktoré stĺpce tvoria kľúč, ktoré su voliteľné (t.j. existujú v definícii štruktúry v D2000, ale nie v SQL databáze) a ktoré sú nenulové.

Na objekte Tabuľka je možné definovať aj typ prístupu k tabuľke (žiaden, čítanie, čítanie+zápis).

Konfigurácia objektu Tabuľka


Užitočnou vlastnosťou je zadefinovanie časovej hĺbky. DBManager dokáže automaticky mazať dáta v tabuľke, ktorých definovaný stĺpec (typu Absolútny čas) je starší ako časová hĺbka. Alternatívne je možné definovať rôzne časové hĺbky pre rôzne obdobia pomocou objektu typu Účel údajov.

Kvôli zákonom na ochranu údajov (GDPR) bola implementovaná aj možnosť automatickej anonymizácie dát vo zvolených stĺpcoch na základe nastaveného časového stĺpca.

Príklad použitia: údaje v stĺpcoch Meno, Priezvisko, Datum_narodenia v tabuľke Zmluvy budú anonymizované po 5 rokoch na základe stĺpca Cas_ukoncenia_zmluvy. Anonymizácia bude prebiehať tak, že Meno a Datum_narodenia sa vymažú, Priezvisko sa zmení na „Anonymizované yyyy-mm-dd“, kde yyyy-mm-dd sa nahradí dátumom, v ktorom bola anonymizácia uskutočnená.

Operácie s databázou

Akcie, ktoré vykonáva DBManager, môžeme rozdeliť na niekoľko skupín.

Akcie zobrazovača Browser – jedná sa o priame interaktívne prezeranie dát užívateľom v rámci schémy alebo priamo v D2000 HI. Užívateľ môže prechádzať medzi jednotlivými stránkami a podľa nastavených prístupových práv a vlastností Browsera prípadne editovať, vkladať nové riadky a mazať riadky.

Browser s navigáciou v schéme


Akcie zo skriptu – akcie vykonávané v ESL skripte (a ich ekvivalenty dostupné z jazyka Java). Tieto sa dajú ďalej rozdeliť do viacerých kategórií:

Handle transakcie je následne možné použiť pri akciách patriacich do ďalších kategórií. Ak tieto akcie nepoužívajú handle transakcie, tak sa COMMIT vykonáva automaticky po každej akcii.

Po akcii SQL_PREPARE je možné viackrát vykonávať sekvenciu SQL_BINDIN (nastavenie parametrov – zakaždým iných) a opakovaný SQL_FETCH (čítanie vrátených riadkov). Nakoniec volaním SQL_FREE prácu ukončíme. Takto sa implementuje recyklovanie parametrizovaného SQL príkazu.


Dokumentácia obsahuje kapitolu DBManager - Ladenie a debugovanie ako aj popis práce s DBManager Diagnostic Pack.