III.5. vollständige (zweidimensionale - GDV

Werbung
Gesamtverband der Deutschen
Versicherungswirtschaft e.V.
Prozesse
Objekte
Funktionen
Daten
Komponenten
Request Broker
VA A
Edition
1999
Die Anwendungsarchitektur der Versicherungswirtschaft
DATENMANAGER / ANHANG
VERSION 2.1
PROZEDURAL
© GDV 1999
http://www.gdv.de/vaa
Autoren:
Projektteam "Datenmanager"
Administration, Koordination: Gesamtverband der Deutschen Versicherungswirtschaft e.V., Berlin
http://www.gdv.de/vaa
© GDV 1999
Datenmanager / Anhang
Willkommen bei VAA Edition 1999!
Liebe Leserin, lieber Leser,
haben Sie bereits eine der Broschüre der VAA Edition 1999 gelesen? Wenn ja, können Sie gleich
weiter blättern, denn dieses Kapitel steht gleichlautend am Anfang jedes VAA-Dokuments dieser
Ausgabe.
Ansonsten freuen wir uns über Ihr Interesse an der VAA und gratulieren Ihnen zu Ihrer Entscheidung,
sich mit diesem Thema zu beschäftigen, an dem wir seit Jahren mit großem Engagement und immer
noch mit viel Spaß arbeiten.
Mit WIR sind alle gemeint, die sich in den letzten Jahren direkt an der Arbeit in den VAA-Gremien
beteiligten. Um wen es sich dabei im einzelnen handelt, können Sie in einem Anhang der Broschüre
ANFORDERUNGEN UND PRINZIPIEN nachlesen, darüber hinaus werden die VAA-Gremien auf der neuen
VAA-CD und im Internet (http://www.gdv.de/vaa) vorgestellt.
Nun zur Sache:
Die VAA wurde in den vergangenen zwei Jahren in zwei Richtungen weiterentwickelt.

Der erste Schritt in Richtung Objektorientierung ist getan. Sie finden in der VAA Edition 1999 das
OBJEKTORIENTIERTE FACHLICHE
REFERENZMODELL und das OBJEKTORIENTIERTE TECHNISCHE
REFERENZMODELL der VAA. Das Geschäftsobjekt PRODUKT wurde bereits detailliert ausgearbeitet.

Die prozedurale Variante lebt weiter. Sie wurde ergänzt um eine weitere fachliche Komponente,
INKASSO/KONTOKORRENT.
Darüber hinaus wurden die aufgrund der Aufnahme der Objektorientierung notwendig gewordenen
Überarbeitungen und Ergänzungen der Dokumente der 2. Auflage von VAA vorgenommen. Es
entstand eine Vielzahl von zum Teil sehr umfangreichen Dokumenten, die auf drei Wegen
veröffentlicht werden: CD-ROM, Internet und als gebundene Broschüren in Papierform.
Um Ihnen die Orientierung zu erleichtern, haben wir als Übersicht über die verfügbaren
Dokumentationen der VAA Edition 1999 einen grafischen Wegweiser erstellt, den Sie auf der
nächsten Seite finden können. Vielleicht hilft er Ihnen, sich zurechtzufinden und Ihre
Schwerpunktthemen "herauszufischen".
Viel Spaß beim Studium des hier und in den übrigen Dokumenten zusammengestellten VAA-Wissens.
© GDV 1999
http://www.gdv.de/vaa
Datenmanager / Anhang
Dokumentenstruktur der VAA Edition 1999
Anforderungen und Prinzipien
neu
Glossar
überarbeitet
VAA prozedural (pVAA) Version 2.1
Prozeduraler Rahmen
neu
Fachliche Beschreibung
Inkasso/Kontokorrent
neu
Partner
Partner/Anhang
Provision
überarbeitet
Schaden/Leistung
Vertrag
Technische Beschreibung
Datenmanager
Datenmanager/Anhang
Dialogmanager
Parametersystem
Workflow-/Vorgangsmanager
VAA objektorientiert (oVAA) Version 1.0
Objektorientiertes fachliches Referenzmodell
Hauptdokument
neu
Anhang A – Use-Case-Modell –
neu
Anhang B – Klassenmodell –
neu
Modell in Rational-Rose-Format
neu
Objektorientiertes technisches Referenzmodell
neu
Produkt
neu
http://www.gdv.de/vaa
© GDV 1999
Datenmanager / Anhang
I.
Inhalt
Das Verhältnis Database Middleware zum VAA-Datenmanager ....................... 3
I.1.
Database Middleware: Definition und Zielsetzung ........................................................................ 3
I.1.1.
Der Translation Layer............................................................................................................ 4
I.1.2.
Der Communication Layer .................................................................................................... 5
I.1.3.
Der Management Layer ........................................................................................................ 5
I.1.4.
Database Middleware ........................................................................................................... 5
I.2.
Standards und de-facto-Standards ............................................................................................... 7
I.2.1.
Microsoft’s Open Database Connectivity ODBC ................................................................... 7
I.2.1.1.
Architektur ......................................................................................................................... 8
I.2.1.2.
Anwendungsgebiete .......................................................................................................... 9
I.2.1.3.
Einschränkungen ............................................................................................................ 10
I.2.1.4.
Entscheidungskriterien für eine Verwendung von ODBC ................................................ 11
I.2.2.
IBM’s Distributed Relational Database Architecture DRDA ................................................. 12
I.2.3.
ISO/ANSI’s Remote Data Access Standard RDA ............................................................... 12
I.2.4.
SQL Access Group’s RDA .................................................................................................. 12
I.2.5.
Borland’s Integrated Database API Archtecture IDAPI ....................................................... 13
I.2.6.
Apple’s Data Access Language Standard DAL ................................................................... 13
I.3.
Abgrenzung zum Datenmanager VAA ........................................................................................ 14
I.4.
Produkte...................................................................................................................................... 15
I.4.1.
DataJoiner von IBM............................................................................................................. 15
I.4.2.
Natural Active View von Software AG ................................................................................. 17
I.4.3.
OpenDM von Siemens Nixdorf ............................................................................................ 19
I.4.4.
DBA von Siemens Nixdorf ................................................................................................... 22
I.4.5.
ComUnity OT-Framework von Siemens Nidorf ................................................................... 24
I.4.6.
SYBASE Client/Server Produkts ......................................................................................... 27
I.4.7.
Der Datensichtprozessor der Württembergischen Versicherung......................................... 29
I.4.8.
Weitere ................................................................................................................................ 30
II. Technologische Aspekte - insbesondere Objektorientierung ......................... 30
II.1.
Komponentenorientierung und Objektorientierung ...................................................................... 30
II.1.1.
Was ist eine Komponente, ein Objekt? ............................................................................... 32
II.1.2.
Common Object Requets Broker der OMG ......................................................................... 33
II.1.2.1.
Object Management Architecture ................................................................................ 33
II.1.2.2.
Common Object Request Broker Architecture ............................................................ 35
II.1.2.3.
ORB-Implementierungen im Vergleich ........................................................................ 36
II.1.3.
Object Linking and Embedding ........................................................................................... 38
II.1.4.
Bewertung ........................................................................................................................... 40
II.2.
Objektorientierte Modellierung und objektorientierte Datenhaltungstechnologien ....................... 41
II.2.1.
E/R-Modellierung und objektorientierte Modellierung.......................................................... 41
II.2.2.
Der VAA-Datenmanager im Vergleich zu objektorientierten und relationalen
Datenbankmanagementsystemen ...................................................................................................... 45
II.2.3.
Objektorientierte Zugriffsschichten zu relationalen Datenbankystemen .............................. 47
II.2.3.1.
© GDV 1999
Probleme des Paradigmen-Wechsels ......................................................................... 47
i
Inhalt
Datenmanager / Anhang
II.2.3.2.
Komplexe Datentypen ................................................................................................. 47
II.2.3.3.
Objekt-Identität ............................................................................................................ 48
II.2.3.4.
Beziehungen zwischen Objekten ................................................................................ 49
II.2.3.5.
Vererbung und Polymorphismus ................................................................................. 49
II.2.3.6.
Allgemeine Probleme .................................................................................................. 50
II.2.3.7.
Transaktionskonzept ................................................................................................... 50
II.2.3.8.
Transparenz bei der Programmierung ......................................................................... 51
II.2.3.9.
ODMG-Verträglichkeit ................................................................................................. 51
II.2.4.
Beispielhafte Modellierung bei einer Versicherung .............................................................. 52
II.2.5.
VAA-Datenmanager: Warum nicht alles in objektorientierter Technologie .......................... 52
III.
Vorschläge zur Realisierung von Historienkonzepten ................................. 53
III.1.
Einleitung und Problemstellung ............................................................................................... 53
III.2.
Der Änderungsbaum einer Entität ........................................................................................... 54
III.3.
Der Begriff der Historie ............................................................................................................ 56
III.4.
Die (eindimensionale) Abschnittshistorie ................................................................................. 56
III.4.1.
Die lückenlose Abschnittshistorie ........................................................................................ 57
III.4.2.
Beispiele für Abschnittshistorien .......................................................................................... 58
III.4.3.
Realisierung im Relationenschema ..................................................................................... 58
III.4.4.
Überlagerungskonflikte einer Abschnittshistorie .................................................................. 58
III.4.5.
Grundoperationen einer Abschnittshistorie.......................................................................... 59
III.4.6.
Abgeleitete Operationen einer Abschnittshistorie ................................................................ 60
III.4.7.
Konsistenzwahrende Operationen einer Abschnittshistorie................................................. 62
III.5.
vollständige (zweidimensionale) Historisierung ....................................................................... 64
III.5.1.
Beispiele .............................................................................................................................. 66
III.5.2.
Beispieloperationen ............................................................................................................. 66
III.6.
Vereinfachung des allgemeinen Verfahrens aus praktischer Sicht.......................................... 67
III.6.1.
III.6.1.1.
Tabellenorientierte Speicherung .................................................................................. 69
III.6.1.2.
Beispiele ...................................................................................................................... 74
III.7.
IV.
ii
Vorschlag zur Umsetzung des Historienkonzepts ............................................................... 68
Realisierungsmöglichkeiten ..................................................................................................... 79
III.7.1.
Historisierung in einer Tabelle ............................................................................................. 79
III.7.2.
Historisierung mit einer Archivtabelle .................................................................................. 80
III.7.3.
Die Vorgangstabelle ............................................................................................................ 80
Literaturverzeichnis ........................................................................................ 81
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Anhang zur Spezifikation des
Datenmanagers
In diesem Anhang wird auf Themen eingegangen, die nicht unmittelbar die Spezifikation des
Datenmanagers betreffen, aber in enger Beziehung zu ihm stehen, z.B. indem sie helfen, seine
Aufgabe innerhalb der VAA durch Vergleich mit am Markt verfügbaren Database-MiddlewareProdukten besser positionieren zu können oder Stellung zu technologischen Trends wie der
Objektorientierung zu beziehen. Einen weiteren Schwerpunkt bilden Vorschläge zur Realisierung von
Historienkonzepten.
I. Das Verhältnis Database Middleware zum
VAA-Datenmanager
I.1. Database Middleware: Definition und Zielsetzung
Unter Database Middleware werden Produkte oder Produktkomponenten verstanden, die dazu dienen,
eine „einheitliche Datenverwaltungsschnittstelle“ für die Entwicklung von Anwendungen zur
Verfügung zu stellen. Die gebotene Funktionalität isoliert die sie nutzende Anwendung beispielsweise
von Aspekten wie dem konkret zur Datenspeicherung verwendeten Datenbankmanagementsystem wie
z.B. DB2, Oracle oder Informix, dem Dateisystem, der Betriebssystemplattform oder gar Aspekten
verteilter Datenhaltung. Die Database Middleware bildet eine Isolationsschicht, auf der Anwendungen
unter verschiedensten Aspekten portabel implementiert werden können.
Der Begriff der Middleware allgemein ist im Zusammenhang mit verteilter Verarbeitung in
heterogenen Systemumgebungen aufgekommen. Es galt, die Probleme unterschiedlicher Plattformen,
unterschiedlicher APIs, unterschiedlicher Kommunikationsprotokolle für den Anwender so einfach
und sicher wie möglich zu machen. Dadurch, daß von verschiedensten Herstellern MiddlewareProdukte angeboten werden, die diese Probleme der Heterogenität teilweise reduzieren, sich die unterschiedlichen Produkte aber oft nicht ergänzen, sondern gegenseitig ausschließen, ist große Verwirrung
entstanden. Zur besseren Positionierung unterschiedlicher Middleware hilft das Ovum „model of
middleware“ [OvumMi95]:
© GDV 1999
3
Inhalt
Datenmanager / Anhang
Driver
Translation Layer
Management Layer
Gateway
Communication Layer
Network
transport
protocols/API
Transport Provider
Abb.: The Ovum model of middleware
I.1.1. Der Translation Layer
Haben Basisprodukte unterschiedliche APIs, so kann durch einen Translation Service und
Bereitstellung eines APIs die Komplexität für den Anwendungsentwickler reduziert und die
Interoperabilität der Anwendung wesentlich verbessert werden. Die Aufgaben des Translation
Layers sind deshalb:

Verbesserte Interoperabilität zwischen heterogenen Software-Produkten

Verbesserte Anpaßbarbeit von Applikationen an zugrundeliegende Basisprodukte

Reduktion der Komplexität in heterogenen Umgebungen durch Reduktion der APIs für den
Anwendungsentwickler
Viele Middleware-Produkte zielen genau auf diesen Translation Layer. Sie übersetzen ein API in das
Format eines anderen APIs. Beispiel aus dem Datenbank-Bereich: Wird z.B. ODBC als API für die
Schnittstelle zur Datenbank verwendet, so übersetzt spezifische Middleware (ODBC-Treiber) die
ODBC-Aufrufe in Aufrufe für das native API des zugrundeliegenden Datenbankmanagementsystems.
Die Anwendung verwendet so ein API und läuft (theoretisch) mit allen Datenbankmanagementsystemen, für die es einen ODBC-Treiber gibt. In der Praxis ist die Verwendung solcher Middleware
jedoch mit Einschränkungen verbunden.
4
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
I.1.2. Der Communication Layer
Der Communication Layer schafft dem Anwendungsentwickler durch Bereitstellung einer virtuellen
Maschine Transparenz bzgl. Verteilung, zugrundeliegender Netzprotokolle usw. Der Communication
Layer schalt unterschiedlichste Netzsoftware ein und übernimmt die folgenden Aufgaben:

Datenkonvertierung in Übertragungsformate, Packetierung

Konformität mit dem Netzprotokoll herstellen

Adressierung

Aufbau und Überwachung der Verbindung zwischen Sender und Empfänger

Fehlerbehandlung der von der Netzsoftware gemeldeten Fehler
Gateways stellen eine Kombination von Translation Services und Communication Services dar. Sie
ermöglichen die Kommunikation von unterschiedlichen Netzwerkprodukten, indem sie die NetwerkProtokolle umsetzen. Während ein Datenbank-Treiber die reine Übersetzung von einem API in ein
anderes vornimmt, bewerkstelligen Datenbank-Gateways zusätzlich die Übertragung von Aufrufen im
Netz.
I.1.3. Der Management Layer
Der Management-Layer stellt eine Erweiterung des Communication Layers zum Zwecke des
Managements der verteilten Verarbeitung zur Verfügung. Typische Dienste des Management Layers
sind:

directory service

security service

guaranteed delivery service

exception handling, fault and problem management service

time service

synchronisation service

threads service

multi-tasking service ...
Middleware-Produkte, die neben den Communication Services auch Management Services beinhalten
sind ORB-Implementierungen, DCE-Middleware oder Transaktionsmonitore.
I.1.4. Database Middleware
Unter Database Middleware Produkten werden hauptsächlich Produkte verstanden, die sich im
Translation- und im Communication Layer (in der Zeichnung grau hinterlegt) positionieren. Vielfach
wird Middleware mit Database Middleware gleichgesetzt, was aber eine einseitige Reduktion der
© GDV 1999
5
Inhalt
Datenmanager / Anhang
Sichtweise auf die Isolationsschicht zwischen Applikation und Datenbank hin darstellt. Eine gute
Übersicht über Middleware allgemein findet sich in [1].
Die möglichen Vorteile des Einsatzes von Database Middleware Produkten liegen auf der Hand:
bessere Qualität der Anwendungen durch Reduktion der APIs und Komplexität in den
Anwendungskomponenten und - damit verbunden - geringere Implementierungsaufwände.
Problematisch ist der Einsatz von Database Middleware Produkten immer dann, wenn besondere
Eingenschaften bestimmter Datenbankmanagementsysteme zum Tragen kommen. Denn mit der
Umsetzung von Formaten oder den syntaktischen Unterschieden von SQL-Dialekten allein ist es nicht
getan. Unterschiedliche Datenbankmanagementsysteme haben entsprechend ihrer Historie und
Positionierung am Markt entsprechend unterschiedliche Konzepte implementiert und verhalten sich im
Detail dementsprechend anders. Es muß den Anwendungsentwicklern klar sein, daß völlige
Transparenz bzgl. der zugrundeliegenden Datenbankmanagementsysteme nicht möglich ist.
Typischerweise treten Unterschiede auf bei:

der Implementierung von Integritätsbedingungen

der Art des Datenzugriffs (mengenorientiert, navigierend, ...)

stored procedures

Locking und Vermeidung von Deadlock-Situationen

der Verwendung von dynamic SQL oder static SQL
Abhängig von den Mengengerüsten bildet dynamisches SQL einen potentiellen Performance-Engpaß
(bei großen Datenbanken) oder ist eher unkritisch im Vergleich zu anderen
Architekturentscheidungen. Database Middleware Produkte müssen vor ihrem Einsatz deshalb
unbedingt daraufhin untersucht und getestet werden, ob sie die erforderliche Effizienz im Datenzugriff
noch gewährleisten.
Deshalb werden in [OvumMi95] folgende Empfehlungen ausgesprochen:
Database Middleware Produkte können tendenziell verwendet werden, wenn



Daten auf mehrere Datenbanken oder unterschiedliche Datenbankmanagementsysteme verteilt sind
und über ein einheitliches API zugegriffen werden soll,
keine kritischen Antwortzeiten bestehen, insbesondere kurze Antwortzeiten bei komplexen Joins
über mehrere Datenbankmanagementsysteme verlangt werden,
keine Zugriffe auf nicht-standardisierte Datentypen wie Images, BLOBs usw. erfolgen.
Entsprechend sollten Database Middleware Produkte tendenziell nicht eingesetzt werden

im Hochleistungsbetrieb, bei sehr hohen Transaktionsraten oder großen Datenmengen,

bei großen Datenbank-übergreifenden Joins,

wenn sehr kurze Antwortzeiten gefordert sind,

wenn die Applikationen extensiven Gebrauch von stored procedures machen.
6
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Bezogen auf das Ziel der Transparenz des Datenzugriffs für die Anwendungen gelten dieselben
Argumente im Prinzip auch für 4GL-Umgebungen. Denn sie nutzen gerade die Database Middleware
zur Realisierung der Datenbankunabhängigkeit.
I.2. Standards und de-facto-Standards
Die wesentlichen Standards für remote database access, die im Folgenden kurz vorgestellt werden,
sind (vgl. [OvumMi95]):

ODBC

DRDA

ISO/ANSI RDA

SQL Access RDA

IDAPI

DAL (Database Access Language)
I.2.1. Microsoft’s Open Database Connectivity ODBC
ODBC ist Microsofts strategische Schnittstelle für den Zugriff auf im Prinzip beliebige
Datenbankmanagementsysteme. Es basiert auf dem CLI (call-level interface) der SQL Access Group
und verwendet entsprechend dynamic SQL.
Wenn auch ODBC primär ein Interface für Window-Applikationen ist, so gibt es mittlerweile auch
ODBC-Treiber für Apple und Unix-Systeme. Es ist zu erwarten, daß sich ODBC zu einem der
bedeutenden Standards für den Datenzugriff entwickelt und immer mehr Middleware-Produkte für
ODBC am Markt angeboten werden.
Da ODBC auf dynamic SQL basiert, gibt es immer wieder Diskussionen bzgl. möglicher oder
tatsächlicher Performance-Probleme. Grundsätzliche Wertungen lassen sich aber kaum abgeben.
Entscheidend sind vielmehr der jeweilige Anwendungsfall (Art des Datenzugriffs, Mengen, weitere
Verarbeitung) und die ausgewählte ODBC-Middleware.
© GDV 1999
7
Inhalt
Datenmanager / Anhang
I.2.1.1. Architektur
ODBC wurde für Client/Server-Architekturen entwickelt und optimiert. Ziel einer Client/ServerArchitektur ist die flexible Verteilung von Anwendungssystemen incl. Datenbasis auf den Client und
ein oder mehrere Server, die durch ein Netzwerk miteinander verbunden sind. Dadurch wird es
notwendig, die Schnittstellen zwischen Client und Server nicht nur so einfach wie möglich zu halten.
Ein weiterer wesentlicher Faktor in Client/Server-Systemen ist die Portabilität der Anwendungen, da
im Gegensatz zu Mainframe-Systemen häufiger Veränderungen in der Konfiguration vorgenommen
werden müssen. Nicht nur Clients und Server werden ausgetauscht, sondern auch die Datenbasen und
ggf. die Verteilung der Anwendung verändert. Daher sollten die Schnittstellen möglichst standardisiert
werden.
ODBC stellt einen solchen Standard dar. Es unterstützt die benötigte Flexibilität z.B. dadurch, daß es
dynamic SQL benutzt. Doch im Gegensatz zu der Verwendung von eingebettetem SQL muß das
Anwendungsprogramm nicht mit dem Precompiler des DBMS-Herstellers kompiliert werden, der
daraus DBMS-spezifische Funktionsaufrufe generiert. Stattdessen ermöglicht die Verwendung eines
CLI die Erstellung von DBMS-spezifischen Datenbank-Treibern, die dynamisch eingebunden werden
können. Dennoch bietet ODBC größtenteils dieselbe Funktionalität wie eingebettetes SQL mit ein
paar Ausnahmen:




Mangel an Unterstützung für die einfache Select-Anweisung in eingebettetem SQL. Daher können
Performance-Verluste auftreten.
eine Unterstützung von statischem SQL wird nur durch das Paradigma der gespeicherten
Prozeduren (stored procedures) unterstützt.
ODBC unterscheidet sich von SQL in der Cursor-Verwaltung. Dadurch ergeben sich Vorteile für
Ad-hoc-Abfragewerkzeuge und Nachteile in Anwendungsprogrammen.
ODBC ist bei der Zuordnung von Programmvariablen zu Ausgabespalten komplizierter
handhabbar.
Die ODBC-Architektur besteht aus folgenden Komponenten:
ODBC-konforme Applikation
Sie führt die ODBC-Aufrufe aus, stellt SQL-Statements zur Verfügung und bearbeitet die Ergebnisse
des Datenzugriffs. Bei der Erstellung der Anwendung ist es nicht notwendig, zu wissen, welche
Datenbanksysteme die Daten zur Verfügung stellen. Die Datenhaltung wird über „logische“ Namen
angesprochen.
ODBC-Treibermanager
Der Treiber-Manager verwaltet die Interaktionen zwischen den Anwendungsprogrammen und den
Datenbanktreibern. Er kann mehrere Anwendungen und mehrere Treiber gleichzeitig verwalten. Er
kann Treiber dynamisch laden und entladen.
ODBC-Treiber
8
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Der ODBC-Treiber verarbeitet die ODBC-Funktionsaufrufe, übersetzt die Abfrage, in die eigentliche
Datenbank-Syntax , liefert diese Abfragen an die bestimmte Datenquelle und gibt die Ergebnisse des
Zugriffs an das Anwendungsprogramm zurück. ODBC-Treiber sind abhängig von der Version des
DBMS.
Datenquelle
Eigentliche, physische Datenablage
ODBC-Treibermanager und ODBC-Treiber erscheinen für das Anwendungsprogramm als eine
Einheit, die die ODBC-Aufrufe vollständig bearbeitet. ODBC ordnet die Datenquelle dem Treiber, der
Netzwerksoftware, dem Server oder der Adresse und dem Kontext innerhalb des DBMS zu.
Außerdem enthält es Zugriffsschutz-Funktionalität.
Die Verwendung des Standards erleichtert nicht nur die Portabilität der ihn nutzenden Anwendungen.
Je häufiger ein Standard genutzt wird, umso wahrscheinlicher ist auch seine nutzergerechte
Weiterentwicklung.
Die ODBC-Treiber werden in der Regel von den Herstellern der Datenbank-Managementsysteme zur
Verfügung gestellt. Da diese ihr Produkt am besten kennen, können sie die Anforderungen der
Anwender an die Ausführung der ODBC-Aufrufe am optimalsten für ihr System umsetzen. Außerdem
verbessert die Verfügbarkeit eines ODBC-Treibers die Marktchancen für die DBMS-Hersteller, da
Anwendungen dadurch leichter auf ihr Produkt portierbar sind. Wenn es für ein DBMS eine Vielzahl
von Applikationen gibt , wird das DBMS attraktiver.
Sicht der DBMS-Hersteller auf ODBC
Eigentlich widerspricht ein ODBC-Treiber und eine Standardschnittstelle dem Bedürfnis der
Hersteller von Datenbanksystemen, seine Kunden an sein DBMS zu binden. Wenn z. B. ein Kunde ein
eigenes Interface geschaffen hat, will er dieses auch so häufig wie möglich nutzen. Doch wird heute
vom Markt eine Datenbank-Connectivity verlangt und ein Hersteller, der dieses Bedürfnis nicht zu
befriedigen vermag, hat mit Markteinbußen zu rechnen.
I.2.1.2. Anwendungsgebiete
Durch die Verwendung der ODBC-Schnittstelle ist das Anwendungsprogramm unabhängig von dem
oder den für die Datenzugriffe genutzten Datenbanksystemen., sofern für diese ein ODBC-Treiber
existiert. Der Anwendungsprogrammierer, der das ODBC-API nutzt, braucht keine eigene DBSchnittstelle zu schreiben und die internen Datei- und Indexformate des verwendeten DBMS für
dessen Nutzung nicht zu kennen. ODBC reduziert daher die Komplexität der Anwendungsentwicklung
in heterogenen Umgebungen für die Anwendungsprogrammierer erheblich. Außerdem verbessert es
die Interoperabilität zwischen heterogenen Software-Produkten und die Anpaßbarkeit von
Anwendungssystemen an zugrundeliegende Basisprodukte.
ODBC kann folgende Zielsetzungen unterstützen:

Der Programmierer soll auf einfache Art Anwendungen schreiben können, die unterschiedliche
Datenbanksysteme gleichzeitig nutzen. Vorzugsweise sind dies relationale DB-Systeme, obwohl
auch PC-Datenbanken, hierarchische Datenbanken usw. nicht ausgeschlossen sind. Er setzt dazu
© GDV 1999
9
Inhalt
Datenmanager / Anhang
ein herstellerunabhängiges API ein. Dieses bewahrt ihn davor, die internen Datei- und
Indexformate des verwendeten DBMS zu kennen und sogar ggf. eine eigene DB-Schnittstelle
schreiben zu müssen.




Dasselbe Entwicklungswerkzeug soll für unterschiedliche Datenbankentwicklungen benutzt
werden können, da die Kosten-Nutzen Relation umso besser ist, je häufiger ein
Entwicklungswerkzeug verwendet wird.
Es sollen Datenänderungen an verschiedene Datenbanksysteme auf unterschiedlichen Plattformen
weitergereicht werden. Obwohl diese Problemstellung mit einer Vervielfältigung sauberer gelöst
werden könnte, ist die Nutzung einer gemeinsamen API leichter pflegbar.
Entwicklung von verteilten Anwendungen mit Zugriff auf mehrere Datenbanksysteme, z.B. mit
lokalen und serverbasierten Datenspeichern im endgültigen Produktionssystem. dieser Fall tritt z.B.
bei Vertriebsinformationssystemen auf, wo individuelle Datensammlungen und
Datenbearbeitungen auf Notebook-Computern durchgeführt werden und diese lokalen Daten
beispielsweise über Nacht auf gemeinsamen Servern synchronisiert werden müssen.
Rapid Application Development (RAD): Während der Entwicklung des evolutionären Prototyps
kann der Entwickler mit einer lokalen Datenbasis auf seinem PC arbeiten, die Zielumgebung ist
jedoch eine Datenbank auf dem Server. Durch die Verwendung der ODBC-API muß die
Anwendung hierfür nach Abstimmung und Tests des Prototyps nicht mehr angepaßt werden.
I.2.1.3. Einschränkungen
Es gibt jedoch unterschiedliche ODBC-Conformance Standards. Dies sind unterschiedliche
Funktionalitätsgruppen zur Unterstützung der Anwendungs- und Treiberentwickler. Ein Treiber einer
bestimmten Konformitätsstufe garantiert, mindestens die Funktionen der angegebenen
Konformitätsstufe zu unterstützen, kann jedoch auch mehr unterstützen. Die Konformitätsstufe stellt
damit eine Richtschnur dar und engt die Funktionalität des Angebots nicht ein. Welche Funktionen
noch zusätzlich angeboten werden, kann von der Anwendung abgefragt werden.


API Function Level (Core API, Level 1 API, Level 2 API)
SQL Grammar Conformance (Minimum SQL Grammar Level, Core SQL Grammar Level,
Extended SQL Grammar Level)
Die meisten DBMS-Hersteller bieten Treiber für Core und Level 1 an. Die normalen Anwendungen
verlangen Level 1.
Die Anwendungsentwickler müssen sich entscheiden, welches Level sie benutzen wollen oder
müssen. Dies hängt einerseits von den fachlichen Anforderungen an die Anwendung, andererseits an
die Anforderungen an Portabilität, Flexibilität etc. ab. Die Treiberentwickler (Hersteller) müssen sich
entscheiden, welches Level sie anbieten wollen oder können. Dies hängt selbstverständlich von den
Möglichkeiten ihres DBMS ab.
Datenbanksysteme unterscheiden sich in:

der Implementierung von Integritätsbedingungen

der Art des Datenzugriffs (mengenorientiert, satzorientiert)
10
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager

stored procedures

Locking und Vermeidung von Deadlock-Situationen

der Verwendung von dynamic oder static SQL.
ODBC kann für den Zugriff auf alle Arten von Datenbanken verwendet werden. Das
Programmiermodell ist jedoch besser geeignet für relationale Datenbanksysteme als für PCDatenbanken oder ISAMs. Voraussetzung ist nur, daß die Daten in Zeilen und Spalten modelliert
werden können. ODBC kann sogar für dateiorientierte Datenspeicher wie etwa Tabellenkalkulationen
oder Textdateien eingesetzt werden.
Relationale Datenbanksysteme:



Beispiele sind: Sybase, Oracle, Gupta, DB2, DB2/2, RDB, Informix, Ingres, Microsoft SQL Server
Die meisten dieser Datenbanken können nicht „durchblättert“ werden, d.h. es wird noch kein
Scrolling nach dem SQL-92-Standard angeboten. Daher ist es auch nicht möglich, von einer
Ergebnismenge aus weiterzusuchen.
Die Daten sind in Tabellen abgelegt.
PC- oder Desktop-Datenbanken



Beispiele sind: Btrieve, dBase, Paradox, Microsoft Access, FoxPro
Viele Desktop-Datenbanken unterstützen die eine oder andere Form von SQL, aber in der Regel
erfolgt die Interaktion mit den Daten satzorientiert. Es handelt sich um eine Kombination von
ISAM- und 4GL-Konzepten: Befehle für den Datenzugriff nach dem ISAM-Paradigma kombiniert
mit Bildschirm-I/O-Befehlen.
Das SQL-Modell kann eingesetzt werden. Allerdings ergibt sich ein gewisser Verlust an
Funktionalität, Performance und Flexibilität.
Index-basierte Datenhaltungssysteme


Beispiele sind: IMS, VSAM, ISAM
Die Operationen, die auf diesen Datenhaltungssystemen ausgeführt werden, können in SQL nicht
besonders gut nachgebildet werden, wenn überhaupt. Der Grund ist, daß SQL mengenorientiert
arbeitet, ISAM-Funktionen jedoch sind zeilen- bzw. satzorientiert.
I.2.1.4. Entscheidungskriterien für eine Verwendung von ODBC
ODBC sollte verwendet werden, wenn



ein flexibler Austausch insbesondere von relationalen Datenbanken notwendig ist
weitergehende Unabhängigkeit von eingesetzten Datenbanksystemen und DBMS-Herstellern
angestrebt wird
keine DBMS-Funktionalität verwendet werden sollte, die durch den für das DBMS angebotenen
Treiber nicht unterstützt wird
© GDV 1999
11
Inhalt

Datenmanager / Anhang
keine kritischen Antwortzeiten, insbesondere kurze Antwortzeiten bei komplexen Joins über
mehrere DBMSen benötigt werden

die Verwendung von ODBC-fähigen Entwicklungswerkzeugen angestrebt wird

in der Entwicklungs- und Produktionsumgebung unterschiedliche DBMSen eingesetzt werden


die Entwicklung der benötigten Anwendungssystemen vereinfacht und standardisiert werden soll
und eine einheitliche Datenzugriffsschnittstelle Erleichterungen und Verbesserungen in der
Pflegbarkeit der Anwendungsprogramme bringt
im Desktop-Bereich ein Interface zu den Backend-Datenbanken gesucht wird
ODBC sollte nicht verwendet werden

im Hochleistungsbetrieb, bei sehr hohen Transaktionsraten oder großen Datenmengen

bei großen Datenbankübergreifenden Joins, wenn kurze Antwortzeiten gefordert sind,

wenn die Anwendungen intensiven Gebrauch von stored procedures machen

in Multi-Server-Rechenzentren mit unterschiedlichsten Diensten (z.B. Mail- und Fax-Server)
Vor einer Kaufentscheidung für oder gegen den Einsatz von ODBC sollte auch noch berücksichtigt
werden, daß die meisten ODBC-Treiber bisher nur Core und Level 1 komplett unterstützen. Bei Level
2 sind bisher nur die wichtigsten Funktionen wird sich dies, abhängig von den Möglichkeiten des
DBMS, durch die weitere Verbreitung des ODBC-Standards entsprechend verbessern.
I.2.2. IBM’s Distributed Relational Database Architecture DRDA
IBMs DRDA wurde speziell zur Kopplung von IBMs Datenbankplattformen (relational: DB2/VM,
DB2/VSE, DB2, DB2/400, DBM, hierarchisch: IMS) auf unterschiedlichsten Plattformen und unter
Verwendung verschiedener Netzwerkprotokolle entworfen und wird vorwiegend dafür eingesetzt,
kann prinzipiell aber auch zum Anschluß anderer Datenbankmanagementsysteme eingesetzt werden.
DRDA ist ein IBM-Firmenstandard, der nur IBM’s LU6.2-Protokoll unterstützt. DRDA ist jedoch ein
de-facto-Standard für Anwender von IBM-Datenbankmanagementsystemen.
I.2.3. ISO/ANSI’s Remote Data Access Standard RDA
Der ISO-Standard RDA besteht aus zwei Teilen: dem generic RDA (ISO/IEC DIS 9579-1) und der
SQL-Spezialisierung (ISO/IEC DIS 9579-2). Er ist also so breit angelegt, daß er nicht nur auf
relationale Datenbankmanagementsysteme zielt und sowohl die Anbindung von Applikationen an
Datenbanken wie auch die Datenbank-Datenbank-Kopplung behandelt. Bisher gibt es nur wenige
RDA-basierte Produkte am Markt.
I.2.4. SQL Access Group’s RDA
Die Aktivitäten der SQL Access Group richten sich auf die Interoperabilität und Portabilität von SQLbasierten Produkten unterschiedlicher Hersteller. Die Spezifikationen sind kompatibel zu den
12
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Standardisierungsaktivitäten von ISO und ANSI (insbesondere RDA und SQL2) und gehen in den
X/Open Portability Guide ein.
Das bisher wichtigste Ergebnis ist die Spezifikation des SQL CLI, das auch von Microsoft für ODBC
verwendet wird.
I.2.5. Borland’s Integrated Database API Archtecture IDAPI
IDAPI basiert ebenfalls auf dem CLI der SQL Access Group, wurde aber von Borland, IBM, Novell
und WordPerfect als Konkurrent zu Microsofts ODBC positioniert. Im Unterschied zu allen anderen
Standards basiert IDAPI auf der objektorientierten Technologie und will relationale und nichtrelationale Datenbanken integrieren.
IDAPI wird sich jedoch nicht gegen die Microsoft-Linie durchsetzen lassen, insbesondere aufgrund
der derzeitigen Probleme bei Borland.
I.2.6. Apple’s Data Access Language Standard DAL
Die DAL basiert ebenfalls auf dem CLI der SQL Access Group, wurde allerdings erweitert. DAL
fungiert für Macintosh-basierte Client-Anwendungen als Client-API zum Zugriff auf SQLDatenbanken.
Aber auch DAL wird aufgrund seiner Verknüpfung mit den Apple-Plattformen keine allgemeine
strategische Bedeutung erlangen.
© GDV 1999
13
Inhalt
Datenmanager / Anhang
I.3. Abgrenzung zum Datenmanager VAA
Die im Dokument [VAA1.3] beschriebenen Anforderungen an den Datenmanager gehen weit über die
Funktionalität hinaus, die üblicherweise unter Database Middleware verstanden wird. Die
Datenbeschaffungskomponente allerdings, die innerhalb des Datenmanagers den sog. „physischen
Zugriff“ auf die Daten organisiert, also die eigentliche Schnittstelle zu den
Datenbankmanagementsystemen darstellt, kann mit Hilfe von Database Middleware Produkten
realisiert werden.
Anwendungsbaustein
...
Datenmanager
Datensichtprozessor
log. Datenmodell
Datenbeschaffungskomponente
DBMS 1
DBMS 2
File
Abb.: Schematische Darstellung des Datenmanagers
Die Architektur der VAA geht nämlich davon aus, daß die Anwendungsbausteine von der
Datenbeschaffung und Datenspeicherung vollständig befreit sind. Der Datenmanager stellt für diese
Anwendungsbausteine zur Laufzeit die benötigten Instanzen im Vorgangsspeicher in der Form zur
Verfügung, wie sie von den Anwendungsbausteinen benötigt werden. Deshalb bedarf es im
Datenmanager neben der Datenbeschaffungskomponente einer weiteren Komponente des
Datensichtprozessors, der genau die Aufgabe der Übersetzung der logischen Datenanforderungen des
Anwendungsbausteins in Aufträge zur Beschaffung der zugehörigen Entitäten an die Datenbeschaffungskomponente übernimmt.
Die Aufgaben des Datensichtprozessors werden durch Database Middleware Produkte in der Regel
nicht abgedeckt.
14
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
I.4. Produkte
Bei der folgenden Liste von (erweiterten) Database Middleware Produkten handelt es sich zum einen
um eine offene, d.h. ständig zu erweiternde, fortzuschreibende Liste, zum anderen werden bewußt
Exemplare unterschiedlicher Typen von Produkten mit Teilfunktionalität des Datenmanagers
beschrieben.
I.4.1. DataJoiner von IBM
Der DataJoiner realisiert einen sogenannten Multi-Database Server. Beim DataJoiner steht also der
Aspekt der Datenföderierung, d.h. der Integration heterogener Datenbestände im Vordergrund.
Für den Fall, daß im Rahmen der VAA-Architektur auf Daten in unterschiedlichen Datenbanken und
heterogenen Datenbankmanagementsystemen zugegriffen wird, ist der DataJoiner als
Datenzugriffskomponente ein hilfreiches Produkt. Denn den Clients dieses Multi-Database Servers
wird ein Single-Database Image bereitgestellt, das volle Datenbankfunktionalität beinhaltet. Die Daten
werden aus diversen, heterogenen, verteilten Systemen selektiert und zusammengeführt, um anschließend im lokalen System gespeichert und weiterverarbeitet werden zu können. Über eine SQLSchnittstelle wird auf diese Daten transparent zugegriffen, egal ob sie aus unterschiedlichen
relationalen oder auch nicht-relationalen Beständen stammen. (In der ersten Version nur SQLRetrieval-Funktionalität, später auch Update.)
OS/2
DataJoiner
AIX
Solaris
DB2 LAN Driver
Server Services
DOS
Client Services
WINDOWS
SQL-Interface
DRDA Driver
Oracle
SQL*Net
DB2 für MVS
DB2 für VM&VSE
DB2 für OS/400
DB2 für OS/2
DB2 für AIX
DB2 Parallel Ed.
Oracle
Sybase
Open Cl.
Sybase
CLIDriver
andere rel.
DBMS
Rel.
Gateway
IMS-DB
VSAM
IDMS, ...
HP-UX
Abb: IBM DataJoiner
Der DataJoiner läuft auf dem IBM RISC System/6000 mit Betriebssystem IBM AIX.
In der ersten Version unterstützt der DataJoiner folgende remote relationalen oder nicht-relationalen
Datenquellen, die über SQL-Aufrufe in den Clients transparent erreicht werden können:
© GDV 1999
15
Inhalt

Datenmanager / Anhang
DB2 für MVS, DB2 für OS/2, DB2 für OS/400, DB2 für AIX, DB2 für VM&VSE und DB2
Parallel Edition

DB2 für HP-UX

DB2 für Solaris

Oracle

Sybase

IMS

VSAM files

andere über das gewünschte CLI mit der Funktionalität von Microsofts OBDC-CLI
In Folgeversionen werden weitere Datenbankmanagementsysteme unterstützt.
Auf Client-Seite werden folgende Betriebssysteme mit zugehörigem Netzprotokoll zum Zugriff auf
den DataJoiner unterstützt:

AIX mit TCP/IP oder APPC

OS/2 mit TCP/IP oder APPC

DOS/Windows mit TCP/IP oder IPX/SPX

HP-UX mit TCP/IP

Solaris mit TCP/IP
Folgender Host-Language-Support steht zur Verfügung:

für embedded SQL: C, Fortran, COBOL und REXX

für CLI-SQL: ODBC-Kernfunktionalität und einige Erweiterungen
Eine besondere Stärke des DataJoiners liegt in der IBM Global Optimization Technology, die im
DataJoiner implementiert wurde. Der DataJoiner führt die globale Optimierung der SQL-Anfragen
durch, indem er die Stärken oder auch Schwächen der angesprochenen Datenhaltungssysteme in
Betracht zieht. Diese Optinizer-Techniken ermöglichen effiziente, verteilte Join-Operationen, die für
den Benutzer zu zufriedenstellender Query-Performance führen. Dies gilt sowohl für „dynamisches“
als auch für „statisches“ SQL.
Es ist möglich, im DataJoiner mehrere integrierte Datenbanken zu definieren, deren Tabellen und
Views sich auf verschiedene Quelldaten beziehen. Einzelne Quelltabellen können wiederum in
verschiedenen integrierten Datenbanken enthalten sein. Ein globaler Katalog, in dem der Benutzer bei
der Definition von Views oder SQL-Statements logische Bezeichner (nicknames) vergibt, sorgt für die
Transparenz und Unabhängigkeit, die der Benutzer für die produktive Informationsgewinnung
braucht.
Für OS/2- und AIX/6000-Clients stehen weitere Tools zur Datenauswertung zur Verfügung:

16
IBM Visualizer Query
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager

IBM Visualizer Charts

IBM Visualizer Procedures

IBM Visualizer Statistics

IBM Visualizer Plans

IBM Visualizer Development

IBM Visualizer Multimedia Query
Genauer beschrieben ist der DataJoiner in [IBMDaJo94] und [DBFo1/95].
I.4.2. Natural Active View von Software AG
Das Produkt NATURAL ACTIVE VIEW stellt ähnlich dem DataJoiner von IBM eine Middleware zur
Verfügung, die NATURAL-Applikationen einen transparenten Zugriff auf Daten in unterschiedlichen,
heterogenen Datenbanken ermöglicht. Eine sogenannte Active View ist aber mehr als eine reine
logische View auf heterogen verteilte Daten. Neben den Daten besteht die Active View aus Benutzerdefinierter Funktionalität, die beim Zugriff auf die Daten aufgerufen wird. So gesehen wird durch eine
Active View eine objekt-basierte Schicht zwischen einer NATURAL-Applikation und heterogenen,
physikalischen Datenhaltungen hergestellt.
Eine Active View wird durch ein View-Programm implementiert, das in extended NATURAL
geschrieben wird. In Client/Server-Umgebungen können Active Views und ihre Clients auf
unterschiedliche Plattformen verteilt werden.
© GDV 1999
17
Inhalt
Datenmanager / Anhang
Client
Programs
DDM
View-Program (Server)
DDM
DDM
DDM
DBMS1
DBMS2
DBMS3
z.B. ADABAS
z.B. DB2
Abb.: Prinzip von NATURAL ACTIVE VIEW
Die wesentlichen Aufgaben von NATURAL ACTIVE VIEW, auf die im Folgenden noch kurz
eingegangen wird, sind:

Bereitstellung logischer Datensichten von Daten aus heterogenen Quellen

Bereitstellung eines objekt-basierten Layers für den Datenzugriff

Sicherstellung von Datenintegrität

Unterstützung konzeptueller Modellierung und

Unterstützung von Cooperative Processing
Durch die Bereitstellung logischer Sichten wird die heterogene Natur der Daten transparent. Die Daten
können aus unterschiedlichen Datenbanken und aus dem Filesystem stammen und auf unterschiedliche
Rechner verteilt sein.
Das View-Programm besteht aus einer Beschreibung der individuellen Datenquellen, der
Datenbeziehungen, der Abbildung auf die Sichten und den Zugriffsmethoden. Neben der üblichen
Zugriffsfunktionalität (SELECT, UPDATE, STORE, DELETE) können Benutzer-definierte Methoden
auf einen Active View ausgeführt werden. NATURAL ACTIVE VIEW stellt auch eine automatische
Zugriffsoptimierung für unterschiedliche Datenhaltungssysteme zur Verfügung.
Dadurch daß NATURAL ACTIVE VIEW einen objekt-basierten Layer realisiert, kann der Zugriff auf
die Daten im Active View Programm kontrolliert werden: nur die bei der View definierten Aktionen
werden unter der Kontrolle des View-Programms ausgeführt. Zugriffsmethoden und Integritätschecks
18
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
sind näher an den Daten, dadurch werden Modularisierung, spätere Wartung und Unabhängigkeit von
einem bestimmten Datenbankmanagementsystem verbessert.
Durch diesen Ansatz ist es ebenfalls möglich, die Integritätsregeln (implementiert in Standard
NATURAL) nahe bei den Daten und nicht in der Applikation zu implementieren.
Die konzeptuelle Modellierung wird unterstützt durch die Konstrukte

Aggregation

Partition

Klassifikation

Generalisierung und

Assoziation
Cooperative Processing wird unterstützt, indem Oberflächenfunktionalität, Business-Funktionalität
und Datenhaltungsfunktionalität beliebig auf Client und Server verteilt werden können.
Eine genauere Beschreibung mit Implementierungsbeispiel findet sich z.B. in [SAGNAV].
I.4.3. OpenDM von Siemens Nixdorf
Open Database Middleware, kurz OpenDM, ist eine generische und konfigurierbare Softwareschicht
oberhalb heterogener Datenhaltungssysteme wie relationaler Datenbankmanagementsysteme,
objektorientierter Datenbankmanagementsysteme, aber auch hierarchischer oder
Netzwerkdatenbankmanagementsysteme oder dem Filesystem. OpenDM stellt im Sinne einer
generischen und konfigurierbaren Softwareschicht kein fertiges Middleware-Endprodukt dar, sondern
bietet einen Baukasten für den Aufbau kundenspezifischer Database Middleware an. Bei diesem Baukasten selbst handelt es sich noch nicht um ein freigegebenes Produkt, sondern es befindet sich noch
in der Pilotierungsphase und wird in einigen Projekten erprobt. Das Spektrum von OpenDM ist sehr
weit gespannt: Es reicht von

Föderierung (Kopplung von Datenbanken mit Wahrung der Autonomie)

über „strenge“ Kopplung (transparenter Zugriff auf heterogene Datenhaltungssysteme)

bis hin zur Datenbank-Unabhängigkeit („beliebige“ Datenhaltungssystem mit aufgesetztem
„Standard Interface“) sowie

Migrationsfunktionalität zum Verschieben, Kopieren und Replizieren von Daten aus heterogenen
Datenhaltungssystemen.
Das Baukastenprinzip ermöglicht hohe Wiederverwendbarkeit einzelner Komponenten und breite
Einsatzmöglichkeiten.
Als Standard- bzw. Application-Interface bietet OpenDM derzeit ODMG ODL/OML und STEP
EXPRESS/SDAI an. Zum Zwecke der Föderierung wurde der ODMG-Standard um eine MultiDatabase-Language erweitert.
© GDV 1999
19
Inhalt
Datenmanager / Anhang
Abb.: Architektur von OpenDM
Das Übersichtsbild zeigt die modulare Struktur von OpenDM.
Die Spezifika für den Föderierungsaspekt sind in den DB-Adaptern gekapselt, alle anderen Module
und Schnittstellen sind generisch. Die DB-Adapter realisieren die Kommunikation mit den
verschiedenen Datenhaltungssystemen und transformieren die heterogenen Daten und Operationen in
das interne Modell des Objektmanagers. Nach oben wird den Anwendungen via einem Externen
Adapters (z.B. ODMG-Standard ODL/OML) ein entsprechender Database Coupling Layer zur
Verfügung gestellt, über den ein transparenter Zugriff auf die (optional föderierten) Datenhaltungssysteme ermöglicht wird.
Applikationen greifen entweder direkt auf das Datenhaltungssystem oder über einen Externen Adapter
mit Hilfe von OpenDM auf eine oder mehrere Datenhaltungssysteme zu. Die externen Adapter dienen
dazu, die individuellen Sprachmodelle der Applikationen auf das Common Internal Interface
abzubilden. OpenDM wird neben derzeit ODMG ODL/OML und STEP EXPRESS/SDAI externe
Adapter für Standard-Datenbank-Interfaces wie SQL, ODBC usw. zur Verfügung stellen, so daß nur
in Ausnahmefällen spezifische Adapter entwickelt werden müssen.
Mit Hilfe des Administration Interface wird das System gestartet, gestoppt, initialisiert und es werden
die Datenbankmanagementsysteme ge- und entkoppelt. Die Administrationsdienste werden mit Hilfe
des Process Managers, der Coupling Control und der User Administration realisiert.
Der Object Manager überführt den globalen Datenzugriff in den Zugriff auf den spezifischen lokalen
Zugriff. Der Object Manager nutzt dabei das Data Dictionary, in dem die Informationen für die
Schema-Integration stecken, und den Data-Identification-Module, der die Abbildung der ObjectIdentifiers in die Identifier der heterogenen Datenhaltungssysteme vornimmt. Der Storage Manager ist
für den effizienten Datentransfer, die Speicherung und ein Caching verantwortlich.
20
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Derzeit unterstützte Plattformen sind: SunOS 4.1 und Solaris, RM200/Sinix sowie PCs mit Windows
3.1x, künftig Windows 95.
Veröffentlichungen zu OpenDM sind z.B. [Bött95] und [Rad94].
Nutzung von OpenDM als Datensichtprozessor:
OpenDM (Open Database Middleware) ist ein ‘toolkit’ bzw. eine Produktfamilie, die Lösungen zur
Datenbankföderierung, Datenbankunabhängigkeit und Migration bei heterogenen
Datenhaltungssystemen (Datenbanksystemen, Dateisystemen, usw.) bietet. Dabei ist OpenDM eine
Softwareschicht zwischen (multiplen) Datenhaltungssystemen und (multiplen)
Datenbankanwendungen. Durch eine Adaptertechnik erlaubt OpenDM eine einfache Anpassung an
Datenhaltungsysteme als auch an die Datenbankschnittstellen der Anwendungen. OpenDM ist für
spezifische Lösungen konfigurierbar. Zur Erstellung einer Lösung stehen hierbei vielfältige
Werkzeuge zur Verfügung, die Anwendungsentwicklung mittels OpenDM unterstützen. Zur
Definition von Anwendungen als auch zum Zugriff auf Daten bietet OpenDM verschiedene Benutzerschnittstellen an. Hier werden momentan ER-basierte (Entity-Relationship) als auch objektorientierte Schnittstellen gemäß den Standards STEP/Express und ODMG angeboten. Da hier
Wahlfreiheit besteht, wird im weiteren einfach vom globalen Modell gesprochen.
Hier soll die mögliche Nutzung von OpenDM als „Datensichtprozessor“ dargestellt werden. Eine
Datensicht in OpenDM wird im globalen Modell beschrieben (ein Schemadefinition im Sinne von
OpenDM). Eine Datensichtdefinition kann



gegenüber dem Modell/Schema eines (oder mehreren) bestehenden Datenhaltungssystems(en) (z.B.
SQL Datenbanksystem) beschrieben werden. Somit kann auf bereits bestehende Daten gemäß der
Datensicht zugegriffen werden.
gegenüber weiteren Datensichten/Schemadefinitionen des globalen Modells beschrieben werden.
neue Strukturen definieren. Hierzu werden entsprechende Schemata in den geforderten
Datenhaltungssystemen angelegt. Auf diese kann gemäß der Datensichtdefinition gearbeitet
werden.
Durch die Datensicht wird eine Entkopplung von den eigentlichen Datenhaltungssystemen erreicht.
Man erzielt hierdurch eine Datenbankunabhängigkeit/Portabilität der Anwendungen und der Daten.
Hierbei erlauben die Datensichten den Zugriff (lesend/erzeugend/modifizierend) auf neue/bestehende
Daten. Wenn erforderlich, ist OpenDM so konfigurierbar, daß neben den Zugriff über das globale
Modell auch ein autonomer, lokaler Zugriff auf die darunterliegenden Datenhaltungssysteme möglich
ist.
Die Umsetzung einer Datensicht auf das jeweilige Datenhaltungssystem erfolgt unabhängig von der
Anwendung, d.h. nicht aus der Anwendung heraus, mittels OpenDM. Hierzu stehen verschiedene
Werkzeuge sowie ein leistungsfähiger Datenbank-Middleware-Kern zur Verfügung. Die
Werkzeugunterstützung umfaßt:

Beschreibung der Schnittstelle (graphisch/textuell)

Generierung der Anwendungsschnittstelle


Generierung der Abbildungsfunktionen auf die entsprechenden Datenhaltungssysteme sowie den
OpenDM Datenbank-Middleware-Kern
Definition von Datensichten aus bestehenden Modellen (z.B. relational nach ER/OO)
© GDV 1999
21
Inhalt

Datenmanager / Anhang
Die Werkzeuge spielen mit dem OpenDM-Kern zusammen. Letzterer bietet ein effizientes
Arbeiten durch:

ein Data Dictionary/Repository zur Speicherung der Schema/Datensichtbeschreibungen

ein eigenes Daten- und Systemmanagement zur Unterstützung der Daten- bzw.
Objektzugriffe (z.B. Caching, Objektmanager, Prozeß- und Zugangskontrolle, usw.).
I.4.4. DBA von Siemens Nixdorf
Der Database Access Service DBA von Siemens Nixdorf bietet über offene marktgängige
Schnittstellen einen einfachen, einheitlichen Zugriff von PCs und UNIX-Systemen aus auf
unterschiedlichste UNIX- und Host-Datenbanken - auch plattformübergreifend.
DBA bietet einen lokalen, entfernten und verteilten Zugriff über die

Schnittstellen ESQL/C, DDE, ODBC und künftig OLE

mit Clients unter Windows und SINIX

auf die Datenbanken INFORMIX, ORACLE, INGRES, DB2/6000, SESAM/SQL und UDS/SQL

auf den Plattformen SINIX, HP-UX, AIX und BS2000.
Insbesondere wird durch DBA das zunehmende Angebot an ODBC-fähigen Windows-Applikationen
und Tools effizient einsetzbar. Spezielle Treiber oder zusätzliche Datenbank-Netzwerk-Komponenten
sind nicht erforderlich.
Alle Daten erscheinen auf der Client-Seite unabhängig von allen Quellsystemen in derselben Form.
Bedienung und Programmierung vollziehen sich auf allen Systemplattformen deshalb so, als ob der
Benutzer auf dem lokalen System beim Zugriff auf verschiedene Datenbank-Technologien mit nur
einem Datenbanktyp arbeiten würde.
MS-Windows
SINIX
TCP/IP-, OSI-LAN / -WAN (ISO RDA-Protokoll)
SINIX
HP-UX
AIX
Abb.: DBA-Architektur
22
BS2000
DBA bietet als
Middleware
keine eigene
Endbenutzerober
fläche. Vielmehr
soll man mit den
Endbenutzerober
flächen seiner
Wahl seine
bevorzugten
Datenbankmanagementsysteme
erreichen
können.
Entsprechend
der VAAAnwendungsarc
hitektur stellt
DBA eine sehr
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
komfortable und zugleich flexible Datenbeschaffungskomponente für eine bestimmte Anzahl von
Plattformen und Datenbankmanagementsysteme dar. Flexibilität bzgl. der auf DBA aufsetzenden
Client-Komponenten wird dadurch erreicht, daß verschiedene Schnittstellen wie die ISO-genormte
ESQL/C-Schnittstelle unter Unix und Windows sowie die Microsoft-Standards DDE, ODBC und
künftig OLE angeboten werden. Diese Schnittstellen sorgen für „freien Zugang“ über DBA zu den
genannten Datenquellen.
Dies ist möglich, weil DBA an allen unterschiedlichen Schnittstellen eine einheitliche SQL-Syntax
und Semantik beherrscht. Die „statischen“ und „dynamischen“ SQL-Statements werden vom DBAeigenen SQL-Laufzeitsystem am Client zielsystemneutral zum Server geschickt. Erst im Server wird
die DBA-SQL auf den speziellen SQL-Dialekt des Zielsystems abgebildet. Dabei werden selbst nicht
genormte und von den Datenbanksystemen völlig unterschiedlich angebotene Konstrukte wie BLOBs
durch DBA einheitlich dargestellt. DBA wirkt wie ein Multiplexer, der „alle“ Datenbankmanagementsysteme mit sämtlichen Anwendungen über eine Schaltstelle, eine .ini-Datei, ein
Netzprodukt verknüpft.
Der Anwendungssoftware- wie der Tool-Hersteller gewinnt durch DBA Freiheit bzgl. der Wahl seines
Datenbankmanagementsystems. Er spart sich Anpassungen seiner Produkte, er wird auch vom lästigen
Upgrade auf neue DBMS-Versionen befreit.
DBA ist unter anderem auch als ODBC-Treiber einsetzbar. DBA bietet hier folgende Vorteile:




Unterstützung der höchsten Conformance-Level von ODBC
einen Treiber für viele Datenbanksysteme und damit geringere Kosten, geringerer
Ressourcenverbrauch, geringerer Administrationsaufwand, ...
keine zusätzlichen Datenbanknetzprodukte notwendig und damit geringere Kosten, geringerer
Administrationsaufwand, ...
alles aus einer Hand und damit keine Probleme mit unverträglichen Komponenten verschiedener
Hersteller
© GDV 1999
23
Inhalt
Datenmanager / Anhang
Ein besonderer
Vorteil von
DBA ergibt
sich, wenn
Zugriff auf mehr
als ein Datenbankmanageme
ntsystem
notwendig ist.
Beim Einsatz
von DBA fallen
keine zusätzlichen Kosten für
mehrere ODBCTreiber und
DatenbankNetzprodukte
an. Neben
diesem Preisund
Ressourcenargu
ment gibt es
Abb.: ODBC mit und ohne DBA
noch einen
gravierenden technischen Vorteil. Ein generelles Problem bei ODBC-Treibern ist nämlich die
Abhängigkeit von der Datenbankversion. Bei UNIX-Datenbanken ist die Kompatibilität zwischen den
verschiedenen Versionen nämlich nicht unbedingt gegeben. So kommen z.B. Änderungen der
Schemainformationen recht häufig vor. Da sich ODBC sehr stark auf solche Informationen stützt, ist
eine starke Abhängigkeit der ODBC-Treiber von der Version des Datenbankmanagementsystems
gegeben. D.h. bei einem Umstieg auf die neue Datenbankversion kann es nötig sein, daß alle ODBCTreiber ausgetauscht werden müssen. Unter Umständen müssen auch die Datenbank-Netzprodukte auf
allen Clients ausgetauscht werden. Bei DBA ist nur eine geänderte Server-Komponente nötig. DBAServer können sogar problemlos mit alten DBA-Clients zusammenarbeiten und umgekehrt.
Zur Performance-Optimierung werden zwei Techniken angewandt: Mit dem MULTIPLE FETCH
werden Daten geblockt vom Server zum Client übergeben. Und für den Zugriff auf häufig benötigte
Daten der Schemainformation wird im Client ein Cache eingesetzt.
Verteilte Joins über unterschiedliche Datenbankmanagementsysteme sind mit DBA möglich, werden
aber nicht mit speziellen Funktionen unterstützt, Programmierung ist erforderlich. Während DBA
derzeit „nur“ entfernten Datenzugriff bietet, ist es vorgesehen, zukünftig im Rahmen eine „Open
Server Strategie“ auch Elemente der verteilten Verarbeitung wie Stored Procedures der
Datenbankmanagementsysteme oder Anwbindung beliebiger Serverprogramme anzubieten.
Weitere ausführliche Literatur zu DBA findet man in [SNIDBA94], [SNIDBA95] und [DBFo2/95].
I.4.5. ComUnity OT-Framework von Siemens Nidorf
Im Rahmen des ComUnity-Konzepts wird bei Siemens Nixdorf derzeit ein Open Technology (OT-)
Framework für die Entwicklung kommerzieller Applikationen auf den Microsoft 32-Bit-Plattformen
24
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
Windows 95 und Windows NT mit Zugriff auf Datenbankserver über Level-2-konforme 32-Bit
ODBC-Treiber entwickelt. Dieses Framework wird Ende 1996 als Produkt verfügbar sein.
Diesem Framework liegt die folgende Architektur zugrunde:
Presentation
OLE-Client
OLE-Automation
OLE-Server
Business Management
OLE-Client
OLE-Automation
OLE-Server
Business Data Layer
Server-Link über ODBC
Server
Abb.: Schichten einer OT-Framework Applikation
Der Business Data Layer verfolgt einen ähnlichen funktionalen Anspruch wie der VAADatenmanager, allerdings nur für Applikationen auf den Microsoft-Plattformen, die über ODBC auf
Datenbanken zugreifen. Jede OT-Framework-Applikation wird durch ein Data Dictionary gesteuert;
das Data Dictionary enthält im wesentlichen das Objektmodell der komplexen Objekte des Business
Management Layers, des Datenbankschema und Konsistenzbedingungen.
Der Business Data Layer (BD Layer) übernimmt folgende Aufgaben:


Instantiierung und Verwaltung von Business Data-Objekten (BD-Objekten) als Antwort auf
Anforderungen des Business Management Layers. Verwaltung des Pools von BD-Objekten.
Generierung von SQL-Statements zum Einfügen und Lesen in bzw. aus der Datenbank via ODBCSchnittstelle. Die Abbildung von Objekten auf Relationen der Datenbank wird im Data Dictionary
definiert.

Einfache Plausibilitätsprüfungen für Attribute wie z.B. Bereichsüberprüfungen.

Steuerung von BD Layer-Transaktionen (Software Locks und Optimistic Transactions).

Protokollierung von Einfügen-, Ändern- und Löschoperationen (Logging).

Implementierung eines Domain-Konzeptes (Single Point of Definition)

Zugriff auf das Data Dictionary. Interpretation des Data Dictionaries.
© GDV 1999
25
Inhalt
Datenmanager / Anhang
Die folgende Abbildung zeigt die Grundkomponenten des BD Layers und seine Schnittstellen zu
anderen Teilen des OT Frameworks:
BM Layer
OLE Automation Interface
Data Layer Object Pool
BD-Object
BD-Object
BD-Object
BD-Object
BD-Object
Data
Dictionary
ODBC Interface
RDBMS
Abb.: BD-Layer
Der BD Layer ist für das Management von BD-Objekten verantwortlich. Wenn ein BM-Objekt eine
Verbindung zu „seinem” BD-Objekt aufbauen will, stellt es eine Anforderung über die OLEAutomations-Schnittstelle an den BD Layer. Der BD Layer prüft zuerst, ob das BD-Objekt bereits im
Objekt-Pool ist. Falls ja, wird die Verbindung direkt aufgebaut. Im anderen Fall muß der BD Layer
das angeforderte Objekt instantiieren und gleichzeitig in den Objektpool aufnehmen. Das Objekt wird
dabei über ein generiertes SQL-Statement (nähere Informationen weiter unten) aus der Datenbank
gelesen. Informationen über die Struktur des Objektes (z.B. welche Attribute es hat oder in welcher
Datenbanktabelle und -spalte die Attribute gespeichert sind) werden aus der Klassendefinition des
Objekts im Data Dictionary gelesen.
Wenn ein BD-Objekt einem BM-Objekt zugeordnet ist, stehen dem BM-Objekt alle
Attributinformationen des BD-Objekts zur Verfügung. Wichtig ist, daß der BD Layer den BM Layer
auch mit Informationen über Referenzen des BD-Objekts zu anderen BD-Objekten beliefert. Diese
Informationen benötigt der BM Layer, um den Objektbaum aufzubauen und auf die Daten
zuzugreifen. Wenn der BM Layer Objektdaten in die Datenbank zurückschreiben will, ruft er auch
dafür den BD Layer auf. Dieser führt den Auftrag anschließend aus.
Der Objekt-Pool ist ein Mechanismus, der die Anzahl Lese-/Schreibzugriffe auf die Datenbank
minimiert. Er arbeitet wie ein „Festplatten-Cache”. Die gepufferten Elemente sind jedoch keine
Sektoren oder Cluster, sondern BD-Objekte des BD Layers. Bei Bedarf werden neue Objekte
nachgeladen und nicht mehr benötigte aus dem Pool (Cache, Puffer) entfernt.
26
© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
I.4.6. SYBASE Client/Server Produkts
Im SYBASE Client/Server architectural framework sind rund um die Applikation eine Reihe von
Service-Komponenten definiert, die durch SYBASE Client/Server-Produkte unterstützt werden.
Transaction
Management
User Application
Application
Services
Application Programming Interfaces
Protocol
Services
Naming
Services
Security
Services
Transport
Session
Presentation
Application
Naming
Addressing
Directory
Authentication
Access Control
Data
Confidentiality
Data Integrity
Non-repudiation
Management
Services
Fault Mgt
Accounting Mgt
Config. Mgt
Perform. Mgt
Security Mgt
Abb.: SYBASE
Client/Server Architecture
Die Database Middleware Produkte sind in dieser Architektur unter den SYBASE Application
Services anzusiedeln. Alle diese Application Services beruhen auf den Open Client und Open Server
Produkten als building blocks.
© GDV 1999
27
z.B. Server Application
Open Server
z.B. User Interface
Server
Program
Open Client
Client
Program
Open Server
Datenmanager / Anhang
Open Client
Inhalt
Server
Program
z.B. Database Server
Abb.: Open Client
und Open Server als building blocks
Diese Strategie hat u.a. folgende Vorteile:



einheitliches Interface zwischen allen Produkten
keine Interoperabilitätsprobleme mit nicht von SYBASE entwickelten Open Client und Open
Server Applikationen
einheitliche Erweiterung aller Produkte, die auf Open Client/Open Server basieren, bei Update der
Open Client/Open Server Produkte
Die wesentlichen, von SYBASE ab System 10 unterstützten Application Services sind:


28
Replication Server: Ziel jeder Replikation ist, die im Client relevanten Daten so nahe wie möglich
an den Client zu bringen. Ein repliziertes Datenhaltungssystem kopiert deshalb möglicherweise
mehrere Datenbanken über viele Ressource Manager. Aber für jede Tabelle gibt es nur eine
Primärversion innerhalb des replizierten Systems. Die Besonderheit des SYBASE Replication
Servers besteht darin, daß zum Zeitpunkt des Commits einer Transaktion nicht alle beteiligten
Resource Manager verfügbar sein müssen. Dies kann dann natürlich dazu führen, daß lokale Daten
nicht immer synchron mit der Primärversion sind.
Navigation Server: Der Navigation Server erlaubt parallelen und transparenten Zugriff auf
partitionierte Tabellen und Schemata. Die wesentlichen Bestandteile sind der Control Server, der
Data Server, der DBA Server und der Navigation Server Manager. Der Control Server übernimmt
die Anfragen von den Open Client Applikationen, kompiliert und führt die SQL-Statements und
Stored Procedures aus und meldet die Ergebnisse zurück. Die Aufgabe des Data Servers ist, die
Daten auf die Tabellen zu verteilen bzw. umgekehrt zusammenzuführen. Der DBA Server über© GDV 1999
Datenmanager / Anhang
Das Verhältnis Database Middleware zum VAA-Datenmanager
nimmt die Verwaltungsfunktionalität rings um den Datenzugriff (backup, restore, dumping,
loading, deadlock detection, monitoring, restart, ...), der Navigation Server Manager unterstützt die
Administration.




OmniSQL Server: Der OmniSQL Server sorgt für die Ortstransparenz, für Transparenz in unterschiedlichen SQL-Dialekten und Unterschieden zwischen dem SYSBASE SQL Server, ORACLE,
DB2, RMS und ISAM-Dateien.
Der OmniSQL Server fungiert als Gateway mit einer Transact-SQL-Engine und unterschiedlichen
Access-Modulen für die jeweiligen Datenhaltungssysteme.
SQL Server and Backup Server: Der SQL Server und der Backup Server sind die eigentlichen
Datenbankmanagementsysteme, keine Middleware.
Net-Gateway: SYBASE’s Net-Gateway-Produkt ermöglicht die Client/Server-Kommunikation mit
IBM-Mainframe Datenquellen über CICS. Das Net-Gateway besteht aus zwei Komponenten, dem
Mainframe Server Gateway, das Anfragen von Open Client Applikationen an CICS Server
Applikationen via LU6.2 stellt, und dem Mainframe Client Gateway, das Anfragen von CICS
Client Applikationen an den SQL Server akzeptiert.
SQL-Monitor: Der SQL-Monitor ist eine spezifische Open Client Applikation, mit der real-time
Statistiken über viele SQL-Server ermittelt werden, z.B. über Locking, Caching, Device I/O,
Transaktions-Mix, Thread-Aktivität, ...

Secure Server (Sicherheitsdienste)

Audit Server (insbesondere Paßwort-Management)

SA Companion (System-Management, Administration)

SQL Debug (interaktiver Source-Level Debugger für SYBASE’s erweitertes SQL)

Database load and query tools
SYBASE bietet neben seinen Manualen auch eine Reihe von Übersichts-Bänden an. Die obige
Zusammenfassung beruht im wesentlichen auf [SybOv].
I.4.7. Der Datensichtprozessor der Württembergischen
Versicherung
Bei der Württembergischen Versicherung (WV) ist seit 1989 im Rahmen einer neuen
Anwendungsarchitektur eine Komponente im produktiven Einsatz, die wesentliche Aspekte des VAADatenmanagers berücksichtigt.
Folgende Voraussetzungen sind im Datensichtprozessor der WV abgedeckt:



Unabhängigkeit von der physischen Speicherung
unterschiedliche DBMS können integriert werden
Unabhängigkeit vom logischen DB-Design
die Datenanforderungen der Anwendungs-SW werden auf der Basis des logischen DM
formuliert
Datenkonsistenz gegenüber dem Modell
© GDV 1999
29
Inhalt
Datenmanager / Anhang
die Vorgangsdaten entsprechen zu jedem Zeitpunkt dem DM



Unterstützung langer Transaktionen
Vorgänge über mehrere Transaktionen mit Update am Ende
Integration der Zeitlogik durch die Definition von Informationsobjekten
zweidimensionale Zeit wird unterstützt Minimierung der "Zeitsprünge"
Basis für die Implementierung generischer Software-Bausteine
allgemeingültige Software-Algorithmen werden unterstützt
Der Datensichtprozessor wurde für einer Großrechner-Umgebung entwickelt, das überwiegend
genutzte Datenbank-System ist IMS/DB.
Datenanforderungen und Datenänderungen erfolgen aus Sicht der Anwendungen ausschließlich auf
Basis des Unternehmens-Datenmodells. Sie werden in Form von Datensichten formuliert, in denen
Umfang und Struktur der angeforderten Daten beschrieben sind.
Zur Zeit wird für den WV-Datensichtprozessor ein Redesign-Projekt durchgeführt mit den Zielen

Entwicklung graphischer Konfigurationswerkzeuge

Transformation zwischen logischem und physischem Modell

durch eine flexible Abbildungssprache

Portierbarkeit der Basisfunktionen auf weitere Plattformen

als Basis für eine Client/Server - Architektur

Unterstützung weiterer Datenbank-Managementsysteme
I.4.8. Weitere
In der Regel bieten die Hersteller von CASE-Werkzeugen wie z.B. Texas Instruments mit dem IEF
Composer grafische Modellierungswerkzeuge an, mit deren Hilfe E/R-Modelle und physische
Datenmodelle entwickelt werden können. Aus diesen Modelle lassen sich Datenbankschemata und
Standard-Zugriffe generieren. Die Anforderungen, die sich aus der Versionsmodellierung ergeben
sowie die Formulierung von Datansichten ist in der Regel nicht möglich.
II. Technologische Aspekte - insbesondere
Objektorientierung
II.1. Komponentenorientierung und Objektorientierung
In der Diskussion über Anforderungen an moderne Software-Architekturen werden die Themen
30
© GDV 1999
Datenmanager / Anhang


Technologische Aspekte - insbesondere Objektorientierung
Verbesserung der Möglichkeiten für Wiederverwendung zur Kostenreduktion in der SoftwareEntwicklung, -Wartung und -Pflege und
Verbesserung der Flexibilität der Softwaresysteme zur besseren Unterstützung des
prozeßorientierten Arbeitens und zur schnelleren Reaktion auf die Marktdynamik
vorrangig genannt. Komponentenorientierung wie Objektorientierung werden als Paradigmen der
Software-Entwicklung zum Erreichen dieser Ziele angesehen.
Die Umstrukturierung der Unternehmen von einer relativ starren, arbeitsteilig und hierarchisch
organisierten Arbeitsform zu flexibleren und prozeßorientierten Strukturen hat zum Prinzip, daß jeder
Mitarbeiter mehr Autonomie und größere Verantwortung für seine Aufgaben und damit den
Gesamterfolg seines Unternehmens erhält. Mehr Verantwortung tragen führt zu der Anforderung,
Zugriff zu aller für die jeweiligen Aufgaben notwendigen Information zu erhalten. Es muß möglich
sein, daß der in der Prozeßkette tätige Mitarbeiter sich die Informationen, die er zur Bewältigung
seiner Aufgaben benötigt, am „Endgerät“ seines Arbeitsplatzes beschafft; wo sich auch immer im Netz
die Informationsquelle befinden mag. Der Arbeitsplatzrechner wird zum Integrationspunkt für
Informationen.
User Centered Computing Paradigm
Personal Computer
as Workplace-Stations
Network
NT Servers
UNIX Servers
The IT-Infrastructure focusses on the Workplace and
Servers
integrates heterogeneous server environments Mainframe
(MVS/BS2000)
Abb.: Paradigma des User Centered Computing
Monolithische Anwendungssysteme sind in der Regel zu starr und implementieren vordefinierte
Geschäftsprozesse. Die IT-Technologie muß diesem Wandel folgen und die benötigten technischen
Mittel schaffen. Client/Server-Computing ist der erste Schritt in diese Richtung, reicht allein jedoch
nicht aus, die oben genannten Ziele der Wiederverwendung, Kostenreduktion und insbesondere der
Flexibilität in Bezug auf sich rasch wandelnde Marktanforderungen zu erreichen. Die SoftwareArchitekturen müssen mehr Flexibilität ermöglichen.
Die technischen Auswirkungen sind:



Das Netzwerk wird zum „System“.
Der Arbeitsplatz des Endanwenders wird zum Integrationspunkt für Informationen, die zentrale IT
steht nicht mehr im Mittelpunkt.
Die Software muß wesentlich modularer strukturiert, aus „Komponenten“ oder „Objekten“
konfigurierbar sein.
© GDV 1999
31
Inhalt
Datenmanager / Anhang
Application Architectural Evolution
Monolithic
Client/Server
Component Based
Presentation Logic
Presentation Logic
Presentation Objects
Business Logic
Business Logic
Business Objects
Data Management
File System + DBMS
Data Management
RDBMS
Data/Resource
Management
1970
1990
1997
2001
Abb.: Entwicklung hin zu
Komponenten-Software [nach Gardner Group]
II.1.1. Was ist eine Komponente, ein Objekt?
Die Frage „Was ist eine Komponente oder ein Objekt?“ läßt sich nicht zweifelsfrei beantworten,
insbesondere nicht, wenn nicht die Art ihrer Benutzung genauer differenziert wird. Gemeinsames
Merkmal jedes Objekts oder jeder Komponente ist, daß es sich um ein Stück Software handelt, das auf
eine bestimmte Art und Weise „verpackt“ ist, eindeutig identifiziert werden kann und über ein
Interface verfügt, über das Verhalten (Dienste) und Daten von außen zugänglich gemacht werden.
Bei der Konstruktion bzw. Implementierung von Software ist der Begriff des Objekts mit dem
Programmierparadigma einer objektorientierten Sprache verbunden. Im Kontext der
Implementierungstechnik wird weniger von der „Komponente“, viel mehr von Objekt, Klasse,
Klassenbibliothek gesprochen.
Jede Klasse, von der sinnvoll abgeleitet werden soll, hat drei verschiedene Interfaces:



Das externe (public) Interface: Dies ist die Sicht des Nutzers einer Klasse, insofern ist es das
„wichtigste“ Interface, weil es den Kontakt zwischen Klassennutzer und Klassenprovider definiert.
Es umfaßt Methoden mit Aufrufparametern (mit Typ), Returnwert (mit Typ), Verhalten,
Fehlerverhalten.
Das protected (virtuelle) Interface: Dies ist die Sicht des Modifizierers einer Klasse durch
Vererbung. Es beschreibt den Kontakt zwischen dem Klassenerweiterer und dem Klassenprovider.
Klassenerweiterungen sind kaum ohne den Sourcecode der Basisklasse machbar.
Das private Interface: Dies Interface umfaßt die internen, dem Nutzer der Klasse verborgenen
Schnittstellen, die zur Implementierung der Klasse benötigt werden.
Bei der Integration kompilierter Komponenten oder Objekte zu einem Softwaresystem steht der
Gedanke des „binären Standards“ im Vordergrund: Zwei unabhängig kompilierte SoftwareKomponenten können zur Runtime in zuverlässiger Weise zusammenarbeiten. Ovum [OvumDO95]
z.B. definiert Componentware folgendermaßen:
32
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
Software designed to enable application elements to work together that were constructed
independently by different developers using different languages, tools and computing
environments.
Bei dieser Art der Verwendung werden die Begriffe „Komponente“ und „Objekt“ nahezu synonym
verwendet.

Komponenten stellen ihre Funktionalität über Interfaces zur Verfügung.

Ein Interface beschreibt eine Gruppe logisch zusammengehörender Methoden einer Komponente.

Jedes Interface stellt einen „Vertrag“ zwischen Komponentennutzer und Komponentenprovider
dar.
Damit eine solche Integration von wiederverwendbaren Software-Komponenten oder -Objekten über
System- und Rechnergrenzen hinweg möglich ist, ist die Orientierung und Ausrichtung an
internationalen Standards unabdingbar. Hervorzuheben sind dabei CORBA der Object Management
Group OMG und OLE/COM von Microsoft.
II.1.2. Common Object Requets Broker der OMG
Die OMG ist eine internationale Organisation, die von Herstellern, Softwareentwicklern und
Endbenutzern unterstützt wird (500+ Mitglieder). Die Aufgabe und Ziele der OMG sind die
Entwicklung und Beeinflussung der Technologie in den Bereichen Architektur, Referenz-Modell,
APIs für Objekte und Anwendungen, Distributed Object Management und Object Services.
Die Object Management Group OMG wurde 1989 als non profit Organisation in den USA gegründet
und umfaßt zur Zeit über 500 Mitglieder, praktisch alle bedeutenden Firmen der DV-Industrie sind
vertreten. Diese Organisation arbeitet an der Standardisierung objektorientierter Konzepte und
Technologien, die Interoperabilität und Portabilität von (objektorientierten) Anwendungen in einer
verteilten, heterogenen Umgebung ermöglichen soll. Das gesamte Framework, die technischen Ziele,
die Referenzarchitektur und das konzeptuelle Objektmodell sind im Dokument „Object Management
Architecture Guide“ beschrieben.
II.1.2.1. Object Management Architecture
Das Referenzmodell der OMG, die Object Management Architecture OMA, besteht aus vier
verschiedenen Komponenten bzw. Arten von Komponenten:

Object Request Broker

Object Services

Common Facilities

Application Objects
© GDV 1999
33
Inhalt
Datenmanager / Anhang
Common Facilities
Application Objects
OBJECT REQUEST BROKER
Object services
Abb.: Referenzmodell der OMG
Der Object Request Broker ist der eigentliche Kern der Object Management Architecture und stellt
Mechanismen zur Verfügung, mit denen Objekte auf transparente Weise Anfragen (Requests) senden
und Antworten (Responses) empfangen können. Dabei gewährleistet der ORB Interoperabilität
zwischen Anwendungen auf verschiedenen Rechnern in einer verteilten heterogenen Umgebung sowie
die nahtlose Verbindung multipler Objektsysteme.
Object Services bieten die grundlegende Dienste an, die von den meisten Objekten benötigt werden,
beispielsweise:
Implementation Repository (Mangement von Objektimlpementierungen)
Installation and Activation (Mechanismen zur Verteilung, Aktivierung, Deaktivierung

Interface Repository

Startup Services

Event Notification

Lifecycle (Erzeugen neuer Objekt, Kopieren und Löschen von Objekten)

Concurrency Control (gleichzeitiger Zugriff durch mehrere Clients)

Externalization (Eingabe und Ausgabe des Objektstatus von bzw. in Streams)

Relationship (Unterstützung der Beziehungen zwischen mehreren Objekten)

Transaktions (Transaktionsservice)

Security (Zugriffskontroole auf Objekte)

Time (Zeitsynchonisation in verteilten Systemen)

Licensing

Properties (dynamische Zuordnung von Attributen zu Objekten)

Query (Operationen auf Mengen von Objekten mit Mengen von Objekten als Ergebnis)
34
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung

Change Management (Konfigurations- und Versionsmanagement)

Trading (Zuordnung von bereitgestellten Services zu benötigten Services eines Clients)

Archive, Backup/Restore ...
Common Facilities bieten allgemeine Dienste an, die in vielen Anwendungen benötigt werden bzw.
nützlich sind (z.B. Drucken, E-Mail, Hilfesystem, usw.).
Application Objects repräsentieren die eigentlichen fachlichen Anwendungskomponenten.
II.1.2.2. Common Object Request Broker Architecture
Die „Common Object Request Broker Architecture (CORBA) and Specification V1.2“ ist die von der
OMG ausgewählte ORB Technologie, die auf einem gemeinsamen Vorschlag von DEC, HP,
HyperDesk, NCR, Object Design und SunSoft basiert. Diese Spezifikation definiert ein Framework
für verschiedene ORB Implementierungen, die einheitliche ORB Services und Interfaces für
portierbare Clients und Objekt-Implementierungen bieten; d.h. CORBA definiert die Services und
Schnittstellen eines ORB, jedoch nicht die Implementierung.
Client
Object Implementation
Request
ORB
Abb.: CORBA Grundprinzip
Objekte, welche Services benützen möchten, werden als Clients und Objekte, welche Services
anbieten, als Object Implementations bezeichnet. Clients nutzen Services durch Senden von Requests
an Object Implementations. Eine Request ist ein Event, welcher Informationen über Zielobjekt,
Operation, Parameter und einen optionalen Request Context enthält.
Die Struktur der ORB Interfaces zeigt das folgendes Bild:
© GDV 1999
35
Inhalt
Datenmanager / Anhang
Client
Dynamic
Invocation
IDL
Stubs
Object Implementation
ORB
Interface
IDL
Skeleton
Object
Adapter
ORB
Interface identical for all ORB implementations
There may be multiple object adapters
Up - call interface
There are stubs and a skeleton for each object type
ORB - dependent interface
Normal call interface
Abb.: ORB Interfaces
Um einen Request abzusetzen, kann der Client einen IDL (Interface Definition Language) Stub oder
das Dynamic Invocation Interface verwenden. IDL Stubs dienen zum Absetzen von Request, falls das
Interface des Zielobjekts zur Compilezeit bekannt ist; dieses Interface ist abhängig vom Interface des
Zielobjekts und damit objekt-spezifisch. Das Dynamic Invocation Interface dient zum Absetzen eines
Request, falls das Interface des Zielobjekts zur Compilezeit nicht bekannt ist; dieses Interface ist
unabhängig vom Interface des Zielobjekts und identisch für alle ORB-Implementierungen.
Der ORB bietet Services bzw. ist zuständig für Aufgaben wie: Request Dispatch, Parameter Encoding,
Delivery, Activation, Synchronization und Exception Handling.
Der Request wird vom ORB über den IDL Skeleton an die entsprechende Objekt-Implementierung
weitergereicht. Zur Nutzung von ORB Services (z.B.: Registrierung von Object Implementations,
Generierung von Object References, Aktivierung von Object Implementations etc.) kommuniziert die
Object Implementation mit dem ORB über den Object Adaptor; dies ist das primäre Interface
zwischen Object Implementation und ORB. IDL Skeletons sind spezifisch bezüglich Object
Implementation und Object Adaptor.
II.1.2.3. ORB-Implementierungen im Vergleich
Es gibt keine CORBA-Referenzimplementierung. Die CORBA-Spezifikation definiert (nicht immer
eindeutig) Funktionalität und Schnittstellen und läßt deren Umsetzung bewußt offen. Deshalb
unterscheiden sich die einzelnen CORBA-Implementierungen nicht nur hinsichtlich ihrer insgesamt
abgedeckten Funktionalität, sondern auch hinsichtlich ihres Verhaltens. In [Hor96] findet man eine
übersichtliche Darstellung einiger Produkte. Hier wird in Kurzfassung auf einige wichtige Produkte
eingegangen:

Object Broker von DEC
Der Objekt Broker ist eine Weiterentwicklung des ACA-Services von DEC. Er hat seine Stärken
bei der Verteilung von Anwendungen auf mehrere Rechner und bei der Integration existierender
Anwendungen. Die objektorientierten Ansätze werden bis V2.5 kaum unterstützt. Der Object
Broker ist auf Open VMS, einigen Unix-Plattformen und Windows NT verfügbar. Für Windows
3.1 und Apple Macintosh gibt es reine Client-Versionen.
36
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
Als CORBA-konforme Services werden angeboten: Naming und Security. Zudem gibt es eine
Sprachanbindung an Visual Basic und die Möglichkeit, Server des Object Brokers als OLE-Server
anzusprechen.

Distributed Smalltalk von HP
HP Distributed Smalltalk ist eine Erweiterung der VisualWorks-Entwicklungsumgebung von
ParcPlace um die Möglichkeit, CORBA-konforme Anwendungen zu erstellen. HP Distributed
Smalltalk bietet bereits das CORBA2.0 Interoperabilitätsprotokoll und die CORBA-Services:
Naming, Events, Lifecycle, Relationships, Concurrency und Transactions. Distributed Smalltalk ist
derzeit der ORB für verteilte Smalltalk-Anwendungen.

DSOM IBM
Das Distributed System Object Model DSOM ist im wesentlichen eine Erweiterung von IBMs
System Object Model SOM in Richtung CORBA. Es ist auf OS/2, AIX und Windows verfügbar.
Wie der DEC Object Broker wurde SOM/DSOM ursprünglich nicht als CORBA-Implementierung
konzipiert. Es stand die Entwicklung eines Frameworks für die objektorientierte
Anwendungsentwicklung und nicht der Verteilungsaspekt im Vordergrund. DSOM bietet das
Dynamic Invocation Interface gemäß CORBA V1.2, es werden aber keine CORBA-Services
unterstützt. Allerdings besitzt SOM/DSOM Frameworks, die ähnliche Dienste bereitstellen.

Orbix von IONA
Orbix wurde als reine CORBA-Implementierung entwickelt, seit 1993 sind Versionen verfügbar. Die
aktuelle V1.3 unterstützt unter anderen nahezu alle Unix-Plattformen, Windows 3.1, Windows NT
und OS/2. Orbix unterstützt IDL nach der CORBA1.2-Spezifikation und bietet eine
Sprachanbindung an C++ an.
Orbix versteht sich als ein „schlankes“ Produkt, dessen Vorteile in der Unterstützung vieler
Plattformen, einer Implementierung mit hoher Performance und einer einfachen Benutzbarkeit
liegen. CORBA-Services werden nicht unterstützt. Zusätzliche Leistungsmerkmale erhält Orbix
durch die Integration mit anderen Produkten, die Integration von Microsoft OLE und künftig mit
SUN NEO.

ORBelinevon PostModern Computing
ORBeline ist eine von Grund auf neu entwickelte CORBA-Implementierung, verfügbar auf
mehreren Unix-Plattformen und Windows NT. ORBeline unterstützt die CORBA1.2-IDL-Syntax
und bietet eine C++-Sprachanbindung. ORBeline beinhaltet keine CORBA-Services. Es bietet
lediglich sogenannte „Event Handler“ an, die für alle wichtigen Systemereignisse sowohl auf
Client- als auch auf Implementierungsseite installiert werden können.
ORBeline ist eine leicht zu benutzende CORBA-Implementierung mit wenigen
Leistungsmerkmalen.
© GDV 1999
37
Inhalt

Datenmanager / Anhang
NEO von SUN
Network Enabled Objects NEO (früher unter dem Namen DOE bekannt; das Projekt DOE begann
bereits im Gründungsjahr der OMG) ist die CORBA-Implementierung von Sun Microsystems mit
vielen Leistungsmerkmalen und einer komfortablen Entwicklungsumgebung. Durch abgesichertes
Mulitthreading, viele CORBA-Services (Naming, Events, Properties, Relationships und
Persistency), dazu IDL nach CORBA1.2-Spezifikation, Sprachanbindung an C und C++, CORBAkonformer Implementierung des Basic Object Adapters bietet sich NEO für die Erstellung
komplexer Server-Komponenten an. NEO ist auf Solaris verfügbar und wird auf andere
Plattformen portiert, z.B. SNI-Server-Plattformen.

SORBET von Siemens Nixdorf
Als Mitglied arbeitet Siemens Nixdorf an den fortdauernden Standardisierungsverfahren der OMG
mit und unterstützt die wesentlichen Schnittstellen in den eigenen Produkten. Insbesondere bietet
Siemens Nixdorf mit SORBET eine Weiterentwicklung des von SUN realisierten CORBA1konformen ORB an, und zwar sowohl unter UNIX als auch unter BS2000/OSD. In der nächsten
Version wird SORBET im Rahmen der Realisierung der CORBA2-Funktionalität über das General
Inter-ORB Protocol (GIOP) eine Interoperabilität auch mit anderen CORBA2-konformen ORBs
und mit OLE/COM-konformen Anwendungen unterstützen. Weitere Dienste wie etwa der
Transaktionsdienst werden in SORBET realisiert werden.
II.1.3. Object Linking and Embedding
Das Component Object Model COM von Microsoft beschreibt eine Architektur für objektbasierte
Kommunikation. Diese ist vergleichbar der Funktionalität eines ORB, wenn auch heute noch nicht
verteilt über das Natz. Duch COM wir ein binärer Objektstandard definiert, der alle Objekte nach
außen hin mit einer oder mehreren wohldefinierten Schnittstelle erscheinen läßt und diese
Schnittstellen zur Benutzung durch beliebige andere Objekte freigibt. Dabei ist es gleichgültig, wie
und in welcher Programmiersprache die Objekte entwickelt wurden.
38
© GDV 1999
Datenmanager / Anhang
c
rfa
nte
Technologische Aspekte - insbesondere Objektorientierung
M
eE
I
Int
erf
ac
e
M
M
A
M
M
M
M
M
COM - Objekt
M
M
Interface B
Interface D
M
M
M
M
M
Interface C
Abb.: COM-Objekt
COM legt fest, wie Objekte auf Schnittstellen zugreifen, wie Fehlercodes übertragen und wie
Parameter übergeben werden. COM beinhaltet auch die Möglichkeit, Objekte aus anderen Objekten
zusammenzusetzen.
Object Linking and Enabling OLE ist aus einem Dokumenten-Integrationskonzept entstanden und mit
OLE2 zu einem Integrationskonzept für beliebige Anwendungsobjekte erweitert worden. OLE2
realisiert einen Layer oberhalb von COM, der z.Zt. einen ORB-Mechanismus auf einem WindowsRechner zur Verfügung stellt. Künftig wird mit Distributed OLE eine ORB-vergleichbare
Funktionalität auf Windows-Plattformen auch verteilt im Netz angeboten.
Client
(“Container”)
“Marshaling” über
Prozeßgrenzen
durch (L)RPC
RPC
RPC
Lokales Objekt
im EXE Server
Privates Objekt
Direkter Funktionsaufruf
RPC
In-Proc Objekt
im DLL Server
© GDV 1999
RPC
Remote Objekt
auf anderer
Maschine
“Marshaling” über
Maschinen Grenzen
durch DCE/RPC
39
Inhalt
Datenmanager / Anhang
Abb.: Unterschiedliche OLE-Aufrufbeziehungen
Die wesentlichen Eigenschaften von OLE2 auf Basis des Component Object Models sind:







Compound Document (Inplace-Activation, Visual Editing)
Ein Dokument (Container) bildet die logische Klammer für beinhaltete Komponenten. Ein
Mausklick auf ein eingebettetes Objekt an der Oberfläche wechselt die Umgebung (Menüs,
Toolbars, ...) in die Anwendungsfunktionalität, die zum ausgewählten Objekt gehört.
Drag&Drop
Objekttransfer zwischen verschiedenen Containern oder innerhalb eines Containers einfach
dadurch, daß das Objekt mit der Maus „angefaßt“ und in den anderen Container am Bildschirm
verschoben wird.
Naming and Binding
Naming and Binding stellt die Services zur Verfügung, die den transparenten Zugriff auf die
Schnittstelle der Komponenten realisieren.
Notification
Notification unterstützt den Nachrichtenaustausch zwischen Komponenten.
Structured Storage
Structured Storage realisiert die persistente Speicherung von OLE-Objekten.
Uniform Data Transfer
Uniform Data Transfer löst DDE ab und realisiert den Datenaustausch zwischen OLEKomponenten.
Automation
Automation bietet die Möglichkeit, daß OLE2-Objekte ihre komplette Funktionalität oder Teile
davon über Interfaces nach außen verfügbar machen. OLE2 läßt die Interaktion nicht nur in statisch
gebunden Programmen sondern auch dynamisch zur Laufzeit zu.
Die beiden ersten Komponenten sind User Interface fokussiert, während die restlichen Komponenten
technisch-objektorientierte Funktionalität realisieren.
II.1.4. Bewertung
Microsoft ist Mitglied der OMG, beteiligt sich aber nicht aktiv am Standardisierungsverfahren. OLE2
realisiert vielmehr ein Objektmodell vergleichbar mit dem, wie es von der OMG gefordert wird,
umfaßt dabei alle wichtigen Aspekte einer objektorientierten Architektur und ist pragmatisch. Statt
den OMG-Standard CORBA zu übernehmen, will Microsoft sicherstellen, daß es einen
standardisierten Weg zur Kommunikation zwischen CORBA- und OLE-Objekten gibt. Zudem wird
mit Partnern daran gearbeitet, OLE auf alle gängigen Plattformen zu portieren.
OLE2 ist damit eine allgemeine Integrationstechnologie, auch wenn ihre Herkunft von der
Dokumentenintegration nicht zu leugnen ist und sie zunächst auf die Windows-Plattformen beschränkt
ist. Da gerade für die Windows-Plattform aufgrund ihrer weiten Verbreitung viel Software entwickelt
wird, wird der Markt für Componentware auf dieser Plattform wesentlich schneller wachsen als auf
allen anderen Plattformen. Durch Partnerschaften wie der zwischen Microsoft und Siemens Nixdorf
werden die Anforderungen, die an die Microsoft-Plattform für die Entwicklung großer kommerzieller
Anwendungssysteme gestellt werden, schnellstmöglich befriedigt und so auch betriebswirtschaftliche
40
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
Komponenten und Anwendungen auf Basis der Technologien von Microsoft realisiert. Die Anbindung
von Transaktionsmonitoren (z.B. openUTM) über ein OLE-Automation-Interface ist bereits möglich;
der Zugang zu Transaktionsverarbeitung auf Serversystemen ist damit geschaffen.
CORBA richtet sich vorrangig an die Entwickler verteilter objektorientierter Anwendungen auf UnixServern. Die OMG hat mit der CORBA-Spezifikation die Schnittstellen und das Verhalten eines ORB
festgelegt, die Implementierung abe bewußt offen gelassen. Dies hat den Vorteil, daß - obwohl
CORBA erst vor ca. drei Jahren verabschiedet wurde, auf den meisten Plattformen CORBAImplementierungen unterschiedlicher Hersteller vorliegen. Dies hat zur Folge, daß die einzelnen
ORBs auf unterschiedlichen Realisierungsphilosophien beruhen, damit unterschiedliche Stärken und
Schwächen haben. Der Nachteil ist, daß sich eine mit einem spezifischen ORB entwickelte Software
nicht direkt unter einem anderen ORB einsetzen läßt. Eine vollständige Identität aller ORBs ist auch
nicht das primäre Ziel der OMG. Im Vordergrund steht die Kooperation und die Interoperabilität der
einzelnen Komponenten. Deshalb wurde innerhalb der CORBA2.0-Spezifikation ein
Interoperabilitätsprotokoll definiert.
Ob der Einsatz eines ORBs zur Entwicklung unternehmenskritischer großer Anwendungen geboten
erscheint, bedarf einer genauen Prüfung: Kann das Risiko einer neuen Technologie eingegangen
werden? Welche CORBA-Implementierung ist die für den geplanten Einsatzfall richtige. Alle heute
verfügbaren CORBA-Implementierungen lassen noch alle Wünsche offen. Inbesondere bei hohen
Lastanforderungen, vielen Rechnern im Netz, Bedarf an einer Kombination komplexer Services wie
transaktionsbasierten Diensten, garantierter Auslieferung oder Sicherheit sind Machbarkeitsstudien
und Probeimplementierungen anzuraten.
II.2. Objektorientierte Modellierung und objektorientierte
Datenhaltungstechnologien
II.2.1. E/R-Modellierung und objektorientierte Modellierung
In diesem Abschnitt werden die Unterschiede und Gemeinsamkeiten von Entity-RelationshipModellen und Klassen- bzw. Objekt(typ-)modellen erläutert. Die Frage, wie diese beiden Modelltypen
miteinander zusammenhängen, ist von entscheidender Bedeutung, wenn Modelle und
Anwendungssysteme, die in unterschiedlichen Technologien entwickelt sind, als eigenständige
Anwendungskomponenten integriert werden.
Die klassischen Methoden zur Unterstützung der Anwendungsentwicklung sind die Strukturierte
Analyse (SA) zur Beschreibung der "Funktionssicht" und das Entity-Relationship-Modell (ERM) zur
Beschreibung der "Datensicht" eines Informationssystems.
© GDV 1999
41
Inhalt
Datenmanager / Anhang
Abb.: SA und ERM [FeSi93]
Die Trennung von Funktions- und Datensicht beruht auf dem Strukturparadigma imperativer
Programmiersprachen. Danach besteht ein Programm aus einer Algorithmusdefinition und einer
Beschreibung der zugehörigen Datenstrukturen. Für die Strukturierung eines Anwendungssystems
wird klassisch eine erweiterte Form dieses Strukturparadigmas verwendet: Die globale Datenstruktur
des Anwendungssystems wird in Form eines konzeptuellen Datenschemas modelliert. Funktionen benötigen in der Regel nur Ausschnitte aus dem Gesamtschema. Deshalb werden über diesem
konzeptuellen Datenschema externe Schemata (Views) definiert; jedes externe Schema stellt die
"lokale" Datensicht einer Funktion auf die globale Datenstruktur dar.
42
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
Die Funktionen sind das Ergebnis einer hierarchischen Zerlegung der Gesamtfunktion des Anwendungssystems. Jede einzelne Funktion wird in Form eines Algorithmus dargestellt und folgt,
zusammen mit dem zugehörigen externen Datenschema, wiederum dem Strukturparadigma
imperativer Programmiersprachen.
Die konzeptuelle Datenmodellierung hat als integraler Bestandteil der Systementwicklung in den
letzten Jahren eine breite Akzeptanz gefunden. Dies wird u.a. deutlich an den Anstrengungen vieler
Unternehmen, sog. "unternehmensweite Datenmodelle" oder "Bereichsmodelle" aufzustellen. Ziel der
konzeptuellen Datenmodellierung ist es, im Rahmen einer Informationsanalyse einen gegebenen
Ausschnitt der Realität in Form eines konzeptuellen Datenschemas zu beschreiben, wobei die Art der
Beschreibung durch das verwendete semantische Datenmodell, derzeit dominieren Modelle auf der
Grundlage des Entity-Relationship-Modells, bestimmt wird.
Ein konzeptuelles Datenschema gemäß ERM besteht aus Datenobjekttypen (Entity-Typen) mit
zugeordneten (Daten-) Attributen, Schlüsselreferenzen zwischen Datenobjekttypen und
Integritätsbedingungen. Die statischen Integritätsbedingungen beschreiben zulässige Ausprägungen
der Daten, dynamische Integritätsbedingungen zulässige Transformationen. Abgesehen von diesen
dynamischen Integritätsbedingungen wird mit Hilfe eines Datenmodells (Entity-Relationship-Modells)
ausschließlich die Datensicht eines Systems beschrieben.
Im Gegensatz dazu beschreibt ein Klassenmodell (bzw. Objekttypenmodell) zusätzlich die
Funktionssicht und die Interaktionssicht eines Systems. Ein Klassenmodell unterstützt somit eine
ganzheitliche, "objektorientierte" Systembeschreibung. Dabei wird jedes Objekt als Instanz
(Ausprägung) einer Klasse (= Objekttyp) aufgefaßt. Eine Klasse wird als abstrakter Datentyp
verstanden, der durch Variablen (Attribute, Daten) und Methoden (Operatoren, Verhalten) beschrieben
wird. Jede Klasse kann als Spezialisierung (Subklasse) einer oder mehrerer Superklassen vereinbart
werden. Dabei vererbt eine Superklasse Variablen und Objektfunktionen (Methoden) an ihre
Subklassen. Die Objekte, also die Instanzen der einzelnen Klassen, interagieren mit Hilfe von
Nachrichten (Botschaften). Eine Nachricht löst beim Empfängerobjekt die Durchführung einer
Objektfunktion aus.
Um die Unterschiede zwischen einem ERM und einem Klassenmodell für die Realisierung einer
fachlichen Funktionalität etwas genauer zu beleuchten, werden unterschiedliche Arten von fachlichen
Objekten unterschieden. Denn die Spezifikation der fachlichen Funktionalität eines
Anwendungssystems differenziert sich bei genauerer Betrachtung (vgl. z.B. [Am93], [Booch93],
[FeSi93], [Ja92]) in die konzeptuelle, die Vorgangs- und die Schnittstellen-Funktionalität:

Die Vorgangs-Objektmodellierung bearbeitet die Fragestellung, welche aus den betrieblichen
Vorgängen ableitbaren und vorgangsspezifischen Eigenschaften ein Anwendungssystem benötigt.
Gegenstand der Vorgangs-Objektmodellierung ist die umfassende und objektorientierte Spezifikation der Vorgangs-Funktionalität eines Anwendungssystems.
Die Vorgangs-Funktionalität realisiert die unmittelbare Vorgangssteuerung und beschreibt das Zusammenwirken von vorgangsspezifischer, konzeptueller, Schnittstellen- sowie rein technischer
Funktionalität bei der Durchführung betrieblicher Vorgänge. Das Ergebnis der VorgangsObjektmodellierung ist ein Schema von Vorgangs-Objekttypen.

Die konzeptuelle Objektmodellierung setzt sich mit der Fragestellung auseinander, welche aus
den betrieblichen Vorgängen ableitbaren und vorgangsneutralen Eigenschaften die Objektbasis des
Anwendungssystems benötigt. Aufgabe der konzeptuellen Objektmodellierung ist die objektorientierte Spezifikation der Struktur des Anwendungssystems, also sowohl der Struktur der Daten
© GDV 1999
43
Inhalt
Datenmanager / Anhang
als auch der darauf operierenden Zugriffsfunktionalität. Ergebnis ist ein Schema konzeptueller
Objekttypen.

Die Schnittstellen-Objektmodellierung bearbeitet die Fragestellung, welche aus den betrieblichen
Vorgängen ableitbaren Schnittstellen-Eigenschaften ein Anwendungssystem benötigt.
Gegenstand der Schnittstellen-Objektmodellierung ist damit die einheitliche, umfassende und objektorientierte Spezifikation der Schnittstellen-Funktionalität eines Anwendungssystems zu der
Verfahrensumgebung; das Ergebnis wird in einem Schema von Schnittstellen-Objekttypen beschrieben. Schnittstellen-Objekttypen dienen also der fachlichen Spezifikation der Mensch-Computer-Kommunikation sowie der Computer-Computer-Kommunikation von Anwendungen.
Die Trennung zwischen konzeptueller Objektmodellierung und Vorgangsobjektmodellierung
unterstützt die Flexibilität des Anwendungssystems durch eine erhöhte Daten- und
Funktionsunabhängigkeit. Schnittstellen-Klassen schaffen einen weitgehend unabhängigen Entwurf
von konkreten Interface-Systemen.
Aufgrund der obigen Erläuterungen wird deutlich, daß das konzeptuelle Datenschema eines ERM
eine Projektion des zugehörigen konzeptuellen Objektschemas in Bezug auf seine Attribute
darstellt. Dadurch wird die Kompatibilität zwischen Objektmodell und Datenmodell gewährleistet, die
durch die folgende begriffliche Zuordnung beschrieben wird:
Datenmodell
Objektmodell
(Daten-) Objekttyp, Entitytyp
Klasse, Objekttyp
(Daten-) Objekt, Entität, Instanz
Instanz, Objekt
Attribut
Instanzvariable, (Instanz-) Attribut
Gegenüber der objektorientierten Modellierung weist der klassische Ansatz (Strukturierte Analyse und
Entity-Relationship-Modellierung) die Defizite auf, die nur durch Umsicht und Erfahrung der
Modellierer ausgeglichen werden können:



44
SA und ERM beschränken sich i.a. auf das Anwendungssystem, also den automatisierten Teil eines
Informationssystems. D.h. eine ganzheitliche Beschreibung der Diskurswelt fehlt; Beziehungen
zwischen Anwendungssystem und seinen umgebenden Teilsystemen, auch personellen
Aufgabenträgern, sind nicht sichtbar. Erfahrene Modellierer wie auch Weiterentwicklungen der
klassischen Ansätze beziehen die Umwelt sowie personelle Aufgabenträger deshalb mit ein.
Datensicht (Datenschemata gemäß ERM) und Funktionssicht (Datenflußdiagramme gemäß SA)
werden weitgehend eigenständig entwickelt; eine Kopplung erfolgt lediglich über View-Schemata,
also externe Sichten auf einen Ausschnitt des Datenschemas. Denn es gibt kein integriertes MetaModell von SA und ERM. Die Abstimmung von Daten- und Funktionssicht wird nicht methodisch
erzwungen, sondern obliegt der Verantwortung und Umsicht der Analytiker und Designer.
Datenmodelle sind deshalb zunächst weniger stabil als Objektmodelle; beim Abgleich von
Funktionssicht und Datensicht sind oft umfangreiche Nacharbeiten erforderlich.
Ein strenges Vorgehensmodell ist ursprünglich für ERM nicht verfügbar. Das Auffinden der
Datenobjekttypen und Beziehungen wird durch Interviews, Textanalysen und Formularanalysen
nur unzureichend unterstüzt. Deshalb wird bei der Datenanalyse zunehmend auch die
Funktionalität in Form von funktionalen Einheiten, Geschäftsprozessen, Geschäftsvorfällen mit
herangezogen, also "objektorientiert" gedacht. Allerdings wird, wenn Szenarien, Geschäftsvorfälle
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
in Form von "Walk-Throughs" über den Datenmodellen durchgespielt werden, in der Regel die den
Datenobjekten zuzuordnende Funktionalität nicht dort dokumentiert. D.h. selbst bei ausgereiften
Datenmodellen ist diese Information verschüttet bzw. an anderer Stelle dokumentiert.
II.2.2. Der VAA-Datenmanager im Vergleich zu objektorientierten
und relationalen Datenbankmanagementsystemen
Der VAA-Datenmanager implementiert ein Konzept, das sich in vieler Hinsicht vom Zugriff auf
relationale Datenbanken unterscheidet und Ähnlichkeiten mit dem Zugriff auf objektorientierte
Datenbanken aufweist.
Folgende Ähnlichkeiten des VAA-DM zu objektorientierten Datenbanken existieren:



Der navigierende Zugriff über die Beziehungen im E/R-Modell entspricht dem Zugriff über
Objekt-Assoziationen in der Welt der objektorientierten Datenbanken. (Bei relationalen
Datenbanken geht die Navigation nur über Indizes oder Schlüssel und ist mühsamer als im
objektorienterten Fall)
Die Verwaltung eines Caches (Vorgangsspeicher) ist ähnlich zum Cache bei objektorientierten
Datenbanken. Der Vorgangsspeicher ist Blackboard (für Kommunikation verschiedener
Komponenten untereinander) und Cache in einem. (Der Datenmanager enthält also
Datenbankfunktionalität!)
Ein vererbungsähnliches Konzept kann zur Bildung von einstufigen Subentitäten z. B. für
Spartenspezifika eingesetzt (siehe übernächstes Kapitel) werden.
Daneben gibt es aber viele gravierende Unterschiede, die dem objektorientierten Gedanken
widersprechen:



Durch die Datensicht erhält man eine Daten-getriebene Abarbeitungsfolge der Entities, während
man bei einer objektorientierten Datenbank frei navigiert.
Das fundamentale Konzept der Objektorientierung, Daten und Funktionen zu Objekten zu kapseln,
wird nicht eingehalten.
Es wird kein Information Hiding betrieben, da alle Attribute eines Entities im Vorgangsspeicher für
alle Funktionsbausteine frei zugänglich sind. (Auf Entity-Ebene werden natürlich nur die in der
Datensicht angeforderten und in der Treffertabelle gelieferten Entities bekannt gemacht.)
Im folgenden werden die fundamentalen Unterschiede vom VAA Datenmanager zu relationalen
Datenbanken mit SQL-Abfragesprache aufgelistet:



Die Beschreibungssprache der logischen Datensicht ist auf einem logischen Niveau angesiedelt und
kann auch unterschiedliche Entities mit den zugehörigen Beziehungen in einer Tabelle
zurückliefern.
Die Anwendungsschnittstelle ist unabhängig von der Struktur des physischen Datenmodells
(Indizes, usw.).
Der Abstraktionsgrad beim VAA-Datenmanager ist höher, daher ergibt sich ein potentiell größerer
Wiederverwendungseffekt.
© GDV 1999
45
Inhalt



46
Datenmanager / Anhang
Mit dem VAA-Datenmanager sind keine Joins über verschiedene Tabellen oder Projektionen auf
bestimmte Attribute möglich. Einmal definierte Entities können nicht von der Datensicht
eingeschränkt oder erweitert werden.
Die in den VAA-Datenmanager integrierte Zeitlogik ist bei direkter Implementierung mittels
relationaler Datenbanken nur schwer zu handhaben.
Es gibt beim VAA-Datenmanager keine Selektion von einzelnen Attributen wie in SQL, sondern es
wird immer ein ganzer logischer Rekord abgeliefert, in dem man die wirklich benötigten Attribute
auswählen kann.
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
II.2.3. Objektorientierte Zugriffsschichten zu relationalen
Datenbankystemen
Es gibt zwei verschiedene Ansätze, in einer objektorientierten Anwendung auf relationale
Datenbanken zuzugreifen:
1. Objektifizieren der relationalen Datensicht: Bei diesem Ansatz bietet die Zugriffsschicht dem
Anwendungskern Klassen wie „Tabelle“, „Reihe“, „Spalte“ und „Query“. Diese Klassen bilden
eine syntaktische Anbindung an die entsprechenden Konstrukte der relationalen Datenbank. Sie
befinden sich also im Sinne der Schichtenarchitektur eher auf der Ebene des Datenmanagers.
Dieser Ansatz erlaubt zwar den Einsatz einer relationalen Datenbank aus einer objektorientierten
Anwendung heraus, doch können die fachlichen Objekte nicht direkt in der Datenbank gespeichert
werden. Für eine Anwendung, die gemäß den Regeln der objektorientierten Analyse erstellt wurde,
ist dieser Ansatz daher nicht verwendbar.
2. Persistente Objekte: Dieser Ansatz hat zum Ziel, die Lebensdauer von Objekten über die
Lebensdauer des Prozesses zu verlängern, sie also persistent zu machen. Dabei soll der Einsatz der
Datenbank vor dem Anwendungsprogrammierer weitgehend verborgen werden, damit dieser sich
auf die fachlichen Aspekte seiner Arbeit konzentrieren kann. Für die Zugriffsschicht bedeutet das
aber, daß ein Paradigmen-Wechsel implementiert werden muß, also ein Brückenschlag zwischen
den beiden Welten der Objektorientierung und der E/R-Modellierung. Das Konzept der
persistenten Objekte wird auch von den kommerziellen Objektdatenbanken verfolgt. Details zur
Sprachanbindung enthält z.B. Rick G. G. Cattell (Ed.) et al 1993 [ODMG-Standard].
Im folgenden wird der zweite Ansatz beschritten, da nur er die Vorteile objektorientierten Vorgehens
voll ausschöpft.
II.2.3.1. Probleme des Paradigmen-Wechsels
Grundsätzlich erfolgt die Abbildung zwischen Objekten und Tabellen nach dem folgenden Schema:
1 Klasse  1 Tabelle
1 Instanz  1 Zeile
1 Attribut1  1 Feld
Leider birgt diese einfache Abbildung einige Fallen und Probleme, die im folgenden diskutiert
werden.
II.2.3.2. Komplexe Datentypen
Die objektorientierten Programmiersprachen lassen sich anhand ihres Typkonzepts grob in zwei
Klassen unterteilen: Nicht typisierte Sprachen wie Smalltalk und Objective-C und streng typisierte
Sprachen wie Eiffel und (mit Einschränkungen) C++. Letztere verfügen über ein komplexes
Typkonzept mit Ausschnitts- und Verbundtypen, wie es z.B. in PASCAL zur Anwendung kam.
1
In der Literatur werden synonym zum „Attribut“ auch die Begriffe „Instanzvariable“ und „member variable“ verwendet
© GDV 1999
47
Inhalt
Datenmanager / Anhang
Zusätzlich stehen in allen OO-Sprachen Listen, Mengen und ähnliche Konstrukte zur Verfügung, die
in Form von Klassenbibliotheken in das System integriert werden.
Die üblichen Datenbanken kennen hingegen meist nur Zahlen und Zeichenketten in einigen festen
Variationen. Die einzige Möglichkeit zur Strukturierung besteht in der Zusammenstellung von
Tabellen.
Für die Umsetzung zwischen einem objektorientierten Anwendungskern und einer relationalen
Datenbank müssen somit hierarchische Typen „flachgeklopft“ bzw. wieder zusammengefügt werden.
Nachdem Listen, Mengen u.ä. in OO-Sprachen selbst wieder durch Objekte realisiert wird, könnte
man auf die Idee verfallen, sie keiner besonderen Behandlung zu unterwerfen, sondern sie ebenso wie
fachliche Objekte in der Datenbank zu speichern. Datenbanken unterstützen jedoch gerade die Arbeit
mit Massendaten in besonders performanter Weise, so daß solche Konstrukte einer speziellen
Behandlung bedürfen.
II.2.3.3. Objekt-Identität
In relationalen Systemen werden Records innerhalb einer Tabelle einzig über ihren Inhalt identifiziert:
Wenn der Schlüssel eines Records bekannt ist, kann dieser eindeutig gefunden werden und es kann in
einer Tabelle keine zwei Records mit identischem Schlüssel geben. Aus Performancegründen wird
diese Eigenschaft zwar nicht immer von den Datenbanksystemen erzwungen, es gilt jedoch als
schlechte Programmierpraxis, sich auf solche Ausnahmen zu verlassen.
In der objektorientierten Welt besitzen Objekte dagegen eine eigene Identität, unabhängig von ihrem
Inhalt. Dadurch entstehen zwei Probleme:
1. Objekte müssen identifiziert werden. Objektorientierte Programmiersprachen verwenden zu diesem
Zweck üblicherweise Speicheradressen, die aber für eine Speicherung in der Datenbank nicht in
Frage kommen. Statt dessen müssen eigene Datenbank-Identifier vergeben werden, die für das
gesamte System eindeutig sind. (Ein spezielles Problem entsteht, wenn die Datenbank-Tabellen
nicht verändert werden sollen!)
2. Ähnlich den Variablen in einer herkömmlichen Programmiersprache kann es beliebig viele
unterschiedliche Objekte einer Klasse geben, die identischen Inhalt besitzen. Es muß also
sichergestellt werden, daß zwei unterschiedliche Instanzen einer Klasse auch dann in
unterschiedlichen Zeilen der Datenbank gespeichert werden, wenn ihr Inhalt identisch ist.
Umgekehrt muß dafür gesorgt werden, daß mehrfache Lesezugriffe auf die gleiche Zeile auch
immer das gleiche Objekt ergeben. Ein Beispiel möge das Problem erläutern:
Im Rahmen eines Geschäftsvorfalls sind mehrere Vertragsabschlüsse mit dem
gleichen Kunden zu tätigen, wobei das Alles-oder-Nichts-Prinzip gelte. Um eine
Überlastung des Kunden durch das Gesamtpaket zu vermeiden, ist vor dem
Abschluß eines jeden einzelnen Vertrages die Bonität des Kunden zu überprüfen,
wobei die bereits abgeschlossenen Verträge zu berücksichtigen sind. Zur Prüfung
der Bonität wendet sich der Anwendungskern jedes Mal an die Datenbank, um das
Objekt „Kunde xy“ zu holen.
Wenn die Zugriffsschicht in diesem Szenario nicht beachtet, daß bei jedem Zugriff
das bereits anfangs geholte Objekt „Kunde xy“ gefordert ist, sondern sie jedesmal
ein neues Objekt aus der Datenbank holt und im Speicher neu erzeugt, so spiegelt
dieses neue Objekt den Stand in der Datenbank wider, reflektiert also die bisher
abgeschlossenen Verträge nicht: Der Geschäftsvorfall wird fehlerhaft bearbeitet, da
48
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
die Vetragsabschlüsse mit einem anderen Objekt durchgeführt werden, als die
Bonitätsprüfungen.
II.2.3.4. Beziehungen zwischen Objekten
Objektorientierte Systeme weisen in der Regel eine große Anzahl relativ einfacher Klassen auf, die
über sehr komplexe Beziehungen mit einander interagieren. Die fachliche Komplexität eines Problems
wird bei objektorientiertem Design nicht so sehr durch komplexe Algorithmen repräsentiert, sondern
eher durch eine enge Verflechtung von Objekten. (Siehe dazu z.B. Sneed 1995, Soukup 1994, Gamma
1991). Zur Modellierung dieser Verflechtung stehen dem Designer eine Fülle verschiedener
Beziehungsformen zur Verfügung, die sich grob gliedern lassen in Aggregation, Referenzen und
verschiedene Anwendungen der Vererbung. Diese Beziehungen zu verfolgen und an ihnen entlang
„Nachrichten zu versenden“ bzw. „Methoden aufzurufen“ ist ein wesentliches Element
objektorientierter Programmierung.
Relationale Systeme unterstützen Beziehungen dagegen nur in Form der Fremdschlüssel-Beziehung.
Diese werden mit Hilfe von Joins verfolgt, also der aufwendigsten Operation in relationalen
Datenbanken! Hier muß man besondere Vorsicht walten lassen.
Ein wichtiger Schritt ist hier (wie üblich) die Denormalisierung des Datenmodells, indem von der
einfachen Formel 1 Klasse  1 Tabelle abgewichen wird. Dies ist insbesondere bei Aggregationen
sinnvoll:
In den meisten OO-Systemen existiert eine eigene Klasse zur Darstellung des Datums.
Würde in diesem Falle nicht denormalisiert, so erhielte man eine eigene Tabelle, in der
alle Datumsangaben der Datenbank gespeichert werden. Daß ein solches Design nicht
sinnvoll sein kann, ist intuitiv klar.
Zu beachten ist auch, daß Beziehungen in objektorientierten Sprachen immer unidirektional sind, also
gerichtet, während Fremdschlüssel-Beziehungen in relationalen Systemen immer in beiden
Richtungen verfolgt werden können. Insbesondere 1:n-Beziehungen lassen sich in objektorientierten
Systemen nur mit zusätzlichem Aufwand implementieren, indem z.B. Listen von Referenzen
eingesetzt werden.
II.2.3.5. Vererbung und Polymorphismus
Vererbung und Polymorphismus sind zwei zentrale Elemente des objektorientierten Paradigmas.
Gamma (Gamma 1991) unterscheidet z.B. fünf verschiedene Formen der Vererbung, andere Autoren
kommen zu ähnlichen Ergebnissen. Die gute Wartbarkeit eines geschickt entworfenen OO-Systems ist
insbesondere der Möglichkeit zu verdanken, verschiedene, ähnliche Klassen durch Polymorphismus
wie eine Klasse behandeln zu können.
Relationale Systeme sehen diese Möglichkeit nicht vor. Zwar bietet die E/R-Modellierung die
Möglichkeit, sog. „Is-A-Beziehungen“ zu formulieren, doch die meisten Datenbank-Systeme sehen
dafür keine direkte Implementierung vor.
Das Problem der Umsetzung zerfällt bei genauerer Betrachtung in zwei Teilprobleme:
© GDV 1999
49
Inhalt
Datenmanager / Anhang
1. Vererbung von Attributen: Eine Klasse besitzt nicht nur „ihre eigenen“ Attribute, sondern auch
noch ihres Vaters, ihres Großvaters usw. Diese Hierarchie muß in der Datenbank abgebildet
werden.
2. Dynamisches Binden: Der Zugriff auf Objekte soll auch über ihre Supertypen erfolgen können. So
wünscht man sich z.B., einen Kunden aus der Datenbank holen zu können, unabhängig davon, ob
es sich um einen Privatkunden oder um einen Geschäftskunden handelt. Trotzdem soll ein Objekt,
das aus der Datenbank geholt wurde, vom korrekten (Sub-)Typ sein, da z.B. die Bonitätsprüfung
eines Privatkunden anders implementiert ist als die eines Geschäftskunden.
Die Zugriffsschicht muß also sowohl die Vererbungshierarchie kennen, als auch den exakten Typ
eines Objekts, das sich in der Datenbank befindet. Sie muß in der Lage sein, Objekte typrichtig zu
erzeugen.
II.2.3.6. Allgemeine Probleme
Die oben beschriebenen Anforderungen ergeben sich direkt aus der Abbildung der unterschiedlichen
Konzepte aufeinander. Um eine Zugriffsschicht auch praktisch einsetzen zu können, sollten noch
einige weitere Forderungen aufgestellt werden, deren Ziel vor allem darin besteht, die Handhabung
der Zugriffsschicht bei der Entwicklung so einfach wie möglich zu gestalten.
II.2.3.7. Transaktionskonzept
Objektorientierte Programmierung läßt sich sehr gut kombinieren mit dem Einsatz grafischer
Bedienoberflächen. Diese Oberflächen entfalten ihren vollen Nutzen bei hoch interaktiven
Anwendungen, die dem Anwender große Freiheiten in der Bedienerführung anbieten müssen. Ein
typischer Vertreter dieser Anwendungen ist z.B. ein Management-Informations-System, welches das
Management über die betriebswirtschaftlichen Kennzahlen des Unternehmens informiert oder
Beratungssysteme, die Außenmitarbeiter dabei unterstützen, für den Kunden optimale Angebote zu
erarbeiten.
Im Gegensatz dazu stehen typische Transaktionssysteme, die darauf optimiert sind, sehr genau
definiert Geschäftsvorfälle stark parallelisiert abzuarbeiten. Systeme zur Auftragsbearbeitung oder
Buchhaltungssysteme sind hier typische Vertreter.
Für diese unterschiedlichen Anforderungen muß die Datenbank unterschiedliche Arten von
Transaktionen zur Verfügung stellen:
1. Optimistische Transaktionslogik: Bei stark interaktiven Anwendungen werden wenige Anwender
eine großen Datenmenge über einen langen Zeitraum analysieren, um dann eine einzelne
Entscheidung zu fällen, die zu wenigen Schreibzugriffen führt. Die Bereiche, für die ein einzelner
Anwender zuständig sind, überlappen sich nur wenig. Es handelt sich also um langlaufende
Transaktionen, die auf große Bereiche einer Datenbank lesend zugreifen. Um Deadlocks und
unnötige Sperren zu vermeiden, wird hier meist so vorgegangen, daß die Daten während der langen
Analysephase nicht gesperrt werden. Erst wenn der Anwender seine Entscheidung getroffen hat
und die Transaktion dadurch beendet, wird geprüft, ob in der Zwischenzeit andere Anwender die
Daten verändert haben. In diesem Falle muß der Anwender den (statistisch seltenen) Konflikt
auflösen.
50
© GDV 1999
Datenmanager / Anhang
Technologische Aspekte - insbesondere Objektorientierung
2. Pessimistische Transaktionslogik: Hier werden die Daten bereits beim Lesen gegen Änderungen
durch andere Anwendungen gesperrt, was Kollisionen von vornherein vermeidet. Solche Sperren
sollten jedoch nur für kurze Zeit gehalten werden, da sonst der Zugriff durch andere Prozesse
spürbar beeinträchtigt würde. Im Extremfall sind Szenarien denkbar, in denen die Prozesse nur
noch sequentiell auf die Datenbank zugreifen können, da jeder Prozeß die gleichen Daten sperrt.
Da die Wahl der Transaktionslogik von der jeweiligen Anwendung abhängt, sollte die Zugriffsschicht
beide Möglichkeiten bieten. Wenn nur die pessimistische Transaktionslogik vom Datenmanager
angeboten wird, so muß die optimistische Variante in der objektorientierten Zugriffsschicht
implementiert werden.
II.2.3.8. Transparenz bei der Programmierung
Relationale Datenbanken stellen ein eigenes Konzept dar, das unabhängig ist von der
Programmiersprache.2 Objektorientierten Datenbanken und Zugriffsschichten liegt hingegen die Idee
der persistenten Objekte zugrunde, die sich nahtlos in die Programmierung einfügt. Daher ist die
Forderung sinnvoll, daß sich der Anwendungscode von persistenten Objekten nicht unterscheidet von
dem transienter Objekte. Die Funktionen der Datenhaltung sollten mit den üblichen Mitteln der
Programmiersprache formuliert werden, Spracherweiterungen sollten vermieden werden.
Diese Forderung wird auch von allen marktüblichen Objektdatenbanken erfüllt (s. nächsten
Abschnitt): Spracherweiterungen werden von ihnen nur zur Definition des Datenbankschemas
eingesetzt.
II.2.3.9. ODMG-Verträglichkeit
Die Object Data Management Group (ODMG) ist ein Gremium der führenden Hersteller von
Objektdatenbanken, welches sich in Zusammenarbeit mit der Object Management Group (OMG)
bemüht, die Schnittstellen von Objektdatenbanken zu standardisieren. Ein erster Vorschlag wurde
1993 veröffentlicht (Rick G. G. Cattell (Ed.) et al 1993 [ODMG-Standard]), der mittlerweile als de
facto Standard akzeptiert ist.
Der ODMG-Standard beschreibt verschiedene Aspekte der Datenbanken:

Das „Language Binding“, also das API. Derzeit sind Bindings für C++ und Smalltalk festgelegt.
Eine Anbindung für OO-COBOL ist nicht in Planung, derzeit finden lediglich
Sondierungsgespräche zwischen der ODMG und Herstellern von OO-COBOL-Compilern statt.3

Die „Object Definition Language“ ODL. Diese ist angelehnt an die „Interface Definition
Language“ der OMG und beschreibt die Klassen in einer C++-ähnlichen Syntax.

Die „Object Query Language“ OQL, eine Abfragesprache ähnlich embedded SQL. Sie bildet eine
Alternative zu den Abfragemöglichkeiten des Language Binding.
In der Theorie läßt sich das dadurch begründen, daß SQL eine „deklarative“ Sprache ist, ähnlich PROLOG: Der Programmier
formuliert nur das Ziel, also wie das Ergebnis aussehen soll, der Weg dorthin wird vom Compiler ermittelt. Alle gängigen AnwendungsSprachen sind hingegen „ablauforientiert“, sie definieren also den Weg zum Ziel, nicht das Ziel selbst.
2
Auskunft von Doug Barry, ODMG Executive Director: „The ODMG does not have a workgroup for this binding. There has only
been some very preliminary discussions with OOCOBOL vendors. Nothing official.“
3
© GDV 1999
51
Inhalt
Datenmanager / Anhang

Die „Object Management Language“ OML, welche ähnlich SQL die Datenpflege unterstützt.

Festlegungen zur Funktionalität, wie Versionsführung, geschachtelte und lange Transaktionen.
Im Rahmen der VAA ist es nicht sinnvoll, alle diese Leistungen zu implementieren. Die
Programmierschnittstelle der Zugriffsschicht sollte sich jedoch möglichst an das ODMG Language
Binding der entsprechenden Sprache halten. Dies erspart zum einen die ansonsten notwendigen
Konzeptarbeiten und erleichtert zum anderen den Programmierern die Einarbeitung in die
Zugriffsschicht, da sie auf ausreichende Standardliteratur zurückgreifen können.
II.2.4. Beispielhafte Modellierung bei einer Versicherung
Bei der Württembergischen Versicherung wird das Vorbild des VAA-Datenmanagers, der sogenannte
Datensichtprozessor bereits seit einigen Jahren eingesetzt. Begleitet wird der Einsatz des
Datensichtprozessors bei den Sachsparten durch organisatorische Maßnahmen, die eine
Vereinheitlichung des Unternehmens-Datenmodells zulassen. Dadurch entstand eine Abstraktion auf
relativ wenige Entity-Typen, die untereinander in Beziehung stehen. Diese Beziehungen können auch
für eine bestimmte Sparte leer sein. Zur Abbildung von Spartenspezifika werden die allgemeinen
Entities um ein Spartenflag und spartenspezifische Attribute, aber keinesfalls um weitere Beziehungen
ergänzt. Damit wird praktisch ein einstufiges Vererbungskonzept (OO-Konzept) auf Datenebene mit
dem Datenmanager implementiert.
In der Anwendung des Datensichtprozessors bei der Württembergischen Versicherung werden
Entities mit ca. 10 bis 200 Attributen eingesetzt. Mittels der Datensichtsprache kann über
spartenunabhängige Beziehungen mittels Selektionskriterien, die auch spartenabhängig sein können,
navigiert werden.
Die interne Strukturierung von Entities ist dem Daten-Manager primär egal. Sie muß aber dem
Anwendungs-Baustein bekannt gegeben werden, damit es auf die gewünschten Attribute zugreifen
kann. (Bei der Württembergischen geht das indirekt über eine globale Tabelle, die dynamisch
aufgebaut wird, so daß bei Erweiterungen und Umstrukturierung der Attribute die einzelnen
Funktionsbausteine nicht neu kompiliert werden müssen)
Hieraus ergibt sich natürlich ein Problem aus der Datenmodellierung: Nicht jedes
Versicherungsunternehmen ist in der Lage, seine verschiedenen Sparten so homogen, wie bei der
Württembergischen inzwischen üblich, zu behandeln. (Wie leicht ist es möglich, möglichst viele
Spartenspezifika durch „Gleichschaltung“ aller Sparten zu eliminieren?)
II.2.5. VAA-Datenmanager: Warum nicht alles in objektorientierter
Technologie
Der navigierende Zugriff auf Entities über den Vorgangsspeicher ist sicher dem Zugriff über einen
guten Cache sehr ähnlich. Ein Konzept von gekapselten Datentypen ist bisher nicht vorgesehen. Die
Idee, Komponenten verschiedenster Hersteller zusammen in einer Anwendung einzusetzen, läßt sich
wohl nur dann verwirklichen, wenn harte Typ- und Zugriffsprüfungen vorgesehen sind. (Smalltalk ist
auch nicht Typ-orientiert, aber nach der Instanziierung besitzt jede Variable durch ihren Wert einen
festen Datentyp, den man auch prüfen kann!) Das Konzept des Datenmanagers abstrahiert sicher einen
52
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
großen Teil der Datenbankzugriffe, kann vorerst aber noch nicht komplett die Ablösung des
Datenmanagers von den Lieferanten der Funktionsbausteine bewerkstelligen.
Bisher ist das fundamentale Performance-Problem beim Zugriff bei Massentransaktionen, die
objektorientiert implementiert sind, noch ungelöst. Deshalb kann man auch keine uneingeschränkte
Empfehlung für den Einsatz objektorientierter Technologien in allen Lebenslagen geben.
III. Vorschläge zur Realisierung von
Historienkonzepten
Die vorliegende Ausarbeitung diskutiert den Themenbereich der zeitabhängigen Speicherung von
Entitätszuständen. Neben einer allgemeinen theoretischen Diskussion wird ein Verfahren zur
Abbildung von Zeitabhängigkeiten in Tabellen vorgeschlagen und diskutiert.
Alle Algorithmen sind beispielhaft und reflektieren nicht unbedingt die performanteste
Vorgehensweise. Aus Gründen der Klarheit sind auch keine Fehlersituationen berücksichtigt.
Beispiele für Abfragen beziehen sich auf relationale Systeme und SQL. Die Klarheit der Darstellung
geht vor der syntaktischen Korrektheit der dargestellten SQL-Abfragen.
III.1. Einleitung und Problemstellung
Im Versicherungsunternehmen fallen häufig Daten an, deren Änderungen im Laufe der Zeit
nachvollzogen werden müssen. Dies sind insbesondere Informationen über rechtlich wirksame
Vertragskonstellationen. So sind vergangenheitsbezogene Daten zur Prüfung von
Deckungsansprüchen z.B. bei nachträglicher Schadenmeldung zu verwenden. Dieser Themenkomplex
wird mit dem Schlagwort Historisierung tituliert.
Unter zeitabhängiger Datenspeicherung wird die Speicherung von verschiedenen zeitlichen Zuständen
einer Entität verstanden. Generell lassen sich folgende Kategorien unterscheiden:

Daten der Zukunft

aktuelle Daten

vergangene oder historische Daten
Im Sprachgebrauch wird der Begriff Historie unterschiedlich verwendet. Wir beschreiben eine
Historie als die Veränderungen der Attribute einer Entität in der Vergangenheit. Da allerdings abhängig von aktuell verwendeten Datum - ein verwendbares Historienkonzept auch die aktuellen wie
mögliche zukünftige Daten erfassen sollte, wird als Historienkonzept eine Methode zur zeitabhängigen
Speicherung von Daten in Datenbanken verstanden. Von dieser Problematik ist der häufig synonym
verwendete Begriff des Archivs abzugrenzen. Ein Archiv nimmt vollständige Entitäten auf, enthält
also gegebenenfalls auch die notwendigen zeitlichen Zustände.
Die Datenmodellierung betrachtet normalerweise nur eine Zeitebene. Zeitliche Zustände innerhalb
einer Entität werden allenfalls über Zuständsübergänge betrachtet, die mit den entsprechenden
Statuskennzeichen eine eigenständige Modellierung von zeitlich diskreten Zuständen als Entitätstypen
erlauben. So werden abgeschlossene Mahnverfahren z.B. in einem eigenständigen Archiv abgelegt
© GDV 1999
53
Inhalt
Datenmanager / Anhang
oder über entsprechende Mahnstufen gekennzeichnet. Historisierung wird erst dann zu einem
Problem, wenn ein logisches Datenmodell in physische Strukturen überführt wird. Ein logisches
Datenmodell darf keine historisierenden Elemente außer natürlich den erwähnten Statuskonzepten und
notwendigen Archiven besitzen. Allenfalls kann es Informationen über den Bedarf einer zeitlichen
Speicherung beinhalten.
In der Realität der physischen Datenspeicherung ist die Speicherung zeitlicher Entitätszustände
allerdings in vielen Fällen notwendig. Beispiele sind:

Vergangene, aktuelle und zukünftige Vertragszustände

Zustände, auf denen Änderungen aufgesetzt werden.

Verfolgung von sich zeitlich entwickelnden Attributwerten.
Die zeitabhängige Speicherung von Entitätsattributen kann zur Erfüllung verschiedener
Anforderungen konzipiert werden.


Der (rechtlich wirksame) Stand der Entitätsattribute muß zu jedem Zeitpunkt rekonstruiert werden
können. Damit müssen auch Werte, die im Nachhinein überschrieben worden sind, nachvollziehbar
sein. Derartige Qualität wird z.B. für das Nachvollziehen von Deckungszusagen im Schadenfall
benötigt.
Es müssen nur die derzeit gültigen Werte eines vergangenen, aktuellen oder zukünftigen
Zeitabschnitts bekannt sein. Werte, die im Nachhinein geändert worden sind, können nicht
rekonstruiert werden. Sie werden durch den resultierenden aktuellen Zustand ersetzt. Beispiele für
derartige Anforderungen sind Parametertabellen.
III.2. Der Änderungsbaum einer Entität
Der elementare Zugang zu einer Darstellung zeitlicher Abhängigkeiten in Datenbanksystemen ist der
Baum möglicher Änderungen einer Entität. Eine Entität nimmt im Laufe ihres Lebens neue Zustände
bzw. neue Attributwerte an. Diese Zustände sind für einen bestimmten Zeitraum, der Gültigkeitsdauer
bzw. dem Gültigkeitsabschnitt, relevant. Zur Beschreibung von Gültigkeitsabschnitten sind die
Attribute Beginn- und Endezeitpunkt notwendig. Je nach geforderter Genauigkeit können für diese
Attribute Zeitstempel oder Datumsfelder verwendet werden. Nicht bekannte Zeitpunkte werden
physisch z.B. als maximale/minimale Feldinhalte dargestellt. Der Endezeitpunkt muß größer oder
gleich dem Beginnzeitpunkt sein. Die Gültigkeitsabschnitte überlagern sich nicht, da jede Entität zu
einem Zeitpunkt einen eindeutigen Zustand besitzt. Gültigkeitsabschnitte können mathematisch als
rechts offene Intervalle aufgefaßt werden. Sie werden im folgenden mit [GB,GE) bezeichnet. Dieses
Intervall repräsentiert den Gültigkeitsabschnitt, der für alle Zeitpunkte Z1 mit GB <= Z1 < GE) die
gültigen Attributwerte beinhaltet.
Generell sind zwei Änderungsarten zu unterscheiden:

54
Fortschreibungen: Dies sind Änderungen des letzten gültigen Zustands eines Pfades, die den
aktuellen Zweig fortsetzen. Fortschreibungen sind nur dann möglich, wenn der Beginn des neuen
Abschnitts nach dem Ende bzw. wenn bei undefiniertem Endezeitpunkt der Beginn des neuen
Zustands nach dem Beginn des letzten gültigen Abschnitts liegt.
© GDV 1999
Datenmanager / Anhang

Vorschläge zur Realisierung von Historienkonzepten
Rückwirkende Änderungen, die einen neuen Zweig aufbauen. Derartige Änderungen liegen
immer dann vor, wenn Beginn- oder Endezeitpunkte geändert werden müssen, die nicht minimal
oder maximal (offen) sind.
Die während der Lebenszeit einer Entität auftauchenden Gültigkeitsabschnitte können als Baum von
aufeinander aufbauenden Zuständen aufgefaßt werden. Dieser Änderungsbaum wird im folgenden
Beispiel veranschaulicht. Es wird von
Gültigkeitsfolgen ohne zeitliche Lücken
i
j
k
l
Pfad C
ausgegangen. Dies kann jedoch nicht immer
vorausgesetzt werden.
f
g
h
Pfad B
Der Änderungsbaum wird von links nach
a
b
c
d
e
Pfad A
rechts und von unten nach oben
fortgeschrieben. Aktuell ist immer der obere
a
b
c
d
e
Gültigkeitsfolge A
Pfad mit all seinen Knoten. Ausgehend von
rückw irkende Änderung
dem Zustand (a) einer Entität werden die
Zustände (b) - (e) im Zuge der Zeit
a
b
f
g
h
Gültigkeitsfolge B
eingefügt. Hierdurch wird der Pfad A
rückw irkende Änderung
gebildet der durch die Gültigkeitsfolge A
a
i
j
k
l
Gültigkeitsfolge C
repräsentiert wird. Im Pfad B und C werden
durch rückwirkende Änderungen bereits
bestehende Zustände überschrieben. Daraus
Abb.: Änderungsbaum einer Entität
resultieren die dann jeweils aktuellen
Gültigkeitsfolgen B und C. Nach den letzten Änderungen ist dann die Gültigkeitsfolge C aktuell.
© GDV 1999
55
Inhalt
Datenmanager / Anhang
III.3. Der Begriff der Historie
Unter dem Begriff einer Historie werden alle Gültigkeitsabschnitte zu einer Entität gesehen. die in
einem Änderungsbaum auftreten können. Dies umfaßt sowohl vergangene, rückwirkend geänderte,
aktuelle und zukünftige Zustände der Attribute einer Entität. Als Archiv wird ein Speicher für alle
überschriebenen Pfade des Änderungsbaums oder alle nicht mehr direkt relevante Entitätszustände
verstanden.
Am obigen Beispiel können die verschiedenen Formen von Historisierung verdeutlicht werden:
1. Keine Historisierung:
Es ist jeweils der letzte geänderte Stand der Entität verfügbar. Der jeweils vorherige Zustand
wird überschrieben und steht somit nicht mehr zu Verfügung.
2. Abschnittshistorie (Eindimensionale Historisierung):
Alle Änderungszustände eines Pfades stehen zu Verfügung. Falls Gültigkeitszeiträume
verändert werden müssen, gehen die Informationen über die Gültigkeitsabschnitte des
vorhergehenden Pfades verloren.
3. Vollständige Historie (Zweidimensionale Historisierung):
Alle Änderungszustände aller Pfade stehen zu Verfügung. Es kann zu jeder Zeit festgestellt
werden, welcher Entitätszustand zu welcher Zeit der Vergangenheit gültig war.
Die obigen Formen bilden die Grundformen einer Historisierung, aus denen sich noch besondere
Spezialfälle ableiten lassen. So kann die Abschnittshistorie noch danach unterschieden werden, ob
zeitliche Lücken, Überlagerungen von Gültigkeitszeiträumen oder keine Lücken oder Überlagerungen
zugelassen sind.
III.4. Die (eindimensionale) Abschnittshistorie
Die einfachste Form der Historisierung ist die eindimensionale Historisierung der Abschnittshistorie,
die aus der Aneinanderreihung von Gültigkeitsabschnitten einer Entität entsteht. Zwischen den
einzelnen Abschnitten sind Lücken erlaubt. Dies repräsentiert die Aussage, daß zu diesem Zeitpunkt
keine Informationen vorliegen. Zu jedem Gültigkeitszeitpunkt ist genau ein oder kein Zustand der
Gültigkeitsfolge aktuell. Überlagerungen von
zugelassen.
Mit dieser Form der Historisierung können
verschiedene aktuelle Zustände einer Entität
dargestellt werden. Wie eine vorherige
Gültigkeitsfolge ausgesehen hat, ist nicht
bekannt.
Die Abbildung zeigt ein Beispiel von
Gültigkeitsabschnitten einer Entität. Die
einzelnen Gültigkeitsabschnitte entstehen durch
Einfügen neuer Datensätze, die jeweils mit
56
Veränderungszeitpunkt
Gültigkeitsabschnitten sind somit nicht
1
2
01.01.95
01.03.95
3
4
Gültigkeit des Datensatzes
Gültigkeitsabschnitte
1
15.04.95
2
31.07.95
33
offen
44
Abb.: Gültigkeitsabschnitte einer Entität
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
einem fachlichen Beginndatum und einem Endedatum versehen worden sind. Beim Einfügen eines
neuen Zustands wird der Endezeitpunkt des vorherigen und der Beginnzeitpunkt eines eventuell
vorhandenen Folgezustandes entsprechend verändert. Die vorher vorhandenen Datumsangaben sind in
diesem einfachen Verlaufsmodell dann nicht mehr verfügbar, da sie überschrieben worden sind. Die
offenen Zustände werden durch entsprechende minimale oder maximale Datumsangaben realisiert.
Zur allgemeinen Darstellung einer Abschnittshistorie werden jeweils ein Beginn- und Endezeitpunkt
als zusätzliche Attribute benötigt. Da keine Überlagerungen von Gültigkeitsabschnitten zugelassen
sind, muß der Übergang vom Ende eines Gültigkeitsabschnitts auf den Beginn des nächsten
Gültigkeitsabschnitts festgelegt werden. Dies wird am einfachsten dadurch erreicht, daß ein
Gültigkeitsabschnitt als rechts offenes Intervall definiert wird. Durch diese Definition kann der
Beginnzeitpunkt eines Gültigkeitsabschnitts auf den Endezeitpunkt des vorherigen
Gültigkeitsabschnitts gesetzt werden. Dies vermeidet unnötige Datums- bzw. Zeitberechnungen. Somit
ergibt sich die folgende Definition der Zusatzattribute:
GÜLTIG_AB
Beginnzeitpunkt der fachlichen Gültigkeit der Entitätsattribute für die
verarbeitenden Anwendungen.
UNGÜLTIG_AB
Endezeitpunkt der fachlichen Gültigkeit der Entitätsattribute für die
verarbeitenden Anwendungen.
Entitätsattribute sind somit zum Zeitpunkt T1 gültig in einem Gültigkeitsabschnitts, wenn folgende
Bedingung erfüllt ist:
GÜLTIG_AB <= T1 < UNGÜLTIG_AB
Diese Bedingung gilt solange, wie keine Überlagerungen von Gültigkeitsabschnitten zugelassen sind.
III.4.1. Die lückenlose Abschnittshistorie
Eine Sonderform der Abschnittshistorie liegt dann vor, wenn keine Lücken zwischen den einzelnen
Gültigkeitsabschnitten zugelassen werden. Zu jedem Zeitpunkt zwischen Beginn des frühesten
Zustands und dem Ende des letzten Zustands sind Informationen über die Attributwerte vorhanden.
Ungültige Zustände müssen durch fachliche Attribute kenntlich gemacht werden. Der Endezeitpunkt
eines Gültigkeitsabschnittes ist dann immer identisch mit dem Beginnzeitpunkt des folgenden
Gültigkeitsabschnitts. Somit könnte auf das Attribut UNGÜLTIG_AB verzichtet werden, da ein
Gültigkeitsabschnitt immer durch das Beginndatum des Folgeabschnitts ungültig wird. Der Vorteil
dieser Lösung liegt in der einfachen Einfügung neuer Zustände in eine Gültigkeitsfolge, sofern kein
bereits vergebener Zeitpunkt verwendet wird. Nachteilig ist der erhöhte Ermittlungsaufwand bei der
Ermittlung der Gültigkeitsgrenzen, da immer der Folgesatz interpretiert werden muß. Dies
widerspricht insbesondere der Philosophie relationaler Datenbanksysteme, die von einer gegenseitigen
Unabhängigkeit der einzelnen Entitäten eines Entitätstyps ausgehen. Auch sind Schwierigkeiten bei
© GDV 1999
57
Inhalt
Datenmanager / Anhang
der Darstellung bei der Begrenzung der Gültigkeit des letzten Gültigkeitsabschnitts zu erwarten, der
dann ja per Definition immer unbegrenzt gültig sein muß.
III.4.2. Beispiele für Abschnittshistorien


Schlüsselwerte, die in bestimmten Zeiten gültig, in anderen ungültig sind.
Schlüsselwerte, die in bestimmten Zeiten gültig sind, für die jedoch in anderen Zeiten keine
Informationen vorliegen.
III.4.3. Realisierung im Relationenschema
Am Beispiel eines relationalen Schemas wird die Verwendung einer Abschnittshistorie diskutiert. In
hierarchischen Datenbanken können performante Lösungen unter Umständen einfacher gestaltet
werden.
Da für eine Entität mehrere Zeitzustände gespeichert werden müssen, reicht der eigentliche
Primärschlüssel der Entität nicht mehr als eindeutiger Schlüssel der physischen Tabelle aus. Der
Primärschlüssel muß durch ein zustandsidentifizierendes Feld ergänzt werden. Dazu wird das Attribut
GÜLTIG_AB verwendet. Zusätzlich wird das Attribut UNGÜLTIG_AB als Attribut aufgenommen, so
daß sich folgender Aufbau ergibt:
Tabelle (
Primärschlüssel,
GÜLTIG-AB,
UNGÜLTIG-AB,
Attribute ...)
Auf dieser Tabelle sind mindestens die grundlegenden Operationen Selektion, Löschen und Einfügen
zu definieren. Ergänzend können noch weitere Operationen betrachtet werden. Zu beachten ist, daß die
folgenden Operationen sich stets auf eine konkrete Entität mit Ihren Zuständen beziehen.
Alle Algorithmen sind beispielhaft und reflektieren nicht unbedingt die performanteste
Vorgehensweise. Aus Gründen der Klarheit sind auch keine Fehlersituationen berücksichtigt.
Beispiele für Abfragen beziehen sich auf relationale Systeme und SQL. Die Klarheit der Darstellung
geht vor der syntaktischen Korrektheit der dargestellten SQL-Abfragen.
III.4.4. Überlagerungskonflikte einer Abschnittshistorie
Der Aufbau einer Abschnittshistorie ist nicht so einfach, wie es auf den ersten Blick scheinen mag.
Insbesondere die Erhaltung der Überlagerungsfreiheit von Zuständen führt zu aufwendigen
Dateioperationen, um möglicherweise entstehende Überlagerungen zu beseitigen.
Die folgende Tabelle beschreibt die Überlagerungsmöglichkeiten und bietet einen Vorschlag zur
Beseitigung der entstehenden Konflikte. Konsistenzerhaltende Operationen auf einer
Abschnittshistorie müssen je nach Situation die vorgeschlagene Lösung realisieren.
58
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
Tabelle: Überlagerungsmöglichkeiten beim Einfügen in eine Abschnittshistorie
Beginnüberlagerung
Endeüberlagerung
neu
neu
Nachfolger
Vorläufer
Vorläufer
neu
neu
Beginnüberlagerung mit Lücken
neu
Nachfolger
Endeüberlagerung mit Lücken
neu
Vorläufer
Nachfolger
Vorläufer
neu
neu
Beginnüberlagerung mit
Lückenbeseitigung
neu
Nachfolger
Endeüberlagerung mit
Lückenbeseitigung
neu
Vorläufer
Nachfolger
Vorläufer
neu
neu
vollständige Einbettung
neu
neu
vollständige Überlagerung
neu
Vorläufer
Vorläufer
Nachfolger
Zustand alt
Nachfolger
neu
Besonders hervorzuheben ist der Fall der vollständigen Einbettung eines neuen Zustands in einen
vorhandenen Zustand. In diesem Fall ist es nämlich notwendig, den Vorläufer anzupassen und ihn
zusätzlich als neuen Nachfolger einzufügen.
In der Diskussion der Operationen auf einer Abschnittshistorie wird auf die möglichen Situationen und
die Möglichkeiten zur Konfliktbeseitigung detaillierter eingegangen.
III.4.5. Grundoperationen einer Abschnittshistorie
Zur Verarbeitung einer Abschnittshistorie sind eine Reihe von Operationen denkbar, die jeweils nicht
durch Kombination der anderen Operationen abgebildet werden können (Orthogonalität). Diese
© GDV 1999
59
Inhalt
Datenmanager / Anhang
Operationen sind ohne Berücksichtigung eventueller fachlicher Zugriffe zu betrachten. Zur
Erinnerung: Es existieren keine Überlagerungszustände in einer Abschnittshistorie.

SELEKTIEREN(T1, DATEN):

Selektion eines Zustands [GB,GE) zu einem Gültigkeitszeitpunkt T1. Dies betrifft alle Zustände, für
die der Gültigkeitszeitpunkt die Bedingung GB <= T1 < GE erfüllt:

Zur Ermittlung eines eindeutigen Entitätszustandes ist immer ein Zeitpunkt anzugeben, zu dem die
jeweils gültigen Attribute ermittelt werden sollen. Die notwendige Abfrage für relationale Systeme
lautet dann:

SELECT * FROM Tabelle
WHERE Primärschlüssel
AND GÜLTIG_AB
AND UNGÜLTIG_AB
=
<=
>
Schlüsselwert
T1
T1.


EINFÜGEN(GB, GE, DATEN):

Ein neuer Gültigkeitszustand [GB,GE) wird eingefügt.



LÖSCHEN(T1, T2):
Löschen von vollständig enthaltenen Zuständen [GB,GE) einer Abschnittshistorie zwischen den
Zeitpunkten T1 , T2. Die zu löschenden Sätze müssen folgende Bedingung erfüllen: T1 <= GB und
GE <= T2
Die obigen Zugriffe sind nicht konsistenzerhaltend. Wenn der Anwender nicht entsprechende
Zeitpunkte vorgibt, können z.B. Überlagerungen entstehen.
III.4.6. Abgeleitete Operationen einer Abschnittshistorie
Dieser Abschnitt enthält Vorschläge für weitere nützliche Operationen, die die eigentlichen
konsistenzwahrenden Bearbeitungsoperationen vereinfachen.

ANPASSEN(T1, GB, GE, DATEN):

Änderung der Beginn- und Endezeitpunkte des zur Zeit T1 existierenden Gültigkeitszustands
[GB,GE) auf den neuen Beginnzeitpunkt GB und den neuen Endezeitpunkt GE.

Nicht zu verändernde Beginn- oder Endezeitpunkte werden durch „*“ gekennzeichnet.


60
VORLÄUFER(GB, DATEN):
= SELEKTIERE(GB-1, DATEN) bei einer lückenlosen Abschnittshistorie
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten

Gültigkeitsabschnitt [GBV,GEV) vor einem Gültigkeitsabschnitt [GB,GE) ermitteln. Der Vorläufer
eines Gültigkeitszustands bezeichnet den zeitlich direkt vorangehenden Satz einer Tabelle. Der
Vorläufer wird durch das maximale Beginndatum identifiziert, welches gerade noch kleiner als das
Beginndatum GB ist.

Um den vorangehenden Zustand zu ermitteln, muß unterschieden werden, ob eine
Abschnittshistorie mit oder ohne Lücken vorliegt, da bei einer lückenlosen Historie performanter
zugegriffen werden kann. In diesem Fall braucht nur das Beginndatum des aktuellen Zustands - 1
als neuer Gültigkeitszeitpunkt der Selektion benutzt zu werden. Falls Lücken vorliegen, ist jeweils
der Zustand mit maximalem Beginndatum aller früheren Zustände zu finden. Ein derartiger Zugriff
kann z.B. durch SQL-Mittel oder durch sequentielles Lesen einer nach Beginnzeitpunkten
absteigend geordneten Liste erfolgen.


NACHFOLGER(GE, DATEN):
= SELEKTIERE(GE, DATEN) bei einer lückenlosen Abschnittshistorie

Gültigkeitsabschnitt [GBN,GEN) nach einem Gültigkeitsabschnitt [GB,GE) ermitteln Der Nachfolger
eines Gültigkeitszustands bezeichnet den zeitlich direkt folgenden Satz einer Tabelle. Der
Nachfolger wird durch das minimale Beginndatum identifiziert, welches gerade noch größer oder
gleich dem Endedatum GE ist.

Um den nachfolgenden Zustand zu ermitteln, muß unterschieden werden, ob eine
Abschnittshistorie mit oder ohne Lücken vorliegt, da bei einer lückenlosen Historie performanter
zugegriffen werden kann. In diesem Fall braucht nur das Endedatum des aktuellen Zustands als
neuer Gültigkeitszeitpunkt der Selektion benutzt zu werden. Falls Lücken vorliegen, ist jeweils der
Zustand mit minimalem Beginndatum aller späteren Zustände zu finden. Ein derartiger Zugriff
kann z.B. durch SQL-Mittel oder durch sequentielles Lesen einer nach Beginnzeitpunkten
aufsteigend geordneten Liste erfolgen.


ZUSTANDSFOLGE(T1,T2, DATENTABELLE):

Zustandsfolge zwischen zwei Zeitpunkten T1 < T2 ermitteln

Diese Funktion kann durch eine einfache Selektion unter Angabe der begrenzenden Zeitpunkte und
der gewünschten Sortierfolge realisiert werden. Es muß nur beachtet werden, daß nicht nur die
vollständig enthalten Gültigkeitsabschnitte gelesen werden. Die Abfrage könnte wie folgt lauten:

SELECT * FROM Entitätstyp
WHERE Primärschlüssel
=
Schlüsselwert
AND UNGÜLTIG_AB
>
T1
AND GÜLTIG_AB
<=
T2
ORDER BY GÜLTIG_AB ABSTEIGEND


Ein Spezialfall dieser Operation ist die Ermittlung der vollständig zwischen den Zeitpunkten
enthaltenen Gültigkeitsabschnitte. Hierzu sind die entsprechenden Abfragebedingungen
anzupassen:

SELECT * FROM Entitätstyp
WHERE Primärschlüssel
© GDV 1999
=
Schlüsselwert
61
Inhalt
Datenmanager / Anhang
AND GÜLTIG_AB
>=
T1
AND UNGÜLTIG_AB
<=
T2
ORDER BY GÜLTIG_AB ABSTEIGEND
III.4.7. Konsistenzwahrende Operationen einer Abschnittshistorie
Alle oben beschriebenen Änderungsoperationen sind nicht konsistenzwahrend. Inwieweit zum
Beispiel Lücken oder Überlagerungen entstehen, ist Sache des Anwenders dieser Operatoren.
Deshalb werden im folgenden noch einige konsistenzwahrende Operationen beschrieben, die unter
bestimmten Annahmen stets Abschnittshistorien ohne Überlagerung und - falls gefordert - ohne
zeitliche Lücken erzeugen.
Alle Algorithmen sind beispielhaft und reflektieren nicht unbedingt die performanteste
Vorgehensweise. Aus Gründen der Klarheit sind auch keine Fehlersituationen berücksichtigt.
Beispiele für Abfragen beziehen sich auf relationale Systeme und SQL. Die Klarheit der Darstellung
geht vor der syntaktischen Korrektheit der dargestellten SQL-Abfragen.

ÜBERSCHREIBEN(GB,GE, DATEN):

Überschreiben von Zuständen mit den neuen Intervallgrenzen [GB,GE) mit Anpassung der eventuell
vorhandenen Zeitabschnitte, die den Bereich [GB,GE) nach Einfügung überlagern würden.

Die Tabelle: Überlagerungsmöglichkeiten beim Einfügen in eine Abschnittshistorie enthält die
möglichen Überlagerungskonflikte, die im Zuge der Überschreibungsoperation beseitigt werden
müssen.

Der Algorithmus in der AbbAlgorithmus zur
Einfügung eines Zustands mit Lücken
beschreibt die Vorgehensweise bei
Überschreibung durch einen neuen Zustand.
Diese Form des Algorithmus berücksichtigt
auch den Fall der vollständigen Einbettung.
Überlagerungen werden durch
entsprechende Korrekturen der Beginn und
Endezeitpunkte beseitigt. Lücken zwischen
dem Vorläufer und dem Nachfolger des
neuen Gültigkeitsabschnitts werden nicht
erkannt bzw. beseitigt. Falls keine Lücken
erlaubt sind, sind zwei Reaktionen möglich:
62
Ermittle Zustandsfolge(GB,GE)
Verarbeite alle ermittelten Gültigkeitsabschnitte [GB1,GE1)
| alten Zustand [GB1,GE1) merken
| Gültigkeitsabschnitt in Tabelle löschen
| Falls GB in [GB1,GE1) Einfügen alten Zustand mit Ende GB
| Falls GE in [GB1,GE1) Einfügen alten Zustand mit Beginn GE
 Beseitigung von Lücken / Prüfung auf Lücken
Einfügen des neuen Gültigkeitsabschnitts
Änderungen bestätigen.
Abb.: Algorithmus zur Einfügung eines Zustands mit Lücken
© GDV 1999
Datenmanager / Anhang




Vorschläge zur Realisierung von Historienkonzepten
Die Operation wird als fehlerhaft
zurückgewiesen
Die betreffenden Gültigkeitsabschnitte werden
angepaßt
Beispielhaft wird in der AbbAlgorithmus zur
Beseitigung von Lücken bei Einfügung ein
Algorithmus zur Beseitigung von Lücken durch
Anpassung des Vorläufers und des Nachfolgers
aufgezeigt.
Entscheidend ist bei der Einfügung neuer
Zustände, daß die Beginn- und Endezeitpunkte der
einzelnen Zustände auch nach der Änderung keine
Überlagerungen von Zeitabschnitten erzeugen.
© GDV 1999
...
VORLÄUFER(GB)
Falls GB > GEV ANPASSEN(GEV,*,GB)
| alten Zustand in Tabelle löschen
| alten Zustand mit Ende GB einfügen
NACHFOLGER(GE)
Falls GE < GBV ANPASSEN(GBV,GE,*)
| alten Zustand in Tabelle löschen
| alten Zustand mit Beginn GE einfügen
...
Abb.: Algorithmus zur Beseitigung von Lücken bei
Einfügung
63
Inhalt
Datenmanager / Anhang

FORTSCHREIBEN(GB, DATEN) = ÜBERSCHREIBEN(GB, offen, DATEN):

Einfügen eines neuen Zustands mit den Intervallgrenzen [GB, offen) ab dem Beginnzeitpunkt GB.

Der Algorithmus in der AbbAlgorithmus
zur Fortschreibung einer Abschnittshistorie
mit Lücken beschreibt die grundsätzliche,
optimierte Vorgehensweise. Alle eventuell
vorhandenen vollständigen Überlagerungen
werden beseitigt. Falls ein Vorläufer
existiert, muß sein Endezeitpunkt korrigiert
werden, wenn er in dem neuen Zustand
enthalten ist. Zum Abschluß wird der neue
Zustand eingefügt und die Änderungen
werden bestätigt.
LÖSCHE(GB, offen)
vollständige Überlagerungen löschen
ANPASSEN(GB, unverändert, GB)
Teilüberlagerung anpassen
EINFÜGEN(GB, offen)
Änderungen bestätigen.
Abb.: Algorithmus zur Fortschreibung einer Abschnittshistorie mit Lücken
LÖSCHE(GB, offen)
vollständige Überlagerungen löschen
ANPASSEN(VORLÄUFER(GB), GB)
Erweitern Vorläufer
EINFÜGEN(GB, offen)
Änderungen bestätigen.
Abb.: Algorithmus zur lückenlosen Fortschreibung einer Abschnittshistorie

Mit den obigen Grundoperationen lassen sich
die notwendigen Datenoperationen abbilden. Dazu gehört der Aufbau von neuen Gültigkeitsfolgen wie
auch die Korrektur vorhandener Daten. Vorstellbar sind Komfortfunktionen, die z.B. den Zustand
einer kompletten Gültigkeitsfolge anhand einer Tabelle von Gültigkeitsabschnitten verändern.
III.5. vollständige (zweidimensionale) Historisierung
Bei Verwendung einer Abschnittshistorie gehen Informationen verloren, wenn die Zeiteinteilung einer
Gültigkeitsfolge durch rückwirkende Änderungen geändert wird. Auch geänderte Attribute eines
Gültigkeitsabschnittes können nicht mehr rekonstruiert werden. In diesem Abschnitt wird ein
allgemeines Verfahren vorgestellt, welches jede Änderung zu jedem Zeitpunkt nachvollziehbar und
rekonstruierbar macht. Der vorher diskutierte Fall der Abschnittshistorie erweist sich als Spezialfall
der vollständigen Historisierung.
Zur hinreichenden Beschreibung der zeitlichen Aspekte von Datensätzen reicht ein
Gültigkeitsabschnitt mit Aussagen über fachliche Gültigkeit nicht aus. Es sind grundsätzlich zwei
Zeitdimensionen notwendig:




64
Aussagen über die Gültigkeit des Datensatzes in der Datenbank. Durch diese Angabe wird der
Zeitraum konkretisiert, in dem die Daten überhaupt einzelnen Anwendungen bekannt sein können.
Diese Dimension wird im folgenden als Kenntnisstand der Datenbank oder kurz als
Kenntnisstand bezeichnet.
Aussagen über die fachliche Gültigkeit der im Datensatz enthaltenen Daten. Durch diese Angaben
wird konkretisiert, ob die von einer Anwendung gefundenen Daten überhaupt verarbeitet werden
dürfen.
Diese Dimension wird im folgenden als Gültigkeitszeitraum eines Datensatzes oder kurz als
Gültigkeitszeitraum bezeichnet.
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
Kenntnisstand der Datenbank
Ein Historienkonzept muß beide
Zeitdimensionen entsprechend den jeweiligen
Anforderungen berücksichtigen. Damit ergibt
sich folgendes Bild: Das grau schattierte
31.12.99
2
3
Rechteck beschreibt die Gültigkeit der Daten
des Datensatzes sowohl aus Sicht der
Datenbank wie auch aus Sicht der
Anwendung. Außerhalb des Kenntnisstands
der Datenbank findet die Anwendung keinen
gültigen Datensatz mehr. Das
Zugriffsverhalten muß so arbeiten, als ob
31.12.94
1
4
kein Datensatz mehr vorhanden ist. Wird
01.01.95
31.12.96
Gültigkeit des Datensatzes
jedoch ein Datensatz gefunden, liefert der
Gültigkeitszeitraum des Datensatzes die
Abb.: Gültigkeitsdimensionen
fachliche Relevanz der enthaltenen Daten.
Um das Gültigkeitsrechteck abzubilden, werden jeweils Beginn und Ende der hier betrachteten
Gültigkeitsdimensionen (Gültigkeitsabschnitte) als zusätzliche Attribute benötigt:
KENNTNIS_AB
Beginn des Vorhandenseins des Datensatzes in der
Datenbank. Dies Datum wird maschinell gefüllt
(Einfügezeitpunkt)
UNKENNTNIS_AB
Ende des Vorhandenseins des Datensatzes in der
Datenbank.
GÜLTIG_AB
Beginn der fachlichen Gültigkeit der Datensatzinhalte
für die verarbeitenden Anwendungen.
UNGÜLTIG_AB
Ende der fachlichen Gültigkeit der Datensatzinhalte für
die verarbeitenden Anwendungen.
Je nach geforderter Genauigkeit sind entsprechende Datenformate vorzusehen. In der Regel reicht bei
der fachlichen Gültigkeit Tagesgenauigkeit. Deshalb kann als Format der entsprechenden Attribute
„DATE“ verwendet werden. Beim Kenntnisstand der Datenbank reicht Tagesgenauigkeit in der Regel
nicht aus. Deshalb wird hier als Format ein Zeitstempel mit hinreichender Genauigkeit verlangt
(„TIMESTAMP“). Offene Zeitpunkte werden durch ein minimales bzw. maximales Datum dargestellt.
In der betrieblichen Praxis eines Versicherungsunternehmens wird davon ausgegangen, daß
Datensätze, die in operativen Bestandsdatenbanken eingestellt werden, unbegrenzt gespeichert
werden. Deshalb wird in der Regel die UNKENNTNIS_AB als offen gekennzeichnet werden. Da bei
Einfügen eines neuen Datensatzes dieses Attribut nicht geändert werden darf - Informationsverlust aus
Zugriffssicht wäre die Folge - kommt es bei Einfügungen neuer Zustände zu Überlagerungen der
einzelnen Rechtecke. Dies bedeutet in der Praxis, daß bei entsprechendem Zugriff mehr als ein
Datensatz gefunden werden kann. Deshalb muß eine (zeitliche) Ordnung innerhalb der einzelnen
Rechtecke definiert werden, um festzustellen, welche Rechtecke andere Rechtecke überlagern. Da
gefordert werden kann, daß der KENNTNIS_AB niemals das aktuelle Datum bei Einfügung
unterschreiten kann, enthält dieses Attribut die gewünschte Information über die zeitliche
Einfügereihenfolge der einzelnen Datensatzzustände.
© GDV 1999
65
Inhalt
Datenmanager / Anhang
Aus Sicht der heute eingesetzten Datenbanken wie z.B. DB2 ist eine derartige Überlagerung von
zeitlichen Zustände mit der daraus resultierenden Selektion des vom Betrachtungszeitpunkts jüngsten
Datensatzes ein aufwendiger Zugriff, der vermieden werden sollte. Im IMS entstehen derartige
Probleme aufgrund des hier grundsätzlichen sequentiellen Zugriffs bei entsprechender
Einfügereihenfolge nicht. Ein Zugriff mit einem definierten Kenntnisstand K1 und einem definierten
Gültigkeitsdatum G1 sollte immer auf einfache Weise einen eindeutigen Datensatz mit den zu diesen
Koordinaten gültigen Attributen einer physischen Entität liefern.
Mit dem obigen Modell lassen sich grundsätzlich Fragen der Art beantworten:
„Welche Werte waren zu einem bestimmten Gültigkeitszeitpunkt G1 und zu einem bestimmten
Kenntniszeitpunkt K1 für eine bestimmte physische Entität technisch bekannt bzw. verfügbar?“
offen
Kenntnisstand der Datenbank
Die folgende Abbildung beschreibt die Darstellung
von Änderungen einer physischen Entität in einer
historisierten Datenbank. Da dies zu
Informationsverlusten führt, dürfen bei einer echten
Historienführung keine alten Daten überschrieben
werden. Deshalb überlagern sich die einzelnen
Zustände. Bei Einfügung des Satzes (3) existieren
weiterhin die Zustände (1) und (2), da sie nicht
geändert werden dürfen. Ein lesender Zugriff liefert
somit ohne ein weiteres Ordnungskriterium stets
mehrere Datensätze, die nicht auseinander gehalten
werden können. Deshalb muß ein Attribut verwendet
werden, um die Reihenfolge der Einfügung in die
Datenbank festzuhalten. Hierzu kann das Attribut
KENNTNIS_AB verwendet werden. Nur so kann der
derzeit gültige Datensatz ermittelt werden (siehe
oben).
2
3
15.06.95
01.03.95
1
31.12.94
01.01.95
31.12.96
31.12.96
offen
Gültigkeit des Datensatzes
Abb.: Zustandsänderungen einer physischen Entität im Zeitverlauf
III.5.1. Beispiele

juristisch wirksame Vertragsdaten
III.5.2. Beispieloperationen
Die hier beschriebenen Operationen beschränken sich auf einige Beispiele, mit einer vollständigen
Historie umzugehen. Die notwendigen Operationen sind aufgrund der zu beseitigenden
Überlagerungen nicht trivial. Die elementare Grundoperationen sind die Ermittlung des aktuellen
Zustands und seiner tatsächlichen Datumsgrenzen und die Ermittlung der zu einem Pfaden des
Änderungsbaums vorliegende Abschnittshistorien. Auf diese Abschnittshistorien können dann die für
Abschnittshistorien definierten Grundoperationen angewendet werden.
66
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten

SELEKTIERE-ÜBERLAGERUNG(G1, K1, DATEN)

Aktuellen Zustand [GA,GE) zum Kenntnisstand K1 und Gültigkeitsdatum G1 ermitteln

Zur Ermittlung des aktuellen Zustands der Datenbank sind zwei Zeitpunkte notwendig. Der
aktuelle Zustand [GA,GE) zur Zeitkoordinate (K1,G1) muß folgende Bedingung erfüllen:


GA <= G1 < GE)

KA <= K1 < KE)
Da als Ergebnis mehrere Datensätze in Frage kommen können, muß noch der zuletzt eingefügte
Zustand über den maximalen Beginnkenntniszeitpunkt aller Zustände zum Kenntnisstand ermittelt
werden. Damit ergibt sich folgende Selektion:

