neděle 6. března 2016

Něco k tabulkám: cluster, pool, transparentní tabulka, struktura, interní tabulka, work area.

V systému SAP jsou tyto druhy databázových tabulek:

- tabulky poolu,
- clusterové tabulky,
- transparentní tabulky.

Tabulky poolu ("sdílené" tabulky) a clusterové tabulky slouží k uložení nastavení (customization data), sekvencí dynper a dokumentace. Pro tyto tabulky platí, že data z několika tabulek mohou být uložena do jednoho společného poolu či clusteru. Lze říci, že v poolu je uložené velké množství malých tabulek, zatímco v clusteru je uložené menší množství rozsáhlých tabulek.

Tabulky poolu a clusterové tabulky neodpovídají přesně své podobě ve fyzické databázi, jako je tomu u transparentních tabulek. Do těchto tabulek se obvykle neukládají data aplikací, protože ta bývají uložena právě v transparentních tabulkách. Transparentní tabulky jsou jediným typem tabulek, kde jejich fyzická reprezentace v databázi přesně odpovídá definici v nástroji ABAP Dictionary.

Pěkné porovnání mezi transparentní tabulkou, poolem a clusterem naleznete například také zde.

Dále tabulky dělíme podle typu:

- standardní (záznamy uložené za sebou)
- řazené/sorted (záznamy řazené podle klíče)
- hashovací/hashed (neřazené záznamy s hash hodnotami pro rychlé vyhledávání)


Nyní ke strukturám. Struktura je, jednoduše řečeno, skupina definovaných polí spolu nějak logicky související. Struktury neobsahují žádná data, slouží jen jako "předlohy" pro tabulky. Více tabulek může být založeno na jedné struktuře, takže místo definice všech polí v tabulkách stejné struktury se definuje/udržuje pouze jedna struktura (jedna sada polí).

Struktury mohou být definované přímo v programu (viditelné v rámci programu nebo třídy obsahující definici) nebo jako datová struktura viditelná pro všechny programy. 

V programu se deklarují interní tabulky. Slouží jako dočasné (pomocné) tabulky a data obsahují pouze po dobu běhu programu. Užitečné je to jak z důvodu práce s daty pro konkrétní program, tak i z důvodu výkonu - při každém čtení záznamu se nepřistupuje k databázi.

Interní tabulka může být deklarována dvěma způsoby: s nebo bez hlavičky, přičemž hlavička je implicitní work area (wa, "pracovní oblast") této tabulky. Work area je vlastně struktura (oblast, místo..), ve které je v daném okamžiku uložen jeden konkrétní záznam, se kterým můžeme pracovat. Pokud deklarujeme interní tabulku bez hlavičky, musíme vytvořit work area explicitně (se stejnou strukturou). To nám jednak třeba dovoluje použít tuto work area i pro jiné interní tabulky se stejnou strukturou, ale hlavně je to doporučovaná metoda (hlavičky nejsou kompatibilní s OOP, používat by se měly wa nebo field symbols).

Jak konkrétně deklarovat tabulky a struktury a jak s nimi pracovat včetně work area si ukážeme v některém z dalších článků.

Žádné komentáře:

Okomentovat

Děkuji za Váš komentář. Pokud byste se chtěli stát pravidelnými příspěvovateli do tohoto blogu, kontaktujte mne prosím.