Datenbanken vergleichen!

resixteen

Neuer Benutzer
Beiträge
4
Hallo,
Ich bin neu und habe hier mein Thema nicht gefunden.
Was ich suche ist ein Programm, das unter Winows läuft, nichts kostet, mit Oracle arbeiten kann und entweder Skript execution beherrscht oder commandline.
Meine Geschichte:

Ich habe eine Datenbank auf die ein veralteter Client liest und schreibt.
Jetzt aber gibt es eine neuen Clienten.


Die Idee:
Einfach den Alten Clienten über Bord schmeißen, neuen Clienten benutzen.

Problem:

Ich weiß nicht, ob der neue Client kompatibel mit den Daten vom alten Clienten ist.


Lösung:
Ein Programm, dass Daten vergleicht die vom alten Clienten unter gleichen Eingaben auch vom neuen Clienten erstellt wurden. Und letztlich ein Ergebnis liefert.
Das alles muss automatisierbar sein, mit zum Beispiel Skript execution oder Commandline.


Ich arbeite derzeit die „Database Comparer Liste“ von Wikipedia durch aber finde noch kein Programm das alle Voraussetzungen erfüllt.

Ich hoffe unter euch jemanden zu finden, der mir zu Helfen weiß.


Viele Grüße - Resixteen
 
Werbung:
Also wenn ich das richtig verstehe hast du den Client von Anwendung A, Hersteller A der eine Oracle Datenbank benutzt hat durch einen völlig anderen Client von Anwendung B, Hersteller B ersetzt oder möchtest das zumindest tun, und die Oracle Datenbank soll bestehen bleiben? Order geht es hier um 2 Clients der selben Anwendung?

Normalerweise besitzt jede Anwendung, egal welche Datenbank sie benutzt irgendwo auch ihre eigene Tabellenstruktur. Die folgt zwar hoffentlich gewissen Standards was aber nicht automatisch heißt das die Daten gleich abgelegt sein müssen. Deswegen wirst du auch kein Programm finden was mal eben die Daten aus der Struktur A mit denen aus Struktur B sinnvoll vergleicht bzw. konvertiert. Das müsste dann schon explizit für diesen Zweck entwickelt worden sein. Also z.B. Outlook Daten sollen nach Firebird übergeben werden, dafür gibt es Konverter (auch wenn die jetzt nichts mit SQL DBs zu tun haben, dennoch ähnliches Prinzip).
 
Ein ganz großes Dankeschön für die schnelle Antwort !!

Bitte entschuldige, wenn ich dieses Wissen hätte haben sollen, um besser definieren zu können, worin mein Problem liegt. Aber ich wüsste nicht, wieso zwischen Client und Datenbank eine Anwendung von Nöten ist oder existiert?

Ich dachte, das der Client schon eine Art Zugriff auf die Datenbank hat, welcher über eine Maske vom Kunden beantragt wird.


Nichtsdestotrotz wird es letztlich nicht so sein, dass dabei ein und dieselbe Anwendung gebraucht wird.
Es gibt schon Programme wie Aqua Data Studio, die Tabellen und oder Daten vergleichen.


Ich vermute mal, dass das Datenbankschema beim neuen Client beibehalten wurde, ansonsten ergebe es keinen Sinn zu versuchen beide Tabellen zu vergleichen.
 
[...] ich wüsste nicht, wieso zwischen Client und Datenbank eine Anwendung von Nöten ist oder existiert?

Ich dachte, das der Client schon eine Art Zugriff auf die Datenbank hat, welcher über eine Maske vom Kunden beantragt wird.
Ich meinte nicht das eine Anwendung zwischen Client und DB steht, der Client spricht schon direkt mit der DB.

Wenn du allerdings eine Anwendung (oder den Client einer Anwendung) durch eine andere ersetzt ist die Frage ob diese beide mit der selben Datenstruktur arbeiten, was ich für extrem unwarscheinlich halte. Sogesehen müssen die Daten nunmal sinnvoll konvertiert werden wofür es keinen Automatismus gibt, es sei denn es gibt speziell für diesen Zweck eine Software, idealerweise vom Hersteller der Client-Anwendungen.

