laden - LS1 - Logik in der Informatik

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