-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft allgemein Computer, die Datenbanksysteme
implementieren und insbesondere ein Verfahren, ein System und ein Programm
zum Übertragen
von Daten von einem ersten Datenbanksystem zu einem zweiten Datenbanksystem.
-
Allgemeiner Stand der
Technik
-
In
der Industrie der Unternehmenssoftware sind dreistufige Lösungen zweckmäßig. Gewöhnlich umfassen
solche Lösungen
Benutzerschnittstellensysteme in einer ersten Schicht, Unternehmensanwendungssysteme
in einer zweiten Schicht und Datenbanksysteme in einer dritten Schicht
("System" im folgenden weggelassen).
Beispiele für
dreistufige Lösungen
sind die wohlbekannten Softwarelösungen, wie
zum Beispiel die Lösung
R/3 und mySAP.com, die im Handel von der SAP Aktiengesellschaft,
Walldorf (Baden) erhältlich
sind. Für
die folgende Besprechung verdienen die zweite und die dritte Schicht
größere Aufmerksamkeit.
-
Die
Datenbanken werden gewöhnlich
als relationale Datenbanken implementiert, die durch vordefinierte
und standardisierte Anweisungen, wie zum Beispiel SQL-Anweisung (System
Query Language) kommunizieren.
-
Relationale
Datenbanken sind in der Technik wohlbekannt, Informationen werden
in Tabellen oder Relationen strukturiert, worin Datenwerte in Zeilen oder
Tupeln unter verschiedenen Spaltenüberschriften gespeichert werden.
-
Der
technologische Prozeß,
sich ändernde Kundenbedürfnisse
und andere Umstände
verlangen, Daten zu anderen Datenbanken zu übertragen. Gewöhnlich erfordert
die Übertragung
insofern Zeit, als die Anwendung nicht wie erforderlich wirkt.
-
Datenbanken
und/oder Anwendungen zu einem anderen Ort zu kopieren, ist in kurzer
Zeit möglich,
solange die Struktur der Daten unverändert bleibt. Die Datenumstrukturierung
erfordert mehr Zeit.
-
Die
Annahme einer Unternehmensanwendung hängt jedoch unter anderem von
ihrer Verfügbarkeit
ab. Kunden, die die Datenbankdienste eines Patentbüros schätzen, kümmern sich
nicht um Nichtverfügbarkeit
während
der Nacht. Es gibt aber viele andere Systeme, die praktisch Nichtverfügbarkeit
nur während
bestimmter Jahreszeiten, wie zum Beispiel während bestimmter Ferien, erlauben.
Anders ausgedrückt,
sollten im Idealfall viele Unternehmensanwendungssysteme 24 Stunden
am Tag und 365 Tage im Jahr verfügbar
sein.
-
Aus
einer relationalen Datenbank werden Informationen durch eine Abfrage
abgerufen. Wenn Informationen aktualisiert, durch eine sogenannte Transaktion
in die Datenbank eingefügt
oder daraus gelöscht
werden sollen, muß mindestens
eine Tabelle modifiziert werden. Es gibt mehrere Ansätze zur Datenbank-Wartung.
-
Aus
der Besprechung vorbekannter Systeme sind die folgenden Literaturstellen
nützlich:
US 6,141,664 ;
US 6,122,630 ;
US 6,205,451 ;
US 5,893,119 und
US 6,006,216 . In jedem Fall besteht eine
technische Aufgabe, die sogenannte System-Downtime während der
Aktualisierung des Systems zu verringern.
-
Kurzfassung der Erfindung
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Übertragen
von Inhalt von einer Quellentabelle in einer Quellendatenbank zu
einer Zieltabelle in einer Zieldatenbank, wobei die Datenbanken
physisch verschieden sind. Das Verfahren wird in Anspruch 1 definiert.
Jeder Eintrag weist einen eindeutigen Schlüssel und einen Inhalt auf.
Die Datenbankanweisungen weisen vorbestimmte Aktionstypen auf. Das
Verfahren umfaßt
die folgenden computerimplementierten Schritte: Speichern, für zu der
Quellendatenbank gesendete Anweisungen, zusätzlich zu der Abwicklung der
Anweisungen durch die Quellendatenbank, von Repräsentationen des Aktionstyps
und des Schlüssels
in einer Logtabelle unter der Bedingung, daß der Aktionstyp mit einem
vorbestimmten Aktionstyp zusammenfällt; Kopieren, während die Anwendung
Datenbankanweisungen sendet und während die Abwicklung der Anweisungen
in der Quellendatenbank und das Speichern von Repräsentationen
in der Logtabelle stattfinden, von Einträgen der Quellentabelle in die
Zieltabelle; und Einstellen derjenigen Einträge in der Zieltabelle, die
in der Logtabelle repräsentierte
Schlüssel
aufweisen, für
die Aktionstyp-Repräsentationen
Aktualisieren und Insert durch Kopieren von Inhalt aus der Quellentabelle in
die Zieltabelle an entsprechenden Schlüsseln, und für die Aktionstyp-Repräsentation
Delete durch Löschen
des entsprechenden Eintrags in der Zieltabelle.
-
Ein
Vorteil ist, daß das
Einstellen mindestens teilweise stattfindet, wenn die Anwendung
immer noch mit der Quellendatenbank kommuniziert. Das Senden von
Anweisungen zu der Quellendatenbank ist auch dann noch möglich, wenn
das Kopieren abgeschlossen ist. Die Downtime für die Anwendung wird verringert.
-
Vorzugsweise
umfaßt
der Schritt des Kopierens folgendes: Umsetzung der Codierung des
Eintrags von einem Einzelbytecode wie etwa ASCII in einen Mehrbytecode
wie etwa Unicode. Es ist ein Vorteil, daß durch Verwendung eines Schlüssels, der
sowohl in der Quellendatenbank als auch in der Zieldatenbank gültig ist,
die Umsetzung während
der Datenbankübertragung
durchgeführt
wird.
-
Vorzugsweise
wird das Einstellen in einer ersten Einstellperiode durchgeführt, während die
Anwendung immer noch Datenbankanweisungen sendet, und in einer zweiten
Einstellperiode, während
die Anwendung stumm ist. Die zweite Periode ist die kürzere.
-
Vorzugsweise
werden die vorbestimmten Aktionstypen aus der Gruppe Einfügen, Löschen und Aktualisieren
ausgewählt;
die Anweisungen sind SQL-Anweisungen. Die vorliegende Erfindung
ist mit existierenden Datenbanksystemen kompatibel.
-
Vorzugsweise
umfaßt
der Schritt des Einstellens das Einstellen eines ersten Teils der
Quellentabelle mit einem ersten Teil der Zieltabelle im wesentlichen
parallel mit dem Einstellen eines zweiten Teils der Quellentabelle
mit einem zweiten Teil der Zieltabelle. Solange separaten Einstellprozessen
separate Teile zugewiesen werden, verringert die parallele Verarbeitung
die Anwendungs-Downtime weiter.
-
Vorzugsweise
umfaßt
der Schritt des Kopierens das Kopieren eines ersten Teils der Quellentabelle
in einen ersten Teil der Zieltabelle im wesentlichen parallel mit
dem Kopieren eines zweiten Teils der Quellentabelle in einen zweiten
Teil der Zieltabelle. Solange separaten Kopierprozessen separate
Teile zugewiesen werden, verringert die parallele Verarbeitung die
Gesamtübertragungszeit
weiter.
-
Die
vorliegende Erfindung betrifft außerdem ein Computerprogrammprodukt
zum Übertragen
von Inhalt von einer Quellentabelle in einer Quellendatenbank zu
einer Zieltabelle in einer Zieldatenbank, wobei die Datenbanken
physisch verschieden sind, wobei vor dem Übertragen eine Unternehmensanwendung
aufeinanderfolgend Datenbankanweisungen zu der Quellentabelle sendet
und nach dem Übertragen die
Unternehmensanwendung aufeinanderfolgend die Datenbankanweisungen
zu der Zieldatenbank sendet, wobei in jeder Tabelle jeder Eintrag
einen eindeutigen Schlüssel
und einen Inhalt aufweist, wobei die Datenbankanweisungen Aktionstypen
aufweisen. Das Computerprogrammprodukt weist Anweisungen auf, die
bewirken, daß ein
Prozessor folgendes ausführt:
Speichern, für
zu der Quellendatenbank gesendete Anweisungen, zusätzlich zu
der Abwicklung der Anweisungen durch die Quellendatenbank, von Repräsentationen
des Aktionstyps und des Schlüssels in
einer Logtabelle unter der Bedingung, daß der Aktionstyp mit einem
vorbestimmten Aktionstyp zusammenfällt; Kopieren, während die
Anwendung Datenbankanweisungen sendet und während die Abwicklung der Anweisungen
in der Quellendatenbank und das Speichern von Repräsentationen
in der Logtabelle stattfinden, von Einträgen der Quellentabelle in die
Zieltabelle wobei die Codierung des Eintrags umgesetzt wird; und
Einstellen derjenigen Einträge
in der Zieltabelle, die in der Logtabelle repräsentierte Schlüssel aufweisen.
-
Vorzugsweise
bewirken die Anweisungen, daß der
Prozessor folgendes durchführt:
aufeinanderfolgendes Einstellen in einer ersten Einstellperiode,
während
die Anwendung die Datenbankanweisungen sendet, sowie in einer zweiten
Einstellperiode, während
die Anwendung (200) stumm ist.
-
Vorzugsweise
bewirken die Anweisungen, daß der
Prozessor den Schritt des Einstellens durch Einstellen eines ersten
Teils der Quellentabelle mit einem ersten Teil der Zieltabelle im
wesentlichen parallel mit einem Einstellen eines zweiten Teils der
Quellentabelle mit einem zweiten Teil der Zieltabelle ausführt.
-
Die
vorliegende Erfindung betrifft außerdem ein Computersystem zum
Durchführen
des Verfahrens zum Übertragen
von Inhalt von einer Quellentabelle in einer Quellendatenbank zu
einer Zieltabelle in einer Zieldatenbank.
-
Kurze Beschreibung der
Zeichnungen
-
1 zeigt
ein vereinfachtes Blockschaltbild des erfindungsgemäßen Computernetzwerksystems mit
mehreren Computern;
-
2 zeigt
ein vereinfachtes Blockschaltbild einer Anwendung, einer Quellendatenbank,
einer Zieldatenbank, einer Logtabelle und eines Übertragungswerkzeuges;
-
3 zeigt
ein Verfahren der vorliegenden Erfindung durch ein vereinfachtes
Flußdiagramm
in Kombination mit einer Zeitachse;
-
4 zeigt
eine Übersicht über Verfahrensschrittaktionen,
die an aufeinanderfolgenden Zeitpunkten stattfinden;
-
5–8 zeigen
Datenbanktabellen zu verschiedenen Zeitpunkten und
-
9 zeigt
ein vereinfachtes Diagramm von Quellen- und Zieltabellen mit den Einstell-
und Kopierschritten in einer weiteren Ausführungsform der vorliegenden
Erfindung.
-
Ausführliche Beschreibung
-
1 zeigt
ein vereinfachtes Blockschaltbild des erfindungsgemäßen Computernetzwerksystems 999 mit
mehreren Computern 900, 901, 902 (oder 90q,
mit q = 0... Q-1, Q eine beliebige Zahl).
-
Die
Computer 900–902 sind über das
Netzwerk 990 zwischen Computern gekoppelt. Der Computer 900 umfaßt einen
Prozessor 910, Speicher 920 und einen Bus 930 und
wahlweise ein Eingabegerät 940 und
ein Ausgabegerät 950 (E/A-Geräte, Benutzerschnittstelle 960).
Wie dargestellt, ist die Erfindung durch das Computerprogrammprodukt 100 (CPP),
den Programmträger 970 and
das Programmsignal 980, zusammen "Programm", präsent.
-
In
bezug auf den Computer 900 wird der Computer 901/902 manchmal
als "abgesetzter
Computer" bezeichnet.
Der Computer 901/902 ist zum Beispiel ein Server,
ein Router, eine Peer-Einrichtung oder ein anderer gemeinsamer Netzwerkknoten
und umfaßt
in der Regel viele oder alle der relativ zu dem Computer 900 beschriebenen
Elemente. Die Elemente 100 und 910–980 in
dem Computer 900 illustrieren daher kollektiv auch entsprechende
Elemente 10q und 91q–98q
(für q
= 0 gezeigt) in den Computern 90q.
-
Der
Computer 900 ist zum Beispiel ein herkömmlicher PC (Personal Computer),
eine Desktop- oder in der Hand gehaltene Einrichtung, ein Mehrprozessorcomputer,
ein Pen-Computer, eine mikroprozessorgestütze oder programmierbare Verbraucherelektronik,
ein Minicomputer, ein Zentralrechner, eine persönliche mobile Datenverarbeitungseinrichtung, ein
Mobiltelefon, ein tragbarer oder stationärer Personal Computer, ein
Palmtop-Computer oder dergleichen.
-
Der
Prozessor 910 ist zum Beispiel eine Zentralverarbeitungseinheit
(CPU), eine Mikrosteuerungseinheit (MCU), ein digitaler Signalprozessor (DSP)
oder dergleichen.
-
Der
Speicher 920 symbolisiert Elemente, die Daten und Anweisungen
vorübergehend
oder permanent speichern. Obwohl der Speicher 920 zweckmäßigerweise
als Teil des Computers 900 dargestellt ist, können Speicherfunktionen
auch in dem Netzwerk 990, in den Computern 901/902 und
in dem Prozessor 910 selbst (z.B. Cache, Register), oder
an anderer Stelle implementiert werden. Der Speicher 920 kann
ein Nurlesespeicher (ROM), ein Direktzugriffsspeicher (RAM) oder
ein Speicher mit anderen Zugriffsoptionen sein. Der Speicher 920 ist
physisch durch ein computerlesbares Medium implementiert, wie zum
Beispiel: (a) magnetische Medien, wie zum Beispiel eine Festplatte,
eine Diskette oder ein anderer magnetischer Datenträger, ein
Band, ein Kassettenband; (b) optische Medien wie etwa optische Datenträger (CD-ROM,
Digital Versatile Disk – DVD);
(c) Halbleitermedien wie etwa DRAM, SRAM, EPROM, EEPROM, Speicher-Stick
oder durch beliebige andere Medien wie etwa Papier.
-
Wahlweise
wird der Speicher 920 auf verschiedene Medien verteilt.
Teile des Speichers 920 können wechselbar oder nicht
wechselbar sein. Zum Lesen aus Medien und zum Schreiben in Medien
verwendet der Computer 900 in der Technik wohlbekannte
Einrichtungen, wie zum Beispiel Plattenlaufwerke, Bandlaufwerke.
-
Der
Speicher 920 speichert Support-Module, wie zum Beispiel
ein BIOS (basic input output system), ein Betriebssystem (OS), eine
Programmbibliothek, einen Compiler, einen Interpreter und ein Textverarbeitungswerkzeug.
Die Support-Module sind im Handel erhältlich und können von
Fachleuten auf dem Computer 900 installiert werden. Der
Einfachheit halber sind diese Module nicht dargestellt.
-
Der
CPP 100 umfaßt
Programmanweisungen und wahlweise Daten, die bewirken, daß der Prozessor 910 Verfahrensschritte
der vorliegenden Erfindung ausführt.
Verfahrensschritte werden später ausführlicher
erläutert.
Anders ausgedrückt,
definiert der CPP 100 die Funktionsweise des Computers 900 und
seine Interaktion in dem Systemnetzwerksystem 999. Zum
Beispiel und ohne beabsichtigte Einschränkung kann der CPP 100 als
Quellcode in beliebiger Programmiersprache und als Objektcode ("Binärcode") in kompilierter
Form verfügbar
sein. Fachleute können
den CPP 100 in Verbindung mit beliebigen der obigen Support-Module
(z.B. Compiler, Interpreter, Betriebssystem) benutzen.
-
Obwohl
das CPP 100 als in dem Speicher 920 gespeichert
dargestellt ist, kann sich das CPP 100 an einer anderen
Stelle befinden. Das CPP 100 kann auch in dem Träger 970 realisiert
werden.
-
Der
Träger 970 ist
außerhalb
des Computers 900 dargestellt. Um das CPP 100 zu
dem Computer 900 zu übermitteln,
wird zweckmäßigerweise
der Träger 970 in
das Eingabegerät 940 eingefügt. Der Träger 970 wird
als ein beliebiges computerlesbares Medium implementiert, wie etwa
das oben grob erläuterte
Medium (vgl. Speicher 920). Im allgemeinen ist der Träger 970 ein
Herstellungsartikel, der ein computerlesbares Medium umfaßt, auf
dem computerlesbare Programmcodemittel realisiert sind, um das Verfahren
der vorliegenden Erfindung auszuführen. Ferner kann das Programmsignal 980 auch
das Computerprogramm 100 realisieren. Das Signal 980 breitet
sich in dem Netzwerk 990 zu dem Computer 900 aus.
-
Nachdem
das CPP 100 beschrieben wurde, sind der Programmträger 970 und
das Programmsignal 980 in Verbindung mit dem Computer 900 zweckmäßig. Wahlweise
realisieren der Programmträger 971/972 (nicht
gezeigt) und das Programmsignal 981/982 das Computerprogrammprodukt
(CPP) 101/102, das in den Computern 901/902 jeweils durch
den Prozessor 911/912 (nicht gezeigt) ausgeführt werden
soll.
-
Das
Eingabegerät 940 symbolisiert
eine Einrichtung, die Daten und Anweisungen zur Verarbeitung durch
den Computer 900 bereitstellt. Zum Beispiel ist die Einrichtung 940 eine
Tastatur, ein Zeigegerät
(z.B. Maus, Trackball, Cursor-Richtungstasten), ein Mikrofon, ein
Joystick, ein Game-Pad, ein Scanner. Obwohl die Beispiele Einrichtungen
mit menschlicher Interaktion sind, kann die Einrichtung 940 auch
ohne menschliche Interaktion arbeiten, wie zum Beispiel ein drahtloser
Empfänger
(z.B. mit Satellitenschüssel
oder terrestrischer Antenne), ein Sensor (z.B. ein Thermometer),
ein Zähler
(z.B. Warenzähler
in einer Fabrik). Das Eingabegerät 940 kann
zum Lesen des Trägers 970 dienen.
-
Das
Ausgabegerät 950 symbolisiert
eine Einrichtung, die Anweisungen und Daten, die verarbeitet wurden,
präsentiert.
Beispielsweise ein Monitor oder eine andere Art von Display (Kathodenstrahlröhre (CRT),
Flach-Display, Flüssigkristall-Display (LCD),
ein Lautsprecher, ein Drucker, ein Plotter oder eine Vibrations-Hinweiseinrichtung. Ähnlich wie
oben kommuniziert das Ausgabegerät 950 mit
dem Benutzer, kann aber auch mit weiteren Computern kommunizieren.
-
Das
Eingabegerät 940 und
das Ausgabegerät 950 können zu
einer einzigen Einrichtung kombiniert werden; wahlweise kann eine
beliebige Einrichtung 940 und 950 bereitgestellt
werden.
-
Der
Bus 930 und das Netzwerk 990 stellen durch übermitteln
von Anweisungs- und Datensignalen logische und physische Verbindungen
bereit. Obwohl Verbindungen im Inneren des Computers 900 zweckmäßigerweise
als "Bus 930" bezeichnet werden,
werden Verbindungen zwischen Computern 900–902 als "Netzwerk 990" bezeichnet. Die
Einrichtungen 940 und 950 sind durch den Bus 930 (wie
dargestellt) oder (wahlweise) durch das Netzwerk 990 an
den Computer 900 angekoppelt. Obwohl die Signale im Inneren
des Computers 900 hauptsächlich elektrische Signale
sind, sind die Signale in dem Netzwerk elektrische, magnetische,
optische oder drahtlose (Funk-) Signale.
-
Vernetzte
Umgebungen (wie zum Beispiel das Netzwerk 990) sind in
Büros,
unternehmensweiten Computernetzwerken, Intranets und dem Internet (d.
h. world wide web) überall
anzutreffen. Die physische Distanz zwischen einem abgesetzten Computer und
dem Computer 900 ist nicht wichtig. Das Netzwerk 990 kann
ein verdrahtetes oder ein drahtloses Netzwerk sein. Um einige wenige
Netzwerkimplementierungen zu nennen, ist das Netzwerk 990 zum Beispiel
ein lokales Netzwerk (LAN), ein großflächiges Netzwerk (WAN), ein öffentliches
Fernsprechwählnetz
(PSTN); ein dienstintegriertes digitales Netzwerk (ISDN), eine Infrarotverbindung
(IR), eine Funkverbindung, wie zum Beispiel UMTS (Universal Mobile
Telecommunications System), GSM (Global System for Mobile Communication),
CDMA (Code Division Multiple Access) oder eine Satellitenverbindung.
-
Übertragungsprotokolle
und Datenformate sind bekannt, zum Beispiel als TCP/IP (transmission control
protocol/internet protocol), HTTP (hyper text transfer protocol),
sicheres HTTP, das drahtlose Anwendungsprotokoll, URL (unique resource
locator), eine URI (unique resource identifier), HTML (hyper text
markup language HTML), XML (extensible markup language), XHTML (extensible
hyper text markup language), WML (wireless application markup language)
usw.
-
Zwischen
die Elemente gekoppelte Schnittstellen sind ebenfalls in der Technik
bekannt. Der Einfachheit halber sind Schnittstellen nicht dargestellt. Eine
Schnittstelle kann zum Beispiel eine serielle Portschnittstelle,
eine parallele Portschnittstelle, ein Spiel-Port, eine USB-Schnittstelle
(universal serial bus), ein internes oder externes Modem, ein Videoadapter
oder eine Sound-Card sein. Computer und Programm hängen eng
miteinander zusammen. Im nachfolgenden Gebrauch sind Phrasen wie
etwa "der Computer
stellt bereit" und "das Programm stellt
bereit" zweckmäßige Abkürzungen,
um Aktionen durch einen Computer auszudrücken, die durch ein Programm
gesteuert werden.
-
2 zeigt
ein vereinfachtes Blockschaltbild der Unternehmensanwendung 200,
der Quellendatenbank 210, der Zieldatenbank 220,
der Logtabelle 250 und des Übertragungswerkzeuges 260,
wobei es sich bei allem um Datenverarbeitungsfunktionen unter Verwendung
von Computern handelt. Zum Beispiel implementiert der Computer 900 die
Anwendung 200, die Logtabelle 250 und das Übertragungswerkzeug 260;
der Computer 901 implementiert die Quellendatenbank 210;
und der Computer 902 implementiert die Zieldatenbank 230.
Wahlweise wird die Logtabelle 250 zusammen mit der Quellendatenbank 210 auf
dem Computer 901 implementiert. Dies ist zweckmäßig, aber
nicht erforderlich.
-
Pfeile
zwischen den Kästen
stellen einen zweckmäßigen Signalfluß dar: Die
Anwendung 200 sendet (vgl. die Schritte 405, 406)
Datenbankanweisungen (d. h. Abfrageanweisungen) zu den Datenbanken.
Die Anwendung 200 sendet die Datenbankanweisungen 201 entweder
zu der Datenbank 210 oder sendet Datenbankanweisungen 202 zu
der Datenbank 230. Die Anweisungen 201, 202 weisen
Aktionstypen auf, wie zum Beispiel für Operationen des Einfügens (I),
Löschens
(D), Aktualisierens (U) oder Lesens (R). Die Pfeile sind bidirektional:
Anwendung empfängt
auch Daten (z.B. Lesen). Das Übertragungswerkzeug 260 kommuniziert
mit der Logtabelle 250 und den Datenbanken 210 und 220.
-
Die
Datenbanken 210 und 220 sind physisch verschieden.
Die Quellendatenbank 210 enthält eine Quellentabelle 220 mit
mehreren Einträgen 231/232, wobei
jeder Eintrag 231/232 einen Schlüssel 231 und Inhalt 232 aufweist. Ähnlich enthält die Zieldatenbank 220 die
Zieltabelle 240 mit mehreren Einträgen 241/242,
wobei jeder Eintrag 241/242 einen Schlüssel 241 und
Inhalt 242 aufweist. Im vorliegenden Gebrauch bedeutet
Inhalt die Informationen, die in den Einträgen gespeichert sind, wie etwa
alphanumerische Informationen; die Schlüssel sind Objekte zum logischen
Identifizieren von Inhalt. In beiden Tabellen 230 und 240 werden
die Schlüssel 231 und 241 ferner
durch Zahlen in Klammern (1), (2), (n) ... (N) identifiziert. Außerdem wird
in beiden Tabellen 230 und 240 beispielhafter
Inhalt 232, 242 durch klein geschriebene Buchstabentripel
abgekürzt,
wie zum Beispiel "abc", "def", wobei die Buchstaben
in einer beliebigen Reihenfolge vorliegen.
-
Da
(wie erwähnt)
die Datenbanken verschieden sind, kann auch die Form, in der jede
Datenbank Inhalt speichert, verschieden sein. Zum Beispiel verwendet
die Datenbank 210 Einzelbytecodierung und die Datenbank 220 verwendet
Doppelbytecodierung. Zum Beispiel speichert die Datenbank 210 Inhalt "abc" – eine Kette von drei Zeichen – durch
drei ASCII-Byte. Der Schlüssel
(1) identifiziert die physische Adresse (1) + 0 für Byte 1,
die Adresse (1) + 1 für Byte
2 und (1) + 2 für
Byte 3 . In dem Beispiel speichert die Datenbank 220 denselben
Inhalt durch drei Unicode-Doppelbyte. Der Schlüssel (1) identifiziert die
physische Adresse (1) + 0 für
Byte 1, (1) + 1 für Byte
2 und so weiter bis zu der Adresse (1) + 5 für Byte 6. Regeln zum Ableiten
der Adresse aus dem Schüssel
sind in der Technik wohlbekannt und werden deshalb nicht weiter
erläutert.
Obwohl es zweckmäßig durch
Doppelbytecodierung erläutert
wird, können
Fachleute im allgemeinen auch Mehrbytecodierung verwenden (z.B.
Unicode mit bis zu 6 Byte).
-
Das Übertragungswerkzeug 260 umfaßt Programmanweisungen
zum Ausführen
eines Verfahrens zum Übertragen
von Inhalt 232 von der Quellentabelle 230 in der
Quellendatenbank 210 zu der Zieltabelle 240 in
der Zieldatenbank 220 gemäß der vorliegenden Erfindung.
Die Logtabelle 250 speichert Zwischendaten, wie zum Beispiel
die Schlüsselrepräsentation 254 und
die Aktionstyprepräsentation.
-
3 zeigt
ein vereinfachtes Flußdiagramm des
Verfahrens 400 in Kombination mit der Zeitachse 499.
Die Kästen
veranschaulichen Verfahrensschritte 405, 410, 420 und 430. 3 zeigt
außerdem
den Schritt 406, der dem Verfahren 400 folgt.
Die Achse 499 gibt die Zeitpunkte T1 bis T25 an. Obwohl
die Darstellung Zeitintervalle gleicher Dauer zeigt, sind die Zeitintervalle
für die
vorliegende Erfindung nicht wichtig und können variieren. Horizontale
Gitterlinien von der Achse 499 zu den Schrittkästen zeigen
an, daß bestimmte
Teilschritte im wesentlichen gleichzeitig ausgeführt werden. Zum Beispiel fällt der
Teilschritt I(3)ghi in Schritt 405 mit dem Teilschritt
(3)I in Schritt 410 zusammen. Wahlweise werden parallel weitere
Schritte ausgeführt.
-
Das
Verfahren 400 zum Übertragen
von Inhalt 232 (vgl. 2) aus der
Quellentabelle 230 in der Quellendatenbank 210 zu
der Zieltabelle 240 in der Zieldatenbank 220 (die
Datenbanken 210, 220 sind dabei physisch verschieden)
beginnt, wenn die Unternehmensanwendung 200 aufeinanderfolgend (Schritt 405)
Datenbankanweisungen 201 zu der Quellendatenbank 210 sendet
(d. h. vor der Übertragung).
Wenn das Verfahren 400 beendet ist, sendet die Unternehmensanwendung 200 aufeinanderfolgend
(Schritt 406) Datenbankanweisungen 202 zu der
Zieldatenbank 220 (d. h. nach der Übertragung). In jeder Tabelle 230, 240 besitzt
jeder Eintrag 231/232, 241/242 einen
eindeutigen Schlüssel 231, 241;
die Datenbankanweisungen 201, 202 weisen Aktionstypen 205 auf
(zum Beispiel D, I, R, U). Das Verfahren 400 umfaßt die folgenden
Schritte:
Speichern 410 von Repräsentationen 254, 255 des Aktionstyps 205 (D,
I, U) und des Schlüssels 231 in der
Logtabelle 250 unter der Bedingung, daß der Aktionstyp mit einem
vorbestimmten Aktionstyp (D, I, U) zusammenfällt;
Kopieren 420 von
Einträgen 231/232 der
Quellentabelle 220 in die Zieltabelle 240 (Einträge 241/242); und
Einstellen 430 derjenigen
Einträge
in der Zieltabelle 240, die in der Logtabelle 250 repräsentierte
Schlüssel aufweisen,
gemäß der in
der Logtabelle 250 gespeicherten Aktionstyprepräsentation 255.
-
Vorzugsweise
umfaßt
der Schritt des Kopierens 420 das Umsetzen der Codierung
des Eintrags 231/232 zum Beispiel aus Einzelbytecode
(z.B. ASCII) in den Doppelbytecode (z.B. Unicode).
-
Vorzugsweise
wird der Schritt des Einstellens 420 in einer ersten Einstellperiode
(T16 bis T20) ausgeführt,
während
die Anwendung 200 Datenbankanweisungen 201 sendet,
und in einer zweiten Einstellperiode (T21 bis T24), während die
Anwendung 200 stumm ist.
-
Vorzugsweise
werden die vorbestimmten Aktionstypen aus der folgenden Gruppe ausgewählt: Einfügen (I),
Löschen
(D) und Aktualisieren (U). Vorzugsweise sind die Datenbankanweisungen 201, 202 SQL-Anweisungen.
-
Wahlweise
umfaßt
der Schritt des Einstellens 430 das Einstellen eines ersten
Teils der Quellentabelle 220 mit einem ersten Teil der
Zieltabelle 240 im wesentlichen parallel mit der Einstellung
eines zweiten Teils der Quellentabelle 220 mit einem zweiten
Teil der Zieltabelle. Ähnlich
kann der Kopierschritt 420 das Kopieren eines ersten Teils
der Quellentabelle 220 in einem ersten Teil der Zieltabelle 240 im wesentlichen
parallel mit dem Kopieren eines zweiten Teils der Quellentabelle 220 in
einen zweiten Teil der Zieltabelle umfassen. Einzelheiten werden
in Verbindung mit 9 angegeben.
-
Die
Verfahrensschritte werden nun ausführlicher erläutert. Schritt 405 (Senden
von Datenbankanweisungen) kann zu einem beliebigen Zeitpunkt vor
T1 starten. Die Anwendung 200 sendet die Anweisungen 201 zu
der Quellendatenbank 210 an aufeinanderfolgenden Zeitpunkten
Ti. Der Zweckmäßigkeit
halber sind die Anweisungen 201 mit Aktionstyp 205 und
Schlüssel 231 und
Inhalt 232 dargestellt. Zum Beispiel besitzt die Anweisung 201-1 den
Aktionstyp "I", den Inhalt "abc" und den Schlüssel (1). "D" kürzt "löschen" zur Entfernung des Schlüssels 231 und
des Inhalts 232 ab (in 3 nicht
dargestellt). "I" kürzt "einfügen" zum Erzeugen eines
neuen Eintrags mit Schlüssel 231 und
Inhalt 232 in der Tabelle 230 ab, wie zum Beispiel
die Anweisung 201-1 zum Schreiben von "abc" in
den Schlüssel
(1). "R" kürzt "lesen" zum Zurückgeben
von Inhalt an die Anwendung 200 ab; zum Beispiel gibt die
Anweisung 201-4 den Inhalt "abc" an
dem Schlüssel
(1) zurück. "U" kürzt "aktualisieren" zum Modifizieren
des Inhalts 232 an einen gegebenen Schlüssel ohne Erzeugung eines neuen
Schlüssels
ab; zum Beispiel Schreiben von "bac" an Schlüssel 1 durch
die Anweisung 201-5. Es ist ein Vorteil, daß Schritt 405 zu
einem späten Zeitpunkt
stoppt, nachdem Schritt des Kopierens 420 beendet ist.
Es ist ein Vorteil der vorliegenden Erfindung, daß die Anwendung 200 immer
noch mit der Datenbank 210 und der Tabelle 230 arbeiten
kann.
-
Schritt 410 (Speichern
in der Logtabelle) kann zu einem beliebigen Zeitpunkt starten. wenn
der Aktionstyp der Anweisung 201 mit einem einer vorbestimmten
Gruppe von Aktionstypen übereinstimmt, werden
die Schlüsselrepräsentation 254 und
die Aktionstyprepräsentation 255 in
der Logtabelle 250 gespeichert. Andernfalls bleibt die
Logtabelle 250 unverändert.
Zweckmäßigerweise
ist die Gruppen von Aktionstypen "D", "I" und "U".
Der leichteren Erläuterung
halber ist der Aktionstyp 205 (aus der Anwendung 200)
mit der Aktionstyprepräsentation 254 (zur Logtabelle 250)
identisch, und der Schlüssel 231 (aus
der Anwendung 200) ist mit der Schlüsselrepräsentation 255 (zur
Logtabelle 250) identisch. Die Verwendung der Logtabelle 250 hat
den Vorteil, daß jede Modifikation
des Typs D, I oder U an der Tabelle 230 zurückverfolgt
werden kann, auch wenn die Datenbank 210 nicht ordnungsgemäß arbeitet.
Wenn für
einen bestimmten Schlüssel
die Logtabelle 250 bereits eine Aktionstyprepräsentation
speichert, ersetzt das Übertragungswerkzeug 260 die
alte Repräsentation mit
der neuen.
-
Schritt 420 (Kopieren
ins Ziel) kopiert alles, was sich in der Quellentabelle 230 befindet.
Wahlweise wird die Logtabelle 250 betrachtet und Einträge 231/232,
die kopiert wurden, werden markiert. In dem Beispiel von 3 werden
die Aktionstyprepräsentationen "D", "I" oder "U" durch eine andere Repräsentation,
wie etwa "C", ersetzt. Wahlweise
kann ein Zeitstempel zu der Logtabelle 250 hinzugefügt werden.
Anders ausgedrückt,
wird die Verfügbarkeit
von Einträgen
aus der Logtabelle 250 entfernt, wenn Einträge in der
Zieltabelle 240 (in Verbindung mit den Schritten 420 und 430)
gespeichert wurden. Wie für Fachleute
erkennbar ist, kann das Entfernen der Verfügbarkeit von Einträgen auch
das Löschen
des Eintrags umfassen. Dadurch wird eine falsche Wiederholung des
Kopierschritts 420 vermieden. Dies ist wichtig, um im Fall
einer parallelen Einstellung Dateneinheitlichkeit aufrechtzuerhalten
und um einen erneuten Start des gesamten Prozesses zu erlauben. Es
ist gleichgültig,
ob ein Eintrag in die Zieltabelle 240 kopiert wurde, aber
später
(D, I oder U) in der Quellentabelle 230 modifiziert wird.
Zum Beispiel wird der Inhalt "bac" an dem Schlüssel (1)
der Quellentabelle 230 in den Schlüssel (1) in der Zieltabelle 240 kopiert,
aber später
an demselben Schlüssel
(1) in der Quellentabelle 230 auf "cab" aktualisiert,
das letztendlich in dem Schritt des Einstellens 430 in
die Zieltabelle 240 kopiert wird. Schritt 420 kann
auf Anforderung eines Datenbankadministrators stoppen. Es ist nicht
notwendig, alles von der Quellentabelle 230 zu kopieren,
zum Beispiel umfaßt
zum Stoppzeitpunkt T13 die Quellentabelle 230 einen Eintrag
an dem Schlüssel
(4), der noch nicht kopiert wurde.
-
Vorzugsweise
umfaßt
Schritt 430 (Einstellen), die Aktionstyprepräsentation
durch eine andere Repräsen tation
wie im Schritt 420 (z.B. "C")
zu ersetzen. Schritt 430 (Einstellen) wird vorzugsweise
in zwei Phasen ausgeführt.
In der ersten Phase ist Schritt 410 (Speichern der Logtabelle)
immer noch aktiv, zum Beispiel bis T22. In der zweiten Phase ist Schritt 410 bereits
gesperrt; Einträge
werden direkt aus der Quellentabelle 220 in die Zieltabelle 240 kopiert
(z.B. "pqr" an dem Schlüssel (6)).
-
Wenn
die Logtabelle 250 die Aktionstyprepräsentationen "U" oder "I" zeigt,
umfaßt
Schritt 430 das Kopieren aus der Quellentabelle 230 in
die Zieltabelle 240; wenn die Logtabelle 250 die
Aktionstyprepräsentation "D" zeigt, wird der entsprechende Eintrag
in der Zieltabelle 240 gelöscht (oder das Nichtexistieren
des Eintrags in der Tabelle 240 verifiziert.
-
4–8 zeigen
eine Übersicht über Verfahrensschrittaktionen,
die an aufeinanderfolgenden Zeitpunkten in einem Beispiel stattfinden.
Die linke Spalte entspricht der Achse 499 in 3.
Spalte 405 listet Anweisungen 201, die die Anwendung 200 (Schritt 405)
zu der Quellentabelle sendet, bis das Senden bei T21 aufhört; Spalte 410 listet
Schlüssel- und
Typrepräsentationen,
die in Schritt 410 in die Logtabelle 250 geschrieben
werden, und listet "C", um Repräsentationen
zu entfernen (Schritte 420, 430); die Spalten 420 und 430 zeigen
Schlüssels 241 und
Inhalt 242 an, die bzw. der während der Schritte 420 und 430 in
die Zieltabelle 240 geschrieben werden. Zweckmäßigerweise
bezieht sich 4 auf 5–8,
worin der Status der Tabellen 220, 240 und 250 zu
verschiedenen Zeitpunkten dargestellt ist.
-
Wieder
mit Bezug auf 1–8 wird das Beispiel
für jeden
Zeitpunkt erläutert.
Bezugszahlen werden manchmal der Einfachheit halber ausgelassen.
Vor und nach dem Zeitpunkt T1 sendet die Anwendung 200 Datenbankanweisungen 201 zu
der Quellentabelle 230 in der Quellendatenbank 210 (Schritt 405).
Der einfacheren Erläuterung
halber wird angenommen, daß die
Zieltabelle 240 in der Zieldatenbank 220 und die
Logtabelle 250 zu Anfang (bei T1) als leer angenommen werden.
-
Zum
Zeitpunkt T1 sendet die Anwendung (Schritt 405) die Anweisung 201-1 "I(1)abc" zu der Quellendatenbank,
die (Aktionstyp 205 "I") den Inhalt 232 "abc" an dem Schlüssel 231(1) in
die Quellentabelle einfügt.
-
Zum
Zeitpunkt T2 sendet die Anwendung die Anweisung "I(2)def" zu der Quellendatenbank, die den Inhalt "def" an dem Schlüssel (2)
in die Quellentabelle einfügt.
Obwohl er nur durch zwei Einfügeaktionen
dargestellt ist, ist Schritt 405 die normale Funktionsweise
der Anwendung 200/Datenbank 210 und wird über einen
langen Zeitraum hinweg mit Tausenden von Anweisungen durchgeführt.
-
Zum
Zeitpunkt T3 beginnt der Speicherschritt 410 (Speichern
von Repräsentationen
von Aktionstyp und Schlüssel).
T3 unterliegt vorzugsweise der Diskretion des Datenbankadministrators.
Da der Speicherschritt 410 keinen Einfluß darauf
hat, wie die Anwendung mit der Quellendatenbank kommuniziert, kann
der Speicherschritt zu jedem beliebigen Zeitpunkt starten.
-
Zum
Zeitpunkt T4 sendet die Anwendung die Anweisung "I(3)ghi" zu der Quellendatenbank, die den Inhalt "ghi" an dem Schlüssel (3)
in die Quellentabelle einfügt.
Da der Aktionstyp "I" einer der vorbestimmten
Typen "D", "I" und "U" ist,
werden die Aktionstyprepräsentation 255 "I" und die Schlüsselrepräsentation (3) in der Logtabelle 250 gespeichert (Schritt 410).
Die Tabellen befinden sich nun in dem in 5 dargestellten
Zustand.
-
Zum
Zeitpunkt T5 sendet die Anwendung die Anweisung "R(1)" zu
der Quellendatenbank, die den Inhalt "abc" zurückgibt,
ohne die Quellentabelle zu verändern.
Da der Aktionstyp "R" nicht zu einem der vorbestimmten
Typen gehört,
bleibt die Logtabelle 250 unverändert.
-
Zum
Zeitpunkt T6 sendet die Anwendung die Anweisung "U(1)bac" zu der Quellendatenbank, die den Inhalt
in der Quellentabelle an dem Schlüssel (1) auf "bac" modifiziert. Da
der Aktionstyp "U" einer der vorbestimmten
Typen ist, werden die Aktionstyprepräsentation "U" und
die Schlüsselrepräsentation
(1) in der Logtabelle gespeichert.
-
Zum
Zeitpunkt T7 sendet die Anwendung die Anweisung "I(4)"jkl" zu der Quellendatenbank,
die den Inhalt "jkl" an dem Schlüssel (4)
in die Quellentabelle einfügt.
Da der Aktionstyp "I" zu einem der vorbestimmten
Typen gehört,
werden die Aktionstyprepräsentationen "I" und (4) in der Logtabelle gespeichert.
-
Zum
Zeitpunkt T8 beginnt der Kopierschritt 420. T8 unterliegt
vorzugsweise der Diskretion des Datenbankadministrators, kann aber
im wesentlichen zu jeder beliebigen Zeit starten.
-
Zum
Zeitpunkt T9 kopiert das Übertragungswerkzeug 260 den
Inhalt "bac" an dem Schlüssel (1) aus
der Quellentabelle in die Zieltabelle 240. In der Logtabelle
wird die Repräsentation "U" für
den Schlüssel
(1) auf "C" modifiziert. Das
Modifizieren der Logtabelle 250 durch den Kopierschritt 420 ist
optional. Es ist auch möglich,
die Logtabelle (mit (3)I) unverändert
zu halten, um "ghi" während des
Einstellens in die Zieltabelle zu kopieren. Die Tabellen befinden
sich nun in dem in 6 dargestellten Zustand.
-
Zum
Zeitpunkt T10 kopiert das Übertragungswerkzeug
den Inhalt "def" an dem Schlüssel (2) aus
der Quellentabelle in die Zieltabelle.
-
Zum
Zeitpunkt T11 sendet die Anwendung die Anweisung "U(2)fed" zu der Quellendatenbank, die
den Inhalt der Quellentabelle an dem Schlüssel (2) modifiziert. Da der
Aktionstyp "U" einer der vorbestimmten
Typen ist, werden Repräsentationen "U" und (2) in der Logtabelle gespeichert
(Schritt 410). Bisher bleibt die Zieltabelle mit dem alten
Inhalt "def" an dem Schlüssel (2)
unverändert.
-
Zum
Zeitpunkt T12 kopiert das Übertragungswerkzeug
den Inhalt "ghi" an dem Schlüssel (3) in
die Zieltabelle; außerdem
modifiziert das Übertragungswerkzeug
die Logtabelle durch Ersetzen von "I durch "C" für den Schlüssel (3).
-
Zum
Zeitpunkt T13 hält
der Schritt des Kopierens 420 an. Vorzugsweise unterliegt
T13 dem Ermessen des Datenbankadministrators, es kann aber auch
Automatisierung verwendet werden. Die Zeitpunkte T8 und T13 für den Schritt
des Kopierens 420 werden zweckmäßigerweise für einen
Zeitraum gewählt,
in dem die Anwendung nur einige wenige Anweisungen zu der Quellendatenbank
sendet, wie zum Beispiel am Wochenende. Ein Vorteil der vorliegenden
Erfindung besteht darin, daß Interaktionen von
Anwendung-zu-Datenbank ohne jegliche Einschränkungen erlaubt sind (vgl.
T11).
-
Zum
Zeitpunkt T14 sendet die Anwendung die Anweisung "I(5)mno" zu der Quellendatenbank, die
den Inhalt "mno" an dem Schlüssel (5)
einfügt.
Da der Aktionstyp "I" einer der vorbestimmten
Typen ist, werden die Repräsentationen "I" und (5) in der Logtabelle gespeichert.
Die Situation ist nun dergestalt, daß die Anwendung immer noch
mit der Quellendatenbank kommuni ziert, aber das Kopieren in die
Zieldatenbank (Schritt 420) bereits abgeschlossen ist.
-
Zum
Zeitpunkt T15 sendet die Anwendung die Anweisungen "U(1)cab" zu der Quellendatenbank,
die den Inhalt an dem Schlüssel
(1) modifiziert. Da der Aktionstyp "U" einer
der vorbestimmten Aktionstypen ist, werden die Repräsentationen "U" und (1) in der Logtabelle gespeichert
(Schritt 410). In dem Beispiel wird das "C" an dem Schlüssel (1) durch "U" ersetzt. Die Tabellen befinden sich
nun in dem in 7 dargestellten Zustand.
-
Zum
Zeitpunkt T16 startet der Schritt des Einstellens 430.
-
Zum
Zeitpunkt T17 liest das Übertragungswerkzeug
die Repräsentationen "2" und (4) aus der Logtabelle, kopiert
den Inhalt "jkl" aus der Quellentabelle
an dem Schlüssel
(4) in die Zieltabelle an dem Schlüssel (4) und ersetzt "I" durch "C" in
der Logtabelle.
-
Zum
Zeitpunkt T18 liest das Übertragungswerkzeug
die Repräsentationen "U" und (2) aus der Logtabelle, kopiert
den Inhalt "fed" aus der Quellentabelle
an dem Schlüssel
(2) in die Zieltabelle an dem Schlüssel (2) und ersetzt "U" durch "C" in
der Logtabelle.
-
Zum
Zeitpunkt T19 liest das Übertragungswerkzeug
die Repräsentationen "I" und (5) aus der Logtabelle, kopiert
den Inhalt "mno" aus der Quellentabelle
an dem Schlüssel
(5) in die Zieltabelle an dem Schlüssel (5) und ersetzt "I" durch "C" in
der Logtabelle.
-
Zum
Zeitpunkt T20 sendet die Anwendung die Anweisung "I(6)pqr" zu der Quellendatenbank, die
den Inhalt "pqr" an dem Schlüssel (6)
in die Quellentabelle einfügt.
Da der Aktionstyp "I" einer der vorbestimmten
Typen ist, werden die Repräsentationen "I" und (6) in der Logtabelle gespeichert
(Schritt 410). Ein Vorteil der vorliegenden Erfindung besteht
darin, daß,
während
der Schritt des Einstellens 430 durchgeführt wird,
die Anwendung immer noch Anweisungen zu der Quellendatenbank senden
darf.
-
Zum
Zeitpunkt T21 halten sowohl der Schritt des Sendens 405 als
auch der Schritt des Speicherns 410 an. Das gleichzeitige
Anhalten beider Schritte ist zweckmäßig: Da keine Datenbankanweisungen mehr
von der Anwendung erwartet werden, sind keine Repräsentationen "U", "D" oder "I" zu der Logtabelle hinzuzufügen. Der
Zeitpunkt T21 markiert insofern den Anfang einer kurzen Übergangsperiode,
als der Schritt des Einstellens beendet ist.
-
Zum
Zeitpunkt T22 liest das Übertragungswerkzeug
die Repräsentationen "I" und (6) aus der Logtabelle, kopiert
den Inhalt "pqr" aus der Quellentabelle
an dem Schlüssel
(6) in die Zieltabelle an dem Schlüssel (6) und ersetzt "I" durch "C" in
der Logtabelle (in 3 nicht dargestellt).
-
Zum
Zeitpunkt T23 liest das Übertragungswerkzeug
die Repräsentationen "U" und (1) aus der Logtabelle, kopiert
den Inhalt "cab" aus der Quellentabelle
an dem Schlüssel
(1) in die Zieltabelle an dem Schlüssel (1) und ersetzt "U" durch "C" in
der Logtabelle. In der Zieltabelle wird das existierende "bac" an dem Schlüssel (1) überschrieben.
-
Zum
Zeitpunkt T24 befinden sich die Tabellen nun in dem in 8 dargestellten
Zustand. Das Übertragungswerkzeug
liest, daß nur "C"-Repräsentationen in der Logtabelle übrig sind;
der Schritt des Einstellens hält
an. Das Verfahren 400 für
die Übertragung
von Inhalt aus der Quellendatenbank in die Zieldatenbank ist nun
abgeschlossen.
-
Vom
Zeitpunkt T25 an sendet die Anwendung die Anweisungen zu der Zieldatenbank
(Schritt 406).
-
9 zeigt
ein vereinfachtes Diagramm der Quellentabelle 220 und Zieltabelle 240 mit
dem Einstellschritt 430 in einer weiteren Ausführungsform
der vorliegenden Erfindung. Der erste Teil 238 der Quellentabelle 220 wird
mit dem ersten Teil 248 der Zieltabelle 240 im
wesentlichen parallel eingestellt (431), während der
zweite Teil 239 der Quellentabelle 220 mit dem
zweiten Teil 249 der Zieltabelle 240 eingestellt
wird (432). Wie durch die Bezugszahlen 420 (Kopieren), 421 (Kopieren
des ersten Teils) und 422 (Kopieren des zweiten Teils)
angegeben wird, ist wahlweise auch ein paralleler Betrieb für den Kopierschritt 420 möglich.
-
Fachleute
können
zusätzliche
Schritte einführen,
ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Zum
Beispiel können
exklusive Riegel vorgesehen werden, die verhindern, daß die Datenbank 210 die
Anweisung 210 mit Aktionen "I", "D" oder "U" befolgt,
um die Quellentabelle 230 abzuändern, während das Übertragungswerkzeug 260 einen
Eintrag mit identischem Schlüssel
in der Zieltabelle 240 einstellt. Das Übertragungswerkzeug 260 als
separate funktionale Einheit zu implementieren, ist zweckmäßig, aber
nicht für
die vorliegende Erfindung erforderlich. Da das Übertragungswerkzeug 260 außerdem Anweisungen 201 (z.B.
zur Bereitstellung der Logtabelle 250) auswertet, kann
das Übertragungswerkzeug 260 in
die Anwendung 200 integriert werden.
-
Die
vorliegende Erfindung wird (vgl. 1–3)
als Computerprogrammprodukt 100 zum Übertragen von Inhalt 232 aus
der Quellentabelle 230 in der Quellendatenbank 210 zu
der Zieltabelle 240 in der Zieldatenbank 220,
zusammengefaßt,
wobei die Datenbanken 210, 220 physisch verschieden sind,
wobei vor der Übertragung
die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 201 (SQL-Anweisungen)
zu der Quellendatenbank 210 sendet 405 und wobei
nach der Übertragung
die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 202 zu
der Quellendatenbank 220 sendet 406. In jeder
Tabelle 230, 240 besitzt jeder Eintrag 231/232, 241/242 einen
eindeutigen Schlüssel 231, 241;
die Datenbankanweisungen 201, 202 weisen Aktionstypen 205 (D,
I, R, U) auf. Das Computerprogrammprodukt 100 enthält Anweisungen,
die bewirken, daß der
Prozessor 900 die folgenden Schritte ausführt: Speichern 410 von
Repräsentationen 254, 255 des
Aktionstyps 205 und des Schlüssels 231 in der Logtabelle 250 unter
der Bedingung, daß der
Aktionstyp 205 mit einem vorbestimmten Aktionstyp zusammenfällt; Kopieren 420 von
Einträgen 231/232 der
Quellentabelle 220 in die Zieltabelle 240, wobei
die Codierung des Eintrags umgesetzt wird (Einzelbyte in Mehrbyte,
ASCII in Unicode); und Einstellen 430 derjenigen Einträge in der
Zieltabelle, die in der Logtabelle repräsentierte Schlüssel aufweisen,
gemäß der in
der Logtabelle 250 gespeicherten Aktionstyprepräsentation.
-
Vorzugsweise
bewirken die Anweisungen, daß der
Prozessor 900 das Einstellen aufeinanderfolgend in einer
ersten Einstellperiode (T16 bis T20), während die Anwendung 200 Datenbankanweisungen 201 sendet,
durchführt,
und in einer zweiten Einstellperiode (T21 bis T24), während die
Anwendung 200 stumm ist.
-
Vorzugsweise
(vgl. 9) bewirken die Anweisungen, daß der Prozessor 900 den
Einstellschritt 430 ausführt, indem der erste Teil 238 der
Quellentabelle 230 mit dem ersten Teil 248 der
Zieltabelle 240 im wesentlichen parallel zu der Einstellung 432 des zweiten
Teils 239 der Quellentabelle 220 mit dem zweiten
Teil 249 der Zieltabelle 240 eingestellt wird 431.
-
Die
vorliegende Erfindung wird auch (vgl. 1–3)
als Computersystem 999 zum Übertragen von Inhalt 232 aus
der Quellentabelle 230 in der Quellendatenbank 210 zu
der Zieltabelle 240 in der Zieldatenbank 220 zusammengefaßt, wobei
die Datenbanken 210, 220 physisch verschieden
sind (z.B. Computer 901, 902), wobei vor der Übertragung
die Unternehmensanwendung 200 (z.B. auf den Computer 900)
aufeinanderfolgend Datenbankanweisungen 202 (z.B. SQL-Anweisungen)
zu der Quellendatenbank 210 sendet 405 und wobei
nach der Übertragung
die Unternehmensanwendung 200 aufeinanderfolgend Datenbankanweisungen 202 zu
der Zieldatenbank 220 sendet 406. In jeder Tabelle 230, 240 besitzt
jeder Eintrag 231/232, 241/242 einen
eindeutigen Schlüssel 231, 241;
die Datenbankanweisungen 201, 202 besitzen Aktionstypen 205 (z.B.
D, I, R, U). Das Computersystem 999 enthält ein Übertragungswerkzeug 260 (z.B.
implementiert durch das auf dem Prozessor 900 ablaufende
CPP 100), das folgendes umfaßt: Mittel zum Speichern (z.B.
Speicher 920, vgl. Schritt 410) von Repräsentationen 254, 255 des
Aktionstyps 205 und des Schlüssels 231 in der Logtabelle 250 unter
der Bedingung, daß der
Aktionstyp 205 mit einem vorbestimmten Aktionstyp (D, I,
U) zusammenfällt;
Mittel zum Kopieren (z.B. Netzwerk 990 mit Signalen, vgl.
Schritt 410) von Einträgen 231/232 der
Quellentabelle 220 in die Zieltabelle 240, wobei
die Codierung des Eintrags umgesetzt wird (z.B. von Einzelbytecode
in Mehrbytecode, ASCII in Unicode); und Mittel zum Einstellen (430,
Prozessor 910) derjenigen Einträge in der Zieltabelle 240,
die Schlüssel
aufweisen, die in der Logtabelle 250 repräsentiert
sind gemäß der in
der Logtabelle 250 gespeicherten Aktionstyprepräsentation.
-
Vorzugsweise
führt der
Prozessor 910 das Einstellen aufeinanderfolgend in einer
ersten Einstellperiode (z.B. T16 bis T20) durch, während die Anwendung 200 Datenbankanweisungen 201 sendet,
und in einer zweiten Einstellperiode (z.B. T21 bis T24), während die
Anwendung 200 stumm ist.
-
Vorzugsweise
führt der
Prozessor 910 den Einstellschritt 430 aus, indem
ein erster Teil 238 der Quellentabelle 230 mit
dem ersten Teil 248 der Zieltabelle 240 im wesentlichen
parallel zu der Einstellung 432 des zweiten Teils 239 der
Quellentabelle 220 mit dem zweiten Teil 249 der
Zieltabelle 240 eingestellt wird 431.
-
- 100
- Computerprogrammprodukt
- 200
- Unternehmensanwendung
- 201
- Datenbankanweisungen
- 202
- Datenbankanweisungen
- 210
- Quellendatenbank
- 220
- Zieldatenbank
- 230
- Quellentabelle
- 231(1)
(n) (6)
- Schlüssel
- 231/232
- Einträge
- 232
- Inhalt
- 238,
248
- erster
Teil
- 239,
249
- zweiter
Teil
- 240
- Zieltabelle
- 241(1)
(n) (6)
- Schlüssel
- 241/242
- Einträge
- 242
- Inhalt
- 250
- Logtabelle
- 254
- Schlüsselrepräsentation
- 255
- Aktionstyprepräsentation
- 260
- Übertragungswerkzeug
- 400
- Verfahren
- 405,
406
- Senden
- 410
- Speichern
- 420,
421, 422
- Kopieren
- 430,
431, 432
- Einstellen
- 499
- Achse
- 900,
901, 902
- Computer
- 910–980
- Prozessor,
Speicher, Bus, Eingang, Ausgang, Schnittstelle, Signal
- 999
- Computersystem