DB2 – Access Views und Query Views

15.12.2006 von Elmar Fuchs
Wird in Lotus Notes Domino 7 DB2 als Datenspeicher für Notes-Datenbanken genutzt, stehen für die Entwicklung von Notes-Datenbanken mit den DB2 Access Views und Query Views interessante neue Funktionen zur Verfügung. Sie ermöglichen den Zugriff von DB2 auf Notes-Daten, und umgekehrt.

Mit dem Release 7.0 wurde in Lotus Notes Domino die Möglichkeit der optionalen Datenspeicherung in DB2 eingeführt. Da die Ablage der im Notes-typischen .nsf Format gespeicherten Daten in einer relationalen Datenbank ein hochkomplexer Prozess ist und scheinbar noch nicht in allen Belangen zur vollen Zufriedenheit der Entwickler bei IBM arbeitet, wurde diese Möglichkeit nur in beschränktem Umfang mit dem Erscheinen des Final Release der Software freigegeben.

Einer ausgewählten Anzahl von Großkunden wurde angeboten, die Funktion bei Erhalt von Support zu nutzen. Allen anderen Kunden steht es frei, die Funktion zu nutzen, es erfolgt jedoch seitens IBM kein Support. Als Konsequenz dessen ist die Nutzung der DB2-Integration zum gegenwärtigen Zeitpunkt noch nicht so weit verbreitet.

Mit dem Release 8 von Lotus Notes Domino (Codename „Hannover“) soll dieser Zustand jedoch Geschichte sein. Die DB2-Integration wird dann ein vollwertiges Feature der Software. Ein näherer Blick auf die damit für den Notes-Entwickler verbundenen Möglichkeiten ist deshalb bereits zum jetzigen Zeitpunkt durchaus interessant, da auf das Erscheinen des neuen Release im Jahr 2007 gehofft werden darf – ob es aber so kommt, bleibt abzuwarten.

Die DB2-Integration bietet eine weitere Alternative zur gemeinsamen Nutzung von Notes und relationalen Daten. Als neue Funktionen stehen die DB2-Zugriffsansichten (DB2 Access Views, DAV) sowie die DB2-Abfrageansichten (Query Views) zur Anwendung bereit.

DB2-Zugriffsansichten

Die DAV ermöglichen es, statt mittels Open Database Connectivity (ODBC) auf relationale Daten zuzugreifen, die Formelsprache bzw. LotusScript, die Domino Enterprise Connection Services (DECS) oder die darauf aufbauenden Data Connection Ressources (DCR) zu verwenden, um von DB2 auf in Notes-Datenbanken gespeicherte Daten zuzugreifen. Ihr primäres Ziel ist es, Domino-Daten externen Anwendungen über SQL bereitzustellen. Sie bilden eine mögliche Grundlage für DB2-Abfrageansichten. Als zusätzliche Möglichkeit der Anwendung von DAVs ergibt sich daraus, mehrere DAVs in einer DB2- Abfrageansicht zu verknüpfen. Damit ist es möglich, eine Ansicht mit virtuellen Dokumenten zu erstellen. Dokumente, welche mit verschiedenen Masken erstellt wurden, können dabei gemeinsam in einer Zeile einer Ansicht angezeigt werden.

DAV sind typische DB2-Ansichten. Sie können nicht direkt im Notes-Client geöffnet werden. Im Vergleich zu einer reinen DB2-Ansicht bieten DAVs eine zusätzliche Stufe der Zugriffsteuerung auf die Daten. Sie ermöglichen die Kontrolle auf Ebene des Servers, der Datenbank sowie der Dokumente (Autor- und Leserfelder).

DB2-Abfrageansichten

DB2-Abfrageansichten erlauben es, dynamische Ansichten mittels einer SQL-Abfrage (Standard Query Language) sowohl aus Notes-Daten als auch aus Daten relationaler Tabellen zu erzeugen. Ihr primäres Ziel ist es, DB2-Daten in Notes- Anwendungen zu nutzen. Zusätzlich bieten sie, wie bereits oben erläutert, die Möglichkeit, mehrere DAVs in einer Ansicht zusammenzufassen und damit virtuelle Dokumente zu erzeugen.

