Title: Verwaltung semistrukturierter Daten
1Verwaltung 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
2Semistrukturierte 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
3Semistrukturierte 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??
4 Semistrukturierte und konventionell Daten
- 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?
5 Datenverwaltung für XML
- Warum eigentlich?
- Szenario 1Hersteller X kauft Teile bei
Zulieferer Y und verwendet das XML/EDI
Protokoll(Electronic Data Exchange Protokoll
zur Übermittlung von Handelsdaten, neuerdings in
XML-Kodierung)
6 Datenverwaltung 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
7Datenverwaltung für XML
- Datenorientiert (data centric documents)
ltOrdersgt ltSalesOrder SONumber"12345"gt
ltCustomer CustNumber"543"gt
ltCustNamegtABC Industrieslt/CustNamegt
ltStreetgt123 Main St.lt/Streetgt
ltCitygtChicagolt/Citygt ....
lt/Customergt ltLine LineNumber"1"gt
ltPart PartNumber"123"gt
ltDescriptiongt ltpgtltbgtTurkey
wrenchlt/bgtltbr /gt Stainless
steel, one-piece construction,
lifetime guarantee.lt/pgt
lt/Descriptiongt ltPricegt9.95lt/Pricegt
lt/Partgt
ltQuantitygt10lt/Quantitygt lt/Linegt
....... lt/SalesOrdergt lt/Ordersgt
8Datenverwaltung für XML
- Dokument-orientiert (document centric)
ltProductgt ltNamegtVariabler Maulschlüssellt/Namegt
ltDevelopergtFull Fabrication Labs,
Inc.lt/Developergt ltSummarygtGroßer,
verstellbarer Schraubenschlüssellt/Summarygt
ltDescriptiongt ltParagtDer Engländer besteht aus
erstklassigem Stahl und besitzt einen
gummierten Handgriff. Die Maulgröße liegt
zwischen 0 und 32 mm. lt/Paragt ltParagtSie
können .... lt/Paragt ltListgt ltItemgtltLink
URL"Order.html"gtBestellenlt/Linkgtlt/Itemgt
ltItemgtltLink URL"Wrenches.htm"gtAndere Werkzeuge
ansehen lt/Linkgtlt/Itemgt ltItemgtltLink
URL"catalog.zip"gtDen Katalog herunterladenlt/Linkgt
lt/Itemgt lt/Listgt ltParagt Der
Schraubenschlüssel kostet 15.33 Euro inkl. MWSt.
Wenn Sie jetzt bestellen, erhalten Sie
zusätzlich unsere wertlose
Hobbybastler-Fibel.lt/Paragt lt/Descriptiongt lt/Pro
ductgt
9Datenverwaltung 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)
- -gt für Interoperabilität DB lt-gt DB gibt es
bessere Lösungen - Meist Verarbeitungsschritte involviert (-gt
Szenario 1) - Auftrag aus lokaler DB erzeugen (XML-Format)
- Übertragen
- Verarbeiten XML Dokument mit Speichern der
Auftragsdaten in DB
10Datenverwaltung für XML
- Abbildung DB lt-gt XML-Dokument zwei Varianten
- Templateskeine vordefinierte Abbildung zwischen
Datenbankschema und XML-Dokumentstruktur
.... XML-Middleware
11- lt?xml version"1.0"?gt
- ltFlightInfogt
- ltIntrogtThe following flights have available
seatslt/Introgt ltSelectStmtgtSELECT Airline,
FltNumber, Depart, Arrive FROM Flightslt/SelectStmt
gt - ltConcludegtWe hope one of these meets your
needslt/Concludegt - lt/FlightInfogt
Operationen der Mittelschicht - Request
entgegennehmen - SQL-Statement ausführen (evtl.
indirekt) - Ergebnisrelation in XML-Format
bringen (XML-Middleware) - Anzeigen
12- lt?xml version"1.0"?gt
- ltFlightInfogt
- ltIntrogtThe following flights have available
seatslt/Introgt - ltFlightsgt
- ltRowgt
- ltAirlinegtACMElt/Airlinegt
- ltFltNumbergt123lt/FltNumbergt
- ltDepartgtDec 12, 1998 1343lt/Departgt
- ltArrivegtDec 13, 1998 0121lt/Arrivegt
- lt/Rowgt
- ...
- lt/Flightsgt
- ltConcludegtWe hope one of these meets your
needslt/Concludegt - lt/FlightInfogt
- Sehr flexibel - Typisch für Abbildung DB -gt
XML ( auch HTML)-Form, nicht umgekehrt.
13Datenverwaltung für XML
- Modellspezifische Abbildung (relational)XML-Doku
ment-Struktur entspricht dem relationalen Schema
(oder Teilen davon) bzw. einer Ergebnismenge. - Kanonische Abbildung auf ltdbgt- lttablegt-
ltattributgt - Tags - XML / DB-Middelware füllt die Elemente oder
entnimmt die Daten (wie bei reinem Transfer)
ltdatabasegt lttablegt ltrowgt
ltcolumn1gt...lt/column1gt
ltcolumn2gt...lt/column2gt ...
lt/rowgt ... lt/tablegt ...
lt/databasegt
14Datenverwaltung 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 XMLDok -gt
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
15XML lt-gt 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 umgekehrt - Element ( id, name), Attribute (id, type, name),
ContentStructure(.....) - DTD-spezifisch Abbildung einer konkreten DTD auf
Datenmodell
- lt?xml version"1.0"?gt
- ltFlightInfogt
- ltIntrogtThe following flights have available
seatslt/Introgt ltSelectStmtgtSELECT Airline,
FltNumber, Depart, Arrive FROM Flightslt/SelectStmt
gt - ltConcludegtWe hope one of these meets your
needslt/Concludegt - lt/FlightInfogt
16XML-Baumstruktur
lt?xml version1.0?gtltordersgt ltpurchaseorder
ID "007"gt ltCustomergt ltnamegt Müller
lt/namegt ltaddressgt ... lt/addressgt
lt/Customergt ltlineItemgt ltnogt 4711 lt/gt
... lt/lineItemgt ltlineItemgt
..... lt/ordersgt
address
street
...
Wenn keine hierarchische DB-Struktur IDREF
Erlaubt XML-Dokumente zuverknüpfen
17Hierarchie 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
OFpurchaseOrderType NESTED TABLE
lineItemList STORE AS...
Objektorientierte Systeme strukturell mindestens
so gutgeeignet, wie objektrelationale
18Dokumentorientierte Verwaltung von XML
- Anfragen SQL oder XPATH / XQL / XML-QL /QUILT /
XQuery ? - Konzeptionelles Modell ist Dokument, nicht
DBUnabhängigkeit von Repräsentation!-gt
Pfadausdrücke statt SQL ?!
19XPath 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?
20XPath und SQL
- Direkte Abbildung von XPath auf SQL
- //purchase_order pno"101"/customer/address/stre
et - SELECT p.address.street
- FROM purchaseOrderTab p
- WHERE p.purchaseNo stringToInt("101")
- //purchase-order/customer/address/city
- SELECT p.address.city
- FROM purchaseOrderTab p
- Aber z.B. keine Aggregation ("Summe aller
Preise"), - kein Verbund, .....
-
21 Verwaltung von XML-Dokumenten Alternativen
- 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 nichtWie teuer ist der
Schraubenschlüssel TX32? - entspricht Verwendung eines Standard-IR-Systems
ohne DBS-Funktionalität und ohne
Strukturunterstützung
22Alternativen
- Beispiel Auftragsverwaltung mit einer Tabelle
purchaseXMLTab, die CLOB-Attribut
po_xml mit dem Dokument
enthältGesucht 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
23XML-Anfragen und SQL (Beispiel)
- Annahme purchaseOrderTab enthält zusätzlich ein
CLOB-Attribut poXMLColumn. - Funktionen (Oracle) extractNode(ltxml-docgt,
ltxpathExpressiongt) - existsNode (ltxml-docgt, ltxpathExprgt ltboolOpgt
ltvalgt) - Beispiel Produktnr. der ersten Position des
Auftrags 4711 - SELECT extractNode(e.poXMLColumn,
//line_item_list1/no)FROM purchaseOrderTab
eWHERE e.pno 4711 / ggf. Typumwandlung - Beispiel Alle Auftraäge mit Bestellungen
von Artikel 100 - SELECT e.poXMLColumnFROM purchaseOrderTab
eWHERE existsNode(e.poXMLColumn,
(//lineItemListno"100") !0
24Indexierung
- 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