Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden 75. Datenbankstammtisch Neue Funktionalitäten von DBMS - DBMS auf dem Wege zur eierlegenden Wollmilchsau? - Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Inhalt Dimensionen der bisherigen Funktionserweiterung • 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Dimensionen der bisherigen Funktionserweiterung Funktionserweiterungen rund um den Server SQL:1999 SQL:1992 SQL:1989 Maskengeneratoren Reportgeneratoren Programmgeneratoren SQL:1986 Administrationstools Monitoring und Tuning Tools Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Dimensionen der bisherigen Funktionserweiterung Entwicklung des SQL-Standards SQL:1986 „Database Language SQL“ ANSI X3.135-1986 bzw. ISO-9075-1987(E) 30 Befehle SQL:1989 „Database Language SQL with Integrity Enhancements“ ANSI X3.135-1989 bzw. ISO-9075-1989(E) 94 reservierte Worte 120 Seiten SQL:1992 „Database Language SQL“ ANSI X3-1992 bzw. ISO/IEC-9075 1992 bzw. DIN 66315 230 reservierte Worte 580 Seiten SQL:1999 „Information Technology Database Language SQL“ ANSI/ISO/IEC-9075 1999 ??? SQL 4 etwa 2003 2000 Seiten ?? reservierte Worte ?? Seiten Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dimensionen der bisherigen Funktionserweiterung 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 abgeleiteten Tabellen / 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dimensionen der bisherigen Funktionserweiterung SQL:1999 - 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Dimensionen der bisherigen Funktionserweiterung Entwicklungstools für DB-Anwendungen Phasen: Analyse/ Spezifikation Diskursbereich Tools: Entwurf Spezifikation keine/wenig Unterstützung Implementierung DBEntwurf Designer DBAnwendung Developer DBMS DB Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Impulse für die Weiterentwicklung von DBMS Entwicklungsimpulse aus Wissenschaft und Technik Multi- Media Hardwareentwicklung Vernetzung/ Internet/WWW neue Datenmodelle neue DBMS Funktionalitäten objektorientierte Programmierung Neue Sprachen Java, XML Speicherungs- und Zugriffsmethoden objektorientierte Anwendungsentwicklung Neue potentielle Anwendungen/ Anwender Schwachstellen des RDM Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Impulse für die Weiterentwicklung von DBMS Architekturgesichtpunkte • 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) Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Impulse für die Weiterentwicklung von DBMS kommerzielle Gesichtspunkte Standard DMBS vorrelationale relationale 1. Generation 2. Generation hierarchische relationale NW-DBMS DBMS IMS DB2 IDMS Informix DBS/R INGRES UDS bis ORACLE 8i DBMS-10 PROGRESS DBMS 1100 SYBASE MS-SQL 2000 IDS Markausschnitt Non-Standard DBMS nachrelationale 3.Generation erw. RDBMS OODBMS Objektrelationale DBMS POSTGRES AIM-P DASDBS PRIMA STARBURST EXODOS DB2 7.2 GEMSTONE ab ORACLE 9i ITASCA INFORMIX O2 OBJECTIVITY OBJECTSTORE ONTOS VERSANT Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Überblick Java SQL:1999 Objektorientierung DBMS Information Retrievel XML Strukturen in Tabellen Strukturen zwischen Tabellen Multimedia Internet ContentData Warehouse management OLAP / Data Mining Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Überblick Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen 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>] Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen UDT 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen - SDT können ein oder mehrere Attribute enthalten <name><type><default value> Standarddatentypen Collection Types Referenztypen Andere 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) Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen CREATE TYPE Mitarbeiter AS( Mitnr VARCHAR(5), Name VARCHAR(10), Vorname VARCHAR(10), CREATE TYPE Adresse AS( Anschrift Adresse, Plz VARCHAR(20), Alt SMALLINT, Ort VARCHAR(20), Beruf VARCHAR(15), Strasse VARCHAR(30)) Gehalt INTEGER, INSTANTIABLE NOT FINAL; Telnr VARCHAR(12)) INSTANTIABLE NOT FINAL METHOD Einkommen() RETURNS INTEGER; CREATE TYPE Leiter UNDER Mitarbeiter AS( Bonus INTEGER) INSTANTIABLE NOT FINAL OVERRIDING METHOD Einkommen() RETURNS INTEGER; Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen Definition der Methoden CREATE METHOD Einkommen RETURNS INTEGER FOR Mitarbeiter RETURN (12*Gehalt); Für Leiter wird die Methode des Mitarbeiters überschrieben. CREATE METHOD Einkommen RETURNS INTEGER FOR Leiter BEGIN DECLARE result INTEGER; SET result = (SELF AS Mitarbeiter).Einkommen(); RETURN (result + SELF.Bonus); END; Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen 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 Adresse REF IS oid SYSTEM GENERATED CREATE TABLE Mit OF Mitarbeiter REF IS oid SYSTEM GENERATED CREATE TABLE Leit OG Leiter UNDER Mit Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen Dateneingabe INSERT 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 Anzeige Name, Vorname mit entsprechendem Einkommen SELECT m.Name, m.Vorname, m.Einkommen() FROM Mit m Um den Wohnort der Mitarbeiter aus der Adresse zu erhalten, muss in die Adress-Struktur hineingegriffen werden. SELECT m.Name, m.Vorname, m.Anschrift.Ort AS Wohnort FROM Mit Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen 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)) Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Strukturen in Tabellen / zwischen Tabellen Dateneingabe INSERT 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 Punktschreibweise, 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 Mit WHERE Mitnr = ‘101‘ Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Standards neben SQL:1999 SQL-Java SQLJ Part 0: Embedded SQL in Java SQLJ Part 1: Routinen in Java Implementierung von SQL-Routinen in Java SQLJ Part 2: SQL-Typen in Java Implementierung von strukturierten Datentypen in Java SQL/MM (Multimedia) SQL/MM Part 1: Framework Überblick und Konformanzklausel SQL/MM Part 2: Fulltext Regelt Konstruktion von Volltext und Suchmustern SQL/MM Part 3: Spatial Informationen zur Speicherung, Manipulation und Suche von gemetrischen und topografischen Daten SQL/MM Part 4: Still Image Informationen zum verarbeiten und analysieren von Standbildern Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java - in den letzten Jahren der Standardisierung von SQL:1999 zumehmend 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 dynamic SQL JDBC 1.2 2.0 static SQL SQL OLB ANSI ISO DB Server SQL:1999 Server-side Logic SQL:1992 SQLJ Part 1 stored procedures user-define functions SQL Routines advanced datatypes PSM structured types External Routines subtyping SQLJ Part 2 methods Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Ablaufszenario der JDBC-Benutzung Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java JDBC Zugriff auf SQL-Datenbanken Verbindungsaufbau String url = “jdbc:db2:mydatabase“; Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver“); Connection con = DriverManager.getConnection(url, “user“, “password“); SQL-Statement erzeugen String sqlstr = “SELECT Name, Vorname FROM Mit WHERE Mitnr = ‘101‘“; Statement stmt = con.createStatement(); SQL-Statement ausführen ResultSet rs = stmt.executeQuery(sqlstr); Resultat verarbeiten rs.next(); String name = rs.getString(1); String vorname = rs.getString(2); Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten SQL und Java Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java SQL/OLB Einbettung in Java Verbindungsaufbau String url = “jdbc:db2:mydatabase“; Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver“); DefaultContext.setDefaultContext( new DefaultContext((url, “user“, “password“, false)); SQL-Statement ausführen und Resultate verarbeiten String name, vorname; #sql {SELECT Name, Vorname INTO :name, :vorname FROM Mit WHERE Mitnr = ‘101‘} System.out.println(name + “, “ + vorname); Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten SQL und Java Möglichkeiten zur Authorisierung - Statisches SQL in Verbindung mit dem Programm • 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java SQL Routinen, die Java benutzen (SQLJ Part 1) - Benutzung von statischen Java Methoden, zur Implementierung von Stored Procedures und UDF • 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Benutzerdefinierte Routinen in SQL:1999 Aufrufe festgelegt stored procedure In SQLJ Teil 1 Implementierung festgelegt user defined function SQL-Routinen (nach SQL-PSM) Def.: IN/OUT-Parameter dynamic result set Aufruf: CALL-Statement Java-Klassen implementieren Verhalten SP und UDF Externe Routinen komp. Javacode in DB installiert (C, Java, ...) nur IN-Parameter ein Resultat dessen Datentyp definiert wird innerhalb beliebiger DML-Befehle Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Implementierung von benutzerdefinierten Routinen Java Klasse implementiert das Verhalten der Prozeduren public class MitProzedur{ public static void avgGehalt(String beruf, int gehalt) throws SQLExeption{ #sql {SELECT AVG(Gehalt) INTO :gehalt FROM Mit Beruf = :beruf}; } } Installieren des SQLJ jar-files in der Datenbank CALL SQLJ.INSTALL_JAR(‘file:/home/user/classes/Mit.jar‘, ‘Mit_jar‘); Vollständige DDL zum Erzeugen der Prozedur CREATE PROCEDURE avgGehalt(IN beruf VARCHAR(30), OUT gehalt NUMBER(10)) EXTERNAL NAME ‘Mit_jar:MitProzedur.avgGehalt‘ LANGUAGE JAVA PARAMETER STYLE JAVA Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java SQL Typen, die Java benutzen (SQLJ Part 2) - Benutzung von Java Klassen zur Definition von SQL-Typen • 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Erweiterte CREATE TYPE Syntax zur Abbildung von Java-Klassen in SQL Typen - DLL Operation oder - Abbildungsbeschreibung im deployment descriptor - Unterstützung der Abbildung von Java SQL class user-defined (structured) type member variable attribute method method constructor constructor method static method static method static variable static observer method Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten SQL und Java - 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 • Modifikation der statischen Variable werden nicht unterstützt • abgebildet auf eine statische SQL Methode, die den Wert der statischen Variable zurückgibt Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Implementierung von strukturierten Datentypen Java Klasse 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) {...}; } Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java Implementierung von strukturierten Datentypen SQL DDL 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‘ ) Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten SQL und Java DB2 Oracle MS SQL2000 JVM in DB-Server integriert Jserver JVM in DBServer implementiert Anbindung von Java- JVM in DB-Server Programmen lediglich integriert mit JDBC 2.0 kompatiblen Treiber Stored Procedure und UDF programmiert in Java werden im Datenbankkern ausgeführt Java-Klassen als Schemaobjekt Definition von JavaKlassen mit CREATE JAVA möglich .NET in Konkurrenz zu Java SQLJ Part 1 und SQLJ Part 2 werden unterstützt mit SQLJ Translator, SQLJ Runtime, SQL Profile wird SQL:1999/OLB unterstützt SYBASE Java-Klassen in der Datenbank gespeichert Java Methoden in SQL aufgerufen Java.Net unterstützt SQLJ Part 1 voll SQLJ Part 2 weitestgehend unterstützt SQL:1999/OLB wird nicht unterstützt Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten XML und Datenbanken - 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten XML und Datenbanken - 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken Information Retrievel Systeme • Medlars • Juris • Golem • Spirs XML Datenbanken unstrukturierte Daten semistrukturierte Daten • Tamino • Natix DBMS • OODBMS • RDBMS • Netzwerk-DBMS • Hierarchische DBMS strukturierte Daten Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken Aspekt Erscheinungsbild Strukturierung sinntragende Daten „mixed content“ Beispiele Grobeinteilung der Dokumente DokumentenDaten-zentrisch zentrisch „lesbare“ Dokumente wie Daten im RDBMS selten genau gleich, meist einheitlich, einfach bis komplex, meist einfach tief auf allen Ebenen, in Blattelementen grob granuliert und Attributen, fein granuliert viel Ausnahme Zeitschriftenbeiträge, Bücher, Handbücher, Vorträge Telefonbücher, Bestellungen, Fahrpläne, Produktkataloge Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken XML Datenbanken - relationale DBMS • Element-orientierte Zerlegung/Speicherung/Komposition • Dokument-orientierte Speicherung/Wiederauffinden - objektorientierte DBMS - native XML-DBMS Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken Element-orientierte Zerlegung/Speicherung - Inhalt oder Struktur als Orientierungspunkt - generische Zerlegung / Speicherung (generisches Mapping) vorgefundene Strukturen werden nach verschiedenen Ansätzen umgesetzt XML-Dokumente DB-Schema DTD Tabelle XML Schema -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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken 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 Subelemente (Kanten) • Kantenansatz – für jeden Kantentyp eine Tabelle viele Tabellen • Universaltabelle – alle Kanten in eine Tabelle viele Nullfelder - 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken Inhaltsorientierte Ansätze (z.B nach Shanmugasundaram, Tufte, He u.a.) - Struktur der in der DTD beschriebenen XML-Dokumentes wird in DB-Schema umgesetzt komplexe DTD transformierte DTD DTD Graph - Basic Inlining für jedes Element eigene Tabelle viele Tabellen leer - Shared Inlining festgelegte Elemente benutzen gemeinsam eine Tabelle - Hybrid Inlining DB Schema Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten XML und Datenbanken 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 Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken Probleme beim Mapping XML-Dokument - 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) DB-Schema/Tabellen Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten XML und Datenbanken 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, XML Developer Kit XML-fähiger Datenbankserver Seit ASE 12.0 integrierte XMLUnterstützung Beim Mapping XMLDokument Tabellen Definition einer Abbildungsvorschrift (DAD) benutzt XML-Funktionalität mit XML-Datentyp Speichern von XML(Dokumentenorientier Dokumenten in DB mit Hilfe von Java realisiert te Speicherung) OPENXML-RowsetProvider XML Funktionalität in mit Java und PL/SQL realisiert Wiederauffinden / Erzeugen von XMLDokumenten mit SELECT-Anweisung und FOR XML-Klausel oder der XpathAbfragesprache Element-, Dokumentund hybride Speicherung möglich Abfrage auch mit XQL möglich Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses - 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses OLTP imVergleich mit DSS Unterstützung der Geschäftsprozesse (prozessorientiert) Untersützung von strategischen Entscheidungen (themenorientiert) Identifikationskriterium eindimensional Identifikationskriterium mehrdimensional vorhersehbare Abfragen einfache Abfragen Ad-Hoc-Anfragen komplexe Anfragen kleine bearbeitete Datenmengen große gefundene Datenmengen kurze Transaktionen lange Transaktionen Update/Select Select (Read Only) Echtzeit-Aktualisierung Deailzeilenabfrage Batch Aktualisierung zusammenfassen und gruppieren Zeitbezug gegenwärtig Zeitbezug historisch und gegenwärtig Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Neue Funktionalitäten Data Warehouses Dresden Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses Unterstützung der Data-Warehouse-Funktionalität in SQL:1999 - Eine wesentliche Unterstützung ist in der Erweiterung der GROUP-BY-Klausel zu sehen GROUP BY ::= <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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses Beispiel für Gruppieren mit ROLLUP SELECT Monat, Bundesland, Verkaeufer, SUM(Umsatz) FROM Verkaeufe WHERE Jahr = ‘2001‘ GROUP BY ROLLUP(Monat, Bundesland, Verkaeufer) Monat Bundesland Verkäufer SUM April Sachsen Müller 25000 April Sachsen Lehmann 15000 April Sachsen - 40000 April Thüringen Lehmann 15000 April Thüringen - 15000 April - - 55000 Mai Sachsen Müller 25000 Mai Sachsen - 25000 Mai Thüringen Lehmann 15000 Mai Thüringen - 15000 Mai - - 40000 - - - 95000 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses Beispiel für Gruppieren mit CUBE SELECT Monat, Bundesland, Verkaeufer, SUM(Umsatz) FROM Verkaeufe WHERE Jahr = ‘2001‘ GROUP BY CUBE(Monat, Bundesland, Verkaeufer) Monat Bundesland Verkäufer SUM April Sachsen Müller 25000 April Sachsen Lehmann 15000 April Sachsen - 40000 April Thüringen Lehmann 15000 April Thüringen - 15000 April - Müller 25000 April - Müller 30000 April - - 55000 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Fortsetzung Data Warehouses Mai Sachsen Müller 25000 Mai Sachsen - 25000 Mai Thüringen Lehmann 15000 Mai Thüringen - 15000 Mai - Müller 25000 Mai - Lehmann 15000 Mai - - 40000 - Sachsen Müller 50000 - Sachsen Lehmann 15000 - Sachsen - 65000 - Thüringen Lehmann 30000 - Thüringen - 30000 - - Müller 50000 - - Lehmann 45000 - - - 95000 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Data Warehouses DB2 Oracle MS SQL2000 SYBASE Data Warehouse Server der bei einer Standardinstallation installiert wird Vielzahl von Integration von Business Intelligence Funktionen für Data und Data Warehouse Mining und OLAP Funktionalität in DBServer spezieller Data Warehouse Server Adaptive Server IQ Steuerung über externes Tool, namens DB2 Control Center + Tools für Auswertung Bietet Data Mining, ROLAP und MOLAP an Data Transformation Services (DTS) Satz grafischer Tools für DWDesign und ETL Warehouse Architekt 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 Control Center Toolset zur Administration, Warehouse DB und Data Marts Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Information Retrieval Funktionalitäten - In SQL:1999 Datentypen CLOB und BLOB zur Speicherung langer Texte - konkrete DBMS haben ähnliche Datentypen - Besonderheiten bei der Arbeit mit derartigen Datentypen • Benutzung eines LOCATORS • 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 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Neue Funktionalitäten Information Retrieval Funktionalitäten DB2 Oracle MS SQL2000 SYBASE Textextender funktional mächtigste Textsuchmaschine von DB2 (mittels externer UDF) ORACLE TEXT (ehemals interMediaText) Indizierungs-, Recherche- und Verwaltungssystem für Text Datentypen TEXT, NTEXT (Unicode) und IMAGE zur Speicherung von Objekten bis 2 GB Volltextsuche außerhalb des DBServers mittels Zusatzoptionen (Enhanced Full Text Search) Information Extender (mittels interner UDF) Verwendung von SQL SELECT und Die zum Indizieren, Durch- UPDATE mittels FullSearcheEngine suchen und Analysieren Textpointer von Verity führt die eigentliche Volltextrecherche durch Net.Search Extender schnellste Suchmaschine von DB2 (mittels stored procedures) Dokumentenservice Volltextsuche über Volltextkataloge Einbindung der Verity- Engine über Component Integration Service Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Resümee / Ausblick - Durchbruch zu OODBMS ist nicht erfolgt Gründe: • 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 - zahlreiche Aktivitäten zwischen Speichern und Wiederauffinden von XML Dokumenten durch RDBMS und ORDBMS - Leistungsfähigkeit, Komplexität und Umfang der RDBMS steigt Frage: Was wird von SQL:1999 umgesetzt werden? - Tendenzen zur Spezialisierung (Extender, Data-Warehouse-Systeme) Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Resümee / Ausblick - 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? Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Literaturquellen Java /De01/ Deßloch, Stefan SQL-Norm und Java Datenbank-Spektrum (2000) H. 1, S. 25 - 32 /Mü99/ /EnGrHa01/ Engels, Holger, Grüner, Andreas, Haaf, Armin Flügel verleihen wingS: Dynamische Webseiten mit Java iX (2001) H. 1, S. 175 - 178 /Po-He01/ /Fi01/ Fischer, Stephan Java und verteilte Systeme it + ti (2001) H. 3, S. 132 – 141 /He99/ Heid, Jörn Vieles neu JSP-Spezifikation 1,0 fertiggestellt iX (1999) H. 8, S. 114 – 119 /Me00/ Merkle, Berhard Geschäftsbohnen Im Vergleich: Acht EJB Application Server iX (2000) H. 12, S. 68 - 75 /Mi99/ Middendorf, Stefan Wohlgeformte Bohnen XML-Verarbeitung mit Java iX (1999) H. 2, S. 42 – 49 /Mü01/ Münkel, Bernhard Palastrevolution Mozquito Matrix Server it (2001) H. 8/9, S. 47 – 67 /Rei01/ /RöRo00/ /RöRo00/ Müller, Frank Frisch gebrannt Neuigkeiten von Java 2.0 iX (1999) H. 4, S. 138 - 142 Poetzsch-Heffter, Arnd Javas Sprachentwurf im Spiegel der Anforderungen an mobilen Programmcode it + ti (2000) H. 3, S. 125 - 131 Reibold, Holger Wo steht XML? Langfristig führt kein Weg an XML vorbei it (2001) H. 10, S. 50 – 54 Röwekamp, Lars, Roßbach, Peter Tonno e cipolla JSP-Tutorial, Teil 2: Model-View-Controller und Datenbankintegration iX (2000) H. 8, S. 148 – 154 Röwekamp, Lars, Roßbach, Peter Frutti di Mare JSP-Tutorial, Teil 3: TagLibs, XML und Mail iX (2000) H. 9, S. 172 – 178 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Literaturquellen SQL:1999 /Ac99/ Achtert, Werner SQL geht – OQL kommt? Die objektorientierte Sicht auf Datenbanken it (1999) H. 6, S. 8 - 17 /Bi01/ Bittner, Ralf Die neuen Funktionen von SQL 3 und ihre Anwendungsmöglichkeiten in der Praxis Diplomarbeit (2001), HTW Dresden /DeDe94/ Demuth, Birgit, Demuth, Frank SQL 3 Ein SQL für das Jahr 2000? ix Multiuser Multiasking Magazin (1994), H. 3 Information Retrievel /Ro99/ Roller, Steffen Wer suchet, der findet ... SQL oder Volltextdatenbank? it (1999) H. 9, S. 19 - 22 Data Warehouse /BaSchi00/ /KeKu01/ /RoEl99/ /Schl01/ Bange, Carsten, Schinzer, Heiko D. Data-Warehouse-Lösungen im Vergleich Studie des Business Application Research Center it (2000) H. 9, S. 57 – 62 Keul, Ralf, Kurz, Andreas Flexible Schema-Unterstützung Neue Wege der „multidimensionalen“ Datenbankmodellierung it (2001) H. 6, S. 40 – 51 Roth, Christian, Elhardt, Klaus Hyper Cube Index Alternative Indexstrukturen für das Data Warehouse it (1999) H. 11, S. 43 – 45 Schlauer, Alfred Universeller Wissensspeicher Single Engine-Based-Data Warehouse it (2001) H. 6, S. 29 - 33 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Literaturquellen XML /Sy00/ /Be01/ /BrKrOlScha01/ /FK99/ /Hu01/ /Ju00/ /Ju00/ Using XML with the Sybase Adaptive Server SQL Databases A Technical Whitepaper http://www.Sybase.com (November 2000) Behme, Henning Angelpunkt Wo die Extensible Markup Language derzeit steht iX (2001) H. 6, S. 52 –54 Bry, Francois, Kraus, Michael, Oltenau, Dan, Schaffert, Sebastian Semistrukturierte Daten iS (2001) H. 8, S. 230 - 233 Florescu, D., Kossmann, D.: A Performance Evaluation of Alternative Mapping Schemes for Storing XML Data in al Relational Database. Rapport de Recherche No. 3680 INRIA, (August 1999) Huhmann, Jochem Fast wie von selbst XML: mit DocBook und Emacs arbeiten iX (2001) H. 9, S. 134 - 138 Jung, Frank Ohne XML kein Electronic Business eXtensible Markup Language (2) it (2000) H. 3, S. 9 – 14 Jung, Frank Universelles Datenaustauschformat eXtensible Markup Language (1) it (2000) H. 2, S. 9 – 14 /Ju01/ /Kl01/ /Mi99/ /Op99/ /Rei99/ /Sh99/ /We01/ /Zie01/ Jung, Frank B2B or not to be: eine Frage der richtigen Datenbank Intelligentes Datenmanagement mit XML it (2001) H. 5, S. 36 – 40 Klever, Nik Elementarteilchen XML-Schema: objektorientierte Dokumenttypdefinitionen iX (2001) H. 6, S. 62 – 66 Mintert, Stefan Serving XML SML-Daten ins WWW liefern iX (1999) H. 10, S. 177 – 181 Oppel, Karin XML überfordert RDBMS XML und Datenbanken it (1999) H. 6, S. 24 – 26 Reibold, Holger Inside XML Technische Umsetzung it (1999) H. 3, S. 73 – 78 Shanmugasundaram, J. et al: Relational databases for querying XML documents: limitations and opportunities, Proc. 25 th VLDB conference, (1999), pp. 302-314 Wegelin, Michael NET baut auf XML Die Kommunikationsstruktur der NET-Server-Familie iX (2001) H. 6, S. 74 –80 Ziegler, Cai Weltendämmerung XML und Datenbanken: Einblick in Tamino iX (2001) H. 6, S. 56 –61 Prof. Dr. Uwe Wloka Fachbereich Informatik / Mathematik Dresden Literaturquellen konkrete DBMS /Al01/ Albrecht, Jens Business Intelligence mit Cracle 9i Datenbank-Spektrum (2000) H. 1, S. 36 – 43 /Mes00/ Mesaric, Gerald Offen für vieles iFS: kostenloses Filessystem für Oracle8i iX (2000) H. 9, S. 60 – 63 Business Intelligence – dank Microsoft SQL Server 2000 Datenbank-Spektrum (2000) H. 1, S. 44 – 45 /Mes99/ Mesaric, Gerald Alles Java Oracle 8i: ORDBMS für das Internet iX (1999) H. 6, S. 61 – 63 /Phi00/ Philipp, Tobias Mobilität für das E-Business Daten-Management und E-Commerce mit SQL Anywhere 7.0 it (2000) H. 6, S. 26 – 28 /BoGa00/ Boiselle, Jürgen, Gareis, Klaus-Martin Beschleunigungsfaktor Sybase: schneller in wenigen Schritten iX (2000) H. 3, S. 184 – 189 /DiHiSe99/ Dicken, Hans, Hippe, Gunther, Seeger, Jürgen Relativ relational Linux-Datenbanken im Vergleich iX (1999) H. 4, S. 44 – 54 Gaedke, Martin, Segor, Christian, Rehse, Jörn Nächste Stufe iX (1999) H. 2, S. 58 –62 /GaSeRe9 9/ /Ke01/ Ketzner, Martin Aufwendiger Prozess Gutes Design für Oracle 8i/9i-Plattformen iX (2001) H. 11, S. 126 - 129 /Me01/ Mertens, Holger Mehrdimensionale Analyse von Unternehmensdaten SQL Server 2000 von Microsoft it (2001) H. 7, S. 48 - 50 http://otn.oracle.com/products/content.html http://otn.oracle.com/products/ias/content.html http://www.eu.microsoft.com/germany/ms/datenbankserver/sql/ 2000 http://www.informatikweek.de http://www.oracle.com/de/ http://www.oracle.com/global/de/ip/deploy/as/index.html?conten t.html http://www.softeware.ibm.com/data/db2/extenders/ www.alphaworks.ibm.com www.ibm.com/developer/xml www.ibm.com/e-business www.software.ibm.com/data/db2 www.software.ibm.com/data/db2/extenders/xmlext/index.html.