Neue Funktionalitäten von DBMS - htw-dresden.de fileProf. Dr. Uwe Wloka Fachbereich Informatik /...
Transcript of Neue Funktionalitäten von DBMS - htw-dresden.de fileProf. Dr. Uwe Wloka Fachbereich Informatik /...
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
75. DatenbankstammtischNeue Funktionalitäten von DBMS
- DBMS auf dem Wege zur eierlegenden Wollmilchsau? -
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Dimensionen der bisherigen Funktionserweiterung
Inhalt
• Funktionserweiterungen rund um den Server• Entwicklungstools für DB-Anwendungen
Impulse für die Weiterentwicklung von DBMS• Entwicklungsimpulse aus Wissenschaft und Technik• Architekturgesichtpunkte• kommerzielle Gesichtspunkte
Neue Funktionalitäten• Überblick• Ausgewählte Funktionalitäten
Resümee / Ausblick
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL:1999
SQL:1992
Funktionserweiterungen rund um den Server
SQL:1989
AdministrationstoolsMonitoring und Tuning
Tools
MaskengeneratorenReportgeneratoren
Programmgeneratoren
SQL:1986
Dimensionen der bisherigen Funktionserweiterung
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Dimensionen der bisherigen FunktionserweiterungEntwicklung des SQL-Standards
SQL:1986 „Database Language SQL“30 Befehle
SQL:1992 „Database Language SQL“ 230 reservierte Worte580 Seiten
SQL:1999 „Information Technology DatabaseLanguage SQL“ 2000 Seiten
SQL 4 etwa 2003
??? ?? reservierte Worte?? Seiten
SQL:1989 „Database Language SQL with Integrity Enhancements“ 94 reservierte Worte
120 SeitenANSI X3.135-1989 bzw.ISO-9075-1989(E)
ANSI X3-1992 bzw. ISO/IEC-9075 1992 bzw. DIN 66315
ANSI/ISO/IEC-9075 1999
ANSI X3.135-1986 bzw.ISO-9075-1987(E)
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL:1999
- relationale Erweiterungen• neue Standarddatentypen („built in data type“)
BOOLEAN und LOB (Large Objects), „distinct types“• zusammengesetzte Datentypen ARRAY und ROW• neue Prädikate DISTINCT und SIMILAR• Unterstützung von OLAP-Anwendung durch ROLLUP, CUBE und
der neuen GROUPING Funktion• hierarchische Tabellen• erweiterte Möglichkeiten zum Einfügen und Ändern in abgeleitetenTabellen / Sichten die durch Joins oder Unions entstanden sind
- objektorientierte Erweiterungen• Strukturierte Datentypen (SDT), Referenzdatentyp• SDT abstrakt oder instanziierbar• einfache Vererbung von SDTs• benutzerdefinierte Methoden• Methoden lassen sich überladen (Polymorphie) und überschreiben
Dimensionen der bisherigen Funktionserweiterung
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Unterstützung der Anwendungsprogrammierung• Nutzerdefinierte Funktionen und Prozeduren, um die
Anwendungslogik auf das Datenbanksystem zu verlagern• Cursor mit weiteren Eigenschaften „sensitive“ und „holdable“
- Zugriffsschutz / Datensicherheit• Rechte können in Rollen zusammengefasst werden• explizites Starten von Transaktionen• Savepoints ermöglichen Zwischenspeicherungen von Transaktionen• neue referentielle Aktion RESTRICT• aktive Datenbank durch Trigger
SQL:1999Dimensionen der bisherigen Funktionserweiterung
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DBMS
Phasen: Analyse/Spezifikation
Entwurf Implemen-tierung
DBDiskurs-bereich
Tools: keine/wenigUnterstützung
Designer Developer
Spezifi-kation
DB-Entwurf
DB-Anwen-
dung
Entwicklungstools für DB-AnwendungenDimensionen der bisherigen Funktionserweiterung
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
neue DBMSFunktionalitäten
objektorientierteAnwendungs-entwicklung
Neue potentielleAnwendungen/
Anwenderneue
Datenmodelle
Neue SprachenJava, XML
Speicherungs- undZugriffsmethoden
objektorientierteProgrammierung
Vernetzung/Internet/WWW
Hardware-entwicklung
Schwachstellendes RDM
Multi- Media
Entwicklungsimpulse aus Wissenschaft und TechnikImpulse für die Weiterentwicklung von DBMS
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
• DBMS nach wie vor/zunehmend Kernstück von Informationssystemen• Umfeld entwickelt und verändert sich
höhere Anforderungen an den Backend-Teil• Ergänzung zur klassischen Client-Server-Architektur (2 Ebenen)
durch eine 3 Ebenen-Architektur
Aber auch• Export von Datenbanktechnologien• Integration von DBMS in andere Produkte (z.B. CMS)
ArchitekturgesichtpunkteImpulse für die Weiterentwicklung von DBMS
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Standard DMBS Non-Standard DBMSvorrelationale relationale nachrelationale1. Generation 2. Generation 3.Generationhierarchische NW-DBMS
relationale DBMS
erw. RDBMS OODBMS Objektrelationale DBMS
IMSIDMSDBS/RUDSDBMS-10DBMS 1100IDS
DB2InformixINGRESbis ORACLE 8iPROGRESSSYBASE MS-SQL 2000
POSTGRESAIM-PDASDBSPRIMASTARBURSTEXODOS
GEMSTONEITASCAO2OBJECTIVITYOBJECTSTOREONTOSVERSANT
DB2 7.2ab ORACLE 9iINFORMIX
Markausschnittkommerzielle GesichtspunkteImpulse für die Weiterentwicklung von DBMS
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL:1999 Objektorientierung
Internet
Multimedia
Content-management
Data WarehouseOLAP / Data Mining
InformationRetrievel
XML
Java
Strukturen in TabellenStrukturen zwischen Tabellen
DBMS
ÜberblickNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
ÜberblickNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Nutzerdefinierte Datentypen (UDT)
<user-defined-type definition> ::= CREATE TYPE <user-defined-type name>[UNDER <user-defined-supertype name>][AS <predefined type>|<attribute definition list>][INSTANTIABLE | NOT INSTANTIABLE]FINAL | NOT FINAL[<reference type specification>][<cast option>][<method spefication list>]
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
predefined type(einzelner verdef. Typ)distinct types- FINAL notwendig- <subtype clause> nicht- <instantiable clause> nicht- <reference type spec> nicht
Attribute definition list(Liste von Attributen)structured data type (SDT)- NOT FINAL notwendig- <cast option> nicht
UDT
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- SDT können ein oder mehrere Attribute enthalten<name><type><default value>
StandarddatentypenCollection TypesReferenztypenAndere SDT
- SDT können verwendet werden als Typen von• Attributen in anderen SDT• Parameter in Methoden, Funktionen und Prozeduren• SQL-Variable• Domain oder Spalten in Tabellen
- Verhalten der SDT werden durch Methoden (METHOD) beschrieben, die Bestandteil des Typs sind
- Methoden können überladen und überschrieben werden- Typhierarchien können durch Vererbung gebildet werden (UNDER)
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
CREATE TYPE Adresse AS(Plz VARCHAR(20),Ort VARCHAR(20),Strasse VARCHAR(30))
INSTANTIABLE NOT FINAL;
CREATE TYPE Mitarbeiter AS(Mitnr VARCHAR(5),Name VARCHAR(10),Vorname VARCHAR(10),Anschrift Adresse,Alt SMALLINT,Beruf VARCHAR(15),Gehalt INTEGER,Telnr VARCHAR(12))
INSTANTIABLE NOT FINALMETHOD Einkommen() RETURNS INTEGER;
CREATE TYPE Leiter UNDER Mitarbeiter AS(Bonus INTEGER)
INSTANTIABLE NOT FINALOVERRIDING METHOD Einkommen() RETURNS INTEGER;
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Definition der Methoden
CREATE METHOD Einkommen RETURNS INTEGERFOR MitarbeiterRETURN (12*Gehalt);
CREATE METHOD Einkommen RETURNS INTEGERFOR LeiterBEGINDECLARE result INTEGER;SET result = (SELF AS Mitarbeiter).Einkommen();RETURN (result + SELF.Bonus);
END;
Für Leiter wird die Methode des Mitarbeiters überschrieben.
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Erzeugung von Typentabellen (Typed Tables)- Attribute des Typs werden Spalten der Tabelle- zzgl. einer Spalte für den Referenzwert der Zeile (OID)
(bei Supertabellen für den Bezug auf die Zeilen der Tabelle)
CREATE TABLE Adr OF AdresseREF IS oid SYSTEM GENERATED
CREATE TABLE Mit OF MitarbeiterREF IS oid SYSTEM GENERATED
CREATE TABLE Leit OG Leiter UNDER Mit
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DateneingabeINSERT INTO Mit VALUES(‘101‘, ‘Hase‘, ‘Hoppel‘,
NEW Adresse(‘0815‘, ‘Feld‘, ‘Feldweg 20‘),20, ‘Dipl.-Ing.‘, 3500, ‘2916‘)
INSERT INTO Leit VALUES(‘102‘, ‘Igel‘, ‘Stachel‘,NEW Adresse(‘0754‘ ,‘Laub‘, ‘Waldrand 11‘),65, ‘Industriekauf.‘, 4500, ‘3582‘)
Datenauswertung
SELECT m.Name, m.Vorname, m.Einkommen() FROM Mit m
SELECT m.Name, m.Vorname, m.Anschrift.Ort AS Wohnort FROM Mit
Anzeige Name, Vorname mit entsprechendem Einkommen
Um den Wohnort der Mitarbeiter aus der Adresse zu erhalten, muss in die Adress-Struktur hineingegriffen werden.
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Collection-Types
ARRAY:bestimmte Anzahl von Elementen gleichen Datentyps (ausser ARRAY selbst)
ROW Type:bestimmte Anzahl von Elementen mit unterschiedlichen Datentypen
- strukturierte Werte in einem einzelnen Feld einer Tabelle- beliebig tiefe Schachtelung- Verletzung der ersten Normalform
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Erzeugung von Tabellen
CREATE TYPE Mit(Mitnr VARCHAR(5),Name VARCHAR(10),Vorname VARCHAR(10),Anschrift Row (Plz VARCHAR(5),
Ort VARCHAR(20),Strasse VARCHAR(30)),
Alt SMALLINT,Beruf VARCHAR(15),Gehalt INTEGER,Telnr VARCHAR(12) ARRAY[5],PRIMARY KEY (Mitnr))
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DateneingabeINSERT INTO Mit VALUES(‘101‘, ‘Hase‘, ‘Hoppel‘,
ROW (‘Feld‘ ,‘0815‘, ‘Feldweg 20‘),20, ‘Dipl.-Ing.‘, 3500, ARRAY [‘4711‘, ‘0815‘])
Datenauswertung
Der Zugriff auf die Elemente vom Typ ROW erfolgt über die Punkt-schreibweise, wie es auch bei strukturierten Datentypen der Fall ist. Auf ARRAYs kann über die ordinale Position oder mit Hilfe von UNNEST zugegriffen werden.
SELECT Name, Vorname, Anschrift.Ort, Anschrift.Plz, Anschrift.Strasse, Telnr[1]
FROM MitWHERE Mitnr = ‘101‘
Strukturen in Tabellen / zwischen TabellenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL-JavaSQLJ Part 0: Embedded SQL in JavaSQLJ Part 1: Routinen in Java
SQLJ Part 2: SQL-Typen in Java
SQL/MM (Multimedia)SQL/MM Part 1: Framework
Implementierung von SQL-Routinen in Java
Implementierung von strukturierten Datentypen in Java
Überblick und KonformanzklauselSQL/MM Part 2: Fulltext
Regelt Konstruktion von Volltext und SuchmusternSQL/MM Part 3: Spatial
Informationen zur Speicherung, Manipulation und Suche von gemetrischen und topografischen Daten
SQL/MM Part 4: Still ImageInformationen zum verarbeiten und analysieren von Standbildern
Standards neben SQL:1999Neue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- in den letzten Jahren der Standardisierung von SQL:1999zumehmend Festlegungen zur Interaktion und Integration von SQL und Java getroffen.
- Java Virtual Machine (JVM) als Bestandteil des Datenbankservers- Java-Klassen als Bestandteil des DB-Servers oder der Datenbank
SQL:1999
SQL:1992
stored proceduresuser-define functionsadvanced datatypesstructured typessubtypingmethods
DB Server
JDBC 1.2
2.0
dynamic SQL
SQL OLBANSIISO
Server-sideLogic
static SQL
SQL und JavaNeue Funktionalitäten
SQLJ Part 2
SQLJ Part 1
SQL RoutinesPSMExternal Routines
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Ablaufszenario der JDBC-BenutzungSQL und Java
Neue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
String url = “jdbc:db2:mydatabase“;Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver“);Connection con = DriverManager.getConnection(url, “user“, “password“);
Verbindungsaufbau
String sqlstr = “SELECT Name, Vorname FROM Mit WHERE Mitnr = ‘101‘“;Statement stmt = con.createStatement();
SQL-Statement erzeugen
ResultSet rs = stmt.executeQuery(sqlstr);SQL-Statement ausführen
rs.next();String name = rs.getString(1);String vorname = rs.getString(2);
Resultat verarbeiten
SQL und Java JDBC Zugriff auf SQL-DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
String url = “jdbc:db2:mydatabase“;Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver“);DefaultContext.setDefaultContext(
new DefaultContext((url, “user“, “password“, false));
Verbindungsaufbau
String name, vorname;#sql {SELECT Name, Vorname INTO :name, :vorname FROM Mit
WHERE Mitnr = ‘101‘}System.out.println(name + “, “ + vorname);
SQL-Statement ausführen und Resultate verarbeiten
SQL und Java SQL/OLB Einbettung in JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Statisches SQL in Verbindung mit dem ProgrammMöglichkeiten zur Authorisierung
• Die Anwendung verfügt über Tabellenrechte des Programmierers• Benutzer der DB verfügen über Ausführungsrechte des Programms
- Dynamisches SQL in Verbindung mit dem Benutzer• SQL unabhängig von dem Programm• Benutzer muss über entsprechende Tabellenrechte verfügen• Problem für große Programme
- Vergleich• SQLJ kontra JDBC
• geringere Flexibilität während der Laufzeit• ermöglicht Fehlerkorrektur während der Implementierungsphase• statisches SQL kann performanter sein
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Benutzung von statischen Java Methoden, zur Implementierung von Stored Procedures und UDF
SQL Routinen, die Java benutzen (SQLJ Part 1)
• Parametertypumwandlung, Fehler- und Ausnahmebehandlung• Stored Procedures: Rückgabeparameter, Rückgabe von Ergebnismengen• Methodenkörper können JDBC oder SQLJ beinhalten
- SQL DDL Operationen • Änderungen bei CREATE PROCEDURE und CREATE FUNCTION
- JAR-Datei wird ein Datenbankobjekt• vordefinierte Proceduren zum Installieren, Ersetzen und Entfernen von JAR Dateien
• Zugriffsrechte auf JAR Datei
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Benutzerdefinierte Routinen
in SQL:1999 Aufrufe festgelegt
stored procedure user defined function
In SQLJ Teil 1Implementierung festgelegt
Java-Klassen implementierenVerhalten SP und UDFkomp. Javacode in DB installiertSQL-Routinen
(nach SQL-PSM)Externe Routinen(C, Java, ...)
Def.: IN/OUT-Parameterdynamic result set
Aufruf: CALL-Statement
nur IN-Parameterein Resultat dessen Datentyp definiert wird
innerhalb beliebiger DML-Befehle
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
public class MitProzedur{public static void avgGehalt(String beruf, int gehalt) throws SQLExeption{
#sql {SELECT AVG(Gehalt) INTO :gehalt FROM Mit Beruf = :beruf};}
}
Java Klasse implementiert das Verhalten der Prozeduren
CALL SQLJ.INSTALL_JAR(‘file:/home/user/classes/Mit.jar‘, ‘Mit_jar‘);Installieren des SQLJ jar-files in der Datenbank
CREATE PROCEDURE avgGehalt(IN beruf VARCHAR(30), OUT gehalt NUMBER(10))
EXTERNAL NAME ‘Mit_jar:MitProzedur.avgGehalt‘LANGUAGE JAVAPARAMETER STYLE JAVA
Vollständige DDL zum Erzeugen der Prozedur
SQL und Java Implementierung von benutzerdefinierten RoutinenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Benutzung von Java Klassen zur Definition von SQL-TypenSQL Typen, die Java benutzen (SQLJ Part 2)
• Abbildung auf strukturierte oder native SQL Typen (BLOBs)• Verwendung zur Definition von Spalten• Verwendung zur Definition von SQL:1999 tables (SDT)
- Abbildung von Objektstatus und Verhalten• Java Methoden werden zu SQL:1999 Objektmethoden • Java Methoden können innerhalb von SQL Statements aufgerufen werden
- Beinhaltet die Verwaltung von USAGE-Privilegs auf SQL-Typ- Benutzung der Prozeduren zum Ersetzen und Löschen von SQLJ Jar Dateien
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- DLL Operation oder
Erweiterte CREATE TYPE Syntax zur Abbildung von Java-Klassen in SQL Typen
- Abbildungsbeschreibung im deployment descriptor- Unterstützung der Abbildung von
Java SQLclass user-defined (structured) type
member variable attributemethod methodconstructor constructor methodstatic method static methodstatic variable static observer method
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- SQL Konstruktor-Methoden• haben den selben Typ, für den sie definiert sind• werden unter Verwendung des NEW Operators aufgerufen
- SQL kennt keine statischen Membervariablen
• abgebildet auf eine statische SQL Methode, die den Wert der statischen Variable zurückgibt
• Modifikation der statischen Variable werden nicht unterstützt
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL und Java Implementierung von strukturierten DatentypenNeue Funktionalitäten
public class Adresse implements Serializable, SQLData{public String Strasse;public String Hausnummer;public String Ort;public static String Land = “BR Deutschland“;public String druckeAdresse() {...};public void aendereAdresse(String adr)
{... //Zerlegen und Felder ändern}public void readSQL(SQLInput in, String type) {...};public void writeSQL(SQLOutput out) {...};
}
Java Klasse
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
SQL und Java Implementierung von strukturierten DatentypenNeue Funktionalitäten
CREATE TYPE Adresse EXTERNAL NAME ‘adresse_jar:Adresse‘LANGUAGE JAVA(
Nr VARCHAR(3) EXTERNAL NAME ‘Hausnummer‘,Str VARCHAR(30) EXTERNAL NAME ‘Strasse‘,Ort VARCHAR(30) EXTERNAL NAME ‘Ort‘,STATIC METHOD Land() RETURNS VARCHAR(30)
EXTERNAL VARIABLE NAME ‘Land‘,METHOD druckeAdresse() RETURNS VARCHAR(100)
EXTERNAL NAME ‘druckeAdresse‘,METHOD aendereAdresse(VARCHAR(100)) RETURNS Addresse
SELF AS RESULT EXTERNAL NAME ‘aendereAdresse‘)
SQL DDL
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DB2 Oracle MS SQL2000 SYBASEJVM in DB-Server integriert
Jserver JVM in DB-Server implementiert
Anbindung von Java-Programmen lediglich mit JDBC 2.0 kompatiblen Treiber
JVM in DB-Server integriert
Stored Procedure und UDF programmiert in Java werden im Daten-bankkern ausgeführt
Java-Klassen als SchemaobjektDefinition von Java-Klassen mit CREATE JAVA möglich
.NET in Konkurrenz zu Java
Java-Klassen in der Datenbank gespeichert Java Methoden in SQL aufgerufenJava.Net unterstützt
SQLJ Part 1 und SQLJ Part 2 werden unterstütztmit SQLJ Translator, SQLJ Runtime, SQL Profile wird SQL:1999/OLB unterstützt
SQLJ Part 1 voll SQLJ Part 2 weitest-gehend unterstütztSQL:1999/OLB wird nicht unterstützt
SQL und JavaNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- XML, die neue Sprache für den Datenaustausch im Web- XML, zur Modellierung von Struktur und Inhalt semi-strukturierten Daten
• kein einheitliches, „durchgehendes“ Schema• Bedeutung der Struktur wird mit dem Inhalt zusammen dargestellt• Teilweise tiefe und unregelmäßige Strukturen mit fehlenden oder
sich wiederholenden Strukturen und Inhalten
- XML abgeleitet von SGML- XML, Metasprache, Sprache zur Definition von Sprachen
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- XML-Dokumente (besser XML Objekte) müssen gespeichert werden- nur Speicherung in Datenbank garantiert
• mächtige und effiziente Suchfunktionen• Datensicherheit durch transaction management• hinreichenden Zugriffsschutz• Mehrbenutzerbetrieb
XML und Datenbanken
Neue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Information RetrievelSysteme
XML Datenbanken DBMS
• Juris• Medlars • Tamino
• Natix• OODBMS• RDBMS• Netzwerk-DBMS• Hierarchische DBMS
unstrukturierteDaten
semistrukturierteDaten
strukturierteDaten
XML und DatenbankenNeue Funktionalitäten
• Golem• Spirs
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Grobeinteilung der DokumenteAspekt Dokumenten-
zentrischDaten-zentrisch
Erscheinungsbild „lesbare“ Dokumente wie Daten im RDBMS
Strukturierung selten genau gleich, einfach bis komplex, tief
meist einheitlich, meist einfach
sinntragende Daten
auf allen Ebenen, grob granuliert
in Blattelementen und Attributen, fein granuliert
„mixed content“ viel Ausnahme
Beispiele Zeitschriftenbeiträge, Bücher, Handbücher, Vorträge
Telefonbücher, Bestellungen, Fahrpläne, Produktkataloge
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
XML Datenbanken
- relationale DBMS• Element-orientierte Zerlegung/Speicherung/Komposition• Dokument-orientierte Speicherung/Wiederauffinden
- objektorientierte DBMS- native XML-DBMS
XML und Datenbanken
Neue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Element-orientierte Zerlegung/Speicherung
- Inhalt oder Struktur als Orientierungspunkt- generische Zerlegung / Speicherung (generisches Mapping)
vorgefundene Strukturen werden nach verschiedenen Ansätzen umgesetztXML-DokumenteDTDXML Schema
DB-SchemaTabelle
-definitorische Zerlegung/Speicherung (statisches Mapping)• Definition einer Abbildungsvorschrift zwischen XML-Dokumenten
und DB-Tabellen• Abbildungvorschrift muss vor dem ersten Abspeichern erstellt werden• Elemente und Attribute können auf Zeilen / Spalten verschiedener Tabellen abgebildet werden
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Strukturorientierte Ansätze (z.B. nach Florescu / Kossmann)- Ansatz generiert ohne vorhandene DTD und notwendige
Benutzereingaben ein DB-Schema - Ausgangspunkt ist die Baumstruktur des XML-Dokumentes
- Abbildung der Werte• Speichern der Werte in seperaten Tabellen - für jeden
Datentyp eine Wertetabelle• Speichern der Werte in Inlining-Verfahren
– Zeileninhalt aus Kantentabellen und Wertetabelle abgebildet
- Abbildung der Subelemente (Kanten)• Kantenansatz – für jeden Kantentyp eine Tabelle• Universaltabelle – alle Kanten in eine Tabelle viele Nullfelder
viele Tabellen
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Inhaltsorientierte Ansätze (z.B nach Shanmugasundaram, Tufte, He u.a.)- Struktur der in der DTD beschriebenen XML-Dokumentes
wird in DB-Schema umgesetzt
transformierteDTD
DTDGraph
DBSchema
komplexeDTD
- Basic Inliningfür jedes Element eigene Tabelle viele Tabellen leer
- Shared Inliningfestgelegte Elemente benutzen gemeinsam eine Tabelle
- Hybrid Inlining
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Elementorientierte Zerlegung / Speicherung- Vorteil
• Zugriff kann wie auf „normale“ SQL-Daten erfolgen(Performance, Datensicherheit, Zugriffschutz, ...)
- Nachteil• Overhead für Mapping
Dokumentorientierte Zerlegung / Speicherung- Vorteil
• Overhead für Mapping nicht notwendig- Nachteil
• Bearbeitung von Teildokumenten schwierig• Suche im Dokument aufwendig• schlechtere Performance
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Probleme beim Mapping XML-Dokument DB-Schema/Tabellen
- XML-Prolog- Kommentare- processing instructions- mixed content- rekursive Strukturen- Reihenfolgeerhaltung- Ablösung der DTD durch XML-Schema (Teile der Ansätze orientieren sich an der DTD)
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DB2 Oracle MS SQL2000 SYBASE
XML-Funkionalität mit UDF und Stored Procedures in einem Extender realisiert
XML-Funktionalität voll im DB-Kern integriert, XMLDeveloper Kit
XML-fähiger Datenbankserver
Seit ASE 12.0 integrierte XML-Unterstützung
Beim Mapping XML-Dokument Tabellen Definition einer Abbildungsvorschrift (DAD) benutzt
XML-Datentyp (Dokumentenorientierte Speicherung)
Speichern von XML-Dokumenten in DB mit OPENXML-Rowset-Provider
XML-Funktionalität mit Hilfe von Java realisiert
XML Funktionalität in mit Java und PL/SQL realisiert
Wiederauffinden / Erzeugen von XML-Dokumenten mit SELECT-Anweisung und FOR XML-Klausel oder der Xpath-Abfragesprache
Element-, Dokument-und hybride Speicherung möglichAbfrage auch mit XQL möglich
XML und DatenbankenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Decision Support Funktionalität des Datenbankservers wird:• erweitert / ausgebaut (z.B. Mehrdimensionalität)• ergänzt (ETL-Tools, Data Mining, OLAP)• teilweise verselbständigt in speziellen Komponenten des Datenbankservers
(Data Blades, Cartridges, Extender)• ganz verselbständigt in speziellen Data Warehouse-Servern
- „alte“ und neue Zugriffsverfahren werden eingesetzt:• Hype Cube Index• Bitmap Index• Bitmap Join Index• Materialized View
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
OLTP imVergleich mit DSS
Unterstützung der Geschäftsprozesse (prozessorientiert)
Untersützung von strategischen Entscheidungen (themenorientiert)
Identifikationskriterium eindimensional
Identifikationskriterium mehrdimensional
vorhersehbare Abfragen Ad-Hoc-Anfrageneinfache Abfragen komplexe Anfragenkleine bearbeitete Datenmengen große gefundene Datenmengenkurze Transaktionen lange TransaktionenUpdate/Select Select (Read Only)Echtzeit-Aktualisierung Batch AktualisierungDeailzeilenabfrage zusammenfassen und
gruppierenZeitbezug gegenwärtig Zeitbezug historisch und
gegenwärtig
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Eine wesentliche Unterstützung ist in der Erweiterung der GROUP-BY-Klausel zu sehen
GROUP BY ::=
Unterstützung der Data-Warehouse-Funktionalität in SQL:1999
<grouping column reference>| <rollup list>| <cube list>| <grand total>| <grouping sets list>| <concatenated grouping>
- Mit ROLLUP wird nach angegebenen Spalten gruppiert und zusätzlich für jede Gruppe eine Zeile eingefügt (Aggregationen entlang der Dimensionshierarchien)
- Mit CUBE kann mehrdimensional gruppiert werden- Mit GROUPING SETS lassen sich mehrere Gruppierungen nach
verschiedene Spalten und unterschiedlichen Gruppierungsarten kombinieren
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Beispiel für Gruppieren mit ROLLUPSELECT Monat, Bundesland, Verkaeufer, SUM(Umsatz) FROM VerkaeufeWHERE Jahr = ‘2001‘ GROUP BY ROLLUP(Monat, Bundesland, Verkaeufer)
Monat Bundesland Verkäufer SUMApril Sachsen Müller 25000April Sachsen Lehmann 15000April Sachsen - 40000April Thüringen Lehmann 15000April Thüringen - 15000April - - 55000Mai Sachsen Müller 25000Mai Sachsen - 25000Mai Thüringen Lehmann 15000Mai Thüringen - 15000Mai - - 40000- - - 95000
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Beispiel für Gruppieren mit CUBESELECT Monat, Bundesland, Verkaeufer, SUM(Umsatz) FROM VerkaeufeWHERE Jahr = ‘2001‘ GROUP BY CUBE(Monat, Bundesland, Verkaeufer)
Monat Bundesland Verkäufer SUMApril Sachsen Müller 25000April Sachsen Lehmann 15000April Sachsen - 40000April Thüringen Lehmann 15000April Thüringen - 15000April - Müller 25000April - Müller 30000April - - 55000
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Mai Sachsen Müller 25000Mai Sachsen - 25000Mai Thüringen Lehmann 15000Mai Thüringen - 15000Mai - Müller 25000Mai - Lehmann 15000Mai - - 40000- Sachsen Müller 50000- Sachsen Lehmann 15000- Sachsen - 65000- Thüringen Lehmann 30000- Thüringen - 30000- - Müller 50000- - Lehmann 45000- - - 95000
Data WarehousesNeue Funktionalitäten
Fortsetzung
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DB2 Oracle MS SQL2000 SYBASEData WarehouseServer der bei einer Standard-installationinstalliert wird
Integration von Business Intelligenceund Data WarehouseFunktionalität in DB-Server
Vielzahl von Funktionen für Data Mining und OLAP
speziellerData WarehouseServer Adaptive Server IQ
Steuerung über externes Tool, namens DB2Control Center + Tools für Auswertung
Bietet Data Mining, ROLAP und MOLAP an
DataTransformation Services (DTS)Satz grafischer Tools für DW-Design und ETL
WarehouseArchitekt als Data Warehouse und Data Mart Design Tool
hat GROUPING SETS, ROLLUP, CUBE, implementiert
hat GROUPING SETS, ROLLUP, CUBE, RANK OVER, PARTITION BY implementiert
hat GROUPING SETS, ROLLUP, CUBE, implementiert
Warehose ControlCenter Toolset zur Administration,Warehouse DB undData Marts
Data WarehousesNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- In SQL:1999 Datentypen CLOB und BLOB zur Speicherung langer Texte
• Benutzung eines LOCATORS- Besonderheiten bei der Arbeit mit derartigen Datentypen
• Spalten können nicht Primär- und Fremdschlüssel oder Join Spalte sein
• Kein GROUP BY, ORDER BY, EXCERT, INTERSECT, UNION,größer als, kleiner als, ...
- Volltextsuche- Volltextrecherche
Information Retrieval FunktionalitätenNeue Funktionalitäten
- konkrete DBMS haben ähnliche Datentypen
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
DB2 Oracle MS SQL2000 SYBASE
Textextender funktional mächtigste Textsuch-maschine von DB2 (mittels externer UDF)
ORACLE TEXT (ehemalsinterMediaText)Indizierungs-, Recherche- und Verwaltungssystem für Text
Datentypen TEXT, NTEXT (Unicode) und IMAGE zur Speicherung von Objekten bis 2 GB
Volltextsuche außerhalb des DB-Servers mittels Zusatzoptionen (Enhanced Full TextSearch)
Information Extender (mittels interner UDF)
Verwendung von SQL zum Indizieren, Durch-suchen und Analysieren
SELECT und UPDATE mittels Textpointer
DieFullSearcheEnginevon Verity führt die eigentliche Volltext-recherche durch
Net.Search Extender schnellste Suchmaschine von DB2 (mittels stored procedures)
Dokumentenservice Volltextsuche über Volltext-kataloge
Einbindung derVerity- Engine überComponentIntegration Service
Information Retrieval FunktionalitätenNeue Funktionalitäten
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Durchbruch zu OODBMS ist nicht erfolgt
• Migration der DB-Anwendungen und Datenbanken wird nicht beherrscht
• keine unterschiedlichen „Philosophien“ in der Datenbank eines Unternehmens
• Marktmacht der RDBMS-Anbieter• Administrationsprobleme
- erweiterte relationale RDBMS über den Prototyp nicht hinausgekommen- Interaktion und Integration von SQL und Java weit vorangetrieben
Gründe:
- zahlreiche Aktivitäten zwischen Speichern und Wiederauffinden von XML Dokumenten durch RDBMS und ORDBMS
- Leistungsfähigkeit, Komplexität und Umfang der RDBMS steigtFrage: Was wird von SQL:1999 umgesetzt werden?
- Tendenzen zur Spezialisierung (Extender, Data-Warehouse-Systeme)
Resümee / Ausblick
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
- Ziegler: „Die Evolution der RDBMS scheint ihren Höhepunkt erreicht zu haben und wenige bahnbrechende Neuerrungen lassen sich aus diesem Grund erzielen.“
- Bayer: „Allgemeingültige Methode und Tabellenstruktur zum Speichern und Wiederauffinden von XML-Dokumenten in/aus Dokumenten wird gefünden.
RDBMS werden noch lange Bestand haben.“
- Frage: Wie werden RDBMS/ORDBMS mit Multimedia-Daten fertig?
Resümee / Ausblick
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
Literaturquellen
/De01/ Deßloch, StefanSQL-Norm und JavaDatenbank-Spektrum (2000) H. 1, S. 25 - 32
/EnGrHa01/ Engels, Holger, Grüner, Andreas, Haaf, ArminFlügel verleihenwingS: Dynamische Webseiten mit JavaiX (2001) H. 1, S. 175 - 178
/Fi01/ Fischer, StephanJava und verteilte Systemeit + ti (2001) H. 3, S. 132 – 141
/He99/ Heid, JörnVieles neuJSP-Spezifikation 1,0 fertiggestelltiX (1999) H. 8, S. 114 – 119
/Me00/ Merkle, BerhardGeschäftsbohnenIm Vergleich: Acht EJB Application ServeriX (2000) H. 12, S. 68 - 75
/Mi99/ Middendorf, StefanWohlgeformte BohnenXML-Verarbeitung mit JavaiX (1999) H. 2, S. 42 – 49
/Mü01/ Münkel, BernhardPalastrevolutionMozquito Matrix Serverit (2001) H. 8/9, S. 47 – 67
/Mü99/ Müller, FrankFrisch gebranntNeuigkeiten von Java 2.0iX (1999) H. 4, S. 138 - 142
/Po-He01/ Poetzsch-Heffter, ArndJavas Sprachentwurf im Spiegel der Anforderungen an mobilen Programmcodeit + ti (2000) H. 3, S. 125 - 131
/Rei01/ Reibold, HolgerWo steht XML?Langfristig führt kein Weg an XML vorbeiit (2001) H. 10, S. 50 – 54
/RöRo00/ Röwekamp, Lars, Roßbach, PeterTonno e cipollaJSP-Tutorial, Teil 2: Model-View-Controller und DatenbankintegrationiX (2000) H. 8, S. 148 – 154
/RöRo00/ Röwekamp, Lars, Roßbach, PeterFrutti di MareJSP-Tutorial, Teil 3: TagLibs, XML und MailiX (2000) H. 9, S. 172 – 178
Java
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
LiteraturquellenSQL:1999
/Ac99/ Achtert, WernerSQL geht – OQL kommt?Die objektorientierte Sicht auf Datenbankenit (1999) H. 6, S. 8 - 17
/Bi01/ Bittner, RalfDie neuen Funktionen von SQL 3 und ihre Anwendungsmöglichkeiten in der PraxisDiplomarbeit (2001), HTW Dresden
/DeDe94/ Demuth, Birgit, Demuth, FrankSQL 3Ein SQL für das Jahr 2000?ix Multiuser Multiasking Magazin (1994), H. 3
/Ro99/ Roller, SteffenWer suchet, der findet ...SQL oder Volltextdatenbank?it (1999) H. 9, S. 19 - 22
Information Retrievel
/BaSchi00/ Bange, Carsten, Schinzer, Heiko D.Data-Warehouse-Lösungen im VergleichStudie des Business Application Research Centerit (2000) H. 9, S. 57 – 62
/KeKu01/ Keul, Ralf, Kurz, AndreasFlexible Schema-UnterstützungNeue Wege der „multidimensionalen“ Datenbankmodellierungit (2001) H. 6, S. 40 – 51
/RoEl99/ Roth, Christian, Elhardt, KlausHyper Cube IndexAlternative Indexstrukturen für das Data Warehouseit (1999) H. 11, S. 43 – 45
/Schl01/ Schlauer, AlfredUniverseller WissensspeicherSingle Engine-Based-Data Warehouseit (2001) H. 6, S. 29 - 33
Data Warehouse
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
LiteraturquellenXML
/Sy00/ Using XML with the Sybase Adaptive Server SQL DatabasesA Technical Whitepaperhttp://www.Sybase.com(November 2000)
/Be01/ Behme, HenningAngelpunktWo die Extensible Markup Language derzeit stehtiX (2001) H. 6, S. 52 –54
/BrKrOlScha01/ Bry, Francois, Kraus, Michael, Oltenau, Dan, Schaffert, SebastianSemistrukturierte DateniS (2001) H. 8, S. 230 - 233
/FK99/ Florescu, D., Kossmann, D.: A Performance Evaluation of Alternative Mapping Schemes for Storing XMLData in al Relational Database. Rapport de Recherche No. 3680 INRIA, (August 1999)
/Hu01/ Huhmann, JochemFast wie von selbstXML: mit DocBook und Emacs arbeiteniX (2001) H. 9, S. 134 - 138
/Ju00/ Jung, FrankOhne XML kein Electronic BusinesseXtensible Markup Language (2)it (2000) H. 3, S. 9 – 14
/Ju00/ Jung, FrankUniverselles DatenaustauschformateXtensible Markup Language (1)it (2000) H. 2, S. 9 – 14
/Ju01/ Jung, FrankB2B or not to be:eine Frage der richtigen DatenbankIntelligentes Datenmanagement mit XMLit (2001) H. 5, S. 36 – 40
/Kl01/ Klever, NikElementarteilchenXML-Schema: objektorientierte DokumenttypdefinitioneniX (2001) H. 6, S. 62 – 66
/Mi99/ Mintert, StefanServing XMLSML-Daten ins WWW lieferniX (1999) H. 10, S. 177 – 181
/Op99/ Oppel, KarinXML überfordert RDBMSXML und Datenbankenit (1999) H. 6, S. 24 – 26
/Rei99/ Reibold, HolgerInside XMLTechnische Umsetzungit (1999) H. 3, S. 73 – 78
/Sh99/ Shanmugasundaram, J. et al: Relational databases for querying XML documents: limitations and opportunities, Proc. 25 thVLDB conference,(1999), pp. 302-314
/We01/ Wegelin, MichaelNET baut auf XMLDie Kommunikationsstruktur der NET-Server-FamilieiX (2001) H. 6, S. 74 –80
/Zie01/ Ziegler, CaiWeltendämmerungXML und Datenbanken: Einblick in TaminoiX (2001) H. 6, S. 56 –61
Prof. Dr. Uwe WlokaFachbereich Informatik / Mathematik Dresden
/Al01/ Albrecht, JensBusiness Intelligence mit Cracle 9iDatenbank-Spektrum (2000)H. 1, S. 36 – 43Business Intelligence – dank Microsoft SQL Server 2000Datenbank-Spektrum (2000) H. 1, S. 44 – 45
/BoGa00/ Boiselle, Jürgen, Gareis, Klaus-MartinBeschleunigungsfaktorSybase: schneller in wenigen SchritteniX (2000) H. 3, S. 184 – 189
/DiHiSe99/ Dicken, Hans, Hippe, Gunther, Seeger,JürgenRelativ relationalLinux-Datenbanken im VergleichiX (1999) H. 4, S. 44 – 54
/GaSeRe99/
Gaedke, Martin, Segor, Christian, Rehse, JörnNächste StufeiX (1999) H. 2, S. 58 –62
/Ke01/ Ketzner, MartinAufwendiger ProzessGutes Design für Oracle 8i/9i-PlattformeniX (2001) H. 11, S. 126 - 129
/Me01/ Mertens, HolgerMehrdimensionale Analyse von Unternehmensdaten SQL Server 2000 von Microsoftit (2001) H. 7, S. 48 - 50
/Mes00/ Mesaric, GeraldOffen für vielesiFS: kostenloses Filessystem für Oracle8iiX (2000) H. 9, S. 60 – 63
/Mes99/ Mesaric, GeraldAlles JavaOracle 8i: ORDBMS für das InternetiX (1999) H. 6, S. 61 – 63
/Phi00/ Philipp, TobiasMobilität für das E-BusinessDaten-Management und E-Commerce mit SQL Anywhere 7.0it (2000) H. 6, S. 26 – 28
http://otn.oracle.com/products/content.htmlhttp://otn.oracle.com/products/ias/content.htmlhttp://www.eu.microsoft.com/germany/ms/datenbankserver/sql/2000http://www.informatikweek.dehttp://www.oracle.com/de/http://www.oracle.com/global/de/ip/deploy/as/index.html?content.htmlhttp://www.softeware.ibm.com/data/db2/extenders/www.alphaworks.ibm.comwww.ibm.com/developer/xmlwww.ibm.com/e-businesswww.software.ibm.com/data/db2www.software.ibm.com/data/db2/extenders/xmlext/index.html.
Literaturquellenkonkrete DBMS