Datenbanken im Wandel des Stammtisches Datenbanken im Wandel des Stammtisches 1. Ausgangspunkte 1.1 Koexistenz der Modelle und Systeme 1.2 Stand bei relationalen DBMS 1.3 Suche nach neuen Modellen/Entwicklung neuer Systeme 2. Die Ablösung der relationalen DBMS ? 2.1 Der revolutionäre Weg zu OODBMS 2.2 Weiterentwicklung der relationalen DBMS 3. Funktionsexplosion bei relationalen DBMS 3.1 Überblick 3.2 Ausgewählte Funktionalitäten von SQL: 1999 3.3 SQL und XML 4. Quo vadis Datenmodelle/DBMS 4.1 SQL: 2003 4.2 Visionen Ausgangspunkte 93/94 • Koexistenz der „klassischen“ Datenmodelle und Datenbankbetriebssysteme (DBMS) • Prototypen neuer Systeme zur Überwindung der Nachteile des relationalen Datenmodells und relationaler DBMS • Evolutionäre und revolutionäre Ansätze der Weiterentwicklung Koexistenz der Datenmodelle und DBMS I Hierarchische + Netzwerk DBMS Relationale DBMS Nachrelationale DBMS verwalten ca. 1991 75% 1996 55 – 65% ¹ des Datenvolumens verwalten ca. 1991 25% 1996 30 – 35% des Datenvolumens verwalten ca. 1991 nicht relevant 1996 < 5% des Datenvolumens leisten „Hauptarbeit“, fast nur noch Routinenutzung ² Entwicklung neuer Anwendungen, Routinenutzung F/E, Prototypeinsätze erste Praxiseinsätze Koexistenz der Datenmodelle und DBMS II Standard DBMS Non-Standard-DBMS vorrelationale relationale nachrelationale 1. Generation 2. Generation 3. Generation hierarchische NW-DBMS relationale DBMS erw. rel. DBMS OODBMS DB2 INFORMIX 17,5%¹ INGRES ORACLE 35,1% PROGRES SYBASE 21,8% POSTGRES AIM – P DASDBS PRIMA STARBURST EXODUS GEMSTONE 11%² ITASCA O2 10% OBJECTIVITY 9% OBJECTSTORE ONTOS 8% VERSANT 9% IMS IDMS DBS/R UDS DBMS-10 DMS 1100 IDS Ausgangsbasis RDBMS (1993) Version INFORMIX SYBASE INGRES ORACLE SE 5.01 Online 5.1 SQLServer 4.8 INGRES 6.4/03 Oracle 7 Umsatz 1992 - weltweit - Deutschland 284Mio. DM 58Mio. DM 265Mio. $ 290Mio. $ 1.2Mrd. $ k.A. 41Mio. $ 137Mio. DM Installationen 650.000 80.000 6.500 300 >30.000 >2.000 >200.000 k.A. - weltweit - Deutschland 1.300 85 1.600 40 >1.400 >120 k.A. 198 Firmengründung 1980 1984 1980 1977 - weltweit - Deutschland Mitarbeiter 1992 Hauptkomponenten ausgewählter DBMS INFORMIX SYBASE INGRES ORACLE Server Informix - SE - Online Informix - ESQL - ISQL - 4GL - OpenCase - DBA - ViewPoint - Hyper Script - TP / XA SQL – Server SQL – Toolset - DEFT - APT Workbench - Data Workbench - Embedded SQL - SQR (SQL – RG) - SQL – Debug - SA Companion Open Client Open Server DB – Server Terminals - Tools Windows – Tools Gateways INGRES – NET INGRES – STAR Cooperative Server SQL* Forms SQL* Report Writer SQL* Net SQL* Star SQL* Connect Oracle Graphics Oracle Book Viewer Stand Ende 1994 INFORMIX MultiTreated-Server SYBASE INGRES X X costbased wissensbassiert Stored Procedure im Server X X X X Trigger / Rules – X X X Referentielle Integrität X – X X Nutzerdef. Datentypen – X – X Optimierer X ORACLE X costbased costbased regelbasiert Hauptschwachstellen des relat. Datenmodells • Entitytypen und Beziehungstypen werden gleichermaßen als Relation dargestellt ( flat files ) • Verteilung eines Anwendungsobjektes auf mehrere Relationen ( Schlüsselredundanz, Performanceverluste durch notwendige Joins ) • Struktur, Semantik und Verhalten komplex strukturierter Objekte können nicht modelliert werden • Bei Wirtssprachenkopplung entsteht „impedance mismatch“. Ansätze zur Überwindung der Schwachstellen • Evolutionärer Ansatz – Modelle • NF² – Modell • Molekül – Atom – Modell – Prototypen / Systeme • POSTGRES, AIM – P, DASDBS, PRIMA, STARBURST, EXODUS • Revolutionärer Ansatz – Objektorientierte Datenmodelle – Systeme • GEMSTONE, ITASCA, O2, OBJECTIVITY, OBJECTSTORE, ONTOS, VERSANT, POET, Abb. von Strukturen in Tabellen, NF²–Modell Definition einer strukturierten Tabelle • Create Polyeder { [Id:string(5), Flächen: { [Id:string(5), Kanten: { [Id:string(5), Punkt1: [x:real, y:real, z:real], Punkt2: [x:real, y:real, z:real] ]}, Oberfläche:string(10) ]}, Gewicht:real, Material:string(10) ]} Grundgedanken des Molekül-Atom-Modells Zusammenfassung der Atome zu Molekülen Datenbanken im Wandel des Stammtisches 1. Ausgangspunkte 1.1 Koexistenz der Modelle und Systeme 1.2 Stand bei relationalen DBMS 1.3 Suche nach neuen Modellen/Entwicklung neuer Systeme 2. Die Ablösung der relationalen DBMS ? 2.1 Der revolutionäre Weg zu OODBMS 2.2 Weiterentwicklung der relationalen DBMS 3. Funktionsexplosion bei relationalen DBMS 3.1 Überblick 3.2 Ausgewählte Funktionalitäten von SQL: 1999 3.3 SQL und XML 4. Quo vadis Datenmodelle/DBMS 4.1 SQL: 2003 4.2 Visionen Szenario der offenen Fragen • Weiterentwicklung der vorhandenen, in Nutzung befindlichen relationalen DBMS (RDBMS) • Anwendung objektorientierter DBMS (OODBMS) • Entwicklung (Funktionalität, Architektur und Performance) von Multi-Media-DBMS (MMDBMS) Verunsicherung der Beteiligten bei OODBMS • Anwender – Sind die OODBMS die „Nachfolger“ der relationalen DBMS? – Werden die relationalen vollständig durch OODBMS ersetzt? – Besetzen die OODBMS nur Marksegmente für die relationale DBMS ungeeignet sind? • Anbieter – Lohnen sich kostspielige Entwicklungen OODBMS, wenn Größe und Aufnahmebereitschaft des Marktes schwer einzuschätzen sind? – Wo gibt es Anwendungserfahrungen mit OODBMS? – Bei OODBMS oft nur Anbieter mit geringer Wirtschaftskraft Antworten / Meinungen zu OODBMS • Gartner Group - OODBMS nur Nischenmodelle - Nischenmärkte liegen im Bereich CAD, CAM, CASE - EDV-Abteilungen werden einheitliche Infrastrukturen bevorzugen, um Probleme beim Systemmanagement verschiedener Technologien zu umgehen Æ wenig kommerzielle Akzeptanz • Nexus GmbH (Gesell. f. wissensverarbeitende Systeme) - In 5 bis 10 Jahren wird sich der DB-Markt in Richtung der OODBMS verlagern - Nur OODBMS sind in der Lage die objektorientierte Programmierung ohne konzeptuelle Fehlanpassung und mit maximaler Performance zu unterstützen Entwicklung von OODBMS 1. Wechselseitige Beeinflussung der Technologie der objektorientierten Programmierung und der (relationalen) Datenbanktechnologie Æ erste Prototypen und kommerziell nutzbare Produkte 2. Abgrenzung- / Definitionsversuche • Object Oriented Database System Manifesto • Third-Generation Database System Manifesto • Manifesto von Darwen und Date 3. Erste Standardisierungsergebnisse (Industrie Standards) • OMG-91 (Object Management Group) The Common Object Request Broker Architecture • ODMG-93 (Object Database Management Group) The Object Database Standard 4. Notwendig: Repräsentative Anwendungen, kommerzielle Akzeptanz, Lösung des Migrationsproblems Entwicklung von OODBMS 1. Wechselseitige Beeinflussung der Technologie der objektorientierten Programmierung und der (relationalen) Datenbanktechnologie Æ erste Prototypen und kommerziell nutzbare Produkte 2. Abgrenzung- / Definitionsversuche • Object Oriented Database System Manifesto • Third-Gerneration Database System Manifesto • Manifesto von Darwen und Date 3. Erste Standardisierungsergebnisse (Industrie Standards) • OMG-91 (Object Management Group) The Common Object Request Broker Architecture • ODMG-93 (Object Database Management Group) The Object Database Standard 4. Notwendig: Repräsentative Anwendungen, kommerzielle Akzeptanz Lösung des Migrationsproblems Entwicklung von OODBMS 1. Wechselseitige Beeinflussung der Technologie der objektorientierten Programmierung und der (relationalen) Datenbanktechnologie Æ erste Prototypen und kommerziell nutzbare Produkte 2. Abgrenzung- / Definitionsversuche • Object Oriented Database System Manifesto • Third-Gerneration Database System Manifesto • Manifesto von Darwen und Date 3. Erste Standardisierungsergebnisse (Industrie Standards) • OMG-91 (Object Management Group) The Common Object Request Broker Architecture • ODMG-93 (Object Database Management Group) The Object Database Standard 4. Notwendig: Repräsentative Anwendungen, kommerzielle Akzeptanz Lösung des Migrationsproblems Entwicklung von OODBMS 1. Wechselseitige Beeinflussung der Technologie der objektorientierten Programmierung und der (relationalen) Datenbanktechnologie Æ erste Prototypen und kommerziell nutzbare Produkte 2. Abgrenzung- / Definitionsversuche • Object Oriented Database System Manifesto • Third-Gerneration Database System Manifesto • Manifesto von Darwen und Date 3. Erste Standardisierungsergebnisse (Industrie Standards) • OMG-91 (Object Management Group) The Common Object Request Broker Architecture • ODMG-93 (Object Database Management Group) The Object Database Standard 4. Notwendig: Repräsentative Anwendungen, kommerzielle Akzeptanz, Lösung des Migrationsproblems Objektorientiert contra relational • Migrationsproblem wird praktisch nicht bewältigt • Relationale und objektbezogene Sichten (nur Strukturaspekt) können für ein Anwendungsgebiet sinnvoll sein, je nach dem zu realisierenden Prozess • Funktionale Weiterentwicklung der RDBMS • Relationale und objektorientierte DBMS nähern einander an (z.B. abstrakte Datentypen in relationalen Systemen und Objektorientierung in SQL 3 oder SQL-Schnittstelle für objektorientierte Systeme) • „denken“ in Tabellen einfach und weit verbreitet • Für viele strukturell und verhaltensmäßig weniger komplex gelagerte Anwendungen ist das relationale Datenmodell völlig ausreichend • OODBMS besetzen Gebiete, die heute mit Datenbankdiensten schlecht unterstützt werden Funktionelle Weiterentwicklung der RDBMS • Schrittweise Umsetzung von Funktionalitäten von SQL:1992 • Replikation • Massive Ergänzung von Produkten zur Unterstützung des Entwurfs und der Implementierung von DatenbankAnwendungen • Hohe Zeit der Client-Server-Architektur Datenbanken im Wandel des Stammtisches 1. Ausgangspunkte 1.1 Koexistenz der Modelle und Systeme 1.2 Stand bei relationalen DBMS 1.3 Suche nach neuen Modellen/Entwicklung neuer Systeme 2. Die Ablösung der relationalen DBMS ? 2.1 Der revolutionäre Weg zu OODBMS 2.2 Weiterentwicklung der relationalen DBMS 3. Funktionsexplosion bei relationalen DBMS 3.1 Überblick 3.2 Ausgewählte Funktionalitäten von SQL: 1999 3.3 SQL und XML 4. Quo vadis Datenmodelle/DBMS 4.1 SQL: 2003 4.2 Visionen Funktionsexplosion bei DBMS Java SQL:1999 DBMS Objektorientierung Multimedia Information Retrievel Internet XML Strukturen in Tabellen ContentStrukturen zwischen Tabellen management Data Warehouse OLAP / Data Mining Datentypen in SQL:1999 SQL Datatypes Predefined Types Reference Types Numeric String Arrays Interval Row Data Structures Datetime UDT Boolean Date Exact Time Approximate Timestamp Bit Character Clob Blob neue Standarddatentypen in DBMS ORACLE Boolean DB2 MS-SQL SYBASE - - - - CLOB CLOB, BFILE CLOB Text, Ntext Text BLOB BLOB BLOB Image Image Array VARRAY - - - Row ROW ROW - - 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 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>] Aufbau und Verwendung von SDT • 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) Typed Tables CREATE TABLE <Tablename> OF <Typename> ( <OID generation> [, <column option list>] [, <table condition list>] ) Strukturen in/zwischen Tabellen, Beispiele 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 FINAL METHOD Einkommen() RETURNS INTEGER; CREATE TYPE Leiter UNDER Mitarbeiter AS( Bonus INTEGER) INSTANTIABLE NOT FINAL OVERRIDING METHOD Einkommen() RETURNS INTEGER; Strukturen in/zwischen Tabellen - Beispiele 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; Strukturen in/zwischen Tabellen , Beispiele 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 OF Leiter UNDER Mit Strukturen in/zwischen Tabellen - Beispiele SDT Adresse Tabellen Mitarbeiter Leiter Adr Mit Leit Ausgewählte objektorientierte Feature I Feature/System ORACLE DB2 MS-SQL SYBASE distinct types - ja sp_addtype sp_addtype user defined types stark vom Standard abweichend weitgehend Standard konform sp_addtype sp_addtype Java Klassen subtypes weitgehend Standard konform Methoden nicht überschreibbar - - reference types weitgehend Standard konform Standard konform - - Ausgewählte objektorientierte Feature II Feature/System ORACLE DB2 typed tables keine subtables, sondern nested tables weitgehend Standard konform, OID nur nutzerdefiniert user defined functions Instanz und statische Methoden, überladen, überschreiben keine statischen Methoden, überschreiben nicht möglich MS-SQL - UDF ohne Objektbezug SYBASE - UDF ohne Objektbezug Statements zur Steuerung des Programmablaufs Compound statement [ label: ] BEGIN [ [ NOT ] ATOMIC ] [ local-declaration; … ] [ local-cursor-decl; ... ] [ local-handler-decl; ... ] [ SQL-statement; ... ] END [ label ] SQL variable declaration DECLARE var-name-list datatype [ default-value ] Assignment statement SET <variable> = <value> Signal statement SIGNAL <signal number> Statements zur Steuerung des Programmablaufs If statement IF search-condition-1 THEN statement-list [ ELSEIF search-condition-2 THEN statement-list ] [ ELSE statement-list ] END IF Case statement CASE(variable) WHEN ’value’ THEN … … ELSE …; Repeat statement [ label: ] REPEAT SQL-statement-list UNTIL search-condition END REPEAT [ label ] Statements zur Steuerung des Programmablaufs Loop statement [ label 1: ] LOOP SQL-statement-list [ITERATE label 2] [LEAVE label 2] END LOOP [ label 2 ] For statement [ label: ] FOR for-loop-variable-name AS [ cursor-name [sensitivity] CURSOR FOR ] cursor-specification DO SQL-statement-list END FOR [ label ] Statements zur Steuerung des Programmablaufs While statement [ label: ] WHILE search-condition DO SQL-statement-list END WHILE [ label ] Call statement CALL PROCEDURE <procedure name>(<parameter>) Leave statement LEAVE label Return statement RETURN value Statements zur Transaktionsverwaltung ORACLE START TRANSACTION - DB2 MS-SQL - SYBASE BEGIN TRAN BEGIN TRAN SAVEPOINT SAVEPOINT SAVEPOINT SAVE TRAN SAVE TRAN ROLLBACK [WORK] ROLLBACK WORK ROLLBACK WORK ROLLBACK TRAN ROLLBACK TRAN COMMIT WORK COMMIT WORK COMMIT TRAN COMMIT TRAN COMMIT [WORK] Trigger • CREATE TRIGGER <triggername> BEFORE | AFTER | INSERT | DELETE | UPDATE ON <tablename> [REFERENCING <old or new values alias list>] [FOR EACH {ROW | STATEMENT}] [WHEN (<search condition>)] <SQL procedure statement> | BEGIN ATOMIC {<SQL Procedure statement>;}... END Assertion • CREATE ASSERTION <assertionname> CHECK(<predicate>) /Türk2003/ CREATE ASSERTION MaxJahresEinkommen CHECK((SELECT 12* SUM(Gehalt + Bonus) FROM MitarbeiterTupeltabelle) >(SELECT 0.8 * SUM(Etat) FROM Abteilungen)) Integritätssicherung Oracle DB2 MS-SQL Sybase Assertions - - - - Trigger + + + + Mit unterschiedlicher Implementierung Rollen • CREATE ROLE <rolename> • GRANT <rolenamelist> to <userlist or rolenamelist> [ WITH ADMIN OPTION ] • Beispiel – CREATE ROLE Mit – GRANT SELECT ON Mitarbeiter TO Mit WITH HIERARCHY OPTION – GRANT Mit TO Schulze, Schubert WITH ADMIN OPTION XML und Datenbanken • XML, die neue Sprache für den Datenaustausch im Web • XML, zur Modellierung von Struktur und Inhalt semistrukturierten 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 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 • Beispiel XML und Datenbanken Information Retrievel Systeme • Medlars • Juris • Golem • Spirs unstrukturierte Daten XML Datenbanken • Tamino • Natix • XStream • eXist semistrukturierte Daten DBMS • ORDBMS • OODBMS • RDBMS • Netzwerk-DBMS • Hierarchische DBMS strukturierte Daten XML + Datenbanken – Grobeinteilung d. Dokumente Aspekt Erscheinungsbild Dokumenten-zentrisch „lesbare“ Dokumente Daten-zentrisch 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 Datenbanken XML und Datenbanken XML Datenbanken - relationale DBMS • Element-orientierte Zerlegung/Speicherung/Komposition • Dokument-orientierte Speicherung/Wiederauffinden - objektorientierte DBMS - native XML-DBMS 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 werden auf Zeilen / Spalten verschiedener Tabellen abgebildet Ausgewählte XML Feature I Funktion ORACLE MS – SQL DB2 SYBASE Speichern von Intermedia XML als Text, XML Ganzes Type, CLOB CLOB XMLCLOB TEXT, IMAGE, JavaObjekte Verteilte Speicherung OpenXML, ADO.Net (ReadXml) DAD mit RDB – ASE XML Zuordnung, Engine keine Aktualisierung Unterstützung Ja externer XML Dokumente Ja Ja Generieren von XML aus relationalen Daten FOR XML oder XPath DAD mit RDB – FOR XML, und SQL – xmlextract() Zuordnung XSU XSU, XSQL – Servlet Ja Ausgewählte XML Feature II Funktion ORACLE MS – SQL DB2 XML Sicht auf relationale Daten Nein XDR-, XML – Schema – Annotation DAD mit Nein RDBZuordnung Relationale Sicht auf XML Daten Nein OpenXML Nein Nein CONTAINS CONTAINSTABLE Side Tables XPath, XMLTEST Abfragen auf WITHIN, XML Spalten CONTAINS SYBASE Abfragen auf XML – Spalten • Extrahieren von XML – Daten aus XML – Dokumenten (in Tabellen) SELECT xmlextract(´/bookstore/book[price=55 | author/degree/[@from=“Harvard“]]/title´, text_doc ) FROM sample_docs Sybase ASE, Funktion xmlextract /SYB03/ • Like – ähnliches Prädikat zum Suchen bestimmter Werte SELECT name_doc FROM sample_docs WHERE ´//row[city= “Boston“]´ XMLTEST text_doc Sybase ASE, Prädikat XMLTEST /SYB03/ Aufbereit. des Resultats eines SELECT - Statement • SELECT pub_id, pub_name FROM pubs.dbo.publishers FOR XML <resultset xmlns:xsi = <http://www.w3.org/2001/XMLSchema-instance> <row> <pub_id>0736</pub_id> <pub_name>NewAgeBooks</pub_name> </row> <row> <pub_id>0877</pub_id> <pub_name>Binnet & Hardley</pub_name> </row> <row> <pub_id>1389</pub_id> <pub_name>Algodata Infosystems</pub_name> </row> </resultset> XML Feature SYBASE Feature Vorteile Integrierte XML - Unterstützung Schemaunabhängiges Speichern und Wiederauffinden von XML SQL / XML Dualität Vollständige Interoperabilität zwischen SQL und XML auf Sprach– und Speicherniveau XML – Indexierung • • Gewährleistet hohe Abfrageleistung Selbst definierende Indizes sind leicht zu verwalten XML Feature SYBASE Feature Vorteile XPath- und XQuery – Unterstützung Gewährleistet hohe Abfrageleistung Selbst definierende Indizes sind leicht zu verwalten XML Views / Mappings Mapped SQL – Daten mit XML und umgekehrt XML Transformationen Gestattet XML Transformationen auf gespeicherte XML – Dokumente und XML – Views anzuwenden Datenbanken im Wandel des Stammtisches 1. Ausgangspunkte 1.1 Koexistenz der Modelle und Systeme 1.2 Stand bei relationalen DBMS 1.3 Suche nach neuen Modellen/Entwicklung neuer Systeme 2. Die Ablösung der relationalen DBMS ? 2.1 Der revolutionäre Weg zu OODBMS 2.2 Weiterentwicklung der relationalen DBMS 3. Funktionsexplosion bei relationalen DBMS 3.1 Überblick 3.2 Ausgewählte Funktionalitäten von SQL: 1999 3.3 SQL und XML 4. Quo vadis Datenmodelle/DBMS 4.1 SQL: 2003 4.2 Visionen Ausgewählte neue Feature von SQL:2003 • SQL-Part 2 Foundation mit neuen Datentypen: – BIGINT, MULTISET • SQL – Part 2 Foundation erweitert durch: – durch Sequenzgeneratoren (Erzeugen fortlaufender Werte) – Identitätsspalten zur Generierung von künstlichen Schlüsseln – tabellenwertige Funktionen – Anweisung zur Kombinierung mehrerer Insert und Update Statements • SQL Bindings Part 5 von SQL:1999 – In SQL Foundation verschoben (SQL:2003 – Part 2) • Neue Teile – SQL/Schemata – Part 11(aus SQL Foundation ausgegliedert) – SQL/XML – Part 14 Verbindung von XML und SQL Multiset • Die Multimenge enthält eine ungeordnete Menge von Werten eines Datentyps. • <element type> MULTISET CREATE TABLE Mitarbeiter ( … Telefone INTEGER MULTISET ) • So können in diesem Multiset alle Telefonnummern der jeweiligen Mitarbeiter abgespeichert werden. • Eine Menge von Operationen können auf dem Multiset ausgeführt werden. /Türk2003/ Sequenzgeneratoren • Die Sequenzgeneratoren dienen primär zur Erzeugung von künstlichen Schlüsseln, wenn neue Einträge in Tabellen eingefügt werden sollen. • CREATE SEQUENCE < sequence name > AS <typename> [START WITH <initial value>] [INCREMENT BY <increment value >] [NO MINVALUE|MINVALUE <minimal value>] [NO MAXVALUE|MAXVALUE <maximal value>] [NO CYCLE |CYCLE] Tabellenwertige Funktionen • Tabellenwertige Funktionen sind Methoden, die ganze Tabellen als Ergebnis zurückgeben. RETURNS TABLE(< columnname typename > …) CREATE FUNCTION ReicheMitarbeiter (f Franken) RETURNS TABLE( VARCHAR(30), Gehalt Franken) RETURN (SELECT Name, Gehalt FROM Mitarbeiter WHERE Gehalt > f) /Türk2003/ Tabellendefinition mittels Anfragen • Es lassen sich sehr einfach Tabellen erstellen, indem man die Ergebnisse einer Anfrage persistent macht. Dabei werden die Eigenschaften der Spalten aus denen Ursprungstabellen mit übernommen. CREATE TABLE <tablename> [(columnnamelist)] AS <predicate> WITH [NO] DATA Visionen I /Gray04/ 1. Daten und Algorithmen werden im DBMS abgespeichert Ausbau zu voll objekt-relationalen Systemen in denen relationale Operatoren eine Menge von Objekten verarbeiten 2. Jedes DBMS wird zum Web - Service • • • Hört auf Port 80 Bedient SOAP – Calls Publiziert in WSDL 3. Verbindung von Transaktionsverarbeitung und Workflow Anwendungen 4. Data cubes und OLAP werden in die meisten Systeme integriert. Nahtlose Kombination von ROLAP und OLAP Visionen II /Gray04/ 5. Frameworks für Data – Mining und maschinelle Lernalgorithmen werden in diese Systeme integriert 6. „Wiedergeburt“ der spaltenweisen Abspeicherung mit großen Geschwindigkeitsvorteilen für viele Anwendungen 7. Zugriffsmethoden zu Text, temporalen und räumlichen Daten 8. Operatoren zur Verarbeitung von Datenströmen werden in dem DB – Server integriert 9. Publish und Subscribe Systeme kehren die Anfrageverhältnisse um. Die Daten werden mit Millionen von Anfragen verglichen anstatt Anfragen suchen in Millionen von Datensätzen Visionen III /Gray04/ 10. Datenbanken werden mehrere Terrabyte Hauptspeicher umfassen und eine große Menge an sequentiellen Plattenzugriffen benötigen 11. Die Zugriffsoptimierung muß dynamischer (entsprechend den jeweiligen Bedingungen) gestaltet werden 12. Die Intelligenz bewegt sich zur Peripherie der Netzwerke. Jeder Sensor, jede Platte wird ihre kompetente Datenbankmaschine haben. Die relationale Algebra wird der geeignete Weg sein diese zu programmieren. 13. Datenbanksysteme werden zu sich selbst administrierenden und selbst reparierenden Systemen Literatur 1. /Atki89/ 2. /Brod89/ 3. /Comi90/ 4. /DeSa00/ Atkinson, M.; Bancilhon, F.; DeWitt, D.; Dittrich, K.; Maier, D.; Zdonik, S.: The object-oriented database system manifesto Proceedings First International Conference on Dedutive and ObjectOriented Databases, Kyoto 1989 Brodie, M.L.; Future intelligent information systems – AI and database technologies working together In: Brodie, M.L.; Mylopoulos, J. (eds): Atificid intelligence and databases. Morgan Kaufmann, 1989 The Committee for Advanced DBMS Functionality : Third-generation database system manifesto ACM SIgMOD Record 19 (1990) H. 3 De Santis, M.: What´s New With IBM DB2 DataJoiner, Session 1344, Boston, Massachusetts 2000 Literatur 5. /Ditt93/ Dittrich, K. Objektorientierte Datenbanksysteme Datenbank Tutorientage 1993 Begleitunterlage, Braunschweig 1.3.1993 6. /Ditz04/ Ditzel, L.: Oracle Server 9i – Quick Reference Guide, 2004, Dr. Lars Ditzel Database Management 7. /Gray04/ Proceedings ADBIS`04, Eighth East-European Conference an Advances in Databases and Information Systems, 22-25.9, 2004, Budapest, Hungary S. 3 8. /Haas02/ Haas, L.; Lin, E.: IBM Federated Database Technology, March 2002, IBM DB2 developer works, http://www-106.ibm.com/developerworks/db2/library techarticle/0203haas/0203haas.html Literatur 9. /IBM02a/ 10. /IBM02b/ 11. /IBM02c/ 12. /IBM02d/ 13. /IBM02e/ 14. /IBM03/ 15. /IBMWW/ IBM DB2 SQL Reference https://auora.vcu.edu/db2help/db2s0/frame3.htm#sqlintr IBM DB2 Universal Database – Reference Volume Version 8 IBM DB2 Embedded SQL http://www.pdc.kth.se/doc/SP/manuals/db2-5.0/html IBM DB2 Universal Database Command Reference Version 8 IBM DB2 Universal Database – Call Level Interface Guide and Reference, Volume 1 Version 8 Cheng, J.; Xu, J.: IBM DB2 Extender, IBM Corperation, 2003 www.ibm.com ibm.com/software/data/db2/extenders/xmlext Literatur 16. /Jain02/ 17. /Lock93/ 18. /Matt99/ 19. /Melt99/ 20. /Melt03/ Jain, A.; Ullman, J.; Yang, J.; Goldman, R.; Yang, C.: Introduction to Pro*C – Embedded SQL, 2002, http://www-db.stanford.edu/~ullman/fcdb/oracle/or-proc.html Lockemann, P. Weiterentwicklung relationaler Datenbanken für objektorientierte Anwendungen Informatik-Spektrum 16 (1993) H. 2 S. 81-88 Mattos, N.M.; Darwen, H.; Cotton, P.; Pistor, P.: SQL 99, SQL/MM and SQLJ – An Overview of the SQL Standards, 1999, IBM Database Common Technology Melton, J.: SQL 1999 – Major Features & Current Work, 1999, Oracle Cooperation Melton, J.: ISO ANSI WORKING DRAFT, 2003, ISO + ANSI Literatur 21. /Mill02/ 22. /Mits88/ 23. /MS00/ 24. /MS01/ 25. /MS03/ 26. /MSWW/ Miller, R.K.: Enterprise Data Integration with Adaptive Server Enterprise – a Case for Corporate Systems, Sybase Mitschang, B. Ein Molekül-Atom-Datenmodell für Non-StandardAnwendungen Springer Verlag Berlin, Heidelberg 1988 Garcia, M.F.; Reding, J.; Whalen, E.; DeLuca, S.A.: Microsoft SQL Server 2000, Das Handbuch, Microsoft Press, 2000 Delaney, K.; Soukuo, R.: Inside Microsoft SQL Server 2000, Microsoft Press, 2001 Microsoft: Microsoft Developer Network, January 2003 www.microsoft.com Literatur 27. /OCN02/ 28. 29. 30. 31. Higgins, S.; XML Database Developers Guide, Oracle Corperation, 2002 /OCN03/ Bernejee, S.: Oracle XML DB vs. IBM DB2 XML Extender, A Technical White Paper, Oracle Corperation, 2003 /OCN04a/ Drake, M.: Oracle XML DB, A Technical White Paper, Oracle Cooperation, 2004 /OCN04b/ Oracle Cooperation: Oracle Generic Connectivity and Oracle Transparent Gateway, 2004 http://otn.oracle.com/products/oracle9i/datasheets/gateways/gateway_rel 2_ds.html /OCN04c/ Oracle Cooperation: New Oracle9i Data Access Features, 2004 http://otn.oracle.com/tech/oci/htdocs/oci9inew_features 32. /OCWW/ 33. /OCOTN/ www.oracle.com otn.oracle.com, Oracle Technology Network Literatur 34. /Pann00/ 35. /Pist93/ 36. 37. 38. 39. /Strob02/ /SYB01/ /SYB03a/ /SYB03b/ 40. /SYB03c/ Panny, W.: Einführung in den Sprachkern von SQL-99, Springer Verlag Berlin Heidelberg 2000 Pistor, P. Objektorientierung in SQL3: Stand und Entwicklungstendenzen Informatik-Spektrum 16 (1993) H. 2 S. 89-94 Strobel, T.: Kurzeinführung ODBC, 2002 Sybase Quick Reference Guide XML in Adaptive Server Enterprise, Sybase Inc., 2003 XML Services in Adaptive Server Enterprise Firmenschrift Sybase Inc. Document ID: DC 30020-01-1251 XML Management Package for Sybase Adaptive Server Enterprise 12.5.1 L01831 CC09-V03-290-6 Literatur 41. /SYB03d/ XML Management Package for Sybase Adaptive Server Enterprise 12.5.1 L01831 CC09-V03-290-6 42. /SYBWW/ www.sybase.com 43. /Türk03/ Türker, C.: SQL: 1999 & SQL: 2003, dpunkt.verlag 2003 44. /Vivi02/ Vivitek: Using the Oracle Call Interface, 2002 http://www.vivtek.com/oracle.html Vielen Dank für Ihre Aufmerksamkeit Sie und ihre Mitarbeiter sind ganz herzlich zu den weiteren Stammtischveranstaltungen eingeladen. www.htw-dresden.de/~wloka/termine/frame_dbtermine.html XML und Datenbanken Beispiele für XML-Anwendungen als Meta-Sprache /Inng00/ - spezfische MarkUp-Sprachen • HL7: Standard für den elektronischen Austausch von Klinik-, Finanz- und Verwaltungdaten • Chemical MarkUp Language (CML) • Open Software Distrition (OSD) • Bean MarkUp-Language • Bioinformatik Sequence MarkUp-Language (BSML) • Cold Fusion MarkUp Language (DFML) • DTD for patent documents – ST32 US Patent Grant • Electronic Component Manufacturer Data Sheet Library Specification • Encoded Archival Description (EAD) • Formal Language for Business Communacation (FLBC) • Information and Content Exchange (ICE) • Internet Content Exchange (ICE) • Internet Open Trading Protocoll (IOTP) Zurück XML SQL Utility Zurück XML Extender Zurück