Masken im Web

Seit Oracle 10 gibt es mit HTML-DB eine Webanwendung fĂĽr die Datenbank, die fast ohne SQL-Kenntnisse zu in aktuellen Browsern laufenden Programmen fĂĽhrt.

vorlesen Druckansicht 5 Kommentare lesen
Lesezeit: 9 Min.
Von
  • Martin Seifert
  • Christian Kirsch
Inhaltsverzeichnis

Büroarbeiter benötigen häufig Übersichten und Auswertungen und benutzen dafür meist Excel-Tabellen oder Access-Anwendungen. Bei Excel verliert man einerseits leicht die Übersicht, welche Tabelle aktuell ist. Andererseits lassen sich Excel-Dokumente nicht dezentral von allen Beteiligten bearbeiten. Auch Access eignet sich nur begrenzt für den Mehrbenutzerbetrieb. Abhilfe könnten zwar selbstgeschriebene Java- oder Webanwendungen schaffen, was jedoch viel Aufwand und Programmierkenntnisse erfordert.

Einen Ausweg aus dem Dilemma bietet Oracles HTML-DB - zumindest fĂĽr Firmen, die den Datenbankserver ohnehin einsetzen. Zwar gibt es einen kostenlosen Zugang zu dem Produkt, fĂĽr mehr als Experimente und das Sammeln von Erfahrungen eignet sich dieser jedoch nicht. Denn zum einen erfolgt die DatenĂĽbertragung unverschlĂĽsselt, zum anderen sollten sensible Firmendaten nicht auĂźer Haus gelangen.

Mehr Infos

Oracle hält sein Produkt für pragmatische interne Lösungen geeignet, jedoch nicht für komplette Unternehmensanwendungen. Oracle 10 bringt HTML-DB bereits mit. Anwender der Vorgängerversion können es beim Hersteller kostenlos herunterladen. Zur lokalen Installation des DB-Servers sind mindestens Oracle 9.2.0.3, das Passwort des Users SYS und ein Apache mit mod_plsql erforderlich. Zuerst legt der Administrator ein neues Schema (beispielsweise HTMLDB) und einen gleichnamigen Tablespace in der Datenbank an. Weitere Schemata, die mit dem Präfix FLOW beginnen, erzeugt das Installationsscript ins.sql automatisch. In ihnen speichert es systemspezifische DB-Objekte. Während der Installation ist ein Administratorpasswort für HTML-DB festzulegen. Mit diesem meldet man sich anschließend bei http://localhost/pls/htmldb_admin an und erstellt bei Bedarf Accounts für weitere Administratoren oder Entwickler.

Zur Nutzung von HTML-DB-Anwendungen eignen sich aktuelle Browser, die CSS und Javascript verstehen. Am Client ist keine weitere Installation erforderlich. Da es sich bei der HTML-DB um eine mehrsprachige Anwendung handelt, legen die Browsereinstellungen fest, in welcher Sprache ihre Oberfläche erscheint. Dabei spielt es keine Rolle, ob es sich beim Browser selbst um eine deutsche oder um eine englische Version handelt. Erscheint die Oberfläche dennoch auf Englisch, ist die deutsche Version nicht in der DB installiert. Mehr dazu findet sich in einem Thread im Oracle-Forum.

Ähnlich wie Access bietet HTML-DB gleichzeitig eine Entwicklungs- und eine Ablaufumgebung. Anwender können nur auf Letztere zugreifen, während Administratoren und Entwickler sich vorwiegend in Ersterer aufhalten. Zur Illustration der Arbeit mit HTML-DB dient im Folgenden eine simple Mitarbeiterverwaltung, bestehend aus den beiden Tabellen „Mitarbeiter“ und „Abteilung“. Erstere enthält neben den üblichen personenbezogenen Informationen für jeden Mitarbeiter die Nummer seiner Abteilung. Dieser Zahl ordnet die Tabelle „Abteilung“ einen Namen zu. Die Anwendung soll einfaches Eingeben, Ändern und Suchen von Mitarbeiterdaten ermöglichen.

Nach der Anmeldung bei der HTML-DB sind zunächst die Tabellen anzulegen. Dazu dient der Link „Objekt erstellen“ im SQL-Workshop. Hier lassen sich die Namen und Typen der Spalten direkt eingeben, ebenso der Primärschlüssel, für den das Programm eine automatisch erzeugte Sequence vorschlägt. Für die Festlegung von Constraints auf einzelne Spalten oder Indizes für die Tabelle gilt es jedoch einen kleinen Umweg zu nehmen.

Erst nach dem Erstellen der Tabelle wählt man dazu im Databrowser des SQL-Workshops im Unterpunkt „Tabellen“ die passende aus. Etwas versteckt findet sich rechts im Abschnitt „Tasks“ mit dem Eintrag „Tabelle verwalten“ der Zugang zu den Feineinstellungen. Hier lässt sich beispielsweise mit „Constraint hinzufügen“ die Bedingung angeben, dass Geschlecht IN (’M’,’W’,’m’,’w’) sein möge. Spätestens an dieser Stelle sind Oracle- oder zumindest SQL-Kenntnisse erforderlich, da die Oberfläche keine Hilfe bei der Definition der Constraints bietet. Ähnlich wie Constraints erstellt der Entwickler Fremdschlüssel, Indizes und Trigger oder verändert Spaltendefinitionen.

Den größten Teil der Änderungsmaske hat HTML-DB automatisch erzeugt. Eigene Anpassungen betreffen die Auswahlliste für die Abteilungen und die Checkboxen für das Geschlecht.

Liegen die Tabellen in der gewünschten Form vor, folgt das Bauen der Anwendung. Die besteht in HTML-DB aus „Seiten“, die wiederum in „Regionen“ unterteilt sind. Einen ersten Prototyp erzeugt das Programm, wenn man im Application Builder „Anwendung erstellen“ gefolgt von „auf vorhandenen Tabellen basieren“ wählt. In diesem Fall legt HTML-DB Seiten für das Suchen/Ändern, Eintragen und Auswerten der gewählten Tabellen an.

Diese sind direkt benutzbar, bieten aber nicht in jedem Fall den gewünschten Komfort. Im Beispiel benutzt HTML-DB etwa für die Abteilungsnummer beim Bearbeiten eines Mitarbeitereintrags ein Textfeld, in das der Benutzer einen Zahlenwert einträgt. An dieser Stelle ist eine Auswahlliste jedoch sinnvoller: Zum einen möchte sich niemand die internen Codes für Abteilungen merken, zum anderen sind solche manuellen Eingaben fehlerträchtig. Ähnliches gilt für das Geschlecht: Das sollte durch Anklicken auszuwählen statt in ein Textfeld einzutragen sein. Für beide Verbesserungen muss die Entwicklerin zunächst eine Werteliste anlegen („Application Builder“, Registerkarte „Wertelisten“). Die Namen der Abteilungen liefert die SQL-Abfrage

select abt_name d, id r from abteilung 
order by 1

In diesem Fall müssen die beiden Spalten-Aliase immer d und r heißen, damit HTML-DB erkennt, welche Spalte zur Darstellung (d) und welche zur Speicherung in der Datenbank (r) dient. Ohne SQL-Kenntnisse lassen sich statische Wertelisten wie die für das Geschlecht der Mitarbeiter anlegen - hier reicht es, „M“ und „W“ einzutragen.

