XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der.

Slides:



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

XSQL - Beispiel. © Prof. T. Kudraß, HTWK Leipzig Nested Cursor erzeugen in SQL-Anfragen die XML-typische Baumstruktur (anstelle von Tabellen) Beispiel:
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Internet-Datenbanken
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
XML - Aufbau und Struktur - mit Einsatz im B2B
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Java: Grundlagen der Sprache
Seminar XML und Datenbanken Sven Wiegelmann SS 2002.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
XML in Datenbanksystemen. © Prof. T. Kudraß, HTWK Leipzig 2 2 Warum wird XML eingesetzt? Antworten von Unternehmen: erweiterte Suchmöglichkeiten im Unternehmen.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
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.
Verwaltung von XML-Dokumenten. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen.
XML-Unterstützung in Oracle. © Prof. T. Kudraß, HTWK Leipzig 2 2 Überblick XML Architekturformen und Speicherungsarten XML Schema und Mapping Laden von.
Speicherung von XML- Dokumenten als Large Objects.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Verwaltung von XML-Dokumenten. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden.
Einführung XML XML Einführung Andreas Leicht.
XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der.
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.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
JDBC EDV JDBC.
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
... und alles was dazugehört
Architektur und Funktionalitäten der Oracle XML DB - ein Überblick mit ausgewählten praktischen Beispielen - im Rahmen des 17. Workshop Grundlagen von.
Einführung Servlets/JSPs
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Datenbanken?.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Sesame Florian Mayrhuber
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Oliver Spritzendorfer Thomas Fekete
XML und Datenbanken © 2006 Markus Röder
XML in relationalen Datenbanken
XML (Extensible Markup Language)
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Structured Query Language
Eike Schallehn, Martin Endig
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Datenbanken im Web 1.
Peter Brezany Institut für Softwarewissenschaften Universität Wien
XML und Datenbanken Textbasierte Abbildung von XML auf Datenbanken Sebastian Roolant.
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
1 Zahlreiche Transformationen - Achtung Hochspannung Meike Klettke.
Datenbank für Skriptenverkauf
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
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.
(Structured Query Language)
 Präsentation transkript:

XML und Datenbanken

© Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der Dokumente unterscheidet sich stark Vielzahl von Methoden zur Speicherung existiert verschiedene Abfragemethoden Mehrere Varianten zur Modellierung von XML- Dokumenten und deren Struktur

© Prof. T. Kudraß, HTWK Leipzig Daten oder Dokumente (1) Lesbare Dokumente (dokumentzentriert) – sind selten genau gleich strukturiert – Reihenfolge ist wichtig – sinntragende Daten auf allen Ebenen, viel Mixed Content – Volltextsuche ist unabdingbar, aber nicht ausreichend – Beispiele Zeitschriftenbeiträge, Bücher Gebrauchsanweisungen, Handbücher Präsentationen Verträge – 70% der relevanten Geschäftsinformationen in Textdokumenten

© Prof. T. Kudraß, HTWK Leipzig Daten oder Dokumente (2) Datenzentrierte Dokumente – wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken) – Reihenfolge ist oft nicht relevant – sind einheitlich und meist einfach strukturiert – haben Datentypen – sinntragende Daten in Blattelementen oder Attributen – Mixed Content ist die Ausnahme (oder Dekoration) – Beispiele: Telefonbücher wissenschaftliche Daten Fahrpläne, Flugpläne Bestellungen

© Prof. T. Kudraß, HTWK Leipzig Daten und Dokumente Semistrukturierte Daten – Strukturiert: Felder – Unstrukturiert: binäre Daten wie Text, Video- und Audio- Streams, Bilder (in XML: External Entities, CDATA Sections) – unregelmäßiges Auftreten von Hyperlinks Mangel an Struktur – Mischform aus datenzentriert und dokumentenzentriert – Struktur implizit oder verborgen – Integration von Daten aus heterogenen Quellen (hierfür strukturiertes Modell oft zu restriktiv) – Bestimmte Anfragetypen ignorieren Schema bewußt (z.B. Zeichenkettensuche über gesamte Datenbank hinweg) Beispiel Krankenakten: – Krankenakten Daten: Geburtsdatum, Adresse, etc, binäre Daten: Röntgenbilder Dokumente: Diagnose, Anamnese etc.

