Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt...

27
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel

Transcript of Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt...

Page 1: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Vom XML Schema zur relationalen Datenbank

Seminararbeit zum Multimedia-Seminar im SS 2002

Erstellt von: Thomas Dickel

Page 2: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Inhalt

• Was ist XML Schema?

• Warum XML Daten in eine rel. Datenbank?

• Datentypen von XML Schema– Vergleich zu SQL Datentypen

• Regeln der Konvertierung in eine DB

• Umsetzung

• Ausblick und Fazit

Page 3: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Was ist XML Schema?

• Schema-Definitionssprache– In XML definiert

– Löst DTD ab

– Microsoft übernimmt XSD anstelle XDR

• W3C Empfehlung seit Mai 2001

• Zweck: Definition und Beschreibung von XML-Dokumenten

Page 4: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

• XML ist ein Standard in der Industrie

• Vorteil von XML Dokumenten:– Unabhängig von der eingesetzten

Plattform– Einfache Handhabung der Daten

• Nachteile bei XML Dokumenten:– Bedingt durch die Verschachtelung der

Elemente schlecht durchsuchbar

– noch schlechter bei mehreren XML Dokumenten gleichzeitig

Warum XML Daten in eine rel. DB bringen?

Page 5: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

• XML als Datenformat in der Industrie erlaubt den Datenaustausch zwischen verschiedenen Unternehmen

• XML Schema unterstützt dies, indem es das Format definiert, aber die Freiheit der technischen Umsetzung lässt

Warum XML Daten in eine rel. DB bringen?

Page 6: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Datentypen von XML Schema

• Vorgänger DTD hatte keine richtigen Datentypen

• XML Schema erlaubt über 40 verschiedene Datentypen

• XML Schema ist auch im Hinblick auf die Integrationprimitiver SQL Datentypen entwickelt worden

• XML Schema unterstützt durch ein Typsystem den Import und Export von Daten in Datenbanken

Page 7: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Datentypen von XML Schema

Page 8: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Datentypen von XML Schema

XML Schema SQL

string normalizedString

nvarchar/ntext

boolean bit true/false zu 1/0 konvertieren

dateTime time date dateTime Zeitangabe im ISO Format

float float(24)/real INF u. NAN n. unterstützt

double float(53)/double INF u. NAN n. unterstützt

decimal float

integer decimal

Byte Smallint

UnsignedByte Tinyint

Page 9: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln•XML Schema<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:msch="urn:schemas-microsoft-com:mapping-schema"><xsd:element name="daBuch" msch:relation="daBuch"

type="daBuch_type"/> <xsd:complexType name="daBuch_type"> <xsd:attribute name="intBuchID" type="xsd:int"/> <xsd:attribute name="strTitel" type="xsd:string"/> <xsd:attribute name="intAutorID" type="xsd:int"/> <xsd:attribute name="strISBN" type="xsd:string"/> <xsd:attribute name="intVerlagID" type="xsd:int"/> <xsd:attribute name="smnPreis" type="xsd:decimal"/> <xsd:attribute name="dtmErscheinungsdatum"

type="xsd:dateTime"/> </xsd:complexType></xsd:schema>

Page 10: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln•XDR (XML Data Reduced)<Schema name="Schema1"

xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"><ElementType name="daBuch" content="empty"

model="closed"><AttributeType name="intBuchID" dt:type="i4"/><AttributeType name="strTitel" dt:type="string"/>...<AttributeType name="dtmErscheinungsdatum"

dt:type="dateTime"/><attribute type="intBuchID"/><attribute type="strTitel"/>...<attribute type=

"dtmErscheinungsdatum"/></ElementType>

</Schema>

Page 11: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln

Bei jedem Hinzufügen einer Tabelle:

• Primärschlüssel anlegen

• Schlüssel muß autoinkrementierend sein

• Schlüssel mit ID am Ende kennzeichen• intBuchID

• Jedes Attribut mit Abkürzung des Datentyps • strTitel

Page 12: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln

Grundlegende Tabellenerzeugung

Für jedes Element

• Erzeuge Tabelle

• Element hat nur genau ein Elternelement => neue Tabelle über Fremdschlüssel mit Elterntabelle verknüpfen

<Verlag strName="Wrox Press" ...> <Buch strTitel="Professional XML".../></Verlag>

Page 13: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln• Element kann mehrere Elternelement haben und kommt jeweils nur einmal vor=>Hinzufügen eines Fremdschlüssels auf die neue Tabelle zu den Elterntabellen

