• Keine Ergebnisse gefunden

25_8335_901-XML-Entwicklungstendenz

N/A
N/A
Protected

Academic year: 2022

Aktie "25_8335_901-XML-Entwicklungstendenz"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung

unter dem Förderkennzeichen 16OH21005 gefördert.

Die Verantwortung für den Inhalt dieser Veröffentlichung liegt

beim Autor/bei der Autorin.

(2)
(3)

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank

beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind.

Den Themenbereich XML werden wir aber nur soweit vertiefen, wie es für das Verständnis bzgl. Datenbanken notwendig ist.

(4)

Bisher:

Bei den relationalen Datenbank liegt der Schwerpunkt immer auf der Erstellung eines Datenmodells und dem Anlegen eines relationalen Datenbankschemas in einer Datenbank.

Das wesentliche hierbei ist, dass die Anwendungsdaten in Form eines relationalen Modells strukturiert wird.

Die XML_DB Idee:

Bei den XML-Datenbank liegt folgende Idee zu Grunde.

Viele Daten liegen bereits in der Form von XML-Dokumenten vor. Denken wir nur an den Bereich „Business-to-Business“ (B2B“).

Dort werden Daten zwischen Geschäftspartner in Form von XML Dokumenten ausgetauscht.

Somit liegt folgende Fragestellung nahe:

Warum nicht die XML Dokumente direkt in einer Datenbank

speichern, da die beteiligten Anwendungen die Daten bereits in XML

(5)

Form verarbeiten?

(6)

Da die Anwendungen bereits die Daten in Form von XML Dokumenten verarbeiten, versucht man zu vermeiden, dass man den Inhalt der XML Dokument an ein Datenmodell konvertieren muss, um die Daten dann dort abzulegen.

XML Datenbanken haben also das Ziel:

• XML Daten effizient zu speichern

• Anwendungen direkt in den XML-Datenbanken nach Daten suchen können, wie sie es bereits von den XML-Dateien her kennen

• Man kann mehrere XML-Dokumente zu einen Dokument aggregieren, um dort zu suchen. Also so etwas wie eine Suche über mehrere XML-Dokumente hinweg

(7)

Damit wir ein tieferes Verständnis für XML-Datenbanken erlangen, müssen wir uns näher mit XML beschäftigen.

Aber nur soweit wie unbedingt nötigt ist. Da XML sehr vielfältig einsetzbar ist und die XML Sprachelement sehr umfangreich sind, würde es den Rahmen des Datenbankkurses sprengen, sich tiefergehend in XML einzuarbeiten

XML in Kürze

XML steht für EXtensible Markup Language

• Das sind zunächst Tags

Dies bedeutet, dass man um die einzelnen Daten , die man austauschen möchte sogenannte TAG setzt. Somit gibt es einen TAG , wenn die Daten beginnen und ein TAG wenn die Daten zu Ende sind. Das Tag am Anfang nennt man

sinnvollerweise Start Tag und das Tag am Ende sinnvollerweise Ende-Tag.

Tags sind einfach Namen.

Tags kennen wir schon von HTML her. (HTML ist ja auch eine Markup Language).

(8)

Damit man Tag erkennen kann, sind diese in dem Zeichen ‚< ‚und ‚>‘ eingebettet.

Beispiel für ein Start-Tag ist

<interpret>

Das Ende-Tag hat zusätzlich noch das Zeichen ‚/‘ , damit man es von einem Star-Tag unterscheiden kann.

Einem Tag kann man Attribute zuordnen, die Zusatzinformationen geben können.

Als nächste schauen wir uns mal den Inhalt einer korrekten XML Datei an.

(9)

In dieser Abbildung sehen Sie ein korrekte XML Datei:

Zeile 1 : Gibt an, dass es sich um eine XML Datei handelt. Ist eine Art Meta Information. Erkennt man daran, dass das Tag mit einem ‚<?‘ anfängt.

Zeile 3: Dort steht das Start-Tag ‚<musicstore>‘. Es wird als Root-Tag

bezeichnet. Wie der Name schon vermuten lässt, darf es in einer XML Daten nur eine Root-Tag geben ( nur eine Wurzel).

Zeile 4 und ff enthalten weitere Tags. Wie man sieht, kann man Tags beliebig tief schachteln. Wichtig ist nur, dass die Tags in umgekehrter Reichenfolge

geschlossen werden.

Also <interpret> <cd> … </cd> </interpret> ist korrekt

<interpret> <cd> </interpret> </cd> ist nicht erlaubt

Zeile 20: Dort steht das Ende-Tag und kennzeichnet das Ende der Wurzel:.

(10)

Wie man an der Beispiel XML-Datei gesehen hat, kann man via XML Daten in einer einfachen Form beschreiben, damit man sie in einer Anwendung auch einfach verarbeiten kann.

Die Beschreibung der Daten ist dabei unabhängig von der Programmiersprache, in der eine Anwendung erstellt wurde.