DB2-Abfrageansichten sind hinsichtlich Formatierung typische Notes-Ansichten. Die Art ihres technischen Aufbaus und ihrer Verwaltung ist jedoch grundsätzlich anders. Die Servertasks Update und Updall werden dafür nicht benutzt. Stattdessen werden die DB2-Abfrageansichtenbei ihrem Aufruf jedes Mal neu aufgebaut. Dies hat den Vorteil, dass sie wenig Speicherplatz in der Datenbank benötigen. Nachteilig ist natürlich der nötige Zeitaufwand durch den jedes Mal erforderlichen Komplettaufbau der Ansicht.

Voraussetzungen

Für die Nutzung der DAV sowie der DB2-Abfrageansichten in einer Domino-Anwendung müssen einige Voraussetzungen erfüllt sein. Zuers benötigen Sie als Notes-Datenbankentwickler ein Grundverständnis für relationale Datenbanken und zumindest Basiskenntnisse in SQL, der Standardsprache der relationalen Datenbanken. Haben Sie sich noch nicht mit diesem Thema befasst, steht Ihnen hier einiges an Lernaufwand bevor. Die Anforderungen an Notes-Entwickler werden damit nach Formelsprache, LotusScript, HTML, JavaScript, Cascading Stylesheets (CSS), XML und Java um eine weitere Facette reicher.

Daneben gibt es natürlich eine Reihe technischer Punkte:

Beispielszenarien

Die Umsetzung all dieser Voraussetzungen ist komplex und erfordert eine Fülle von Aktionen. Deren Beschreibung würde den Umfang des Artikels bei Weitem sprengen. Die Integration von Lotus Notes Domino und DB2 wurde jedoch schon mehrfach in Expert's inside Lotus Notes Domino behandelt. So beinhalteten die Hefte 07/04, 08/04 und 11/04 Artikel, die einen kurzen Überblick über die Gesamtthematik der Integration von DB2 und Lotus Notes Domino geben.

Das Thema der Installation von DB2 sowie die Vorstellung der verschiedenen Administrationswerkzeuge war Gegenstand mehrerer Artikel der Ausgaben 04/12, 02/05 sowie 03/05. Einen kurzen Einblick in die Möglichkeiten der Access und Query Views gewährte die Artikelfolge „DB2 und der Domino-Designer“ in den Ausgaben 12/04 und 02/05. An Letztgenannte knüpft der vorliegende Artikel an. Anhand von konkreten Beispielen werden die aus der Kooperation von DB2 und Lotus Notes Domino resultierenden Möglichkeiten für den Notes-Anwendungsentwickler vorgestellt.

Im Folgenden wollen wir einige typische Beispielszenarien für die beiden neuen Designfunktionen etwas näher betrachten:

Als Datenbasis verwenden wir auf Seiten DB2 die vielen bekannte Beispieldatenbank SAMPLE, welche bei der Erstinstallation oder zu einem späteren Zeitpunkt zu Übungszwecken installiert werden kann. Auf Seiten von Lotus Notes Domino nutzen wir die Datenbanken DB2BSPL.NSF und DB2BSP2.NSF, die auf der Webseite des Verlags zum kostenlosen Download zur Verfügung stehen. Wollen Sie diese verwenden, müssen Sie sie zuerst auf DB2 migrieren. Dies erreichen Sie durch das Erstellen einer neuen Kopie oder einer neuen Replik auf Ihrem Server.

DB2-Zugriffsansichten erstellen

Beginnen wir mit einer DB2-Zugriffsansicht. Es sind vier Schritte notwendig:

  1. Die Erstellung der DAV mit dem Domino-Designer.

  2. Die Erstellung der Tabelle in DB2.

  3. Das Füllen der Tabelle in DB2 mit den bereitsn in der Notes-Datenbank vorhandenen Daten.

  4. Die Gewährung der Zugriffsrechte auf die Tabelle in DB2.

DAV sind ein neues Gestaltungselement im Domino-Designer. Sie befinden sich unter Shared Resources. Öffnen Sie die DB2-fähige Notes- Datenbank im Domino-Designer, und wählen Sie diese Ansicht. Klicken Sie auf die Schaltfläche New DB2 Access View.

