Maccess - snadná práce s databázemi

2. 3. 2001
Doba čtení: 4 minuty

Sdílet

Název Maccess napovídá o inspiraci produktem Access od jisté známé společnosti. Mým přáním bylo vytvořit prostředek, pomocí kterého by i neprogramátor mohl snadno pokládat různé dotazy na SQL server a vrácená data pohodlně analyzovat. Dále jsem chtěl, aby tento prostředek byl ovládán čistě přes webovský prohlížeč. Webovský přístup má svá negativa, ale má i mnoho pozitiv a ty jsem chtěl využít.

Tento článek si klade za cíl seznámit se základními možnostmi Maccessu pomocí ukázek na jednoduchém příkladu.

Představte si, že jste fandové hokejové soutěže NHL a na SQL serveru máte aktuální statistické údaje z právě probíhající sezóny. Konkrétně tabulku Player_stats, kde každý řádek přísluší jednomu hráči a obsahuje údaje, jako je jméno hráče, v kterém hraje týmu, kolik dal gólů a asistencí a další. Chcete-li zjistit kolik gólů dohromady daly jednotlivé týmy, pak v Maccesu takový dotaz jednoduše vytvoříte:

Tvorba dotazu

I příznivec příkazové řádky občas rád využije metodu drag&drop, která tvorbu dotazu usnadňuje. Nyní zbývá dotaz uložit, aby ho mohl použít i někdo jiný a následně spustit. Výsledný výstup ukazuje obrázek.

Výstup souhrnného dotazu

Někoho asi moc nepotěší, že tým Pittsburgh je zatím až na čtvrtém místě.

Na výstupu je možno různé řádky pro lepší orientaci klepnutím zvýraznit. Je také možné zobrazit jen zvýrazněné řádky, což má okamžitě vliv na přepočítání sumy za celou tabulku (ovšem i na případné mezisoučty). Klepnutím na nadpisu sloupce se řádky seřadí dle hodnot ve sloupci. Je též k dispozici formátování čísel (oddělování tisíců, zobrazení s přesností na zadaný počet desetinných míst) a formátování dat a časů (možnost zobrazit jméno dne v týdnu apod.).

Protože ukázkový dotaz je souhrnný (jeden řádek představující tým shrnuje údaje za všechny jeho hráče), může hned někoho napadnout, kdo že se na těch gólech v Pittsburghu nejvíce podílí. Informaci je možné získat jedním klepnutím na ikoně složky, která se nachází vlevo na řádku Pittsburghu (PIT). Výsledek je na obrázku.

Výstup ungroup dotazu

Ve skutečnosti tento „rozbalený“ („ungroup“) výstup byl již předem upraven. Standardně by Maccess souhrnný řádek rozbalil, ale výstup by nebyl uspořádaný a obsahoval by všechny sloupce tabulky. Aby výstup „ungroup“ dotazu byl podle našeho přání, není třeba vše od začátku definovat – Maccess základní části při návrhu „ungroup“ dotazu převezme z původního souhrnného dotazu.

Klepnutí na ikoně u rozbalených řádků umožňuje řádky na SQL serveru měnit (výstup ale musí obsahovat primární klíče). Maccess umožňuje úpravu hodnot, ale má zde velké rezervy.

V uvedeném výstupu je vidět další možnost Maccessu – pomocí definic CSS upravovat vzhled jednotlivých buněk tabulky. V dotazu bylo definováno, aby jména hráčů, kteří mají záporné hodnoty ve statistice plus/mínus (p/m), byla uvedena červenou barvou a ostatní jména barvou zelenou.

Nyní se ještě vrátím k druhému obrázku, kde jsou vidět hypertextové odkazy (ty byly definovány až po sejmutí prvního obrázku ukazujícího vytvoření dotazu). Ke každé hodnotě na výstupu je v Maccessu možné definovat hypertextový odkaz. V našem případě jsem udělal odkaz na stránky příslušných týmů na Yahoo. Využil jsem toho, že webová adresa je z velké části stejná a až v závěru se liší zkratkou názvu příslušného týmu.

Maccess disponuje také možnostmi seskupovat data na výstupu se zobrazováním mezisoučtů, jak ukazuje obrázek.

Výstup dotazu - report

Předností Maccessu jsou křížové dotazy, kde je možné rozbalit každou hodnotu na výstupu a získat tak řádky, z kterých hodnota souhrnem vznikla.

Všechny textové výstupy jsou řešeny pomocí šablon XSL, které se aplikují na XML výstup, který Maccess produkuje. K transformaci XML dokumentů dochází na serveru nebo až na klientské straně – záleží na typu výstupu a schopnosti prohlížeče. K dispozici jsou i výstupy do grafů a jednoduchý výstup do mapy Evropy.

Maccess je hojně používán v naší společnosti, která nemá s NHL téměř nic společného (to jen aby nevznikla nějaká mýlka). Snad jen, že v NHL musí neustále chladit ledovou plochu a my musíme přes zimu zase vytápět naše prostory. V poslední ukázce jsem proto zvolil spotřebu páry v naší společnosti po měsících v různých letech. Jde o křížový dotaz s výstupem do sloupcového grafu.

Výstup dotazu do grafu

Hlavní aplikace Maccessu v naší společnosti jsou však v oblasti obchodu, ekonomie, personalistiky a výroby.

Jako příjemnou vlastnost Maccessu ještě uvedu dotazové proměnné – při definici dotazu je možné téměř kdekoliv vložit dotazovou proměnou, na kterou se pak Maccess při spuštění zeptá vygenerováním formuláře. V dotazové proměnné může být již nabízena nějaká hodnota, nebo může jít o výběrová menu (a to třeba generovaná z SQL tabulek).

Serverová část Maccessu běží na Linuxu a je napsána jako CGI skript v Perlu (přesněji v ePerlu) a využívá mnoha knihoven různých autorů, které jsou volně k dispozici. Jako SQL server je nyní vyžadována databáze MySQL. Maccess předpokládá dostatečně rychlé spojení klienta se serverem – při použití dialup spojení se vše vleče…

Pokud jde o klientskou část, předpokládá Maccess hlavně použití prohlížeče MS IE 5.5. To proto, že hojně využívá zpracování XML na klientské straně. Použití jiných prohlížečů je možné, ale komfort již je mnohem menší. Pro textové terminály je vhodným prohlížečem links.

bitcoin_skoleni

Maccess je šířen pod licencí GPL.

V případě zájmu o další informace odkazuji na domácí stránku Maccessu, kde jsou k dispozici další obrázky a také online demo. Pro ještě detailnější informace odkazuji na stručný help.

Autor článku