Semistrukturierte Daten [ 1 ] sind eine Form strukturierter Daten , die nicht der tabellarischen Struktur von Datenmodellen relationaler Datenbanken oder anderen Datentabellenformen entsprechen , aber dennoch Tags oder andere Markierungen enthalten, um semantische Elemente zu trennen und Hierarchien von Datensätzen und Feldern innerhalb der Daten zu gewährleisten. Daher werden sie auch als selbstbeschreibende Strukturen bezeichnet.

Bei semistrukturierten Daten können die zur selben Klasse gehörenden Entitäten unterschiedliche Attribute aufweisen , obwohl sie gruppiert sind; die Reihenfolge der Attribute ist dabei unerheblich.

Seit dem Aufkommen des Internets , wo Volltextdokumente und Datenbanken nicht mehr die einzigen Datenformen sind und verschiedene Anwendungen ein Medium zum Informationsaustausch benötigen, treten semistrukturierte Daten immer häufiger auf. In objektorientierten Datenbanken findet man oft semistrukturierte Daten.

Typen

XML

XML [ 2 ] , andere Auszeichnungssprachen, E-Mail und EDI sind allesamt Formen semistrukturierter Daten. Das OEM (Object Exchange Model) [ 3 ] wurde vor XML als Mittel zur Selbstbeschreibung einer Datenstruktur entwickelt. XML wurde durch Webdienste, die nach SOAP- Prinzipien entwickelt wurden, populär.

Einige hier als „semistrukturiert“ bezeichnete Datentypen, insbesondere XML, erwecken den Eindruck, sie seien nicht in der Lage, die gleiche strukturelle Strenge wie relationale Tabellen und Zeilen zu erreichen [ 4 ] . Tatsächlich hat die Auffassung, XML sei von Natur aus semistrukturiert (früher wurde es als „unstrukturiert“ bezeichnet), seine Verwendung für ein breiteres Spektrum datenzentrierter Anwendungen eingeschränkt [ 4 ] . Selbst Dokumente, die gemeinhin als Inbegriff von Semistruktur gelten, können mit nahezu der gleichen Strenge wie Datenbankschemata entworfen werden, die durch das XML-Schema vorgegeben werden [ 5 ] [ 6 ] , und sowohl von kommerziellen als auch von kundenspezifischen Softwareprogrammen verarbeitet werden [ 7 ], ohne ihre Lesbarkeit für Menschen zu beeinträchtigen.

Vor diesem Hintergrund könnte man XML als ein System mit einer "flexiblen Struktur" bezeichnen, das sowohl einen nutzerzentrierten Ablauf und eine hierarchische Struktur als auch eine äußerst strenge Elementstruktur und Datentypisierung ermöglicht.

Das Konzept von XML als „ menschenlesbar “ hat jedoch seine Grenzen. Manche XML-Implementierungen bzw. -Dialekte, wie beispielsweise die XML-Darstellung des Inhalts eines Microsoft-Word- Dokuments ( Office 2007 und spätere Versionen), verwenden Dutzende oder sogar Hunderte verschiedener Tags. Diese Tags spiegeln spezifische Problembereiche wider – im Fall von Word die Formatierung auf Zeichen-, Absatz- und Dokumentebene, Definitionen von Stilen, Einbindung von Zitaten usw. – und sind komplex ineinander verschachtelt. Selbst einen Teil eines solchen XML-Dokuments durch Lesen zu verstehen, geschweige denn Fehler in seiner Struktur zu erkennen, ist ohne ein sehr tiefes Vorwissen über die jeweilige XML-Implementierung und die Unterstützung durch Software, die das verwendete XML-Schema versteht, unmöglich. Ein solcher Text ist genauso wenig „menschenverständlich“ wie ein Buch in Suaheli (das das lateinische Alphabet verwendet) für einen Amerikaner oder Westeuropäer, der kein Wort dieser Sprache spricht: Die Tags sind Symbole, die für jemanden, der mit dem jeweiligen Bereich nicht vertraut ist, bedeutungslos sind.

JSON

JSON oder JavaScript Object Notation ist ein offenes Standardformat, das lesbaren Text zur Übertragung von Datenobjekten verwendet. JSON wurde durch Webdienste, die nach den Prinzipien von REST entwickelt wurden, populär .

Datenbanken wie MongoDB und Couchbase speichern Daten nativ im JSON-Format und nutzen so die Vorteile einer semistrukturierten Datenarchitektur.

Für und Wider

Vorteile

  • Programmierer, die Objekte aus ihrer Anwendung in einer Datenbank speichern, müssen sich keine Gedanken über die Impedanzfehlanpassung zwischen Objekt- und relationaler Architektur machen , sondern können Objekte oft mithilfe einer schlanken Bibliothek serialisieren. [ 8 ]
  • Die Unterstützung verschachtelter oder hierarchischer Daten vereinfacht häufig Datenmodelle, die komplexe Beziehungen zwischen Entitäten darstellen.
  • Die Unterstützung von Objektlisten vereinfacht Datenmodelle, indem sie umständliche Übersetzungen von Listen in ein relationales Datenmodell vermeidet.

Nachteile

  • Das traditionelle relationale Datenmodell verfügt über eine beliebte und sofort einsatzbereite Abfragesprache, SQL . [ 9 ]
  • Anfällig für das Prinzip „Müll rein, Müll raus“; durch das Wegfallen von Beschränkungen im Datenmodell ist weniger Vorausplanung für den Betrieb einer Datenanwendung erforderlich.

Semistrukturiertes Modell

Das semistrukturierte Modell ist ein Datenbankmodell, bei dem es keine Trennung zwischen den Daten und dem Schema gibt , und der Grad der verwendeten Strukturierung hängt vom Zweck ab.

Die Vorteile dieses Modells sind folgende:

  • Es kann Informationen aus Datenquellen darstellen, die nicht durch ein Schema eingeschränkt werden können. [ 10 ] [ 1 ]
  • Es bietet ein flexibles Format für den Datenaustausch zwischen verschiedenen Datenbanktypen. [ 10 ] [ 1 ]
  • Es kann hilfreich sein, strukturierte Daten als semistrukturiert zu betrachten (zum Zwecke des Durchsuchens). [ 1 ]
  • Das Schema kann problemlos geändert werden.
  • Das Datenübertragungsformat kann portabel sein.

Der Hauptnachteil eines semistrukturierten Datenbankmodells besteht darin, dass Abfragen nicht so effizient durchgeführt werden können wie in einer stärker strukturierten Datenbank, beispielsweise im relationalen Modell . Typischerweise werden die Datensätze in einer semistrukturierten Datenbank mit eindeutigen IDs gespeichert, auf die über Zeiger auf ihren Speicherort auf der Festplatte verwiesen wird. Dadurch sind navigations- oder pfadbasierte Abfragen sehr effizient. Bei der Suche über viele Datensätze (wie sie in SQL üblich ist ) ist die Effizienz jedoch geringer, da die Suche auf der Festplatte anhand von Zeigern erfolgen muss.

Das Object Exchange Model (OEM) ist ein Standard zur Darstellung semistrukturierter Daten; eine andere Möglichkeit ist XML .

Siehe auch

Referenzen

  1. ^ a b c d Peter Buneman (1997). „Semistrukturierte Daten“ (PDF) . Symposium über Prinzipien von Datenbanksystemen .
  2. ^ „Die Datenbankgruppe der Universität Pennsylvania hat ein Projekt für semistrukturierte und XML-Daten .“ Archiviert vom Original am 2. November 2013. Abgerufen am 25. März 2009 .
  3. ^ Stanford Universities Lore DBMS
  4. ^ a b Sperberg-McQueen, CM (Oktober 2005). „XML and Semi-Structured Data“ . Queue . Band 3, Nr. 8. Association for Computing Machinery. S.  34–41 . doi : 10.1145/1103822.1103834 . Abgerufen am 5. Juni 2026 .
  5. ^ Murata, Makoto; Lee, Dongwon; Mani, Murali; Kawaguchi, Kohsuke (November 2005). „Taxonomie von XML-Schema-Sprachen mithilfe formaler Sprachtheorie“. ACM Transactions on Internet Technology . 5 (4): 660–704 . doi : 10.1145/1111627.1111631 .
  6. ^ Martens, Wim; Neven, Frank; Schwentick, Thomas; Bex, Geert Jan (September 2006). „Ausdruckskraft und Komplexität des XML-Schemas“. ACM-Transaktionen auf Datenbanksystemen . 31 (3): 770–813 . doi : 10.1145/1166074.1166076 . HDL : 1942/1424 .
  7. ^ Bourret, Ronald (September 2005). "XML and Databases" .
  8. ^ Fowler, Martin (2002). Patterns of Enterprise Application Architecture . Addison-Wesley. S. 161.
  9. ^ Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. (2011). Database System Concepts (6. Aufl.). McGraw-Hill. S. 29.
  10. ^ a b Abiteboul, Serge (1997). „Abfrage semistrukturierter Daten“ . In: Afrati, Foto; Kolaitis, Phokion (Hrsg.). Datenbanktheorie – ICDT ’97 . Lecture Notes in Computer Science. Band 1186. Berlin, Heidelberg: Springer. S.  1–18 . doi : 10.1007/3-540-62222-5_33 . hdl : 2060/20050061322 . ISBN 978-3-540-49682-3Die