Das Erscheinungsbild einer DAV im Designer erinnert stark an eine Gliederung. Generell stehen Ihnen zwei Wege zum Hinzufügen von Feldern offen. Sie können sie über Insert Field manuell erstellen und alle notwendigen Einstellungen selber eingeben. Oder Sie verwenden Choose Field, um ein Feld aus den vorhandenen Gestaltungselementen auszuwählen. Bei der zweiten Möglichkeit ist von Vorteil, dass Sie das Risiko, durch Schreibfehler eine fehlerhafte Ansicht zu erzeugen, weitestgehend minimieren können. Deshalb ist diese Methode vorzuziehen. Aber egal, welchen Weg Sie wählen: Mit jedem Feld, das Sie erstellen, fügen Sie der DB2-Tabelle eine Spalte hinzu. Beschränken Sie Ihre Auswahl dabei auf die Felder, welche in der Tabelle unbedingt erforderlich sind, um die Größe der DB2-Tabelle in Grenzen zu halten.

Bild 1 zeigt die zur Aktion Chosse Field gehörende Dialogbox. Wählen Sie unter Type als zu verwendende Datenquelle Form. Daneben stehen noch Subforms und Shared Fields zur Auswahl. Bestimmen Sie die zu verwendende Maske. In der Beispieldatenbank ist dies Person. Wählen Sie auf der rechten Seite die in die DAV aufzunehmenden Felder (im Beispiel alle), und schließen Sie das Dialogfenster mit OK. Anschließend können Sie die Reihenfolge der Felder mittels Drag&Drop ändern. Damit bestimmen Sie die Reihenfolge der Spalten in der aus der DAV resultierenden DB2-Tabelle. Für jedes Feld müssen Sie einige Eigenschaften definieren. Field Name bestimmt den Spaltennamen der Tabelle. Dies muss der Name des Feldes der Notes- Maske sein. Notes type enthält den Datentyp des Feldes.

Bild 1: Das Dialogfeld der Aktion Choose Field.

Bei der Vorgehensweise über Choose Fields sind diese Felder bereits korrekt ausgefüllt. Im Feld DB2 type bestimmen Sie den Datentyp der Tabellenspalte der DB2-Tabelle. Es empfiehlt sich die Auswahl von VARCHAR für alle Textwerte und DOUBLE für alle Zahlenwerte.

Mögliche Kombinationen

Eine Auflistung der möglichen Kombinationen enthält Tabelle 1. Soll die Spalte in DB2 indiziert werden, aktivieren Sie die Eigenschaft Create DB2 index field. Allow truncation of Notes data erlaubt, längere Werte auf die in DB2 column length festgelegte Größe abzuschneiden. Dieses Feld steht Ihnen nur bei Verwendung des Typs VARCHAR zur Verfügung. Handelt es sich bei dem Notes-Feld um einen Mehrfachwert, bestimmen Sie in Store multiple values as, ob Sie nur den ersten Wert (Single value only) oder alle Werte (Delimeted values) getrennt durch ein bestimmte Zeichen in die DB2-Tabelle aufnehmen. In letzterem Fall bestimmen Sie im Feld DB2 multivalue delimiter das zu verwendende Zeichen. Geben Sie kein Zeichen ein, wird das Semikolon gesetzt.

Tabelle 1: Mögliche Zuordnungen von Notes-Datentypen zu DB2 Datentypen

Domino

DB2

Text, Textliste

VARCHAR, LONGVARCHAR

Zahl

INTEGER, DOUBLE

Zahlenliste
DOUBLE

VARCHAR, LONGVARCHAR, INTEGER,

Datum/Zeit

DATE, TIME, TIMESTAMP

Datum/Zeit-Liste
Datum/Zeit-Bereich

VARCHAR, LONGVARCHAR, DATE, TIME, TIMESTAMP

Als Nächstes setzen Sie die Eigenschaften für die DAV (Bild 2). Der Name muss den Anforderungen eines Namens unter DB2 genügen: Er ist maximal 128 Byte lang, besteht nur aus Buchstaben, Zahlen und ausgewählten Sonderzeichen, beginnt mit einem Buchstaben und ist kein reserviertes Wort von SQL oder DB2. DB2 passt den Namen einer DAV an, indem das Suffix _T automatisch angehängt wird und alle Leerzeichen in Unterstriche umgewandelt werden.

Bild 2: Die Festlegung der Eigenschaften für die DAV.

Über Select the form(s) associated with the DB2 access view bestimmen Sie, welche Maske zur Auswahl der in die Tabelle aufzunehmenden Dokumente verwendet wird. Im Regelfall sollte das nur eine Maske sein.

