Alles, was ich in der Schule gelernt habe, war SQL, das Daten in Tabellen speichert. Momentan arbeite ich an einem Projekt, in dem Daten in XML-Dateien gespeichert werden. Zusätzlich enthält jede XML einen Verweis auf visuelle Dateien (JPEG).
Das XML selbst enthält über tausend Koordinatenpunkte sowie zusätzliche Informationen zu den Daten.
Meiner Meinung nach macht es keinen Sinn, diese Informationen in Tabellen zu speichern. Außerdem konnte ich mit SQL auch keine JPEG-Dateien speichern.
Was wäre eine angemessene Lösung oder gibt es einen Denkfehler auf meiner Seite?
Wie Sie sehen, bin ich ziemlich neu in Datenbanken. Konstruktive Vorschläge, Links und Ratschläge sind daher willkommen.
database-design
xml
チ チ ズ パ パ
quelle
quelle
Antworten:
Alles, was Sie brauchen, ist die Persistenz Ihres XML. Verwenden Sie eine NoSQL-Lösung oder das Dateisystem.
Die Verwendung eines RDBMS bietet keine Vorteile, es sei denn, Sie möchten es anstelle von NoSQL oder des Dateisystems verwenden.
quelle
Ich habe heute Phil Factors Blog-Post " Normalization" und "Anima notitia copia" als Lesezeichen hinzugefügt, da er die Gründe für und gegen die Normalisierung bestimmter Datentypen auf übersichtliche Weise zusammenfasst. Führen Sie die folgende Abfrage für eine SQL-Instanz aus und prüfen Sie, ob Sie damit einverstanden sind.
Sie haben erwähnt, dass die XML-Datei "zusätzliche Informationen zu den Daten" enthält. Gibt es einen Vorteil bei der Modellierung dieser Metadaten in einer relationalen Datenbank, um sie möglicherweise abzufragen? In diesem Fall kann es sinnvoll sein, die relevanten Daten zu extrahieren und das verbleibende XML als XML-Dokumenttyp beizubehalten.
Phil Factors Argument ist, dass nicht relationale Felder in einer relationalen Datenbank vollkommen akzeptabel sind, wenn das Feld als atomar behandelt wird, dh es ändert sich nicht, oder wenn sich das gesamte Feld ändert, kein Bestandteil davon. Die natürliche Erweiterung besteht darin, dass die Anwendung eines relationalen Modells auf diese Elemente von Nutzen sein kann, wenn Ihr Dokument Elemente enthält, an denen Sie interessiert sind.
Relevant für die Frage, aber hauptsächlich für die Ausdrucksweise, ein letztes Zitat von Phil:
Haben wir nicht alle!
quelle
In Bezug auf Oracle-Datenbanken lautet die Antwort: Sie können nicht . Alle Daten in einer Datenbank werden in Tabellen gespeichert, auch Metadaten. Daten können in Warteschlangen gespeichert werden, dies ist jedoch nur eine andere Art der Verwendung von Tabellen. XML-Dateien können außerhalb einer Datenbank gespeichert werden, dies entspricht jedoch nicht Ihrer Anforderung "In der Datenbank".
Über Ihre Frage hinaus können JPEG-Dateien oder andere Dateien in einer Datenbank gespeichert werden. Sie benötigen eine Tabelle und eine LOB-Spalte (BLOB oder CLOB). XML könnte auch auf diese Weise gespeichert werden. Durch das Importieren der XML-Daten in die Datenbank können Sie die Daten jedoch auf eine Weise verarbeiten, die derzeit nicht ohne Weiteres möglich ist. Es würde auch andere Vorteile von Datenbanken bieten, einschließlich: Reduzierte Redundanz, Zugänglichkeit, Parallelität, Skalierbarkeit, Interoperabilität, Sicherheit, Wiederherstellung und Leistung.
Wenn die Vorteile einer Datenbank Ihre Ziele nicht fördern, verwenden Sie keine.
quelle
Es hört sich für mich so an, als würden Sie versuchen, eine räumliche Datenbank zu implementieren . Hierbei handelt es sich um eine Art relationale Datenbank (oder ein Add-On zu vorhandenen Datenbankprodukten, z. B. Oracle Spatial, postGIS), die Funktionen für räumliche Datentypen unterstützt und zur Optimierung der Speicherung und Abfrage von Daten in Bezug auf räumliche Merkmale wie polygonale Grenzen und Punkte verwendet wird und Schichten. Das XML, das Sie haben, klingt wie Grenzkoordinatenpaare, und die zugehörigen Bilder klingen wie Bildmaterial, das in dieser Grenze angezeigt wird. Wenn die Daten passen, ziehen Sie eine relationale räumliche Datenbank in Betracht, die eine integrierte räumliche Modellierung bietet, um Funktionen bereitzustellen, deren Implementierung ansonsten schwierig oder zeitaufwendig wäre.
quelle