Nichtsdestotrotz wird es letztlich nicht so sein, dass dabei ein und dieselbe Anwendung gebraucht wird.
Es gibt schon Programme wie Aqua Data Studio, die Tabellen und oder Daten vergleichen.


Ich vermute mal, dass das Datenbankschema beim neuen Client beibehalten wurde, ansonsten ergebe es keinen Sinn zu versuchen beide Tabellen zu vergleichen.
Wir reden hier über den Wechsel von einem Programm auf ein Anderes. Das ist sehr abstrakt, in etwa so als ob ich sagen würde ich habe ein neues Auto, wie baue ich den Motor von dem Alten in das Neue. Die Schrauben sind an einer anderen Stelle und der Auspuff auf der anderen Seite.

Kannst du die beiden Programme mal bennen oder zumindest sagen um welche Art von Client es hier geht?
 
Ein ganz großes Dankeschön für die schnelle Antwort !!

Bitte entschuldige, wenn ich dieses Wissen hätte haben sollen, um besser definieren zu können, worin mein Problem liegt. Aber ich wüsste nicht, wieso zwischen Client und Datenbank eine Anwendung von Nöten ist oder existiert?

Ich dachte, das der Client schon eine Art Zugriff auf die Datenbank hat, welcher über eine Maske vom Kunden beantragt wird.

Mir scheint, Dir ist das Prinzip einer Client-Server-Architektur doch noch etwas fremd...

Nichtsdestotrotz wird es letztlich nicht so sein, dass dabei ein und dieselbe Anwendung gebraucht wird.
Es gibt schon Programme wie Aqua Data Studio, die Tabellen und oder Daten vergleichen.

Nach dem, was Du schreibst, wechselst Du den Client. Oder hast das zumindest vor.

Tabellen und Daten sind aber auf dem Server. Dieser ändert sich nicht. Was willst Du also vergleichen? Etwas mit sich selbst? Das wird IMMER gleich sein.

Ich vermute mal, dass das Datenbankschema beim neuen Client beibehalten wurde, ansonsten ergebe es keinen Sinn zu versuchen beide Tabellen zu vergleichen.

Stelle Dir Deinen DB-Server als Raumstation ISS vor. Diese hat Andockstutzen. Du hast nun eine alte Kapsel, die dran anlegen kann und dafür passende Stutzen hat. Halt so eine Sojus-Kapsel. Eng, unbequem, Du weiß, was ich meine. Dein neuer Client ist eine neue Kapsel,
z.B. da das Dingens da von der privaten Firma, Space-X oder wie die heißen. Die ist innen schön bunt und hat Flachbildschirme, daher willst Du diese jetzt nehmen. Wichtig ist aber, daß die Andockstutzen passen, damit Du überhaupt andocken kannst und von Deiner Kapsel in die ISS wechseln kannst.
Du hast also zu prüfen, ob der neue Client dieselben Möglichkeiten bietet, die DB zu nutzen wieder der alte Client. An den Daten selber (Tabellen etc.) ändert sich nix, ist ja immer noch die ISS. Und so wie Deine Kapsel eigentlich nur ein Hilfsmittel ist, zur ISS zu fliegen, ist der Client nur ein Hilfsmittel, mit der DB zu reden.

Schalten Sie auch nächste Wocher wieder zur nächsten Maus-Sendung ein!
 
Ja das stimmt, ich bin dabei zu lernen, wie all das mit den Datenbanken funktioniert, innerhalb so wie außerhalb. Aber das kann ich nur nebenher machen, die Lösung meines Problems hat eine höhere Priorität.

Danke für die unterhaltsame Geschichte mit Lernwirkung. Mir wurde das etwas anders geschildert.


Sagen wir mal „irgendwie“ gelangen Daten auf die eine Datenbank. (über Programm, Client, Webseite?)


Diese werden dort gesichert und sind abrufbar, veränderbar etc.



Wir haben ein ALTES-Irgendwie, dass auf die Datenbank Daten ablegt/abspeichert/abliefert, wie auch immer dieser Vorgang genannt wird.
(In deiner Geschichte sind das Personen).