Über die Option Compute with form on DB2 insert or update legen Sie fest, ob für berechnete Felder bei der Aktualisierung oder Neuerstellung eines Dokuments in DB2 die enthaltene Formel ausgeführt werden soll. Bestimmen Sie im Feld Default form to use for DB2 inserts, welche Maske bei der Bearbeitung der Dokumente in DB2 verwendet werden soll. Beim Erstellen eines neuen Dokuments wird der Name der ausgewählten Maske in das Feld Form eingetragen. Auf dem Register Advanced stehen Ihnen weitere Einstellungsmöglichkeiten hinsichtlich der Verwendung der Dokument-IDs und des Umgangs mit Zeiteinstellungen zur Verfügung.

DAV speichern und prüfen

Nachdem Sie die notwendigen Einstellungen vorgenommen haben, können Sie die DAV speichern und anschließend prüfen. Dafür nutzen Sie die Schaltfläche Validate. Es wird damit geprüft, ob Ihre Einstellungen den Mindestanforderungen an eine gültige DAV genügen. Ist dies der Fall, erhalten Sie eine entsprechende Meldung (Bild 3). Schließen Sie anschließend die DAV. Als Status wird für die DAV in der Ansicht der Gestaltungselemente ein Symbol angezeigt, welches für eine neue DAV steht (Tabelle 2).

Bild 3: Die Meldung über die erfolgreiche Validierung der DB2 Access View.
Tabelle 2: Symbole zur Anzeige des DAV-Zustands im Domino-Designer.

Symbol

Bedeutung

Symbol1.tif

Neue DAV, noch nicht in DB2 erstellt.

Symbol2.tif

Neue DAV, bereits in DB2 erstellt aber noch nicht mit Daten gefüllt.

Symbol3.tif

Erfolgreich erstellte und gefüllte DAV.

Symbol4.tif

Fehlerhafte DAV.

Nun können Sie die Tabelle in DB2 erstellen. Dazu wählen Sie die Aktion Create/Update in DB2. Dies ist beim Erstellen, aber auch bei jeder Änderung des Designs der DAV notwendig. Nach dem Ausführen der Aktion erhalten Sie eine Meldung, und der Status wechselt auf Erstellt, aber noch nicht gefüllt. Das Füllen der Tabelle in DB2 mit den bereits in der Notes-Datenbank vorhandenen Daten erfolgt über die Aktion Populate in DB2. Diese Aktion ist nur einmalig bei der Erstellung einer neuen DAV notwendig, kann aber bei einer Vielzahl von Daten sehr lange dauern. Die Aktualisierung der Ansicht erfolgt nicht automatisch, nutzen Sie dazu die Aktion Refresh Status.

Jetzt können Sie die mit der DAV erzeugte Tabelle in der DB2 Steuerzentrale betrachten. Öffnen Sie sie, und zeigen Sie die in der Datenbank Domino_1 (bei Standardinstallation) befindlichen Tabellen an. Suchen Sie nach dem Schemanamen, der dem Namen Ihrer Datenbank entspricht (im Beispiel DB2Bspl). Diesem ist mindestens eine Tabelle zugeordnet (Bild 4). Über das Kontextmenü können Sie über den Menüpunkt Zugriffsrechte DB2-Anwendern Rechte auf die Tabelle zuweisen. Weisen Sie einem von Ihnen eingerichteten Administrator alle verfügbaren Rechte zu. Anschließend können Sie dieTabelle zur Anzeige der Daten öffnen (Bild 5). Neben den in der DAV bestimmten Feldern sind noch zusätzlich die Felder #Readers, #Unid, #Modified, #OID und #NoteID enthalten.

Bild 4: Der Zugriff auf die mit der DAV erzeugte Tabelle in der DB2-Steuerzentrale.
Bild 5: Eine zur Anzeige der Daten geöffnete Tabelle.

Nehmen Sie Änderungen an den Daten auf Seiten von Lotus Notes vor; sie sind in der DB2 Tabelle sofort sichtbar. Umgekehrt werden Änderungen an den Daten (Befehle: INSERT, UPDATE, DELETE) in DB2 nicht direkt ausgeführt, sondern an den Domino-Server übergeben. Damit wird sichergestellt, dass die Änderungen in Domino korrekt synchronisiert werden.

DB2-Abfrageansichten erstellen

