Vorteile und Nachteile von XML gegen Datenbanken

hallo zusammen

ich habe vor kurzem zeit gehört dass man xml statt eine Datenbank benutzen kann um Info zu speichern.
meine frage :was ist dann die vorteile und nachteile zwischen xml gegen datenbanken(zb Mysql oder Oracle)
was und wann soll man jede benutzen.
für jede Tips oder Dokumentationen-Hinweis würde ich mich sehr freuen.

gruss youssef

ich habe vor kurzem zeit gehört dass man xml statt eine

Datenbank benutzen kann um Info zu speichern.
meine frage :was ist dann die vorteile und nachteile zwischen
xml gegen datenbanken(zb Mysql oder Oracle)

XML eignet sich meiner Meinung nach für folgende Einsätze:

*) Austausch von Daten. XML eignet sich sehr gut als Datenformat für Schnittstellen zwischen Applikationen. Es gibt haufenweise Parser, viele Applikationen unterstützen XML für Import und Export, es gibt standardisierte Formate für den Austausch und falls doch mal was nicht ganz passt gibt es einfach einzusetzende Transformations-Engines.

*) Speicherung von kleinen, eher statischen Daten in XML-Dateien, wie z. B. Konfigurationsdaten oder alles andre wofür heute proprietäre Dateiformate verwendet werden. XML hat hier den Vorteil, dass sich leicht komplexe Datenstrukturen abbilden lassen und die entsprechenden Parsing-Routinen für das Lesen der Datei vorhanden sind. Nachteil ist übermässiger Speicherverbrauch, allerdings gibts es Kompressionstechniken für XML-Dateien.

*) XML-Datenbanken sind meiner Meinung nach nur sinnvoll wenn man bereits aus anderen Gründen mit XML-Daten arbeitet und diese ablegen und durchsuchen will. Eine eigenständige Applikation die sonst kein XML braucht auf eine XML-Datenbank statt auf eine relationale zu stellen macht meiner Meinung nach keinen Sinn. Relationale Datenbanken sind erprobt und bei vielen Dingen, wie z. B. eben Relationen zwischen Entitäten oder Abfrage-Performance, XML-Datenbanken überlegen.

Grüße, Robert

Hallo youssef!

Prinzipiell ist die Antwort auf Deine Frage die gleiche wie die auf:
„ich habe vor kurzem zeit gehört dass man eine Textdatei statt eine Datenbank benutzen kann um Info zu speichern.“ XML ist eben nicht mehr als ein Standard wie Daten abgelegt werden, genau so wie die gutn alten ini-Files, csv und andere. Natürlich kann an Daten auch in diesen Formaten ablegen. Das kann - insbesondere bei kleinen Datenmengen - auch schneller und effizienter sein, als eine relationale Datenbank.
Die Engine, die das ganze dann aber betreibt (man denke da nur einmal an Transaktionssicherheit, Locking usw.), ist aber mit Sicherheit nicht trivial. Es kommt also stark auf den Einsatzbereich an, und den würde ich bei plain files eher in den schon von Robert angeführten Bereichen sehen.

Gruß,
TheBeast *derdenXMLhypenichtsorechtverstehenkann*

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo zusammen!

ich habe gehört dass man xml statt eine
Datenbank benutzen kann um Info zu speichern.
meine frage: was ist dann die vorteile und nachteile zwischen
xml gegen datenbanken(zb Mysql oder Oracle)

Zu den Vor- und Nachteilen wurde ja schon einiges gesagt.

Hier ist aber noch anzumerken, dass in der Praxis die
Gegenüberstellung Datenbank contra XML nicht immer sinnvoll ist,
da sich beides auch prima vereinen lässt. So kannst Du Dir mittlerweile
in jedem (mir bekannten) Datenbanksystem wie Oracle, Sybase Adaptive Server,
MS SQL Server, Mysql die Tabellendaten auch direkt als XML ausgeben lassen
(von den schon von Robert erwähnten XML-Datenbanksystemen mal ganz abgesehen).

XML ist eben nicht mehr als ein Standard wie Daten abgelegt werden,
genau so wie die gutn alten ini-Files, csv und andere.

Das sehe ich anders, hier ein paar der grundlegenden Unterschiede:

  • XML ist zum einen ein richtiger Industriestandard , der für alle verbindlich
    dokumentiert ist (siehe http://edition-w3c.de/TR/2000/REC-xml-20001006/)
    und keine nervenaufreibenden Zweideutigkeiten bei der Datenspeicherung
    bezüglich seiner Syntax aufkommen lässt

  • als XML abgespeicherte Daten sind selbstbeschreibend , da ihre Bedeutung
    durch die Auszeichnungen (dem Markup) gleich mitgeliefert wird.

Bsp. CSV:

1232;2003-04-12;Schulze GmbH;

Bsp. XML:

 12322003-04-12Schulze GmbH

Die Suche nach Daten erfolgt damit nicht mehr fehlerträchtigerweise über
die aktuelle Position des Datensatzes wie bei EDIFACT oder CSV
(-> suche 3. Datensatz), sondern kann mit standardisierten Befehlen
ähnlich SQL erfragt werden (z.B. als XPath-Suche //lieferant).

  • mit DTDs und XML-Schema stehen (wiederum standardisierte) Möglichkeiten
    zur Verfügung, XML-Daten durch den Rechner auf Vollständigkeit und Fehler
    überprüfen
    zu lassen. Eigenentwicklungen für das Parsing entfallen - man schreibe
    einfach eine Datei, die die Struktur beschreibt und füttere einen der
    vielen freien XML-Parser mit den XML-Daten und dieser Datei.

  • weitere angenehme Begleiterscheingungen von XML-Daten sind die
    Verwandlungsmöglichkeiten und Layoutmöglichkeiten durch CSS, XSLT und
    XSL-FO, die eingebaute Hyperlinkfunktionalität zur Verknüpfung der Daten
    mit externen Ressourcen per XLink und XInclude und nicht zu vergessen
    die Vielzahl der zur Verfügung stehenden XML-Anwendungen und Vokabulare
    wie XHTML als Nachfolger von HTML, SOAP für die Rechner-zu-Rechner-Kommunikation,
    SVG für die Beschreibung von Vektorgrafiken, DocBook, MathML, MusicXML usw.

Mein Fazit:
XML ist mehr als nur ein weiteres Datenformat. Es ist erstens ein Industriestandard
zum Strukturieren von Informationen, zweitens eine Familie von Technologien zur
Bearbeitung von Daten und letztlich eine Philosophie zum richtigen Umgang und
Speichern digitaler Infos.

Gruß,
TheBeast *derdenXMLhypenichtsorechtverstehenkann*

Gruß,
Andreas *der_den_XML_Hype_schon_verstehen_kann*