Portál AbcLinuxu, 3. května 2025 17:31
Miniseriál o relačním databázovém systému, který zůstal ve stínu Oracle.
Adabas je výtvor firmy Software AG a jedná se o jeden z těch propracovanějších relačních databázových systémů, které si můžete opatřit. Adabas je vyvíjen od roku 1971, kdy byl navržen pro podporu business aplikací a asi vinou malé podpory a rozdílnosti trhů zůstal ve stínu Oraclu. Výhodou oproti němu může být jednoduchá instalace a malá náročnost na paměť a místo (instalaci si zkusíme v dalších kapitolách).
Adabas je navržen na dvouprocesní struktuře - jádro Adabasu běží jako proces odděleně od aplikačních utilit, takže všechny databázové aktivity a uživatelské processy jsou spravovány centrálně. Počet uživatelů paralelně připojených k databázi není limitován (samozřejmě pouze v rámci licenční politiky). Pro zajímavost uvádím ceny a podporu pro platformu Linux:
Produkt Licence / Roční podpora
(v příkladech dále uváděných se budeme bavit o bezplatné verzi Adabas D Personal Edition v12)
Jinak jsou ze strany Software AG nabízeny různé partnerské modely vztahující se na produkt Adabas D jako je bezplatná vývojářska verze, školení, přístup do systému elektronické podpory. Maximální velikost databáze na Open systémech je 128 TB (takže omezení je prakticky pouze na hardwaru) a přitom uplatňuje pro ukládání dat kompresní mechanismus (udává se komprese cca 50%). Adabas používá systém transakcí (transakce je definována uživatelem a nezmění obsah databáze dokud ji uživatel nepotvrdí), což umožňuje v případě krachu databáze, či systému zajistit konzistenci dat - při startu se provede zrestaurování průběhu transakcí.
Přítup k databázím je umožněn standartně přes ODBC, či JDBC, umožněno je spojení přes SQL klienta a nástroje fy SoftwareAG (Bolero,..). Na obrázku uvedeném níže je vidět struktura přístupu k datům databáze.
Databázové disky se skládají z prostoru obsahujícího samozřejmě samotná data a další "pomocných" jako jsou logovací, pracovní a prostor příkazů. Nad touto částí pracuje jádro(-a) databáze, které uvedené prostory zpracovává a používá. Celý proces práce jádra nad databázovými disky je složitější, ale umožňuje některé vymoženosti, které u "lehčích" databází nenaleznete.
Poslední dobou se Abadas snaží zaměřit na podporu www serverů, spolupráci s XML databázemi. Vývoj můžete poznat i na utilitkách standardně dodávaných s Adabasem, většinou duplicitních, z nichž grafické funkčně nahradily textové. Adabas je multiplatformní aplikace, transakce mohou probíhat v různých SQL dialektech (Adabas, Ansi, Oracle), podporuje databázové procedury a funkce, temporary tabulky a subtransakce. Podrobněji se s administrací a s utilitami seznamíme v dalších kapitolách.
Licenční politika je vedena přes počet simultánních uživatelů databáze, kdy omezení se provádí již při vytváření databáze. Pro studijní a seznamovací potřeby je počet těchto uživatelů omezen na 3.
Databáze ovládají svět - každý se jistě, ač vědomky či nevědomky, setkal s nějakou tou databází. Téměř všem Linuxákům hned vyskočí před oči mysql, ORACLE. Tento seriál se má zabývat ADABASem, jednou z těch méně známých databází, o které je třeba slyšet, ale v praxi už málokdy vidět.
Úvodem bude vhodné pro ty, kteří o databázích slyšeli něco zpovzdálí a chtějí si vyzkoušet instalaci a některý příklad uvedený dále, napsat, o co jde, a co se týká i ADABASu: Databáze (podobně jako file systém) obsahuje určitým způsobem uspořádaná data a toto uspořádání se musí dát popsat souborem určitých pravidel (u "lepších" databází i popisem restrikcí a dalších věcí). Pro uživatele je důležitá ta druhá část, tj. znalost těch pravidel, protože teoreticky je jedno, kde a jak jsou data uložená, ale na základě pravidel musí být tato data dostupná (tzn. s možností výběru, aktualizace, smazání atd.). Tato dostupnost by se měla týkat různých množin dat, které jsou popisovány třeba logickými operátory.
Některé z databází si vystačí s výše uvedeným principem ukládání dat. Databáze "vyššího" typu navíc uplatňují další pravidla a mají další možnosti: mezi ně patří i ošetření duplicit ve sloupcích (restrikce zvaná unique key constraint) Další restrikce primary key constraint je v podstatě kombinace restrikcí not null a unique constraint. Název not null restrikce napovídá, že hodnota v daném sloupci nesmí být prázdná. Restrikce foreign key je vztahová (že by od slova relation?) a umožňuje existenci ve sloupci tabulky pouze těm hodnotám, které jsou uvedeny v jiném sloupci (jiné tabulky). Možná to vypadá jako zbytečnost, ale v případě databází s více než jednou tabulkou se tyto restrikce hodí a můžou udržet smysluplnost dat pohromadě. Ještě jednou připomínám, že tyto restrikce hlídá sama databáze a není nutno je někde v PHP programovat extra.
Pro větší tabulky (asi se vás to nebude týkat, ale pro úplnost doplňuji) se dají definovat při návrhu různé indexy, které umožňují pracovat s tabulkou mnohem rychleji. Setkáte se s výsledky měření rychlosti vyhledávání v tabulce s a bez indexované položky, ale sami se můžete o tom přesvědčit v praxi (pokud máte čas, chuť a nějaké to místo na disku). Stačí vložit cca 1M záznamů do tabulky a zkusit vyhledat některý z nich. Bez indexovaní položky podle které jste vyhledávali se začnete shánět, jak tu "pomalou" databázi zrychlit.
Jak jsem již zmiňoval, některé "lepší databáze" umožňují vylepšit svůj chod různými indexy, zajistit bezporuchovost (integritu) dat včetně managementu databáze (definování prostorů, záloh, dohled procesů, práce s doménami, vzdálená správa) a možnost využití PL-SQL (Jazyk, který se neomezuje pouze na selecty, updaty, inserty a další záležitosti jazyka SQL, ale blíží se už vyšším programovacím jazykům. Hlavně umí cykly, podmínky a podobně.). Mezi ně patří, podobně jako ORACLE, i ADABAS a to může být jeden z hlavních důvodů, proč se uživatel rozhodne právě pro ADABAS, namísto všeobecně oblíbeného mysql (podrobněji se tabulkám a příkladům můžu věnovat v případě zájmu v samostatném díle o práci s daty v databázích).
V příštím díle si ADABAS nainstalujeme a nakonfigurujeme.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.