Štruktúry a databázy
Systém D2000 definuje pojem štruktúra ako určitý počet pomenovaných položiek, ktorým je možné špecifikovať vlastnosti ako typ hodnoty, štartovaciu hodnotu, ukladanie štartovacej hodnoty, limity. Štruktúra je v systéme definovaná objektom typu Definícia štruktúry, má teda priradené určité meno. Definícia štruktúry (nie je nositeľom hodnoty) predstavuje určitú šablónu, ktorá sa používa (formou referencie) pri definícii ďalších objektov typu:
Objekt typu Štruktúrovaná premenná je úzko zviazaný s objektom Definícia štruktúry. Definuje nenulový počet riadkov hodnôt. Každý riadok má štruktúru danú objektom Definícia štruktúry. Týmto vzniká matica hodnôt:
Príklad:
Objekt SD.OsobaDef typu Definícia štruktúry má nasledovné položky:
Názov položky | Typ položky |
---|---|
Meno | Text |
Vek | Celočíselný |
Narodeny | Absolútny čas |
Deti | Celočíselný |
Nech objekt SV.Osoby je typu Štruktúrovaná premenná a má päť (5) riadkov. Nech je riadok tohto objektu definovaný objektom SD.OsobaDef. Hodnota objektu je zložená z dvadsiatich (20) hodnôt [5 x 4] rôznych typov, ktorých usporiadanie znázorňuje tabuľka:
Riadok/Stĺpec | Meno | Vek | Narodeny | Deti |
---|---|---|---|---|
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 |
Každé políčko predstavuje jednu hodnotu, ktorá má plnohodnotne definované (a zvlášť pre každú hodnotu) všetky vlastnosti bežné v systéme D2000 (štartovacia hodnota, limity, stavové bity atď.). Jednotlivé hodnoty je možné zobrazovať v grafických schémach, používať ich vo výrazoch (SV.Osoby[3]^Vek), v počítaných bodoch alebo v eventoch.
Pomocou objektu typu Databáza je možné pristupovať do SQL databázy (prostredníctvom ODBC rozhrania), ktorej štruktúra (mená stĺpcov a ich typy) zodpovedajú štruktúre objektu typu Definícia štruktúry.
Pre každý stĺpec (políčko) na úrovni objektu Definícia štruktúry je možné definovať nasledujúce atribúty:
- Meno *
- Popis *
- Typ hodnoty *
- Stavový text (pre zobrazenie)
- Limity
- Štartovaciu hodnotu
- Index do transformačnej palety
Tieto vlastnosti sú použité (alebo nepoužité podľa konfigurácie) pre stĺpce v objekte typu Štruktúrovaná premenná a Databáza. Pre objekt typu Štruktúrovaná premenná sa tieto vlastnosti dajú konfigurovať pre každé políčko (hodnotu) zvlášť (s výnimkou atribútov označených hviezdičkou)..
* Atribút je pevne a nemenne definovaný na úrovni objektu typu Definícia štruktúry.
Zariadenia
V niektorých prípadoch sa pri používaní štruktúr prejavujú určité nevýhody:
- Možnosť duplicitného pripojenia objektov: pripojenie jedného objektu do viacerých riadkov štruktúrovanej premennej (pre typ hodnoty Objekt)
- Anonymné riadky: jednotlivé riadky štruktúry sú adresované číselným indexom. Pokiaľ patria riadky jednej štruktúrovanej premennej do viacerých skupín (napr. každý riadok zodpovedá jednému generátoru a niekoľko generátorov tvorí blok a niekoľko blokov elektráreň), pri práci s číselnými indexami toto nie je zrejmé a môže dôjsť k omylu
- Pamäťová fragmentácia: štruktúrované premenné sú v systéme D2000 reprezentované ako súvislý blok pamäte. V prípade použitia veľkých štruktúr (desiatky až stovky riadkov a stĺpcov) dochádza k fragmentácii pamäte (najmä v procese D2000 Server)
- Problémy s archiváciou: pri použití štruktúrovaných archívov (archivácia stĺpca alebo prípadne celej štruktúrovanej premennej) dochádza k ukladaniu všetkých hodnôt do jednej databázovej tabuľky, ktorá tak môže byť veľká a jej správa (reorganizácia dát a indexov) náročná na diskové operácie a CPU. Zároveň je takýto štruktúrovaný archívny objekt pridelený jednému zapisovaciemu archívnemu tasku, takže zápisy nemôžu byť paralelizované. Pokiaľ nad takýmto archívnym objektom sú postavené ďalšie (vypočítané a/alebo štatistické archívy), každý z nich je opäť obsluhovaný jedným zapisovacím archívnym taskom. Ak je napr. spustený prepočet archívu tell príkazom RECALC, je serializovaný a vykonávaný postupne pre jednotlivé riadky štruktúrovaného archívu.
Uvedené problémy rieši koncepcia zariadení, ktorú prináša D2000 vo verzii 21. Zariadenie je možné vnímať ako jednoriadkovú štruktúrovanú premennú, pričom:
- Pomocou objektu Definícia zariadenia je definovaná štruktúra objektu typu Zariadenie.
- Definícia zariadenia podporuje všetky typy stĺpcov ako Definícia štruktúry, navyše stĺpce typu Interná položka (slúži na pripojenie iného D2000 objektu do zariadenia) a Zariadenie (slúži na pripojenie iného zariadenia - podzariadenia).
- Definícia zariadenia môže byť alternatívne definovaná ako pole objektov s definovanou Definíciou zariadenia - jedná sa o Poľovú definíciou zariadenia (napr. majme DD.Generator a od neho odvodenú DD.GeneratorArr).
- Je tak možné vystavať "strom" zariadení, pričom proces D2000 Server zabezpečuje konzistentnú mennú konvenciu pre objekty pripojené do položiek zariadenia typu Interná položka a Zariadenie.
Pre každú položku na úrovni objektu Definícia zariadenia je možné definovať nasledujúce atribúty:
- Meno *
- Popis *
- Typ hodnoty *
- Stavový text (pre zobrazenie)
- Limity
- Štartovaciu hodnotu
- Index do transformačnej palety
- Typ zariadenia *
- Povinné pripojenie *
Tieto vlastnosti sú použité (alebo nepoužité podľa konfigurácie) pre položky v objekte typu Zariadenie. Pre objekt typu Zariadenie sa tieto vlastnosti dajú konfigurovať pre každú položku zvlášť (s výnimkou atribútov označených hviezdičkou).
* Atribút je pevne a nemenne definovaný na úrovni objektu typu Definícia zariadenia.