Aselmeyer_HTMLDB mit HTMLDB ergänzen

Werbung
HTMLDB mit HTMLDB ergänzen
Nützliche Erweiterungen für den SQL Workshop
Autor(en): Gerhild Aselmeyer, Dipl. Math. – Analysen, Konzpte & Anwendungsentwicklung für EDV
Vorstellung einer HTMLDB-Applikation, welche die
Funktionalitäten von SQL Workshop Object Browser auf
Objekte in Fremddatenbanken – angebunden über
Datenbanklinks – erweitert. Zwar sind noch nicht alle
Informationen, die aus dem Object Browser für die
Objekte der Workspace-Schemata bekannt sind, für die
Remote-Objekte verfügbar, aber die wichtigsten
Funktionen sind realisiert und machen den Entwickler in
HTMLDB (bzw. APEX) unhabhängiger von zusätzlichen
Tools wie SQL*Plus oder TOAD.
• anlegen von Views und Synonymen auf Basis von Objekten über
Datenbanklinks,
• grundlegende Objektbeschreibung von Funktionen, Prozeduren
und Packages,
• alle weiteren Objektinformationen für Tabellen, Views und
Indices außer dem zugehörigen DDL-Statment (CREATE),
• grundlegende Objektbeschreibung aller übrigen Objekte,
• anzeigen des CREATE-Statments für Tabellen, Views und
Indices,
• alle verbleibenden Informationen.
Auf Grund des recht leichten Einstiegs durch die Vielzahl von
Wizards und des umfangreichen SQL Workshops mit der
graphischen Unterstützung für die Generierung von SQL-Statments
eignet sich APEX nicht nur für erfahrene Entwickler und SQLSpezialisten als Entwicklungs-umgebung für Web-Anwendungen,
sondern auch für die schnelle Erstellung von Berichten oder kleinen
Tools für EDV-Fachbetreuer der Fachabteilungen. Allerdings fiel
mir als Schnittstellen- und Integrationspezialistin auf, daß die
Erstellung eines Berichtes über den Status von Bewegungsdaten
zwischen zwei Softwaresystemen zu einem Bruch in APEX führt, da
in den Bewegungsdaten im allgemeinen lediglich numerische Codes
zur Verfügung stehen und die umfangreichen textuellen
Informationen der Stammdaten fehlen, die aber für die Anzeige in
einem Bericht meist sinnvoller sind. Selbst wenn entsprechende
Datenbanklinks zu den Systemdatenbanken existieren, bietet der
SQL Workshop höchstens die Möglichkeit über SQL Commands
oder SQL Scripts entsprechende Recherchen durchzuführen. Hierfür
benötigt man aber schon entsprechendes SQL-Know-How und
detaillierte Kenntnisse bzgl. des Systemkataloges einer Oracle
Datenbank. Daraus entstand die Idee - mir bzw. bei Interesse meinen
Kunden - zur Unterstützung für Projekte, in denen HTMLDB zum
Einsatz kommt, eine entsprechende ‘HTMLDB Add On’-Applikation
zu erstellen.
Nachdem das Konzept stand und die Prioritäten der Entwicklung
festgelegt waren, stellten sich drei Hauptaufgaben heraus:
• zusammenstellen der notwendigen Information aus dem
Datenbanksystemkatalog und erstellen der dynamischen Queries
unter Berücksichtigung älterer Oracle-Versionen (8.x) für
entfernte Datenbanken,
• erstellen von Datenbankfunktionen und –prozeduren zum
Erzeugen von fehlerfreien dynamischen Selektstatements auf
Basis der Information aus den Systemtabellen, um die Daten aus
beliebiegen Tabellen und Views anzuzeigen,
• erstellen von Funktionen und Prozeduren zur Generierung von
DDL-Statments zum Anlegen von Views und Synonymen auf
Basis der Angaben in der Anzeige.
Daß auch die Queries aus dem Systemkatalog als dynamische
Select-Statements realsiert werden müssen, hat folgende Gründe:
DBMS_DESCRIBE.DESCRIBE_PROZEDURE läßt sich nicht für
Remote-Objekte einsetzen und ein Datenbanklink kann nicht als
Bind-Variable in ein Select-Statement eingefügt werden. Daher
haben die Report-Queries für die Objektbeschreibungen alle in etwa
folgendes Aussehen
Entwicklung und erster Einsatz
Vorbereitung
Zunächst habe ich ein grobes Konzept erstellt und festgelegt, welche
Funktionalitäten das Add On umfassen sollte; dabei habe ich mich an
den im Object Browser zur Verfügung gestellten Informationen
orientiert. Allerdings kam ich zu dem Schluß, die Objekt- und
Datenmanipulationen, die dort zur Verfügung stehen, nicht für
Objekte in Fremddatenbanken anzubieten, da dieses leicht zu
Konflikten führen kann. Daher sollen in der kompletten ersten
Aufbaustufe alle Informationsanzeigen wie in APEX für Objekte in
der entfernten Datenbank sowie das Anlegen von Views und
Synonymen im ausgewählten Workspace-Schema auf deren Basis
verfügbar sein.
Für die Realisierung gilt folgender Prioritätenplan:
• grundlegende Objektbeschreibung für Tabellen, Views und
Indices,
• Datenanzeige für Tabellen und Views,
Abbildung 1:APEX-Report basierend auf Systemkatalog der entfernten
Datenbank
Nachdem jetzt die ersten Schwierigkeiten mit den Differenzen im
Systemkatalog überwunden und die Funktionen und Prozeduren
erstellt und weitestgehend getestet sind, stehen die Funktionalitäten
der ersten zwei Punkte bereits zur Verfügung und bringen schon
erheblichen Nutzen. Der einzige Nachteil ist, daß ich keine
Möglichkeit gefunden habe, einen zusätzlichen Link für den direkten
Aufruf der Applikation in APEX zu integrieren, damit auf ein
separates Login verzichtet werden kann.
Aber diesen Nachteil nehme ich gern in Kauf, denn jetzt habe ich bei
der Entwicklung alles übersichtlich in einem Fenster .
Abbildung 2:Entwicklung mit APEX in einem Tab-fähigen Browser
Ohne die Entwicklungsumgebung von HTMLDB vollständig zu
verlassen, lassen sich die Objektbeschreibungen für
Tabellen, ...
Abbildung 3: Objektbeschreibung Tabelle
Views ...
und Indices ...
Abbildung 5: Objektbeschreibung Index
ansehen.
Ebenso stehen die Daten in Tabellen und Views jeder Zeit zur
Verfügung.
Abbildung 6: Daten in der Tabelle AQ$_QUEUE_TABLES einer Oracle 8
Datenbank
Nach Abschluß der Tests für das Anlegen von Views und
Synonymen sind die drei entscheidenden Punkte der Add On
Entwicklung erledigt.
Abbildung 4: Objektbeschreibung View
Abbildung 7:Anlegen von Views und Synonymen basierend auf Objekten
einer entfernten Oracle-Datenbank
Inzwischen ist die Entwicklung vollständig abgeschlossen –
allerdings etwas später als zunächst geplant. Dieses hatte zwei
Gründe:
1.
Query bei Datenanzeige
Um die Anwendung auch ohne ‘Vier-Augen-Prinziep’ ausgiebig zu
testen, hatte ich die Realisierungsreihenfolge der Funktionen so
gewählt, daß ich die bereits abgeschlossenen Funktionen während
der weiteren Entwicklung einsetzen und damit aus Anwendersicht
testen konnte. Dabei fiel mir auf, daß ich eine Zusatzfunktion ohne
Auswirkungen auf Daten und Struktur bei der Datenanzeige nicht
mit in mein Konzept aufgenommen hatte, da diese auf derselben
Ebene im SQL-Workshop zur Verfügung steht wie die
Änderungsfunktionen (s. oben unter Vorbereitung) – die Eingabe
von Einschränkungen für die Anzeige von Tabellen- und
Viewinhalten. Da mir diese Funktion während meiner Arbeit aber
ständig fehlte, habe ich das Konzept ergänzt und die Realisierung
noch vor ‘alle(n) weiteren Objektinformationen für Tabellen, Views
und Indices ...’ eingeschoben.
Jetzt kann man wie im SQL-Workshop die Inhaltsanzeige einer
Tabelle oder View einschränken, ...
Als die Entwicklung abgeschlossen war und der Abnahmetest
anstand, fehlte noch eine Kleinigkeit – so dachte ich jedenfalls: das
Umsetzen des Parsing Schemas analog zur Auswahlliste, damit die
privaten DB-Links zur Verfügung stehen. Aber hierfür fand ich
keine Funktion und in dem einschlägigen Forum bei Oracle, daß
dieses nicht vorgesehen ist.
Eine Analyse von HTMLDB und dem HTMLDB_PBULIC_USER
ergab, daß
•
das Parsing Schema identisch mit dem Flow-Owner ist,
•
bei jedem Request das Parsing Schema aus der Datenbank
gelesen wird,
•
der Zugriff durch den DAD-User nicht über ein Synonym oder
eine View erfolgt und damit eine Manipulation auf einer
zwischengeschobenen Ebene (z.B. View mit Funktion)
ausgeschlossen ist,
•
der Flow-Owner auf Datenbankebene aus einer Anwendung
heraus geändert werden kann – allerdings mit großer Vorsicht,
um
Auswirkungen
auf
die
Workspace-Zuordnung
auszuschließen.
Daher läßt sich zwar das Parsing Schema zur Laufzeit ändern, aber
mit der Auswirkung, daß es dann für alle Anwender – auch bereits
laufender Sessions – umgesetzt wird. Da dies nicht sinnvoll ist, habe
ich eine administrative Funktion ergänzt, mit der der Flow-Owner
von einem ADMIN-Anwender umgesetzt werden kann.
Abbildung 8: Einschränkungen für Daten-Query angeben
was z.B. die Suche nach geeigneten Testdaten erheblich erleichtert.
Abbildung 10: Umsetzen des Parsing Schemas durch einen Administrator
Allerdings leidet die Anwendung etwas darunter, da diese trotzdem
entweder mehrfach installiert werden muß oder alle Datenbanklinks
PUBLIC deklariert werden müssen, außer denen im eingestellten
Parsing-Schema. Damit aber jeder Nutzer stets darüber informiert
ist, in welchem Parsing-Schema er arbeitet, wird dieses jetzt in
Klammern hinter dem Anwendernamen auf jeder Seite mit
angezeigt.
■ Fazit
Abbildung 9: Eingeschränkte Anzeige aus der ALL_TABLES-View des
Schemas SYS einer Oracle 8 -Datenbank
2.
Kein Wechsel des Parsing Schemas zur Laufzeit
möglich
HTMLDB
(bzw.
APEX)
stellt
eine
hilfreiche
Entwicklungsumgebung dar – nicht nur für professionell Entwickler.
Durch die Wizards und SQL Workshop ist ein Einstieg mit
schnellem Erfolg auch für Anwender mit wenig Oracle
Datenbankerfahrung und SQL Grundkenntnissen möglich.
Noch fehlende Erweiterungen lassen sich mit Hilfe des Tools selbst
ergänzen. Nur zwei Wünsche bleiben offen: Die Möglichkeit eigene
Add Ons in die Applikation so einzubinden, daß die
Authentifizierung übernommen werden kann und die Entkoppelung
von Flow-Owner und Parsing Schema mit der Möglichkeit letzteres
zur Laufzeit umzustellen.
Kontakt:
Gerhild Aselmeyer
[email protected]
Herunterladen