Und ein NEUES-Irgendwie, dass zum Einsatz kommen soll.
Die Datenbank bleibt die selbe, die Daten (Personen) darauf ebenfalls.
Und das NEUE-Irgendwie kann auf die Datenbank zugreifen (In deiner Geschichte: es hat die richtigen Andockstutzen).


Die Frage ist, kann das NEUE-Irgendwie mit den Daten (in deiner Geschichte: Personen) vom ALTEN-Irgendwie arbeiten ? Ohne, dass eventuell irgendetwas fehlt beim Abrufen, wie zBsp. Ein Buchstabe oder sonst was.

Und kann das ALTE-Irgendwiedann mit den zuvor vom NEUEN-Irgendwie benutzten Daten (Personen) weiterarbeiten ohne das dann da was fehlt?




Darum der Test:

ALTES-Irgendwie erstellt/erzeugt Daten auf der Datenbank mit meinetwegen „Name, Vorname, Wohnort, ID (Primärschlüssel) etc.“ und das NEUE-Irgendwie tut genau das selbe „Name, Vorname, Wohnort, ID (Pirmärschlüssel) etc.“ auf die selbe Datenbank.
Nun ein Programm, dass die beiden erstellten Daten vergleicht und unterschiede aufzeigt, sofern welche Vorhanden.

Damit wir schlussendlich gewährleisten können, dass ein problemloser Umstieg vom ALTEN-Irgendwie zum NEUEN-Irgendwie möglich ist, ohne dass die Datenbank oder die Daten darauf angerührt werden müssen.
 
Darum der Test:

ALTES-Irgendwie erstellt/erzeugt Daten auf der Datenbank mit meinetwegen „Name, Vorname, Wohnort, ID (Primärschlüssel) etc.“ und das NEUE-Irgendwie tut genau das selbe „Name, Vorname, Wohnort, ID (Pirmärschlüssel) etc.“ auf die selbe Datenbank.
Nun ein Programm, dass die beiden erstellten Daten vergleicht und unterschiede aufzeigt, sofern welche Vorhanden.

Damit wir schlussendlich gewährleisten können, dass ein problemloser Umstieg vom ALTEN-Irgendwie zum NEUEN-Irgendwie möglich ist, ohne dass die Datenbank oder die Daten darauf angerührt werden müssen.


Schwer zu prüfen.

Stell dir vor, die Datenbank erlaubt Namen mit einer Länge von 40 Zeichen. Deine alte Anwendung auch. Die neue zeigt aber nur 39 Zeichen an. In der DB stehen nun 100 Namen, davon einer mit 40 Zeichen. Das und sehr viel mehr kann schiefgehen.
 
Wenn die Struktur der Daten „Name, Vorname, Wohnort, ID (Pirmärschlüssel) etc.“ (desweiteren Datentypen, Tabellennamen, etc.) die selbe ist die beide Clients erzeugen dann kann der neue Client nahtlos auf dem System weiter arbeiten.

Du kannst nicht erkennen, welche Daten von welchem Client geschrieben / verändert wurden es sei denn, die Clients fügen diese Information dem Datensatz hinzu. (z.B. bei einem Datensatz „Name, Vorname, Wohnort, ID, Name_des_Client_Systems, letzte_Aktion_des_Clients, alter_Wert, neuer_Wert, etc.“. Wenn diese Information der Datenbank mitgeben wird, und auch die Information was der Client getan hat sowie der ursprüngliche Zustand bzw. welche Änderung durchgeführt wurde, dann läßt sich das vergleichen.

Das geht auf verschiedene Arten und läßt sich dann unterscheidlich einfach auswerten / vergleichen aber die Information was wann passiert ist muss erstmal irgendwo dokumentiert werden. Dafür gibt es keinen Automatismus.
 
Werbung:
Okay, auf jedenfall vielen vielen Dank, dass ihr so rücksichtsvoll auf mich eingegangen seid :)

Die Frage wurde zwar nicht beantwortet, aber ich benötige sie nicht mehr. Werde mich zunächst in die Grundlagen von Datenbanken vertiefen!

Noch einmal Danke!
 
Zurück
Oben