SQL Navigator & Toad

W myśl zasady „nie ma tego dobrego, czego by się lepszym zastąpić
nie udało”, pragniemy zaprezentować narzędzia stanowiące już całkiem
poważną konkurencje dla Oracle Enterprise Managera. To małe, ale coraz to
sprytniejsze narządko coraz częściej zastępuje bardzo rozbudowane, przez co
nieco ociężałe narzędzia proponowane od lat przez korporację. Rzućmy więc
na nie łaskawym okiem.

Autor: Jacek Palus,
absolwent fizyki na Uniwersytecie Wrocławskim,
od kilku lat pracuje jako administrator baz danych Oracle

W codziennej pracy coraz częściej potrzebowałem narzędzi
umożliwiających wykonywanie bieżących zadań z bazą danych Oracle. Oprócz,
oczywiście niezbędnej wiedzy, potrzebowałem przyjaznego środowiska pracy.

Przeglądając ofertę firm sprzedających oprogramowanie
dotarłem do narzędzi firmy Quest Software. Środowiskiem takim zarówno
dla programistów jak i administratorów mogą być produkty SQL Navigator
oraz Toad. W zakresie funkcjonalności są do siebie podobne. Różni je
interfejs oraz kilka funkcji.

Cechą wspólną obu produktów jest podział na cztery
podstawowe moduły.

Pierwszy z nich służy do realizacji zadań związanych z
zarządzaniem obiektami bazy danych. W SQL Navigatorze nadano mu nazwę DB
Navigator
, w Toadzie – Schema Browser. Umożliwia edycję obiektów
bazy. Podstawowy podział poprowadzony jest pod kątem właścicieli obiektów,
następny – po ich typach. Navigator prezentuje szczegółowe informacje o
obiektach poprzez strukturę drzewiastą, Toad – przez system zakładek w
prawym panelu okna.

Dostęp do zawartości schematów limitują oczywiście
uprawnienia. „Zwykli” użytkownicy posiadając odpowiednie prawa mogą
przeglądać i edytować obiekty należące do logicznej struktury bazy danych.
Lista typów obiektów jest długa – wymienię najczęściej używane:
tablice, widoki, indeksy, funkcje, procedury, pakiety.

Administrator bazy, korzystając z Navigatora, oprócz dostępu
do wszystkich obiektów przypisanych do schematów, może zarządzać użytkownikami,
rolami oraz profilami. Korzystając z Toada, także przestrzeniami tablic i
segmentami wycofań.

Możliwość popełnienia błędu redukuje zastosowanie
edytorów specjalizowanych do obsługi obiektów danego typu.

Drugim modułem jest edytor kodu SQL (SQL Editor – SQL
Navigator, SQL Window – Toad). Korzystając z niego można pisać
polecenia w języku SQL oraz anonimowe bloki PL/SQL. W trakcie edycji
kontrolowana jest poprawność składni, a każdy błąd składniowy powoduje,
że treść polecenia jest wyświetlana w miejscu wystąpienia błędu jako zwykły
tekst. Jeśli takie „wyróżnienie” w kodzie zostanie przeoczone, to
przy próbie wykonania polecenia zostanie wyświetlony komunikat, a miejsce wystąpienia
błędu zostanie podświetlone.

Pracując w Navigatorze, możemy nazwy obiektów przeciągać
do pola edycji edytora z okna modułu DB Navigator. Wzorce składni poleceń
dostępne są w oknie Code Assistant. Jest to typ pomocy w tworzeniu kodu,
uruchamiany z paska narzędziowego. Wystarczy znaleźć pożądaną przez nas
formułę i przeciągnąć. Kolejnym krokiem jest jej uzupełnienie o elementy
charakterystyczne dla treści pisanego polecenia. Co więcej, w miarę
zdobywania doświadczenia, nie musimy ograniczać się do istniejących wzorców.
Możemy pisać własne. Podpowiedzi dotyczą poleceń SQL, PL/SQL, HTML, a także
obsługi procedur wykorzystywanych przez iAS (Oracle 9i Application Server).

Chcąc przeglądać treść rozbudowanych skryptów, czy
procedur, można istotne miejsca oznaczyć bookmark’ami. Oznaczając tak
np. sekcję deklaracji zmiennych uzyskamy błyskawiczny do niej dostęp.

