Dokumentation des Programms Xdobry | ||
---|---|---|
Zurück | Benutzer Handbuch | Nach vorne |
Es ist ein Programm, mit dem der eigentlicher Endbenutzer der Datenbank zu tun hat. Dieses Programm kann die Formularbeschreibungen, die von Formular-Editor stammen, richtig auswerten und die Formulare darstellen. Dieses Programm muss die Manipulationen auf den Formularen richtig in in die SQL Anweisungen umsetzten und an die Datenbank quittieren. Dabei werden folgende Funktionen unterstützt:
Daten Anzeigen (View)
Daten Modifizieren (Update)
Daten Anlegen (Create)
Daten Filtern oder Durchsuchen
Daten Sortieren
durch Daten Navigieren (Browsing or Navigate)
Die Formulare selbst unterstützen direkt höhere Abstraktionskonzepte wie Assoziation, Aggregation und Spezialisierung. Die Kenntnisse über die Konzepte der relationalen Modellierung wie Fremdschlüssel und Primärschlüssel müssen nicht vorhanden sein. Der Benutzer kann die verständliche und allgemeinere Konzepte wie Aggregation und Assoziation wahrnehmen, ohne auf die besondere Techniken der relationalen Modell eingehen zu müssen.
Die Benutzung der Formulare zum Navigieren durch eine Daten-Bank war die Idee, die mich zur Entwicklung des System verleitet hat. Mit dem s.g Formular-Links (Verweisen) kann man in einer Datenbank wie in Hypertextdokumenten navigieren. Die Idee der Hyperlinks sollte inzwischen jedem Benutzter bekannt sein. Die Links entstehen entlang der Assoziation-Pfaden.
Die Abbildung 6 zeigt eine Assoziation zwischen Drei Objekten (Student, Vorlesung, Professor). Die entspreche Tabellen-Struktur ist wie folgt:Professor {PersNr,Rang,Raum} Student {MatrNr,Name,Semester} Vorlesung {VorlesungNr,Titel,SWS,PersNr} pruefen {MatrNr},VorlesungNr,PersNr,Note} |
Die Assoziationen haben aber eine komplexere Semantik als Hypertext-Links. Die Assoziation ist immer transitiv (zweiseitig). Die Hyper-Links haben nur einen einseitigen Verweis-Charakter. Die Assoziationen können zwischen mehren Objekten bestehen. Man sagt, die Granuliät der Assoziation kann größer als 2 sein. Ein Hyper-Link verbindet nur 2 Dokumente. Die Kardinalität der Assoziation kann mehr als 1 betragen. Ein Student nimmt an mehreren Prüfungen teil.
Die Abbildung 7 zeigt wie ein Link (Prüfen) aus Formular Student ausgeführt werden kann. Es gibt mehrere Typen von Formular-Link, die auch den Assoziation-Typen in ER-Modell entsprechen.Die Beziehung wird durch eine veränderbare Referenz dargestellt und deckt sich mit Fremdschlüssel-Attributen der Tabelle. Mit einem Doppelt-Klick kann das Formular des Objekts geöffnet werden, auf das die Referenz Verweis.
Die Beziehung wird als eine einfache Schaltfläche dargestellt. Es ist die andere Seite der 1:N Beziehung. Die Fragestellung lautet: Suche die Objekte die auf das Objekt zeigen.
Die Beziehung wird durch einen Menü-Button dargestellt. Der erste Menüpunkt zeigt immer auf die N:1 Beziehung auf die Referenz-Tabellen (Tabellen, die N:M modellieren, und meistens nur Fremdschlüssel haben). Die nächsten Menüpunkte, zeigen die eigentliche Objekte der N:M:.. Beziehungen. Die Fragestellung: Suche die Objekte die durch die Referenz-Tabelle mit dem Objekt in der Beziehung stehen.
Das Konzept der Formular-Links kann auf dem ersten Moment sehr kompliziert erscheinen, ist allerdings intuitiv sehr schnell erlernbar und kann sogar durch die Möglichkeit von Links-Ketten sehr schnell zu Lösung von komplexen Fragen angewendet werden. Z.b. es kann schnell herausgefunden werden, mit welchen anderen Studenten ein Student einer Vorlesung zuhört. Die Fragestellungen. Wie heißen die Assistenten von Professoren, bei denen ein Student ein Prüfung ablegt, sind durch zwei Formular-Links zu lösen. Eine Frage, die bereits einer relativ komplexen SQL-Abfrage benötigt hätte.
FormularServer besitzt eine Schnittstelle, die es erlaubt, die Funktionalitäten der Formulare um eigene Prozeduren zu erweitern. Dazu können gehören:
Eigene Überprüfung der Integrität-Regel |
Besondere Behandlung von Attributen, z.B Formatierung bei Datenspeicherung oder Daten-Visualisierung |
Berechnung von abgeleiteten Attributen |
Selbstdefinierte Aktionen |
Die Makros (Selbstdefinierte Prozeduren) werden in XOTcl als eine abgeleitete Klasse von FormEngine geschrieben. Der Name der Klasse muss mit dem Namen des Formulars übereinstimmen. Die Makros gelten nur für dieses Formular. Sie werden von FormServer geladen und als ein Teil des Programm benutzt. Hier eine Unterlage die für die eigenen Makros benutzt werden kann. (für Formular myform)
Class myform -superclass FormEngine myform instproc update_check klvalues_ref { return 1 } myform instproc delete_check {} { return 1 } myform instproc insert_check klvalues_ref { return 1 } myform instproc after_delete {} { } myform instproc reload_form {} { } myform instproc position_check {pos} { return 1 } FormEngine instproc filling_form klvalues_ref { } |
Sehen sie das Beispiel accountancy das vollständig mit Makros implementiert ist.
Ein Customer (Klient) kann nur gelöscht werden, wenn er keine oder nur Bezahlte Rechnungen (orders) hat. Danach wird der Fremd-Schlüssel (custId) in Tabellen cust_order (Bestellungen) auf NULL gesetzt.
Für jede Rechnung wird der Preis (total) von FormularServer berechnet
Berechnung des Preises für jedes Produkt (anzahl*preis)
Überprüfung ob das Datum der Form 2000-01-01 entspricht
Beim Start von FormServer kann einer Reihe von Programm-Parameter angegeben werden. Es spart die Klick-Arbeit wenn das Programm aus Skripten ausgeführt wurde.
Bei der Starkit variante können keine Parameter spezifiziert werden. |
FormServer -- [-help] [-debug] [-viewonly] [-ignorexmlpar | -noconnectdialog | -connect connectpar | -loadmacros macrofile | -openform formname | xmlfile]
Aktiviert Menüs für debugging: SQL-Monitor, XOtcl Klassen-Browser, Tk-Window Browser, Interaktiver Modus
Die Datenbankinhalten können nur angeschaut werden. Kein Löschen, Einfügen und Modifizieren von Tupeln
Die Parameter, die in XML-Datei kodiert werden (Datenbankanbindung, Makros), werden nicht beachtet (sinvoll mit -connect parameter)
Es wird versucht eine Datenbankverbindung ohne Befragungs der Benutzer durchzuführen die Verbindungsparameter können entweder in XML oder durch -connect Parameter spezifiziert werden.
Lädt automatisch ein Tcl-Skript. Sinnvoll um eigene Makros zu programmieren.
Angeben von Datenbank Verbindungs-Parameter. Wenn keine -ignorexmlpar angeschaltet wurde, werden die XML-codierte Parameter überschrieben. Die Parameter werden in Form einer TclX keyed list angegeben. Die Namen der Parameter hängen von benutzten DB-Schnittstelle z.B. für mysql wäre das.
-connect "{interface mysql} {user root} {dbank test} {password geheim} {socket /var/lib/mysql/mysql.sock}" |
Das Programm versucht ein Formular nach dem Start sofort zu öffnen. Voraussetzung die Formulare wurden erfolgreich geladen und die Datenbankverbindung steht.
Alle FormServer Parameter müssen durch -- von Tcl-Parametern getrennt werden. |
./FormServer.tcl -- -debug -viewonly -connect "{interface mysql} {dbank uni} {user root} {socket /var/lib/mysql/mysql.sock}" -noconnectdialog -openform Student uni.xmlforms |
Zurück | Zum Anfang | Nach vorne |
FormEditor | Nach oben | Schema vs. Formularaussehen |