Beispiele - HTW Dresden

Werbung
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
Herunterladen