© Prof. T. Kudraß, HTWK Leipzig Klassifikation: Beispiel Datenzentrierte Dokumente (strukturiert, regulär Beispiele: Produktkataloge, Bestellungen, Rechnungen) Dokumentzentrierte Dokumente (unstrukturiert, irregulär Beispiele: wissenschaftliche Artikel, Bücher, s, Webseiten) Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte Anteile Beispiele: Veröffentlichungen, Amazon) Meyer XML builds on the principles of two existing languages, HTML and SGML to create a simple mechanism.. The generalized markup concept.. Neil Bradley XML companion XML builds on the principles of two existing languages, HTML and..

© Prof. T. Kudraß, HTWK Leipzig Warum XML in Datenbanken XML als SGML-Nachfolger – entstehende Dokumente müssen gespeichert werden XML als Austauschformat – Originaldaten werden in XML transformiert Austauschdaten müssen aber ebenfalls gespeichert werden (z.B. beim Empfänger) Nur die Speicherung in Datenbanken garantiert – mächtige und effiziente Suchfunktionen – transaktionsorientierte Speicherung – Mehrbenutzerbetrieb Anwendungen – Dokumentenverwaltung – Website-Management – Verkaufsunterstützung – Information Publishing

© Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur Für dokument-zentrierte XML-Dokumente Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Speicherung von XML-Dokumenten

© Prof. T. Kudraß, HTWK Leipzig Beispiel Speicherung mit Volltext-Index - bekannte Methode (älter als relationale Datenbanken) - Boolesches Retrieval (AND, OR, NOT) Verweis Warnemünde Warnemünde 12 Hotel Hübner Aus Richtung Rostock kommend... Begriff anreisebeschreibung ort Rostock hotel Seestraße

© Prof. T. Kudraß, HTWK Leipzig Beispiel Relationale Speicherung von XML - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen Hotel Hübner Warnemünde Seestraße XML-Dokument HotelIDHotelnameAdressePreise H0001Hotel HübnerA0001P0001 AdresseIDOrtStrasse... A0001WarnemündeSeestraße PreiseIDEinzelzimmer... P Hotel: Preise: Adresse:

© Prof. T. Kudraß, HTWK Leipzig Beispiel Hybride Ansätze zur Speicherung Auswahl unterschiedlicher Speicherungsmethoden für verschiedene Dokumentanteile Hotel 0381/ Ort Strasse Telefon Strand Hotel Hübner Warnemünde Seestraße komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt Sie finden unser elegant und und Ostsee / Sie finden unser elegant und komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. Strand Hotel Hübner Warnemünde Seestraße

© Prof. T. Kudraß, HTWK Leipzig XSQL XML + SQL Bestandteil des Oracle XDK (XML Development Kit) XML-formatierte Ausgabe von relational gespeicherten Daten in jedem DBMS verfügbar Grundidee: – relational gespeicherte Daten als XML darstellen – Einbettung von SQL-Anweisungen in XML – Weiterverarbeitung mittels XSL-Stylesheets möglich

© Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis von SQL Queries erlaubt Insert-, Update- und Delete-Operationen unterstützt XSL Transformation durch Anwendung von XML Stylesheets, beliebige Zielformate wie z.B. HTML dient als Input für den XSQL Page Processor Trennung der Daten von der Darstellung

© Prof. T. Kudraß, HTWK Leipzig XSQL Page Verarbeitung Bestandteile XSQL Pages – SQL Queries – DML und DDL in XML Tags XSQL Page Processor (in Java) – nimmt XSQL Pages als Input – erzeugt dynamische XML Seiten mit den Ergebnissen der SQL- Queries XSQL Servlet – erlaubt XSQL Page Verarbeitung im Web Erweiterbare Stylesheets – optional – XSL Transformationen zur Formatierung des Output

© Prof. T. Kudraß, HTWK Leipzig Verarbeitung von XSQL Pages SELECT Hello World AS greeting FROM DUAL SELECT Hello World AS greeting FROM DUAL XSQL Page Input XML Output Hello World Hello World Einführendes Beispiel

