Vývoj rozsáhlých aplikací, kdy se aplikační logika nachází na databázovém serveru, potřebuje nástroj, který by uměl překládat např. uložené procedury, procházet a editovat systémový katalog, ale i např. ladit SQL kód. Jedním z mnoha nástrojů, který by mohl uvedené požadavky splnit, je SQL-Programmer.
SQL-Programmer je k dispozici pro Oracle, Microsoft SQL Server, Sybase
Adaptive Server a IBM DB2 Universal Database. Pokud chcete mít produkt
aktivován pro více než jednu databázi, je to řešeno pomocí licenčních
klíčů — SQL-Programmer totiž na základě klíče umožní pracovat
s licencovaným počtem databází.
V krabici kromě instalačního CD naleznete SQL-Programmer Solution Guide,
což je přibližně 260ti stránkový manuál popisující jednak základní
práci s nástrojem a jednak popis ladění na jednotlivých serverech.
Instalace je v celku přímočará, jen naprosto drze kopíruje některé
soubory do systémového adresáře a na konci si vyžádá restart systému,
což u takovéhoto nástroje ze zcela chápu.
Pojďme se nyní podívat na prostředí. To sice vypadá silně
předpotopně (ačkoliv jsem měl k dispozici build z loňského května), ale
naštěstí se ovládá celkem dobře. Kromě již zaběhnutého menu a
plovoucích tlačítkových lišt je v pravém sloupci několik nástrojů
(ještě se o nich zmíním). V dolní části jsou pak pomocná okna pro
zobrazování modulů či hodnot proměnných dostupných při ladění.
Konečně zbytek zabírají MDI okna, ve kterých může být SQL soubor,
tabulka, trigger nebo jakýkoliv další databázový objekt. Obecně zde
platí, že co objekt, to jedno okno.
Vraťme se ale k nástrojům, které jsem zmínil. Vynecháme-li celkem
jasné a nudné věci typu adresářová struktura či seznam oblíbených
položek, dostáváme se k fragmentům zdrojových kódů, což můžeme
chápat jako šablony, které jsou pak vkládány do zdrojového textu
v editoru (tento nástroj potřebuje mít vytvořené tabulky v databázi,
při prvním použití je nabídnuto jejich vytvoření). Dalším nástrojem je
ToDo List, ale jde o primitivní, téměř nepoužitelný nástroj — chybí
mu kromě např. exportu či importu spolupráce s nástroji správy
požadavků nebo s nástroji pro řízení projektů. Konečně posledním a
zřejmě nejvíce využívaným nástrojem je Database Object, což je
zobrazení databázových objektů ve stromové struktuře. Bohužel obsahují
jen to základní — např. položka Tables pod sebou obsahuje pouze seznam
tabulek, ale jednotlivá tabulka pod sebou již nemá např. seznam sloupců,
indexů apod. K tomu, abyste tyto rozšířené informace získali, slouží
právě jednotlivá MDI okna (osobně jsem však v podobných nástrojích
zvyklý na rychlé hledání ve stromě a do přídavných oken lezu jen
v případě zájmu o podrobnější informace). Na základě příkazu
v kontextovém menu pak můžete např. vytvořit SQL skript, vytisknout
sestavu a další.
Nejvíce informací je pak vidět v již několikrát zmíněných MDI
oknech. Ukažme si, co vše můžeme sledovat např. u tabulek na jednotlivých
záložkách, které MDI okno obsahuje. Samozřejmě nejdůležitější je
název tabulky, její umístění a seznam sloupců. Následuje seznam omezení
(constraints) — název omezení, typ, stav a další. Dále to jsou
závislosti, triggery, indexy, audit apod. Můžete si také vytvořit SELECT
příkaz a podívat se na obsah tabulky. Na většině záložek nejde pouze
o statické informace, ale lze s nimi odpovídajícím způsobem
nakládat — na seznamu sloupců můžete další přidávat, jiné mazat či
upravovat.
To, co však dělá tento nástroj zajímavým, jsou pokročilé funkce.
Nejdůležitější z nich, kvůli které si zřejmě produkt pořídíte, je
ladění uložených procedur, funkcí a dalších objektů vztažených ke
konkrétnímu serveru (např. „pakáží“ (packages) na Oracle). Program
využívá vlastností daného serveru, které vedou k možnosti krokování,
sledování zásobníku či hodnot proměnných (ve skutečnosti nejde o nic
převratného, např. na Oracle stačí používat ty správné „pakáže“,
ostatně dokumentace nemlčí).
Chcete-li vytvořit dokumentaci ke schématu, je možné ji vytvořit jak pro
jednotlivé objekty v databázi zvlášť, tak i pro všechny dohromady.
K dispozici je několik desítek stylů, případně si můžete vytvořit
i vlastní. Stejně tak si můžete nechat vygenerovat skripty, které dané
objekty dokáží znovu vytvořit. Jestliže používáte nějaký nástroj
z kategorie Source Code Management, SQL-Programmer je dokáže využít. Velmi
příjemnou funkcí je vyhledávání, které může probíhat přímo na
serveru. Zadáte hledaný řetězec a typy objektů, ve kterých chcete hledat
(např. uložené procedury nebo definice tabulky) a výsledkem je seznam
objektů, ve kterých se dané slovo vyskytuje. Jen je škoda, že nelze
používat regulární výrazy nebo logické operátory. Z dalších
vlastností již bez dalšího komentáře jmenujme např. Code Analyzer,
integrace s Oracle 9i JDeveloperem nebo statistiky editovaných procedur.
Pořídit si či nepořídit? Produkt obsahuje velké množství nástrojů,
které pro vývojáře, ale i pro dokumentaristy a částečně i pro datové
analytiky mohou být velmi dobrým pomocníkem. Mně osobně se nezamlouvalo
prostředí, kterému chybí v některých případech dobrá ovladatelnost,
v jiných zase lepší spolupráce s uživatelem (ne vždy se např. člověk
dozví, proč něco nejde). Na druhou stranu pokud si zvyknete, asi to nebude na
překážku. Do budoucna by nebylo od věci např. využít Profilery či
Tracery (tedy na těch databázích, které to umožňují). Pokud hledáte
slušný nástroj na ladění, určitě se podívejte na SQL-Programmer,
z jiného důvodu bych si jej asi nepořizoval, protože ostatní funkce
zvládají jiné nástroje lépe nebo levněji.
Plusy, mínusy, závěr
Plusy
- Debugger
- Hledání v databázových objektech
- Generování dokumentace
Mínusy
- Vzhledově zastaralé prostředí
- Některé funkce mohly být více promyšlené
- Malá granularita databázového stromu
Závěr
- Vývojový a testovací nástroj pro databázové vývojáře.
Výrobce
Poskytl
Tento článek byl napsán pro časopis Softwarové noviny 9/2003.
Upozornění: tento text neprošel redakční úpravou, takže je
tak, jak byl napsán včetně případných chyb. Žádná část tohoto
článku nesmí být použita bez předchozího souhlasu autora.
Seznam mých dalších článků je v tomto přehledu.