Im Gegensatz zur DAV handelt es sich bei DB2- Abfrageansichten nicht um ein neues, sondern um ein erweitertes Gestaltungselement im Domino- Designer. Im Prinzip handelt es sich um eine normale Ansicht. Als Besonderheit verwendet Sie jedoch eine SQL-Abfrage zur Auswahl der Dokumente. Diese Abfrage kann vom Entwickler fest vorgegeben oder dynamisch, zum Beispiel über @Prompt-Fenster, zusammengestellt werden. Wichtig ist nur, dass das Ergebnis eine gültige SQL SELECT-Anweisung in DB2 ist. Weitere Besonderheiten sind, dass Sie die Gestaltung immer mit einer leeren Ansicht beginnen und die verwendeten Spalteninhalte den Spaltenbezeichnern der DB2-Tabelle entsprechen müssen. In der Liste der Ansichten werden die DB2-Abfragen durch das Symbol gekennzeichnet.

Wie bereits weiter oben dargestellt, kann eine DB2-Abfrageansicht auf Basis einer oder mehrerer DAV, auf DB2-Tabellen oder aus einer Verknüpfung der beiden Möglichkeiten erstellt werden. Die Verwendung nur einer DAV ist im Regelfall nicht sonderlich praxisnah, da die DAV auf Basis einer Notes-Maske erstellt wurde. In diesem Fall bietet sich meist die Verwendung einer einfachen Notes-Ansicht an, statt den Umweg über DB2 zu gehen.

Als erste Anwendung wollen wir uns daher die Erstellung einer DB2-Abfrageansicht, welche auf zwei DAV beruht, näher ansehen. Als Voraussetzung benötigen wir dafür zuerst die zweite DAV. Im Beispiel basiert diese auf der Maske Firma mit den drei Feldern Firma, Stadt, Land, die sich in der Datenbank DB2BSP2.NSF befindet.

Öffnen Sie die Datenbank, in der sich die zuerst erstellte DAV befindet. Erstellen Sie eine neue Ansicht (Bild 6). Vergeben Sie einen Namen, legen Sie den Typ fest (Shared), bestimmen Sie die Position der neuen Ansicht, wählen Sie die Option Copy From -Blank- und geben Sie die Formel ein, aus welcher der SQL-Befehl SELECT resultiert. Dieser wird als Zeichenkette übergeben, also zum Beispiel

Bild 6: Die Erstellung einer neuen Ansicht für den Zugriff auf die Daten.

"SELECT Personen.Name, Personen.Vorname,
Personen.Firma, Firmen.Stadt, Firmen.Land FROM
Db2bspl.Personen AS Personen INNER JOIN Db2BSP2.Firmen
AS Firmen ON Personen.Firma = Firmen.Firma"

Zugriff auf die Tabellen

Im Beispiel werden Vor- und Nachname, die Firma, der Ort und das Land für die einzelnen Personen in einer Tabelle angezeigt. Die drei ersten Informationen werden dabei aus der Tabelle Personen (diese Daten sind in der Datenbank DB2BSPL.NSF gespeichert), die beiden anderen aus der Tabelle Firmen (in der Datenbank DB2BSP2.NSF hinterlegt) entnommen. Die Verknüpfung erfolgt über das Feld Firma, welches in beiden Tabellen enthalten ist. Durch die Verbindung mit INNER JOIN werden nur Datensätze in die Ergebnistabelle aufgenommen, wenn die Datensätze der beiden Tabellen einen gemeinsamen Wert besitzen (hier Firma). Es ist sinnvoll, die SELECT-Anweisung zuerst unter DB2 beispielsweise im Befehlseditor auszuprobieren und ihn anschließend über die Zwischenablage in das Feld Seelction conditions bei der Ansichtserstellung zu kopieren.

Zu beachten ist noch, dass für den Zugriff auf die Tabellen der DB2-Schemaname verwendet werden muss (hier DB2BSPL.PERSONEN und DB2BSP2.FIRMEN). Für dessen Ermittlung steht Ihnen die neue Funktion @DB2Schema() zur Verfügung. Anschließend können Sie die Ansicht wie gewohnt gestalten. Sie müssen dabei lediglich zwei Besonderheiten beachten: Erstens erfolgt die Zuweisung der Spalteninhalte prinzipiell über Formel. Verwenden Sie hier die Spaltennamen in DB2. Zweitens können Sie die Aktualisierung im Designer nicht verwenden. Speichern Sie stattdessen die Ansicht, und rufen Sie die Vorschau im Notes-Client auf. Der Ansicht ist kein Unterschied zu einer normalen NotesAnsicht anzusehen (Bild 7). Versuchen Sie jedoch ein Dokument zu öffnen, erhalten Sie eine Mitteilung, dass dies nicht möglich ist (Bild 8). Aber das ist logisch, denn Sie haben mit der DB2-Abfrageansicht etwas erstellt, was mit normalen Notes-Mitteln nicht möglich ist: ein virtuelles Dokument, das aus Informationen verschiedener Datenbanken besteht. Und dieses Dokument basiert auf keiner Maske und kann somit nicht geöffnet werden.

