Wie konvertiert man ein bestehendes relationales Datenbankmodell in ein Modell, das für eine no-sql Datenbank geeignet ist (wie Mongo DB oder Amazon Dynamo DB)

9

Ich möchte eine bestehende Java-Einkaufswagen-App so modifizieren, dass sie mit einer Nosql-Datenbank wie Amazon Dynamo DB oder Mongo DB funktioniert ... Aber die traditionelle MySQL-Datenbank ist eine relationale Datenbank - sie hat zusammengesetzte Schlüssel / Primär- / Fremdschlüssel - Im Gegensatz dazu gibt es in Amazon Dynamo DB entweder einen einzelnen Primärschlüssel oder einen zusammengesetzten Primärschlüssel, der aus 2 Feldern besteht ...

Ich habe das detaillierte Datenmodell der relationalen Datenbank ... Nun, wie gehe ich vor, um es zu konvertieren, so dass ich eine Datenbank in Amazon Dynamo DB habe, die die App mit Dynamo DB arbeiten kann (dh keine Sql-Datenbank) ) Gibt es Best Practices / Vorsichtsmaßnahmen, die dabei zu beachten sind? Wird es viel Arbeit erfordern, den Anwendungscode neu zu schreiben? Oder kann ich alle Änderungen auf Datenbankebene selbst vornehmen, ohne die Logik der App zu ändern? Gibt es auch ein Werkzeug, das den größten Teil dieser Arbeit erledigt?

    
Arvind 30.04.2012, 21:12
quelle

2 Antworten

2

Dafür gibt es keinen automatisierten Weg. NoSQL-Datenbanken wie MongoDB ordnen Datenstrukturen nicht wie MySQL zu. Es gibt verschiedene Leistungsmerkmale und verschiedene Möglichkeiten, wie Sie Daten speichern können. In einigen Fällen würden Sie zwei SQL-Tabellen in einer Sammlung zusammenführen, in der Sie die verknüpften Daten einfach in dasselbe Dokument einfügen.

Wie und wann Sie das tun würden, hängt alles davon ab, wie Sie Daten logisch gruppieren würden, aber genauso viel von der Art von Arbeitslast, die Sie in Ihre Daten investieren. Zum Beispiel können Sie die Daten für schwere Lesevorgänge und kleine Schreibvorgänge anders speichern als in dem Fall, in dem Sie umfangreiche Schreibvorgänge und einige Lesevorgänge ausführen.

Neben der Notwendigkeit, die Schnittstelle von Ihrer Anwendung zur Datenbank neu zu erstellen, müssen Sie auch Ihr Datenmodell neu strukturieren. Das wird so viel Arbeit wie das Entwerfen Ihrer SQL-Struktur und es funktioniert am besten nicht , wie Sie es in SQL machen würden. NoSQL vs SQL sind zwei völlig verschiedene Bestien, die genauso unterschiedlich behandelt werden müssen!

    
Derick 01.05.2012, 09:22
quelle
2

Hier ist ein Anfang: Ссылка Es ist keine "vollautomatische" Lösung, aber es sieht so aus, als ob es ein nützliches Werkzeug sein könnte, zumindest zu verwenden Als 'Umriss' für das Reverse-Engineering einer SQl-App, die als MongoDB-App funktioniert.

    
Symon 28.09.2012 01:02
quelle

Tags und Links