7 Stimmen

Warum sollte man reine XML-Datenbanken gegenüber einfachen RDBMs verwenden?

Wie viele von Ihnen verwenden tatsächlich reine XML-Datenbanken statt RDBMs? Erstere scheinen im Kommen zu sein, aber ich verstehe den Vorteil nicht. Kann mir das jemand erklären?

17voto

MatthewMartin Punkte 31018

Bedingungen, die nahelegen, dass XML keine verrückte Idee ist

  • Wenn Ihre Daten wie eine Sammlung von Dokumenten aussehen. Zum Beispiel haben Romane eine Struktur, z.B. Kapitel, Absätze, Sätze, Wörter. Sie möchten vielleicht programmatisch auf die Struktur zugreifen, aber es wäre schwierig, ein relationales Schema zu erstellen, das dies unterstützt.

  • Eine verblüffende Anzahl von Feldern und Tabellen ist erforderlich, fast alle sind optional. Zum Beispiel haben nicht alle Romane einen Bösewicht, aber ein Bösewicht-Attribut oder -Tag wäre einfach genug, um einem Xml-Dokument hinzuzufügen.

  • Wenn Sie eine relativ kleine Datenmenge haben.

  • Die Daten sind stark hierarchisch aufgebaut. Es ist einfacher, ein XML-Dokument eines Organigramms abzufragen, als eine ähnliche Abfrage für eine Mitarbeitertabelle mit einer Managerspalte, die auf sich selbst verweist, durchzuführen.

Beispiel - DasBlog, das einfaches XML als Datenspeicher verwendet.

Bedingungen, die dafür sprechen, dass ein relationales Modell besser ist

  • Die meisten Ihrer Daten passen gut in Tabellen und Spalten, die Anzahl der Felder ist relativ gering, die meisten Felder sind erforderlich.

  • Es gibt eine Vielzahl von Daten. In der relationalen Welt wird die Leistung schon viel länger optimiert als in der XML-Datenbankwelt.

Sie können beides haben

  • Die meisten modernen relationalen Datenbanken unterstützen xml als Datentyp erster Klasse.

5voto

Sasha Chedygov Punkte 121566

Ein Vorteil, der noch nicht erwähnt wurde, ist, dass es viel einfacher ist, wenn die Daten für die Öffentlichkeit zugänglich sein sollen (über RSS oder was auch immer). Wenn der Hauptverwendungszweck der Daten eine Art öffentliche API ist, oder wenn sie später sowieso als XML formatiert werden, warum nicht? Nehmen wir an, Sie wollten einige HTML-Vorlagen speichern. Wäre es nicht einfacher, wenn Sie speichern es als HTML? Sie würden sich auch den Aufwand für ein RDBMS und die Verarbeitung der Daten in XML sparen.

XML ist auch in Ordnung, wenn Sie fast nur lesen und sehr wenig schreiben, obwohl ein einfacheres Format wie JSON je nach Tätigkeit effizienter sein könnte.

In allen anderen Fällen, vor allem wenn viele Daten manipuliert werden müssen, sind echte Datenbanken (egal ob relational, objektorientiert, dokumentenorientiert oder was auch immer) viel effizienter, weil sie dafür ausgelegt sind. XML ist nicht für 100.000.000 Datenzeilen gedacht.

Ich denke, der Grund, warum einige Datenbanken XML verwenden, ist, dass es ein so weit verbreitetes Format ist, insbesondere für Dinge wie RSS-Feeds. Wie ich schon sagte, wenn Ihre Daten am Ende XML sein müssen, warum speichern Sie sie dann nicht als XML und machen sich das Leben leichter?

2voto

Richard Slater Punkte 6193

Als jemand, der an einem Open-Source-Produkt arbeitet, das stark auf XML-Datenbanken zurückgreift, finde ich XML-Datenquellen von unschätzbarem Wert, da sie die im Programm verwendeten reinen Datenstrukturen darstellen.

XML ermöglicht es mir, eine komplexe Struktur im Code zu modellieren und sie dann direkt in XML zu serialisieren, um sie an anderer Stelle oder zu einem späteren Zeitpunkt einzulesen, oder speziell in meinem Fall eine komplexe Struktur in XML zu exportieren und sie dann im Speicher zu bearbeiten und abzufragen. Es gibt noch andere Optionen wie z.B. ODBMS y ORM die viele der gleichen Vorteile (und noch einige mehr) bieten, aber mit einem Wissens- oder Leistungs-Overhead verbunden sind.

1voto

Cheery Punkte 22879

Ich kann die wirklichen Vorteile der Verwendung von XML gegenüber relationalen Datenbanken ohne den Kontext nicht erkennen.

Relationale Datenbanken sind oft umständlich zu bedienen, auch wenn man mit ihnen problemlos beliebige Abfragen durchführen kann. Wenn Sie Ihre Daten nicht abfragen müssen, haben Sie keinen wirklichen Nutzen von RDBMs. Wie viele Fotos haben Sie schon in einer relationalen Datenbank verpackt gesehen? Ist es nicht bequemer, Fotos im jpeg- oder png-Format zu speichern? Andererseits, möchten Sie Bildpixel in XML speichern?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X