© Prof. T. Kudraß, HTWK Leipzig XSQL Queries und Connections XSQL Page erlaubt die Definition von SQL Queries Query ist eingebettet in ein xsql:query Tag Connection-Attribut definiert die Verbindungsinformaiton zur Datenbank Connection Name wird aufgelöst in einer Konfigurationsdatei XSQLConfig.xml (in xsql/lib ) Beispiel xuser oracle.jdbc.driver.OracleDriver... xuser oracle.jdbc.driver.OracleDriver...

© Prof. T. Kudraß, HTWK Leipzig XSQL Page Processor Architektur XSL Stylesheet XSQL Page XML o.a. Formate XSQLConfig Datenbank XSQL Page Processor XSLT XML Parser XML Utility JDBC

© Prof. T. Kudraß, HTWK Leipzig Überblick über XSQL Tags

© Prof. T. Kudraß, HTWK Leipzig Anpassung von XSQL Queries rowset-elementElementname für Anfrageergebnis; leerer String, wenn kein Elementname gewünscht row-elementElementname für jede Zeile im Anfrageergebnis; leerer String, wenn kein Name gewünscht max-rowsMaximalanzahl von Zeilen, die vom Ergebnis ausgegeben werden sollen, sinnvoll z.B. für Top-N-Queries skip-rowsAnzahl von Zeilen, die übersprungen werden soll vor Darstellung des Ergebnisses id-attributeAttributname für id-Attribute für jede Zeile im Anfrageergebnis id-attribute- column Zu nutzender Spaltenname, um den Wert des id-Attributs in jeder Ergebniszeile zu liefern null-indicatorWenn auf y oder yes gesetzt: Null-Indicator-Attribut bei den Elementen genutzt, dessen Wert NULL ist Attribute für xsql:query :

© Prof. T. Kudraß, HTWK Leipzig XSQL Query Parameter Beispiel: Deklaration einer parametrisierten Query in einer XSQL Page Die Parameterwerte können in einer URL geliefert werden, z.B.: find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE ORDER BY find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE ORDER BY

© Prof. T. Kudraß, HTWK Leipzig Darstellung komplexer Strukturen flache XML-Dateien (ROWSET/ROW) korrespondieren mit Tupeln einer Relation Behandlung von mehrfach geschachtelten Objekten (1:n-Beziehung) – mehrfache Joins – nested Cursor zur Unterscheidung zwischen übergeordnetem Objekte und Komponente – Alternative: komplexe Objekte / Object Views Behandlung von m:n-Beziehungen – Auflösung von Fremdschlüsselbeziehungen – mehrfache Darstellung der Tupel als XML-Elemente

© Prof. T. Kudraß, HTWK Leipzig Nested Cursor erzeugen in SQL-Anfragen die XML-typische Baumstruktur (anstelle von Tabellen) Beispiel: FBEREICHSTUDIENGANGSEMESTERBEZEICHNUNG IMNIN1Grundlagen der Informatik IMNIN1Analysis 1 Baumstruktur in XML: IMN |-IN |- 1.Semester |- Grundlagen der Informatik |- Analysis 1

© Prof. T. Kudraß, HTWK Leipzig Beispiel Nested Cursor Tiefe 1: Gruppierte Auflistung aller Fachbereiche Tiefe 2: Auflistung der Studiengänge pro Fachbereich Tiefe 3: Auflistung der Semester pro Studiengang und Fachbereich Tiefe 4: Auflistung aller Fächer pro Semester und Studiengang und Fachbereich

© Prof. T. Kudraß, HTWK Leipzig Beispiel Nested Cursor (2) Tiefe 3: Fachbereich Studiengang Semester IMN IN