Aus der XML Syntax heraus ergibt sich die Tatsache, dass die Daten dabei immer eine Baumstruktur aufweisen. Damit lassen sich – bis auf wenige Ausnahmen- alle möglichen Arten von Daten beschreiben. Daher hat sich XML als Standard- Datenform für den Austausch von Daten durchgesetzt.

(11)

XML ist von dem W3 Konsortium standardisiert und jeder kann die Standards im Internet einsehen.

Die wichtigsten URLs sind in der Abbildung aufgeführt.

(12)

Der XML Standard legt nicht fest, welche TAG-Namen für ein XML Dokument zu verwenden sind. Jede Entwicklerin bzw. Entwickler kann seine eigenen TAG- Namen definieren.

Welche Tag-Namen verwendet werden dürfen und wie die Tags geschachtelt sein müssen/dürfen, kann man in einer extra Datei definieren. Diese Definition wird als XML-Schema Definition bezeichnet.

An dieser Stellen wollen wir uns nicht näher mit XML-Schema Definitionen beschäftigen.

Wichtig ist an dieser Stelle ist folgender Sachverhalt:

• Kann man für eine XML-Datei ein XML Schema festlegen (also man kann genaue Regeln vorgeben) , dann besitzt die XML-Datei eine feste Struktur. In diesem Fall spricht man von „Datenzentrierten XML Dokumenten“. Diese Art von Dokumenten werden verwendet, wenn man Daten zwischen

Anwendungen austauschen möchte, (Stichwort B2B).

• Kann man keine XML Schema vorgeben, weil bestimmte Tag an beliebiger Stelle auftreten können ( Vergleiche HTML <p> ), dann besitzt die XML-Datei eine unregelmäßige Struktur. In diesem Fall spricht man von

„DokumentenzentriertenXML Dokumenten“. Diese Art von XML Dateien werden verwendet, wenn man Webseiten-Inhalte oder sonstige Text-

Dokumente in XML-Form austauschen möchte.

(13)

Die Idee ist ja, XML direkt in einer Datenbank abzulegen.

Hierbei kann man zwischen zwei Verfahren unterscheiden. Es gibt also zwei verschiedene Kategorien von XML Datenbanken.

Test-Based Storage

Bei den Text-Based Storage Datenbanken, werden die XML Dokumente direkt in Form von XML Textfiles in der Datenbank gespeichert.

Dies bedeutet:

• Die XML Daten, die man abspeichert, bekommt man beim Lesen wieder in Originalform zurück

Model-Based Storage

Bei den Model-Based Storage Datenbanken werden die XML Daten in einer Art Modell abgelegt. Dies kann man sich wie folgt vorstellen.

Die XML Tags werden als Knoten aufgefasst. Für jeden Knoten in einem XML Dokument wird dann ein Eintrag in einer Tabelle abgelegt. Es findet also eine

(14)

Dies bedeutet:

Beim Ablegen der XML Daten wird ein Mapping (eine Art Abbildung) vorgenommen, um die Daten in einem Modell abzulegen. Beim Lesen eines Dokumentes müssen aus den Daten des Modells die XML Dateien erstellt werden.

(15)

Die bisher betrachteten Kategorien werden als Nativ-XML Datenbanken (NXD) bezeichnet, da dort immer XML in direkter Form abgelegt werden.

In der Praxis gibt es noch zwei weitere Kategorien.

Zum einen sind dies die „XML Enabled“ Datenbanken und zum Anderen die

„Hybriden“ Datenbanken.

XML-Enabled Databases (XEDB)

Bei den XEDB wird ein sogenannter XML-Relational Mapper verwendet. Dieser Mapper nimmt eine Interpretation der XML Daten vor und wandelt die Daten in das darunterliegende relationale Schema um . Ähnlich wie bei Dokument-Based Storages. Während bei den „Native-Document-Based“ Datenbanken, die

Umwandlung Teil der Datenbank (Datenbank Engine) selbst ist, erfolgt hier das Mapping außerhalb der eigentlichen Datenbank Engine.

Einige Datenbank Hersteller wie z.B. Oracle haben einen speziellen Datentyp

(16)

Hybrid XML Database (HXD)

Bei den Hybrid-XML Datenbanken handelt es sich um eine Mischform., Diese Art von Datenbanken bieten beide Möglichkeiten an. Sowohl das direkte Einlesen und Speichern der XML Dokumente in XML Form als auch die Möglichkeit mit einem Mapping zu arbeiten.

(17)

Die interessantes Frage bei XML Datenbank ist, wie man Abfragen gestalten kann.

Bei relationalen Datenbanken verwenden wir SQL-Queries, um nach Daten zu suchen.

Bei XML Dokumenten wird dagegen eine eigene XML–Query Sprache verwendet.

Hierzu müssen wir zunächst zwei Fälle unterscheiden.

• Suchen innerhalb eines XML Dokumentes

• Suche in mehreren XML Dokumenten. Hierzu werden die XML Daten aggregiert zu einem einzigen Dokument und anschließend gesucht.

Quellen:

• XQUERY : https://www.w3.org/TR/xquery/

(18)

Schauen wir uns zunächst das Suchen nach Daten in einem XML-Dokument an.

Hierzu verwendet man sogenannte XPath Expressions.

