kostenloser Webspace werbefrei: lima-city


Vor- und Nachteile von XML

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    ich arbeite ja mit vielem, und da sind mir jetzt massig XML beispiele vorgekommen. nun, warum eigentlich nicht. man ist immerhin unabhängig von jeder datenbank oder den datenbankservern. doch ich hab bis jetzt nicht richtig vor oder nachteile darin gefunden.

    hat jemand vllt nen link, oder selbst nen paar anmerkungen, warum XML in manchen fällen (in welchen) gut ist und in manchen nicht? eben vor und nachteile in verbindung mit PHP (simpleXML).
    Lohnt es sich eine eigene kleine seite mit XML statt MySQL zu machen? oder sogar ein etwas größeres projekt, mit login, vllt forum etc? oder ist XML drastisch langsamer.

    und, auch wenns bissel doof kommt, n richtig allumfassendes simpleXML Tut hab ich noch nicht gefunden xD hat jemand eines? bei möglichkeit auf deutsch :-S mein englisch ist vorhanden, aber nicht perfekt :-D

    freue mich auf antwort =)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ja, es ist super hyper giga langsam!

    MySQL und andere Datenbankmanagementsysteme sind hochgradig optimiert. Einerseits sind speziell optimierte Flatfiles kleiner (schneller auslesbar) und in bequemeren und somit schnelleren Format gespeichert, aber deutlich wichtiger: MySQL kennt Indexe, Query-Optimierung, usw. Mit XML-Dateien müsstest du dich selbst um Indizierung kümmern und glaub mir, du willst nicht selbst Algos schreiben um deine B+-Bäume und Hashtabellen zu erstellen.

    Weiterhin und meiner Meinung nach am wichtigsten: Es ist um Längen schwerer aus XML-Dateien Informationen auszulesen. In MySQL schreibst du vier Buchstaben, namentlich 'JOIN', für XML-Datenbanken wärest du gezwungen eigens irgendeinen Algorithmus zum Joinen von zwei XML Files zu implementeren.

    Also: Finger weg!

    Beitrag zuletzt geändert: 3.6.2010 16:34:15 von nikic
  4. ggamee schrieb: und, auch wenns bissel doof kommt, n richtig allumfassendes simpleXML Tut hab ich noch nicht gefunden xD hat jemand eines? bei möglichkeit auf deutsch :-S mein englisch ist vorhanden, aber nicht perfekt :-D

    Ja, das kommt wirklich doof rüber. Warum benutzt hier keiner google? Hier findest du was du brauchst: Klick hier!
    Ansonsten hier. Aber warum nicht selber XML tutorial deutsch eintippen, wenn es jemand anderes für mich tun kann. Soll keine Kritik sein, die du beantworten musst, sondern eine wirklich gut gemeinte, die dir nützen wird und die du einfach nur verinnerlichen solltest.

    Aber jetzt zum sachlichen Teil deiner Frage: Mit XML kann man ganz gut hierarchische Datenstrukturen abbilden (geht mit relationalen DBMS aber auch), also ist das kein wirklich guter Vorteil. Ein Vorteil wäre (Quelle):

    Bei Webseiten könnte man sich etwa vorstellen, XML-codierte Daten und ein kleines Programm das diese Daten interpretiert (bzw. ein XSL-Dokument) an den Client zu schicken. Zum Beispiel könnte die Antwort einer Suchmaschine (also eine Linkliste) XML-codiert an den Nutzer geschickt werden. Dieser könnte dann innerhalb dieser Liste eine neue Suche starten, oder die Ausgabe umformatieren, OHNE daß es nötig ist, die Seite komplett neu vom Server erstellen zu lassen und über das Netz zu schicken. Dies bedeutet Zeitgewinn für den User und Entlastung von Netz und Servern. Praktisch ist auch, daß der Nutzer garnicht merkt, daß er es nicht mit einem HTML-Dokument zu tun hat.

    XML würde ich bei sehr großen Datenmengen aber auch nicht einsetzen. Ein gut frequentiertes Forum z.B. wär vielleicht zuviel. Einen Algorithmus zu schreiben, der dir XML-Daten parsen kann, ist nicht wirklich schwer. Dieses parsen kostet aber Rechenleistung. Je verschachtelter deine Strukturen, desto mehr Zeit nimmt das in Anspruch. Was an XML gut ist, dass es direkt vom Menschen lesbar ist. Es gibt sicherlich Anwendungen, wo dies sinnvoll ist.
    Wie mein Vorredner aber sagt "Finger weg!" schätze ich das aber nicht ein. MySQL ist für einige Anwendungen auch total übertrieben und überhaupt nicht notwendig. Da macht sich XML u.U. viel besser.
    Wenn dich XML interessiert solltest du mal die Stichwörter XQuery oder XPath mal verwenden. Da findest du Tutorials zu den XML-Abfragesprachen. Brauchst also nicht unbedingt deinen eigenen Parse-Algorithmus für XML schreiben:-))

    Gruß tangoal

    PS: Wikipedia gibt auch noch einige Vor- und Nachteile an. Zum Einstieg sollte das auch reichen. Aber einen Link zu Wikipedia verkneif ich mir mal^^


  5. t*****b

    XML ist nicht wie Datenbanken für die Datenspeicherung vorgesehen (auch wenn man XML dafür verwenden kann), sondern für den Datenaustausch von Informationen zw. getrennten Systemen.

    Zum Beispiel:
    Webserver => (X)HTML => Browser
    Webserver => RSS => Newsreader
    API => XML => Software.

  6. Autor dieses Themas

    g****e

    wenn dus gegoogled hättest tangoal dann hättest du gesehen, dass jene tutorials entweder nach dem "und dann simplexml_load_file() und ihr seit fertig" enden. aber nciht auf das DAHINTER eingehen. wenn dann will ich es BENUTZEN und nicht nur starten. außerdem gibt es ästhetisch wertvolle Tuts und sinnfreie tuts ;-) und meißens gibts hier nen link zu ner versteckten seite auf der das ganz genial erklärt ist, wo google nicht einfach hinführt. aber die ausführung schenk ich mir mal ;-)
    ein algorithmus schreiben um das einzulesen und gezielte daten zu erfahren in der herachie, ich denke das krieg ich hin. jedoch warum das rad neu erfinden ;-)

    nikic, das schockiert mich xD so schlimm hätt ichs garnicht eingeschätzt, aber der meister hat gesprochen. und ich glaube, wenn ich mir da so das von trueweb anschaue kann ich das verstehen. ich hab das eben mal im lexikon (nicht online) nachgeschlagen und das deckte sich mit dem von trueweb recht gut. und da ist das von nikic angebrachte super hinzuzufügen. danke =)
  7. t****o

    Ich halte von XML ein Menge. Z.B. die ganzen API's die wir heute nutzen, können zum größten Teil XML, weil es einfach viel einfacher geht, eine XML-Datei zu parsen, statt einen String aufzuteilen der mit Doppepunkten oder ähnlichem aufgeteilt ist. Außerdem ist XML wie oben schon gesagt für den schnellen Datenaustausch gedacht, z.B. Jabber nutzt XML. Da immer erst alles in eine Datenbank zu schreiben und die auszulesen würde warscheinlich ähnlich lange dauern und mehr Leistung in Anspruch nehmen.
    Für eine kleine, private Seite ist XML vielleicht auch keine schlechte Idee. Wobei da Array vielleicht schon wieder sinniger wären...

    Ein kleines "Tutorial" kann ich auch auf Deutsch bieten, leicht auffindbar: http://de2.php.net/manual/de/book.simplexml.php. Guck zuerst bei Beispielen, der Rest wird dann automatisch ersichtlich sein.

    Nachtrag: http://www.drweb.de/magazin/php-und-xml-einfach-einfach/ Geht hier zwar nur bis zum
    simple_xml_load_file();
    , aber da per var_dump() gezeigt wird was dann in $xml steht weiß man auch dann schonmal wie simple_xml ohne all die Zusatzfunktionen funzt :wink:

    Beitrag zuletzt geändert: 3.6.2010 22:02:38 von telelo
  8. Es hängt IMMER vom Einsatzgebiet ab, ob ein XML oder eine DB sinnvoler ist. Das muss im konkreten Fall bewertet werden. Eine allgemeine Aussage zu tätigen, wäre einfach nicht repräsentativ.


    Also, XML bietet folgende Eigenschaften:
    - ist plattform- und herstellerunabhängig
    - ist layoutunabhängig (Tags beschreiben Struktur und Inhalt, Layout beschreiben CSS oder XSLT)
    - basiert am UNICODE-Standard
    - kann beliebig erweitert und strukturiert werden
    - strukturierter sowie völlig unstrukturierter Inhalt möglich
    - ist selbstbeschreibend (für Menschen relativ leicht lesbar und editierbar; für Maschienen leicht zu generierung und parsen)
    - ist standardisiert (W3C)
    - kann mittels DTD oder XML Schema auf seine Korrektheit überprüft werden

    Daraus ergeben sich folgende drei Hauptanwendungsgebiete von XML:
    1. Datenaustausch (meist über das Internet)
    2. Mehrfachübertragung (ein und der selbe Inhalt kann an verschiedene Enduser-Geräte übertragen werden - vgl. RSS)
    3. Intelligent Retrieval (statt einer einfachen Keyword-basierte Suche auf HTML-Basis kann eine Struktur-basierte Suche auf XML-Basis erfolgen - vgl. XPath und XQuery)

    XML hat sich in den letzten Jahren zu DEM Datenaustauschformat entwickelt.


    Datenbanken haben sich seit Jahrzenten zur Datenspeicherung bewährt und sind dahingegend bestens optimiert (Performance, ACID,...). Es haben sich aufgrund dieser langen Bewährtheit von Datenbanksystemen historisch auch sehr, sehr viele Datenbestände darin angesammelt. Aus diesem Grund werden Datenbanken auch in Zukunft nicht an Bedeutung verlieren.


    Diese Tatsachen haben in den letzten Jahren eine Enwicklung erfordert, die die Konzepte aus der Datenbankwelt und die der XML-Welt kombinieren. Seit dem SQL:2003-Standard wird daher die Einbindung von XML in SQL unterstützt (SQL/XML). Es gibt darin einen eigenen SQL-Datentyp "XML", der es erlaubt ganze XML-Dokumente oder Teile davon in einem Datenbankfeld abzuspeichern. Weiters werden SQL-Funktionen unterstützt, die es ermöglichen ...
    - relationale Daten aus XML-Daten
    - XML-Daten aus relationalen Daten
    - XML-Daten aus XML-Daten und
    - XML-Daten aus XML- sowie SQL-Datengrundlage
    ... zu erzeugen.

    Siehe meinen Thread zu diesem Thema: http://www.lima-city.de/thread/sql-xml-standard-in-mysql


    Wie gesagt, es hängt immer davon ab, was man machen möchte, um sich fragen zu können, wie man es machen sollte. :wink:

    Beitrag zuletzt geändert: 4.6.2010 9:15:44 von wagnerm
  9. Hi

    Ich kombiniere XML und MySql gerne, wenn ich eine Navigation habe speicher ich die in etwa so in die datenbank:

    tabelle

    ID | Ein | Paar | Weitere | Felder | Navigaiton

    0 | "..." | "..." | "..." | "..." | <navigation><link><id>1</id><title>Link1</title></link><link><id>......</navigation>

    Das mach ich, weil die Anzahl der Links sehr dynamisch sein kann.
    Allerdings, hat es mich doch viel Überlegung und Zeit gekostet.
    Daten aus der Datenbank lesen und mit "simplexml" in ein Array verwandeln,
    is schon ein wenigig schwierig, man benötigt oft rekursive Funktionen.

    Ein Array in XML umwandeln, so wie man es braucht, ist nur ein wenig schwieriger,
    aber ich musste auch hier erstmal drauf kommen.

    Mit MySql müsste ich da schon anderst arbeiten, wenn ich dynamische Anzahlen haben will.

    Aber MySql hat den spitzen Vorteil das man einfach nur einen Query braucht und dann werden
    Ergebnisse geliefert.

    Grüsse
    Color
  10. wagnerm schrieb:
    [...] Seit dem SQL:2003-Standard wird daher die Einbindung von XML in SQL unterstützt (SQL/XML). [...]


    Übrignes: Hier gibt es ein gutes eBook zu diesem Thema: http://www.diplom.de/Bachelorarbeit-14598/Evaluierung_der_SQL_XML:2006-Standardkonformitaet_von_ausgewaehlten_Datenbanksystemen.html :wink:

    Beitrag zuletzt geändert: 4.7.2010 14:55:24 von wagnerm
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!