Wie viele von Ihnen verwenden tatsächlich reine XML-Datenbanken über RDBMs? Ersteres scheint an Dynamik zu gewinnen, aber ich verstehe den Vorteil nicht. Will jemand erklären?
Bedingungen, die XML vorschlagen, sind keine verrückte Idee
Wenn Ihre Daten wie eine Sammlung von Dokumenten aussehen. Zum Beispiel haben Romane eine Struktur, z.B. Kapitel, Absätze, Sätze, Wörter. Möglicherweise möchten Sie auf die Struktur programmatisch zugreifen, aber es wäre schwierig, ein relationales Schema zu erstellen, das dies unterstützt.
Eine verwirrende Anzahl von Feldern und Tabellen erforderlich, fast alle sind optional. Zum Beispiel haben nicht alle Romane einen Bösewicht, aber ein Schurkenattribut oder ein Schurken wäre einfach genug, um sie einem XML-Dokument hinzuzufügen.
Wenn Sie nur eine kleine Datenmenge haben.
Daten sind stark hierarchisch. Es ist einfacher, ein XML-Dokument eines Organigramms abzufragen, als eine ähnliche Abfrage in einer Mitarbeitertabelle mit einer Manager-Spalte durchzuführen, die mit sich selbst verknüpft ist.
Beispiel - DasBlog, das einfache XML als Datenspeicher verwendet.
Bedingungen, die ein relationales Modell vorschlagen, sind besser
Die meisten Ihrer Daten passen gut in Tabellen und Spalten, relativ wenige Felder, die meisten Felder sind erforderlich.
Es gibt viele Daten. Die relationale Welt hat ihre Leistung wesentlich länger optimiert als die XML-Datenbank.
Sie können beides haben
Ein Vorteil, der nicht erwähnt wurde, ist viel einfacher, wenn die Daten der Öffentlichkeit zugänglich sein sollen (via RSS oder was auch immer). Wenn die Daten hauptsächlich für eine öffentliche API verwendet werden oder später als XML formatiert werden, warum nicht? Angenommen, Sie möchten einige HTML-Vorlagen speichern. Wäre es nicht einfacher zu speichern als HTML? Sie würden auch den Overhead eines RDBMS speichern und die Daten in XML verarbeiten.
XML ist auch in Ordnung, wenn Sie fast alles lesen und wenig schreiben, obwohl ein einfacheres Format wie JSON effizienter sein kann, je nachdem, was Sie tun.
In allen anderen Fällen, insbesondere wenn es um Datenmanipulationen geht, werden echte Datenbanken (ob relational, objektorientiert, dokumentenorientiert, was auch immer) viel effizienter sein, weil sie dafür gebaut sind. XML war nicht für 100.000.000 Datenzeilen gedacht.
Ich denke, einige Datenbanken verwenden XML, weil 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, dann speichern Sie es als XML und erleichtern Sie Ihr Leben?
Als jemand, der an einem Open-Source-Produkt arbeitet, das stark XML-Datenbanken verwendet, finde ich XML-Datenquellen von unschätzbarem Wert, da sie die reinen Datenstrukturen darstellen, die im Programm verwendet werden.
XML erlaubt mir, eine komplexe Struktur in Code zu modellieren, sie dann direkt in XML zu serialisieren, um entweder wo oder zu einem späteren Zeitpunkt gelesen zu werden, oder speziell in meinem Fall eine komplexe Struktur in XML zu exportieren und sie dann zu manipulieren und abzufragen Erinnerung. Es gibt andere Optionen wie ODBMS und ORM , die viele der gleichen Vorteile (und dann einige mehr) bieten, aber mit einem Wissens- oder Leistungsaufwand verbunden sind.
Sehen Sie sich diesen Artikel an Ich schätze, es könnte dir helfen.
Ich sehe die wirklichen Vorteile der Verwendung von XML gegenüber relationalen Datenbanken ohne den Kontext nicht.
Relationale Datenbanken sind oft ungeschickt zu bedienen, obwohl Sie leicht mit irgendwelchen Anforderungen von ihnen abfragen können. Wenn Sie keine Abfragen für Ihre Daten durchführen müssen, haben Sie keine wirkliche Verwendung von RDBMs. Wie viele Fotos haben Sie in einer relationalen Datenbank gespeichert? Ist es nicht bequemer, Fotos in JPEG oder PNG zu speichern? Auf der anderen Seite, möchten Sie Bildpixel in XML speichern?