© Prof. T. Kudraß, HTWK Leipzig Beispiel Nested Cursor (3) Tiefe 3: Fachbereich Studiengang Semester SQL-Befehl mit Nested Cursor (XML-Output vgl. vorige Folie) select f.fbereich, cursor (select fa.studiengang, cursor (select fae.semester from faecher fae where fae.fbereich=f.fbereich and fae.studiengang=fa.studiengang group by fae.semester) as semester from faecher fa where fa.fbereich=f.fbereich group by fa.studiengang) as studgang from faecher f group by f.fbereich Kommentare: – GROUP BY verhindert Redundanz im Baum – in WHERE-Klausel des Cursors Referenz auf die höheren Ebenen

© Prof. T. Kudraß, HTWK Leipzig XSQL Tag Attribute für DML Für alle DML-Operationen muß Zieltabelle spezifiziert werden: Für Update und Deletes muß Key spezifiziert werden: <xsql:insert-request table=purchase_order transform=order-to-rowset.xsl/> <xsql:insert-request table=purchase_order transform=order-to-rowset.xsl/> <xsql:update-request table=depttransform=doc-to-dept.xsl key-columns=deptno/> <xsql:update-request table=depttransform=doc-to-dept.xsl key-columns=deptno/> <xsql:delete-request table=depttransform=doc-to-dept.xsl key-columns=deptno/> <xsql:delete-request table=depttransform=doc-to-dept.xsl key-columns=deptno/>

© Prof. T. Kudraß, HTWK Leipzig Aufruf von Stored Procedures Stored Procedures können innerhalb von XSQL aufgerufen werden mittels Tag: Stored Procedures können in PL/SQL oder Java geschrieben sein Calls von anonymen PL/SQL-Blöcken sind erlaubt Beispiel:

© Prof. T. Kudraß, HTWK Leipzig Aufruf XSQL Page Processor Kommando- Zeile Java Applikation XSQL Servlet Java Server Page XSQL Page Processor

© Prof. T. Kudraß, HTWK Leipzig Aufruf XSQL von der Kommandozeile Beispiel1 Lese Fluginformation von San Francisco mittels xsql Command Line Utility >xsql airport.xsql airport=sfo xml-stylesheet=none Beispiel2 Es hängt von der XSQL Page ab, welche Aktion ausgeführt werden sollen Ausführung einer Insert-operation, 2. Parameter gibt die XML Quelle an, die durch XSQL Page eingefügt werden soll, dafür kann URL verwendet werden >xsql insertnewsstory.xsql posted-xml=

© Prof. T. Kudraß, HTWK Leipzig Aufruf XSQL von einem Java-Programm Nutze oracle.xml.xsql.XSQLRequest() : public static void main (String[] args) throws Exception { // Erzeuge Instanz von XSQLRequest URL pageUrl = new URL(file://C:/foo/bar.xsql);file://C:/foo/bar.xsql XSQLRequest req = new XSQLRequest(pageUrl); // Speichere Parameter in Hash-Tabelle Hashtable params = new Hashtable(3); params.put(param1,value1); params.put(param2,value2); // Verarbeite die XSQL Page, übergebe die Parameter und // schreibe das Resultat in einen Out Stream req.process(params,new PrintWriter(System.out), new PrintWriter(system.err)); } public static void main (String[] args) throws Exception { // Erzeuge Instanz von XSQLRequest URL pageUrl = new URL(file://C:/foo/bar.xsql);file://C:/foo/bar.xsql XSQLRequest req = new XSQLRequest(pageUrl); // Speichere Parameter in Hash-Tabelle Hashtable params = new Hashtable(3); params.put(param1,value1); params.put(param2,value2); // Verarbeite die XSQL Page, übergebe die Parameter und // schreibe das Resultat in einen Out Stream req.process(params,new PrintWriter(System.out), new PrintWriter(system.err)); }

© Prof. T. Kudraß, HTWK Leipzig XSQL Servlet Environment Web Server mit Servlet Engine XSQL Page Processor XSQL Servlet JDBC http Oracle DB Web-Browser

© Prof. T. Kudraß, HTWK Leipzig XSQL und Java Server Pages (JSP) Java Server Pages sind eine dokumentzentrische Art der Entwicklung von dynamischem Web Content werden in Servlets compiliert vor der Ausführung JSPs vollständig interoperabel mit Servlets (Einfügen und Weiterleiten von Output) JSP Tags zum Aufruf von XSQL Pages