Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Verwaltung semistrukturierter Daten

Ähnliche Präsentationen


Präsentation zum Thema: "Verwaltung semistrukturierter Daten"—  Präsentation transkript:

1 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

2 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

3 Semistrukturierte Daten
Content-Management Verwaltung aller anfallenden elektronischen Informationen (z.B. in einem Unternehmen) Schwerpunkt semistrukturierte Daten Inhaltlich: Web-basierte Daten Bsp.: Internetbroker Börsenkurse ( HTML / XHTML - Darstellung) Presseberichte Persönliche Profile ..... Bsp. Hochschulverwaltung Lehrveranstaltungen, 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ür Verwaltung von großen RDF-Datenmengen (keine kommerziellen) Tripelstruktur einfacher als Bäume / Graphen? XML <-> (obj.-) relational

5 Datenverwaltung 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 Datenaustausch: Keine Veranlassung, XML-Dokumente in DBS zu speichern

6 Datenverwaltung für XML
Szenario 2 Internetshop 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“

7 Datenverwaltung 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>

8 Datenverwaltung 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 Euro inkl. MWSt. Wenn Sie jetzt bestellen, erhalten Sie zusätzlich unsere wertlose Hobbybastler-Fibel.</Para> </Description> </Product>

9 Datenverwaltung 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

10 Datenverwaltung für XML
Abbildung DB <-> XML-Dokument: zwei Varianten Templates keine vordefinierte Abbildung zwischen Datenbankschema und XML-Dokumentstruktur „XML-Middleware

11 Operationen der Mittelschicht: - Request entgegennehmen
<?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

12 - Typisch für Abbildung DB -> XML ( auch HTML)-Form,
<?xml version="1.0"?> <FlightInfo> <Intro>The following flights have available seats:</Intro> <Flights> <Row> <Airline>ACME</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, :43</Depart> <Arrive>Dec 13, :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.

13 Datenverwaltung 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>

14 Datenverwaltung 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

15 XML <-> 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 <?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>

16 XML-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 address street ... Wenn keine hierarchische DB-Struktur: IDREF Erlaubt XML-Dokumente zu verknüpfen

17 Hierarchie 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 gut geeignet, wie objektrelationale

18 Dokumentorientierte 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äsentation SQL ?

19 XPath : Basis vieler XML-Anfragesprachen
W3C-Empfehlung 11/99: 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?

20 XPath und SQL Direkte Abbildung von XPath auf SQL
//purchase_order [pno="101"]/customer/address/street SELECT p.address.street FROM purchaseOrderTab p WHERE p.purchaseNo = stringToInt("101") //purchase-order/customer/address/city SELECT p.address.city 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 nicht: „Wie teuer ist der Schraubenschlüssel TX32?“ entspricht Verwendung eines Standard-IR-Systems ohne DBS-Funktionalität und ohne Strukturunterstützung

22 Oracle-Intermedia mit XML-Erweiterung
Alternativen Beispiel: Auftragsverwaltung mit einer Tabelle purchaseXMLTab, die CLOB-Attribut po_xml mit dem Dokument enthält Gesucht: alle Aufträge ohne Straßenangabe SELECT * FROM purchaseXMLTab Where CONTAINS(po_xml, "street WITHIN addr") = 0 Hybride Abbildung Für hybride Dokumente mit attribut-orientiertem und freiformatigen Anteil (PCDATA) sinnvoll Beispiel: Buch, Handbuch ... Xpath (o.a.) als "Sublanguage" ? Oracle-Intermedia mit XML-Erweiterung

23 XML-Anfragen und 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 e WHERE e.pno = /* ggf. Typumwandlung Beispiel: Alle Auftraäge mit Bestellungen von Artikel 100 SELECT e.poXMLColumn FROM purchaseOrderTab e WHERE existsNode(e.poXMLColumn, (//lineItemList[no="100"]) !=0

24 Indexierung 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


Herunterladen ppt "Verwaltung semistrukturierter Daten"

Ähnliche Präsentationen


Google-Anzeigen