Návody
-
Adabas - I
Adabas - I
Miniseriál o relačním databázovém systému, který zůstal ve stínu Oracle.
O co jde
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
- Adabas D Linux Desktop Edition 80,- EUR / neposkytovaná
- Adabas D Linux Entry Edition (licence pro 10 uživatelů) 225,- EUR /
neposkytovaná
- Adabas D Linux TwentyFive Edition (licence pro 25 uživatelů) 1 102,-
EUR / 220,- EUR
- Adabas D Linux Business Edition (neomezená licence na jeden server)
2254,- EUR / 450,- EUR
(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.
Úvod do DB s přihlédnutím k Adabasu
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.
Diskuse k tomuto článku
Je, to jsem si hezky zavzpominal. To uz bude tak 6 let co jsem zahledl akci firmy Software AG, ze prodavaji neomeznou verzi za asi 3000. Premluvil jsem lidi co jsem pro ne delal a db mi koupili.Byla to jeste libc5 vreze a ja mel linux s jadrem 1.2.13.
Ale nejak to chodilo, ale mozna to bude tim, ze jsem tomu moc nerozumel, ale nikdy jsme si do oka nepadli. Dokumentace byla dost uboha proti tomu co znam u OS projektu.
No jen udelat dump db a vratit ji zpatky byl porod.
Ale je to uz dlouho dneska asi je vse jinak.
Prave me ceka ukol dostat z ADABASu do neceho jineho (informix). ADABAS bezi na stroji, ke kteremu nemame pristup a jedine, co jsme k tomu dostali jsou ODBC drivery pro vsechny operacni systemy (ale jen od firmy Microsoft). Potreboval bych se nejak dostat k tabulkam v ADABASu treba z PHP. Jde to nejak treba pres projekt http://www.unixodbc.org ? Dodavatele nam v tomto nejak nepomuzou. Take me v clanku zaujala moznost 4GL - 4GL provozujeme na AIX/Informix, pokud by nekdo mel informace o tom, jak pristupovat ze 4GL nebo PHP k ADABASu, byl bych mu velmi vdecny (linux, aix) Pripadne i mailem na daemon(zavinac)svoboda(tecka)cz, diky moc za kazdou pomoc.
z Linuxu se da nadherne pracovat s ADABAS pomoci Perl. V PHP je to jiste v blede zelenem to same?
modul Adabas.pm je - tedy doufam - i u kazde personal edition napr. v suse
hodne zdaru
PS: asi jsem uz 150-ty, ale presto se zeptam - da se rozumne psat i bez HTML-tags - pozn. starsi semestr.
|