Page 14: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln

...<Buch strTitel="Professional XML Databases">

<Verlag strName="Wrox Press"/></Buch><Zeitschrift strTitel="dotnetpro">

<Verlag strName="redtec Publishing"/></Zeitschrift>...

Page 15: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln

...<Buch strTitel="Professional XML Databases"> <Schlagwort strSchlagwort="XML"/> <Schlagwort strSchlagwort="Database"/> <Schlagwort strSchlagwort="SQL"/></Buch>...

Kommt das Element bei mehreren Elternelementen mehrmals vor => mittels einer zusätzlichen Tabelle abbilden

Page 16: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln• Nur-Text Elemente, einmal vorkommend

...<Buch> <strTitel>Professional XML Databases</strTitel> <strVerlag>Wrox Press</strVerlag> ...</Buch>...

Einfügen einer Spalte zur Tabelle des Elternelements

Page 17: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln• mehrfach vorkommende Nur-Text Elemente...<Buch strTitel="Professional XML Databases"> <strSchlagwort>XML</strSchlagwort> <strSchlagwort>Database</strSchlagwort> <strSchlagwort>SQL</strSchlagwort>...</Buch>...

=>Anlegen einer Tabelle für die Elemente mit Fremdschlüssel auf das Elternelement

Page 18: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Regeln• einige weitere Regeln sind zur vollständigen Umsetzung erforderlich

• Prüfen auf Namenskollisionen wichtig

• für das Umsetzen einer DTD in eine relationale Datenbank sind 18 Regeln erforderlich

Page 19: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• Manuelle Umsetzung – Anhand der angegebenen Regeln

Umsetzung vom Schema zu einem Datenbankmodell

– Anlegen der Datenbanktabellen– Kopieren der XML-Daten über DOM oder

SAX Schnittstellen

• Vorteil– Flexibel anpassbar auf die gewünschten

Daten

• Nachteil: – Zeitaufwendig– wenig Performancegewinn– Viel Kodierung und Handarbeit

erforderlich

Page 20: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• SQL Server 2000: Bulkloading XML Data– Teil von SQLXML 3.0– SQLXMLBULKLOAD Objekt– Wahlweise XDR Schema, XSD Schema oder

selbständige Generierung

Visual Basic code

Dim objBL As New SQLXMLBulkLoadobjBL.ConnectionString = "provider=sqloledb.1;data source=PC1;

database=Books;"objBL.XMLFragment = TrueobjBL.ErrorLogFile = "c:\Books\Books.log"objBL.Execute "C:\Books\Books.xsd", "C:\Books\Books.xml"

Page 21: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• SQL Server 2000: Bulkloading XML Data

...<xsd:annotation>

<xsd:appinfo> <sql:relationship name= "VerlagBuch " parent= "daVerlag" parent-key= "intVerlagID" child= "daBuch" child-key= "intBuchID" />

</xsd:appinfo></xsd:annotation> ...

Page 22: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• SQL Server 2000: Bulkloading XML Data

XSD Annotations (Auswahl)

sql:relation => Element ist Tabelle

sql:field => Element ist Spalte

sql:is-constant => Element ist nicht verknüpft, erscheint aber im XML (z.B. für Root Element)

sql:mapped => Nichtverknüpfte Elemente tauchen nicht mehr auf

sql:relationship (parent, child, parent-key, child-key) Verknüpfung zwischen XML Elementen

Page 23: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• SQL Server 2000: Bulkloading XML Data

Vorteil:– Wenig Codierungsaufwand nötig

• VB-Code, XDR bzw. XML Schema optional

– Flexibel anpassbar durch Anpassung des XML Schemas

– Performant beim Einlesen der Daten

Page 24: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung

• Microsoft XMLViewMapper 1.0

Page 25: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Umsetzung• Microsoft XMLViewMapper 1.0

– Arbeitet mit SQL Server 2000 zusammen

– Setzt XDR Schema in SQL Schema um

– Ähnlich dem Biztalk Mapper aus dem Microsoft BizTalk Server

– Sinn: XDR Schema bleibt gleich , die Datenbank-implementation ist aber davon unabhängig

Page 26: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Fazit und Ausblick

• Fazit

• Zukunft: • XML Schema 1.1

• Microsoft SQLXML

• native XML Datenbanken

Page 27: Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.

Vielen Dank für Ihre Aufmerksamkeit