-
Die
vorliegende Erfindung betrifft ein Verfahren zum automatisierten
Vergleichen wenigstens zweier Datenbanken.
-
Unter
einer Datenbank wird im Lichte der vorliegenden Beschreibung generell
ein Datenspeicher verstanden.
-
Als
Datenbankobjekt wird ein Objekt verstanden, das innerhalb einer
Datenbank gespeichert wird. Datenbankobjekte stellen das Gerüst zur Speicherung
und Abfrage von Daten der Datenbank dar. Beispiele von Datenbankobjekten
sind unter anderem Tabellen, Views, Makros, Indexe, Synonyme, Funktionen
und dergleichen.
-
Eine
Vereinigungsmenge ist die Menge aller einzelnen Datenbankobjekte,
die in mindestens einer der zu vergleichenden Datenbanken enthalten
sind.
-
Ein
Datenbankobjekt besteht aus mindestens einem Attribut. In der Regel
sind jedoch mehrere Attribute in einem Datenbankobjekt enthalten.
Unter einem Datenbankobjekt-Attribut wird generell die Zuordnung
eines Merkmals zu einem konkreten Datenbankobjekt verstanden. Ein
Attribut definiert und beschreibt das Datenbankobjekt. Zu einem
Attribut gehört
weiterhin wenigstens ein ihm zugeordneter Wert, der als Attributwert
bezeichnet wird.
-
Bei
einer ODBC-Schnittstelle (ODBC = Open Database Connectivity) handelt
es sich um eine standardisierte Datenbankschnittstelle, die SQL
(SQL = Standard Query Language) als Datenbanksprache verwendet.
SQL ist eine Abfragesprache für
relationale Datenbanken, die in Form von standardisierten Befehlen
eine Datenabfrage über
verschiedene Plattformen hinweg ermöglicht. Durch eine ODBC-Schnittstelle können Anwendungen
unabhängig vom
verwendeten Datenbankmanagementsystem (DBMS) entwickelt werden,
wenn ein entsprechender ODBC-Treiber vorhanden ist. Mit ODBC-Schnittstellen
kann auf lokale oder externe Datenbanken zugegriffen werden.
-
Bei
einem Datenbanksystem (DBS) handelt es sich um ein System zur elektronischen
Datenverwaltung. Ein Datenbanksystem besteht aus zwei Grundkomponenten.
Bei einer ersten Grundkomponente handelt es sich um das Datenbankmanagementsystem
(DBMS), der eigentlichen Verwaltungssoftware. Die zweite Grundkomponente
stellt eine Datenbank dar, dem eigentlichen Datenspeicher.
-
Unter
einer relationalen Datenbank wird allgemein ein Datenbanksystem
verstanden, bei dem die Datenbankobjekte in zweidimensionaler Tabellenform
dargestellt sind. Die Beziehungen ergeben sich aus den jeweiligen
Werten der Tabellenspalten.
-
Softwareentwickler
müssen
häufig
Datenbanken miteinander vergleichen, um sicherzustellen, dass diese
die gleiche Struktur haben. Dies ist z.B. bei Beginn eines Softwaretests
notwendig.
-
Es
existieren Verfahren die Datenbanken miteinander vergleichen. Diese
Verfahren können
jedoch nur Datenbanken gleicher Datenbankmanagementsysteme vergleichen.
So existieren verschiedene Lösungen
von verschiedenen Anbietern, wie „Atanasoft", „DbUpdater", „RedGate" oder „SQLExaminer", die Datenbanken
gleicher Datenbankmanagementsysteme vergleichen können. Alle
diese Lösungen
beschränken
sich auf ein bestimmtes relationales Datenbankmanagementsystem (RDBMS).
So beschränkt
sich beispielsweise „Atanasoft" auf NCR Teradata, „RedGate", „DbUpdater" sowie „SQLExaminer" auf einen Microsoft
SQL Server bzw. auf Microsoft Access.
-
Aus
der
US 6,169,985 B1 ist
eine Methode und eine Vorrichtung zur Bestimmung einer Reihe von
Datenbankeinträgen
bekannt. Es wird ein Verfahren zur Bestimmung einer Teilmenge von
Einträgen
in einer Datenbank eines Computersystems beschrieben. Dabei wird
die Teilmenge durch eine Abfrage festgelegt. Die Anfragen werden
aufbereitet, um im wesentlichen ein oder mehr Probleme, die sich auf ähnliche
Dinge beziehen, auszuschließen.
Bei dieser Methode werden ebenfalls nur Datenbanken gleicher Datenbankmanagementsysteme
verglichen.
-
In
der
DE 102 40 940
A1 wird ein Computersystem beschrieben, durch das die Auswahl
eines Körpers
aus einer vorgegebenen Menge von Körpern nach Eigenschaften der
Körper
ermöglicht
wird. Zum Vergleichen der Körper
stehen in einer Datenbank entsprechende Referenzkörper zu
Verfügung. Über Algorithmen
wird der gesuchte Körper
einer Gruppen von Referenzkörpern
aus der Datenbank zugeordnet, und damit werden dem Körper entsprechende Attribute
zugewiesen, die diesen Referenzkörpern zukommen.
Auch hier findet nur ein Vergleich von Daten in einer Datenbank
eines Datenbankmanagementsystems statt.
-
Aufgabe
der vorliegenden Erfindung ist es, ein Verfahren zum automatisierten
Vergleichen wenigstens zweier Datenbanken zu schaffen, durch das neben
Datenbanken gleicher Datenbankmanagementsysteme auch Datenbanken,
insbesondere relationale Datenbanken, verschiedener Datenbankmanagementsysteme
miteinander vergleichbar sind. Ferner soll das Verfahren Datenbanken
vergleichen können,
die auf gleichen Rechnen und auch unterschiedlichen Rechnern gespeichert
sind.
-
Diese
Aufgabe wird durch ein Verfahren zum automatisierten Vergleichen
wenigstens zweier Datenbanken mit den Merkmalen gemäß Patentanspruch
1 gelöst.
Weitere Vorteile, Merkmale, Details, Aspekte und Effekte der Erfindung
ergeben sich aus den Unteransprüchen,
der Zeichnung sowie der nachfolgenden Beschreibung.
-
Die
Aufgabe wird gelöst
durch ein Verfahren zum automatisierten Vergleichen wenigstens zweier Datenbanken,
welches durch folgende Schritte gekennzeichnet ist:
- a) Bestimmung der in den Datenbanken enthaltenen Datenbankobjekte
mittels einer gleichartig für die
Datenbanken definierten Datenbankschnittstelle;
- b) Bilden einer Vereinigungsmenge aller Datenbankobjekte der
Datenbanken;
- c) Vergleichen von zumindest Bestandteilen aller Datenbankobjekte
innerhalb der Vereinigungsmenge auf Übereinstimmungen anhand definierter
Vergleichsparameter;
- d) Bilden einer Schnittmenge aus übereinstimmenden sowie einer
Restmenge aus nicht übereinstimmenden
Datenbankobjekten beziehungsweise Bestandteilen von Datenbankobjekten;
- e) Kennzeichnung der in der Schnittmenge und/oder in der Restmenge
befindlichen Datenbankobjekte beziehungsweise Bestandteile von Datenbankobjekten;
und
- f) Initiieren der Darstellung der gekennzeichneten Datenbankobjekte
beziehungsweise Bestandteile von Datenbankobjekten zur Anzeige auf
einer Anzeigeeinrichtung.
-
In
einem ersten Schritt des Verfahrens zum automatisierten Vergleichen
wenigstens zweier Datenbanken werden die in den Datenbanken enthaltenen
Datenbankobjekte mittels einer gleichartig für die Datenbanken definierten
Datenbankschnittstelle bestimmt. Die Datenbankschnittstelle stellt
eine Programmierschnittstelle für
Datenbanken dar, d.h. ein Programmierer kann durch den Einsatz der
Datenbankschnittstelle eine Anwendung unabhängig von der verwendeten Datenbank
entwickeln. Die Datenbankschnittstelle arbeitet unabhängig von
dem verwendeten Betriebssystem und von der verwendeten Programmiersprache. Über die
Datenbankschnittstelle erfolgt ein Zugriff auf die Datenbanken bzw.
auf die Datenbankobjekte der Datenbanken.
-
In
einem nächsten
Verfahrensschritt wird eine Vereinigungsmenge aller Datenbankobjekte
der Datenbanken gebildet. D.h., es werden alle Datenbankobjekte,
die in mindestens einer der zu vergleichenden Datenbanken enthalten
sind, in die Vereinigungsmenge aufgenommen. Das Bilden der Vereinigungsmenge
kann automatisch erfolgen.
-
In
einem weiteren Schritt werden die Datenbankobjekte bzw. zumindest
Bestandteile aller Datenbankobjekte innerhalb der Vereinigungsmenge auf Übereinstimmungen
anhand definierter Vergleichsparameter verglichen. Das Vergleichen
kann automatisch erfolgen. Ein definierter Vergleichsparameter kann
beispielsweise ein Name eines Datenbankobjektes, wie einer Tabelle,
eine View (View = virtuelle Tabelle), ein Makro, etc., sein.
-
In
einem nächsten
Schritt werden eine Schnittmenge aus übereinstimmenden sowie eine Restmenge
aus nicht übereinstimmenden
Datenbankobjekten beziehungsweise Bestandteilen von Datenbankobjekten
gebildet. In diesem Schritt wird die Vereinigungsmenge in zwei Teile
aufgeteilt. Dieser Schritt erfolgt bevorzugt automatisch.
-
Ferner
werden die in der Schnittmenge und/oder in der Restmenge befindlichen
Datenbankobjekte beziehungsweise Bestandteile von Datenbankobjekten
gekennzeichnet. Dabei erfolgt die Kennzeichnung derart, dass die
in der Schnittmenge befindlichen Datenbankobjekte anders gekennzeichnet
werden, als die Datenbankobjekte der Restmenge. In einem letzten
Verfahrensschritt erfolgt eine Initiierung der Darstellung der gekennzeichneten
Datenbankobjekte beziehungsweise der Bestandteile von Datenbankobjekten
zur Anzeige auf einer Anzeigeeinrichtung. Als Anzeigeeinrichtung
kann dabei ein Display eines elektronischen Geräts, insbesondere ein Monitor
eines Computers, dienen.
-
Ein
derartiges Verfahren zum automatisierten Vergleichen wenigstens
zweier Datenbanken ermöglicht
den Vergleich von Datenbanken unterschiedlicher Datenbankmanagementsysteme.
Ferner können
Datenbanken, die auf unterschiedlichen Rechnern gespeichert sind,
miteinander verglichen werden. Durch die Darstellung der gekennzeichneten Datenbankobjekte
kann ein Programmierer einfach und schnell erkennen, inwieweit die
Datenbanken bzw. die Datenbankobjekte übereinstimmen. Durch die unterschiedliche
Kennzeichnung der Datenbankobjekte der Schnittmenge und der Datenbankobjekte der
Restmenge erkennt ein Nutzer, der den Vergleich durchführt, sofort,
ob und inwieweit die Datenbanken bzw. die Datenbankobjekte verglichen
werden können.
-
Das
erfindungsgemäße Verfahren
zum automatisierten Vergleichen wenigstens zweier Datenbanken ist
insbesondere auf relationale Datenbanken anwendbar.
-
Bevorzugt
ist ein Verfahren, bei dem die in der Schnittmenge ermittelten Datenbankobjekte
beziehungsweise Bestandteile von Datenbankobjekten in einem weiteren
Schritt auf Übereinstimmungen hinsichtlich
der Datenbankobjekt-Attribute verglichen werden, wobei ermittelte übereinstimmende
Datenbank-Attribute gekennzeichnet und die gekennzeichneten Datenbank-Attribute
auf der Anzeigeeinrichtung dargestellt werden.
-
Ein
Datenbankobjekt besteht aus mindestens einem Attribut, wobei in
der Regel jedoch mehrere Attribute in einem Datenbankobjekt enthalten sind.
Ein Attribut definiert und beschreibt das Datenbankobjekt.
-
Die
in einer relationalen Datenbank abzubildenden Sachverhalte sind
in der Regel in Eigenschaftsgruppen (Entitäten) gegliedert, wobei jede Ausprägung einer
jeden Entität
mit jeder anderen Ausprägung
dieser oder einer anderen Entität
in Beziehung stehen kann, d.h. jeder Datensatz mit jedem anderen
Datensatz verknüpft
sein kann. Ein relationales Datenbankmanagementsysteme ist physisch in
einer Tabellenform realisiert. Jede Tabelle repräsentiert eine Entität, jede
Zeile (auch "Tupel" genannt) eine Ausprägung der
Entität,
jede Spalte eine Eigenschaft ("Attribut").
-
Vorteilhaft
ist ein Verfahren, bei dem die Kennzeichnung der Datenbankobjekte
beziehungsweise der Bestandteile von Datenbankobjekten und/oder
von Datenbankobjekt-Attributen durch Zuordnung graphischer Elemente,
insbesondere durch eine farbliche Darstellung, erfolgt. Durch die
Zuordnung graphischer Elemente zu den Datenbankobjekten bzw. zu
Datenbankobjekt-Attributen ist eine Datenbank sehr einfach strukturierbar
und damit einfach vergleichbar mit einer anderen Datenbank. Die
unterschiedlichen Datenbankobjekte und Datenbankobjekt-Attribute
können
jeweils unterschiedlich graphisch dargestellt werden. So können Datenbankobjekt-Attribute
mit der Eigenschaft „X" anders graphisch
gekennzeichnet werden, als Datenbankobjekt-Attribute mit der Eigenschaft „Y". Für jede Eigenschaft,
d.h. für
jedes Attribut, und für
jedes Datenbankobjekt kann eine andere graphische Kennzeichnung vorgesehen
sein.
-
Bevorzugt
ist des Weiteren ein Verfahren, bei dem bei Übereinstimmung von in der Schnittmenge ermittelten
Datenbankobjekten beziehungsweise Bestandteilen von Datenbankobjekten
und Datenbankobjekt-Attributen diese durch eine erste farbliche Markierung,
insbesondere eine grüne
Markierung, dargestellt werden. Durch eine farbliche Markierung kann
besonders einfach und schnell erkannt werden, welche Datenbankobjekte
bei zumindest zwei zu vergleichenden Datenbanken übereinstimmen,
d.h. in der Schnittmenge liegen, und welche in der Restmenge sind.
Ein Programmierer erhält
somit einen einfachen Überblick über die
Struktur der zumindest beiden verglichenen Datenbanken. Besonders
vorteilhaft ist es, wenn die Übereinstimmenden
Datenbankobjekte bzw. die übereinstimmenden
Datenbankobjekt-Attribute grün
markiert werden. Sind die Mehrzahl der Datenbankobjekte grün markiert
auf der Anzeigeeinrichtung dargestellt, so kann ein Programmierer
schnell Rückschlüsse hinsichtlich
der Vergleichbarkeit der Datenbanken ziehen. Hierdurch lassen sich
Datenbanken unterschiedlicher Datenbankmanagementsysteme besonders
einfach und schnell vergleichen. Eine überwiegend grüne Darstellung
der Datenbankobjekte bzw. der Datenbankobjekt-Attribute lässt darauf schließen, dass
die Datenbankstrukturen der beiden verglichenen Datenbanken der
unterschiedlichen Datenbankmanagementsysteme sehr ähnlich sind.
-
Es
ist ferner vorteilhaft eine Unterscheidungsmöglichkeit zwischen übereinstimmenden
Datenbankobjekten mit gleichen Datenbankobjekt-Attributen und übereinstimmenden
Datenbankobjekten mit unterschiedlichen Datenbankobjekt-Attributen zu haben.
Dies kann erreicht werden, indem bei Übereinstimmung von in der Schnittmenge
ermittelten Datenbankobjekten beziehungsweise Bestandteilen von
Datenbankobjekten und Nicht-Übereinstimmung der
Datenbankobjekt-Attribute diese durch eine zweite farbliche Markierung,
insbesondere eine gelbe Markierung, dargestellt werden. Ferner ist
ein Verfahren bevorzugt, bei dem die in der Restmenge befindlichen
Datenbankobjekte beziehungsweise Bestandteile von Datenbankobjekten
durch eine dritte farbliche Markierung, insbesondere eine rote Markierung, dargestellt
werden. Durch die unterschiedliche farbliche Markierung können die
Datenbankstrukturen besonders einfach verglichen werden. Bei der
Farbauswahl kann natürlich
auch jede andere Farbe verwendet werden. Durch die unterschiedliche
graphische Anzeige, insbesondere durch die Ampelfarben, wird ein
sehr gute Übersichtlichkeit
hinsichtlich der Vergleichbarkeit zumindest zweier Datenbanken geschaffen.
-
Ein
Verfahren zum automatisierten Vergleichen wenigstens zweier Datenbanken,
bei dem der automatische Vergleich von zumindest Bestandteilen aller
Datenbankobjekte innerhalb der Vereinigungsmenge auf Übereinstimmungen
anhand von Namen erfolgt, ist besonders einfach durchführbar.
-
Ferner
ist ein erfindungsgemäßes Verfahren bevorzugt,
bei dem die Bestimmung der in den Datenbanken enthaltenen Datenbankobjekte
insbesondere mittels einer ODBC-Schnittstelle erfolgt. Durch die
Verwendung dieser standardisierten Datenbankschnittstelle ist ein
Vergleich zumindest zweier Datenbanken, insbesondere Datenbanken
unterschiedlicher Datenbankmanagementsysteme, besonders einfach
durchführbar.
Dies wird erreicht durch die verwendete Datenbanksprache SQL. SQL
ermöglicht
durch standardisierte Befehle eine Datenabfrage über verschiedene Plattformen
bzw. Datenbankmanagementsysteme hinweg. Durch eine ODBC-Schnittstelle
können
Datenbankobjekte unabhängig
vom verwendeten Datenbankmanagementsystem (DBMS) verglichen werden,
wenn ein entsprechender ODBC-Treiber vorhanden ist. Mit ODBC-Schnittstellen
kann auf lokale oder externe Datenbanken zugegriffen werden. Ein
Zugriff auf die Datenbanken direkt ist hierbei gar nicht erforderlich.
Es wird nur auf die in der ODBC-Schnittstelle
implementierten Funktionen zugegriffen. Dass diese Funktionen de facto
auf die Datenbank zugreifen, ist unerheblich. Es findet also kein
expliziter Zugriff auf die Datenbank statt.
-
Durch
das zuvor beschriebene Verfahren können zwei oder mehr als zwei
Datenbanken unterschiedlicher Datenbanksysteme verglichen werden. Insbesondere
relationale Datenbanken sind einfach und schnell vergleichbar. Ferner
können
durch ein derartiges Verfahren wenigstens zwei Datenbanken verglichen
werden, die auf unterschiedlichen Rechnereinheiten implementiert
sind. Das Verfahren ermöglicht
eine einfache strukturierte Darstellung gemeinsamer Datenbankobjekte
unterschiedlicher Datenbanken, insbesondere von relationalen Datenbanken
unterschiedlicher Datenbankmanagementsysteme.
-
Die
Erfindung wird nun anhand eines Ausführungsbeispiels unter Bezugnahme
auf die beiliegende Zeichnung näher
erläutert.
Dabei zeigt:
-
1 einen
schematischen Vergleich zweier Datenbanken.
-
In
der 1 sind schematisch zwei Datenbanken 1, 2 dargestellt.
Die Datenbank 1 und die Datenbank 2 weisen jeweils
eine Vielzahl von Datenbankobjekten bzw. eine Vielzahl von Datenbankobjekt-Attributen
auf. Die Menge der Datenbankobjekte ist bei der Datenbank 1 durch
die gestrichelten Linien 3 und bei der Datenbank 2 durch
die gestrichelten Linien 4 dargestellt. Die Schnittmenge 5 beider
Datenbankobjekte 3, 4 wird bei Durchführung des
erfindungsgemäßen Verfahrens
graphisch anders dargestellt, als die Restmengen, beider Datenbanken 1, 2. So
kann bei dem Verfahren zum automatisierten Vergleichen der beiden
Datenbanken 1, 2 die Restmenge „rot" gekennzeichnet werden.
Innerhalb der Schnittmenge 5 kann nochmals unterschieden
werden. Stimmen Datenbankobjekte überein, aber die Datenbankobjekt-Attribute
nicht, so kann dies durch die Farbe „gelb" dargestellt werden. Bei Übereinstimmung
der Datenbankobjekte und der Datenbankobjekt-Attribute wird dies „grün" gekennzeichnet. Durch diese farbliche
Kennzeichnung kann sehr einfach und schnell ein Vergleich der Strukturen
der beiden Datenbanken 1, 2 erfolgen.