Title: Informationsintegration SchemaSQL
1InformationsintegrationSchemaSQL
2Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
3Strukturelle Heterogenität
- Datenmodell-Heterogenität
- Relationales Modell
- XML Modell
- OO Modell
- Hierarchisches Modell
- Schematische Heterogenität
- Integritätsbedingungen, Schlüssel,
Fremdschlüssel, etc. - Struktur (Attribut vs. Relation etc.)
4Schematische Heterogenität
- Struktur
- Modellierung
- Relation vs. Attribut
- Attribut vs. Wert
- Relation vs. Wert
- Benennung
- Relationen
- Attribute
- Normalisiert vs. Denormalisiert
- Geschachtelt vs. Fremdschlüssel
SchemaSQL
SQL
5Schematische Heterogenität
Männer( Id, Vorname, Nachname) Frauen( Id,
Vorname, Nachname)
Relation vs. Attribut
Person( Id, Vorname, Nachname,männlich,
weiblich)
Relation vs. Wert
Attribut vs. Wert
Person( Id, Vorname, Nachname,
Geschlecht)
6Schematische Heterogenität - Lösungen
- Problem
- Einheitlich auf beide Schemas zugreifen
- Auf Schemaebene Schema Mapping und
Schema-Sprachen - Auf Datenebene Virtuelle Integration
- Beide Schemas in eine gemeinsames neues Schema
integrieren - Auf Schemaebene Schemaintegration
- Auf Datenebene Materialisierte Integration
- Für die materialisierte Integration
- Schemaintegration
- ETL
- Für die virtuelle Integration
- Schema-Sprachen
- Z.B. SchemaSQL, MSQL, CPL
- Lose Kopplung, Multidatenbanken
- Schema Mapping
- Z.B. Clio, RONDO, u.a.
- Enge Kopplung, föderierte Datenbanken
7Schematische Heterogenität Lösungen
- SchemaSQL LSS96, LSS99, LSS01
- Erweiterung von SQL
- Daten und Metadaten werden gleich behandelt
- Umstrukturierungen innerhalb der Anfrage
- Dynamische Sicht-Definition
- Horizontale Aggregation
SELECT RelA FROM uniA-gtRelA, uniARelA A,
uniBgrundgehalt B WHERE RelA B.institut AND
A.Kategorie Student AND A.grundgehalt gt
B.Student
High-order Join
8Schematische Heterogenität Lösungen (Ausblick)
- ARTICLE
- artPK
- title
- pages
- AUTHOR
- artFK
- name
- PUBLICATION
- pubID
- title
- date
- author
SELECT artPK AS pubID title AS title null AS
date name AS author FROM ARTICLE,
AUTHOR WHERE ARTICLE.artPK AUTHOR.artFK
9Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
10Aut2, Dist0, Het1
- Multidatenbanksystem (MDBMS)
- Volle Autonomie
- Keine bekannte Kooperation
- Keine Kommunikation untereinander
- Keine Interoperation untereinander möglich
- Integration nur in neuer, integrierender
Komponente. - Z.B. DBMS und WWW Server auf einer Maschine
- Nicht zur Interoperation entwickelt
- DBMS spricht kein http, WWW spricht kein SQL
11Enge vs. lose Kopplung
- Enge Kopplung
- Festes, integriertes/föderiertes Schema
- Modelliert mit Korrespondenzen
- Feste Anfragesprache
- Lose Kopplung
- Kein festes Schema
- Nutzer müssen Semantik der Quellen kennen
- Integrierte Sichten helfen
- Feste Anfragesprache
- SchemaSQL LSS01
- (Multidatabase query language (MDBQL) LMR90)
12Import-/Export-Schema-Architektur nach HM85
lokales konzeptionelles Schema
Idee Nur Teilmenge des lokalen konzeptionellen
Schemas wird der Föderation zur Verfügung
gestellt.
Idee Nur Teilmengen der Exportschemas sollen
verwendet werden.
134-Schichten Architektur
Anwendungen (müssen selbst integrieren)
Externes Schema 1
Externes Schema N
...
Konzeptionelles Schema
Konzeptionelles Schema
Lokale DBMS
...
Lokales konzept. Schema
Lokales konzept. Schema
Internes Schema
Internes Schema
...
14Multidatenbanksprachen
- Anforderungen
- Schemaunabhängigkeit
- Struktur darf nicht Ausdrucksfähigkeit
beeinflussen. - Umstrukturierung
- Anfrageergebnisse müssen neue Struktur erhalten
können. - Verständlichkeit und doch Ausdrucksfähigkeit
- Abwärtskompatibilität mit SQL
- Implementierbar
- Ohne Veränderung des DBMS
- Bzw. mit nur minimalen Veränderungen des DBMS
15SchemaSQL LSS01
- Features
- Erweiterung von SQL
- Daten und Metadaten werden gleich behandelt
- Umstrukturierungen innerhalb der Anfrage
- Daten zu Metadaten und umgekehrt
- Daten Tupel und Attributwerte
- Metadaten Attributnamen, Relationennamen,
Datenbanknamen - Dynamische Sicht-Definition
- Struktur des Ergebnisses abhängig von aktuellem
Zustand der Datenbank - Horizontale Aggregation
- Ãœber mehrere Spalten hinweg
- Unterstützung für Multidatenbanken
16Schematische Heterogenität
Männer( Id, Vorname, Nachname) Frauen( Id,
Vorname, Nachname)
Relation vs. Attribut
Person( Id, Vorname, Nachname,männlich,
weiblich)
Relation vs. Wert
Attribut vs. Wert
Person( Id, Vorname, Nachname,
Geschlecht)
17Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
18SchemaSQL Syntax
- Erweiterung von SQL
- Standard SQL
- Variablendeklaration in FROM Klausel
- Variablenverwendung in SELECT und WHERE Klauseln
Abkürzung bei Eindeutigkeit
ltrangegt
ltvargt (alias)
ltvargt
Attribut
19SchemaSQL Syntax
- Erweiterung von SQL
- Anforderungen
- Unterscheidung von mehreren DBs, jeweils mit
mehreren Relationen - Metadaten Variablendeklarationen nicht nur für
Tupelmengen - Aggregation nicht nur vertikal über ein Attribut
20SchemaSQL Syntax
- Variablendeklaration über
- Datenbanknamen
- Relationen in einer Datenbank
- Attributnamen einer Relation
- Tupel einer Relation
- Werte eines Attributs
- Deklaration durch ltrangegt ltvargt
- Wichtiger Unterschied Geschachtelte
Deklarationen - Alle Tupel aller Relationen einer Datenbank
Frage Welcher der 5 ist Standard SQL?
Standard SQL
21SchemaSQL Syntax
- Variablendeklaration ltrangegt ltvargt
- ltrangegt
- -gt Iteration über alle Datenbanknamen
- db-gt Iteration über alle Relationen in db
- dbrel-gt Iteration über alle Attribute in rel
(in db) - dbrel Iteration über alle Tupel in rel (in db)
- dbrel.attr Iteration über alle Werte von
Attribut attr (in rel und db) - Präfixe können bei Eindeutigkeit weggelassen
werden. - ltvargt
- Konstante (ein beliebiger Name)
- Variable, falls wiederum als Variablendeklaration
definiert
22SchemaSQL Beispiel
- Multidatenbank über mehrere Universitäten
- univ-A, univ-B, univ-C, univ-D
- Information über Angestellte
- Kategorie (category)
- Gehalt (salInfo, salFloor)
- Abteilung (dept)
23SchemaSQL Beispiel
24SchemaSQL Beispiel
25SchemaSQL Beispiel
26SchemaSQL Anfragen
- Gesucht
- Alle Abteilungen in univ-A, die Technikern mehr
zahlen als in gleichen Abteilungen von univ-B - Anforderungen
- Selektionen jeweils auf Technician
- Vergleich der Gehälter
- Join zwischen beiden Tabellen
- Verschiedene DBs
- Ãœber welches Attribut?
27SchemaSQL Anfragen
- Gesucht
- Alle Abteilungen in univ-A, die Technikern mehr
zahlen als in gleichen Abteilungen von univ-B - SchemaSQL Anfrage
- SELECT A.deptFROM univ-AsalInfo
A, univ-BsalInfo B, univ-BsalInfo -gt AttB
WHERE AttB ltgt categoryAND A.dept
AttBAND A.category Technician
AND B.category TechnicianAND A.salFloor gt
B.AttB
Alle Attributnamen
Join zwischen Attributnamen und Spaltenwerten
Frage Ist dies im Sinne GaV oder LaV?
28SchemaSQL Anfragen
- SELECT A.deptFROM univ-AsalInfo
A, univ-BsalInfo B, univ-BsalInfo-gt AttB
WHERE AttB ltgt categoryAND A.dept
AttBAND A.category Technician
AND B.category TechnicianAND A.salFloor gt
B.AttB
-gt alle Datenbanknamen db-gt alle Relationen
in db dbrel-gt alle Attribute in rel (in
db) dbrel alle Tupel in rel (in
db) dbrel.attr alle Werte von Attribut attr
29SchemaSQL Anfragen
- Gesucht (wie eben)
- Alle Abteilungen in univ-C, die Technikern mehr
zahlen als in gleichen Abteilungen von univ-D - Anforderungen
- Selektionen jeweils auf Technician
- Vergleich der Gehälter
- Join zwischen beiden Tabellen
- Verschiedene DBs
- Ãœber welches Attribut?
30SchemaSQL Anfragen
- Gesucht (wie eben)
- Alle Abteilungen in univ-C, die Technikern mehr
zahlen als in gleichen Abteilungen von univ-D - SchemaSQL Anfrage
- SELECT RelCFROM univ-C-gt RelC, univ-CRelC
C, univ-DsalInfo D WHERE RelC
D.deptAND C.category Technician
AND C.salFloor gt D.Technician
Tabellenname als Ausgabe
Geschachtelte Variablen
Join zwischen Relationennamen und Spaltenwerten
Iteration über Tupel beider Tabellen in univ-C
31SchemaSQL Anfragen
Alle Relationen in univ-C
- SELECT RelCFROM univ-C-gt RelC, univ-CRelC
C, univ-DsalInfo DWHERE RelC
D.deptAND C.category Technician
AND C.salFloor gt D.Technician
Alle Tupel in allen Relationen
-gt alle Datenbanknamen db-gt alle Relationen
in db dbrel-gt alle Attribute in rel (in
db) dbrel alle Tupel in rel (in
db) dbrel.attr alle Werte von Attribut attr
32Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
33SchemaSQL Herkömmliche Aggregation
- AVG, COUNT, SUM, MIN, MAX, (STDDEV, VARIANCE)
- SELECT AVG(Budget) FROM projekt
- SELECT SUM(p.Budget), MAX(p.Budget) FROM
mitarbeiter m, projekt pWHERE m.p_id
p.p_idAND m.Nachname Schmidt - SELECT COUNT()FROM mitarbeiter
- Aggregation ist vertikal Werte einer Spalte
werden zusammengefasst - SELECT m.name, SUM(p.Budget), MAX(p.Budget) FROM
mitarbeiter m, projekt pWHERE m.p_id
p.p_idGROUP BY m.id - Aggregation ist vertikal Teilmengen (Gruppen)
von Werten einer Spalte werden zusammengefasst
34SchemaSQL Aggregation
- Gesucht
- Durchschnittliches Gehalt aller Gruppierungen
über alle Abteilungen hinweg. - Anforderungen
- Durchschnittbildung über alle Werte zweier
Spalten - Horizontale (und vertikale) Aggregation
- SchemaSQL Anfrage
- SELECT T.category, avg(T.D)FROM univ-BsalInfo
-gt D, univ-BsalInfo TWHERE D ltgt category
GROUP BY T.category
35SchemaSQL Aggregation
- Gesucht
- Durchschnittliches Gehalt aller Gruppierungen
über alle Abteilungen hinweg. - Anforderungen
- Durchschnittbildung über alle Werte zweier
Spalten in zwei Relationen - Horizontale (und vertikale) Aggregation
- SchemaSQL Anfrage
- SELECT T.category, avg(T.salFloor)FROM
univ-C -gt D, univ-CD TGROUP BY D.category
Iteration über alle Tupel aller Relationen
36Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
37SchemaSQL Umstrukturierung
- Gesucht
- Umstrukturierung der Daten aus univ-B in das
Schema von univ-A - Anforderung
- Trennung
- Definition des Outputschemas
- Umstrukturierung der Daten
- SchemaSQL Anfrage
- CREATE VIEW BtoAsalInfo(category, dept,
salFloor) ASSELECT T.category, D, T.DFROM
univ-BsalInfo -gt D, univ-BsalInfo
TWHERE D ltgt category
38SchemaSQL Umstrukturierung
- Gesucht
- Umgekehrt Umstrukturierung der Daten aus univ-A
in das Schema von univ-B - Anforderung
- Dynamische Schemaerzeugung
- Ich weiß nicht im Voraus welche Attribute das
Ergebnis haben wird. - SchemaSQL Anfrage
- CREATE VIEW AtoBsalInfo(category, D) ASSELECT
A.category, A.salFloorFROM univ-AsalInfo
A, A.dept D
Iteration über Attributwerte
39SchemaSQL Aggregation
- Durchschnittliches Gehalt aller Angestellten pro
Fakultät - Anforderung
- Aggregation über einen Block
- SchemaSQL
- SELECT F.fname, AVG(T.C)FROM univ-DsalInfo -gt
C, univ-DsalInfo T, univ-Dfaculty FWHERE
C ltgt deptAND T.dept F.dnameGROUP BY F.fname
faculty
dname fname
math Arts and sciences
physics Arts and sciences
cs Engineering
40SchemaSQL Umstrukturierung Aggregation
- Durchschnittliches Gehalt aller Angestellten pro
Fakultät und Kategorie - Anforderung
- Aggregation über Block
- Umstrukturierung
- SchemaSQL
- CREATE VIEW averagesalInfo(faculty, C)
ASSELECT U.fname, AVG(T.C)FROM
univ-DsalInfo -gt C, univ-DsalInfo
T, univ-Dfaculty UWHERE C ltgt deptAND
T.dept U.dnameGROUP BY U.fname - Outputschema
- salInfo(faculty, Prof, AssocProf, Technician)
faculty
dname fname
math Arts and sciences
physics Arts and sciences
cs Engineering
41SchemaSQL Umstrukturierung Aggregation
- Durchschnittliches Gehalt aller Angestellten pro
Fakultät und Type - Anforderung
- Aggregation über mehrere Blöcke
- Vertikal über dept
- Horizontal über category
- Umstrukturierung
- SchemaSQL
- create view averagessalInfo(faculty, Y)
asselect U.fname, avg(T.C)from
univ-DsalInfo-gt C, univ-DsalInfo T,
univ-Dfaculty U, univ-DempType E,
E.type Ywhere C ltgt "dept" and
T.dept U.dname and E.category Cgroup
by U.fname - Outputschema
- salInfo(faculty, Teaching, Technical,
Administrative)
faculty
dname fname
math Arts and sciences
physics Arts and sciences
cs Engineering
empType
category type
Prof Teaching
AssocProf Teaching
Technician Technical
Secretary Administrative
42SchemaSQL Umstrukturierung Aggregation
create view averagessalInfo(faculty, Y)
asselect U.fname, avg(T.C)from
univ-DsalInfo-gt C, univ-DsalInfo T,
univ-Dfaculty U, univ-DempType E,
E.type Ywhere C ltgt "dept" and
T.dept U.dname and E.category Cgroup
by U.fname
43Ãœberblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
44Implementierung
- Anforderung
- Non-intrusive
- Minimaler Eingriff in vorhandene SQL DBMS
- (Optimierung)
- Metadatenverwaltung
45Implementierung
Metadaten
5
6
7
1
2
3
3
4
4
46Anfragebearbeitung
- Phase 1
- Variablen der FROM Klausel instanziieren
- VITs (Variable instantiation table)
- Verwendung der Metadatenbank
- FST (Federation System Table)
- Schema FST(dbname, relationname, attributename)
- Phase 2
- SchemaSQL Anfrage umschreiben
- Umgeschriebene Anfrage auf instanziierten
Variablen ausführen
47Anfragebearbeitung Beispiel
- Phase 1 Anfragen direkt an einzelne DBMS
- VITRelC(RelC)
- SELECT DISTINCT relnameFROM FSTWHERE dbname
univ-C - Anfrage an Metadaten
- VITC(RelC, CsalFloor)
- Bindings für ri SELECT RelC FROM VITRelC
- SELECT r1 AS RelC, salFloor AS CsalFloorFROM
r1WHERE category Technician UNION ...
UNIONSELECT rn AS RelC, salFloor AS
CsalFloorFROM rnWHERE category
Technician - Anfrage direkt an univ-C!
- VITD(Ddept, Dtechnician)
- SELECT dept AS Ddept, technician AS
DtechnicianFROM salInfo - Anfrage direkt an univ-D!
SELECT RelC, salFloorFROM univ-C-gt
RelC, univ-CRelC C, univ-DsalInfo
DWHERE RelC D.deptAND C.category
Technician AND C.salFloor gt D.Technician
FST(dbname, relname, attname)
48Anfragebearbeitung Beispiel
- VITRelC(RelC)
- (Math), (CS)
- VITC(RelC, CsalFloor)
- (CS, 42.000), (Math, 46.000)
- VITD(Ddept, Dtechnician)
- (CS, 40.000), (Math, 38.000)
49Anfragebearbeitung Beispiel
- Phase 2
- Idee
- VITs sind in internem SQL Server materialisiert
- SchemaSQL Anfrage umschreiben, so dass Ergebnis
nur mittels der VITs erzeugt werden kann.
50Anfragebearbeitung Beispiel
- Erzeuge JoinedVIT
- Natural Join über alle VITs Damit Tupel der
gleichen DB zusammenbleiben - CREATE VIEW JVIT(RelC, CsalFloor, Ddept,
Dtechnician) ASSELECT VITRelC.RelC,
VITC.CsalFloor, VITD.Ddept, VITD.DtechnicianFROM
VITRelC, VITC, VITDWHERE VITRelC.RelC
VITD.DdeptAND VITC.CsalFloor gt
VITD.DtechnicianAND VITRelC.RelC VITC.RelC
SELECT RelC, salFloorFROM univ-C-gt
RelC, univ-CRelC C, univ-DsalInfo
DWHERE RelC D.deptAND C.category
Technician AND C.salFloor gt D.Technician
Schon bei Erzeugung der VITs
51Anfragebearbeitung Beispiel
- Nochmal die JVIT
- CREATE VIEW JVIT(RelC, CsalFloor, Ddept,
Dtechnician) ASSELECT VITRelC.RelC,
VITC.CsalFloor, VITD.Ddept, VITD.DtechnicianFR
OM VITRelC, VITC, VITDWHERE VITRelC.RelC
VITD.DdeptAND VITC.CsalFloor gt
VITD.DtechnicianAND VITRelC.RelC VITC.RelC - Erzeuge endgültige Anfrage
- Projektionen, Sortierungen, etc.
- SELECT RelC, CsalFloorFROM JVIT
52Rückblick
- Wiederholung
- Strukturelle Heterogenität
- Multidatenbanken
- SchemaSQL
- Basis-Syntax
- Aggregation
- Umstrukturierung
- Architektur und Implementierung
53Literatur
- Wichtigste Literatur
- LSS01 Laks V. S. Lakshmanan, Fereidoon Sadri,
Subbu N. Subramanian SchemaSQL An extension to
SQL for multidatabase interoperability. ACM
Trans. Database Syst. 26(4) 476-519 (2001) - Dies ist eine Zusammenfassung der beiden unten
genannten paper. - Weitere Literatur
- LSS96 Lakshaman, Sadri, Subramanian SchemaSQL
A Language for Interoperability in Relational
Multidatabase Systems, in VLDB 1996 - LSS99 Lakshaman, Sadri, Subramanian On
Efficiently Implementing SchemaSQL on a SQL
Database System, in VLDB 1999