Bild 7: Die Anzeige der Ansicht in Notes.
Bild 8: Die Fehlermeldung beim Dokumentzugriff.

Anzumerken ist hier noch, dass Sie die Zugriffsrechte beachten müssen. Die verwendeten DAV greifen auf die Notes-Datenbanken zu. Will ein Benutzer die DB2-Abfrageansicht öffnen, benötigt er Zugriffsrechte in der aktuellen Datenbank, auf die DAV in DB2 und auf die Notes-Datenbanken, auf welchen diese wiederum basieren.

Bild 9: Die Beschränkung der Anzahl zurückgegebener Zeilen.

Als zusätzliches Merkmal können Sie in den Eigenschaften der Ansicht die Anzahl der von DB2 zurückgegebenen Zeilen beschränken (Bild 9). Dieser Wert muss jedoch kleiner oder gleich dem sein, der vom Administrator festgesetzt wurde. Der Standardwert sind 500 Zeilen.

Zusammengeschlossene Datenbanken

In vielen Unternehmen ist es nicht möglich, alle Daten in einer zentralen Datenquelle zu halten. Es besteht jedoch der Wunsch, auf die verschiedenen Datenbestände zentral zuzugreifen. Die DB2 Zusatzfunktion Zusammengeschlossene Datenbanken (Federation Systems, in der Notes-Administrator- und Designer-Hilfe mit „förderierte“ Daten übersetzt) ermöglicht genau dies. Die Benutzer greifen auf den Federation Server zu, der wiederum den Zugriff auf die verschiedenen Datenquellen übernimmt. Dies ermöglicht, zur Abfrage unterschiedlicher Datenbestände eine einheitliche SQL-Syntax zu verwenden. Dank Federation werden die Anfragen in die verschiedenen Programmiersprachen übersetzt. Dabei werden auch notwendige Typumwandlungen vorgenommen.

DB2 erlaubt über Federation den Zugriff sowohl auf relationale als auch auf nicht-relationale Daten. Mögliche relationale Datenquellen sind neben anderen Oracle, Sybase, Informix, der Microsoft SQL Server, die Schnittstelle ODBC sowie DB2 selbst. An nicht-relationalen Datenquellen seien Extended Markup Language (XML), Microsoft Excel, Table-structured Files, die Metasuchmaschine Entrez und das ECM-System (Enterprise Content Management) Documentum genannt. Aber auch der Zugriff auf Dateisysteme und Webressourcen wird unterstützt.

Zur Nutzung von Federation mit DB2 ist die Installation des Information Integrator notwendig.

Was hat dies nun mit den DB2-Abfrageansichten in einer Notes-Datenbank zu tun? Nun, normalerweise ermöglichen diese nur die Abfrage von Tabellen und Ansichten, die sich in der NSFDB2-Datenbank befinden. Durch die Nutzung von der Federation zugrunde liegenden Techniken können Sie jedoch auch DB2-Abfrageansichten von Tabellen erstellen, welche sich nicht in der Containerdatenbank für Domino befinden. Dies funktioniert auch dann, wenn weder der Information Integrator noch der DB2 Access Server installiert sind. Letzterer wird nur benötigt, wenn mit DAV auf Domino-Daten zugegriffen werden soll.

Ist auch die Installation des Information Integrator nicht notwendig, müssen Sie doch einige Schritte ausführen, um die Nutzung von zusammengeschlossenen Daten einzurichten:

  1. Die Unterstützung von Federation in der DB2 Instanz einrichten.

  2. Einen Data Source Wrapper erstellen.

  3. Die Serverdefinition erstellen.

  4. Eine Kurzbezeichnung für externe Tabelle/ Ansicht vergeben

Unter der Adresse http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp oder in der Domino-Administrator-Hilfe unter dem Stichwort „Förderierte Daten mit Abfrageansichten verwenden“ erhalten Sie weitere Informationen zur Arbeit mit zusammengeschlossenen Datenquellen.

DB2-Abfrageansichten auf einer DB2-Tabelle erstellen

Im Beispiel erstellen wir eine Ansicht mit den Daten Nachname, Vorname und Gehalt aus der DB2-Tabelle Employee der Datenbank Sample.

Die Unterstützung der Instanz aktivieren Sie über den Konfigurationsparameter Federation im DB2-Kontrollcenter (Bild 10). Den Wrapper erstellen Sie unterhalb des Knotens Objekte zusammengeschlossener Datenbanken der Instanz im DB2-Kontrollcenter (Bild 11). Anschließend können Sie eine neue Serverdefinition erstellen (Bild 12). Letztendlich erstellen Sie eine Kurzbezeichnung für die externe Tabelle Employee der Beispieldatenbank Sample (Bild 13). Dabei ist es wichtig, dass dieser dem Schema zugeordnet wird, das dem Namen der Datenbank entspricht, in der die DB2-Abfrageansicht erstellt werden soll. Den Kurznamen verwenden wir im SQL-Befehl zur Abfrage der Daten:

"SELECT EMP.LASTNAME AS NACHNAME, EMP.FIRSTNME AS
Vorname, EMP.SALARY AS Gehalt FROM DB2BSPL.EMPLOYEE
AS EMP"

Bild 10: Die Schnittstelle für den Konfigurationsparameter Federation.
Bild 11: Die Einrichtung des Wrappers im Kontrollzentrum der DB2.
Bild 12: Die Erstellung einer neuen Serverdefinition.
Bild 13: Die Erstellung einer Kurzbezeichnung für die externe Tabelle.

Die im Befehl definierten Aliase Nachname, Vorname und Gehalt verwenden Sie als Formeln für die Spaltenwerte der Ansicht.

Die Schritte zur Erstellung einer DB2-Abfrageansicht sind mit den bereits weiter oben gezeigten identisch.

DB2-Abfrageansicht mit Join zwischen DAV und reinen DB2-Daten

Letztendlich ist die Verknüpfung einer DAV mit einer normalen DB2-Tabelle möglich. Der Aufbau der Ansicht entspricht den bisher betrachtetenDB2-Abfrageansichten. Lediglich bei der SQL-Abfrage ist zu beachten, dass zum einen die DAV und zum anderen die Kurzbezeichnung für die externe Tabelle verwendet wird. Im Beispiel werden der Vor- und Nachname, die Tätigkeit sowie das Gehalt und die Bonuszahlung in einer Ansicht angezeigt. Die letzten drei Angaben stammen aus der DB2-Tabelle. Die Verknüpfung der Daten erfolgt über den Vor- undNachnamen. Da diese in der DB2-Tabelle in Großbuchstaben hinterlegt sind, wird die Funktion Upper zur Umwandlung der Werte aus der DAV Personen verwendet. In der Praxis würde man die Verknüpfung sicherlich über eine eindeutige Angestelltennummer oder Ähnliches realisieren.

"SELECT Pers.#NoteID, Pers.Name As Nachname,
Pers.Vorname AS Vorname, Emp.Job As Job, Emp.Salary
As Sal, Emp.Bonus As Bonus FROM DB2Bspl.Personen As Pers INNER JOIN DB2BSpl.Employee As Emp On
Upper(Pers.Name) = Emp.LastName AND Upper(Pers.Vorname)
= Emp.Firstnme"

Da die SELECT-Anweisung die #NotesID mit einschließt, können Sie die Dokumente in der Ansicht öffnen. Angezeigt und geändert werden in der Maske aber nur die Daten, die aus der Notes- Datenbank über die DAV zur Verfügung gestellt werden.

Zusammenfassung

Mit der Integration der Notes-Daten in DB2 ergeben sich Vorteile für beide Seiten – sowohl für Notes-Anwendungen als auch für Programme, welche DB2-Daten nutzen. Es gibt viele interessante neue Anwendungsmöglichkeiten, die sich nur über die Schnittstelle realisieren lassen. Insofern ist zu hoffen, dass es nicht allzu lange dauert, bis die Funktionalität für alle Anwender ohne Einschränkungen verfügbar wird. Aber dazu wird man nach dem aktuellen Stand der Dinge, wie schon eingangs erwähnt, wohl auf die Version 8 warten müssen. Und die kommt hoffentlich noch 2007, wobei die Erfahrungen mit Releasezyklen von Lotus zeigen, dass es doch manchmal länger dauert.