SELECT * FROM Tabelle A
WHERE Primärschlüssel
=
Schlüsselwert
AND GÜLTIG_AB
<=
G1
AND UNGÜLTIG_AB
>
G1
AND KENNTNIS_AB
<=
K1
AND UNKENNTNIS_AB
>
K1
AND KENNTNIS_AB
= SELECT MAX(KENNTNIS_AB) FROM Tabelle B
WHERE B.Primärschlüssel
=
A.Primärschlüssel
AND KENNTNIS_AB
<=
K1
AND UNKENNTNIS_AB
>
K1)


SELEKTIERE-ABSCHNITTE (K1, DATENTABELLE)

Abschnittshistorie zu einem gegebenen Kenntnisstand ermitteln

Unter der Annahme der lückenlosen und in die Zukunft offenen Speicherung ergibt sich ein
einfacher Algorithmus, der darauf basiert, das der Zeitpunkt UNGÜLTIG_AB des direkt
vorangehenden Zustands gleich dem Zeitpunkt GÜLTIG_AB des aktuellen Zustands ist. Gleiches
gilt für den Folgezustand bezogen auf den Endezeitpunkt. Damit kann der Pfad ausgehend vom
aktuellen Zustand durch Selektion der Vorläufer anhand des Endezeitpunkts einfach ermittelt
werden.

