XML vs. Relationale DB

Tom.S

Fleissiger Benutzer
Beiträge
62
Hallo Forumleser,
ich stehe davor, eine Datenbank aufzusetzen und kann mich nicht zwischen einer XML-DB und einer Relationalen Datenbank entscheiden.

Es handelt sich um eine umfangreiche Personendatenbank. Die einzelnen Datenfelder sind genau definiert, allerdings sollen mehrere 100 Personenattribute speicherbar sein. Und aufgrund dieser Komplexität frage ich mich, ob nicht eine XML-Datenbank einer Relationalen vorzuziehen ist. Es gibt keine zwingenden Gründe für die eine noch für die andere Variante. Weder ist der Datenbestand sonderlich groß (auch bei redundanter XML-Speicherung passt er in den Hauptspeicher), noch gibt es tiefe Hierarchien. Umsetzen lässt es sich wohl mit beiden.
Mein Fokus liegt deshalb auf
1. der Umsetzungsdauer
2. auf der Nachvollziehbarkeit
3. auf der Wartbarkeit
4. auf der Toolunterstützung
5. der halbwegs effizienten Abfrage (auch komplexerer Suchanfragen)
6. der logischen Konsistenz (dass kein Wildwuchs entsteht)

Ich habe das Datenschema als XML-Datei und könnte daraus leicht ein Schema generieren und in eine XML-Datenbank einpflegen. Die ersten drei Punkte sprechen nach meiner Meinung für eine XML-DB, die letzten drei für ein relationales Modell.
Ich habe zwar bisher auch recht komplexe relationale Datenbanken konzipiert, die aber nie mehr als 20 Tabellen hatten. Wenn es jetzt um 100 Tabellen geht, schwant mir Böses. Mit XML-Datenbanken kenne ich mich hingegen nicht aus. Auch wenn deren Entwicklung mir jetzt einfacher scheint, möchte ich nicht nach Erstellen und Füllen der Datenbank sie wieder in eine relationale umwandeln müssen, weil sie bestimmte Abfragen nicht schnell genug erledigt.

Ich kann mich entweder in die Materie der XML-Datenbanken einarbeiten oder mir Tools und Umsetzungskonzepte für große Relationale Datenbanken ansehen. Welchen Ansatz würdet ihr mir empfehlen?
 
Werbung:
Ich kann mich entweder in die Materie der XML-Datenbanken einarbeiten oder mir Tools und Umsetzungskonzepte für große Relationale Datenbanken ansehen. Welchen Ansatz würdet ihr mir empfehlen?

Ich würde PostgreSQL nehmen und diese Attribute als JSON speichern, in PG 9.4, was die nächsten Tage kommt, wird das binär gespeichert, Du kannst also dann auch sehr schnell und effektiv indexbasiert nach Attributen suchen. Alternativ als HSTORE speichern, ist ebenfalls intern binär und mit Indexunterstützung. So hast Du eine robuste SQL-relationale DB mit den Features von NoSQL, unter einem Dach als freie Software.
 
Werbung:
Wie sollen die Daten denn genutzt werden? Werden die Daten immer Personenbezogen geladen, also lädt ein User immer eine Profilseite und guckt sich die Person an (hier passt glaube ich XML vom Ansatz her gut) oder willst du Auswertungen fahren a la zeige mir alle Personen die heute Geburtstag haben oder die vor dem 4.8.2000 geboren wurden? Hier ist relational natürlich ein guter Ansatz.
 
Zurück
Oben