Da die XML Knoten einen Baum darstellen, kann man die einzelnen Knoten wie einem Dateisystem durch eine Pfadangabe bestimmen.

Da Tags ( Knoten) auch Attribute haben können, kann man durch Angabe eines Prädikates innerhalb eines XPATH Ausdruckes die Auswahl der Knoten näher einschränken.

Auf die Inhalte eines Knotens kann man dann mittels einer Funktion „text()“

zugreifen.

Dies sind nur die wichtigsten Elemente eines Xpath Ausdruckes. Dies soll hier genügen, um einen ersten Eindruck zu erhalten, wie mächtig XPATH ist.

Am besten verdeutlicht ein Beispiel wie XPath funktioniert.

Quellen:

• XPATH Standard:

• Beispiele: http://www.w3schools.com/xsl/xpath_examples.asp

(19)

Auf der linken Seite sehen wir ein XML Dokument.

Rechts oben sehen wir einen XPATH Ausdruck.

Rechts unten sehen wir das Ergebnis, nach der Ausführung der XPATH Anweisung auf das XML Dokument.

Der XPATH Ausdruck definiert folgenden Query:

• Mit „//interpret“ geben wir an, dass wir nach Tags suchen, die den Tag Namen

‚interpret‘ haben, unabhängig davon, wo genau im Baum das Tag zu finden ist. Dies wird durch ‚//‘ vor dem Tag Namen erreicht.

• [@name=‚ ‚] gibt dabei an, dass wir nur Tags von ‚interpret‘ suchen, die das Attribute „name“ haben und der Wert des Attributes „pink floyd“ ist

• Danach steht „/cd“. Dies gibt an, dass zusätzlich unterhalb des Tags

„interpret“ ein Tag „cd“ gesucht werden soll.

• Wird ein solches Tag gefunden, dann wird dieses Tag und ggf. alle weiteren Tags im Unterbaum in die Ausgabemenge übernommen.

Somit sollte nun klar sein, wie die abgebildete Ergebnismenge zu Stande kommt.

(20)

Online Tool zum ausprobieren:

• http://www.xpathtester.com/xpath

• http://codebeautify.org/Xpath-Tester

(21)

Mit XQUERYsteht eine weitere, noch mächtigere Möglichkeit für Abfragen zur Verfügung.

Dort können wir neben den XQuery Anweisungen auch auf XPATH zurückgreifen.

XQuery enthält ähnliche syntaktische Element wie SQL ( wie zum Beispiel ORDER BY)

Ein Beispiel zeigt am besten, wie man XQuery einsetzen kann.

Quellen:

• XQUERY Standard: https://www.w3.org/TR/xquery/

• Beispiele: http://www.w3schools.com/xsl/xquery_example.asp

(22)

Schauen wir uns nun ein XQUERY Beispiel an.

Auf der linken Seite ist das XML Dokument abgebildet.

Oben rechts ist ein zweizeiliges Query Script abgebildet Unten rechts sehen wir die Ergebnismenge.

Das Script ist wie folgt zu interpretieren:

• „For“ ist eine Schlüsselwort

• „$res“ ist eine Variable

• „in“ ist Schlüsselwort

• „//cd“ ist eine XPATH Anweisung

• „return $res“ gibt an, dass der Inhalt der Variable „res“

Die Syntax ist also wie folgt.

For <$variable> in <xpath>

Return <$variable>

(23)

Online Tools:

• Online Tool: http://www.xpathtester.com/xquery

(24)

In dieser Tabelle sehen Sie einen kleinen Auszug von verfügbaren XML Datenbanken.

Wer über den Einsatz einer XML Datenbank nachdenkt, kommt allerdings nicht darum herum eigene Recherchen durchzuführen, um den aktuellen Stand der unterstützen Funktionen, Features und Standards zu evaluieren.

Quellen:

• http://db-engines.com/en/ranking/native+xml+dbms

• Siehe auch: http://www.rpbourret.com/xml/XMLDatabaseProds.htm

(25)

Hier noch einmal einen kleinen Überblick mit Links zur weiteren Vertiefung.

(26)
(27)
(28)

Referenzen

ÄHNLICHE DOKUMENTE

ƒ Beachte: Von Browsern wird White Space allerdings nicht angezeigt:.

Element Node: price NodeList Text Node: 11.95 NodeList. Element

alle Zeichen erlaubt, die nicht ausdrücklich verboten.

Wer hat Kontrolle über das Parsen: die Anwendung oder der

XML persistent speichern: 3 Möglichkeiten Abbildung relationales Datenmodell XML Datenmodellierung mit

• Sobald der Parser eine syntaktische Einheit analysiert hat, benachrichtigt er die Anwendung und übergibt die entsprechende Analyse.. • Beachte: „Push” bezieht sich wiederum

ƒ Für jedes Element kann ein Namensraum als Standard (default) festgelegt werden,

ƒ Eine Ortsangabe besteht aus dem Breitengrad, dem Längengrad und einem Maß für die Unsicherheit der beiden Angaben. ƒ Ein Breitengrad ist eine Dezimalzahl zwischen -90