SELEKTIERE-ÜBERLAGERUNG(offen,K1)
DO WHILE noch Daten da
| SELEKTIERE-ÜBERLAGERUNG(,GA-1,K1)
| IF gefunden GE = GA
| END


Ergebnis ist eine lückenlose Abschnittshistorie zum vorgegebenen Kenntnisstand.
III.6. Vereinfachung des allgemeinen Verfahrens aus
praktischer Sicht
Die in der Praxis zu verwendende Historisierungstechnik bewegt sich Spannungsfeld der Forderungen:

Speicherplatzminimierung
© GDV 1999
67
Inhalt

einfache Zugriffe

Nachvollziehbarkeit
Datenmanager / Anhang
In diesem Spannungsfeld gilt es einen tragfähigen Kompromiß zu finden, der aus der Sicht der
üblichen VU-Anwendungen sowohl die Forderung nach der notwendigen Nachvollziehbarkeit wie
auch die Forderung nach geringem Ressourcenverbrauch erfüllt.
III.6.1. Vorschlag zur Umsetzung des Historienkonzepts
Das gravierendste Hindernis für eine praktikable Lösung der oben diskutierten vollständigen
Historisierung ist die Überlagerung von zeitlichen Zuständen einer Entität. Deshalb ist diese
Eigenschaft durch eindeutige Zustände zu einem Gültigkeits- und Kenntniszeitpunkt zu ersetzen.
Damit wird der Zugriff auf die Daten wesentlich vereinfacht. Allerdings verkompliziert sich das
Einfügen neuer Zustände, da ja immer schon vorhandene Zustände entsprechend angepaßt werden
müssen. Die Forderung nach absoluter Nachvollziehbarkeit führt in diesem Fall zu einem sehr stark
anwachsenden Speicherbedarf, da bei jeder Änderung stets ein neuer Änderungspfad aufzubauen und
einzufügen ist. Deshalb muß die obige Einschränkung durch eine Regelung ergänzt werden, die
zumindest für die häufigste Operation der Fortschreibung eines vorhandenen Zustands nur einen neuen
Satz in die Datenbasis einstellt. Dies wird allerdings nicht ohne Informationsverluste vonstatten gehen
können. Eine praktikable Umsetzung des Historienkonzepts legt also seine Schwerpunkte auf die
Kriterien Speicherplatzminimierung und einfache Zugriffe auf Kosten der absoluten
Nachvollziehbarkeit. Die Nachvollziehbarkeit darf allerdings nur soweit eingeschränkt werden, daß
die Geschäftsprozesse eines VU weiterhin adäquat unterstützt werden können.
Eine Umsetzung des Historienkonzepts ist auf der Basis folgender Alternativen möglich:

Feldweise Historisierung

Zeilen- oder tabellenorientierte Historisierung

Geschäftsobjektorientierte Historisierung
Wir werden nur die tabellenorientierte Historisierung betrachten, die auf der Ebene der physischen
Entitäten wirkt. Bei Änderung von Attributen einer physischen Entität wird jeweils ein neuer Zustand
als Tabellenzeile aufgebaut. Alle anderen Alternativen sind auf der Anwendungsebene nicht
praktikabel. Allenfalls als integrierte Funktionalität in Datenbanksystemen sind derartige Lösungen
effizient realisierbar.
Folgende Grundannahmen liegen dem vorgeschlagenen Verfahren zugrunde:

Sämtliche Zustände einer physischen Entität werden ohne Überlagerungen gespeichert.

Die einzelnen Kenntnisstände folgen lückenlos aufeinander.

Die einzelnen Gültigkeitsabschnitte folgen lückenlos aufeinander.

Es dürfen nur in die Zukunft offene Zeitpunkte geändert werden.

Jede neue zukünftige Zeitangabe ist immer offen.

Eine Historisierung erfolgt immer auf der Ebene der physischen Entität.
68
© GDV 1999
Datenmanager / Anhang

Vorschläge zur Realisierung von Historienkonzepten
Das Attribut KENNTNIS_AB wird immer auf den aktuellen Zeitpunkt gesetzt.
III.6.1.1. Tabellenorientierte Speicherung
Ziel ist der Aufbau einer überlagerungsfreien Darstellung der einzelnen Zustände einer physischen
Entität. Dazu wird wie folgt verfahren:


Bei Einfügen eines neuen Zustands zu einer physischen Entität wird der Endezeitpunkt des
Überlagerungskandidaten auf den jeweiligen Beginnzeitpunkt des neuen Zustands gesetzt. Als
Konstrukt wird also eine Abschnittshistorie mit Fortschreibung für die Gültigkeitszeiträume
gewählt. Rückwirkende Änderungen, die keine Lücken auffüllen, führen zu einer Einfügung eines
neuen Pfades
Bei Einfügung eines neuen Pfades werden alle vorhandenen Pfade entsprechend durch Setzen des
Attributs UNKENNTNIS_AB auf den Einfügezeitpunkt des neuen Pfades beendet.
Damit wird eine lückenlose und überlagerungsfreie Zustandsfolge erreicht, sofern man das Attribut
KENNTNIS_AB unberücksichtigt läßt.
In relationalen Systemen kann eine historisierte Tabelle wie folgt aufgebaut werden:
Tabelle (
primary key-attribute,
KENNTNIS_AB,
UNKENNTNIS_AB,
GÜLTIG_AB,
UNGÜLTIG_AB,
fachliche Attribute)
Die jeweiligen Vorschläge für die Attribute des Primärindex sind unterstrichen. Die vorgeschlagene
Indexwahl ist natürlich nur bei einer überlagerungsfreien Speicherung mit Sicherheit eindeutig. Mit
dieser Indexwahl werden die im folgenden diskutierten Zugriffe effizient ausgeführt.
Die obige Art der Historisierung erlaubt eine effiziente Aufteilung der Daten nach Zugriffshäufigkeit.
Vergangene Pfade könnten z.B. in einer separaten Tabelle abgelegt werden, so daß in der eigentlichen
Tabelle nur die zum Tageszeitpunkt gültigen Zustände abgelegt werden. Diese Vorgehensweise
erlaubt natürlich einen effizienteren Indexaufbau und effizientere Zugriffe in der aktuellen Tabelle, da
z.B. auf das Attribut UNKENNTNIS_AB, welches ja immer offen ist, verzichtet werden kann. Wir
erhalten bei dieser Vorgehensweise eine lückenlose Abschnittshistorie für die aktuellen Zustände und
eine Historientabelle mit allen vergangenen Pfaden und ihren einzelnen Zuständen.
Um das vereinfachte Verfahren näher zu betrachten werden beispielhaft die folgenden,
konsistenzerhaltende Grundoperationen erläutert:
1. Fortschreibung bzw. Auffüllen eventueller Lücken eines Pfades
2. Einfügen eines neuen Pfades im Falle rückwirkender Änderungen
3. Löschung eines bestehenden Pfades
© GDV 1999
69
Inhalt
Datenmanager / Anhang
III.6.1.1.1. Fortschreibung eines bestehenden Änderungspfads
Es wird immer der letzte Zustand eines
Änderungspfades fortgeschrieben. Dabei wird
vorausgesetzt, daß der letzte Zustand immer in
offen
Zukunft offenen Zustand fortgeschrieben wird.
Die Fortschreibung beendet den bisher
aktuellen Zustand, indem sein UNGÜLTIG_AB
Attribut auf den Beginnzeitpunkt des neuen
15.06.95
Zustands gesetzt wird. Für diese häufigste
Operation in VU-Anwendungen wird kein
zusätzlicher Speicherplatz zur Abspeicherung
Kenntnisstand der Datenbank
die Zukunft offen ist und durch einen in die
2
Informationsverlust
1
Informationsverlust
31.12.94
alter Pfadzustände benötigt. Allerdings geht hier
Gültigkeit des Datensatzes
Information über in den in der Vergangenheit
01.01.95
01.03.97
offen
gültigen Änderungspfad verloren, so daß
korrekte Ergebnisse nur für einen
Kenntniszeitpunkt der Datenbank ermittelt
1
31.12.94
15.06.95
1
Zustand alt
Zustand
neu
2
werden können, der nach dem Einfügezeitpunkt
der Fortschreibung liegt. Dies führt zu der
akzeptablen Einschränkung, daß hier nur mit
Abb.: Fortschreiben eines Pfades einer vollständigen Historie
dem aktuellen Zeitpunkt zugegriffen werden
darf, wenn man korrekte Ergebnisse erhalten will. Dies hängt damit zusammen, daß der letzte aktuelle
Pfadzustand beendet wird, somit für Gültigkeitszeitpunkte nach diesem Zustand keine Informationen
mehr vorliegen. Man kann allerdings die Tatsache ausnutzen, daß nur von offenen Endezeitpunkten
auf konkrete Endezeitpunkte geändert werden darf, um gegebenenfalls den vorherigen Zustand z.B.
manuell zu rekonstruieren. Dies setzt impliziert allerdings die Forderung nach zusätzlicher
Attributierung für kurzfristige Zustände, die ansonsten eventuell durch eine konkrete Endesetzung
abgebildet werden könnte.
Alle anderen Änderungen der Gültigkeitsabschnitte erzwingen den Aufbau eines neuen Pfades, sofern
sie keine Lücken im Zeitablauf auffüllen. Diese Situation tritt natürlich bei einer lückenlosen
Speicherung außer bei Einfügung eines vor dem ersten Zustand liegenden Gültigkeitsabschnitts nicht
auf. Die oben beschriebene Vorgehensweise erzeugt allerdings lückenlose Abschnittshistorien
innerhalb eines Pfades.
Zur Verarbeitung eines Pfades mit seinen Gültigkeitsabschnitten oder Zuständen können die für die
Abschnittshistorie verwendeten Operationen verwendet werden.
Der letzte Zustand eines Änderungspfades kann stets durch Abfrage auf den Zustand mit offenem
Endezeitpunkt ermittelt werden. Beispielhaft wird hier die Abfrage in relationalen Systemen
aufgeführt:
SELECT *
FROM tabelle
WHERE key = entity-key
70
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
AND UNGÜLTIG_AB = offen
Dies setzt natürlich voraus, daß mindestens ein in die Zukunft offener Zustand existiert. Anderenfalls
ist der Pfad leer und enthält keinen Zustand.
III.6.1.1.2. Einfügen eines neuen Änderungspfads
Jede Änderung der Pfadeinteilung,
sofern sie keine Lücken auffüllt und
sofern sie keine Fortschreibung des
Einfügung eines neuen Pfades in die
Historie. Dies geschieht dadurch,
daß der UNKENNTNIS_AB Zeit-
15.06.95
punkt auf den Einfügezeitpunkt des
neuen Pfades gesetzt wird. Dies muß
Kenntnisstand der Datenbank
offen
letzten Zustandes ist, führt zur
2
3
4
Informationsverlust
1
für alle Zustände des alten Än31.12.94
derungspfades geschehen, da
Gültigkeit des Datensatzes
ansonsten wieder Überlagerungen
01.01.95
01.01.96
01.03.97
offen
auftreten können. Gleichzeitig liefert
diese Begrenzung des
Kenntnisstands der Datenbank ein
Selektionskriterium für die Selektion
1
31.12.94
15.06.95
2
3
Pfad A
2
4
Pfad B
Abb.: Einfügung eines neuen Pfades bei vollständiger Historie
eines Pfades, da der
UNKENNTNIS_AB Zustand immer auf den Beginnzeitpunkt des ersten Pfadzustands des neuen
Pfades gesetzt wird, somit jeder Pfad eindeutig von einem anderen Pfad unterschieden werden kann.
Voraussetzung ist, daß der alte Kenntnisstand in der Datenbank offen gewesen ist, und daß der neue
Änderungspfad ebenfalls einen in die Zukunft offenen Kenntnisstand erzeugt. Durch diese Art der
Änderung gehen ebenfalls Informationen verloren. Alle Zustände, die nach der Beendigung des alten
Pfades irgendwann in der Vergangenheit als zukünftige Zustände gesehen worden sind, würden mit
den gleichen Zeitpunkten jetzt andere Informationen liefern. Dies impliziert ebenfalls wie oben die
Einschränkung nach Abfrage mit dem aktuellen Zeitpunkt des Zugriffs. Diese Einschränkung ist
durchaus praxisnah.
Zur Ermittlung der Zustände einzelner Pfade kann der jeweilige UNKENNTNIS_AB Zeitpunkt
verwendet werden, wobei noch einmal darauf hingewiesen wird, daß offene Zeitpunkte der Zukunft
durch eine maximale Zeitangabe realisiert werden.. Im Beispiel relationaler Systeme könnte z.B.
folgende nicht optimierte Abfrage zur Ermittlung der einzelnen Pfade verwendet werden:
SELECT DISTINCT UNKENNTNIS_AB
FROM tabelle
WHERE key = entity-key
© GDV 1999
71
Inhalt
Datenmanager / Anhang
Bei vergangenheitsbezogenen Abfragen kann der einzelne Pfad nur über das einheitliche
UNKENNTNIS_AB eines jeden Zustands des Pfades verarbeitet werden. Andere im Kenntnisintervall
des Pfades liegende Zeitpunkte führen unter Umständen zu unterschiedlichen Ergebnissen, da die
verschiedenen Zustände innerhalb eines Pfades zu unterschiedlichen Zeitpunkten eingefügt werden.
Folgende Abfrage verdeutlicht die Ermittlung aller Zustände des aktuellen Pfades:
SELECT *
FROM tabelle
WHERE key = entity-key
AND UNKENNTNIS_AB = offen
III.6.1.1.3. Die Löschung von Pfaden
Die Löschung eines Pfades erfolgt durch entsprechende Setzung des Attributs UNKENNTNIS_AB
auf den Löschzeitpunkt. Diese Operation darf nur auf einem Pfad ausgeführt werden, der im Attribut
UNKENNTNIS_AB den Wert offen enthält.
Werden keine neuen Pfade eingefügt, liegen ab dem Zeitpunkt der Löschung aus Anwendungssicht
keine Informationen mehr in der Datenbasis vor.
Diese Vorgehensweise beim Löschen führt zu einem Widerspruch zur Konsistenzregel der
offenen aktuellen Zustände!
Auf jeden Fall ist im Rahmen einer Löschoperation ein neuer offener Änderungspfad in die Datenbasis
einzufügen.
Deshalb kann die Löschung des aktuellen offenen Änderungspfades nur durch Setzung entsprechender
Attribute der Entität wie z.B. Stornomerkmal erfolgen. In einer physischen Umsetzung, die alle alten
Pfade in einem Archiv auslagert kann die oben beschriebene Löschoperation jedoch durchaus
angewendet werden.
III.6.1.1.4. Blättern in historischen Zuständen
Es gibt zwei grundlegende Blätteralgorithmen:

Blättern durch die Gültigkeitsabschnitte eines festgelegten Pfades

Wechsel des Pfades auf einen anderen Pfad.
Eine Anzeige von Gültigkeitsabschnitten aus verschiedenen Pfaden ist in der Regel nicht sinnvoll.
72
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
III.6.1.1.5. Zukünftige Änderungen
Das vorgeschlagene Historisierungsverfahren gilt sowohl für vergangene, aktuelle wie zukünftige
Zustände einer Entität. Zu beachten ist nur, wenn ein zukünftiger Zustand eingefügt worden ist,
bewirkt die Änderung des aktuellen Zustands den Aufbau eines neuen Pfades. Dies ist keine
gravierende Einschränkung, da in der Regel immer der letzte Zustand eines Pfades geändert werden
sollte.
III.6.1.1.6. Problem des fachlichen Vorläufers
Die bisher vorgestellte Vorgehensweisen liefern keine Informationen über den Zustand einer Entität,
auf dem eine Änderung aufgesetzt worden ist. Dieser Zustand wird als fachlicher Vorläufer
bezeichnet. Sollten derartige Informationen benötigt werden, ist ein entsprechendes Attribut mit dem
Verweis auf den Einfügezeitpunkt (KENNTNIS_AB) vorzusehen. Sofern der Einfügezeitpunkt
eindeutig ist, reicht diese Information aus.
III.6.1.1.7. Das Problem kurzfristiger Zustände
Kurzfristige Zustände verändern einen Zustand für einen begrenzten Zeitraum. Es handelt sich hierbei
um eine vollständige Einbettung. Dies bedeutet, daß der umfassende Zustand die Zeitabschnitte vor
und nach der kurzfristigen Zustandsänderung festlegt. Da anhand des gesetzten Endezeitpunkts der
fachlichen Gültigkeit nicht entschieden werden kann, ob ein Zustand von vornherein nur kurzfristig
war oder durch Änderung seines fachlichen Endezeitpunkts von offen auf den vorliegenden
Endezeitpunkt entstanden ist, muß die Information, daß ein kurzfristiger Zustand vorliegt, in
entsprechenden Attributen dargestellt werden.
III.6.1.1.8. Die Bildung von Informationsobjekten
In der Regel wird ein zu bearbeitendes Objekt aus verschiedenen Entitätstypen zusammengesetzt.
Beispiel ist die Zusammenstellung eines Versicherungsvertrags aus einem Vertragskopf, den
Objektdaten, den Risikodaten und den Unterrisikoinformationen. Durch die Aufteilung eines
Informationsobjektes wie z.B. eines Versicherungsvertrages in seine Normalisierungsfragmente ist es
unter Umständen sehr aufwendig, die Zeitpunkte von Änderungen über alle Tabellen hinweg zu
ermitteln. Auch Attribute, die Informationsobjektbezogen ermittelt werden müssen wie z.B. die
Identifikation des ändernden Sachbearbeiters können nicht ohne weiteres bestimmt werden. Es
empfiehlt sich, die übergreifenden Änderungsdaten in einem separaten Entitätstyp zu verankern. Diese
Tabelle beinhaltet alle vorgangsbezogenen Daten, die für die Änderungen einer zusammengehörenden
Gruppe von Entitäten relevant sind. Dies sind z.B.:

Zeitpunkt oder Datum der Änderung

Art der Änderung

Identifikation des bearbeitenden Sachbearbeiters
© GDV 1999
73
Inhalt
Datenmanager / Anhang
Auch kann diese Tabelle auf einfache Art und Weise redundante Daten aus den zugeordneten Tabellen
aufnehmen, um Zugriffe zu beschleunigen und häufig benötigte Daten im direkten Zugriff zu halten.
Probleme treten nicht auf, da derartige Daten nicht verändert werden müssen.
III.6.1.2. Beispiele
In diesem Abschnitt werden die oben diskutierten Historisierungsverfahren anhand einiger kleinerer
Beispiele erläutert. Der jeweilige Speicherbedarf wird grob abgeschätzt. Folgende Verfahren werden
im einzelnen diskutiert:



Historisierung durch Überlagerung: Dies ist die reine Form der zweidimensionalen
Historisierung mit ihrem geringen Speicherverbrauch bei komplexen Zugriffen.
Historisierung durch Pfadhistorie: Dieses Verfahren vermeidet Überlagerungen, ohne auf die
Rekonstruierbarkeit in der Vergangenheit zu verzichten.
Historisierung durch Fortschreibung: Dies Verfahren ist eine mögliche praktische Umsetzung,
die bei etwas erhöhtem Speicherverbrauch eine überlagerungsfreie Historienbildung unter Verzicht
auf nicht sehr relevante Informationen realisiert.
Zur Abschätzung der je Verfahren zu erwartenden Tabellenzeilen gehen wir von einem
Aufbewahrungszeitraum von mindestens 7 Jahren aus. Dies ist in Versicherungsunternehmen eine
gängige Größenordnung.
Unser Fallbeispiel geht von einer intensiv geänderten Vertragstabelle aus, die nach den verschiedenen
Verfahren historisiert wird. Die hier angegebenen Größenordnungen sind real und treten so z.B. in der
Kraftfahrt-Versicherung auf.
Anzahl Verträge/Zeilen zu Beginn
Änderungen im Jahr
davon rückwirkende Änderungen (10%)
2.500.000
1.500.000
150.000
Damit ergibt sich folgende Wachstumstabelle
Tabelle: Wachstum einer
historisierten Tabellenach Jahren
Zeilen nach Jahren in 1000
Art der Historisierung anfangs
1. Jahr 2. Jahr 7. Jahr 10. Jahr Zuwachs

