Informationsintegration Global-as-View: GaV

Slides:



Advertisements
Ähnliche Präsentationen
Transregio 33 The Dark Universe Heidelberg-Bonn-Munich
Advertisements

Informationsintegration Heterogenität Felix Naumann.
Informationsintegration Local-as-View: LaV
Informationsintegration Der Bucket-Algorithmus Felix Naumann.
Informationsintegration Dynamische Programmierung
Informationsintegration Einführung
Informationsintegration ETL & Datenherkunft (Lineage)
Informationsintegration Containment und Local-as-View Anfragebearbeitung Felix Naumann.
Informationsintegration Schema Matching Felix Naumann.
Informationsintegration SchemaSQL Felix Naumann.
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Einjährige Berufsfachschule Technik der Fachrichtung Elektrotechnik
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Traumazentrierte Psychotherapie der chronifizierten, komplexen PTBS vom Phänotyp der Borderline-Persönlichkeitsstörung (Luise Reddemann, Ulrich Sachsse)
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Inner Joins.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Übung Datenbanksysteme SQL-Anfragen (2)
Übung Datenbanksysteme UML
Normalformen Normalisieren Schlüssel
Seminar: Verteilte Datenbanken
6 Normalformen Normalisieren Schlüssel
Informationsintegration Architekturen
Informationsintegration Mediator/Wrapper-Architektur & Peer-Data-Management Felix Naumann.
Informationsintegration Anwendungsszenarien
Informationsintegration Schema Mapping
Informationsintegration Materialisierte vs. Virtuelle Integration
Christian Gebhardt Berlin,
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
RDF-S3 und eRQL: RDF-Technologien für Informationsportale Karsten Tolle und Fabian Wleklinski.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Datenbankentwicklung IV-LK
03/02/061 Methoden und Erfahrungen beim Zeichnen von genauen OL-Karten Orest Kotylo.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #10 Physische Datenorganisation
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Institute of Scientific Computing – University of ViennaP.Brezany Integration von föderierten Datenbanken Peter Brezany Institut für Scientific Computing.
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
Prüfung auf Serialisierbarkeit (3)
Vorlesung #5 SQL (Teil 2).
Seminarleiter-Zuordnung (S1-S8)
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.
Tupelkalkül: Notation (1)
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #10 RDBMS Erweiterungen.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Institute for Software Science – University of ViennaP.Brezany Datenintegration Peter Brezany Institut für Softwarewissenschaften Universität Wien.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
 Präsentation transkript:

Informationsintegration Global-as-View: GaV 15.11.2005 Felix Naumann

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Ausblick: Anfragebearbeitung Global Local as View (GLaV) Vergleich 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Wdh.: Architekturen 4-Schichten-Architektur 5-Schichten-Architektur Mediator-Wrapper-Architektur Peer-Data-Management-Architektur 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Das Problem Externes Schema 1 Externes Schema N ... Föderiertes Schema Wie drückt man diesen Übergang aus? Exportschema Exportschema ... Komponenten- schema Komponenten- schema Lokales internes Schema Lokales internes Schema ... 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Das Problem Anwendung 1 Anwendung 2 Data Warehouse Quelle 1 Quelle 2 Wie spezifiziert man die Datentransformationen? Data Warehouse ETL 1 ETL 3 ETL 2 Quelle 1 Quelle 2 Quelle 3 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Das Problem Anwendung 1 Anwendung 2 Mediator Quelle 1 Quelle 2 Wie drückt man die Funktionalität des Wrappers aus? Mediator Wrapper 1 Wrapper 3 Wrapper 2 Quelle 1 Quelle 2 Quelle 3 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Das Problem Peer 3 Peer 5 Peer 1 Peer 4 Wie sieht so ein „Mapping“ aus? Peer 2 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Das Problem Zwei heterogene Schemata Quellschema: Hier sind die Daten. Zielschema: Hiergegen wird die Anfrage gestellt. Teilproblem 1 Beziehungen zwischen Schemata spezifizieren Mappings Teilproblem 2 Daten von der Quelle zum Ziel transformieren Transformationsanfragen Teilproblem 3 Wie mache ich dies alles automatisch? -> VL 22-24 (Schema Mapping & Schema Matching) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Modellierung von Datenquellen Kernidee Modellierung strukturell heterogener Quellen in Bezug auf ein globales Schema als Views (Sichten) Relationales Modell Allgemein: Eine Sicht verknüpft mehrere Relationen und produziert eine Relation. Sichten zur Verknüpfung von Schemata Sicht definiert auf Relationen eines Schemas und produziert eine Relation des anderen Schemas Jetzt: Unterscheidung lokales und globales Schema 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View / Local as View Relationen des globalen Schemas werden als Sichten auf die lokalen Schemas der Quellen ausgedrückt. Local as View Relationen der Schemas der Quellen werden als Sichten auf das globale Schema ausgedrückt. 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Regie, Jahr, Genre) S3: RegieDB(Titel, Regie) S4: GenreDB(Titel, Jahr, Genre) Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW Film AS SELECT * FROM IMDB UNION SELECT * FROM MyMovies SELECT RegieDB.Titel, RegieDB.Regie, GenreDB.Jahr, GenreDB.Genre FROM RegieDB, GenreDB WHERE RegieDB.Titel = GenreDB.Titel Typisches Merk-mal bei GaV Join über mehrere Quellen (Anfragebearbeitung!) Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S5: MDB(Titel, Regie, Jahr) S6: MovDB(Titel, Regie, Genre) CREATE VIEW Film AS SELECT Titel, Regie, Jahr, NULL AS Genre FROM MDB UNION SELECT Titel, Regie, NULL AS Jahr, Genre FROM MovDB Fehlende Attribute Form des Ergebnisses; Datenfusion Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S7: KinoDB(Kino, Genre) CREATE VIEW Film AS SELECT NULL, NULL, NULL, Genre FROM KinoDB CREATE VIEW Programm AS SELECT Kino, NULL, NULL Problem: Assoziationen werden getrennt, da nur eine Sicht pro globaler Relation. Allenfalls interessant für passing bindings Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Vorschau: Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S7 AS SELECT Programm.Kino, Film.Genre FROM Film, Programm WHERE Film.Titel = Programm.Titel S7: KinoDB(Kino, Genre) Assoziationen des globalen Schemas können in der Sicht hergestellt werden. 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Beispiel Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) Nebenbedingung: Jahr > 2000 S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Regie, Jahr, Genre) CREATE VIEW NeuerFilm AS SELECT * FROM IMDB WHERE Jahr > 2000 UNION SELECT * FROM MyMovies Bekannte Nebenbedingung auf dem globalen Schema kann modelliert werden. 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S8: NeueFilme(Titel,Regie, Genre) (Nebenbedingung: Jahr > 2000) CREATE VIEW Film AS SELECT Titel, Regie, NULL, Genre FROM NeueFilme Problem: Bekannte Nebenbedingung auf der Quelle kann nicht modelliert werden. Frage: Warum ist das schlimm? 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – globale Nebenbedingungen Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Nebenbedingung: Jahr > 2000 oder NeuerFilm(Titel, Regie, Genre) S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) CREATE VIEW NeuerFilm AS SELECT * FROM AlleFilmeNett WHERE Jahr > 2000 oder SELECT Titel, Regie, Genre FROM AlleFilmeNett Quelle S2 kann nicht modelliert werden! 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – lokale Nebenbedingungen Modellierung nur für Optimierung Globales Schema Film(Titel, Regie, Jahr, Genre) CREATE VIEW Film AS SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) S3: NeueFilmeNett(Titel, Regie, Jahr, Genre) (Nebenbedingung: Jahr > 2000) S4: NeueFilmeBöse(Titel, Regie, Genre) S5: AktuelleFilme(Titel, Regie, Genre) (Nebenbedingung: Jahr = 2004) Jede Quelle kann modelliert werden! Jede Sicht exportiert alle Daten der Quelle! 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Nebenbedingungen Anfrage 1: SELECT * FROM Film Globales Schema Film(Titel, Regie, Jahr, Genre) CREATE VIEW Film AS SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Nebenbedingungen Anfrage 1: SELECT * FROM Film WHERE Jahr > 2001 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr > 2001 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Nebenbedingungen Anfrage 1: SELECT * FROM Film WHERE Jahr = 2001 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr = 2001 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt nicht zum Ergebnis bei (2001  2004) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Nebenbedingungen Anfrage 1: SELECT * FROM Film WHERE Jahr < 1950 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr < 1950 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt nicht zum Ergebnis bei (2000 > 1950) Trägt nicht zum Ergebnis bei (zum Glück) Trägt nicht zum Ergebnis bei (2004 > 1950) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – globale und lokale Nebenbedingungen Globales Schema NeuerFilm(Titel, Regie, Genre) Nebenbedingung: Jahr > 2000 CREATE VIEW Film AS SELECT Titel, Regie, Genre FROM AlleFilmeNett WHERE Jahr > 2000 UNION ??? FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse FROM AktuelleFilme S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) S3: NeueFilmeNett(Titel, Regie, Jahr, Genre) (Nebenbedingung: Jahr > 2000) S4: NeueFilmeBöse(Titel, Regie, Genre) S5: AktuelleFilme(Titel, Regie, Genre) (Nebenbedingung: Jahr = 2004) Quelle S2 kann nicht modelliert werden! 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global as View (GaV) – Nebenbedingungen Fazit Nebenbedingungen im globalen Schema können die Integration von Quellen verhindern, wenn die Bedingung nicht geprüft werden kann (fehlendes Attribut). Nebenbedingungen in den lokalen Schemas können modelliert werden, wenn sie auf exportierten Attributen gelten, oder wenn sie auf globalen Attributen gelten und die Form attribute = <constant> haben. tragen möglicherweise nicht zum Anfrageergebnis bei, wenn Nebenbedingung nicht modelliert wurde. 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Ausblick: Anfragebearbeitung Global Local as View (GLaV) Vergleich 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Anfragebearbeitung – GaV Gegeben: Anfrage an globales Schema Insbesondere: Auf Relationen des globalen Schemas Für jede globale Relation genau eine Sicht auf lokale Quellen Gesucht: Alle Tupel, die die Anfragebedingungen erfüllen Aber: Daten sind in lokalen Quellen gespeichert. Idee: Ersetze jede Relation der Anfrage durch ihre Sicht (Sichtentfaltung, View Expansion, Query Unfolding). Geschachtelte Anfrage 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) SELECT * FROM Film Globale Sicht für Film SELECT * FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) SELECT Titel, Jahr FROM Film WHERE Jahr = ‚2003‘ SELECT Titel, Jahr FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) WHERE Jahr = ‚2003‘ 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) S7: KinoDB(Titel, Kino, Genre, Zeit) SELECT F.Titel, P.Kino FROM Film F, Programm P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) AS F, ( SELECT * FROM KinoDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung Geschachtelte Anfragen Beliebig tiefe Schachtelung Bearbeitung Konzeptionell: Ausführung der Anfragen von innen nach außen und Speicherung in temporären Relationen. Tatsächlich: Optimierungspotential durch Umschreiben der Anfrage (Entschachtelung) Caching und Materialisierte Sichten (materialized views) 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung Schachtelung i.d.R. Belassen bei entfernten Quellen i.d.R. Auflösung bei materialisierten Sichten SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) AS F, ( SELECT * FROM KinoDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, P.Kino FROM IMDB F, KinoDB P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 UNION SELECT F1.Titel, P1.Jino FROM RegieDB F1, GenreDB F2, KinoDB P WHERE F1.Titel = F1.Titel WHERE F1.Titel = P1.Titel AND P1.Zeit > 20:00 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) AS F, ( SELECT * FROM KinoDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 P.Zeit>20:00 ⋈Titel ∪ ⋈Titel GenreDB RegieDB IMDB KinoDB 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung P.Zeit>20:00 ⋈Titel ⋈Titel ∪ P.Zeit>20:00 ∪ ⋈Titel ⋈Titel GenreDB RegieDB IMDB KinoDB GenreDB RegieDB IMDB KinoDB 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung ⋈Titel ∪ ∪ P.Zeit>20:00 ⋈Titel ⋈Titel ⋈Titel P.Zeit>20:00 GenreDB RegieDB IMDB KinoDB GenreDB RegieDB IMDB KinoDB 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung Globales Schema Film(Titel, Regie, Genre) Programm(Kino, Titel, Zeit) S5: MDB(Titel, Zeit, Regie) S6: MovDB(Kino, Genre, Titel) CREATE VIEW Film AS SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel CREATE VIEW Programm AS SELECT Kino, Titel, Zeit FROM MovDB, MDB SELECT F.Titel, P.Kino FROM Film F, Programm P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, F.Jahr FROM ( SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel ) AS F, ( SELECT Kino, Titel, Zeit FROM MovDB, MDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung SELECT F.Titel, F.Jahr FROM ( SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel ) AS F, ( SELECT Kino, Titel, Zeit FROM MovDB, MDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 P.Zeit>20:00 ⋈Titel ⋈Titel ⋈Titel MDB MovDB 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 GaV - Schachtelung P.Zeit>20:00 ⋈Titel ⋈Titel P.Zeit>20:00 ⋈Titel ⋈Titel MDB MovDB MDB MovDB 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 SQL – Schachtelungen Teilanfrage in FROM Klausel s.o. Teilanfrage (subquery) in WHERE Klausel Skalare Teilanfrage Nicht-skalare Teilanfrage 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Skalare Teilanfragen Teilanfrage überall dort wo Konstanten erwartet werden Typisch: Eine Relation wird nur benutzt um einen einzigen Wert zu ermitteln Es werden nur Daten einer Relation ausgegeben (denn Daten aus Teilanfragen können nicht im Ergebnis erscheinen) SELECT Regie FROM RegieDB, MovieDB WHERE Titel = ‚Star Wars‘ AND RegieDB.movieID = MovieDB.ID SELECT Regie FROM RegieDB WHERE movieID = (SELECT ID FROM MovieDB WHERE Titel = ‚Star Wars‘) Falls 0 oder >1 Tupel produziert werden: error 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Nicht-skalare Teilanfragen Für Quantoren EXISTS SELECT ID FROM MovieDB WHERE EXISTS (SELECT * FROM GenreDB WHERE Genre = ‚Drama‘) IN SELECT Jahr FROM MovieDB WHERE ID IN (SELECT MovieID FROM RegieDB AND Regie = ‚Coppola‘) Teilanfrage darf nur ein Attribut haben ALL ... WHERE JAHR < ALL (SELECT FROM WHERE) ANY ... WHERE JAHR < ANY (SELECT FROM WHERE) Jeweils mit NOT Variante Besseres Beispiel? 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Literatur Gute Zusammenfassung für LaV und weiterführende Literatur: [Levy01] Alon Y. Halevy: Answering queries using views: A survey, in VLDB Journal 10: 270-294, 2001. Eher theoretisch [Ull00] Jeffrey D. Ullman: Information Integration Using Logical Views. TCS 2000: 189-210 [Hull97] Managing Semantic Heterogeneity in Databases: A Theoretical Perspective. Richard Hull. PODS 1997 tutorial 15.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06