G7-UDS-ORACLE-Migration - GSE Graeber Software Entwicklung

Werbung
G7-Migration
®
UDS-ORACLE-Migration
Verfahrensbeschreibung
GSE Graeber Software-Entwicklung
Karl-Albrecht Graeber
In den Siefen 51
D-66346 Püttlingen/Saarbrücken
Telefon.: +49(0)6806 306 00 70
Telefax.: +49(0)6806 306 00 72
E-Mail: [email protected]
Internet: www.g7-migration.de
UDS-ORACLE-Migration
Seite 2
Inhalt:
1. Einleitung
2. Ausgangssituation
3. Zielumgebung
4. G7-Migrations-Werkzeuge
5. Ergebnis
1. Einleitung
In dieser Dokumentation wird beschrieben, welche Funktionen die G7-Migration für die
Migration der Daten und der Anwendungskomponenten bereitstellt, um eine UDS-Datenbank
durch eine ORACLE-Datenbank zu ersetzen.
2. Ausgangssituation
In vielen BS2000-Anwendungen wird zur Datenspeicherung eine UDS-Datenbank
eingesetzt. Aus unterschiedlichen Gründen wird die Anforderung gestellt, diese UDSDatenbank durch eine ORACLE-Datenbank zu ersetzen, u.a.
•
•
•
Integration der Datenbasis bei verschiedener Anwendungen unter BS2000
Migration der Anwendungen von BS2000 in eine moderne Client/ServerUmgebung
Fehlende Flexibilität und Zukunftsperspektive von UDS und/oder BS2000
UDS ist eine Codasyl-Datenbank. (CODASYL steht für COnference on DAta-SYstemsLanguage). Die Speicherung der Daten erfolgt in einem speziellen logischen Netzwerk mit
Records und Sets. Records nehmen Datenfelder, Feldgruppen oder Tabellen auf,
Beziehungen zwischen Records werden durch Sets bestimmt Verschiedene Records
könnnen in Areas zusammengefasst werden. In der Datenbank können nicht nur flache und
hierarchische, sondern auch m:n-Beziehungen definiert werden.
Die Definition von UDS-Datenbanken erfolgt über das Schema, über das Subschema wird im
Programm definiert, welche Teile der UDS-Datenbank benutzt werden. Die
Schemabeschreibung erfolgt über eine spezielle Sprache, die Datenbeschreibungs-Sprache.
Sätze (Records) innerhalb einer Datenbank können in allen Feldern gleiche Werte haben.
Der Datenbankschlüssel (Data Base Key (DBK)) dagegen ist ein interner, innerhalb einer
Datenbank eindeutiger Schlüssel, der beim erstmaligen Speichern des Satzes vergeben wird
und über den in der Datenbank direkt zugegriffen werden kann.
Die Sets definieren die Zusammengehörigkeit von Records innerhalb der Netzwerkstruktur.
Ihre Definition besteht im wesentlichen aus dem Owner, dem Member und der Set-Order
(first, last, next, prior, sorted, etc.), aber auch zusätzlichen Informationen, wie INSERTION IS
oder RETENTION IS.
Da die Zugriffe auf die Datenbank (Navigation) situationsabhängig sind, wird von UDS intern
eine Currency-Information geführt.
© GSE
G7-Migration®
UDS-ORACLE-Migration
Seite 3
Für bestimmte Datenzugriffe ist UDS laufzeit-optimiert. Der Zugriff auf die Daten erfolgt über
spezielle Zugriffsbefehle, die als spezielle Funktionen in den Programmiersprachen
(meistens Cobol) mit Hilfe der Datenmanipulations-Sprache definiert werden. Die dafür
vorgesehenen Funktionen sind:
Funktionen zur Steuerung und zum Satzschutz:
•
•
•
•
•
•
•
READY
FINISH
KEEP
FREE
IF EMPTY
IF MEMBER
IF OWNER
Funktionen zum Ändern und Löschen von Informationen in der Datenbank
•
•
•
•
•
STORE (oder INSERT) record
ERASE (oder DELETE) record
CONNECT (INSERT set)
DISCONNECT (REMOVE set)
MODIFY record
Funktionen zur Wiedergewinnung von Informationen aus der Datenbank
•
•
•
ACCEPT database-key
FETCH (oder GET) record
FIND record
Bei fast allen Funktionen gibt es mehrere Varianten. Diese Tatsache macht die
Datenmanipulations-Sprache relativ komplex.
Da UDS ausschließlich unter BS2000 einsetzbar ist, streben viele Unternehmen an, von
dieser Abhängigkeit wegzukommen und relationale Datenbank-Systeme einzusetzen.
3. Zielumgebung
In modernen IT-Umgebungen hat sich in erster Linie ORACLE als Anbieter von relationalen
Datenbank-Systemen (Welt-Marktführer) etabliert.
In der ORACLE-Datenbank kann mit Hilfe von SQL oder PL/SQL (auch über interne
Schnittstellen wie ODBC, JDBC, OLAP) zugegriffen werden. Es gibt eine Vielzahl von
Möglichkeiten, die Daten zu organisieren (z.B. Data-Warehouse) und die Daten
wiederzugewinnen. SQL-Zugriffe kann man auf unterschiedlichen Datenbank-Systemen
verwenden, allerdings ist SQL nicht genormt. Daher gibt es auch viele Unterschiede und die
für ein Datenbank-System in SQL formulierten Zugriffe sind beim Übergang auf ein anderes
Datenbank-System häufig nicht mehr verwendbar oder müssen modifiziert werden. Das
gleiche gilt für die zur Verwendung kommenden Datentypen.
Die ORACLE-Datenbank ermöglicht neben der Speicherung von herkömmlichen Daten auch
BLOBs (binary large objects), CLOBs (character large objects) und NCLOBs (national
characters large objects) sowie raumbezogenen Daten (z.B. Geodaten). Eine bestehende
Datenbank kann problemlos erweitert werden.
© GSE
G7-Migration®
UDS-ORACLE-Migration
Seite 4
Bei der Definition einer ORACLE-Datenbank werden in der Regel Definitions-Skripts
verwendet, weil diese sich relativ leicht generieren und bearbeiten lassen. In diesen SQLSkripts werden die Tabellen der Datenbank mit Felddefinitionen, Feldbezeichnungen,
Indexen und Constraints, Methoden für die Bearbeitung der Tabellen (Trigger) und
Zugriffsrechte (Grants) definiert. Mit einer einzigen Anweisung an die Datenbank können
dann alle oder einzelne Tabellen mit allen obengenannten Eigenschaften der ORACLEDatenbank bekanntgegeben werden.
Für den Zugriff auf die ORACLE-Datenbank können Cobol-Programme mit embedded-SQL
eingesetzt werden, die aus den Anwendungsprogrammen heraus aufgerufen werden.
ORACLE ist auf einer Vielzahl von Betriebssystemen (u.a. auch BS2000) einsetzbar.
4. G7-Migrations-Werkzeuge
Wenn von UDS auf ORACLE migriert werden soll, dann sind folgende Aspekte zu
berücksichtigen. Diese werden mit Hilfe von Generatoren und Konvertern im Rahmen der
G7-Migration zur Verfügung gestellt und können kundenbezogen angepaßt werden.
4.1. Definition der Datenbank
Für die Erzeugung der oben beschriebenen Definitions-Skripts wird der G7-UDS-SkriptGenerator eingesetzt, der aus der UDS-Schema-Beschreibung alle für die ORACLEDatenbank relevanten Informationen übernimmt. Ergebnisse sind SQL-Skripts für das Create
der Tabellen, für das Create der Kommentare (Feldbeschreibungen), für das Create der
Indexe, für das Create der Zugriffsrechte und für die benötigten Trigger (z.B. die
automatische Vergabe der Database-Keys). Dabei wird davon ausgegangen, daß in den
einzelnen Tabellen außer den in UDS geführten Datenfeldern auch zusätzliche Datenfelder
für die Owner-Keys, die automatische Verwaltung der Timestamps für Insertion und
Modifikation, die Versions-Nummern und den eindeutigen Database-Key vorgesehen
werden. Die Owner-Keys werden in den Zugriffs-Modulen verwaltet, die unter 4.2
beschrieben sind und über die aus der Anwendung heraus auf die ORACLE-Datenbank
zugegriffen wird.
4.2. Generierung der Zugriffs-Module (PCO-Module)
Für den Zugriff auf die ORACLE-Datenbank wird vom G7-Modul-Generator je Tabelle und je
Set ein Zugriffs-Modul erzeugt. In diesen Zugriffs-Modulen werden die unterschiedlichen
Zugriffs-Funktionen (Lesen, Schreiben, Ändern) in der Datenbank inklusive der
automatischen Pflege der Currency-Informationen (CRU, CRR, CRS in der Common-Area
der Anwendung) und der Owner-/Member-Key-Relationen (in der Datenbank) realisiert.
Alle Datenbank-Zugriffe erfolgen über embedded SQL.
Die PCO-Module müssen nach der Generierung mit dem Precompiler von ORACLE in reine
Cobol-Programme und danach mit dem Cobol-Compiler in Objektprogramme umgewandelt
werden.
© GSE
G7-Migration®
UDS-ORACLE-Migration
Seite 5
4.3. Generierung der Copy-Elemente für die Currency-Informationen
Um die Currency-Informationen für die Datenbank-Zugriffe pflegen zu können, wird aus den
Schema-Definitionen je Schema ein Copy-Element generiert, das in den Common-Bereich
der Anwendung einzubinden ist. Die Currency-Information steht damit bei der Ausführung
der Anwendung allen aufgerufenen Zugriffs-Modulen zur Verfügung und kann dort abgefragt
und modifiziert werden.
4.4. Konvertierung der Anwendungs-Programme (Cobol)
Die Anwendungs-Programme, die auf die UDS-Datenbank zugreifen, werden vom
G7-Programm-Konverter umgesetzt. Dabei wird statt der UDS-Zugriffs-Funktionen ein Zugriff
auf das zentrale G7-UDS-Zugriffs-Modul eingebaut, das je Tabelle die (vom G7-ModulGenerator generierten) record- oder set-bezogenen Zugriffs-Module aufruft, welche die
Operationen auf die ORACLE-Datenbank ausführen. Auch in dem zentralen G7-UDSZugriffs-Modul können kundenspezifische Besonderheiten berücksichtigt werden.
4.5. Generierung von CTL-Skripts für den ORACLE-Loader
Zusätzlich zu den obigen Komponenten werden mit dem G7-CTL-Generator auch CTLSkripts (Control-Skripts) für das Laden der Daten in die ORACLE-Datenbank generiert. Für
das Laden mit dem ORACLE-Loader müssen die Daten in sequentiellen Dateien je Tabelle
bereitgestellt werden.
5. Ergebnis
Mit dem Einsatz der G7-Migrations-Werkzeuge wird eine Migration der UDS-Datenbank in
eine ORACLE-Datenbank erheblich vereinfacht und beschleunigt, da manuelle Tätigkeiten
minimiert werden. Die ORACLE-Datenbank kann – ebenso wie die UDS-Datenbank – unter
BS2000 eingesetzt werden.
Die Migration der Datenbank kann auch den ersten Schritt zu einem Plattform-Wechsel
darstellen, der für den BS2000-Kunden mit großen Kosteneinsparungen und einer hohen
Flexibilität und Unabhängigkeit vom BS2000-Anbieter verbunden ist. Die neue Plattform ist
dann ein modernes Client/Server-System, wahlweise mit dem Betriebssystem Unix, Linux
oder Windows und einer klassischen 3-Schichten-Architektur (3-tier).
GSE bietet für einen Plattform-Wechsel die geeigneten G7-Migrations-Werkzeuge, die für die
Migration von BS2000 in Client/Server-Umgebungen entwickelt wurden und sich in etwa 50
Migrations-Projekten (auch von anderen Legacy-Systemen nach Client/Server) bewährt
haben.
Püttlingen, 27.08.2010 / Dr. Karl-Albrecht Graeber
© GSE
G7-Migration®
Herunterladen