XML in SQL Datenbank

p4tm4n

Neuer Benutzer
Beiträge
3
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
 
Werbung:
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.
 
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


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
 
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.
 
Wie speichere ich das ganze XML-File?
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.

SQL ist eine Sprache, es gibt diverse Datenbanken
Richtig. Relationale Datenbank bedeutet auch nicht zwingend SQL als Zuriffssprache. Auch wenn das eher seltene Exoten sein dürften.
 
Werbung:
Zurück
Oben