Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

XML in SQL Datenbank

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von p4tm4n, 25 März 2014.

  1. p4tm4n

    p4tm4n Neuer Benutzer

    Hallo allerseits,

    ich hoffe ihr könnt mich schlauer machen :>
    Ich habe eine sehr große Menge (Millionen) XML-Files. Aus diesem XML-Files sollen bestimmte Metadaten (Tags), die für die Suche nach den Datensätzen relevant sind in eigenen Spalten gespeichert werden (5 - 10 ca.). Das komplette XML-File soll ebenfalls in einer eigenen Spalte abgelegt werden. Hierfür wäre es supportmäßig am günstigsten eine SQL Datenbank zu verwende.
    Nun stellt sich die Frage wie performant das Ganze am Ende wird. Ist der Ansatz überhaupt so möglich? Was wäre die beste Methode das zu realisieren?
    In der Datenbank soll nach einzelnen Datensätzen gesucht werden, anhand eben dieser signifikanten Tags in den eigenen Spalten.

    Ich hoffe ich hab mich verständlich ausgedrückt.

    MfG
     
  2. Hony%

    Hony% Datenbank-Guru

    Wenn du valide XML-Dateien hast wäre dann eine spezialisierte XML-Datenbank nicht sinnvoller? Für gewöhnlich verträgt sich der relationale Ansatz eher schlecht mit strukturierten XML-Daten.
     
  3. akretschmer

    akretschmer Datenbank-Guru


    Ich hab wenig bis keine Erfahrung mit der Verarbeitung von XML. Fakt ist aber: solange das als TEXT in der DB steht, kannst Du nicht performant drauf zugreifen (im Sinne von: gibt mit die Datensätze, wo dies oder jenes drin steht), da Du keine Index-Unterstützung hast. Wenn Du die für die Suche relevanten Metadaten extrahieren kannst und separat speicherst sollte so ziemlich jede DB damit zurecht kommen.

    Dem relationalen Ansatz kommst Du aber besser entgegen, wenn Du die Daten 'normal' in einer DB speicherst und nur zur Ausgabe XML nimmst, je nach DB wird das mehr oder weniger von der DB schon unterstützt, Beispiel PostgreSQL: http://www.postgresql.org/docs/9.3/interactive/functions-xml.html
     
  4. p4tm4n

    p4tm4n Neuer Benutzer

    Wow, erstmals danke für die schnellen Antworten :)

    Ja, das eine XML-Datenbank besser wäre ist mir mittlerweile bekannt. Nur leider kommt in meinem Fall höchstwahrscheinlich nur eine relationale Datenbank, konkret SQL in Frage.
    Jetzt muss ich eben wohl oder übel die beste Variante finden.

    Das wäre die nächste Frage. Wie speichere ich das ganze XML-File? Die signifikanten Metadaten werden als String gespeichert.
    Die Daten würde ich dann mittels XPath bzw. XQuery selektieren.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    SQL ist eine Sprache, es gibt diverse Datenbanken, die SQL im Namen haben:

    • SQLlite
    • PostgreSQL
    • MySQL
    • M$ SQL-Server

    um mal einige aufzuzählen. Alle sind relational, aber nicht alle sind gut ;-)
     
  6. Hony%

    Hony% Datenbank-Guru

    Du solltest dich zuerst mit den XML-Funktionen von MS-SQL auseinander setzen und darüber nachdenken wie du die vorhandenen Metadaten sinnvoll ein ein relationales Schema bringst.

    Dieser (veraltete) Artikel von Microsoft dürfte beim Einstieg behilflich sein: XML Support in Microsoft SQL Server 2005
    Möglicherweise gibt es auch ähnliche Artikel für aktuellere Versionen.

    Richtig. Relationale Datenbank bedeutet auch nicht zwingend SQL als Zuriffssprache. Auch wenn das eher seltene Exoten sein dürften.
     
  7. p4tm4n

    p4tm4n Neuer Benutzer

    Mein Fehler, ich verwende eine MS-SQL Datenbank ;)

    Was sagt ihr zu meinem Ansatz mit XPath oder XQuery?
     
  8. Hony%

    Hony% Datenbank-Guru

    Dem Artikel nach unterstützt MS-SQL die beiden Techniken nativ auf Serverseite. Technisch scheint also nichts dagegen zu sprechen.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden