24
1 Verwaltung semistrukturierter Daten Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf relationale und objektrelationale DBS - Anfragesprachen: XML Query - RDF-Datenbanken: erste Versuche

1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

Embed Size (px)

Citation preview

Page 1: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

1

Verwaltung semistrukturierter DatenVerwaltung semistrukturierter Daten

- was ist das?Datenverwaltung für XML-Dokumente

- Daten in XML-Gewand- eigentlich XML-Dokumente- Abbildung auf relationale und objektrelationale DBS

- Anfragesprachen: XML Query- RDF-Datenbanken: erste Versuche

Page 2: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.2

Semistrukturierte DatenSemistrukturierte Daten

Semistrukturierte Daten kein festes Schema zeitveränderliche Struktur große Variabilität „Viel Struktur, wenig Daten“Beispiel: Web-Daten

XML-Dokumente Textliche Dokumente RDF – Beschreibungen .....

Datenmodell: oft Graphen (bzw. Bäume) Warum „Datenmodell“?

Trennung von Struktur und Inhalt erleichtert Anfragen Anfrageverarbeitung wird erleichtert

Page 3: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.3

Semistrukturierte DatenSemistrukturierte Daten

Content-Management Verwaltung aller anfallenden elektronischen

Informationen (z.B. in einem Unternehmen) Schwerpunkt semistrukturierte Daten Inhaltlich: Web-basierte Daten

Bsp.: InternetbrokerBörsenkurse ( HTML / XHTML - Darstellung) Presseberichte Persönliche Profile .....

Bsp. HochschulverwaltungLehrveranstaltungen, Web-Seiten dafür, Studienpläne, ....

Datenverwaltung: Standard-DBS, Information Retrieval-System oder was??

Page 4: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.4

Semistrukturierte und konventionell Semistrukturierte und konventionell DatenDaten

Derzeitige Schwerpunkte Datenverwaltung von XML-Dokumenten als

Spezialfall von Semistrukturierten Daten Verwendung von relationalen / objekt-relationalen

DBS

Bisher wenig Ansätze fürVerwaltung von großen RDF-Datenmengen(keine kommerziellen)

Tripelstruktur einfacherals Bäume / Graphen?

XML <-> (obj.-) relational

Page 5: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.5

Datenverwaltung für XMLDatenverwaltung für XML

Warum eigentlich? Szenario 1

Hersteller X kauft Teile bei Zulieferer Y und verwendet das XML/EDI Protokoll(Electronic Data Exchange – Protokoll zur Übermittlung von Handelsdaten, neuerdings in XML-Kodierung)

XML <-> (obj.-) relational XML <-> (obj.-) relationalXML

Datenaustausch: Keine Veranlassung, XML-Dokumente in DBS zu speichern

Page 6: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.6

Datenverwaltung für XMLDatenverwaltung für XML

Szenario 2Internetshop biete Produkte aus einem Datenkatalog mit vielfältigem Angebot an („Otto-Katalog“)

Application Server / Web-server

Angebot muss abfragbar sein, verschiedenste Kriterien (Anfragen mit DBS- und IR-Anteilen)„Fahrrad mit Alurahmen, möglichst rot, höchstens 800,-DM“

Page 7: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.7

Datenverwaltung für XMLDatenverwaltung für XML Datenorientiert (data centric documents) <Orders> <SalesOrder SONumber="12345"> <Customer CustNumber="543"> <CustName>ABC Industries</CustName> <Street>123 Main St.</Street> <City>Chicago</City> .... </Customer> <Line LineNumber="1"> <Part PartNumber="123"> <Description> <p><b>Turkey wrench:</b><br /> Stainless steel, one-piece construction, lifetime guarantee.</p> </Description> <Price>9.95</Price> </Part> <Quantity>10</Quantity> </Line> ....... </SalesOrder> </Orders>

Page 8: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.8

Datenverwaltung für XMLDatenverwaltung für XML Dokument-orientiert (document centric)

<Product> <Name>Variabler Maulschlüssel</Name> <Developer>Full Fabrication Labs, Inc.</Developer> <Summary>Großer, verstellbarer Schraubenschlüssel</Summary> <Description> <Para>Der Engländer besteht aus erstklassigem Stahl und besitzt einen gummierten Handgriff. Die Maulgröße liegt zwischen 0 und 32 mm. </Para> <Para>Sie können .... </Para>

<List> <Item><Link URL="Order.html">Bestellen</Link></Item> <Item><Link URL="Wrenches.htm">Andere Werkzeuge ansehen </Link></Item> <Item><Link URL="catalog.zip">Den Katalog herunterladen</Link></Item> </List> <Para> Der Schraubenschlüssel kostet 15.33 Euro inkl. MWSt. Wenn Sie jetzt bestellen, erhalten Sie zusätzlich unsere wertlose Hobbybastler-Fibel.</Para> </Description></Product>

Page 9: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.9

Datenverwaltung für XMLDatenverwaltung für XML

Probleme Oft keine klarer Unterschied zwischen daten- und

dokumentorientiert (Bsp: Preisangabe) XML als Datenrepräsentation zwischen DB

Datentypen? Unterschiedliche Dialekte (der DDL)

-> für Interoperabilität DB <-> DB gibt es bessere Lösungen

Meist Verarbeitungsschritte involviert (-> Szenario 1)

Auftrag aus lokaler DB erzeugen (XML-Format) Übertragen Verarbeiten XML Dokument mit Speichern der Auftragsdaten

in DB

Page 10: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.10

Datenverwaltung für XMLDatenverwaltung für XML

Abbildung DB <-> XML-Dokument: zwei Varianten Templates

keine vordefinierte Abbildung zwischen Datenbankschema und XML-Dokumentstruktur

.... + „XML-Middleware

Page 11: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

<?xml version="1.0"?> <FlightInfo> <Intro>The following flights have available seats:</Intro>

<SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights</SelectStmt>

<Conclude>We hope one of these meets your needs</Conclude> </FlightInfo>

Operationen der Mittelschicht: - Request entgegennehmen- SQL-Statement ausführen (evtl. indirekt)- Ergebnisrelation in XML-Format bringen („XML-Middleware“)- Anzeigen

Page 12: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

<?xml version="1.0"?> <FlightInfo> <Intro>The following flights have available seats:</Intro> <Flights> <Row> <Airline>ACME</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, 1998 13:43</Depart> <Arrive>Dec 13, 1998 01:21</Arrive> </Row> ... </Flights> <Conclude>We hope one of these meets your needs</Conclude> </FlightInfo>

- Sehr flexibel- Typisch für Abbildung DB -> XML ( auch HTML)-Form, nicht umgekehrt.

Page 13: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.13

Datenverwaltung für XMLDatenverwaltung für XML Modellspezifische Abbildung (relational)

XML-Dokument-Struktur entspricht dem relationalen Schema (oder Teilen davon) bzw. einer Ergebnismenge.

Kanonische Abbildung auf <db>- <table>- <attribut> - Tags

XML / DB-“Middelware“ füllt die Elemente oder entnimmt die Daten (wie bei reinem Transfer)

<database> <table> <row> <column1>...</column1> <column2>...</column2> ... </row> ... </table> ... </database>

Page 14: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.14

Datenverwaltung für XMLDatenverwaltung für XML

Modellspezifische Abbildung (objektrelational oder objektorientiert)

XML-Dokument lässt sich leichter in objekt-(relationalem) Modell als in (flachem) relationalen Modell darstellen

Auch hier geht die Ordnung der Teilbäume im XML-dokument verloren: Einbettung m: XML–Dok -> ORDBS-Tabellen nicht bijektiv (und damit nicht reversibel)

Im allgemeinen unkritisch: es kommt auf die Daten an, Darstellung z.B. gemäß XSL-Stylesheet

Kritisch: Datentypen, XML kennt nur CHAR-Daten NULL-Werte: optionale XML-Elemente oder Attribute

Page 15: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.15

XML <-> DatenbankXML <-> Datenbank Stream-orientiert:

Serialisierung, Speichern in Dateien, LOBs Templates

Modellorientiert ("metamodeling") Generisch: einheitliches Schema für alle XML-Dokumente,

kanonische Abbildung von XML-Syntax auf DB-Datenmodell und umgekehrtElement ( id, name), Attribute (id, type, name),

ContentStructure(.....)

DTD-spezifisch: Abbildung einer konkreten DTD auf Datenmodell

<?xml version="1.0"?>

<FlightInfo>

<Intro>The following flights have available seats:</Intro> <SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights</SelectStmt>

<Conclude>We hope one of these meets your needs</Conclude>

</FlightInfo>

Page 16: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

XML-BaumstrukturXML-Baumstruktur<?xml version=‚1.0‘?><orders> <purchaseorder ID ="007"> <Customer> <name> Müller </name> <address> ... </address> </Customer> <lineItem> <no> 4711 </> ... </lineItem> <lineItem> .....</orders>

orders

purchase order

Cust .. lineIt .. lineIt

No... price

Wenn keine hierarchische DB-Struktur: IDREF Erlaubt XML-Dokumente zuverknüpfen

address

street ...

Page 17: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.17

Hierarchie in Objektrelationaler DBHierarchie in Objektrelationaler DB Create TYPE adressType AS OBJECT

{street varchar2(80}, city ...};

Create TYPE lineItemList AS TABLE OF lineItemType; Create TYPE lineItemType AS OBJECT {no number, name varcchar(40), price ...};

Create TYPE purchaseOrderType AS OBJECT {purchaseNo number, customer customerType, address addressType, ... lineItemList lineItemListType};

CREATE TABLE purchaseOrderTab AS TABLE OF{purchaseOrderType NESTED TABLE lineItemList STORE AS...}

Objektorientierte Systeme strukturell mindestens so gutgeeignet, wie objektrelationale

Page 18: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.18

Dokumentorientierte Verwaltung von XMLDokumentorientierte Verwaltung von XML Anfragen:

SQL oder XPATH / XQL / XML-QL /QUILT / XQuery ? Konzeptionelles Modell ist Dokument, nicht DB

Unabhängigkeit von Repräsentation!-> Pfadausdrücke statt SQL ?!

XML-Query?

(Virtueller) XML-Speicher Implementierung: DBS

RepräsentationSQL ?

Page 19: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.19

XPath : Basis vieler XML-AnfragesprachenXPath : Basis vieler XML-Anfragesprachen

W3C-Empfehlung 11/99: http://www.w3.org/TR/xpath Syntax, um in XML-Dokumenten zu navigieren

Ausdrücke beziehen sich auf ein Dokument, keine komplette Anfragesprache

Keine Gruppierung, Verbinden von Dokumenten Basis anderer XML – Werkzeuge

(s. auch Vortrag zu XML von Torsten Schlieder)

Frage: wie bildet man XPath – Ausdruck auf "Implementierungssprache" SQL ab?

Page 20: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.20

XPath und SQLXPath und SQL Direkte Abbildung von XPath auf SQL

//purchase_order [pno="101"]/customer/address/street

SELECT p.address.streetFROM purchaseOrderTab pWHERE p.purchaseNo = stringToInt("101")

//purchase-order/customer/address/city

SELECT p.address.cityFROM purchaseOrderTab p

Aber: z.B. keine Aggregation ("Summe aller Preise"), kein Verbund, .....

Page 21: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.21

Verwaltung von XML-Dokumenten: Verwaltung von XML-Dokumenten: AlternativenAlternativen

Large Object (CLOB) Nicht abfragbar Einziger Vorteil gegenüber Datei:

Fehlertoleranzeigenschaften des DBS Text-Datentyp (Text-Extender wie Oracle-

Intermedia) mit Retrievalfähigkeit Struktur bleibt erhalten, trägt aber nicht zum

Retrieval bei „Suche alle Dokumente zu ‚Schraubenschlüssel?“

dagegen nicht:„Wie teuer ist der Schraubenschlüssel TX32?“

entspricht Verwendung eines Standard-IR-Systems ohne DBS-Funktionalität und ohne Strukturunterstützung

Page 22: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.22

Alternativen Alternativen

Beispiel: Auftragsverwaltung mit einer Tabelle purchaseXMLTab, die CLOB-Attribut po_xml mit dem Dokument enthält

Gesucht: alle Aufträge ohne StraßenangabeSELECT * FROM purchaseXMLTabWhere CONTAINS(po_xml, "street WITHIN addr") = 0

Hybride Abbildung Für hybride Dokumente mit attribut-orientiertem und

freiformatigen Anteil (PCDATA) sinnvollBeispiel: Buch, Handbuch ...

Xpath (o.a.) als "Sublanguage" ?

Oracle-Intermedia mit XML-Erweiterung

Page 23: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.23

XML-Anfragen XML-Anfragen undund SQL (Beispiel) SQL (Beispiel) Annahme: purchaseOrderTab enthält zusätzlich ein CLOB-Attribut

poXMLColumn.

Funktionen (Oracle): extractNode(<xml-doc>, <xpathExpression>)

existsNode (<xml-doc>, <xpathExpr> <boolOp> <val>)

Beispiel: Produktnr. der ersten Position des Auftrags 4711 SELECT extractNode(e.poXMLColumn, //line_item_list[1]/no)

FROM purchaseOrderTab eWHERE e.pno = 4711 /* ggf. Typumwandlung

Beispiel: Alle Auftraäge mit Bestellungen von Artikel 100 SELECT e.poXMLColumn

FROM purchaseOrderTab eWHERE existsNode(e.poXMLColumn, (//lineItemList[no="100"]) !=0

Page 24: 1 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung auf

6.24

IndexierungIndexierung

Performance matters ! Naive Lösung zur Auswertung von existsNode

etc: Parsen des Dokuments, Baum traversieren CLOB mit invertierten Listen (wie oben: z.B.

Intermedia) Grundsätzliches Problem: Indexierung

Semistrukturierter Daten

Wertindex / Textindex "Finde alle Objekte, die über einen Pfad erreichbar

sind" : Pfadindex