Derart vorbereitete Wertelisten finden nun in den Seiten für das Eintragen und Bearbeiten der Mitarbeiter ihre Verwendung. Im Application Builder wählt ein Klick auf die gewünschte Seite diese für das Bearbeiten aus. Unter „Elemente“ finden sich anschließend die beiden zu ändernden Felder für „Geschlecht“ und „Abteilung“, die wiederum ein Klick für das Bearbeiten auswählt. Im ersten Fall sorgen „Kontrollkästchen“ im Feld „Anzeigen als“ und die Wahl der passenden Werteliste dafür, dass „M“ und „W“ als Checkboxen erscheinen. Analog stellen „Auswahlliste“ bei „Anzeigen als“ und der Name der Abteilungswerteliste sicher, dass Anwender die Abteilung durch Anklicken des Namens in einem Popupmenü wählen können.

Für Aussehen und Positionierung der Seitenelemente sind Vorlagen (Templates) zuständig, von denen Oracle einige mitliefert. Wer jedoch Wert auf „Corporate Identity“ legt oder eigene Vorstellungen von „ansehnlich“ hat, muss sich die passenden Vorlagen mit HTML und CSS selbst bauen. Eigener Einsatz ist auch bei einigen Beschriftungen gefragt, bei denen die Übersetzung offenbar nicht automatisch funktioniert. Dazu gehören beispielsweise die Knöpfe zum Ausführen und Abbrechen, die HTML-DB im Urzustand mit „OK“ und „Cancel“ beschriftet. Ähnliches gilt für die Navigation auf der Hauptseite der Applikation, in der ebenfalls manuell die gewünschten Begriffe für „Bearbeiten“ et cetera einzutragen sind.

Zwischen den einzelnen Seiten der Anwendung lassen sich Navigationspfade auf zweierlei Art definieren. Zum einen kann jedem Knopf (OK, Abbruch et cetera) eine Seite zugeordnet werden, zu der das Programm nach seinem Anklicken verzweigt. Zum anderen lassen sich im oberen Teil der Anwendung Registerkarten verankern, die jeweils auf die gewünschten Seiten führen. Wer damit eine mehrstufige Navigation realisieren will, muss bei den Registerkarten „für zwei Ebenen“ auswählen, damit er übergeordnete Registerkarten zur Steuerung anlegen kann.

Neben den geschilderten Fähigkeiten bietet HTML-DB einiges mehr. (PL/)SQL-Kenner etwa können darin alle Datenbankoperationen ausführen. Weniger versierte Entwickler erfahren auf Wunsch im SQL-Workshop, welchen Quellcode die Wizards erzeugen und vermögen so ihre Kenntnisse zu verbessern. Im Dataworkshop lassen sich bis zu 30 KByte per Drag & Drop direkt aus einer Excel- in eine Oracle-Tabelle übernehmen. Für größere Datenmengen bieten sich CSV (Comma Separated Values) oder XML als Importformate an. Aus den ersten beiden Varianten kann HTML-DB direkt Tabellen erstellen. Ein XML-Import ist aber nur in bereits bestehende Tabellen möglich.

Für umfangreiche Exporte bietet sich das CSV-Format an, da der XML-Export auf 4000 Zeichen begrenzt ist. Er eignet sich daher eher zum Erzeugen eines Templates für den Datenaustausch. Für größere XML-Exports benutzen fortgeschrittene Anwender das Template „export XML“ in den Regionen der Seite. Eine damit gespeicherte Exportdatei muss allerdings vor der Weiterverwendung um einen XML-Header ergänzt werden.

Den Zugriff auf die Anwendung regelt eine eigene Benutzerverwaltung in HTML-DB, die drei Rollen kennt: Administrator, Entwickler und Anwender. Aber Zugang zu ihr haben lediglich Erstere, und erwartungsgemäß können Anwender eine Applikation nur einsetzen, nicht jedoch ändern. Entwickler haben schreibenden Zugriff auf alle Seiten der Anwendung; Administratoren benutzen Monitorfunktionen, um unter anderem Auskunft über die Seitenzugriffe zu bekommen.

Martin Seifert
ist Leiter des Teams „Verfahren und Entwicklungswerkzeuge ICIS“ der SVI GmbH, mitverantwortlich für die Testautomatisierung.
(ck)