Wykonanie pojedynczego polecenia lub polecenia będącego częścią
skryptu wymaga jedynie kliknięcia na odpowiedniej ikonie lub skorzystania ze
skrótu klawiaturowego. Informacje o wyniku polecenia wyświetlane są w
oddzielnym oknie. I tu dostępny jest pewien zakres działań pozwalający na
jego edycję. W przypadku wyników dotyczących tablic, czy widoków, jedną z
kilkunastu funkcji jest Export obsługujący pliki w formatach: tekstowym, xls,
html, sql.

Wykonując polecenie otrzymujemy informację o czasie jego
trwania. Ale można otrzymać także plan wykonania polecenia. Wystarczy
uruchomić okno Explain Plan.

Z kolei historie oraz listy wykonywanych operacji zapewniają
bardzo prosty dostęp do zadań, nad którymi pracujemy teraz, bądź pracowaliśmy
w przeszłości. Pod tym względem oferta Toada jest znacznie bardziej
rozbudowana. Znajdujemy tu chronologiczną listę operacji wykonywanych za pomocą
narzędzia, listę operacji konkretnego użytkownika oraz listę poleceń
zdefiniowanych.

Trzeci moduł, wspólny dla obu produktów w zakresie
funkcjonalnym, to edytor PL/SQL (Stored Program Editor – SQL Navigator, Procedure
Edit Window
– Toad). Ten typ edytora, pod względem mechanizmów pomocy, ma
wiele cech wspólnych z edytorem SQL. Przeznaczony jest do pracy z procedurami
składowanymi. Ogromnie pomocny, a dostępny z tego poziomu, jest moduł
Debugger’a. Oprócz standardowych, w przypadku debugger’a, funkcji
przetwarzania krokowego, istnieje możliwość ustawiania punktów przerwań
uruchamianych warunkowo, np. po przekroczeniu pewnej wartości wybranej
zmiennej.

I wreszcie czwarty z modułów, przeznaczony do generowania
poleceń w oparciu o graficzną reprezentację tablic, widoków i synonimów (Query
Builder
– SQL Navigator, SQL Modeller – Toad). Służy do
generowania poleceń typu SELECT, INSERT, UPDATE, DELETE. Aby otrzymać
polecenie, wystarczy umieścić w polu roboczym tablicę, wybrać kolumnę i
wydać polecenie wykonaj. Taki sposób pracy na pewno ułatwia życie
początkującym oraz tym, którym szersza wiedza na temat SQL’a nie jest
potrzebna. Oprócz całkiem prostych, pozwala na generowanie poleceń nie
trywialnych – ustawiając warunki można skorzystać z zakładki Expert
Mode.

Jedną z pomocniczych funkcji istniejących w obu pakietach
jest generowanie raportów. Raporty dotyczą wszystkich obiektów logicznej
struktury bazy danych. Zbierane są możliwie pełne informacje o wybranym
obiekcie, ale można uzyskać także np. raport o zasobach wykorzystanych przez
bieżącą sesję użytkownika.

Inna funkcja obejmuje zarządzanie źródłami, dzięki temu
grupa programistów może bezkonfliktowo pracować nad wspólnym projektem. Toad
w tym zakresie pozwala na integrację z zewnętrznymi narzędziami typu Ms
Visual SourceSafe, PVCS. SQL Navigator posiada poza tym własne, w pełni
funkcjonalne rozwiązanie – moduł Team Coding.

Do strojenia aplikacji można wykorzystać Explain Plan,
Debugger, ale także oracle’owy pakiet DBMS_PROFILER. Dzięki niemu łatwo
zidentyfikować tzw. wąskie gardła systemu. Pakiet jest elementem dostępnym w
wersji Oracle 8i serwera bazy danych. Jego obsługa jest jedną z funkcji SQL
Navigatora i Toada. Po jej włączeniu i wykonaniu procedury PL/SQL, funkcje
pakietu DBMS_PROFILER zbierają informacje o procedurze, zebrane dane zapisują
zaś w tablicach. Wydanie polecenia Profiler Analysis uruchamia przetwarzanie
wyników i wyświetlenie ich w przystępnej postaci. W trakcie analizy możemy
stopniowo przejść aż do pojedynczych linii kodu.

Jeszcze jedną cechą Navigatora i Toada jest integracja z
zewnętrznymi narzędziami wspomagającymi pracę ich użytkowników. Klikając
na wybranej ikonie uruchamiamy przypisany jej program:

Knowledge Base for Active PL/SQL Development lub Knowledge
Base for Oracle Administration
– Obszerny zestaw informacji i artykułów
dotyczących języków SQL, PL/SQL, oraz administracji bazą danych Oracle.

Formatter – Narzędzie, którego stosowanie
automatyzuje formatowanie kodu, a także pozwala na definiowanie przez użytkownika
sposobu formatowania.

SQLab Xpert – Zaawansowane narzędzie wspomagające
strojenie kodu. Automatycznie generuje zestaw scenariuszy pozwalających na
usprawnienie wykonywania strojonych poleceń. Wraz z propozycjami tworzone są
skrypty implementujące zmiany w kodzie.

SQL Impact – Narzędzie służące do analizowania,
dokumentowania oraz kontroli jakości kodu aplikacji. Impact bada powiązania
pomiędzy obiektami bazy danych, potrafi przewidzieć, jaki wpływ na pracę
aplikacji będą miały zmiany w którymkolwiek z jej składników.

Cechą wyróżniającą Toada jest moduł administracyjny DBA.
Stanowi go zestaw graficznych narzędzi zaprojektowanych dla wspomożenia pracy
administratorów baz danych. Jedną z ciekawych cech pakietu są monitory.
Database Monitor pozwala na obserwację pracy bazy poprzez śledzenie
generowanych wykresów opisujących zmiany charakterystycznych wartości (np.
ilość fizycznych odczytów z dysku). Drugim monitorem jest Unix Monitor,
raportujący o zachowaniu się systemu operacyjnego. Stosowanie go ogranicza się
jedynie do sytuacji, gdy baza danych zainstalowana jest na systemie Unix.

Innym ciekawym zestawem informacji jest okno Server
Statistics – zbiór dużej liczby statystyk obliczanych na bieżąco dla
analizowanej bazy. W jeszcze innym oknie można uruchomić analizę przestrzeni
danych.

Zestaw kilku edytorów pozwala na zarządzanie plikami bazy
danych łącznie z plikami kontrolnymi i plikami redolog’;ów.

Są jeszcze narzędzia ułatwiające przeprowadzanie operacji
na bazie – takich, jak np. eksport/import danych, czy porównywanie
schematów.

Instalacja zarówno SQL Navigatora jak i Toada jest niezwykle
prosta. Wymagania środowiskowe obydwu pakietów są podobne. Samo narzędzie
instalowane jest na komputerach, których systemem operacyjnym jest Windows, zaś
serwer bazy danych to Oracle w wersjach od 7.3, pracujący na dowolnej,
dozwolonej przez Oracle platformie sprzętowej i systemowej. Jedynym wymaganiem
ze strony serwera bazy danych jest obsługa protokołu SQL*Net lub Net8 w wersji
32 bitowej.

Przez proces instalacji prowadzi „za rękę”
graficzny Instalator. W przypadku Navigatora, po jego zakończeniu uruchamiany
jest jeszcze Instalator obiektów zapisywanych na serwerze bazy danych. Stanowią
one podstawę do działania niektórych funkcji oprogramowania (np. Explain
Plan). „Część serwerową” należy zainstalować na każdym z
serwerów bazy danych, z którym chcemy pracować.

Toad wymaga także założenia specjalnych obiektów na
serwerach bazy danych, ale nie oferuje instalatora do tego celu. Należy
uruchomić skrypt wykonujący niezbędne operacje. Skrypt zapisany jest w pliku
Toadprep.sql.

Do zainstalowania „części serwerowej” musimy
mieć uprawnienia administratora bazy danych.

Przedstawiony powyżej opis programów przybliża zakres ich
wykorzystania. Umiejętność programowania i biegła znajomość języka SQL
nie jest kryterium, którego spełnienie jest warunkiem niezbędnym w pracy z
tymi narzędziami. Ich funkcjonalność pozwala na pracę mniej wprawnym użytkownikom
oraz wspomaga zapoznawanie się ze sposobami zaawansowanego wykorzystania języków
SQL i PL/SQL.

Wersje testowe obu pakietów dostępne są na CD załączonym do tego numeru Ploug’tek

Dystrybutor oprogramowania Quest Software w Polsce:

TETA S.A.
ul. Fabryczna 14
53-609 Wrocław
quest@teta.com.pl
(071) 3234041