Datenbanktheorie Sommersemester 2012 - Thomas Schwentick Teil F: Unvollständige Daten 17: Repräsentationssysteme Version von: 8. Juli 2012 (13:53) Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 1 Fehlerhafte und unvollständige Daten: Beispiele (1/2) Beispiel • Fehlerhafte Daten in Datenbanken können verschiedene Ursachen haben • Hier: – Unklare Quellen – Fehlende Informationen – Widersprüchliche Informationen (Quelle: Dan Olteanu) DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 2 Fehlerhafte und unvollständige Daten: Beispiele (2/2) Fehlerhafte Daten in einer DB: • Sinnlose Daten: Vorname = Krblzg • Wertebereichsfehler: – Geburtstag = 30.2.1991 – Ort = Hessen • Lokale Konsistenzfehler: – Geburtstag = 30.3.1991, Alter = 32 • Widerspruch zu Integritätsbedingung: – Zwei Mitarbeiter mit derselben Personalnummer Unvollständige Daten: • Was kann es bedeuten, dass ein AttributWert in einer DB nicht vorhanden ist? – Möglicherweise existiert der Wert nicht: Kein Telefon → kein Wert für TelefonNr – Möglicherweise ist der Wert unbekannt: ∗ Vielleicht ist bekannt, dass der Wert existiert (z.B.: Geburtstag) ∗ Vielleicht ist aber auch nicht bekannt, ob ein Wert existiert Mögliche Gründe für fehlerhafte Daten: • Eingabe vergessen • Fehlerhafter Eingabewert gelöscht • Datenintegration • Update von Sichten DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 3 Was tun? • Wie soll mit fehlerhaften und unvollständigen Daten vorgegangen werden? • Eine Möglichkeit: Bereinigung – Es gibt verschiedene Methoden zur (halb-) automatischen Korrektur von Daten (siehe auch: Data Mining) – Unvollständige Tupel können z.B. gelöscht oder um plausible (oder determinierte) Werte ergänzt werden – Das Ziel ist hierbei, eine DB ohne unvollständige Daten zu erhalten • Aber: – In vielen Fällen ist eine Korrektur oder Ergänzung von Daten nicht möglich – Löschen von Tupeln aufgrund einzelner fehlender Attributwerte verwirft möglicherweise nützliche Daten – Ad-hoc-Lösungen wie die Eingabe spezieller Werte („unbekannt“) führt zu einer Vielzahl von Problemen DBT / Schwentick / SoSe 12 • Eine Alternative: Integration von Unvollständigkeit in das Datenmodell • In diesem Kapitel: eine Erweiterung des relationalen Datenmodells um die Möglichkeit, mit unvollständigen Daten umzugehen: – Repräsentation – Anfragebearbeitung – Updates Unvollständige Daten 17. Repräsentationssysteme . Folie 4 Mögliche Datenbanken • Bisher hatten wir es zu jedem Zeitpunkt immer nur mit einer Datenbank zu tun: D • Eine DB I mit unvollständigen Daten (IDB) repräsentiert dagegen eine Menge P(I) von möglichen DBs mit vollständigen Daten: D1 D2 D3 ··· • Idee: eine dieser DBs ist die Richtige • Zu beachten: in der Regel ist die Menge der möglichen DBs sogar unendlich DBT / Schwentick / SoSe 12 • Wie lässt sich in diesem Rahmen die Semantik einer Anfrage an eine IDB I mit unvollständigen Daten definieren? – q definiert für jede mögliche DB Di ein Ergebnis JqK(Di ) – Das Gesamtergebnis ist also zunächst eine (möglicherweise unendliche) Menge von Relationen • Wann soll ein Tupel t nun im Ergebnis von q für IDB I sein? • Zwei Möglichkeiten bieten sich an: Sichere Antworten: t ∈ JqK(I), falls t ∈ alle DBs Di ∈ P(I) Mögliche Antworten: t ∈ JqK(I), falls t ∈ eine DB Di ∈ P(I) Unvollständige Daten 17. Repräsentationssysteme JqK(Di ), für JqK(Di ), für . Folie 5 Codd-Tabellen: Beispiel Beispiel • [Codd 79] schlug vor, fehlende Werte in einer DB durch einen speziellen Eintrag ⊥ zu beschreiben • Jedes Vorkommen von ⊥ steht für einen beliebigen Wert • Die möglichen DBs zu einer IDB I wären also alle DBs, die aus I durch Ersetzen der ⊥-Einträge durch beliebige (untereinander auch möglicherweise verschiedener) Werte entstehen Beispiel • Eine IDB I könnte dann gegeben sein durch: L IEFERANTEN Teil Firma T7 AllesAufLager T8 UmDieEcke T9 UmDieEcke F IRMEN Firma Ort AllesAufLager Köln UmDieEcke ⊥ OnlineTeile24.com ⊥ DBT / Schwentick / SoSe 12 • Einige mögliche Ausprägungen von F IRMEN in möglichen DBs zu I : F IRMEN Firma Ort AllesAufLager Köln UmDieEcke Witten OnlineTeile24.com München F IRMEN Firma Ort AllesAufLager Köln UmDieEcke Hamm OnlineTeile24.com Köln F IRMEN Firma Ort AllesAufLager Köln UmDieEcke Lünen OnlineTeile24.com Lünen F IRMEN Firma Ort AllesAufLager Köln UmDieEcke Köln OnlineTeile24.com Köln Unvollständige Daten 17. Repräsentationssysteme . Folie 6 Codd-Tabellen: Anfragen Beispiel L IEFERANTEN Teil Firma T7 AllesAufLager T8 UmDieEcke T9 UmDieEcke F IRMEN Firma Ort AllesAufLager Köln UmDieEcke ⊥ OnlineTeile24.com ⊥ • Wie sind die Ergebnisse der folgenden Anfragen an I definiert? – q1 = πFirma (F IRMEN) – q2 = σFirma=„UmDieEcke“ (F IRMEN) – q3 = σOrt=„Köln“ (F IRMEN) – q4 = L IEFERANTEN 1 F IRMEN • q1 : Unproblematisch • q2 : Das Ergebnis lässt sich leicht als Codd-Tabelle darstellen • q3 : Problem: Es könnten 1-3 Tupel im Ergebnis vorkommen – Das kann eine Codd-Tabelle nicht ausdrücken • q4 : Problem: Das Ergebnis müsste zwei Tupel mit identischen aber unbekannten Ort-Werten enthalten – Wertgleichheit in verschiedenen Tupeln kann mit CoddTabellen nicht erzwungen werden DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 7 Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.2.1 Codd-Tabellen 17.2.2 V-Tabellen 17.2.3 Tabellen mit Bedingungen 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 8 Repräsentationssysteme • Fragen: • Ein Repräsentationssystem für IDBs besteht aus – Was lässt sich über die Verwendbarkeit von CoddTabellen aussagen? – Wie lassen sich verschiedene Ansätze zur Repräsentation von IDBs systematisch miteinander vergleichen? DBT / Schwentick / SoSe 12 – einer Methode zur Repräsentation der möglichen DBs zu einer IDB – Operatoren zur Auswertung der Operatoren der relationalen Algebra auf diesen Repräsentationen ∗ Möglicherweise hat ein solches System auch nur Operatoren für einen Teil der relationalen Algebra • Codd-Tabellen sind ein Repräsentationssystem: – Fehlende Werte werden durch ⊥ repräsentiert: eine IDB I steht für die Menge aller DBs, die durch Ersetzung der ⊥-Einträge mit beliebigen Werten entstehen – Die Operatoren behandeln das Symbol „⊥ “ wie eine Konstante (aber σA=⊥ ist nicht erlaubt) Unvollständige Daten 17. Repräsentationssysteme . Folie 9 Repräsentationssysteme und Anfragen (1/7) • Der Zusammenhang zwischen relationalen Operatoren und entsprechenden Operatoren auf den Repräsentanten lässt sich wie folgt illustrieren: q I′ I D1 D2 P(I) D3 ··· q JqK(D1 ) JqK(D2 ) JqK(D3 ) ··· JqK(P(I)) • Wir bezeichnen für eine IDB I die Menge der möglichen DBs zu I mit P(I) • Es ergeben sich zwei Kernfragen für ein Repräsentationssystem: – Für welche Anfragen q kann die Menge {JqK(D) | D ∈ P(I)} überhaupt wieder durch eine IDB I ′ dargestellt werden? ∗ Also: wann gibt es I ′ mit P(I ′ ) = JqK(P(I))? – Falls es ein solches I ′ gibt, wie kann die Semantik der Operatoren so auf Repräsentanten definiert werden, dass JqK(I) = I ′ gilt? ∗ Und wie lässt sich I ′ möglichst effizient berechnen? DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 10 Repräsentationssysteme und Anfragen (2/7) Beispiel R A 1 ⊥ 2 B 1 ⊥ 0 R A 1 2 2 B 1 0 0 R C ⊥ 1 ⊥ R C 2 1 0 A 1 3 2 B 1 3 0 P(I) A 1 ⊥ 2 πAC (R) R C A B C 2 1 1 1 · · · πAC (R) 1 2 0 1 5 R A 1 2 2 C ⊥ 1 ⊥ R R C A C A C 2 1 2 1 1 1 3 1 2 1 0 2 5 ··· JqK(P(I)) • Für Projektionsanfragen q gilt: – JqK(I) repräsentiert JqK(P(I)) • Dabei ist JπX K(I) genauso definiert wie für vollständige Datenbanken: wähle die X -Spalten von I aus • Allerdings: Wenn mehrere Zeilen, die ⊥ enthalten, gleich sind, so wird keine von • ihnen gelöscht! Wir sprechen hier von einem starken Repräsentationssystem DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 11 Repräsentationssysteme und Anfragen (3/7) q I′ I D1 D2 P(I) D3 ··· q JqK(D1 ) JqK(D2 ) JqK(D3 ) ··· JqK(P(I)) • Wir nennen eine Methode zur Repräsentation von Datenbanken mit unvollständigen Daten ein starkes Repräsentationssystem für eine Anfragesprache C , wenn gilt: – Die Semantik für Anfragen aus C auf IDBs ist so definiert, dass für jede darstellbare IDB I und jede Anfrage q aus C gilt: P(JqK(I)) = JqK(P(I)) DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 12 Repräsentationssysteme und Anfragen (4/7) Beispiel R A 1 ⊥ 2 B 1 ⊥ 0 R A 1 2 2 B 1 0 0 C ⊥ 1 ⊥ R C 2 1 0 A 1 3 2 B 1 3 0 P(I) σA=B (R) R ? R R R C A B C A B C A B C A B C · · · ··· σ (R) A=B 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 0 1 3 3 1 5 JqK(P(I)) • Es gibt keine Repräsentation von JqK(P(I)) durch eine unvollständige Tabelle mit ⊥ • Denn: es kann nicht ausgedrückt werden, dass ein zweites Tupel vorhanden sein kann, bei dem die ersten beiden Attribute denselben Wert haben • Können wir wenigstens ausdrücken, welche Tupel sicher im Ergebnis sind? DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 13 Repräsentationssysteme und Anfragen (5/7) Beispiel R A 1 ⊥ 2 B 1 ⊥ 0 R A 1 2 2 B 1 0 0 C ⊥ 1 ⊥ R C 2 1 0 A 1 3 2 B 1 3 0 P(I) σA=B (R) R A B C R R R R C A B C A B C A B C A B C · · · ··· σ (R) A=B 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 0 1 3 3 1 5 JqK(P(I)) • Im Beispiel gibt es keine „sicheren Tupel“ • Trotzdem ist die leere Relation keine gute Repräsentation für σA=B (I) • Denn: – Die Anfrage πAB (σA=B )(I) hat h1,1i als sicheres Ergebnistupel • Wir interessieren uns deshalb für Repräsentationssysteme, die auch für zusammengesetzte Anfragen noch die sicheren Antworten repräsentieren können DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 14 Repräsentationssysteme und Anfragen (6/7) Beispiel R A 1 ⊥ 2 B 1 ⊥ 0 R A 1 2 2 B 1 0 0 C ⊥ 1 ⊥ R C 2 1 0 A 1 3 2 B 1 3 0 P(I) R σA=B (R) R A B C 1 1 ⊥ R R R C A B C A B C A B C A B C · · · ··· σ (R) A=B 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 0 1 3 3 1 5 JqK(P(I)) • Diese Ergebnisrelation liefert auch dann noch das richtige Ergebnis, wenn πAB angewendet wird • Ihre unmittelbare Interpretation ist: die sicheren Ergebnistupel sind alle Tupel, die kein ⊥ enthalten • Wir nennen dies ein schwaches Repräsentationssystem DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 15 Repräsentationssysteme und Anfragen (7/7) q I′ I D1 D2 P(I) D3 ··· q JqK(D1 ) JqK(D2 ) JqK(D3 ) ··· JqK(P(I)) • Für eine Menge M von DBs und eine Anfrage q sei JqKs (M ) die Menge aller Tupel t, die für alle D ∈ M in JqK(D) liegen (die sicheren Antworten) • Ist C eine Anfragesprache, so nennen wir zwei Mengen M1 ,M2 von Relationen C -äquivalent ( M1 ≡C M2 ), wenn für alle Anfragen q aus C gilt: JqKs (M1 ) = JqKs (M2 ) • Wir nennen eine Methode zur Repräsentation von Datenbanken mit unvollständigen Daten ein schwaches Repräsentationssystem für eine Anfragesprache C , wenn für jede IDB I und jede Anfrage q aus C gilt: P(JqK(I)) ≡C JqK(P(I)) DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 16 Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.2.1 Codd-Tabellen 17.2.2 V-Tabellen 17.2.3 Tabellen mit Bedingungen 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 17 Codd-Tabellen als Repräsentationssystem (1/2) • Wir benötigen zunächst eine formalere Definition von Codd-Tabellen • Für eine Codd-Multitabelle I ist eine D DB D in P(I), falls jede Relation von D konsistent ist mit der entsprechenden Codd• Eine Codd-Tabelle zu Schema R ist eine Tabelle von I R-Relation über dom ∪ {⊥} • Eine Codd-Multitabelle I zu Schema D hat • σA=B (T ) : die Menge der Tupel t mit t.A = t.B und t.A ∈ dom eine R-Codd-Tabelle für jedes R ∈ D • Eine R-Relation R ist konsistent mit einer Satz 17.1 [Imielinski, Lipski 84] R-Codd-Tabelle T , falls gilt: (a) Codd-Tabellen bilden ein starkes Reprä– Es gibt eine surjektive Abbildung b von sentationssystem für Project-Anfragen den Tupeln von T auf die Tupel von R (b) Codd-Tabellen bilden ein schwaches Re– Für jedes Tupel t in T ist b(t) ein Tupel, präsentationssystem für Select-Projectdas durch Ersetzen der ⊥-Einträge in Anfragen t durch (möglicherweise verschiedene) Werte aus dom entsteht • Zu beachten: – Es kann durchaus |R| DBT / Schwentick / SoSe 12 < |T | gelten (c) Codd-Tabellen bilden kein Repräsentationssystem für jeden einzelnen Operator 1, ∪, − Unvollständige Daten 17. Repräsentationssysteme . Folie 18 Codd-Tabellen als Repräsentationssystem (2/2) Beispiel • Wir illustrieren Satz 17.1 durch einige Beispiele: • Was ergibt die naive Auswertung von JL IEFERANTEN 1 F IRMENK(I0 )? Beispiel I0 : L IEFERANTEN Teil Firma T7 AllesAufLager T8 UmDieEcke T9 UmDieEcke F IRMEN Firma Ort AllesAufLager Köln UmDieEcke ⊥ OnlineTeile24.com ⊥ • JσFirma=„UmDieEcke“ (F IRMEN)K(I0 ) = {h„UmDieEcke“,⊥i} • JσFirma=„UmDieEcke“ (F IRMEN)Ks (I0 ) = ∅ • JπFirma (σFirma=„UmDieEcke“ (F IRMEN))K(I0 ) = {h„UmDieEcke“i} • JπFirma (σFirma=„UmDieEcke“ (F IRMEN))Ks (I0 ) = {h„UmDieEcke“i} Teil Firma Ort T7 AllesAufLager Köln T8 UmDieEcke ⊥ T9 UmDieEcke ⊥ • Problem: Nur solche Ergebnisrelationen sind in JL IEFERANTEN 1 F IRMENK(P(I0 )), für die die beiden Symbole ⊥ durch denselben Wert ersetzt werden • Das lässt sich durch Codd-Tabellen nicht ausdrücken • Das letzte Beispiel führt uns direkt zu einer Erweiterung von Codd-Tabellen: V-Tabellen DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 19 Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.2.1 Codd-Tabellen 17.2.2 V-Tabellen 17.2.3 Tabellen mit Bedingungen 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 20 V-Tabellen (1/3) Beispiel I1 : L IEFERANTEN Teil Firma T7 AllesAufLager T8 UmDieEcke T9 UmDieEcke F IRMEN Firma Ort AllesAufLager Köln UmDieEcke ⊥1 OnlineTeile24.com ⊥2 • V-Tabellen erlauben verschiedene Symbole ⊥i für Nullwerte (V ≡ Variablen) • Eine DB D ist in P(I) für eine V-Multitabelle I , falls gilt: – Es gibt einen Variablenbelegung β , die jeden Nullwert ⊥i auf einen Wert in dom abbildet, so dass β(I) = D • Also: – es ist möglich zu repräsentieren, dass an verschiedenen Stellen derselbe (unbekannte) Wert stehen muss ∗ Dies gilt sogar über Relationsgrenzen hinweg – Verschiedene Variablen ⊥i ,⊥j dürfen aber auch auf denselben Wert abgebildet werden • Codd-Tabellen sind V-Tabellen, in denen alle Variablen verschieden sind ✎ Statt von Variablen wird oft auch von named nulls gesprochen DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 21 V-Tabellen (2/3) Beispiel Beispiel • JL IEFERANTEN 1 F IRMENK(I1 ) = F IRMEN Firma Ort AllesAufLager Köln UmDieEcke ⊥1 OnlineTeile24.com ⊥2 Teil Firma Ort T7 AllesAufLager Köln T8 UmDieEcke ⊥1 T9 UmDieEcke ⊥1 Satz 17.2 • Was ist JπFirma (σOrt=„Witten“ )(F IRMEN)K(I1 )? – JπFirma (σOrt=„Witten“ )(F IRMEN)K(P(I1 )) besteht aus den „möglichen Relationen“: (a) V-Tabellen stellen ein starkes Repräsentations-System für ProjectUnion-Anfragen dar (b) V-Tabellen stellen ein schwaches Repräsentations-System für SPJRUAnfragen dar (c) V-Tabellen stellen kein (schwaches) Repräsentationssystem für allgemeine Anfragen der Relationenalgebra dar ∗ ∗ ∗ ∗ ∅ {h„UmDieEcke“i} {h„OnlineTeile24.com“i} {h„UmDieEcke“i, h„OnlineTeile24.com“i} – Es gibt keine V-Tabelle, die diese Relationen stark repräsentieren kann • In (b) sind nur positive Selektionen (σA=B , σA=a ) erlaubt DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 22 V-Tabellen (3/3) • Wie kann JqK für SPJRU-Anfragen auf V-Tabellen (als schwaches System) berechnet werden? – Wie auf „normalen“ Relationen ➞ Variablen werden wie Konstanten behandelt Beispiel R1 A 0 ⊥1 2 B 1 ⊥3 0 C ⊥1 1 ⊥4 πB (R1) B 1 ⊥3 0 σC=1 (R3) C D 1 1 DBT / Schwentick / SoSe 12 R2 R3 A B C 1 1 ⊥1 ⊥1 ⊥3 1 C D 1 1 ⊥1 ⊥3 1 R3 A B C D 1 1 ⊥1 ⊥3 ⊥1 ⊥3 1 1 R2 − R2 AB C ? R1 ∪ R2 B C 1 ⊥1 ⊥3 1 0 ⊥4 1 ⊥1 R1 A 0 ⊥1 2 1 (Quelle: Olteanu) Unvollständige Daten 17. Repräsentationssysteme . Folie 23 Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.2.1 Codd-Tabellen 17.2.2 V-Tabellen 17.2.3 Tabellen mit Bedingungen 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 24 Starke Repräsentationssysteme für RAlg? Beispiel R A 1 ⊥1 2 B 1 ⊥2 0 R A 1 2 2 B 1 0 0 C ⊥5 1 ⊥3 R C 2 1 0 A 1 3 2 B 1 3 0 P(I) σA=B (R) R R A B C 1 1 ⊥5 ⊥1 ⊥2 1 ⊥1 = ⊥2 R R R C A B C A B C A B C A B C · · · ··· σ (R) A=B 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 0 1 3 3 1 5 JqK(P(I)) • V-Tabellen können das Ergebnis dieser Anfrage nicht repräsentieren • Sie können nicht ausdrücken, dass es entweder ein zweites Tupel mit A = B • • ➞ oder kein zweites Tupel gibt Aber: Falls ⊥1 und ⊥2 denselben Wert erhalten, gibt es ein zweites Tupel, andernfalls nicht Idee: Ergänze V-Tabellen um Gleichheitsbedingungen für die Variablen C-Tabellen DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 25 C-Tabellen (1/2) Beispiel Definition • Eine Bedingung ist eine Konjunktion von • Die Tabelle Gleichheits- und/oder Ungleichheitsatomen, die Konstanten und Variablen ⊥i verwenden • Eine C-Tabelle (T,Φ,ϕ) besteht aus – einer V-Tabelle T – einer globalen Bedingung Φ – einer Zuordnung von Tupeln t ∈ T zu lokalen Bedingungen ϕt • Eine Relation R ist mit einer C-Tabelle (T,Φ,ϕ) konsistent, wenn es eine Variablenbelegung β gibt, die – Φ wahr macht und – für jedes Tupel t von T mit β |= ϕt ein Tupel s mit β(t) = s enthält, und – sonst keine weiteren Tupel enthält T A 0 1 ⊥2 B 1 ⊥3 = ⊥3 ⊥1 ⊥2 = 0 ⊥1 ⊥1 = 6 ⊥2 mit globaler Bedingung ⊥1 6= 2 ∧ ⊥2 6= 2 ist u.a. mit folgenden Relationen konsistent R1 R2 R3 AB AB AB 0 1 0 1 0 1 1 3 1 0 0 3 Satz 17.3 [Imieliński, Lipski 84] • C-Tabellen ≡ „conditional tables“ • ϕt kann auch die Konstante TRUE sein DBT / Schwentick / SoSe 12 • C-Tabellen sind ein starkes Repräsentationssystem für die RAlg Unvollständige Daten 17. Repräsentationssysteme . Folie 26 C-Tabellen (2/2) Beispiel • Statt eines Beweises betrach- T1 B C ⊥1 3 ten wir einige Beispiele für die Berechnung von Operatoren der relationalen Algebra B ⊥1 ⊥2 ⊥3 DBT / Schwentick / SoSe 12 T2 T3 B C A B ⊥2 3 ⊥2 = 2 1 ⊥2 ⊥3 ⊥5 T1 1 T3 πB (T2 ) A B C B ⊥2 ⊥2 = 2 1 ⊥2 3 ⊥1 = ⊥2 ⊥3 T1 ∪ T2 σB=2 (T1 1 T3 ) C A B C 3 1 ⊥2 3 ⊥1 = ⊥2 ∧ ⊥2 = 2 3 ⊥2 = 2 ⊥5 T1 − T2 B C ⊥1 3 ⊥2 6= 2 ∧ ⊥1 6= ⊥3 ⊥1 3 ⊥2 6= 2 ∧ ⊥5 6= 3 ⊥1 3 ⊥2 = 2 ∧ ⊥1 6= 2 ∧ ⊥1 6= ⊥3 ⊥1 3 ⊥2 = 2 ∧ ⊥1 6= 2 ∧ ⊥5 6= 3 Unvollständige Daten 17. Repräsentationssysteme . Folie 27 Übersicht • Die Mächtigkeit von Codd-Tabellen, V-Tabellen und C-Tabellen können wie folgt zusammengefasst werden: System ist schwach für... ist stark für... Codd-Tabellen DBT / Schwentick / SoSe 12 PS P V-Tabellen PSUJ PU C-Tabellen RAlg RAlg Unvollständige Daten 17. Repräsentationssysteme . Folie 28 Inhalt 17.1 Einleitung 17.2 Repräsentationssysteme 17.3 Sonstiges DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 29 Unvollständige Information und SQL • In der Praxis haben sich die fortgeschrittenen Konzepte der Behandlung unvollständiger Informationen bisher nicht durchgesetzt – Das hat zum Teil Effizienzgründe • Da Datenhaltung (nicht zuletzt durch das Internet) immer stärker verteilt stattfindet, spielt der Umgang mit unvollständigen Daten eine immer größere Rolle – Zum Teil wird dies durch die Flexibilität des semistrukturierten Datenmodells (XML) aufgefangen • SQL unterstützt nur Codd-Tabellen: – Fehlende Daten werden durch „NULL“ repräsentiert – Die Auswertung basiert auf einer 3-wertigen Logik mit unbekannt als „mittlerem“ Wahrheitswert – Bei der Spezifikation von Relationsschemata könnnen Attribute als NOT NULL vereinbart werden DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 30 Integritätsbedingungen und unvollständige Daten • Gleichheitserzeugende Abhängigkeiten können helfen, in einer IDB I mögliche Datenbanken aus P(I) zu entfernen Beispiel • Enthält I die Tabelle R ABC a b c a b′ ⊥ und gilt die FD A → C , so enthält P(I) nur noch die mögliche Relation R ABC a b c a b′ c DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 31 Unvollständige Daten: Fazit • Es gibt viele Ursachen für unvollständige Daten in Datenbanken • Für den Umgang mit unvollständigen Daten in relationalen Datenbanken gibt es verschiedene Modelle, z.B.: – Codd-Tabellen – V-Tabellen – C-Tabellen • Diese Modelle unterscheiden sich in ihrer Fähigkeit, Operatoren der Relationenalgebra zu unterstützen • Wir unterscheiden zwischen schwachen und starken Repräsentationssystemen • Codd-Tabellen unterstützen nur wenige Operatoren • C-Tabellen stellen ein starkes Repräsentationssystem für die Relationenalgebra dar • V-Tabellen liegen hinsichtlich Ausdrucksstärke zwischen Codd-Tabellen und C-Tabellen • Von SQL werden nur Codd-Tabellen unterstützt DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 32 Literatur • Dieses Kapitel basiert stark auf [van der Meyden 98], [AHV95] und einer Vorlesung von Dan Olteanu • In [AHV95] finden sich weitere detaillierte Literaturhinweise • Weitere Literaturhinweise: – Eine gute Übersicht liefert: Ron van der Meyden. Logical approaches to incomplete information: A survey. In Jan Chomicki and Gunter Saake, editors, Logics for Databases and Information Systems, pages 307–356. Kluwer, 1998 – Die beiden wesentlichen frühen Arbeiten sind: ∗ E. F. Codd. Extending the database relational model to capture more meaning. ACM Trans. Database Syst., 4(4):397– 434, 1979 ∗ Tomasz Imielinski and Witold Lipski Jr. Incomplete information in relational databases. J. ACM, 31(4):761–791, 1984 – Ein deutschsprachiges Buch: Peter Kandzia and Hans-Joachim Klein. Theoretische Grundlagen relationaler Datenbanksysteme, volume 79 of Reihe Informatik. Bibliographisches Institut, 1993 – Die Folien von Dan Olteanu finden sich hier: http://www.comlab.ox.ac.uk/people/dan.olteanu/ tutorials/incomplete.pdf DBT / Schwentick / SoSe 12 Unvollständige Daten 17. Repräsentationssysteme . Folie 33