Vorlesung Informaitonsintegration

Werbung
Informationsintegration
Multidatenbanksprachen
Schema SQL: Konzept und Implementierung
Ulf Leser
Wissensmanagement in der
Bioinformatik
Wo sind wir?
• Architekturen und Kriterien
•
•
•
Szenarien, Abgrenzung und Einsatzgebiete
Verteilung, Autonomie, Heterogenität, Transparenz
Architekturen
• Data Warehouses
• Mediator-basierte Systeme
• Multidatenbanksprachen, SchemaSQL
• Techniken zur Anfrageplanung in föderierten Systemen
•
•
•
Local-as-View und Global-as-View Korrespondenzen
Anfrageplanung mit LaV
Query Containment und Answering Queries using Views
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
3
Inhalt 2
• Verteilte Anfrageoptimierung
•
•
•
Kostenbasierte verteilte Optimierung
Semi-Joins
Umgang mit beschränkten Quellen
• Schemamanagement
•
•
•
Schemaintegration
Schema Matching
Schema Mapping
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
4
Inhalt 3
• Datenintegration
•
•
•
Informationsqualität
Duplikaterkennung
Datenfusion
• Semantische Integration
•
•
Ontologien und Beschreibungslogiken
Semantic Web
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
5
Buch
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
6
Buch
Jetzt
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
7
Buch
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
8
Buch
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
9
Handels - DWH
Verkaufen wir
im Wedding
mehr Dosenbier
als in
Zehlendorf?
FILIALE 3
...
FILIALE 1
FILIALE 2
DWH
Artikeldaten
Analyse
Kundendaten
Welches sind
meine
Topkunden ?
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Lieferantendaten
10
OLAP versus OLTP
OLTP
OLAP
Insert, Update, Delete, Select
Select
Bulk-Inserts
Viele und kurz
Lesetransaktionen
Einfache Queries,
Primärschlüsselzugriff,
Schnelle Abfolgen von
Selects/inserts/updates/deletes
Komplexe Queries: Aggregate,
Gruppierung, Subselects, etc.
Bereichsanfragen über mehrere
Attribute
Wenige Tupel
Mega-/ Gigabyte
Gigabyte
Terabyte
Eigenschaften der Daten
Rohdaten, häufige Änderungen
Abgeleitete Daten,
historisch & stabil
Erwartete Antwortzeiten
Echtzeit bis wenige Sek.
Minuten
Anwendungsorientiert
Themenorientiert
Sachbearbeiter
Management
Typische Operationen
Transaktionen
Typische Anfragen
Daten pro Operation
Datenmenge in DB
Modellierung
Typische Benutzer
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
11
DWH Architektur & Komponenten
Monitoring
Metadaten
Quelle 1
RDBMS
Quelle 2
IMS
Staging Area
Staging Area
Datenquellen
Analysewerkzeuge
Mart 2
Cube
Basisdaten
Mart 1
Abgeleitete Sichten
Arbeitsbereich
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
12
Multidimensionales Schema
customer
id
name
cust_class
time
id
day
month
year
•
•
•
•
•
product
id
name
product_group
line_item
order_id
product_id
amount
single_price
discount_rate
supply
id
region
Technische Informationen raus (Session)
Nur abgeschlossene Bestellungen aufnehmen (Orderstatus)
Zusammenfassen (discount_rate)
Denormalisieren (überall)
Konzentration auf Businessobjekte und -prozesse
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
13
Cube
Bier Verkäufe in
BWB in 2002
Time
2002
Product
Sales
Cube
2001
2000
Limo
1999
Bier
BWB
Bayern
Berlin
NRW
Location
Cube -> Hypercube: Bon / Lieferant / Kunde / ...
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
14
Dimension
Dimensions
schema
Jahr
Quartal
Monat
Tag
1997
I
1998
1999
II III IV
Klassifikationsstufen
Jan Feb Mar
1 ... 31
Top
2000
I
II III IV
Okt Nov Dez
1 ... 28
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Klassifikationsknoten
15
Beispiel: Aggregation (Roll-Up)
Z.Monat
Z.Tag
4.1.1999
B.Abteilung
4‘1999
B.Abt.
3‘1999
3.1.1999
2.1.1999
Skoda.Reparatur
Skoda.Ersatzteile
1.1.1999
2‘1999
Skoda.Repa.
Skoda.Ersatz
1‘1999
Lyon
Nantes
Wedding
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
München
Lyon
Nantes
Wedding
München
R.Shop
R.Shop
16
Variante 2: Star Schema
Product
product_id
product_name
pg_id
pg_name
Time
day_id
day
month_id
month
year_id
year
Sales
product_id
day_id
shop_id
amount
price
Localization
shop_id
shop_name
region_id
region_name
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
17
ROLLUP Beispiel
SELECT
FROM
WHERE
GROUP BY
T.year_id, T.month_id, T.day_id, sum(...)
sales S, time T
T.day_id = S.day_id
ROLLUP(T.year_id, T.month_id, T.day_id)
1997
Jan
1
1997
Jan
...
1997
Jan
31
1997
Jan
ALL
1997
Feb
...
1997
March
ALL
1997
...
...
1997
ALL
ALL
1998
Jan
1
1998
...
...
1998
ALL
ALL
...
...
...
ALL
ALL
ALL
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
200
300
31.000
450
1.456.400
100
45.000
12.445.750
18
Multidimensionale Aggregation
Verkäufe nach Produktgruppen und Jahren
1998
1999
2000
Gesamt
Weine
15
17
13
45
Biere
10
15
11
36
Gesamt
25
32
24
81
•
•
•
•
sum() ... GROUP BY
sum() ... GROUP BY
Wie...
vieleGROUP
Queries
sum()
BY
sum()
pg_id, year_id
pg_id
sind
notwendig ?
year_id
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
19
ETL - Übersicht
• Aufgabe
•
•
•
Regelmäßige Extraktion von Änderungsdaten aus Quellen
Datenversorgung des DWH
Sicherung der DWH Konsistenz bzgl. Datenquellen
• Zwei Schritte
•
Von den Quellen zur Staging Area
• Extraction von Daten aus den Quellen
• Erstellen / Erkennen von differentiellen Updates
• Erstellen von LOAD Files
•
Von der Staging Area zur Basisdatenbank
• Data Cleaning und Tagging
• Erstellung integrierter Datenbestände
¾ Effiziente Methoden essentiell -> Sperrzeiten minimieren
¾ Rigorose Prüfungen essentiell -> Datenqualität sichern
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
20
Art der Daten
• Snapshots: Quelle liefert immer kompletten Datenbestand
•
¾
¾
¾
Neuer Lieferantenkatalog, neue Preisliste, etc.
Änderungen erkennen
Differential Snapshot Problem [LGM96]
Historie korrekt abbilden
• Logs: Quelle liefert jede Änderung
• Transaktionslogs, anwendungsgesteuertes Logging
¾ Änderungen effizient einspielen
• Nettologs: Quelle liefert Netto-Änderungen
• Nettoänderungen seid dem letzten Snapshot (Snapshot-Deltas)
¾ Keine vollständige Historie möglich
¾ Änderungen direkt einspielbar
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
21
Transformation
• Aufgabe
•
Umwandlung der Daten in eine „DWH-gerechte“ Form
• Form follows Function
•
•
Quellen: hoher Transaktionsdurchsatz
DWH: spezifische statistische Analysen
• Arten von Transformationen
•
•
Schematransformation
Datentransformation
• Transformationen möglich an zwei Stellen
•
•
Transformation der Quell-Extrakte zu Load-Files
Transformation von der Staging-Area in die Basis-DB
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
22
Zusammenfassung
Quelle -> Arbeitsbereich
Arbeitsbereich ->
Basis-DB
Art des Zugriffs
Satzorientiert
Mengenorientiert
Verfügbare
Datenbasen
Eine Quelle (Updatefile)
Viele Quellen
Verfügbare
Datensätze
Quellabhängig: Alle, alle
Änderungen, Deltas
Zusätzlich Basis-DB
verfügbar
Programmiersprachen
Skripte: Perl, AWK, ... oder 3GL SQL, PL/SQL
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
23
BULK Load
• DB-spezifische Erweiterungen zum Laden großer
Datenmengen
• Beispiel Oracle: sqlldr (DIRECTPATH option)
• Läuft (meist) mit Einschränkunen
•
•
•
•
•
Tabellensperre
Keine Beachtung von Triggern oder Constraints
Indexe werden erst nach Abschluss aktualisiert
Kein transaktionaler Kontext (kein Logging)
Kein Abbruch bei Fehlern
• Datei mit „bad records“
• Checkpoints zum Wiederaufsetzen
• … (siehe Dokumentation)
¾ Praxis: BULK Uploads
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
24
Data Warehouse vs. Mediator
Anwendung 1
Anwendung 2
Anwendung 1
Mediator
Data
Warehouse
Wrapper 1
ETL 3
ETL 1
Quelle 2
Wrapper 3
Wrapper 2
ETL 2
Quelle 1
Anwendung 2
Quelle 3
Quelle 1
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Quelle 2
Quelle 3
25
Vor- und Nachteile
Materialisiert
Virtuell
- (je nach Frequenz)
+
Antwortzeit
+
-
Komplexität
O
--
Anfragemächtigkeit
+
-
+/+
+/-
-
+
Zentral
Verteilt
+
-
Online-Zugriff
notwendig
Nein
Ja
Gesamt Zugriff
notwendig
Ja
Nein
Aktualität
Read/Write
Größe
Ressourcenbedarf
Datenreinigung
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
26
Inhalt dieser Vorlesung
• Multidatenbanksprachen
• SchemaSQL
•
•
•
•
•
Grundlegende Syntax
Zugriff auf Metadaten
Horizontale Aggregation
Dynamische Umstrukturierung
Implementierung
• Ausklang
•
•
Andere Multidatenbanksprachen
Pivot-Operator
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
27
Verteilung
Wdh: Multidatenbanken
Autonomie
Heterogenität
• Verteilt, autonom, und etwas heterogen
•
•
•
•
Keine technische und Datenmodellheterogenität
Z.B.: verteilte Systeme benutzen gleiche Techniken (RDBMS)
Schemata können strukturell und semantisch heterogen sein
Zugriff über einheitliche Sprache
• Autonomie bleibt bewahrt
•
Aber Zugriff muss möglich sein (Kommunikationsautonomie)
• Zentrales Thema: Multidatenbanksprache
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
28
Enge vs. lose Kopplung
User
• Enge Kopplung
•
Integriertes/föderiertes Schema
• Lose Kopplung
•
Kein integriertes Schema
• Nutzer müssen Semantik der
Quellen kennen
•
•
Überbrückung von Heterogenität
erfolgt durch Anfragen
Mächtige Anfragesprache
notwendig
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
29
Schematische Heterogenität
maenner( Id, vorname, nachname)
frauen( Id, vorname, nachname)
Relation vs. Wert
Relation vs. Attribut
person( Id, vorname, nachname,
maennlich?, weiblich?)
person( Id, vorname, nachname,
geschlecht)
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Attribut vs. Wert
30
Strukturelle Heterogenität
• Unterschiedliche Modellelemente
•
•
•
Relation vs. Attribut
Attribut vs. Wert
Relation vs. Wert
• Zugriff auf Namen
•
•
•
Relationen
Attribute
Werte
• Unterschiedliche Verteilung von
Attributen
•
•
•
SchemaSQL
Z.B. Normalisiert vs. Denormalisiert
Fehlende/neue Attribute
Geschachtelt vs. Fremdschlüssel
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
SQL
31
Anforderungen an Multidatenbanksprachen
• Schemaunabhängigkeit
•
Struktur darf nicht Ausdrucksfähigkeit beeinflussen
• Umstrukturierungsmöglichkeiten
•
Anfrageergebnisse müssen neue Struktur erhalten können
• Verständlichkeit bei hoher Ausdrucksfähigkeit
• Abwärtskompatibilität mit SQL
• Einfach implementierbar
•
•
•
Möglichst ohne Veränderung des DBMS
Alle Anfragen müssen in SQL / Programme übersetzbar sein
Effiziente Ausführung
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
32
SchemaSQL
[LSS96, LSS99, LSS01]
• Erweiterung von SQL
•
•
•
Zugriff auf Tabellen in verschiedenen Schemata
Daten und Metadaten werden gleich behandelt
Umstrukturierungen innerhalb der Anfrage
• Daten zu Metadaten und umgekehrt
•
Dynamische Sicht-Definition
• Ergebnisrelation hängt vom Zustand der Datenbank ab
•
Horizontale Aggregation
• Über mehrere Spalten hinweg
•
Überbrückung struktureller Heterogenität
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
33
Einführendes Beispiel
• Ziel: Integrierte Sicht mit Schema der ersten Quelle
•
•
Alle Filmtypen der ersten Quelle sollen im Ergebnis vorhanden sein
Diese sind durch Werte von TYP definiert
CREATE
SELECT
FROM
UNION
SELECT
FROM
WHERE
VIEW q1_q2
id, title, regisseur, typ
q1.film
F2.id, F2.title, F2.regisseur, A
q1::Film F1, q2-> A, q2::Film F2
A = F1.Typ AND
F2.id = A.film_id
Iteriert über alle
Relationennamen von q2
Join über Attributwerte in q1 und
Tabellennamen in q2
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
34
Inhalt dieser Vorlesung
• Multidatenbanksprachen
• SchemaSQL
•
•
•
•
•
Grundlegende Syntax
Zugriff auf Metadaten
Horizontale Aggregation
Dynamische Umstrukturierung
Implementierung
• Ausklang
•
•
Andere Multidatenbanksprachen
Pivot-Operator
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
35
Ausdrucksfähigkeit von SQL
• Variablendeklaration in FROM Klausel
• Verwendung von Variablen in SELECT und WHERE Klauseln
• Implizites „FORALL“ über alle Tupel einer Relation
•
•
Joins: Geschachtelte Schleifen
Implementierung kann anders vorgehen (z.B. Sort-Merge bei Equi-Join)
Abkürzung bei Eindeutigkeit
<range>
<var>
<var> (alias)
Attribut
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
36
Grundlegende Syntax SchemaSQL
• Grundlegende Syntax wie SQL
• SELECT … FROM … WHERE
• Deklaration in FROM Klausel durch <range> <var>
• Variablen über fünf verschiedene Wertbereichstypen
•
•
•
•
•
->
db->
db::rel->
db::rel
db::rel.attr
Alle
Alle
Alle
Alle
Alle
Datenbanknamen der Multidatenbank
Relationennamen einer Datenbank db
Attributnamen einer Relation rel in db
Tupel einer Relation rel in db
verschiedenen Werte von attr in rel in db
• Weiterer Unterschied: Geschachtelte Deklarationen
•
•
Spätere Deklarationen der FROM Klausel referenzieren frühere
Machen Queries nicht gerade sehr gut lesbar
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
37
Beispiel
• Multidatenbank aus mehreren Universitätsdatenbanken
• univ-A, univ-B, univ-C, univ-D
• Information über Angestellte
•
•
•
Kategorie (category)
Gehalt (salFloor)
Abteilung (dept)
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
38
SchemaSQL – Beispiel
Gleiche Semantik (salary)
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
39
SchemaSQL – Beispiel
Gleiche Semantik (dept)
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
40
SchemaSQL – Beispiel
Gleiche Semantik (category)
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
41
Beispiel 1
• Gesucht
•
Alle Abteilungen in univ-A, die Technikern
mehr zahlen als gleiche Abteilungen in univ-B
• Anforderungen
•
•
•
Selektionen jeweils auf `Technician`
Vergleich der Gehälter
Join zwischen beiden Tabellen
• Verschiedene DBs
• Über welches Attribut?
->
alle Datenbanknamen
db->
alle Relationen in db
db::rel-> alle Attribute in rel (in db)
db::rel
alle Tupel in rel (in db)
db::rel.attr alle Werte von Attribut attr
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
42
Lösung
• Gesucht
•
Alle Abteilungen in univ-A, die Technikern
mehr zahlen als gleiche Abteilungen in univ-B
• SchemaSQL Anfrage
SELECT
FROM
WHERE
A.dept
univ-A::salInfo A,
univ-B::salInfo B,
univ-B::salInfo-> AttB
AttB <> `category`
A.dept = AttB AND
A.category = `Technician` AND
B.category = `Technician` AND
A.salFloor > B.AttB
Join zwischen
Attributnamen und
Spaltenwerten
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Alle
Attributnamen
43
Beispiel 2
• Gesucht
•
Alle Abteilungen in univ-C, die Technikern
mehr zahlen als gleiche Abteilungen in univ-D
• Anforderungen
•
•
•
Selektionen jeweils auf `Technician`
Vergleich der Gehälter
Join zwischen beiden Tabellen
• Verschiedene DBs
• Über welches Attribut?
->
alle Datenbanknamen
db->
alle Relationen in db
db::rel-> alle Attribute in rel (in db)
db::rel
alle Tupel in rel (in db)
db::rel.attr alle Werte von Attribut attr
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
44
Lösung
• Gesucht
•
•
Alle Abteilungen in univ-C, die Technikern mehr
zahlen als gleiche Abteilungen in univ-D
Tabellenname
SchemaSQL Anfrage
als Ausgabe
SELECT
FROM
WHERE
RelC
Geschach
univ-C-> RelC,
telte
univ-C::RelC C,
Variablen
univ-D::salInfo D
RelC = D.dept AND
C.category = `Technician` AND
C.salFloor > D.Technician
Iteration über
Tupel beider
Tabellen
in univ-C
Ulf Leser: Informationsintegration, Wintersemester
2008/2009
Join zwischen
Relationennamen
und Spaltenwerten45
Kartesische Produkte
SELECT
FROM
WHERE
RelC
univ-C-> RelC,
univ-C::RelC C,
univ-D::salInfo D
RelC = D.dept AND
C.category = `Technician` AND
C.salFloor > D.Technician
C
RelC
CS
MATH
[CS] Prof, 60.000
[CS] AssocProf, 55.000
[CS] Technician, 42.000
[MATH] Prof, 70.000
[MATH] AssocProf, 60.000
[MATH] Technician, 46.000
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
D
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45,000, 38.000
46
C
RelC
CS
MATH
CS
CS
CS
CS
CS
CS
MATH
MATH
MATH
MATH
MATH
MATH
Kartesische Produkte
Variable: D
[CS] Prof, 60.000
[CS] AssocProf, 55.000
[CS] Technician, 42.000
[MATH] Prof, 70.000
[MATH] AssocProf, 60.000
[MATH] Technician, 46.000
Prof, 60.000
Prof, 60.000
AssocProf, 55.000
AssocProf, 55.000
Technician, 42.000
Technician, 42.000
Prof, 70.000
Prof, 70.000
AssocProf, 60.000
AssocProf, 60.000
Technician, 46.000
Technician, 46.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
47
SELECT
FROM
RelC
univ-C-> RelC,
univ-C::RelC C,
univ-D::salInfo D
RelC = D.dept
C.category = `Technician`
C.salFloor > D.Technician
Kartesische Produkte
WHERE
AND
AND
CS
CS
CS
CS
CS
CS
MATH
MATH
MATH
MATH
MATH
MATH
Prof, 60.000
Prof, 60.000
AssocProf, 55.000
AssocProf, 55.000
Technician, 42.000
Technician, 42.000
Prof, 70.000
Prof, 70.000
AssocProf, 60.000
AssocProf, 60.000
Technician, 46.000
Technician, 46.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
48
SELECT
FROM
RelC
univ-C-> RelC,
univ-C::RelC C,
univ-D::salInfo D
RelC = D.dept
C.category = `Technician`
C.salFloor > D.Technician
Kartesische Produkte
WHERE
AND
AND
CS
CS
CS
MATH
MATH
MATH
Prof, 60.000
AssocProf, 55.000
Technician, 42.000
Prof, 70.000
AssocProf, 60.000
Technician, 46.000
CS, 75.000, 60.000, 40.000
CS, 75.000, 60.000, 40.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
MATH, 60.000, 45.000, 38.000
MATH, 60.000, 45.000, 38.000
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
49
SELECT
FROM
RelC
univ-C-> RelC,
univ-C::RelC C,
univ-D::salInfo D
RelC = D.dept
C.category = `Technician`
C.salFloor > D.Technician
Kartesische Produkte
WHERE
AND
AND
CS
MATH
Technician, 42.000
Technician, 46.000
CS, 75.000, 60.000, 40.000
MATH, 60.000, 45.000, 38.000
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
50
Einschub: Zugriff auf Metadaten?
• Liegen auch im Data dictionary (Katalog)
•
Alle Attributnamen und –typen im Schema
SELECT attribute_name, attribute_type, table_name
FROM user_attributes;
•
Alle Tabellennamen, alle Integritätsconstraints, alle Berechtigungen, …
• Können in Anfragen verwendet werden
•
[Oracle] Alle Tabellen, die ein Attribut enthalten,
dass denselben Namen hat wie ein
person(
Wert in person.geschlecht
Id, vorname, nachname,
maennlich, weiblich)
person( Id, vorname, nachname,
SELECT t.table_name
geschlecht)
FROM user_tables t, person p
WHERE t.attribute_name = p.geschlecht;
• Aber nur Umwandlung Metadaten -> Daten
•
Kein Zugriff auf die Tabellen „hinter“ den Metadatennamen
• Kein Standard
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
51
Einschub: Was sind Daten, was Metadaten?
• Universal database schema
•
Annahme: Datenbankweit eindeutige Tupel-IDs
tables( table_ name);
attribute( table_name, attribute_name, attribute_type);
tuple( table_name, tuple_id);
value( tuple_id, attribute_name, value);
• Kann alles ausdrücken, was ein beliebiges relationales
Schema ausdrücken kann
•
Erweiterungen für IC‘s, Datentypkonformität, …
• Schemaevolution wird zur Datenmanipulation
•
Neue Spalte: INSERT INTO attribute VALUES( …)
• Geeignet für semi-strukturierte Daten
•
Werte in value nur notwendig, wenn tatsächlich Daten vorhanden sind
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
52
Warum brauchen wir mehr?
• Vorteile
•
•
Sehr flexibel
Mächtiges Werkzeug für theoretische Untersuchungen
• Über alle relationalen Schemata
•
Einfach implementierbar
• Aber …
•
•
•
•
•
Konzeptionelle Verwirrung
Unverständlich – wo ist mein Schema? (meine Daten?)
Konsistenzhaltung wird extrem aufwändig
„Normale“ Anfragen werden extrem kompliziert: SELECT * FROM person
Schlechte Performanz
•
•
•
•
Alle Daten stehen in einer Spalte einer Tabelle
Keine separate Indexierung möglich
Keine differenzierte Selektivitätsabschätzungen möglich
…
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
53
Inhalt dieser Vorlesung
• Multidatenbanksprachen
• SchemaSQL
•
•
•
•
•
Grundlegende Syntax
Zugriff auf Metadaten
Horizontale Aggregation
Dynamische Umstrukturierung
Implementierung
• Ausklang
•
•
Andere Multidatenbanksprachen
Pivot-Operator
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
54
Herkömmliche Aggregation
• Funktionen
•
AVG, COUNT, SUM, MIN, MAX, (STDDEV, VARIANCE, …)
SELECT AVG(Budget) FROM projekt
• Gruppierung und Aggregation ist vertikal
•
Aggregation: Werte einer Spalte werden zusammengefasst
SELECT COUNT(*)
FROM
mitarbeiter
•
Gruppierung: Teilmengen von Werten einer Spalte werden
zusammengefasst
SELECT
FROM
WHERE
GROUP BY
m.id, SUM(p.Budget), MAX(p.Budget)
mitarbeiter m, projekt p
m.p_id = p.p_id
m.id
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
55
SchemaSQL – Aggregation 1
• Gesucht
•
Durchschnittliches Gehalt in
univ-B pro Kategorie für alle
Abteilungen
• Anforderungen
•
•
Durchschnittbildung über
Werte in zwei Spalten
Horizontale Aggregation
->
alle Datenbanknamen
db->
alle Relationen in db
db::rel-> alle Attribute in rel (in db)
db::rel
alle Tupel in rel (in db)
db::rel.attr alle Werte von Attribut attr
Liste von Listen
= implizite Semantik
SELECT
FROM
T.category, avg(T.D)
univ-B::salInfo-> D,
univ-B::salInfo T
WHERE
D <> `category`
GROUP BY T.category
Iteration über
alle Spalten
von salInfo
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Iteration über
alle Tupel von
salInfo
56
Horizontale Aggregation 2
• Gesucht
•
Durchschnittliches Gehalt in
univ-C pro Kategorie für alle
Abteilungen
• Anforderungen
•
•
Durchschnittbildung über zwei
Spalten
Die liegen in verschiedenen
Tabellen
->
alle Datenbanknamen
db->
alle Relationen in db
db::rel-> alle Attribute in rel (in db)
db::rel
alle Tupel in rel (in db)
db::rel.attr alle Werte von Attribut attr
SELECT
FROM
T.category, avg(T.salFloor)
univ-C-> D,
univ-C::D T
GROUP BY D.category
Iteration über
alle Relationen
von univ-C
Ulf Leser: Informationsintegration, Wintersemester 2008/2009
Iteration über
alle Tupel aller
Relationen
57
Blockweise Aggregation
• Durchschnittliches Gehalt in
univ-D aller Angestellten pro
Fakultät
• Anforderung
faculty
dname
fname
Math
MatNat II
Physics
MatNat I
CS
MatNat II
•
Aggregation über einen Block
SELECT F.fname, AVG(T.C)
FROM
univ-D::salInfo-> C,
univ-D::salInfo T,
univ-D::faculty F
WHERE C <> „dept“ AND
T.dept = F.dname
GROUP BY F.fname
->
alle Datenbanknamen
db->
alle Relationen in db
Aggregation über eine Liste von Listen
db::rel-> alle Attribute in rel (in db)
db::rel
alle Tupel in rel (in db)
Ulf Leser:
Wintersemester
2008/2009
58
db::rel.attr
alle Informationsintegration,
Werte von Attribut
attr
Herunterladen