Verwaltung semistrukturierter Daten

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Datenbanken Einführung.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
XML - Aufbau und Struktur - mit Einsatz im B2B
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
HTML - Eine erste Annäherung
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
XML in Datenbanksystemen. © Prof. T. Kudraß, HTWK Leipzig 2 2 Warum wird XML eingesetzt? Antworten von Unternehmen: erweiterte Suchmöglichkeiten im Unternehmen.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
XML Standardisierungen und Abfragesprachen
Speicherung von XML- Dokumenten als Large Objects.
Einführung XML XML Einführung Andreas Leicht.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.
Übung Datenbanksysteme SQL-Anfragen (2)
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Datenmodellierung - Aufbau einer Datenbank -
Buch S70ff (Informatik I, Oldenbourg-Verlag)
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
Was versteht man unter XML Schema?
objekt-relationale Datenbanken
... und alles was dazugehört
Visualisierung objektrelationaler Datenbanken
Architektur und Funktionalitäten der Oracle XML DB - ein Überblick mit ausgewählten praktischen Beispielen - im Rahmen des 17. Workshop Grundlagen von.
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring.
Wir bauen uns eine Webapplikation!
SharePoint 2010 for Information Architects
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Proseminar: „Webtechnologien für Ecommerce“
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Allgemeines zu Datenbanken
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
XML und Datenbanken © 2006 Markus Röder
XML in relationalen Datenbanken
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
SQLite und XML in PHP 5.
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Peter Brezany Institut für Softwarewissenschaften Universität Wien
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbank System (DBS) - Warum?
XML und Datenbanken Textbasierte Abbildung von XML auf Datenbanken Sebastian Roolant.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 12: XQuery und SQL/XML.
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbanken abfragen mit SQL
Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier,
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
Native XML Datenbanken vs. ORDBMS für multimediale Dokumente Seminarvortrag von Alexander Loechel Seminar: DBMS für spezielle Anwendungen.
1 © Thales IS GmbH 2002 Thales Information Systems GmbH Im Team für Ihren Erfolg DOAG - Regionaltreffen Hannover Donnerstag, Oracle 9i XML Datenbank.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Niels Schmahljohann Systemberater STCC ORACLE Deutschland GmbH.
DOAG SID Data Warehouse
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Create Table, Rechte und Rollen
 Präsentation transkript:

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

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

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

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

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

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“

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>

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

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

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

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

- 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, 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.

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>

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

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>

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

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

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 ?

XPath : 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?

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, .....

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

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

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 = 4711 /* 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

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