Überlagerung
2.500
4.000
5.500
13.000
17.500
700%

Pfadhistorie
2.500
6.500
12.000
53.500
89.500
3580%

Fortschreibung
2.500
4.150
5.950
16.200
25.750
1030%
Der geringste Speicherverbrauch tritt bei der Überlagerungstechnik auf. Der Zuwachs für die
Fortschreibung hält sich ebenfalls in Grenzen, wird aber stark durch die Häufigkeit von rückwirkenden
74
© GDV 1999
Datenmanager / Anhang
Vorschläge zur Realisierung von Historienkonzepten
Änderungen beeinflußt. Der für eine Pfadhistorie zu verbrauchende Speicherplatz disqualifiziert dies
Verfahren.
III.6.1.2.1. Historisierung durch Überlagerung
Neue Zustände werden mit den vier
Zustände, so daß bei der Ermittlung
der Datensätze zu einem definierten
offen
15.08.95
15.07.95
Kenntnisstand und
Gültigkeitszeitpunkt (K1,G1) in der
15.06.95
Regel mehrere Zustände gefunden
werden können. Der relevante Zustand
ist der Zustand mit dem maximalen
Kenntnisstand der Datenbank
Sie überlagern die vorhandenen













notwendigen Zeitangaben eingefügt.
4
3
2
1











31.12.94
Einfügezeitpunkt unter allen
Gültigkeit des Datensatzes
möglichen selektierten Zuständen.
01.01.95
01.01.96
01.03.97
offen
Gültig sind alle Datensätze, die zu
31.12.94
1
Pfad A
einem definierten Kenntnisstand vom
Zeitstrahl geschnitten werden. Die
15.06.95
2
3
2
4
Pfad B
folgende Tabelle zeigt den Zustand der
Abb.: Historienbildung durch Überlagerung
Tabelle. Aus diesen gespeicherten
Informationen müssen dann die fachlich relevanten und notwendigen Gültigkeitsabschnitte ermittelt
werden.
Der Vorteil dieser Lösung liegt in der einfachen Einfügelogik und im minimalen
Speicherplatzverbrauch. Der Nachteil liegt in den komplexen Zugriffsalgorithmen.
© GDV 1999
75
Inhalt
Tabelle:
Tabellenbeispiel
einer Überlagerung
Datenmanager / Anhang
Schlüssel
KENNTNIS
AB
UNKENNTNIS
AB
GÜLTIG
AB
UNGÜLTIG
AB
Attribute
Urzustand
...
31.12.94
offen
01.01.95
offen
...
1. Überlagerung
...
15.06.95
offen
01.01.95
01.01.96
...
2. Überlagerung
...
15.07.95
offen
01.01.96
01.03.97
...
3. Überlagerung
...
15.08.95
offen
01.03.97
offen
...
III.6.1.2.2. Historisierung auf Pfadebene
Bei der Einfügung neuer Zustände wird













generell der komplette Pfad des
15.08.95
mitgespeichert. Vergangene Pfade werden
unverändert gespeichert.
15.07.95
15.06.95
Die folgende Tabelle zeigt den Zustand einer
Tabelle. Aus diesen gespeicherten
Informationen müssen dann die fachlich
relevanten und notwendigen
Gültigkeitsabschnitte ermittelt werden.
Kenntnisstand der Datenbank
offe n
Änderungsbaums als Abschnittshistorie
2
3
4
2
3
1
2
1
1
31.12.94
Gültigkeit des Datensatzes
01.01.95
Der Vorteil dieses Verfahrens liegt im
einfachen Zugriff. Der Nachteil ist der hohe
Speicherverbrauch, da sehr viele Daten
redundant gespeichert werden. Auch die
Änderungsoperationen sind aufwendig. Dieser
Nachteil schließt dieses Verfahren für die
meisten praktischen Fälle aus.











01.01.96
01.03.97
offe n
1
31.12.94
Pfad A
15.06.95
2
15.07.95
2
3
2
1
Pfad C
2
3
2
4
Pfad D
15.08.95
1
Pfad B
Abb.: Historienbildung durch Pfadbildung
Die folgende Tabelle zeigt den immensen
Speicherbedarf dieser Lösung auf:
76
© GDV 1999
Datenmanager / Anhang
Tabelle:
Tabellenbeispiel
einer Pfadhistorie
Urzustand
Vorschläge zur Realisierung von Historienkonzepten
Schlüssel
KENNTNIS
AB
UNKENNTNIS
AB
GÜLTIG
AB
UNGÜLTIG
AB
Attribute
...
31.12.94
offen
01.01.95
offen
...
Zustand der Tabelle nach der ersten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
offen
01.01.95
01.01.96
...
Pfad A, Satz 1
...
15.06.96
offen
01.01.96
offen
...
Zustand der Tabelle nach der zweiten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
15.07.95
01.01.95
01.01.96
...
Pfad A, Satz 1
...
15.06.96
15.07.95
01.01.96
offen
...
Pfad B, Satz 2
...
15.07.96
offen
01.01.95
01.01.96
...
Pfad B, Satz 3
...
15.07.96
offen
01.01.96
01.03.96
...
Pfad B, Satz 1
...
15.07.96
offen
01.03.96
offen
...
Zustand der Tabelle nach der dritten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
15.07.95
01.01.95
01.01.96
...
Pfad A, Satz 1
...
15.06.96
15.07.95
01.01.96
offen
...
Pfad B, Satz 2
...
15.07.96
15.08.96
01.01.95
01.01.96
...
Pfad B, Satz 3
...
15.07.96
15.08.96
01.01.96
01.03.96
...
Pfad B, Satz 1
...
15.07.96
15.08.96
01.03.96
offen
...
Pfad C, Satz 2
...
15.08.96
offen
01.01.95
01.01.96
...
Pfad C, Satz 3
...
15.08.96
offen
01.01.96
01.03.96
...
Pfad C, Satz 4
...
15.08.96
offen
01.03.96
offen
...
© GDV 1999
77
Inhalt
Datenmanager / Anhang
III.6.1.2.3. Historisierung durch Fortschreibung
Dieses Verfahren verbindet minimalen
offe n
Informationsverluste in Kauf zu nehmen, die
15.08.95
aber bei Zugriffen über das aktuelle
15.07.95
Tagesdatum oder über den
15.06.95
Beendigungszeitpunkt eines Pfades nicht
auftreten.
Kenntnisstand der Datenbank
Zugriffen. Allerdings sind einige













Speicherplatzverbrauch mit einfachen











4
3
2
?
?
1
31.12.94
In diesem Verfahren werden die jeweils
letzten Zustände eines Pfades bzw. der letzte
Pfad durch in Zukunft offene Zustände
überschrieben.
Rückwirkende Änderungen, also Änderungen,
die nicht nur den letzten Zustand einer
Gültigkeitsfolge eines Pfades ändern, führen
zum Aufbau eines neuen Pfades.
Ausgenommen davon sind Ergänzungen, die
eventuelle Lücken vor dem ersten Zustand des
Pfades auffüllen.
Gültigkeit des Datensatzes
01.01.95
01.01.96
01.03.97
offe n
31.12.94
1
Pfad A
15.06.95
2
Pfad B
15.07.95
2
3
2
3
15.08.95
Pfad B
4
Pfad B
Abb.: Historienbildung durch Fortschreibung
Die folgende Tabelle zeigt die einzelnen Zustände, wie sie z.B. in einer DB2-Tabelle entstehen, auf:
78
© GDV 1999
Datenmanager / Anhang
Tabelle:
Tabellenbeispiel
einer
Fortschreibung
Urzustand
Vorschläge zur Realisierung von Historienkonzepten
Schlüssel
KENNTNIS
AB
UNKENNTNIS
AB
GÜLTIG
AB
UNGÜLTIG
AB
Attribute
...
31.12.94
offen
01.01.95
offen
...
Zustand der Tabelle nach der ersten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
offen
01.01.95
offen
...
Zustand der Tabelle nach der zweiten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
offen
01.01.95
01.01.96
...
Pfad A, Satz 3
...
15.07.96
offen
01.01.96
offen
...
Zustand der Tabelle nach der dritten Änderung
Urzustand
...
31.12.94
15.06.95
01.01.95
offen
...
Pfad A, Satz 2
...
15.06.96
offen
01.01.95
01.01.96
...
Pfad A, Satz 3
...
15.07.96
offen
01.01.96
01.03.96
...
Pfad A, Satz 4
...
15.08.96
offen
01.03.96
offen
...
Neue Pfade werden nur bei rückwirkenden Änderungen aufgenommen.
III.7. Realisierungsmöglichkeiten
Im Folgenden werden zwei Möglichkeiten betrachtet, die oben diskutierten Vereinfachungen in
relationalen Datenbanksystemen umzusetzen. Wie in Teilen schon oben diskutiert, sind zwei
grundsätzliche Vorgehensweisen denkbar:


Alle Gültigkeitsabschnitte des Änderungsbaums werden in einer einzigen Tabelle festgehalten.
Nur die „aktuellen“ Zustände, die Gültigkeitsabschnitte des aktuellen Pfades werden in der
eigentlichen Entitätstabelle festgehalten. Alle alten Pfade werden in eine Archivtabelle ausgelagert.
Die Grundzüge dieser beiden Möglichkeiten werden in den folgenden Abschnitten näher detailliert.
Eine praktische Umsetzung wird als kleine Übung für den Themenkomplex Historisierung empfohlen.
III.7.1. Historisierung in einer Tabelle
Die Historisierung in einer Tabelle liefert alle notwendigen Informationen an einem Ort. Zugriffe
können nur über die zwei Einflußparameter Kenntnisstand und Gültigkeitszeitpunkt jeden beliebigen
Zustand der Entität mittels einer SQL-Abfrage liefern. Diesem Vorteil steht der Nachteil gegenüber,
© GDV 1999
79
Inhalt
Datenmanager / Anhang
daß auch wenig benutzte Daten bei jedem Zugriff berücksichtigt werden müssen. Die so entstehenden
Tabellen werden schnell sehr umfangreich und reduzieren somit die Möglichkeiten perfomanter
Zugriffe.
III.7.2. Historisierung mit einer Archivtabelle
Die zweite Möglichkeit, eine zu historisierende Tabelle abzulegen, besteht in der Aufteilung in eine
aktuelle Tabelle und in eine Archivtabelle.
Die aktuelle Tabelle enthält nur die Zustände des aktuellen Pfades oder keine Zustände, falls zu
dieser Entität keine Informationen vorhanden sein sollen. Sie kann somit sehr einfach als lückenlose
Abschnittshistorie realisiert werden. Zugriffe werden in der Regel auf dieser Tabelle ausgeführt. Für
diese Tabelle reichen die zwei Gültigkeitsattribute aus:

GÜLTIG_AB

UNGÜLTIG_AB
Die Archivtabelle enthält alle Zustände vergangener Pfade. Diese Daten sind in der Regel in
operativen Anwendungen nur von untergeordneter Bedeutung. Aus sie wird deshalb nicht sehr häufig
zugegriffen. Sie wird in Form einer Historie durch Fortschreibung realisiert. Diese Tabelle benötigt
deshalb alle vier Attribute:

KENNTNIS_AB

UNKENNTNIS_AB

GÜLTIG_AB

UNGÜLTIG_AB
III.7.3. Die Vorgangstabelle
Zusammengehörige Tabellen bilden in ihrer Gesamtheit ein Informationsobjekt eines VU. Dies kann
z.B. ein Versicherungsvertrag mit den Komponenten:

allgemeine Vertragsdaten

Risikodaten je möglichem Risiko

Unterrisikodaten je Unterrisiko zu einem Risiko

abweichende Deckungszusagen

Objektdaten

etc.
sein. Es empfiehlt sich, alle übergreifenden Daten über die Entwicklung eines Informationsobjekts in
einer eigenen Tabelle zu führen. Diese Tabelle enthält z.B. folgende Daten:

80
Identifikation des ändernden Sachbearbeiters
© GDV 1999
Datenmanager / Anhang
Literaturverzeichnis

Datum des Vorgangs

Art des Vorgangs

fachlicher Beginn des durch den Vorgang erzeugten Zustands des Informationsobjekts

etc.
Mittels einer derartigen Tabelle kann dann eine einfache Zugriffssteuerung auf die einzelnen Zustände
der betroffenen Komponenten zugegriffen werden.
IV. Literaturverzeichnis
[Am93]
Amberg, M.: Konzeption eines Software-Architekturmodells für die objektorientierte
Entwicklung betrieblicher Anwendungssysteme, Inaugural-Dissertation zur Erlangung
des Grades eines doctor rerum politicarum der Fakultät Sozial- und Wirtschaftswissenschaften der Universität Bamberg, Bamberg 1993
[Bött95]
R. Böttger, ...: Efendi V1.0: Database Federation Services, Cadlab-Joint R&D Institute
der Universität Paderborn und Siemens Nixdorf Informationssysteme AG, Paderborn
1995
[Booch93]
Booch, G.: Object Oriented Analysis and Design With Applications, Benjamin/Cummings, Redwood City 1993
[DBFo1/95]
„IBM DataJoiner für die Integration heterogener Datenbestände“ in: Datenbank
Fokus, Heft 1/95, S. 35 - 39
[DBFo2/95]
„Vom Eigenbau zum Produkt: Normiertes Verbindungsstück“ in: Datenbank Fokus,
Heft 2/95, S. 30 - 34
[FeSi93]
Ferstl, O.K., Sinz, E.J.: Grundlagen der Wirtschaftsinformatik, Oldenbourg, München,
Wien 1993
[Hor96]
Hornig, P.:Die Kinder der OMA - Überblick über CORBA-Implementierungen, in:
OBJEKTspektrum 1/96
[IBMDaJo94] DataJoiner - A Multidatabase Server, IBM White Paper 10/94 aus der Reihe „Data
Management Solutions“
[Ja92]
Jacobson, I.: Object-Oriented Software Engineering, A Use Case Driven Approch,
Addison-Wesley, ACM Press1992
[OvumMi95]
Rock-Evans, R., Woods, E.: Middleware the Key to Distributed Computing, Ovum
Report, London 1995
[OvumDo95]
Ring, K., Carnelley, Ph.: Distributed Objects: Creating the Virtual Mainframe, Ovum
Report, London 1995
© GDV 1999
81
Inhalt
Datenmanager / Anhang
[Rad94]
E. Radeki: Efendi: Federated Database System of Cadlab, Cadlab Report 39/94,
Cadlab-Joint R&D Institute der Universität Paderborn und Siemens Nixdorf
Informationssysteme AG, Paderborn 1994
[SAGNAV]
NATURAL ACTIVE VIEW Manual für NATURAL ACTIVE VIEW Version 1.1,
Software AG, Darmstadt 1993, Manual-Nr.: NVI-111-030
[SNIDBA94]
Database Access Service (DBA): Zugriff auf unternehmensweite Daten, Siemens
Nixdorf Informationssysteme AG, Paderborn 1994, Best.-Nr.: U22455-J-Z411-1
[SNIDBA95]
Database Access - der universelle Zugriff auf Datenbanken im heterogenen Umfeld,
Siemens Nixdorf Informationssysteme AG, Paderborn 1995, Best.-Nr.: U23555-JZ810-1
[SybOv]
SYBASE Client/Server Architectural Overview, SYBASE, Emeryville, California,
USA, Band-Nr. 8203-0294
[VAA1.3]
VAA, Die Anwendungsarchitektur der Versicherungswirtschaft Version 1.3
82
© GDV 1999
Herunterladen