Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der...

104
Gottfried-Wilhelm-Leibniz-Universit¨ at Hannover Fakult¨ at f¨ ur Elektrotechnik und Informatik Institut f¨ ur Praktische Informatik Fachgebiet Datenbanken und Informationssysteme Studienarbeit im Studiengang Mathematik mit der Studienrichtung Informatik Entdeckung von sicheren und wahrscheinlichen funktionalen Abh ¨ angigkeiten Matthias Gl¨ afke betreut durch Prof. Dr. Udo Lipeck Juli / August 2007

Transcript of Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der...

Page 1: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Gottfried-Wilhelm-Leibniz-Universitat HannoverFakultat fur Elektrotechnik und Informatik

Institut fur Praktische InformatikFachgebiet Datenbanken und Informationssysteme

Studienarbeit

im Studiengang Mathematik mit der StudienrichtungInformatik

Entdeckung von sicheren

und wahrscheinlichen

funktionalen Abhangigkeiten

Matthias Glafke

betreut durch Prof. Dr. Udo Lipeck

Juli / August 2007

Page 2: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Erklarung

Hiermit versichere ich, dass ich die vorliegende Arbeit und die zugehorige Im-plementierung selbstandig verfasst und dabei nur die angegebenen Quellen undHilfsmittel verwendet habe.

Hannover, den 15. September 2007

2

Page 3: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Inhaltsverzeichnis

1 Einleitung 6

2 Grundlagen und Gegenstand 8

2.1 Grundlegende Definitionen . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Untersuchung der Problemstellung . . . . . . . . . . . . . . . . . 10

3 Bekannte Ansatze 13

3.1 Tupelorientierte Algorithmen . . . . . . . . . . . . . . . . . . . . 13

3.1.1 FDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.2 DepMiner . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.3 FastFDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Attributorientierte Algorithmen . . . . . . . . . . . . . . . . . . . 18

3.2.1 TANE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . 20

3.2.1.2 Suchstrategie . . . . . . . . . . . . . . . . . . . . 23

3.2.1.3 Pruning . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.1.4 Algorithmus . . . . . . . . . . . . . . . . . . . . . 25

3.2.2 Algorithmus von Wang . . . . . . . . . . . . . . . . . . . . 28

3.2.3 FD MINE . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.4 FUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3 Vergleich und Bewertung der Algorithmen . . . . . . . . . . . . . 29

3

Page 4: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

4 Realisierung 31

4.1 Realiserung von TANE . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2 Alternative Realisierung von TANE . . . . . . . . . . . . . . . . . 33

4.3 Behandlung von NULL-Werten in FAen . . . . . . . . . . . . . . . 34

4.3.1 NULL-Werte in linken Seiten . . . . . . . . . . . . . . . . . 34

4.3.2 NULL-Werte in rechten Seiten . . . . . . . . . . . . . . . . 35

4.3.3 Behandlung von NULL-Werten in den Implementierungen . 36

4.4 Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Wahrscheinliche Funktionale Abhangigkeiten 41

5.1 Fehlermaße fur FAen . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1.1 g1-Fehlermaß . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.1.2 g2-Fehlermaß . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.3 g3-Fehlermaß . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.1.4 NONTRUTH -Fehlermaß . . . . . . . . . . . . . . . . . . . 45

5.1.5 Ginikoeffizient . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.1.6 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.1.7 W-Fehlermaß . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2 Realisierung mit TANE . . . . . . . . . . . . . . . . . . . . . . . . 49

5.3 Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6 Fazit und Ausblick 52

A Bedienungsanleitung 57

A.1 Benutzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

A.2 Anpassung an andere Datenbanken . . . . . . . . . . . . . . . . . 60

4

Page 5: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

B Beispielausgaben von TANE 62

B.1 Person . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

B.1.1 gewohnliche FAen . . . . . . . . . . . . . . . . . . . . . . . 62

B.1.2 schwache FAen . . . . . . . . . . . . . . . . . . . . . . . . 64

B.2 PStat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

B.2.1 g3-Fehlermaß mit ε = 0.1 . . . . . . . . . . . . . . . . . . 65

B.2.2 W-Fehlermaß mit ε = 0.1 . . . . . . . . . . . . . . . . . . 81

5

Page 6: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 1

Einleitung

Funktionale Abhangigkeiten sind Beziehungen zwischen Attributen einer Re-lation. Sie spielen eine wichtige Rolle im Design von Datenbanken, bei demfur die verschiedenen Normalformen gewisse Anforderungen an die funktionalenAbhangigkeiten der Relation gestellt werden. Informell besteht eine funktionaleAbhangigkeit zwischen zwei Attributen X und Y , falls die Attributwerte von Yeindeutig durch die Attributwerte von X bestimmt werden.

Der Begriff der funktionalen Abhangigkeit wird in der Theorie der Datenban-ken seit seiner Einfuhrung durch Codd 1971 verwendet [Gia04], [Lop00]. Funk-tionale Abhangigkeiten wurden damals als Integritatsbedingungen von Relatio-nenschemata eingefuhrt, deren Einhaltung in jeder Relation uber diesem Schemaerzwungen wird. Neben diesen bekannten, vom Designer der Datenbank fest-gelegten funktionalen Abhangigkeiten kann es in einer aktuellen Relation jedochweitere Abhangigkeiten geben, die von der Auspragung der Datenbank abhangen.

Um eine Datenbank zu normalisieren, mussen alle funktionalen Abhangigkei-ten bekannt sein, die in jeder beliebigen Auspragung gelten. Um diese zu ent-decken, wird eine typische Auspragung der Datenbank untersucht. Die dort gel-tenden funktionalen Abhangigkeiten werden dann als fur die betrachtete Relationallgemein geltend angenommen.

Die Entdeckung von funktionalen Abhangigkeiten wurde zunachst”per Hand“

durchgefuhrt [Bro94]. Diese Aufgabe ist bei komplexen Datenbanken jedoch sehraufwendig. Außerdem konnen durch Rauschen (zum Beispiel Eingabefehler) Ab-hangigkeiten, die intuitiv gelten mussten, verletzt sein. Vor etwa 20 Jahren wurdedeshalb damit begonnen, Ansatze zur Automatisierung dieses Schrittes zu ent-wickeln. Dabei wird in der Regel ein exemplarischer, moglichst typischer Aus-schnitt der Relation untersucht. Anwendungen finden sich in den Gebieten de-sign und reverse engineering sowie knowledge discovery in databases (KDD). So

6

Page 7: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

konnen die erhaltenen Erkenntnisse beim Neuentwurf einer Datenbank verwendetwerden, indem beispielsweise auf uberflussige Attribute verzichtet wird, oder umein tieferes Verstandnis fur die Inhalte der Relation zu gewinnen.

Ein typisches Beispiel war im Wintersemester 2006/07 Aufgabe im zwei-ten Teil des Datenbankpraktikums am Fachgebiet Datenbanken und Informa-tionssysteme. Dort sollte auf Grundlage schnappschussartiger und zum Teil wi-derspruchlicher Daten ein Relationenschema normalisiert werden, das zur Spei-cherung von Informationen uber Prufungsleistungen der Studenten in den Stu-diengangen B.Sc. und M.Sc. Informatik vorgesehen ist. Betrachtet wurde dabeiein Muster von aktuellen Daten der vergangenen Semester. Zur Entdeckung derfunktionalen Abhangigkeiten wurden von den Arbeitsgruppen Werkzeuge pro-grammiert, die jedoch so langsam waren, dass auf der linken Seite der funktiona-len Abhangigkeiten nur Kombinationen aus maximal vier [DBP2] beziehungsweisesechs [DBP1] Attributen zugelassen waren. Aufgrund der knappen zur Verfugungstehenden Zeit wurden außerdem zahlreiche unvollstandige oder fehlerhafte Da-tensatze einfach geloscht, anstatt alternative Losungen zum Umgang mit diesenzu untersuchen.

Ziel dieser Studienarbeit ist, aus den zahlreichen zum functional dependen-cy inference problem (auch: discovery of functional dependencies from relati-ons,

”Problem des Entdeckens von funktionalen Abhangigkeiten“) erschienenen

Forschungsarbeiten einen Ansatz auszuwahlen und zu implementieren, der einekurzere Laufzeit hat und unter anderem fur die Analyse der Prufungsdaten einge-setzt werden kann. Weiterhin sollen Losungen zum Umgang mit den oben genann-ten Anomalien erarbeitet werden. Wie im Datenbankpraktikum sollen auch hiersogenannte wahrscheinliche funktionale Abhangigkeiten (approximate functionaldependencies) vom Algorithmus gefunden werden, das heißt solche funktionalenAbhangigkeiten, die fur samtliche Tupel der Relation bis auf einen vom Benutzervorgegebenen Fehleranteil ε gelten (approximate functional dependency inferenceproblem).

In Kapitel 2 werden zunachst grundlegende Begriffe eingefuhrt und einfa-che Eigenschaften aufgezahlt sowie das Problem des Entdeckens der funktionalenAbhangigkeiten prazisiert. In Kapitel 3 werden verschiedene bekannte Ansatzevorgestellt und miteinander verglichen. Kapitel 4 beschreibt und vergleicht zweiverschiedene Realisierungen eines der Algorithmen aus Kapitel 3. Schließlichbeschaftigt sich Kapitel 5 mit den approximate functional dependencies. Im An-hang finden sich Hinweise zur Benutzung der implementierten Programme unddetaillierte Ergebnisse einiger Experimente aus Kapitel 4.

7

Page 8: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 2

Grundlagen und Gegenstand

2.1 Grundlegende Definitionen

Sei R ein Relationenschema, also eine Attributmenge1, und X,Y ⊆ R Mengenvon Attributen. Eine funktionale Abhangigkeit (im Folgenden: FA) uber R ist einAusdruck der Form X → Y . Die FA X → Y wird von einer Relation r uber Rerfullt genau dann wenn πX [s] = πX [t] ⇒ πY [s] = πY [t] fur alle Tupel s, t ∈ rgilt (Schreibweise: r ² X → Y ). Dabei bezeichnet πX [t] die Projektion desTupels t auf die in X enthaltenen Attribute.

Eine FA X → Y mit Y ⊆ X nennt man trivial (denn sie ist offensichtlichstets erfullt). X → Y heißt minimal, falls X → Y gilt und fur alle W & X dieFA W → Y nicht erfullt ist (Schreibweise dafur: W 9 Y ). Fur |Y | = 1 nenntman X auch Determinante von Y .

Sei F eine Menge von FAen. F impliziert eine FA X → Y (Schreibweise:F ² X → Y ) genau dann wenn jede Relation r uber R, die F erfullt, auchX → Y erfullt, das heißt falls r ² F ⇒ r ² X → Y gilt. Weiter sei dieHulle F ∗ von F als die Menge aller von F implzierten FAen definiert, das heißtF ∗ := X → Y | F ² X → Y . F ∗ besteht aus allen FAen, die sich aus denFAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleitenlassen:

Armstrong-Axiome:

(A1) Y ⊆ X ⇒ F ² X → Y (Reflexivitat)

1In der Theorie der Datenbanken werden die Namen von Relationen ignoriert.

8

Page 9: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

(A2) X → Y ∧ Z ∈ R ⇒ XZ → Y Z (Erweiterung)

(A3) X → Y ∧ Y → Z ⇒ X → Z (Transitivitat)

Seien F , G Mengen von FAen. F impliziert G (Schreibweise: F ² G) genaudann wenn fur alle FAen X → Y ∈ G gilt: F ² X → Y . F heißt dann auch eineUberdeckung von G.

F , G heißen aquivalent (Schreibweise: F ⇔ G) genau dann wenn G ² F undF ² G gelten. F heißt minimal genau dann wenn es keine FA X → Y ∈ F gibtmit F \ X → Y ⇔ F .

Das folgende Lemma fasst einige einfache Eigenschaften von FAen zusammen,die sich sofort aus den Armstrong-Axiomen herleiten lassen:

Lemma 2.1:

a) X → Y ∧ X → Z ⇒ X → Y Z (Vereinigung)

b) X → Y ∧ WY → WX ⇒ Z → Y Z (Pseudotransitivitat)

c) X → Y ∧ Z ⊆ Y ⇒ X → Z (Dekomposition)

Sei Y = A1, . . . , An. Gilt X → Y , so gilt nach Lemma 1 c) X → Ai furi = 1, . . . , n. Gilt andersherum X → Ai fur i = 1, . . . , n, so gilt nach Lemma 1 a)( (n-1)-fach angewendet ) X → Y . Es gilt also:

Korollar 2.2:

X → A1, . . . , An ⇔ X → A1 ∧ . . . ∧X → An

Daher werden im Folgenden stets FAen mit einelementiger rechter Seite Abetrachtet. Abkurzend geschrieben sind die gesuchten FAen nun also von derForm X → A mit X ⊆ R, A ∈ R. Die Menge aller dieser FAen uber eine Relationr wird mit

dep(r) := X → A | r ² X → Abezeichnet.

Eine FA X → A heißt spezieller als eine FA Y → A, falls Y ⊆ X gilt. Diespeziellste FA in der Menge der nichttrivalen FAen ist also R \ A → A, diegenerellsten FAen haben die Form B → A mit B ∈ R \ A.

Eine Menge von Attributen X ⊆ R heißt ein Superschlussel uber R, fallsX → A fur alle A ∈ R gilt. Ist X ein Superschlussel und jede UntermengeW & X kein Superschlussel, so nennt man X einen Schlusselkandidat.

9

Page 10: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

2.2 Untersuchung der Problemstellung

Das functional dependency inference problem ist, mit den Bezeichungen aus Ab-schnitt 2.1, die Suche nach der Menge dep(r). Da diese im Allgemeinen zahlreicheredundante FAen enthalt, ist das Ziel, eine moglichst

”kleine“ Uberdeckung von

dep(r) zu finden, das heißt eine Menge F von FAen mit F ² dep(r) und Fminimal. Ein naiver Ansatz, der im Allgemeinen keine minimale Uberdeckungberechnet, lautet wie folgt [Man91]:

Algorithmus 2.3: Naiver AlgorithmusEingabe: Relation r uber eine Attributmenge RAusgabe: dep(r)

01 F := ∅02 for each subset X ⊆ R do03 for each attribute A ∈ R \X do04 if r ² X → A then F := F ∪ X → A 05 return F

Die Bedingung in Zeile 04 kann mit der Anfrage 2.4 uberpruft werden. DieZahl

”Werte“ gibt dabei die Zahl der verschiedenen Werte von A fur ein X an;

ist sie von 1 verschieden, so ist nach Definition die Gultigkeit der FA X → Averletzt2:

Anfrage 2.4: Prufen der Gultigkeit von X → A

1. SELECT MAX(Werte)

FROM (SELECT X, COUNT(DISTINCT A) AS Werte

FROM r

GROUP BY X)

2. MAX(WERTE) = 1 ⇔ X → A

Um die Laufzeit von Algorithmus 2.3 zu bestimmen, sind zunachst einigeweitere Uberlegungen notwendig.

Sei A ∈ R fest. Die Menge aller moglichen nichttrivalen FAen X → A mitX ⊆ R \ A ist offenbar P(R \ A) \ ∅ (fur R = A,B, C, D, E und die rechteSeite A ist diese Menge in Abbildung 2.1 dargestellt)3. Es gibt also 2|R|−1 − 1FAen der Form X → A, insgesamt ergeben sich damit

|R| · (2|R|−1 − 1)

2Wie in der klassischen Theorie der FAen wird hier vorausgesetzt, dass r keine NULL-Werteenthalt.

3Algorithmus 2.3 pruft sogar die trivialen FAen.

10

Page 11: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FAen mit einer einelementigen rechten Seite.

B

iiiiiiiiiiiiiiiiiiiiiiiC

ssssssssssssD

KKKKKKKKKKKKE

UUUUUUUUUUUUUUUUUUUUUUU

BC

vvvvvvvvv

jjjjjjjjjjjjjjjjjjjjBD

ffffffffffffffffffffffffffffffffffBE

JJJJJJJJJJ

ffffffffffffffffffffffffffffffffffCD

UUUUUUUUUUUUUUUUUUUUUUUCE

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDE

HHHHHHHHH

TTTTTTTTTTTTTTTTTTTT

BCD

HHHHHHHHH

ffffffffffffffffffffffffffffffffBCE

TTTTTTTTTTTTTTTTTT

fffffffffffffffffffffffffffffffffBDE

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

UUUUUUUUUUUUUUUUUUUUU

jjjjjjjjjjjjjjjjjjCDE

JJJJJJJJJ

vvvvvvvvv

BCDE

UUUUUUUUUUUUUUUUUU

LLLLLLLLLL

rrrrrrrrrr

iiiiiiiiiiiiiiiiii

Abbildung 2.1: Alle moglichen linken Seiten einer funktionalen AbhangigkeitX → A fur R = A,B, C, D, E

Um die Bedingung in Zeile 04 zu prufen werden die Tupel von r fur die Grup-pierung (siehe Anfrage 2.4) nach X mit einem Aufwand von O(|r| · log |r|) nachjedem der |X| Attribute sortiert. Die innere Aggregierung zahlt die verschiede-nen A-Werte in den X-Gruppen in O(|r|). Die außere Aggregierung schließlichbenotigt zur Bestimmung des Maximums ebenfalls einen Aufwand von O(|r|), daes maximal |r| Gruppen gibt. Somit hat Algorithmus 2.3, unter Berucksichtigungvon |X| ≤ |R|, insgesamt eine Laufzeit von

O((2|R|−1− 1) · |R|) ·O(|X| · |r| · log |r|+ |X| · |r|+ |r|) = O(|R|2 · 2|R| · |r| · log |r|).

Der Algorithmus hat also eine exponentielle Laufzeit bezuglich der Anzahlder Attribute, ist aber auch sehr einfach und berechnet alle gultigen FAen. Mitwelchem Aufwand muss man bei der Suche nach einer minimalen Uberdeckungvon dep(r) rechnen?

Insgesamt gibt es ja |R| · (2|R|−1 − 1) FAen mit einelementiger rechter Seite.Diese Zahlweise berucksichtigt jedoch keine Redundanzen. In [Bro94] wird fol-gendes Resultat gezeigt:

Lemma 2.5:Sei |R| = n. Dann existieren hochstens

(nk

)· (n− k) mit k :=

⌊n− 1

2

11

Page 12: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

viele minimale funktionale Abhangigkeiten.

Indem eine entsprechende Relation r konstruiert wird, wird in [Man91] fol-gende Oberschranke gezeigt:

Lemma 2.6:Sei |R| = n. Dann gibt es eine Relation r mit O(n) Tupeln, so dass mindestensΩ(2

n2 ) viele minimale funktionale Abhangigkeiten existieren.

Aus Lemma 2.6 kann man folgern, dass es Relationen gibt, fur die jeder Al-gorithmus, der alle minimalen FAen entdecken soll, exponentiellen Zeitbedarf (inder Anzahl der Attribute) hat. In der Realitat kommt es jedoch kaum vor, dasseine minimale Uberdeckung tatsachlich so groß ist.

Wie man sich denken kann, hangt die Suchzeit nicht nur von der Anzahl derAttribute, sondern auch von der Anzahl der Tupel ab. In [Man91] wird gezeigt,dass O(|r| · log |r|) eine Ober- und Unterschranke fur die Suchzeit ist, also:

Lemma 2.7:Alle funktionalen Abhangigkeiten in r konnen in Θ(|r| · log |r|) gefunden werden.

12

Page 13: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 3

Bekannte Ansatze

In diesem Abschnitt werden verschiedene Algorithmen vorgestellt (fur einen Uber-blick siehe auch [Lop04], [Vil02]), die das functional dependency inference problemlosen. Man kann zwei Kategorien von Algorithmen unterscheiden:

Die sogenannten tupelorientierten Algorithmen untersuchen zunachst die Tu-pel der Relation, um so direkt funktionale Abhangigkeiten zu entdecken.

Die attributorientierten Algorithmen generieren mogliche funktionale Abhan-gigkeiten und prufen deren Gultigkeit anhand der Relation.

Abbildung 3.1 gibt einen kurzen Uberblick uber alle berucksichtigten Algo-rithmen und ihre Zusammenhange untereinander.

3.1 Tupelorientierte Algorithmen

In [Man91] wird ein tupelorientierter Ansatz vorgestellt, der auf dem paarweisenVergleich von je zwei Tupeln der zu untersuchenden Relation beruht.

Nach Definition der FAen ist klar, dass es genugt, zwei Tupel s, t ∈ r mitπX [s] = πX [t] und πA[s] 6= πA[t] zu finden, um die FA X → A als ungultig uberr zu identifizieren. Die speziellste ungultige FA, die man aus zwei Tupeln s, t ∈ rmit πA[s] 6= πA[t] erhalt, ist ag(s, t) → A, wobei

ag(s, t) := B ∈ R | πB[s] = πB[t] das agree-set der beiden Tupel bezeichnet. Setzt man

JA := ag(s, t) | s, t ∈ r ∧ πA[s] 6= πA[t]

13

Page 14: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Algorithmen zum functional dependency inference problem

attributorientierte Algorithmen

FUNCT. DEP. [Bro94]- Beschrankung des

Suchraums durch Eigen-schaft

”kein Schlussel“

- einmalige Bottom-Up-Suche danach Top-Down

- arbeitet mit DBMS

TANE [Huh97]

- Partitionierungnach Attributwerten

- Top-Down-Suche

Alg. v. Wang [Wan01]

- basiert auf TANE- aktualisiert Menge

der FAen beim Ein-fugen neuer Tupel

FD MINE [Yao02]

- basiert auf TANE- im Vergleich zu

TANE Unter-suchungen eingespart

FUN [Nov01]

- Eingrenzung derKandidaten mit freienMengen und Abschluss

- Top-Down-Suche

tupelorientierte Algorithmen

Algorithmus 3.1[Man91]

- paarweiser Vergleichaller Tupel

- Hypergraphansatz

DepMiner [Lop00]

- schrankt Anzahlder paarweisenVergleiche ein

- neuer Algorithmusfur Hypergraphen

FastFDs [Wys01]

- Berechnung vondifference-sets,basierend aufDepMiner

- Hypergraph-durchlauf

FDEP [Fla99]

- negatives Coverberechnen

- Depth-First-Durch-lauf, bis nicht mehrim Cover

- auch mehrwertigeAbhangigkeiten

Abbildung 3.1: Ubersicht der in Kapitel 3 vorgestellten Algorithmen zum func-tional dependency inference problem

14

Page 15: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

so enthalt JA somit nur Attributmengen, die als Determinante von A nicht inFrage kommen. Falls es Tupel s′, t′ ∈ r mit πA[s′] 6= πA[t′] und ag(s′, t′) ⊇ ag(s, t)gibt, so impliziert dies bereits ag(s, t) 9 A. Es genugt daher, nur die in

KA := ag(s, t) ∈ JA | @ ag(s′, t′) ∈ JA : ag(s, t) ⊆ ag(s′, t′) enthaltenen Nichtdeterminanten von A zu betrachten.

Die Komplemente der Mengen aus KA sind, da sie stets A enthalten, Deter-minanten von A. Die Menge dieser Komplemente wird mit KA bezeichnet. Wiesich zeigt, erhalt man die linken Seiten der in dep(r) enthaltenen FAen X → Aaus der Menge der minimalen Durchlaufe des Hypergraphen KA.

Der Algorithmus lautet wie folgt:

Algorithmus 3.1:Eingabe: Relation r uber eine Attributmenge RAusgabe: nichtminimale Uberdeckung von dep(r)

01 for each attribute A ∈ R do02 JA := ag(s, t) | s, t ∈ r ∧ πA[s] 6= πA[t] 03 KA := ag(s, t) ∈ JA | @ ag(s′, t′) ∈ JA : ag(s, t) ⊆ ag(s′, t′) 04 KA := R \ ag(s, t) | ag(s, t) ∈ KA 05 LA := Tr(KA)06 F := X → B | B ∈ R,X ∈ LB 07 return F

Die Menge ag(s, t) muss zunachst fur jedes Tupelpaar s, t ∈ r berechnet wer-

den, insgesamt benotigt man also |r|·(|r|−1)2

agree-sets.

KA bezeichnet man auch mit cmax(A). Tr(KA) steht fur die Menge der mi-nimalen Durchlaufe des Hypergraphen KA, das heißt

Tr(KA) = X ⊆ R | ∀M ∈ KA : X ∩M 6= ∅ ∧ @Y ∈ Tr(KA) : X ⊆ Y .Fur die Berechnung der minimalen Durchlaufe eines Hypergraphen wird in [Man91]ein Algorithmus angegeben, der eine exponentielle Laufzeit bezuglich der Großedes Hypergraphs haben kann.

Warum sind nun die Elemente von Tr(KA) gerade die linken Seiten von FAen,die die Menge dep(r) bilden, wie im Algorithmus behauptet wird?

Sei X → B ∈ F . Dann ist X ∈ LB. Angenommen, es gabe Tupel s, t ∈ r mitπX [s] = πX [t] und πB[s] 6= πB[t]. Dann ware nach Definition ag(s, t) ∈ JB, undeine Obermenge V ⊇ ag(s, t) ware in KB enthalten. Dann ist R \ V ∈ KB, unddamit insbesondere R \ V ∩ X 6= ∅ - ein Widerspruch, da die Tupel s und t inR \ V verschieden sind.

15

Page 16: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Gilt andersherum die FA X → B uber r und nimmt man an, X → B warenicht in F enthalten, so ware also X /∈ LB. Dann gibt es ein R \W ∈ KB mitR \W ∩X = ∅, das heißt W ∩X 6= ∅. Nach Definition von KB ist W ∈ JB undW = ag(s, t) fur zwei Tupel s, t ∈ r mit πB[s] 6= πB[t]. Da aber X ∩W 6= ∅ ist,folgt πX [s] = πX [t], ein Widerspruch.

Es gilt also:X → B ∈ F ⇔ X → B ∈ dep(r).

Beispiel 3.2:Betrachte die folgende Relation r uber R = A,B,C,D :

Row ID A B C D

1 1 2 3 42 5 6 7 83 9 2 3 8

Es gilt:ag(t1, t2) = ∅ag(t1, t3) = B, C ag(t2, t3) = D .

Im ersten Durchlauf der Schleife erhalt man damit zunachst

JA = ∅, B,C, D .

Daraus ergeben sich

KA = B,C, D , KA = A,B, C, A,D

undLA = A, B, D, C, D .

Analog erhalt man

JB = JC = ∅, D , JD = ∅, B,C

und damitKB = KC = D , KD = B,C ,

KB = KC = A,B,C , KD = A,D sowie

LB = LC = A, B, C , LD = A, D .Daraus ergibt sich

F = A → A, B, D → A, C, D → A, A → B, B → B,

C → B, A → C, B → C, C → C, A → D, D → D .

16

Page 17: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Wie man sieht, erhalt man mit diesem Algorithmus keine minimale Uberdeckungvon dep(r), sondern eine zu dep(r) aquivalente Menge, die noch triviale FAenenthalt. ¤

In den folgenden Abschnitten werden die Grundideen weiterer tupelorientier-ter Algorithmen kurz dargestellt.

3.1.1 FDEP

In [Fla99] werden insgesamt drei Versionen von FDEP vorgestellt. Der erste istsehr einfach und wenig leistungsfahig. Er ist in die Kategorie der attributorien-tierten Algorithmen einzuordnen. Der zweite Algorithmus, der als bidirektionalbezeichnet wird, berechnet zunachst ein negatives Cover von r. Dieses enthalt diespeziellsten FAen, die r nicht erfullt. Dann werden mit einem depth-first-Ansatzdie generellsten FAen so lange spezialisiert, bis sie nicht mehr im negativen Coverenthalten sind.

Der dritte Algorithmus, bottom-up genannt, ist der leistungsfahigste. Wie derbidirektionale Algorithmus berechnet auch dieser zunachst das negative Cover.Wahrend aber beim zweiten Algorithmus teilweise Hypothesen mehrfach getestetwerden, wird dieser Mehraufwand hier vermieden.

Bemerkenswert ist noch, dass - mit geringen Modifikationen, die von denAutoren auch angegeben werden - alle drei Algorithmen auch die mehrwertigenAbhangigkeiten einer Relation entdecken konnen.

Ferner ist zu beachten, dass eine erste Version von FDEP bereits in [Sav93]erschienen ist. In den Artikeln, die vor 1999 erschienen sind und in denen Expe-rimente mit FDEP durchgefuhrt werden, ist immer diese Version gemeint. UmIrritationen zu vermeiden wird in Abschnitt 1.4.3 bei jedem Vergleich mit FDEPausdrucklich angegeben, um welche Version es sich handelt.

3.1.2 DepMiner

Das Vorgehen von DepMiner [Lop00] ist an den oben beschriebenen Algorith-mus aus [Man91] angelehnt. Zunachst wird das agree-set der Relation ag(r) =⋃s,t∈r

ag(s, t) bestimmt. Um dabei nicht samtliche Tupel der Relation untersuchen

zu mussen, werden zwei neue Ansatze zur Berechnung der agree-sets vorgestellt,die die Relation partitionieren und so die Anzahl der Kandidatenpaare verringern.Weiter wird ein Algorithmus vorgestellt, der aus ag(r) die Menge cmax(dep(r))

17

Page 18: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

berechnet. Schließlich wird ein neuer, levelweise arbeitender Algorithmus zur Be-rechnung der minimalen Durchlaufe eines Hypergraphen angegeben. Bei Eingabecmax(dep(r)) liefert dieser nun die minimalen FAen.

In [Lop02] werden zwei”einfache“ SQL-Anfragen zur Berechnung der agree-

sets mit einem der Algorithmen aus [Lop00] verglichen, der Partitionierungenverwendet. Es zeigt sich, dass bei Relationen mit vielen verschiedenen Wertenund unter Verwendung von Indexen die zweite SQL-Anfrage (die sich von derersten nur durch Entfernung von leeren Mengen unterscheidet) zum Ansatz mitPartitionierungen nahezu gleichwertig ist. Bei sehr großen Relationen mit wenigverschiedenen Werten versagten alle Ansatze; waren die Relationen nicht zu groß,so war die erste SQL-Anfrage am schnellsten.

3.1.3 FastFDs

Der Algorithmus FastFDs aus [Wys01] verwendet mehrere Resultate, die bereitsin [Lop00] benutzt werden. Auch hier werden zunachst die agree-sets berechnet.Als ihr Komplement erhalt man die difference-sets. Diese werden als Hypergraphdargestellt und mittels eines Depth-First-Durchlaufs durchsucht.

3.2 Attributorientierte Algorithmen

In attributorientierten Algorithmen kann man im Allgemeinen zwei Phasen un-terscheiden: Das Erstellen der zu testenden FAen in der ersten und die Uber-prufung ihrer Gultigkeit in der zweiten Phase. Die Grundidee dieser Algorithmenist somit dieselbe wie in Algorithmus 2.3, jedoch werden hier, um den Prozess zubeschleunigen, verschiedene Eigenschaften von FAen ausgenutzt, um moglichstviele FAen als trivial oder unmoglich einzuhalten zu identifizieren und so garnicht erst prufen zu mussen. Das Vorgehen dieser Algorithmen ist also ahnlichzu dem solcher fur die Suche nach haufigen Itemsets, die aus dem Bereich DataMining bekannt sind1.

Im Algorithmus Functional Dependencies aus [Bro94] zum Beispiel werdenauf der linken Seite der FAen nur sogenannte KSNN-Attribute zugelassen - dieseAttribute sind keine Schlusselkandidaten und enthalten keine NULL-Werte. DieMenge der KSNN-Attribute erhalt man leicht, indem folgende SQL-Anfrage aufjedes Attribut A ∈ R angewandt wird:

1zum Beispiel der Algorithmus Apriori

18

Page 19: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anfrage 3.3: Prufen von A ∈ R auf KSNN-Eigenschaft

1. SELECT DISTINCT(A) AS NULLWERTE

FROM r

WHERE A IS NULL

2. Falls NULLWERTE = NULL ist fuhre folgende Anfrage ausSELECT COUNT(DISTINCT A), COUNT(A)

FROM r

3. COUNT(DISTINCT A) 6= COUNT(A) ⇔ A ist KSNN-Attribut

Ist das Ergebnis der ersten Anfrage NULL, so enthalt A keine NULL-Werte. Nurdann wird auch gepruft, ob A kein Schlusselkandidat ist. Dies ist dann der Fall,wenn in A Werte mehrfach auftreten, also wenn die beiden Ausgabewerte derzweiten Anfrage verschieden sind.

Um die Gultigkeit einer FA X → A zu testen, werden die nach der ersten Pha-se in P(R \ A) verbliebenen moglichen linken Seiten levelweise getestet, wobeider Level l aus den X ∈ P(R\A)\∅ mit |X| = l besteht. Ein attributorientier-ter, levelweise operierender Algorithmus zur Entdeckung von Determinanten vonA ∈ R hat allgemein die Form von Algorithmus 3.4. Um eine Uberdeckung vondep(r) zu finden, muss ein solcher Algorithmus fur jedes A ∈ R einmal durchlau-fen werden.

Algorithmus 3.4:Eingabe: Relation r uber eine Attributmenge R, rechte Seite AAusgabe: Uberdeckung von dep(r)

01 F := ∅02 l := 103 Cand1 := B ∈ R04 while Cand l 6= ∅ do05 Fl := X ∈ Cand l | X → A ist gultige FA06 F := F ∪ Fl

07 Cand l+1 := X ⊆ R | |X| = l + 1 ∧07 X → A wird nicht bereits durch Fl impliziert08 l := l + 109 return F

Functional Dependencies pruft, wie oben erwahnt, nur linke Seiten, die ausKSNN-Attributen zusammengesetzt sind. Daher wurde hier Zeile 03 ersetzt wer-den durch

03′ Cand1 := B ∈ R | B KSNN-Attribut

19

Page 20: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Außerdem wird zu Beginn gepruft, ob die speziellste aus KSNN-Attributenkombinierte linke Seite eine Determinante von A ist. Ist dies nicht der Fall, sowird nach dem Erweiterungsaxiom (A2) A von keinem Nichtschlusselattributbestimmt und weitere Untersuchungen sind unnotig. Daher musste fur FunctionalDependencies zusatzlich folgende Abfrage zwischen Zeile 03 und 04 eingefugtwerden:

03-1 Y :=⋃

B ∈ Cand1B

03-2 if Y 9 A then03-3 return ∅03-4 beende den Algorithmus

In Zeile 07 wird zur Generierung der Kandidatenmenge des nachstes Levels(A2) benutzt.

Es ist bemerkenswert, dass dieser Algorithmus der einzige der hier vorgestell-ten ist, der mit einem kommerziellen DBMS arbeitet und entsprechende SQL-Anfragen benutzt, wahrend alle anderen sogenannte flat files verwenden [Huh97].Im Gegensatz zu diesen gibt Functional Dependencies jedoch die Menge aller mi-nimalen FAen und keine minimale Uberdeckung von dep(r) aus.

3.2.1 TANE

Der Algorithmus TANE aus [Huh97] soll hier besonders ausfuhrlich vorgestelltwerden, da er fur diese Studienarbeit implementiert wurde. Beweise, die in [Huh97]fehlen, werden in [Kin03] gebracht.

3.2.1.1 Grundlagen

Es ist aus der Defintion der FAen in Kapitel 2 klar, dass es, falls X 9 A gilt,mindestens zwei Tupel s, t ∈ r geben muss, fur die πX [s] = πX [t], aber πA[s] 6=πA[t] gilt. Die Einfuhrung der folgenden Begriffe ist daher naheliegend: Zwei Tupels, t ∈ r heißen X-aquivalent (Schreibweise: s ∼X t) genau dann wenn πX [s] =πX [t] gilt. ∼X ist offensichtlich eine Aquivalenzrelation auf r, die Aquivalenzklasseeines Tupels t ∈ r ist definiert als

[t]X := s ∈ r | s ∼X t.

DurchπX := [t]X | t ∈ r

20

Page 21: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

erhalt man eine Partition von r, also eine Menge von disjunkten Mengen, derenVereinigung gerade r ergibt. πX heißt X-Partition von r. Fur X = R ist zumBeispiel πR = t | t ∈ r .

Um die X-Partitionen mit FAen in Verbindung zu bringen, benotigt man denBegriff der Verfeinerung, der hier fur allgemeine Partitionen definiert wird: Seienπ, π′ Partitionen. π heißt eine Verfeinerung von π′ (auch: π verfeinert π′) genaudann wenn es fur jede Menge C ∈ π eine Menge D ∈ π′ gibt mit C ⊆ D. Es giltnun das folgende Lemma:

Lemma 3.5:Die folgenden Aussagen sind aquivalent:

a) X → A

b) πX verfeinert πA

c) |πX | = |πX∪A|

Man kann also die Gultigkeit einer FA einfach durch Zahlen der Elementevon Mengen prufen. Die Summe der Elemente aller Aquivalenzklassen einer X-Partition ist stets |r|, es wird also entsprechend viel Speicherplatz benotigt. Durchfolgende Uberlegung kann man jedoch den Speicherplatz reduzieren: Sei X ⊆ Rund [t]X ∈ πX mit |[t]X | = 1, das heißt es gibt kein weiteres Tupel s ∈ r mitπX [s] = πX [t]. Dann spielt dieses Tupel aber keine Rolle bei der Frage, ob X → Agilt oder nicht; man braucht es in diesem Zusammenhang also nicht mehr zubetrachten. Daher definiert man durch

π := C ∈ π | |C| > 1

die bereinigte Partition einer beliebigen Partition π. π ist naturlich im Allgemei-nen keine Partition mehr, und Lemma 3.5 gilt leider nicht mehr fur bereinigteX-Partitionen, wie das folgende Beispiel 3.6 zeigt:

Beispiel 3.6:Betrachte die folgende Relation r uber R mit R ⊆ A,B, C :

Row ID A B C

1 1 1 12 1 1 13 1 1 24 2 2 35 2 2 3

Hier ist πA,B = t1, t2, t3, t4, t5 und πA,B,C = t1, t2, t4, t5 , also|πA,B| = | πA,B,C|. Offensichtlich gilthier aber A,B9 C. ¤

21

Page 22: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Es ist also ein anderes Maß notwendig, um die Gultigkeit einer FA nur mitHilfe von bereinigten X-Partitionen uberprufen zu konnen. Man erhalt eines wiefolgt: Sei g(X) der minimale Anteil der Tupel in r, die aus r entfernt werdenmussen, damit X ein Superschlussel ist; letzteres ist genau dann der Fall, wenn|[t]X | = 1 ist fur alle [t]X ∈ πX . Wie kann man das formalisieren?

Sei πX = [s1]X , . . . , [sm]X , [t1]X , . . . , [tn]X mit |[si]X | = 1 fur i = 1, . . . , mund |[ti]X | > 1 fur i = 1, . . . , n. Dann mussen insgesamt

n∑i=1

( |[ti]X | − 1)

Tupel aus r entfernt werden, damit X ein Superschlussel ist, und es gilt, wie manleicht nachrechnet,

n∑i=1

|[ti]X | − n = |r| − |πX |.

Daher definiert man

g(X) := 1− |πX ||r| .

Mit den Gleichungen

|πX | = |πX | − | [t]X ∈ πX | |[t]X | = 1 |und

‖πX‖ := |⋃

[t]X∈πX

s | s ∈ [t]X | = |r| − | [t]X ∈ πX | |[t]X | = 1 |

(die Summe der Tupel in allen Aquivalenzklassen in πX) erhalt man

‖πx‖ = |r|+ |πX | − |πX |und somit

g(X) =‖πX‖ − |πX |

|r| .

Aus der Definition von g(X) und Lemma 3.5 folgt sofort:

Lemma 3.7:

X → A ⇐⇒ g(X) = g(X ∪ A)

Beispiel 3.6: (Fortsetzung)In der Relation aus Beispiel 3.4 ist g(A,B) = 5−2

5= 3

5und g(A,B,C) =

4−25

= 25. Daher gilt die FA A,B → C nicht. Wegen g(C) = 4−2

5= 2

5=

g(B,C) ist dagegen die FA C → B erfullt. ¤

Damit sind nun auch die bereinigten X-Partitionen in einen Zusammenhangmit den FAen gebracht worden.

22

Page 23: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

3.2.1.2 Suchstrategie

Wie in attributorientierten Algorithmen ublich, soll auch TANE die Potenzmengevon R levelweise durchsuchen, aber nicht, wie in Algorithmus 3.4, fur jede rechteSeite einmal, sondern nur ein einziges Mal. Dabei sollen FAen der Form X\A →A getestet werden. Um Lemma 3.7 verwenden zu konnen, benotigt man dann diebereinigten X-Partitionen πX\A und πX .

Diese konnen naturlich aus der direkt Datenbank berechnet werden, aberDatenbankzugriffe sind

”teuer“. Wie sich zeigt, kann man auch aus πX und πY

die Partition πX∪Y erhalten, so dass also nur zur Berechnung der Partitionen πAfur alle A ∈ R die Datenbank angesprochen werden muss. Alle anderen πX mit|X| ≥ 2 ergeben sich dann aus den bereits vorhandenen Partitionen, und zwarwie folgt:

Seien π, π′ Partitionen. Ist π eine Verfeinerung von π′, so heißt π feiner alsπ′ und π′ grober als π. Das Produkt π′′ von π und π′ (Schreibweise: π′′ = π · π′)sei die grobste Partition, die eine Verfeinerung von π und π′ ist, das heißt jedeweitere Partition ψ, die π und π′ verfeinert, ist eine Verfeinerung von π′′. Konkretkann man π · π′ konstruieren als

π′′ =⋃

C ∈ π

CC

wobei CC := C ∩ D | D ∈ π′, C ∩ D 6= ∅ fur alle C ∈ π gesetzt wird. Mankann nun zeigen:

Lemma 3.8:Seien X, Y ⊆ R. Dann gilt:

πX∪Y = πX · πY

Alle diese Aussagen gelten vollig analog fur bereinigte X-Partitionen, so dassnun also die Gultigkeit von FAen auf jedem Level des Suchraums gepruft werdenkann, indem nur |R| Partitionen aus der Datenbank berechnet werden. Ziel istaber ja stets, eine minimale Uberdeckung zu erhalten, das heißt es sollen undbrauchen nur die minimalen FAen X \A → A berechnet werden. Dazu wird furjedes X ⊆ R die Menge C(X) aller potentiellen rechten Seiten von X eingefuhrt,also der A ∈ R, die zum gegebenen Zeitpunkt von keiner echten Untermenge Yvon X mit A /∈ Y abhangen. Formal ist

C(X) = R \ A ∈ X|X A → A= A ∈ X | X \ A9 A ∪R \X.

Um nur minimale FAen zu erhalten, werden im Algorithmus nur die FAen X \A → A mit A ∈ X und A ∈ C(X \ B) fur alle B ∈ X gepruft.

23

Page 24: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

3.2.1.3 Pruning

Der Suchraum kann durch sogenanntes Pruning, das Streichen von FAen, dieunmoglich gelten konnen, weiter beschrankt werden. Die Suche in TANE funk-tioniert streng levelweise, das heißt es werden zuerst die X ⊆ R mit |X| = 1untersucht, dann die mit |X| = 2 und so weiter. Dabei wird ausgenutzt, dass,wenn X → A gilt, fur jede Obermenge Y % X die FA Y → A nicht minimal ist.Insbesondere gilt also C(Y ) = ∅ fur alle Y % X, falls C(X) = ∅ ist (allgemeinerhalt man sofort aus der Definition: X ⊆ Y ⇒ C(Y ) ⊆ C(X) ). Das folgendeLemma wird weitere Moglichkeiten zur Streichung von Kandidaten liefern:

Lemma 3.9:Sei B ∈ X, es gelte X \ B → B. Dann gilt:

a) Gilt X → A, so gilt X \ B → A

b) Ist X ein Superschlussel, so ist X \ B ein Superschlussel

Sei A ∈ C(X), A ∈ R \ X und es gelte X \ B → B fur ein B ∈ X. NachLemma 3.9 a) ware dann die FA X → A nicht minimal; A gehort also nicht zuden rechten Seiten, die fur minimale FAen mit X als linker Seite in Frage kommenund kann somit aus C(X) gestrichen werden. Es genugt daher, die Elemente vonC(X) zu betrachten, die nicht in der Menge

C ′(X) = A ∈ R \X | ∃B ∈ X : X \ B → B enthalten sind.

Durch folgende Uberlegung konnen weitere potentielle rechte Seiten aus C(X)gestrichen werden: Sei A ∈ X und es existiere ein B ∈ X \A mit X \A,B →B. Nach Lemma 2.1 a) gilt dann X \ A,B → X \ A, und nach dem Transi-tivitatsaxiom (A3) kann daher X \ A → A nicht minimal sein, also erst rechtnicht X → A. Es konnen also auch alle Elemente von C(X), die in der Menge

C ′′(X) = A ∈ X | ∃B ∈ X \ A : X \ A,B → B enthalten sind, vernachlassigt werden.

Zusammengenommen genugt es also, statt C(X) die Menge C+(X) := (C(X)\C ′(X)) \ C ′′(X) zu betrachten. Eine konkrete Darstellung von C+(X) gibt fol-gendes Lemma:

Lemma 3.10:

C+(X) = A ∈ R | ∀B ∈ X : X \ A,B9 B

24

Page 25: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Um die Korrektheit des Algorithmus zu gewahrleisten, der ja FAen der FormX \ A → A, A ∈ X, auf Gultigkeit und Minimalitat uberprufen soll, ist nunfolgende Aussage von besonderer Bedeutung:

Lemma 3.11:Sei A ∈ X und es gelte X \ A → A. Dann gilt:

X \ A → A ist minimal ⇔ ∀B ∈ X : A ∈ C+(X \ B)

Die Effizienz des Algorithmus lasst sich weiter steigern, wenn man ausnutzt,dass sich durch die Entdeckung von Superschlusseln weitere Moglichkeiten zumPruning ergeben.

Ist X ein Superschlussel, so gilt nach Definition X → A fur alle A ∈ R. Indiesem Fall ist es daher nicht notig, Lemma 3.7 zu benutzen und X ∪ A zuuntersuchen. Ist X ein Superschlussel, der kein Schlusselkandidat ist, so ist keineFA der Form X → A mit A /∈ X minimal. Nach Lemma 3.8 b) gilt außerdem:Ist A ∈ X und gilt X \ A → A, so ist X \ A ebenfalls ein Superschlussel.Zusammengenommen braucht also keine FA X → B mit B ∈ R getestet zu wer-den, das heißt im weiteren Verlauf der Suche werden weder X noch πX benotigt.Außerdem lasst sich das folgende Lemma zeigen:

Lemma 3.11:Sei X ein Superschlussel und A ∈ X. Dann gilt:

X \ A → A ist eine gultige und minimale FA

⇔ X \ A ist Schlusselkandidat und ∀ B ∈ X : A ∈ C+(X \ B)

Damit sind alle Vorbereitungen getroffen und es lasst sich ein effektiver Algo-rithmus zur Berechnung einer minimalen Uberdeckung von dep(r) angeben.

3.2.1.4 Algorithmus

Wie in Abschnitt 3.2.1.2 bereits erwahnt, untersucht TANE den Suchraum le-velweise. Ein Level Ll besteht dabei aus den X ⊆ R mit |X| = l, fur die nochnicht samtliche FAen X \A mit A ∈ X nach den Ergebnissen der vorhergendenLevel ausgeschlossen sind. Dabei wird mit

L1 = A | A ∈ R

begonnen; die nachsten Ebenen ergeben sich dann aus den Ergebnissen der Suche.Die Suche endet, wenn auf einem Level keine minimalen FAen mehr gefunden

25

Page 26: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

werden konnen, das heißt wenn Ll = ∅ ist. Ferner ist nach Definition C+(∅) = R.Damit sind die Anfangs- und Endbedingungen von TANE klar, der Algorithmuslautet wie folgt:

Algorithmus 3.12: TaneEingabe: Relation r uber eine Attributmenge RAusgabe: minimale Uberdeckung von dep(r)

01 C+(∅) = R02 L1 := A | A ∈ R 03 for each X ∈ R do04 compute πX

05 l := 106 while Ll 6= ∅ do07 Compute-Dependencies(Ll)08 Prune(Ll)09 Generate-Next-Level(Ll)10 l := l + 1

Die drei Hilfsprozeduren verwenden dabei die Ideen aus den beiden vorange-gangenen Abschnitten.

Algorithmus 3.13: Compute-DependenciesEingabe: Level Ll

Berechnet: C+(X) fur alle X ∈ Ll, FAen X \ A → A01 for each X ∈ Ll do02 C+(X) :=

⋂A∈X C+(X \ A)

03 for each X ∈ Ll do04 for each A ∈ X ∩ C+(X) do05 if X \ A → A is valid then06 output X \ A → A07 remove A from C+(X)08 remove all B in R \X from C+(X)

Die Uberprufung der Gultigkeit der FA X \A → A in Zeile 05 beruht dabeiauf der Betrachtung der bereinigten X-Partitionen πX\A und πX nach Lemma3.7. Bei der Untersuchung des Levels Ll werden also bereinigte X-Partitionen vonAttributmengen X mit |X| = l − 1 und |X| = l benotigt, letztere werden vonder Prozedur Generate-Next-Level im Durchlauf l−1 berechnet und stehensomit zur Verfugung. Fur l = 1 wurden FAen der Form ∅ → A uberpruft werden;mit dieser Schreibweise wird ausgedruckt, dass A ein Superschlussel ist. Da diesevon der Prozedur Prune entdeckt werden, ist es fur l = 1 nicht sinnvoll, dieZeilen 03 bis 08 zu durchlaufen. Die Minimalitat einer gultigen FA X \ A → Awird durch die Zeilen 02, 04 und 05 zusammen mit Lemma 3.11 gewahrleistet.Zeile 07 beruht auf der Definition von C(X), fur die Korrektheit von Zeile 08 sei

26

Page 27: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

an die Menge C ′(X) aus Abschnitt 3.2.1.3 erinnert, die aus C(X) entfernt werdenkann.

Algorithmus 3.14: PruneEingabe: Level Ll

Berechnet: bereinigt Ll, FAen X \ A → A01 for each X ∈ Ll do02 if C+(X) = ∅ then03 delete X from Ll

04 if X is a (super)key then05 for each A ∈ C+(X) \X do06 if A ∈ ⋂

B∈X C+(X ∪ A \ B) then07 output X → A08 delete X from Ll

Die Begrundung fur das Streichen in Zeile 02 und 03 wurde am Beginn, diefur das Streichen in den Zeilen 04 bis 08 am Ende (in Lemma 3.12) von Abschnitt3.2.1.3 gegeben. Die Bedingung in Zeile 04 ist genau dann erfullt, wenn πX = ∅ist, da dann nach Definition kein X-Wert doppelt auftritt.

Algorithmus 3.15: Generate-Next-LevelEingabe: Level Ll

Berechnet: Ll+1, πX fur alle X ∈ Ll+1

01 Ll+1 := ∅02 for each K ∈ Prefix-Blocks(Ll) do03 for each Y, Z ⊆ K where Y 6= Z do04 X := Y ∪ Z05 if for all A ∈ X : X \ A ∈ Ll then06 Ll+1 := Ll+1 ∪ X07 πX := πY · πZ

Formal ist

Ll+1 = X | |X| = l + 1 ∧ ∀ Y $ X mit |Y | = l : Y ∈ Ll.

Alle anderen X mit |X| = l + 1 brauchen nicht betrachtet zu werden. DieProzedur Prefix-Blocks liefert, analog zum aus dem Data-Mining bekanntenApriori-Join, bei Eingabe Ll eine Menge von Mengen der Machtigkeit l +1: SindY = A1, . . . , Al−1, B, Z = A1, . . . , Al−1, C ∈ Ll. so enthalt die Ausgabe vonPrefix-Blocks(Ll) die Menge X = A1, . . . , Al−1, B, C. Dabei wird davonausgegangen, dass alle Y ∈ Ll (zum Beispiel lexiographisch) sortiert vorliegen.

Zur”gunstigen“ Berechnung des bereinigten Produkts zweier bereinigter Par-

titionen π, π′ wird in [Huh97] außerdem eine Hilfsprozedur angegeben, mit der,anders als in der Definition vor Lemma 3.8, nicht |π| · |π′| Schnittoperationen

27

Page 28: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

berechnet werden mussen. Die Realisierung von TANE wird in Kapitel 4 be-schrieben.

3.2.2 Algorithmus von Wang

Der Algorithmus von Wang, erschienen in [Wan01], basiert auf TANE und denzugehorigen theoretischen Uberlegungen, die in [Huh97] angestellt werden. ImGegensatz zu den anderen hier vorgestellten Algorithmen geht es nicht darum,alle in der Relation gultigen FAen (neu) zu entdecken, sondern zu einer Relationmit einer bekannten Menge von minimalen FAen beim Einfugen neuer Tupeleine Aktualisierung dieser Menge zu berechnen. Mit den anderen Algorithmenware es naturlich auch moglich, diese Menge der minimalen FAen einfach neu zubestimmen, aber das ist wesentlich teurer, da die gesamte Datenbank dafur nocheinmal gelesen werden muss.

Es wird ausgenutzt, dass FAen die folgende Monotonieeigenschaft haben: SeiF1 die Menge der minimalen FAen in r1 und F2 die Menge der minimalen FAenin r2, es gelte r1 ⊆ r2. Dann gilt F1 ⊇ F2, das heißt beim Einfugen neuer Tupelkommen keine weiteren FAen hinzu.

3.2.3 FD MINE

Wie in [Wan01] werden auch in [Yao02], wo der Algorithmus FD MINE darge-stellt wird, dieselben theoretischen Grundlagen wie in [Huh97] verwendet. Zusatz-lich wird die Aquivalenz von zwei Kandidatenmengen X, Y ⊆ R definiert: X, Yheißten aquivalent genau dann wenn X → Y und Y → X gelten.

Aus der Definition und den Armstrong-Axiomen werden Eigenschaften vonaquivalenten Kandidatenmengen hergeleitet, die die Untersuchung bestimmterFAen unnotig machen. Die vorgestellten Experimente zeigen, dass FD MINEstets hochstens genauso viele FAen wie TANE untersuchte; im besten Fall wurden39 % der von TANE durchgefuhrten Untersuchungen eingespart.

3.2.4 FUN

FUN, vorgestellt in [Nov01], verwendet die Idee der freien Mengen. Sei X ⊆ R,r Relation uber R. Sei zunachst |X|r definiert als die Anzahl der verschiedenenWerte der Projektion von r auf X, also |X|r := | πX [t] | t ∈ r |. Dann heißt

28

Page 29: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

X eine freie Menge genau dann wenn es kein W & X mit |W |r = |X|r gibt,also wenn sich durch Entfernen eines beliebiegen Attributs aus X die Zahl derverschiedenen Werte in X verringert. Freie Mengen sind Kandidaten fur linkeSeiten von minimalen FAen.

Der Abschluss X+r von X besteht aus X und den Attributen, die man zu X

hinzufugen kann, ohne dass sich die Anzahl der verschiedenen Werte andert, alsoX+

r := X ∪ A ∈ R \ X | |πX(r)| = |πX∪A(r)| . X♦r := X ∪ ⋃

A∈X

(X \ A)+

heißt der Quasi-Abschluss von X. Offenbar gilt X+r ⊆ X♦

r . Man kann zeigen, dassX → A fur alle A ∈ X+

r gilt und dass X → A nicht minimal ist fur A ∈ X♦r . Die

minimalen FAen X → A sind hier also dadurch charakterisiert, dass X eine freieMenge ist und A ∈ X+

r \X♦r .

Es lasst sich leicht einsehen, dass Untermengen freier Mengen wieder frei undObermengen nicht-freier Mengen wieder nicht-frei sind. FUN arbeitet nun level-weise und verwendet dabei die genannten Eigenschaften.

3.3 Vergleich und Bewertung der Algorithmen

In [Huh97], [Fla99], [Lop00], [Wys01] und [Lop02] werden auf Grundlage von theo-retischen Uberlegungen und Experimenten mit synthetischen Datenbanken sowieBeispieldatenbanken aus dem UCI Machine Learning Repository [MLR] einigeder hier vorgestellten Algorithmen verglichen und Empfehlungen ausgesprochen,welcher Algorithmus wann eingesetzt werden sollte.

In [Wys01] wird dazu geraten, fur Datenbanken mit wenigen Attributen undvielen Tupeln, also

”kleinem“ |R| und

”großem“ |r|, TANE zu verwenden und im

umgekehrten Fall DepMiner. Die Begriffe”groß“ und

”klein“ werden dabei nicht

prazisiert; aufgrund der vorgestellten Resultate der Experimente mit den Beispiel-datenbanken ist aber zu vermuten, dass die Grenzwerte ungefahr bei |R| = 25 und|r| = 20000 liegen. In [Huh97] werden nur Datenbanken mit weniger als 20 At-tributen betrachtet; im Vergleich mit FDEP (Version von 1993, tupelorientiert)war hier TANE (attributorientiert) stets schneller.

Allerdings ist die Einteilung nach diesen zwei Kriterien auf Grundlage derdort vorgestellten Ergebnisse der Experimente nicht ganz nachvollziehbar, da dieLaufzeit, die die Algorithmen zum Entdecken der minimalen FAen benotigten,offenbar auch von der Struktur der Daten, also der Anzahl |F | eben dieser mi-nimalen FAen, abhangen. Unter Einbeziehung dieser drei Großen scheint einegenerelle Aussage nicht moglich. Auch hat sicherlich die Anzahl der verschiede-nen Werte in den Attributen einen Einfluss, dies wurde jedoch in [Wys01] garnicht berucksichtigt.

29

Page 30: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

In [Lop02] dagegen wird bemerkt, dass die Berechnung der agree-sets, die inden tupelorientierten Algorithmen notig ist, teuer ist, wenn es Attribute mit we-nigen unterschiedlichen Werten gibt. Da in den attributorientierten Algorithmenhaufig von Attributen abhangige Mengen und Tests berechnet werden mussen,wird hier, in Ubereinstimmung mit [Wys01], empfohlen, diese Algorithmen nichtfur

”großes“ |R| zu verwenden. Zusammenfassend wird hier also empfohlen, tupe-

lorientierte Algorithmen zu verwenden, wenn |R| groß ist und kein Attribut nurwenige verschiedene Werte hat, wahrend ein attributorientierter Algorithmus be-nutzt werden sollte, wenn |R| klein ist und |r| groß.

In [Fla99] schließlich wird ebenfalls gefolgert, dass der attributorientierte Al-gorithmus TANE fur kleine |R| besser geeignet ist als der tupelorientierte Algo-rithmus FDEP (Version von 1999), da bei großem |R| von TANE sehr viele FAengeneriert und getestet werden mussen. In den Experimenten war TANE vor allemdann sehr schnell, wenn neben |R| auch |F | klein war.

30

Page 31: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 4

Realisierung

Fur diese Studienarbeit wurde der Algorithmus TANE, der in Abschnitt 3.2.1 be-schrieben wurde, in Java implementiert. Im Gegensatz zur Version aus [Huh97],die auch in [TANE] online verfugbar ist, wird hier davon ausgegangen, dass Rela-tionen in einer Datenbank gespeichert sind, wahrend dort die Datensatze in flatfiles vorliegen und spezielle Zugriffsmethoden verwendet werden. Dies sollte auchbeim Betrachten der Ergebnisse der Experimente und ihrem Vergleich mit denLaufzeiten anderer Algorithmen berucksichtigt werden.

In der vorliegenden Literatur wird nur in [Bro94] vom Algorithmus Functio-nal Dependencies von einem DBMS Gebrauch gemacht; im Gegensatz zu TANEliefert Functional Dependencies jedoch keine minimale Uberdeckung von dep(r),sondern die Menge aller minimalen FAen (siehe auch Abschnitt 3.2).

Fur den Zugriff auf die Datenbank wurde JDBC verwendet. Neben dem Algo-rithmus TANE, wie er in Abschnitt 3.2.1 vorgestellt wird, wurde außerdem eineweitere Variante programmiert, die starker von den Moglichkeiten eines DBMSGebrauch macht und in Verbindung mit einem solchen fur große Datenbankenbesser geeignet ist.

4.1 Realiserung von TANE

Wie bereits in Abschnitt 3.2.1 beschrieben, muss TANE nur selten auf die Da-tenbank zugreifen. Zunachst benotigt man die Menge aller Attribute R der zuuntersuchenden Relation r. Man erhalt sie mit folgender Anfrage aus dem DataDictionary :

31

Page 32: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anfrage 4.1: Menge aller Attribute der Relation r

SELECT COLUMN NAME

FROM ALL TAB COLUMNS

WHERE TABLE NAME = r

Anschließend werden die bereinigten A-Partitionen fur alle A ∈ R berech-net, mit denen man im Algorithmus alle X-Partitionen mit X ⊆ R und |X| ≥ 2erhalt, ohne ein weiteres Mal auf die Datenbank zugreifen zu mussen. Jede berei-nigte X-Partition πX wird als eine Klasse Partition(List<String> X, List<

List<String> > classes) gespeichert, wobei jedes Tupel t ∈ r durch seine ein-deutige row id reprasentiert wird.

Folgende Anfrage liefert πA unter der Voraussetzung, dass in r keine NULL-Werte vorkommen:

Anfrage 4.2: Berechnung von πA

1. SELECT A AS MEHRFACHE

FROM rGROUP BY A

HAVING COUNT(*) > 1

2. Fur alle Attribute MEHRFACHE aus der Ergebnismenge der 1. Anfragefuhre folgende Anweisung aus:

SELECT ROW ID

FROM rWHERE A = MEHRFACHE

Fuge die Ergebnismenge als Liste in classes ein

Die row ids aus der Ergebnismenge der zweiten Anfrage werden hier alsojeweils in einer Liste gespeichert; classes ist dann eine Liste, die alle diese Listenenthalt. Das zugehorige X ist in diesem Fall eine Liste, die nur A enthalt.

Die eigentliche Suche nach den FAen greift nur noch auf den Hauptspeicherzu, die Datenbank wird also nur O(|R|) + 1 Mal angefragt. Fur die MengenC+(X) wurde ebenfalls eine eigene Klasse CX(List<String> X, List<String>

set) geschrieben, ein Level Ll wird als L(int l, List< List<String> > set)

gespeichert.

32

Page 33: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

4.2 Alternative Realisierung von TANE

Der Algorithmus TANE ist, wie er in Abschnitt 3.2.1 beschrieben und in Ab-schnitt 4.1 implementiert wurde, nicht dazu geeignet, fur große Relationen mitmehr als 1000 Tupeln eingesetzt zu werden. Grund dafur ist, dass im Allgemeinendie row ids fast aller Tupel der Relation in allen |R| bereinigten A-Partitionenim Hauptspeicher gespeichert werden. Dadurch dauert die Berechnung des Pro-dukts zweier bereinigter X-Partitionen sehr lange; die Experimente in Abschnitt4.4 zeigen, dass die Berechnung dieser Produkte den Hauptteil der Rechenzeitausmacht.

Dabei sind die Partitionen ja nur notig, um die Gultigkeit von FAen zu prufenund um Superschlussel zu finden. Diese Aufgaben lassen sich jedoch auch mitAnfragen an die Datenbank losen, so dass auf die Partitionen verzichtet werdenkann. Im Gegenzug entsteht in dieser Variante, die im Folgenden als TANE-DBbezeichnet wird, naturlich wesentlich mehr

”Verkehr“ zwischen dem Programm

und der Datenbank, was aber bei großen Relationen im Vergleich zur Speicherungder row ids in den Partitionen gerechtfertigt ist. Die Version aus Abschnitt 4.1,die Partitionen verwendet, wird mit TANE-Part benannt. Fur Relationen mitwenigen Tupeln ist TANE-DB dagegen im Allgemeinen langsamer; naheres zeigendie Experimente in Abschnitt 4.4.

Zunachst jedoch zu den Anfragen, die die Partitionen ersetzen. Um die Gultig-keit einer FA zu testen, wurde bereits in Abschnitt 2.2 unter der Voraussetzung,dass r keine NULL-Werte enthalt, eine Anfrage gegeben:

Anfrage 4.3: Prufen der Gultigkeit von X → A

1. SELECT MAX(Werte)

FROM (SELECT X, COUNT(DISTINCT A) AS Werte

FROM r

GROUP BY X)

2. MAX(WERTE) = 1 ⇔ X → A

In der Prozedur Prune (Algorithmus 3.14) wird in Zeile 04 gepruft, ob X einSuperschlussel ist. Das kann man mit der folgenden Anfrage tun:

Anfrage 4.4: Prufen auf Superschlusseleigenschaft

1. SELECT COUNT(Zahl)

FROM (SELECT X, COUNT(*) AS Zahl

33

Page 34: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FROM r

GROUP BY X);

2. COUNT(Zahl) = |r| ⇔ X ist Superschlussel

Um die Leistungen TANE-DB und TANE-Part miteinander zu vergleichen,sollen einige Experimente mit Beispieldatenbanken vorgestellt werden. Da es sichdabei um real life databases handelt, enthalt die Mehrzahl dieser Datenbanken je-doch NULL-Werte, die in den Implementierungen bisher ausgeschlossen wurden. InAbschnitt 4.3 werden daher zunachst verschiedene Moglichkeiten zur Behandlungvon NULL-Werten besprochen.

4.3 Behandlung von NULL-Werten in FAen

Bekanntlich ist es im Relationenmodell und in SQL moglich, fur Nichtschlusse-lattribute auch den Wert ⊥ beziehungsweise NULL zuzulassen, unter anderem umdas Einfugen und Andern von Tupeln zu erleichtern. Problematisch ist jedoch,dass NULL-Werte semantisch vollig verschiedene Bedeutungen haben konnen. Ineinem Schema PERSON(Name, Ehepartner⊥ → PERSON) konnte ein NULL-Wertim Attribut Ehepartner dafur stehen, dass die betreffende Person nicht verhei-ratet ist; es konnte aber auch bedeuten, dass die Person zwar einen Ehepartnerhat, der jedoch nicht bekannt ist oder nicht in der Datenbank vorhanden ist. EinNULL-Wert stunde im ersten Fall also fur

”unzutreffend“ und im zweiten fur einen

unbekannten, aber regularen Wert des Datentyps PERSON.

Die Behandlung von NULL-Werten ist also generell nicht trivial, und so lassensich auch fur FAen verschiedene Losungen zum Umgang mit ihnen finden, wor-auf in der vorliegenden Literatur zum functional dependency inference problem,außer in [Bro94] und [Man91], jedoch nicht naher eingegangen wird. Das obigeBeispiel zeigt, dass im Prinzip fur jedes Attribut eines Relationenschemas eineeigene Interpretation von NULL-Werten festgelegt werden musste. Eine solche Dif-ferenzierung wird hier jedoch nicht betrachtet. Stattdessen wird die Bedeutungvon NULL-Werten in linken und rechten Seiten von FAen unterschieden.

4.3.1 NULL-Werte in linken Seiten

Row ID A B C

1 1 3 22 ⊥ 2 33 ⊥ 2 1

Um die folgenden Uberlegungen zu ver-anschaulichen wird nebenstehende Bei-spielrelation betrachtet. Dabei sollen

34

Page 35: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

stets Determinanten von C gefunden werden.

Die Theorie der Datenbanken besagt, dass alle NULL-Werte verschieden und

”nicht existent“ sind [Bro94]. In [Bro94] werden deshalb Attribute, die NULL-

Werte enthalten, nicht als linke Seiten von FAen zugelassen. Das fuhrt naturlichdazu, dass weniger FAen untersucht werden mussen; im Beispiel nur die FAB → C. In der Praxis erscheint diese Vorgehensweise jedoch als nicht an-gebracht, da so bereits ein NULL-Wert in einem Attribut dieses von allen weiterenUntersuchungen ausschließt.

Daher wird die Theorie der”Nicht-Existenz“ von NULL-Werten hier als prak-

tisch nicht sinnvoll vernachlassigt; zunachst werden alle NULL-Werte als verschie-den angesehen. Damit ist es unnotig, beim Prufen einer FA X → A solche Tupelzu betrachten, die in einem der Attribute aus X einen NULL-Wert enthalten, danach dieser Interpretation NULL-Werte keine FAen

”zerstoren“ konnen. Im Bei-

spiel wurde somit A,B → C gelten.

Eine dritte Moglichkeit ist, alle NULL-Werte als gleich und verschieden vonden ubrigen Attributwerten zu betrachten. Nach dieser Lesart hatte C in derBeispielrelation keine Determinante.

Wie man sich denken kann, wird ein Algorithmus, der FAen nach der drittenVariante finden soll, langsamer sein als einer fur FAen nach der zweiten Varian-te, da mehr Tupel betrachtet werden mussen und das Pruning durch FAen mitlangeren linken Seiten weniger effektiv ist.

4.3.2 NULL-Werte in rechten Seiten

Auch fur die rechten Seiten einer FA X → A gibt es mehrere Moglichkeiten zumUmgang mit NULL-Werten.

Row ID A B C

1 3 1 22 1 1 ⊥3 1 2 ⊥

Als Beispiel wird C in nebenstehenderRelation als rechte Seite betrachtet.

Werden alle NULL-Werte als verschieden verstanden, so wurde weder A → Cnoch B → C gelten.

Fasst man alle NULL-Werte als gleich und verschieden von den ubrigen Attri-butwerten auf, so wurde A → C gelten, nicht aber B → C. Allgemein geltenin diesem Fall stets mehr FAen als im ersten.

35

Page 36: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Eine dritte Moglichkeit soll hier als Konzept der”schwachen“ FA bezeichnet

werden. Eine schwache funktionale Abhangigkeit X → A wird von einer Relationr erfullt, wenn fur alle Tupel s, t ∈ r gilt:

πX [s] = πX [t] ⇒ πA[s] = πA[t] ∨ πA[s] = NULL ∨ πA[t] = NULL

Eine schwache FA ist also eine FA, die nicht von NULL-Werten auf der rechtenSeite

”zerstort“ werden kann. Hier konnen NULL-Werte auf der rechten Seite also

als”nicht-existent“ angenommen werden. Im Beispiel wurde hier A → C und

B → C gelten.

4.3.3 Behandlung von NULL-Werten in den Implementie-rungen

Aus den in [Huh97] und der ubrigen Literatur vorgestellten Experimenten gehthervor, dass dort NULL-Werte stets als gleich und verschieden von den ubrigenAttributwerten aufgefasst werden. Die beiden implemtierten Versionen von TANEwurden dementsprechend angepasst.

Fur TANE-Part ist statt Anfrage 4.2 folgende Anfrage zur Berechnung vonπA zu verwenden.

Anfrage 4.5: Berechnung von πA mit NULL-Werten

1. SELECT A AS MEHRFACHE

FROM rWHERE A IS NOT NULL

GROUP BY A

HAVING COUNT(*) > 1

2. Fur alle Attribute MEHRFACHE aus Anfrage 1 fuhre folgendeAnweisung aus:

SELECT ROW ID

FROM rWHERE A = MEHRFACHE

Fuge die Ergebnismenge als Liste in classes ein

1. SELECT ROW ID

FROM rWHERE A IS NOT NULL

36

Page 37: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Fuge die Ergebnismenge als Liste in classes ein, falls sie mehr alseine row id enthalt

Die dritte Anfrage ist dabei nur wegen des anderen Vergleichsoperators notig.

Fur TANE-DB andert sich die Anfrage zum Prufen der Gultigkeit von X →A. SQL gruppiert zwar mit der GROUP-BY-Operation auch nach NULL, die COUNT-Operation zahlt jedoch NULL-Werte nicht mit. Anfrage 4.3 wird daher entspre-chend modifiziert.

Anfrage 4.6: Prufen der Gultigkeit von X → A mit NULL-Werten

1. SELECT MAX(Werte)

FROM (SELECT X, COUNT(DISTINCT A) AS Werte

FROM r

GROUP BY X)

2. MAX(WERTE) > 1 ⇔ X 9 A , sonst:Fuhre folgende Anfrage aus

SELECT COUNT(*)

FROM ((SELECT X

FROM r

GROUP BY X

HAVING COUNT(DISTINCT A) > 0)

INTERSECT

(SELECT X

FROM r

WHERE A IS NULL

GROUP BY X))

3. COUNT(*) = 0 ⇔ X → A

Mit der zweiten Teilanfrage werden die Tupel gezahlt, die bei gleichem X-Wert sowohl einen NULL-Wert als auch einen gewohnlichen Attributwert in Ahaben. Nur wenn es keine solchen Tupel gibt, ist X → A eine gultige FA imSinne der eigentlichen Definition.

Eine unterschiedliche Behandlung von NULL-Werten auf der rechten und derlinken Seite von FAen lasst sich mit TANE-Part nicht realisieren, da dort nachdem Speichern der row ids in den πA die Informationen uber die Attributwerte

37

Page 38: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

der Aquivalenzklassen verloren gehen. Mit TANE-DB dagegen lassen sich ver-schiedene Moglichkeiten kombinieren. Als sinnvoll und interessant erscheint vorallem, die NULL-Werte auf der linken Seite als gleich und auf der rechten Seite alsnicht-existent zu betrachten, also nach den schwachen FAen zu suchen.

Anfrage 4.7: Prufen der Gultigkeit der schwachen FA X → A

1. SELECT MAX(Werte)

FROM (SELECT X, COUNT(DISTINCT A) AS Werte

FROM r

GROUP BY X);

2. MAX(WERTE) ≤ 1 ⇔ X → A

Da SQL NULL-Werte nicht mitzahlt, sind hier auf der rechten Seite nebeneinem gewohnlichen Attributwert auch NULL-Werte erlaubt. Anfrage 4.7 liefertalso die schwachen FAen.

4.4 Experimente

Um die Leistungen der beiden implementierten Varianten von TANE aus denAbschnitten 4.1 und 4.2 einschatzen und vergleichen zu konnen, wurden wie in[Huh97] Experimente mit Datenbanken aus dem Machine Learning Repository[MLR] (oberer Teil von Tabelle 4.1) sowie verschiedenen am Institut verwendetenDatenbanken (unterer Teil von Tabelle 4.1) durchgefuhrt. Die Datenbank BreastCancer 4 enthalt jedes Tupel von Breast Cancer vier Mal.

Datenbank Laufzeit [s]Name |r| |R| |F | TANE-Part TANE-DB TANE ♣ FDEP ♣

Breast Cancer ♦ 699 11 46 112 45 0.25 15.0Breast Cancer 4 ♦ 2796 11 46 * 84 1.12 *

Chess 28056 7 1 * 24 3.63 6685Person ♦ 292 12 118 8 10 * *Kumok ♦ 8169 7 8 1186 4 * *PStat ♦ ♥ 38649 21 141 * 16094 * *

Tabelle 4.1: Laufzeiten einiger Algorithmen, angewendet auf real life databases

Die Experimente, deren Ergebnisse Tabelle 4.1 zeigt, wurden auf einem Com-puter mit 2,4 GHz und 1024 MB Arbeitsspeicher unter Linux durchgefuhrt. DieZahlen in den mit ♣ markierten Spalten wurden aus [Huh97] entnommen. Andieser Stelle sei noch einmal darauf hingewiesen, dass diese wesentlich besseren

38

Page 39: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Werte unter Verwendung von flat files und mit speziellen Zugriffsmethoden erzieltwurden, wahrend hier mittels eines DBMS auf die Datenbank zugegriffen wurde.Die mit ♦ gekennzeichneten Relationen enthalten NULL-Werte. Diese wurden hierim Sinne von [Huh97] behandelt, das heißt es wurde Anfrage 4.5 fur TANE-Partund Anfrage 4.6 fur TANE-DB benutzt. Einzige Ausnahme ist PStat; hier wur-de Anfrage 4.7 verwendet. Fur die mit * gekennzeichneten Felder wurden keineExperimente durchgefuhrt.

Tabelle 4.2 zeigt, wie sich die Laufzeit (in Sekunden) fur die Suche auf die dreiTeilprozeduren Compute-Dependencies (C-D), Prune (P) und Generate-Next-Level (G-N-L) aufteilt. Fur TANE-Part gibt es eine weitere Spalte

”Vor-

bereitungen“ (Vorb.), die die Zeit angibt, die der Algorithmus zur Berechnungder πA mit A ∈ R benotigt.

Datenbank TANE-Part TANE-DBName |r| |R| Vorb. C-D P G-N-L C-D P G-N-L

Breast Cancer 699 11 1 17 1 92 37 7 1Breast Cancer 4 2796 11 * * * * 66 15 3

Chess 28056 7 * * * * 21 2 0Person 292 12 1 2 0 4 7 3 0Kumok 8169 7 6 0 0 1180 3 1 0PSTAT 38649 21 * * * * 14345 1066 684

Tabelle 4.2: Vergleich der Laufzeiten der Teilprozeduren

Wie man sieht dauert bei TANE-Part die Generierung der nachsten Levelim Verhaltnis sehr lange, wenn |r| groß ist. Das liegt daran, dass hier bei derBerechnung der Produkte der Partitionen fur das nachste Level Schnittmengenvon Aquivalenzklassen, die im Allgemeinen sehr viele Elemente haben, berech-net werden mussen. Bei TANE-DB entfallt die Berechnung der Produkte. Dafurdauert hier die Prufung der Gultigkeit der FAen in der Prozedur Compute-Dependencies, bei der haufig auf die Datenbank zugegriffen wird, im Vergleicham langsten.

Die Uberlegungen in Kapitel 2 zeigten ja bereits, dass eine große Anzahlvon Attributen die Suche nach den FAen stets verlangsamt. Die Ergebnisse derExperimente in Tabelle 4.1 machen diesen negativen Einfluss besonders deutlich.

Aus der Große der Uberdeckung von dep(r), |F |, lasst sich keine Aussage uberdie Laufzeit ableiten. Relevant ist dagegen die

”Struktur“ der Datenbank: Konnen

fruh FAen mit kurzen linken Seiten gefunden werden und entsprechend viele FAenals nicht-minimal gestrichen werden, so hat das einen positiven Einfluss auf dieLaufzeit; das Gegenteil ist der Fall, wenn erst spat FAen mit langeren linkenSeiten entdeckt werden.

39

Page 40: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Insbesondere die Relation PStat ist schwierig zu untersuchen; deshalb wurdehier aus Zeitgrunden nur nach FAen mit linken Seiten aus hochstens vier At-tributen gesucht (♥). Die Ergebnismenge der Untersuchung in Anhang B zeigt,warum die Suche hier so lange dauerte: Ein konstantes Attribut (

”STG“) wird

von allen Attributen determiniert. Weitere FAen wurden jedoch erst gefunden,als vier Attribute auf der linken Seite betrachtet wurden. Vorher gibt es also keineMoglichkeit zum Streichen von FAen; TANE muss dann also nahezu genausovieleFAen untersuchen wie der naive Algorithmus 2.3.

Bei der Verwendung eines DBMS besteht ja die Moglichkeit, Anfragen durchVerwendung von Indexen zu beschleunigen. Deshalb wurde in der DatenbankPSTAT fur jedes Attribut ein Index angelegt. Da diese jedoch von den Datenban-kanfragen nicht verwendet wurden, hatte das Anlegen der Indexe jedoch keinenEinfluss auf die Laufzeit von TANE-DB. Die Begrundung fur die Nichtbenut-zung liegt vermutlich darin, dass Indexe vor allem Selektionen beschleunigen; imAlgorithmus wird jedoch hauptsachlich von der GROUP-BY-Operation Gebrauchgemacht. Da zur Prufung jeder FA ein Datenbankzugriff notig ist und diese nichtbeschleunigt werden konnten, liegt hier der Grund fur die lange Rechenzeit beider Untersuchung von PStat.

40

Page 41: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 5

Wahrscheinliche FunktionaleAbhangigkeiten

In diesem Kapitel soll nun das approximate functional dependency inference pro-blem naher betrachtet werden. Bislang wurden ja neben den gewohnlichen FAenals einzige Ausnahme die schwachen FAen, die in Abschnitt 4.2.2 eingefuhrt wur-den, zugelassen. Diese Beschrankung ist jedoch vor allem dann nicht sinnvoll,wenn Relationen untersucht werden, in denen fehlerhafte Eingaben, sogenann-tes

”Rauschen“, vorhanden sind. Gegeben sei zum Beispiel ein Datenbankschema

KUNDE(Name, Postleitzahl, Ort). Geht man idealisierend davon aus, dass ei-ne Postleitzahl niemals zu mehreren Orten gehort, so ware anzunehmen, dassin diesem Schema die FA Postleitzahl → Ort gilt. Ist aber neben korrek-ten Tupeln wie (Enke, 30167, Hannover) ein fehlerhaftes Tupel (Hecking,

30167, Hannoveer) in einer zugehorigen Relation r gespeichert, so wurde dieFA Postleitzahl → Ort per Definition nicht gelten, auch wenn alle ubrigen|r| − 1 Tupel keine Fehler enthalten.

Man ist deshalb auch an solchen FAen interessiert, die”fast immer“, also außer

fur”einige“ Ausnahmen, gelten. Diese FAen werden als wahrscheinliche FAen be-

zeichnet, die Suche nach einer Uberdeckung von dep(r) aus wahrscheinliche FAennennt man auch das approximate functional dependency inference problem. Fureine prazise Definition wird ein Fehlermaß fur die Gultigkeit von FAen benotigt.In der Literatur werden dazu einige Vorschlage gemacht.

5.1 Fehlermaße fur FAen

Im Folgenden werden einige Fehlermaße vorgestellt, die der Intuition entsprechenund sich leicht mit bereinigten Partitionen und SQL-Anfragen berechnen lassen.

41

Page 42: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Dabei wird lediglich gefordert, dass ein Fehlermaß F eine FA X → A und diezugehorige Relation r auf das Intervall [0, 1] abbildet. X → A heißt dann einewahrscheinliche funktionale Abhangigkeit oder ε-gultig, falls

F(X → A, r) ≤ ε

fur eine Fehlertoleranz ε ∈ [0, 1] gilt. Dabei soll eine wahrscheinliche FA genaudann 0-gultig sein, wenn die FA im Sinne der Definition aus Abschnitt 2.1 gultigist. Es wird zunachst vereinfachend vorausgesetzt, dass keine NULL-Werte in derRelation vorkommen. Als erstes sollen drei Fehlermaße aus [Kiv95] betrachtetwerden.

5.1.1 g1-Fehlermaß

Das g1-Fehlermaß verwendet den Begriff des verletzenden Paares: Ein Tupelpaar(s, t) mit s, t ∈ r heißt verletzendes Paar bezuglich einer FA X → A genau dannwenn πX [s] = πX [t] und πA[s] 6= πA[t] gilt. Kommt so ein Tupelpaar in r nichtvor, so ist X → A erfullt. Man definiert daher:

g1(X → A, r) :=| (s, t) | s, t ∈ r, πX [s] = πX [t] ∧ πA[s] 6= πA[t] |

|r|2

g1(X → A, r) lasst sich mit folgender Uberlegung leicht aus πX und πX∪A be-rechnen: Sei [t]X ∈ πX . Dann ist ja jedes s ∈ [t]X in einer Aquivalenzklasse[t′]X∪A ∈ πX∪A enthalten oder es

”verschwindet“, das heißt es gibt kein Tupel

in πX∪A, das zu s (X ∪ A)-aquivalent ist. Letzere s verletzen X → A mit je-dem

”Partner“, erstere mit jenen Tupeln, die nicht in [t′]X∪A ∈ πX∪A enthalten

sind. Die verletzenden Tupel sind also die Zweierkombinationen aus den Aquiva-lenzklassen von πX weniger die Zweierkombinationen aus den Aquivalenzklassenvon πX∪A, also:

g1(X → A, r)

=1

|r|2 · ∑

[t]X∈πX

2 ·(|[t]X |

2

)−

[t′]X∪A∈ πX∪A

2 ·(|[t′]X∪A|

2

)

=1

|r|2 · ∑

[t]X∈πX

|[t]X |!(|[t]X | − 2)!

−∑

[t′]X∪A∈ πX∪A

|[t′]X∪A|!(|[t′]X∪A| − 2)!

.

Um den g1-Fehler mit SQL zu berechnen kann folgende Anfrage verwendet wer-den:

42

Page 43: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anfrage 5.1: Berechnung von g1(X → A, r)

SELECT COUNT(*)/(|r|*|r|)

FROM r r1, r r2WHERE r1.X = r2.X AND NOT (r1.A = r2.A)

5.1.2 g2-Fehlermaß

Fur das g2-Fehlermaß sei ein verletzendes Tupel definiert als ein Tupel, das ineinem verletzenden Paar vorkommt. Der Anteil dieser Tupel ist dann der g2-Fehler:

g2(X → A, r) :=| t ∈ r | ∃s ∈ r : πX [s] = πX [t] ∧ πA[s] 6= πA[t] |

|r|

Auch diese Zahl erhalt man aus πX und πX∪A: Sei [t]X ∈ πX , [t′]X∪A ⊆ [t]X .Ist nun [t′]X∪A & [t]X , so gibt es ein Tupel, das bei gleichem X-Wert einenanderen A-Wert hat. Dann sind nach Definition alle Tupel aus [t]X verletzendeTupel, man erhalt also g2 als

g2(X → A, r) =1

|r| ·∑

[t]X∈πX

1A([t]X) · |[t]X |

wobei die Hilfsfunktion

1A([t]X) :=

0 ∃ [t′]X∪A ∈ πX∪A : [t]X = [t′]X∪A1 sonst

gesetzt wird. Um 1A([t]X) zu berechnen, muss eine entsprechende Aquivalenzklas-se gesucht werden. Durch Ausnutzung der Tatsache, dass die Entdeckung einerechten Untermenge von [t]X in πX∪A gleichbedeutend mit 1A([t]X) = 1 ist, kanndie Suche zwar fruhzeitig abgebrochen werden, generell ist die Berechnung von g2

jedoch teurer als die von g1. Mit SQL lasst sich g2(X → A, r) wie folgt berechnen:

Anfrage 5.2: Berechnung von g2(X → A, r)

SELECT COUNT(*)/|r|

FROM r r1WHERE EXISTS (SELECT *

FROM r r2WHERE r1.X = r2.X AND NOT (r1.A = r2.A)

43

Page 44: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

5.1.3 g3-Fehlermaß

Das dritte in [Kiv95] eingefuhrte Maß ist das g3-Fehlermaß, das auch in [Huh97]benutzt wird. g3(X → A, r) ist der Anteil der Tupel, die aus r entfernt werdenmussen, damit die FA X → A in dieser Relation gilt, formal ist

g3(X → A, r) := 1− 1

|r| ·max |s| | s ⊆ r, s ² X → A .

Dieser Fehler wurde in [Huh97] bereits in Verbindung mit Partitionen gebracht;es ist

g3(X → A, r)

= 1− 1

|r|∑

[t]X∈πX

max [t′]X∪A ∈ πX∪A | [t′]X∪A ⊆ [t]X .

Diese Formel kann man nicht einfach auf bereinigte Partitionen anwenden. Eskann namlich passieren, dass es keine solche Untermenge [t′]X∪A gibt; dieseSummanden waren dann gleich 0. In diesem Fall sind aber alle A-Werte der Tupelaus [t]X verschieden und es mussen dann alle bis auf eines gestrichen werden.Daher ist

g3(X → A, r) = 1− 1

|r|∑

[t]X∈πX

G([t]X)

mit einer Hilfsfunktion

G([t]X) :=

|[t]X | − 1 m([t]X) = 0

m([t]X) sonst

wobei abkurzend

m([t]X) := max [t′]X∪A ∈ πX∪A | [t′]X∪A ⊆ [t]X gesetzt wurde.

In [Lop02] wird außerdem gezeigt, wie man den g3-Fehler mit Hilfe einer SQL-Anfrage berechnen kann.

Anfrage 5.3: Berechnung von g3

SELECT 1 - (SELECT SUM(MAX SIZE EC XA)

FROM (SELECT MAX(SIZE EC XA) AS MAX SIZE EC XA

FROM (SELECT X, A, COUNT(*) AS SIZE EC XA

FROM r

GROUP BY X, A)

GROUP BY X

/ |r| AS g3(X− >A)

FROM DUAL

44

Page 45: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Die innerste Anfrage berechnet die Großen der Aquivalenzklassen aus πX∪A.Die darauffolgende Anfrage liefert zu jedem X die Große der großten Aquivalenz-klasse, schließlich werden diese aufsummiert. Anfrage 5.3 ist also nichst anderesals die Umsetzung der Formel aus [Huh97] in SQL.

5.1.4 NONTRUTH -Fehlermaß

In [Chen04] wird folgendes Maß definiert:

TRUTH (X → A, r) :=∑

ti,tj∈r ∧ i<j

TRUTH ti,tj(X → A)

NTP

wobei NTP := |r|·(|r|−1)2

die Anzahl der Tupelpaare s, t bezeichnet und

TRUTH ti,tj(X → A) :=

0 πX [ti] = πX [tj] ∧ πA[ti] 6= πA[tj]

1 sonst

gesetzt wird. Damit das Maß den Forderungen entspricht, wird hier jedoch

NONTRUTH (X → A, r) := 1− TRUTH (X → A, r)

verwendet. Beim g1-Fehler wurden ja geordnete Tupelpaare (s, t) gezahlt, hierdagegegen ungeordnete Paare s, t. Durch die Herstellung der Beziehung zu denPartitionen zeigt sich aber, dass beide Maße bis auf den Skalierungsfaktor gleichsind:

NONTRUTH (X → A, r)

=2

|r| · (|r| − 1)· ∑

[t]X∈πX

(|[t]X |2

)−

[t′]X∪A∈ πX∪A

(|[t′]X∪A|2

) .

Als nachstes sollen noch zwei Fehlermaße vorgestellt werden, deren Verwen-dung in [Dal99] beziehungsweise [Say04] vorgeschlagen wird, die keine intuitiveEntsprechung haben und aus anderen Wissenschaften entliehen werden.

5.1.5 Ginikoeffizient

Das erste ist der Ginikoeffizient, der aus der Volkswirtschaftslehre stammt. Fureine Attributmenge X ⊆ R heißt

G(X, r) := 1−∑

x ∈ πX [r]

pX(x)2

45

Page 46: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

der Ginikoeffizient von X. Dabei ist pX(x) die Wahrscheinlichkeit dafur, dass x

in der Menge der Attributwerte πX [r] von X vorkommt, also pX(x) = |[t]X ||r| mit

πX [t] = x. Den Ginikoeffizienten kann man leicht mit den bereinigten Partitionenausdrucken:

G(X, r) = 1− 1

|r|2 · (|r| − ‖πX‖) +∑

[t]X∈πX

( |[t]X ||r|

)2

Es wird nunG(X → A, r) := G(X ∪ A, r)−G(X, r)

definiert, da X → A gilt genau dann wenn G(X ∪A, r)−G(X, r) = 0 ist. EineNormierung ist hier nicht notig. Die zugehorige SQL-Anfrage lautet wie folgt:

Anfrage 5.4: Berechnung von G(X, r)

SELECT 1 - SUM(PX2)

FROM (SELECT (COUNT(*)/|r|)*(COUNT(*)/|r|) AS PX2

FROM rGROUP BY X)

5.1.6 Entropie

Das vorletzte Fehlermaß, das hier erwahnt werden soll, ist aus der Informations-theorie bekannt. Sei X ⊆ R. Dann ist durch

H(X, r) :=∑

x ∈ πX [r]

pX(x) · ld(

1

pX(x)

)

der mittlere Informationsgehalt oder die Entropie von X definiert. Um den An-forderungen zu genugen, wird hier die durch Hmax := ld(|r|) normierte EntropieHn benutzt:

Hn(X, r) :=H(X, r)

Hmax (X, r).

Unter Verwendung bereinigter Partitionen ist

Hn(X, r) =1

|r| · (|r| − ‖πX‖) +1

ld(|r|)

[t]X∈πX

|[t]X ||r| · ld

( |r||[t]X |

) .

Wie beim Ginikoeffizienten ist Hn(X ∪ A, r)−Hn(X, r) = 0 genau dann wenndie FA X → A gilt. Deshalb setzt man

Hn(X → A, r) := Hn(X ∪ A, r)−Hn(X, r).

46

Page 47: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Mit SQL kann man H(X, r) ebenfalls sehr leicht berechnen:

Anfrage 5.5: Berechnung von H(X, r)

SELECT SUM(PXLD)

FROM (SELECT (COUNT(*)/|r|)*(ln(1/(COUNT(*)/|r|))/ln(2))

AS PXLD

FROM rGROUP BY X)

Das folgende Beispiel stammt aus [Kiv95]:

Beispiel 5.6:Betrachte die folgende Relation r mit |r| = p uber R = A,B mit p

q< 1

2.

Hier ist πA = p − 2q + 1, p − 2q + 2, . . . p − 1, p, πA,B = ∅ und somit|πA| = q, ‖πA‖ = 2q sowie |πA,B| = ‖πA,B‖ = 0. Es folgt:

Row ID A B

1 1 02 2 0...

......

p-2q-1 p-2q-1 0p-2q p-2q 0

p-2q+1 p-2q+1 0p-2q+2 p-2q+1 1

......

...p-1 p-q 0p p-q 1

g1(A → B, r) = 2qp2 ,

g2(A → B, r) = 2qp,

g3(A → B, r) = qp,

NONTRUTH (A → B, r) = 2qp(p−1)

,

G(A, r) = 1− p+2qp2 ,

G(A,B, r) = 1− 1p,

G(A → B, r) = 2qp2 ,

H(A, r) = 1p· (ld(p) · p− 2q),

H(A,B, r) = ld(p),Hn(A → B, r) = 2q

p·ld(p)¤

Beispiel 5.6 zeigt, dass der g1-Fehler wesentlich kleiner sein kann als der g2-und der g3-Fehler. Auch G(A,B, r) und Hn(A → B, r) sind hier stets kleinerals g3(A → B, r).

Eine Empfehlung, welches Fehlermaß als”das Beste“ benutzt werden sollte,

kann generell nicht gegeben werden. Diese Entscheidung obliegt dem Benutzerund ist hochgradig subjektiv [Gia04].

Alle bis hierhin vorgestellten Fehlermaße haben gemeinsam, dass stets fehler-hafte Tupel in Beziehung zur Gesamtzahl der Tupel gesetzt werden. Dass es sichlohnt, auch uber Alternativen zu dieser

”tupelfixierten“ Sichtweise nachzudenken,

soll mit dem folgenden Beispiel motiviert werden.

47

Page 48: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Beispiel 5.7:

Row ID A B

t1,1 1 1t1,2 1 1...

......

t1,k−1 1 1t1,k 1 nt2,1 2 1t2,2 2 1...

......

t2,k−1 2 1t2,k 2 nt3,1 3 3...

......

t3,l 3 3...

......

tn,1 n n...

......

tn,l n n

Seien k, l ≥ 2. Betrachtet wird neben-stehende Relation r uber R ⊆ A,Bmit |r| = 2 · k + (n− 2) · l.Die FA A → B wird hierdurch die ungeordneten Tupelpaaret1,1, t1,k, t1,2, t1,k, . . . , t1,k−1, t1,kund t2,1, t2,k, t2,2, t2,k, . . . , t2,k−1, t2,kverletzt.Damit ist hierg1(A → B, r) = 2·2(k−1)

(2k+(n−2)l)2,

g2(A → B, r) = 2k2k+(n−2)l

und

g3(A → B, r) = 22k+(n−2)l

.

Fur k À l gilt dann zum Beispielg2(A → B, r) ≈ 1, fur k = l istdagegen g2(A → B, r) = 2

n.

Diese Werte zeigen jedoch nicht, dass,unabhangig von k und l, die FA A →B nur durch die A-Attributwerte 1 und2 verletzt wird. ¤

5.1.7 W-Fehlermaß

Diese Idee solcher verletzenden Werte motiviert die Definition eines neuen, vonder Anzahl der Tupel weniger abhangigen Fehlermaßes. Dazu muss zunachst derBegriff eines verletzenden Wertes prazise gefasst werden: Sei πX [r] die Mengealler Werte, die die Attributmenge X in der Relation r annimmt. w ∈ πX [r]heißt verletzender Wert bezuglich einer FA X → A genau dann wenn es einverletzendes Paar (s, t) bezuglich X → A gibt mit πX [s] = w. Bei dieser Definitionist zu beachten, dass nach Defintion mit (s, t) stets auch (t, s) ein verletzendesPaar ist; es ist daher unerheblich, ob πX [s] = w oder πX [t] = w gewahlt wird.Das zugehorige Fehlermaß wird dann als

W(X → A, r) :=| w ∈ πX [r] | ∃(s, t) ∈ V(X → A, r) ∧ πX [s] = w |

|πX [r]|definiert, wobei V(X → A, r) fur die Menge der verletzenden Paare bezuglichX → A steht, also

V(X → A, r) := (s, t) | s, t ∈ r, πX [s] = πX [t] ∧ πA[s] 6= πA[t] .

48

Page 49: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anfrage 5.8: Berechnung von W(X → A, r)

SELECT (SELECT COUNT(DISTINCT r1.X)

FROM r r1, r r2

WHERE r1.X = r2.X

AND NOT (r1.A = r2.A))

/

(SELECT COUNT(DISTINCT X)

FROM r)

FROM DUAL

Fur bereinigte Partitionen erhalt man W(X → A, r) mit der Formel

W(X → A, r) =1

|πA|+ (|r| − ‖πA‖)∑

[t]X∈πX

1A([t]X)

wobei wie in Abschnitt 5.1.2

1A([t]X) =

0 ∃ [t′]X∪A ∈ πX∪A : [t]X = [t′]X∪A1 sonst

verwendet wird.

In Abschnitt 5.3 wird gezeigt, welche Ergebnisse die Fehlermaße in der Praxisliefern.

5.2 Realisierung mit TANE

TANE muss nur geringfugig modifiziert werden, um eine minimale Uberdeckungaus wahrscheinlichen FAen zu berechnen. Als zusatzliche Parameter werden einFehlermaß F und eine Fehlertoleranz ε ∈ [0, 1] ubergeben. In der HilfsprozedurCompute-Dependencies (Algorithmus 3.13) wird in Zeile 05 die Gultigkeit derFA X \ A → A gepruft. Diese Zeile wird durch die folgende ersetzt:

05′ if F(X \ A → A) ≤ ε then

Außerdem ist zu beachten, dass sich Lemma 3.9 a), das in Algorithmus 3.13 inZeile 08 benutzt wurde, nicht ohne Weiteres auf die Gultigkeit von wahrscheinli-chen FAen ubertragen lasst: Fur ein beliebiges Fehlermaß F folgt im Allgemeinenaus F(X \ B → B) ≤ ε und F(X → A) ≤ ε nicht F(X \ B → A) ≤ ε, wie

49

Page 50: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

folgendes Gegenbeispiel belegt:

Beispiel 5.9:

Row ID A B C

1 1 1 22 2 1 23 3 1 24 4 1 35 5 1 36 6 2 3

Sei R = A,B,C, X = B,C. Innebenstehender Relation ist dann

g3(X \ B → B) = g3(C → B) = 16 ,

g3(X → A) = 36 ,

g3(X \ B → A) = 46 > 3

6 . ¤

Daher wird in Algorithmus 3.13 Zeile 08 durch folgendes ersetzt:

08′ if X \ A → A holds exactly then09′ remove all B in R \X from C+(X)

Um die Bedingung in Zeile 08′ zu uberprufen, sind keine weiteren Berechnun-gen notig, da F(X \ A → A) bereits in Zeile 05′ berechnet wurde und nachden Forderungen an Fehlermaße in Abschnitt 5.1 eine FA X \ A → A genaudann gilt, wenn F(X \ A → A) = 0 ist. Durch diese Anderung konnen imAllgemeinen naturlich weniger FAen als ungultig gestrichen werden. Hier warees lohnenswert, das gewahlte Fehlermaß F darauf zu prufen, ob sich Lemma3.9 a) nicht doch darauf ubertragen lasst. In [Gia04] und [Say04] werden sogarAxiomensysteme fur wahrscheinliche FAen aufgestellt, die hier jedoch nicht naherbetrachtet werden.

5.3 Experimente

Die Tabellen 5.1 und 5.2 zeigen, wie viele FAen in welcher Zeit fur welche Feh-lertoleranz ε entdeckt wurden. Dafur wurde eine im Sinne von Abschnitt 5.2geanderte Version von TANE-DB benutzt. NULL-Werte auf der rechten Seite vonFAen werden stets als nicht fehlerhaft betrachtet (schwache FAen). Dies ist beimVergleich mit den Ergebnissen aus Abschnitt 4.4 zu beachten.

Bei der Betrachtung der Ergebnisse mag es zunachst irritieren, dass |F | beiwachsendem ε nicht monoton steigt. Hier ist zu beachten, dass F nicht die Mengedep(r) ist, sondern eine minimale Uberdeckung von dep(r). Es kann passieren,dass bei kleinem ε eine großere Menge gefunden wird als bei einem ε′ > ε, wiefolgende Uberlegung zeigt: Gilt F(X → A) ≤ ε′, so gelten die FAen Y → A

50

Page 51: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Datenbank ε = 0, 01 ε = 0, 02 ε = 0, 05 ε = 0, 1 ε = 0, 2 ε = 0, 5Name |r| |R| |F | t[s] |F | t[s] |F | t[s] |F | t[s] |F | t[s] |F | t[s]

Breast Cancer 699 11 139 55 142 37 201 37 516 31 812 25 659 19Chess 28056 7 1 41 1 42 1 40 1 40 1 40 12 51Person 292 12 85 9 91 6 86 6 107 5 120 4 107 2Kumok 8169 7 9 5 9 5 9 5 9 5 11 4 16 3

Tabelle 5.1: Experimente mit dem W-Fehlermaß

Datenbank ε = 0, 01 ε = 0, 02 ε = 0, 05 ε = 0, 1 ε = 0, 2 ε = 0, 5Name |r| |R| |F | t[s] |F | t[s] |F | t[s] |F | t[s] |F | t[s] |F | t[s]

Breast Cancer 699 11 144 43 164 42 197 41 372 38 348 35 244 26Chess 28056 7 1 26 1 26 1 26 1 26 1 23 15 19Person 292 12 86 9 87 8 87 8 102 7 132 6 110 5Kumok 8169 7 9 3 9 3 9 3 9 3 9 3 19 2

Tabelle 5.2: Experimente mit dem g3-Fehlermaß

und Z → A fur Y, Z ⊆ X zwar ebenfalls; sie sind aber nicht minimal. Ist nunF(X → A) > ε, aber F(Y → A) ≤ ε und F(Z → A) ≤ ε, so enthalt F im zweitenFall mehr Elemente.

Der Zeitnachteil, der durch das in Abschnitt 5.2 beschriebene schlechtere Pru-ning gegenuber den gewohnlichen FAen entsteht, gleicht sich, wie die Tabellen 4.1und 5.2 zeigen, durch die fruhere Entdeckung von FAen erst bei ε = 0, 1 (BreastCancer) und ε = 0, 2 (Person) aus.

51

Page 52: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Kapitel 6

Fazit und Ausblick

In dieser Studienarbeit wurden das functional dependency inference problem unddas approximate functional dependency inference problem zunachst theoretischuntersucht. Fur beide Probleme wurde ein Ansatz aus einem bekannten Artikelzunachst auf die dort beschriebene Weise und unter Verwendung von SQL rea-lisiert. Zusatzlich wurde eine weitere Variante dieses Algorithmus programmiert,die fur den Einsatz mit einem DBMS wesentlich besser geeignet ist. Ferner wurdedie Problematik der NULL-Werte besprochen.

Die Performance der alternativen Realisierung ist fur Relationen mit wenigenAttributen und beim Auftreten vieler FAen mit kurzen linken Seiten gut. FurRelationen mit vielen Attributen dagegen dauerte die Berechnung sehr lange,was sich aber, wie die Theorie zeigt, kaum vermeiden lasst.

Es stellt sich allerdings die Frage, inwiefern TANE generell zur Benutzungmit Datenbanken zu empfehlen ist. Wie die Experimente zeigen, benotigten dieAnfragen an die Datenbank proportional jeweils die meiste Zeit. Insbesonderewird fur eine linke Seite X fur jede mogliche rechte Seite A einzeln uberpruft,ob die funktionale Abhangigkeit X → A gultig ist. Dabei muss jedes Mal nachX gruppiert werden (vergleiche Anfrage 2.4). Alternativ ware es moglich, nureinmal nach X zu gruppieren und dann die A-Werte jeder moglichen rechtenSeite A zu zahlen. In der jetzigen Form des Algorithmus mussten dann aberErgebnisse zwischengespeichert werden, da ja immer funktionale Abhangigkeitender Form X \ A → A gepruft werden, das heißt gleiche linke Seiten werden anverschiedenen Stellen benotigt. Außerdem wurden so moglicherweise funktionaleAbhangigkeiten gepruft, die durch das Pruning uberflussig werden.

Eine Moglichkeit, die auch in [Bro94] kurz angerissen wird, ist, den Such-raum gleichzeitig

”von unten“ und

”von oben“ zu untersuchen: Die bekannten

52

Page 53: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

attributorientierten Algorithmen beginnen alle damit, die einelementigen linkenSeiten zu prufen und setzen ihre Suche dann mit langeren linken Seiten fort.Wenn man dagegegen mit den langsten linken Seiten beginnt und diese dannschrittweise verkurzt, so konnte man ausnutzen, dass bei Ungultigkeit einer funk-tionalen Abhangigkeit X → A auch alle funktionalen Abhangigkeiten der FormY → A mit Y $ X ungultig sind. Der praktische Nutzen dieser Idee ist allerdingsfragwurdig, da im Allgemeinen die funktionalen Abhangigkeiten mit langen lin-ken Seiten alle gultig sein werden. Die Relation PStat zum Beispiel ist ja deshalbso schwierig zu untersuchen, weil erst auf dem vierten von 21 Leveln mehreregultige funktionale Abhangigkeiten gefunden werden. In hohen Leveln wird mandagegen kaum ungultige funktionale Abhangigkeiten entdecken, außer die unter-suchte Relation enthalt nur wenige verschiedene Attributwerte und viele Tupel,wie zum Beispiel Chess.

Verbesserungen im Pruning ließen sich wohl vor allem bei der Behandlung derwahrscheinlichen funktionalen Abhangigkeiten erzielen. Durch genauere Untersu-chung der Fehlermaße konnten eventuell ahnliche Aussagen wie die in Lemma 3.7gewonnen werden, die zum fruhzeitigen Streichen von Kandidaten verwendet wer-den konnten. Vielversprechend scheint auch das Konzept der approximate keys,die in [Vil02] in Verbindung mit dem g3-Fehlermaß besprochen werden. Damitkonnte die Effektivitat der Prozedur Prune verbessert werden. Klar ist aberauch, dass Relationen, in denen es kaum funktionale Abhangigkeiten mit kurzenlinken Seiten gibt, immer schwierig zu behandeln sein werden.

53

Page 54: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Literaturverzeichnis

[Bro94] Brockhausen, P. (1994): Discovery of functional and unary inclusiondependencies in relational databases.Diplomarbeit, Informatik VIII, Universitat Dortmund.

[Che04] Wei, Q. und Chen, G. (2004): Efficient discovery of functionaldependencies with degrees of satisfaction.In: International Journal of Intelligent Systems, Volume 19,Number 11, S. 1089-1110.

[Dal99] Dalkilic, M. und Robertson, E. L. (1999):Information Dependencies.Technical Report TR531, Department of Computer Science,Indiana University, Bloomington.

[DBP1] Hein, J., Hennig, P., Kohncke, B., Li, M. und Li, N.(”Gruppe 1“) (2007): Knowledge Discovery in Prufungsverlaufdaten.

Ergebnis des 2. Projekts im Datenbankpraktikum im Winter-semester 2006/07.

[DBP2] Bishara, H., Aziz-Safi, B., Baboci, A., Hess, M. und Stanic, D.(”Gruppe 2“) (2007): Knowledge Discovery in Prufungsverlaufdaten.

Ergebnis des 2. Projekts im Datenbankpraktikum im Winter-semester 2006/07.

[Fla99] Flach, P. A. und Savnik, I. (1999): Database dependency discovery:A machine learning approach.In: AI Communications, Volume 12, Issue 3, S. 139-160.

[Gia04] Giannella, C. und Robertson, E. L. (2004): On approximationmeasures for functional dependencies.In: Information Systems, Volume 29, Number 6, S. 483-507.

[Huh97] Huhtala, Y., Karkkainen, J., Porkka, P. und Toivonen, H. (1997):Efficient discovery of functional and approximate dependenciesusing partitions (Extended Version).Technical Report C-1997-79, Department of Computer Science,University of Helsinki.

[Huh98] Huhtala, Y., Karkkainen, J., Porkka, P. und Toivonen, H. (1998):Efficient discovery of functional and approximate dependenciesusing partitions.In: Proceedings of the Fourteenth International Conference onData Engineering, S. 392-410.

[Kin03] King, R. S. und Legendre, J. L. (2003) : Discovery of Functionaland Approximate Functional Dependencies in RelationalDatabases.In: Journal of Applied Mathematics and Decision Sciences,Volume 7, Number 1, S. 49-59.

54

Page 55: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

[Kiv95] Kivinen, J. und Mannila, H. (1995): Approximate Inference ofFunctional Dependencies from Relations.In: Theoretical Computer Science, Volume 149, Number 1,S. 129-149.

[Lop00] Lopes, S., Petit, J.-M., und Lakhal, L. (2000): Efficient discoveryof functional dependencies and Armstrong relations.In: Proceedings of the Sixth International Conference on ExtendingDatabase Technology, S. 350-364.

[Lop02] Lopes, S., Petit, J.-M., und Lakhal, L. (2002): Functional andapproximate dependency mining: database and FCA points ofview.In: Journal of Experimental and Theoretical Artificial Intelligence,Volume 14, Number 2-3, S. 93-114.

[Lop04] Lopes, S. und Novelli, N. (2004): L’infererence des dependancesfonctionnelles.In: Ingenierie des Systemes d’Information, Volume 9,Number 3-4, S. 161-182.

[Man91] Mannila, H. und Raiha, K.-J. (1992): Design ofRelational Databases.Addison-Wesley Publishing Company, Wokingham.

[MLR] Asuncion, A. und Newman, D. J. (2007): UCI MachineLearning Repository.http://mlearn.ics.uci.edu/MLRepository.html

School of Information and Computer Sciences,University of California, Irvine.

[Nov01] Novelli, N. und Cicchetti, R. (2001): FUN: An EfficientAlgorithm for Mining Functional and Embedded Dependencies.In: Proceedings of the Sixth International Conference onDatabase Theory, Lecture Notes in Computer Science, Springer,Berlin, S. 189-203.

[Sav93] Savnik, I. und Flach, P. A. (1993): Bottom-up Induction ofFunctional Dependencies from Relations.In: Proceedings of the AAAI-93 Workshop on KnowledgeDiscovery in Databases , S. 174-185.

[Say04] Sayrafi B., Van Gucht, D. und Gyssens, M. (2004): Measures inDatabases and Data Mining.Technical Report TR602, Department of Computer Science,Indiana University, Bloomington.

[TANE] Huhtala, Y., Karkkainen, J., Porkka, P. und Toivonen, H. (2007):Tane home page.http://www.cs.helsinki.fi/research/fdk/datamining/tane

Department of Computer Science, University of Helsinki.[Vil02] Vilarem, C. (2002): Approximate key and foreign key discovery

55

Page 56: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

in relational databases.Master‘s thesis, Department of Computer Science, University ofToronto.

[Wan01] Wang, S.-L., Shen, J.-W. und Hong, T.-P. (2001): Incrementaldiscovery of functional dependencies using partitions.In: Proceedings of the IFSA World Congress and 20th NAFIPSInternational Conference, Volume 3, S. 1322-1326.

[Wys01] Wyss, C., Giannella, G. und Robertson, E. (2001): FastFDs:A Heuristic-Driven, Depth-First Algorithm for MiningFunctional Dependencies from Relation Instances.In: Proceedings of the Third International Conference on DataWarehousing and Knowledge Discovery, S. 101-110.

[Yao02] Yao, H., Hamilton, H. J. und Butz, C. J. (2002): FD Mine:Discovering Functional Dependencies in a Database UsingEquivalences.In: Proceedings of the 2002 IEEE International Conference onData Mining, S. 729-732.

56

Page 57: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anhang A

Bedienungsanleitung

Die in Kapitel 4 und 5 vorgestellten Realisierungen von TANE wurden in Ja-va fur Oracle-Datenbanken geschrieben und sind als ausfuhrbare .jar-Dateienverfugbar. Um die Programme aufrufen zu konnen, muss das Java Runtime En-vironment1 (JRE) in Version 1.6.0 oder hoher auf dem benutzten Computer in-stalliert sein.

A.1 Benutzung

Das Programm TANE-DB.jar entspricht der in Abschnitt 4 beschriebenen Versi-on, mit der nur die gewohnlichen FAen gefunden werden konnen. Abbildung A.1zeigt TANE-DB.jar nach dem Aufruf durch den Benutzer2. Zur Berechnung ei-ner minimalen Uberdeckung der Menge der FAen einer vom Benutzer gewahltenRelation sind nun folgende Angaben zu machen:

• Benutzername: Name des Benutzers. Der Benutzer muss zum Zugriff aufdie Datenbank, die in Adresse der Datenbank eingestellt ist, berechtigt sein.

• Passwort : Passwort des Benutzers.

• Name der DB : Name der Datenbank, die untersucht werden soll.

• Besitzer der DB : Besitzer der Datenbank, die untersucht werden soll.

1erhaltlich unter http://java.sun.com/javase/downloads/index.jsp2mittels Doppelklick oder des Kommandos java -jar TANE-DB.jar

57

Page 58: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Abbildung A.1: TANE-DB.jar nach dem Aufruf durch den Benutzer

• bis Stufe: Hier muss der Level (als Integerwert)3 angegeben werden, bis zudem gesucht werden soll. Wird dort beispielsweise 4 eingegeben, so brichtder Algorithmus nach Beendigung von Level 4 ab, das heißt es werdennur funktionale Abhangigkeiten entdeckt, die hochstens 3 Elemente auf derlinken Seite haben (und Superkeys mit 4 Elementen)4. Diese Zahl solltekleiner oder gleich der Anzahl aller Attribute der Relation sein.

Außerdem kann die Adresse der Datenbank verandert werden; hier istjdbc:oracle:thin:@herkules.dbs.uni-hannover.de:1521:dbis voreingestellt.Ferner kann der Benutzer folgende Optionen wahlen:

• Beh. rechte Seite: Hier kann entschieden werden, wie die rechte Seite vonFAen behandelt werden soll. Gewahlt werden kann zwischen gewohnlichenFAen und schwachen FAen.

• Ausgabemodus : Das Programm kann die Ausgabemenge verschiedenen sor-tieren. Wird unsortiert gewahlt, so werden die FAen so ausgegeben, wie sie

3ein error handling wurde nicht implementiert4siehe Abschnitt 3.2.1.4

58

Page 59: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

vom Algorithmus entdeckt wurden. Mit nach lhs sortiert werden die FAenalphabetisch nach den linken Seiten der FAen sortiert, mit nach rhs sortiertnach den rechten Seiten.

Ein Klick auf Berechnen startet die Berechnung. Wahrend der Berechnungwerden im Ausgabefenster (unten) Statusinformationen angezeigt. Dort wirdauch das Ergebnis ausgegeben.

Abbildung A.2: Teil einer Ausgabe von TANE-DB.jar

Dabei wird zunachst die Menge aller entdeckten FAen ausgegeben, dann dieMenge aller entdeckten Superschlussel und schließlich einige statistische Informa-tionen uber die Relation sowie die Gesamtsuchzeit. Außerdem wird die Verteilungder Rechenzeit auf die einzelnen Prozeduren gezeigt5.

Das Programm TANE-DB-Eps.jar funktioniert vollig analog und entsprichtder in Abschnitt 5.2 beschriebenen Version, mit der wahrscheinliche FAen ent-deckt werden konnen. Da wahrscheinliche FAen immer im Sinne schwacher FAenbehandelt werden, gibt es hier keine Option fur die Behandlung der rechten Sei-

5vergleiche Abschnitt 4.4

59

Page 60: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

ten. Stattdessen mussen ein Fehlermaß6 und eine Fehlertoleranz gewahlt werden.Letzere sollte zwischen 0 und 1 liegen.

Abbildung A.3: TANE-DB-Eps.jar nach dem Aufruf durch den Benutzer

A.2 Anpassung an andere Datenbanken

Im folgenden wird von einer Benutzung der weit verbreiteten Open-Source-Ent-wicklungsumgebung Eclipse7 ausgegangen. Zur Anpassung an eine andere Da-tenbank als Oracle mussen die Programme neu kompiliert werden.

Die kompletten Programme sind in der Datei TANE-DB.rar beziehungswei-se TANE-DB-Eps.rar gespeichert. Um den Quelltext zu andern, sind diese zuentpacken und der enthaltende Ordner mittels File / Import in Eclipse zu im-portieren. Zum Zugriff auf die Datenbank mit Oracle wird von TANE-DB.jar undTANE-DB-Eps.jar JDBC verwendet8. Getestet wurden die Programme nur mit

6eine Ubersicht der Fehlermaße findet sich in Abschnitt 5.17erhaltlich unter http://www.eclipse.org/downloads/8Eine Liste von Treibern fur Datenbanken verschiedener Hersteller findet man zum Beispiel

unter http://www.sqlsummit.com/JDBCVend.htm

60

Page 61: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Oracle, eine Benutzung mit Datenbanken anderer Hersteller sollte aber moglichsein. Der Treiber des Herstellers muss unter Project / Properties / Java

Build Path / Libraries / Add External JARs in das Projekt importiert wer-den. Außerdem ist die in Abbildung A.3 gezeigte Zeile in der Methode run zuandern.

Abbildung A.4: Zu andernde Zeile in der Methode run

Anschließend muss eine neue ausfuhrbare .jar-Datei erstellt werden. Mit demExport-Befehl von Eclipse (File / Export) wird jedoch der importierte Daten-banktreiber nicht miteingebunden. Um dieses Problem zu losen kann zum Beispieldas Eclipse Plug-In Fat Jar 9 verwendet werden.

9erhaltlich unter http://fjep.sourceforge.net/

61

Page 62: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

Anhang B

Beispielausgaben von TANE

Im folgenden werden vier Beispielausgaben von TANE dargestellt. Zur Ubersichtwurden FAen mit gleicher linken Seite zusammenzufasst. Außerdem wurden dielinken Seiten alphabetisch sortiert. Die Relation Person wurde mit TANE-DBkomplett nach gewohnlichen und wahrscheinlichen FAen untersucht. PStat wur-de mit TANE-DB-Eps, ε = 0.1 und zwei verschiedenen Fehlermaßen untersucht.Dabei wurde die Suche wie in den Experimenten in Abschnitt 4.4 nach Beendi-gung von Level 4 abgebrochen.

B.1 Person

Attributemenge:R = EMAIL, GUELTIG BIS, GUELTIG VON, HOMEPAGE, ID,INSTITUT, NAME, ORT, PLZ, STRHNR, TITEL, VORNAME

B.1.1 gewohnliche FAen

EMAIL, GUELTIG BIS, TITEL, VORNAME → INSTITUT

EMAIL, GUELTIG BIS, VORNAME → ORT, PLZ, STRHNR

EMAIL, GUELTIG VON, INSTITUT → GUELTIG BIS, ORT, PLZ, STRHNR

EMAIL, HOMEPAGE, ORT → STRHNR

EMAIL, HOMEPAGE, PLZ → STRHNR

EMAIL, HOMEPAGE, TITEL → GUELTIG BIS

EMAIL, HOMEPAGE, VORNAME → GUELTIG BIS, INSTITUT, ORT, PLZ, STRHNR, TITEL

EMAIL, INSTITUT, ORT → STRHNR

62

Page 63: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

EMAIL, INSTITUT, PLZ → STRHNR

EMAIL, INSTITUT, TITEL → GUELTIG BIS, ORT, PLZ, STRHNR

EMAIL, NAME → HOMEPAGE, ID, INSTITUT, ORT, PLZ, STRHNR, TITEL, VORNAME

EMAIL, ORT → PLZ

EMAIL, ORT, TITEL → GUELTIG BIS, STRHNR

EMAIL, ORT, TITEL, VORNAME → INSTITUT

EMAIL, ORT, VORNAME → GUELTIG BIS, STRHNR

EMAIL, PLZ → ORT

EMAIL, PLZ, TITEL → GUELTIG BIS, STRHNR

EMAIL, PLZ, TITEL, VORNAME → INSTITUT

EMAIL, PLZ, VORNAME → GUELTIG BIS, STRHNR

EMAIL, STRHNR → ORT

EMAIL, STRHNR, TITEL → GUELTIG BIS

EMAIL, STRHNR, TITEL, VORNAME → INSTITUT,

EMAIL, STRHNR, VORNAME → GUELTIG BIS

GUELTIG VON, HOMEPAGE, INSTITUT, TITEL → PLZ

GUELTIG VON, HOMEPAGE, VORNAME → GUELTIG BIS, ORT, PLZ, STRHNR

GUELTIG VON, ORT, TITEL, VORNAME → GUELTIG BIS, PLZ

GUELTIG VON, PLZ, TITEL, VORNAME → GUELTIG BIS, ORT

GUELTIG VON, STRHNR, VORNAME → GUELTIG BIS

HOMEPAGE, INSTITUT, VORNAME → EMAIL

HOMEPAGE, NAME → INSTITUT, ORT, PLZ, STRHNR, TITEL

HOMEPAGE, ORT → PLZ

HOMEPAGE, ORT, VORNAME → STRHNR

HOMEPAGE, PLZ, VORNAME → STRHNR

HOMEPAGE, PLZ, VORNAME → ORT

HOMEPAGE, TITEL, VORNAME → GUELTIG BIS, ORT, PLZ, STRHNR

ID → EMAIL, GUELTIG BIS, GUELTIG VON, HOMEPAGE, INSTITUT, NAME, ORT, PLZ, STRHNR,

TITEL, VORNAME

INSTITUT, NAME → HOMEPAGE, ORT, PLZ, STRHNR, TITEL

INSTITUT, ORT → PLZ

INSTITUT, STRHNR, TITEL → ORT

INSTITUT, VORNAME → GUELTIG BIS, ORT, PLZ, STRHNR, TITEL

NAME → GUELTIG BIS, GUELTIG VON

NAME, ORT → PLZ

NAME, PLZ → ORT

NAME, STRHNR → HOMEPAGE, INSTITUT, ORT, TITEL

NAME, TITEL → HOMEPAGE, INSTITUT, ORT, PLZ, STRHNR

NAME, VORNAME → EMAIL, HOMEPAGE, ID, INSTITUT, ORT, PLZ, STRHNR, TITEL

STRHNR → PLZ

STRHNR, TITEL, VORNAME → GUELTIG BIS

STRHNR, VORNAME → ORT

63

Page 64: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

B.1.2 schwache FAen

EMAIL → PLZ, ORT

EMAIL, GUELTIG BIS, VORNAME → INSTITUT

EMAIL, GUELTIG VON, INSTITUT → GUELTIG BIS

EMAIL, GUELTIG VON, VORNAME → INSTITUT

EMAIL, HOMEPAGE → STRHNR

EMAIL, HOMEPAGE, TITEL → GUELTIG BIS

EMAIL, HOMEPAGE, VORNAME → GUELTIG BIS, INSTITUT

EMAIL, INSTITUT → STRHNR

EMAIL, INSTITUT, TITEL → GUELTIG BIS

EMAIL, INSTITUT, VORNAME → HOMEPAGE

EMAIL, NAME → HOMEPAGE, ID, INSTITUT, STRHNR, TITEL, VORNAME

EMAIL, TITEL → STRHNR

EMAIL, VORNAME → STRHNR, TITEL

GUELTIG VON, HOMEPAGE, VORNAME → EMAIL, GUELTIG BIS

GUELTIG VON, ORT, TITEL, VORNAME → GUELTIG BIS, PLZ

GUELTIG VON, PLZ, TITEL, VORNAME → GUELTIG BIS, ORT

GUELTIG VON, STRHNR, VORNAME → GUELTIG BIS

HOMEPAGE → PLZ

HOMEPAGE, INSTITUT, VORNAME → EMAIL

HOMEPAGE, NAME → INSTITUT, STRHNR, TITEL

HOMEPAGE, TITEL, VORNAME → EMAIL, GUELTIG BIS, INSTITUT

HOMEPAGE, VORNAME → ORT, STRHNR

ID → EMAIL, GUELTIG BIS, GUELTIG VON, HOMEPAGE, INSTITUT, NAME, ORT, PLZ, STRHNR,

TITEL, VORNAME

INSTITUT → PLZ

INSTITUT, NAME → HOMEPAGE, STRHNR, TITEL

INSTITUT, STRHNR, TITEL → ORT

INSTITUT, VORNAME → GUELTIG BIS, ORT, STRHNR, TITEL

NAME → GUELTIG BIS, GUELTIG VON, ORT, PLZ

NAME, STRHNR → HOMEPAGE, INSTITUT, TITEL

NAME, TITEL → HOMEPAGE, INSTITUT, STRHNR

NAME, VORNAME → EMAIL, HOMEPAGE, ID, INSTITUT, STRHNR, TITEL

STRHNR → PLZ

STRHNR, TITEL, VORNAME → GUELTIG BIS

STRHNR, VORNAME → ORT

64

Page 65: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

B.2 PStat

Attributemenge:R = ABSCHL, BONUS, FREIVERM, GESCHL, ISTKTO, MALUS, MNR,PJAHR, PMONAT, PNOTE, PNR, PRUEFUNG, PSEM, PSTATUS, PTAG,PVERMERK, PVERSION, SEM, STAAT, STG, VERSUCH

B.2.1 g3-Fehlermaß mit ε = 0.1

ABSCHL → VERSUCH, STG, PVERMERK, MALUS

ABSCHL, BONUS, FREIVERM, ISTKTO → PSTATUS

ABSCHL, BONUS, FREIVERM, PSEM → ISTKTO

ABSCHL, BONUS, FREIVERM, PTAG → ISTKTO

ABSCHL, BONUS, FREIVERM, PVERSION → ISTKTO

ABSCHL, BONUS, FREIVERM, SEM → ISTKTO

ABSCHL, BONUS, ISTKTO, PJAHR → PSTATUS

ABSCHL, BONUS, ISTKTO, PSEM → PSTATUS

ABSCHL, BONUS, ISTKTO, PVERSION → PSTATUS

ABSCHL, BONUS, ISTKTO, STAAT → PSTATUS

ABSCHL, BONUS, MALUS, PMONAT → ISTKTO

ABSCHL, BONUS, MALUS, PRUEFUNG → PNR

ABSCHL, BONUS, MNR, PNOTE → PVERSION

ABSCHL, BONUS, MNR, PTAG → PSEM, SEM

ABSCHL, BONUS, MNR, SEM → PSTATUS

ABSCHL, BONUS, PMONAT, STAAT → GESCHL, ISTKTO

ABSCHL, BONUS, PNOTE → ISTKTO

ABSCHL, BONUS, PNOTE, PVERMERK → PSTATUS

ABSCHL, BONUS, PNOTE, SEM → PSTATUS

ABSCHL, BONUS, PRUEFUNG, PSTATUS → PNR

ABSCHL, BONUS, PRUEFUNG, PTAG → PSEM

ABSCHL, BONUS, PRUEFUNG, PVERMERK → PNR

ABSCHL, BONUS, PSEM, STAAT → GESCHL

ABSCHL, BONUS, SEM, STAAT → GESCHL

ABSCHL, FREIVERM, PNR, PTAG → PSTATUS

ABSCHL, FREIVERM, PRUEFUNG → PNR

ABSCHL, FREIVERM, PRUEFUNG, PTAG → PSTATUS

ABSCHL, GESCHL → FREIVERM

ABSCHL, ISTKTO, PNOTE, PTAG → PSTATUS

ABSCHL, MNR, PNOTE, PNR → PTAG

ABSCHL, MNR, PNOTE, PTAG → ISTKTO

ABSCHL, MNR, PTAG → PVERSION

65

Page 66: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

ABSCHL, MNR, SEM → PJAHR, PSEM

ABSCHL, PJAHR, PNOTE, STAAT → GESCHL

ABSCHL, PJAHR, PTAG, STAAT → GESCHL

ABSCHL, PJAHR, SEM → PSEM

ABSCHL, PMONAT, PNOTE, STAAT → GESCHL

ABSCHL, PMONAT, PRUEFUNG → PNR

ABSCHL, PNOTE, PNR, PTAG → PSEM

ABSCHL, PNOTE, PRUEFUNG, PTAG → GESCHL

ABSCHL, PNOTE, PRUEFUNG, STAAT → PNR

ABSCHL, PNOTE, PSEM, STAAT → GESCHL

ABSCHL, PNOTE, SEM, STAAT → GESCHL

ABSCHL, PNR, PTAG, SEM → PSEM

ABSCHL, PRUEFUNG, PTAG, SEM → PSEM

ABSCHL, PRUEFUNG, PTAG, STAAT → PVERSION

ABSCHL, PRUEFUNG, SEM, STAAT → PNR

ABSCHL, PSEM, STAAT → PJAHR

ABSCHL, PVERSION, SEM, STAAT → GESCHL

BONUS → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

BONUS, FREIVERM, ISTKTO, MALUS → PSTATUS

BONUS, FREIVERM, ISTKTO, PJAHR → PSTATUS

BONUS, FREIVERM, ISTKTO, PSEM → PSTATUS

BONUS, FREIVERM, ISTKTO, PVERSION → PSTATUS

BONUS, FREIVERM, ISTKTO, STAAT → PSTATUS

BONUS, FREIVERM, MALUS, MNR → PSTATUS

BONUS, FREIVERM, MALUS, PSEM → ISTKTO

BONUS, FREIVERM, MALUS, PTAG → ISTKTO

BONUS, FREIVERM, MALUS, PVERMERK → ISTKTO

BONUS, FREIVERM, MALUS, PVERSION → ISTKTO

BONUS, FREIVERM, MALUS, SEM → ISTKTO

BONUS, FREIVERM, MNR → ISTKTO

BONUS, FREIVERM, MNR, PJAHR → PSTATUS

BONUS, FREIVERM, MNR, PNOTE → PVERSION

BONUS, FREIVERM, MNR, PSEM → PSTATUS

BONUS, FREIVERM, MNR, PTAG → PSEM, SEM

BONUS, FREIVERM, MNR, PVERMERK → PSTATUS

BONUS, FREIVERM, MNR, PVERSION → PSTATUS

BONUS, FREIVERM, MNR, SEM → PSTATUS

BONUS, FREIVERM, PJAHR → ISTKTO

BONUS, FREIVERM, PJAHR, PTAG → ABSCHL

BONUS, FREIVERM, PMONAT → ISTKTO

BONUS, FREIVERM, PMONAT, PTAG → ABSCHL, PSTATUS

BONUS, FREIVERM, PMONAT, SEM → ABSCHL

BONUS, FREIVERM, PMONAT, STAAT → GESCHL

66

Page 67: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, FREIVERM, PNOTE → ISTKTO

BONUS, FREIVERM, PNOTE, PTAG → ABSCHL

BONUS, FREIVERM, PNOTE, PVERMERK → PSTATUS

BONUS, FREIVERM, PNOTE, SEM → ABSCHL, PSTATUS

BONUS, FREIVERM, PRUEFUNG → PNR

BONUS, FREIVERM, PRUEFUNG, PTAG → PSEM

BONUS, FREIVERM, PSEM, PTAG → PSTATUS

BONUS, FREIVERM, PSEM, PVERMERK → ISTKTO

BONUS, FREIVERM, PSEM, PVERSION → ISTKTO

BONUS, FREIVERM, PSEM, SEM → ISTKTO

BONUS, FREIVERM, PSEM, STAAT → GESCHL, ISTKTO

BONUS, FREIVERM, PTAG, PVERMERK → ISTKTO

BONUS, FREIVERM, PTAG, PVERSION → ISTKTO

BONUS, FREIVERM, PTAG, SEM → PSTATUS

BONUS, FREIVERM, PTAG, STAAT → ISTKTO

BONUS, FREIVERM, PVERMERK, SEM → ISTKTO

BONUS, FREIVERM, PVERSION, SEM → ISTKTO

BONUS, FREIVERM, SEM, STAAT → GESCHL

BONUS, GESCHL, ISTKTO, PJAHR → PSTATUS

BONUS, GESCHL, PMONAT, PTAG → ABSCHL

BONUS, GESCHL, PRUEFUNG, PTAG → PSEM

BONUS, ISTKTO, MALUS, PJAHR → PSTATUS

BONUS, ISTKTO, MALUS, PSEM → PSTATUS

BONUS, ISTKTO, MNR → PSTATUS

BONUS, ISTKTO, MNR, PTAG → PSEM, SEM

BONUS, ISTKTO, PJAHR, PSEM → PSTATUS

BONUS, ISTKTO, PJAHR, PTAG → ABSCHL

BONUS, ISTKTO, PJAHR, PVERSION → PSTATUS

BONUS, ISTKTO, PJAHR, STAAT → PSTATUS

BONUS, ISTKTO, PJAHR, VERSUCH → PSTATUS

BONUS, ISTKTO, PMONAT → PSTATUS

BONUS, ISTKTO, PMONAT, PTAG → ABSCHL

BONUS, ISTKTO, PMONAT, SEM → ABSCHL

BONUS, ISTKTO, PNOTE → PSTATUS

BONUS, ISTKTO, PNOTE, PTAG → ABSCHL

BONUS, ISTKTO, PSEM, PVERSION → PSTATUS

BONUS, ISTKTO, PSEM, STAAT → GESCHL, PSTATUS

BONUS, ISTKTO, PTAG → PSTATUS

BONUS, ISTKTO, PVERMERK → PSTATUS

BONUS, ISTKTO, PVERSION, STAAT → PSTATUS

BONUS, ISTKTO, SEM → PSTATUS

BONUS, MALUS, MNR, PJAHR → PSTATUS

BONUS, MALUS, MNR, PSEM → ISTKTO

67

Page 68: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, MALUS, MNR, PTAG → PSEM, SEM

BONUS, MALUS, MNR, SEM → PSTATUS

BONUS, MALUS, PMONAT, PTAG → ABSCHL

BONUS, MALUS, PMONAT, STAAT → GESCHL, ISTKTO

BONUS, MALUS, PNOTE → ISTKTO

BONUS, MALUS, PRUEFUNG, PTAG → PSEM

BONUS, MALUS, PSEM, STAAT → GESCHL

BONUS, MALUS, SEM, STAAT → GESCHL

BONUS, MNR → ABSCHL

BONUS, MNR, PJAHR → ISTKTO

BONUS, MNR, PJAHR, PNOTE → PSEM, SEM

BONUS, MNR, PJAHR, PSEM → PSTATUS

BONUS, MNR, PJAHR, PVERMERK → PSTATUS

BONUS, MNR, PJAHR, SEM → PSTATUS

BONUS, MNR, PMONAT → ISTKTO, PSTATUS, PVERSION

BONUS, MNR, PMONAT, PNOTE → PJAHR, PSEM, SEM

BONUS, MNR, PMONAT, PVERSION → PJAHR, PSEM, SEM

BONUS, MNR, PNOTE → ISTKTO, PSTATUS

BONUS, MNR, PNR → PJAHR, PMONAT, PNOTE, PSEM, PTAG, SEM

BONUS, MNR, PRUEFUNG → PJAHR, PMONAT, PNOTE, PSEM, PTAG, SEM

BONUS, MNR, PSEM, PVERMERK → ISTKTO

BONUS, MNR, PSEM, SEM → PSTATUS

BONUS, MNR, PSTATUS, PTAG → PSEM, SEM

BONUS, MNR, PTAG → ISTKTO, PJAHR, PMONAT, PNOTE, PSTATUS, PVERSION

BONUS, MNR, PTAG, PVERMERK → PSEM, SEM

BONUS, MNR, PTAG, PVERSION → PSEM, SEM

BONUS, MNR, PTAG, VERSUCH → PSEM, SEM

BONUS, MNR, PVERMERK, SEM → PSTATUS

BONUS, MNR, PVERSION, SEM → PSTATUS

BONUS, MNR, SEM → ISTKTO, PJAHR, PSEM

BONUS, PJAHR, PMONAT → ISTKTO

BONUS, PJAHR, PMONAT, PNOTE → ABSCHL

BONUS, PJAHR, PMONAT, PTAG → ABSCHL, PSTATUS

BONUS, PJAHR, PMONAT, SEM → ABSCHL

BONUS, PJAHR, PMONAT, STAAT → GESCHL

BONUS, PJAHR, PNOTE → ISTKTO, PSTATUS

BONUS, PJAHR, PNOTE, PNR → GESCHL, PSEM

BONUS, PJAHR, PNOTE, PRUEFUNG → GESCHL, PSEM

BONUS, PJAHR, PNOTE, PTAG → ABSCHL, GESCHL, PSEM

BONUS, PJAHR, PNOTE, SEM → ABSCHL

BONUS, PJAHR, PNR, PTAG → GESCHL

BONUS, PJAHR, PSEM, STAAT → GESCHL

BONUS, PJAHR, PSTATUS, PTAG → ABSCHL

68

Page 69: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PJAHR, PSTATUS, SEM → ABSCHL

BONUS, PJAHR, PTAG → ISTKTO

BONUS, PJAHR, PTAG, PVERSION → ABSCHL

BONUS, PJAHR, PTAG, SEM → PMONAT, PSTATUS

BONUS, PJAHR, PTAG, STAAT → ABSCHL

BONUS, PJAHR, SEM → ISTKTO, PSEM

BONUS, PJAHR, SEM, STAAT → ABSCHL

BONUS, PMONAT, PNOTE → ISTKTO, PSTATUS

BONUS, PMONAT, PNOTE, PNR → GESCHL, PVERSION

BONUS, PMONAT, PNOTE, PRUEFUNG → GESCHL

BONUS, PMONAT, PNOTE, PSEM → ABSCHL

BONUS, PMONAT, PNOTE, PTAG → ABSCHL, GESCHL

BONUS, PMONAT, PNOTE, SEM → ABSCHL, GESCHL

BONUS, PMONAT, PNR, PTAG → GESCHL

BONUS, PMONAT, PNR, SEM → PVERSION

BONUS, PMONAT, PRUEFUNG → PNR

BONUS, PMONAT, PSEM → ISTKTO

BONUS, PMONAT, PSEM, PTAG → PSTATUS

BONUS, PMONAT, PSEM, STAAT → GESCHL

BONUS, PMONAT, PSTATUS, PTAG → ABSCHL

BONUS, PMONAT, PSTATUS, SEM → ABSCHL

BONUS, PMONAT, PSTATUS, STAAT → GESCHL

BONUS, PMONAT, PTAG → ISTKTO

BONUS, PMONAT, PTAG, PVERMERK → ABSCHL, PSTATUS

BONUS, PMONAT, PTAG, PVERSION → ABSCHL, PJAHR, PSEM, PSTATUS

BONUS, PMONAT, PTAG, SEM → GESCHL, PJAHR, PSTATUS, PVERSION

BONUS, PMONAT, PTAG, STAAT → ABSCHL, PSTATUS

BONUS, PMONAT, PTAG, VERSUCH → ABSCHL

BONUS, PMONAT, PVERMERK → ISTKTO

BONUS, PMONAT, PVERSION → ISTKTO

BONUS, PMONAT, PVERSION, SEM → ABSCHL

BONUS, PMONAT, PVERSION, STAAT → GESCHL

BONUS, PMONAT, SEM → ISTKTO

BONUS, PMONAT, SEM, STAAT → ABSCHL, GESCHL

BONUS, PNOTE, PNR, PSEM → GESCHL, PMONAT

BONUS, PNOTE, PNR, SEM → GESCHL, PVERSION

BONUS, PNOTE, PRUEFUNG → PNR

BONUS, PNOTE, PRUEFUNG, PSEM → GESCHL, PMONAT

BONUS, PNOTE, PRUEFUNG, PTAG → GESCHL, PSEM

BONUS, PNOTE, PRUEFUNG, SEM → GESCHL

BONUS, PNOTE, PSEM → ISTKTO, PSTATUS

BONUS, PNOTE, PSEM, PTAG → GESCHL, PMONAT

BONUS, PNOTE, PSEM, STAAT → ABSCHL

69

Page 70: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PNOTE, PSTATUS, PTAG → ABSCHL

BONUS, PNOTE, PTAG → ISTKTO, PSTATUS

BONUS, PNOTE, PTAG, PVERMERK → ABSCHL

BONUS, PNOTE, PTAG, PVERSION → ABSCHL, GESCHL

BONUS, PNOTE, PTAG, SEM → GESCHL

BONUS, PNOTE, PTAG, STAAT → ABSCHL

BONUS, PNOTE, PVERMERK → ISTKTO

BONUS, PNOTE, PVERMERK, PVERSION → PSTATUS

BONUS, PNOTE, PVERMERK, SEM → PSTATUS

BONUS, PNOTE, PVERMERK, STAAT → PSTATUS

BONUS, PNOTE, PVERSION → ISTKTO

BONUS, PNOTE, PVERSION, SEM → ABSCHL, PSTATUS

BONUS, PNOTE, SEM → ISTKTO

BONUS, PNOTE, SEM, STAAT → ABSCHL, PSTATUS

BONUS, PNOTE, STAAT → GESCHL, ISTKTO

BONUS, PNOTE, VERSUCH → ISTKTO

BONUS, PNR → ABSCHL, PSTATUS

BONUS, PNR, PSEM, PTAG → GESCHL

BONUS, PNR, PSEM, SEM → PMONAT

BONUS, PNR, PTAG → PJAHR, PMONAT, PSEM

BONUS, PNR, PTAG, SEM → GESCHL

BONUS, PNR, STAAT → GESCHL

BONUS, PRUEFUNG → ABSCHL, PSTATUS

BONUS, PRUEFUNG, PSEM, PTAG → GESCHL

BONUS, PRUEFUNG, PSEM, SEM → PMONAT

BONUS, PRUEFUNG, PSTATUS, PTAG → PSEM

BONUS, PRUEFUNG, PTAG → PJAHR, PMONAT, PVERSION

BONUS, PRUEFUNG, PTAG, PVERMERK → PSEM

BONUS, PRUEFUNG, PTAG, PVERSION → PSEM

BONUS, PRUEFUNG, PTAG, SEM → GESCHL, PSEM

BONUS, PRUEFUNG, PTAG, STAAT → PSEM

BONUS, PRUEFUNG, SEM → PNR

BONUS, PRUEFUNG, STAAT → GESCHL, PNR

BONUS, PSEM → PJAHR

BONUS, PSEM, PSTATUS, PTAG → PMONAT

BONUS, PSEM, PSTATUS, STAAT → GESCHL

BONUS, PSEM, PTAG → ABSCHL, ISTKTO

BONUS, PSEM, PTAG, PVERMERK → PSTATUS

BONUS, PSEM, PTAG, SEM → GESCHL, PMONAT, PSTATUS

BONUS, PSEM, PTAG, STAAT → PMONAT

BONUS, PSEM, PVERMERK, STAAT → GESCHL

BONUS, PSEM, PVERSION, STAAT → GESCHL

BONUS, PSEM, SEM → ABSCHL

70

Page 71: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PSEM, STAAT, VERSUCH → GESCHL

BONUS, PSTATUS, SEM, STAAT → GESCHL

BONUS, PTAG, PVERMERK, SEM → PSTATUS

BONUS, PTAG, PVERSION, STAAT → ABSCHL, PJAHR

BONUS, PTAG, SEM → ABSCHL, ISTKTO

BONUS, PTAG, STAAT → GESCHL

BONUS, PVERSION, SEM, STAAT → GESCHL

FREIVERM → MALUS, PVERMERK, STG, VERSUCH

FREIVERM, GESCHL, PNR, PTAG → PSTATUS

FREIVERM, GESCHL, PRUEFUNG, PTAG → PSTATUS

FREIVERM, GESCHL, PRUEFUNG, PVERMERK → PNR

FREIVERM, GESCHL, PRUEFUNG, VERSUCH → PNR

FREIVERM, ISTKTO, MNR → ABSCHL

FREIVERM, ISTKTO, MNR, PTAG → PSTATUS, PVERSION

FREIVERM, ISTKTO, PMONAT, PNOTE → PSTATUS

FREIVERM, ISTKTO, PNOTE, PTAG → PSTATUS

FREIVERM, ISTKTO, PNOTE, SEM → PSTATUS

FREIVERM, ISTKTO, PRUEFUNG, PVERMERK → PNR

FREIVERM, MALUS, MNR → ABSCHL

FREIVERM, MALUS, MNR, PTAG → PVERSION

FREIVERM, MALUS, PNR → PSTATUS

FREIVERM, MALUS, PNR, STAAT → GESCHL

FREIVERM, MALUS, PRUEFUNG → PNR, PSTATUS

FREIVERM, MNR, PJAHR, PNOTE → ISTKTO

FREIVERM, MNR, PJAHR, PNR → PTAG

FREIVERM, MNR, PJAHR, PRUEFUNG → PTAG

FREIVERM, MNR, PMONAT, PNOTE → ISTKTO, PSTATUS

FREIVERM, MNR, PNOTE, PNR → PSEM, PTAG, SEM

FREIVERM, MNR, PNOTE, PRUEFUNG → PSEM, PTAG, SEM

FREIVERM, MNR, PNOTE, PSEM → ISTKTO, PSTATUS

FREIVERM, MNR, PNOTE, PTAG → ISTKTO

FREIVERM, MNR, PNOTE, SEM → ISTKTO, PSTATUS

FREIVERM, MNR, PSTATUS → ABSCHL

FREIVERM, MNR, PSTATUS, PTAG → PVERSION

FREIVERM, MNR, PTAG, PVERSION → PJAHR

FREIVERM, MNR, PVERMERK → ABSCHL

FREIVERM, MNR, SEM → PSEM

FREIVERM, MNR, STAAT → ABSCHL

FREIVERM, MNR, VERSUCH → ABSCHL

FREIVERM, PJAHR, PMONAT, PNR → PSTATUS

FREIVERM, PJAHR, PMONAT, PRUEFUNG → PSTATUS

FREIVERM, PJAHR, PNR, PTAG → PSTATUS

FREIVERM, PJAHR, PNR, SEM → PSTATUS

71

Page 72: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, PJAHR, PNR, STAAT → PSTATUS

FREIVERM, PJAHR, PRUEFUNG, PTAG → PSTATUS

FREIVERM, PJAHR, PRUEFUNG, SEM → PSTATUS

FREIVERM, PJAHR, PTAG, STAAT → GESCHL

FREIVERM, PJAHR, SEM → PSEM

FREIVERM, PMONAT, PNOTE, PTAG → ABSCHL

FREIVERM, PMONAT, PNOTE, SEM → ABSCHL

FREIVERM, PMONAT, PNOTE, STAAT → GESCHL

FREIVERM, PMONAT, PNR, PSEM → PSTATUS

FREIVERM, PMONAT, PNR, PTAG → PSTATUS

FREIVERM, PMONAT, PNR, PVERSION → PSTATUS

FREIVERM, PMONAT, PNR, SEM → PSTATUS

FREIVERM, PMONAT, PNR, STAAT → PSTATUS

FREIVERM, PMONAT, PNR, VERSUCH → PSTATUS

FREIVERM, PMONAT, PRUEFUNG → PNR

FREIVERM, PMONAT, PRUEFUNG, PSEM → PSTATUS

FREIVERM, PMONAT, PRUEFUNG, PTAG → PSTATUS

FREIVERM, PMONAT, PRUEFUNG, PVERSION → PSTATUS

FREIVERM, PMONAT, PRUEFUNG, SEM → PSTATUS

FREIVERM, PMONAT, PRUEFUNG, STAAT → PSTATUS

FREIVERM, PMONAT, PSEM, PTAG → ABSCHL

FREIVERM, PMONAT, PSEM, SEM → ABSCHL

FREIVERM, PNOTE, PRUEFUNG → PNR

FREIVERM, PNOTE, PRUEFUNG, PTAG → GESCHL

FREIVERM, PNOTE, PSEM, SEM → ABSCHL

FREIVERM, PNOTE, PSEM, STAAT → GESCHL

FREIVERM, PNOTE, PTAG, SEM → ABSCHL

FREIVERM, PNOTE, SEM, STAAT → GESCHL

FREIVERM, PNR → ABSCHL

FREIVERM, PNR, PRUEFUNG, PTAG → PSTATUS

FREIVERM, PNR, PSEM, PTAG → PSTATUS

FREIVERM, PNR, PSEM, SEM → PSTATUS

FREIVERM, PNR, PSEM, STAAT → PSTATUS

FREIVERM, PNR, PSTATUS, STAAT → GESCHL

FREIVERM, PNR, PTAG, PVERSION → PSTATUS

FREIVERM, PNR, PTAG, SEM → PSEM, PSTATUS

FREIVERM, PNR, PTAG, STAAT → PSTATUS

FREIVERM, PNR, PTAG, VERSUCH → PSTATUS

FREIVERM, PNR, PVERMERK → PSTATUS

FREIVERM, PNR, PVERMERK, STAAT → GESCHL

FREIVERM, PNR, PVERSION, SEM → PSTATUS

FREIVERM, PNR, SEM, STAAT → PSTATUS

FREIVERM, PRUEFUNG → ABSCHL

72

Page 73: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, PRUEFUNG, PSEM, PTAG → PSTATUS

FREIVERM, PRUEFUNG, PSEM, SEM → PSTATUS

FREIVERM, PRUEFUNG, PSEM, STAAT → PSTATUS

FREIVERM, PRUEFUNG, PSTATUS → PNR

FREIVERM, PRUEFUNG, PTAG, PVERSION → PSTATUS

FREIVERM, PRUEFUNG, PTAG, SEM → PSTATUS

FREIVERM, PRUEFUNG, PTAG, STAAT → PSTATUS, PVERSION

FREIVERM, PRUEFUNG, PTAG, VERSUCH → PSTATUS

FREIVERM, PRUEFUNG, PVERMERK → PSTATUS

FREIVERM, PRUEFUNG, PVERMERK, VERSUCH → PNR

FREIVERM, PRUEFUNG, PVERSION, SEM → PSTATUS

FREIVERM, PRUEFUNG, SEM → PNR

FREIVERM, PRUEFUNG, SEM, STAAT → PSTATUS

FREIVERM, PRUEFUNG, STAAT → PNR

FREIVERM, PSEM, STAAT → PJAHR

FREIVERM, PTAG, PVERSION, SEM → ABSCHL

GESCHL → MALUS, PVERMERK, STG, VERSUCH

GESCHL, ISTKTO, PJAHR, SEM → PSEM

GESCHL, ISTKTO, PNOTE, PTAG → PSTATUS

GESCHL, PMONAT, PNOTE, PTAG → ABSCHL

GESCHL, PMONAT, PRUEFUNG, PVERMERK → PNR

GESCHL, PMONAT, PRUEFUNG, VERSUCH → PNR

GESCHL, PMONAT, PSEM, SEM → ABSCHL

GESCHL, PNOTE, PRUEFUNG, STAAT → PNR

GESCHL, PNOTE, PTAG, SEM → ABSCHL

GESCHL, PNR, PSTATUS, PVERMERK → ABSCHL

GESCHL, PNR, PTAG, SEM → PSEM

GESCHL, PRUEFUNG, PTAG, SEM → PSEM

GESCHL, PRUEFUNG, SEM, STAAT → PNR

GESCHL, PSEM, STAAT → PJAHR

ISTKTO → MALUS, PVERMERK, STG, VERSUCH

ISTKTO, MALUS, MNR, PTAG → PSTATUS

ISTKTO, MALUS, PNOTE, PTAG → PSTATUS

ISTKTO, MNR, PJAHR, PTAG → PSTATUS

ISTKTO, MNR, PMONAT, PNOTE → BONUS

ISTKTO, MNR, PMONAT, PTAG → PSTATUS

ISTKTO, MNR, PNOTE → PSTATUS

ISTKTO, MNR, PNOTE, PSEM → BONUS

ISTKTO, MNR, PNOTE, SEM → BONUS

ISTKTO, MNR, PSEM, PTAG → PSTATUS

ISTKTO, MNR, PTAG, PVERSION → PSTATUS

ISTKTO, MNR, PTAG, SEM → PSTATUS

ISTKTO, MNR, PVERMERK, SEM → PSEM

73

Page 74: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

ISTKTO, MNR, SEM, VERSUCH → PSEM

ISTKTO, PJAHR, PMONAT, PNOTE → PSTATUS

ISTKTO, PJAHR, PNOTE, PTAG → PSTATUS

ISTKTO, PJAHR, PNOTE, SEM → PSTATUS

ISTKTO, PJAHR, PNOTE, STAAT → PSTATUS

ISTKTO, PJAHR, PTAG, STAAT → GESCHL

ISTKTO, PMONAT, PNOTE, PSEM → PSTATUS

ISTKTO, PMONAT, PNOTE, PTAG → ABSCHL, PSTATUS

ISTKTO, PMONAT, PNOTE, PVERSION → PSTATUS

ISTKTO, PMONAT, PNOTE, SEM → PSTATUS

ISTKTO, PMONAT, PNOTE, STAAT → PSTATUS

ISTKTO, PMONAT, PSEM, SEM → ABSCHL

ISTKTO, PNOTE, PSEM, PTAG → PSTATUS

ISTKTO, PNOTE, PSEM, SEM → PSTATUS

ISTKTO, PNOTE, PSEM, STAAT → GESCHL, PSTATUS

ISTKTO, PNOTE, PTAG, PVERSION → PSTATUS

ISTKTO, PNOTE, PTAG, SEM → ABSCHL, PSTATUS

ISTKTO, PNOTE, PTAG, STAAT → PSTATUS

ISTKTO, PNOTE, PTAG, VERSUCH → PSTATUS

ISTKTO, PNOTE, PVERMERK → PSTATUS

ISTKTO, PNOTE, PVERSION, SEM → PSTATUS

ISTKTO, PNOTE, SEM, STAAT → PSTATUS

ISTKTO, PSEM, STAAT → PJAHR

ISTKTO, PTAG, PVERSION, SEM → ABSCHL

MALUS → FREIVERM, PVERMERK, STG, VERSUCH

MALUS, MNR, PJAHR, PNR → PMONAT, PSEM, PTAG, SEM

MALUS, MNR, PJAHR, PRUEFUNG → PMONAT, PSEM, PTAG, SEM

MALUS, MNR, PNOTE, PNR → PSEM, PTAG, SEM

MALUS, MNR, PNOTE, PRUEFUNG → PSEM, PTAG, SEM

MALUS, MNR, PNOTE, PTAG → ISTKTO

MALUS, MNR, PSTATUS, PTAG → PVERSION

MALUS, MNR, PTAG, PVERSION → PJAHR

MALUS, MNR, SEM → PSEM

MALUS, PJAHR, PNOTE, STAAT → GESCHL

MALUS, PJAHR, PTAG, STAAT → GESCHL

MALUS, PJAHR, SEM → PSEM

MALUS, PMONAT, PNOTE, STAAT → GESCHL

MALUS, PMONAT, PRUEFUNG → PNR

MALUS, PMONAT, PSEM, SEM → ABSCHL

MALUS, PMONAT, SEM, STAAT → GESCHL

MALUS, PNOTE, PNR, PTAG → PSEM

MALUS, PNOTE, PRUEFUNG, PTAG → GESCHL

MALUS, PNOTE, PRUEFUNG, STAAT → PNR

74

Page 75: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

MALUS, PNOTE, PSEM, STAAT → GESCHL

MALUS, PNOTE, PTAG, SEM → ABSCHL

MALUS, PNOTE, SEM, STAAT → GESCHL

MALUS, PNR, PSTATUS, STAAT → GESCHL

MALUS, PNR, PTAG, SEM → PSEM

MALUS, PNR, PVERMERK, STAAT → GESCHL

MALUS, PRUEFUNG, PTAG, SEM → PSEM

MALUS, PRUEFUNG, PTAG, STAAT → PVERSION

MALUS, PRUEFUNG, SEM, STAAT → PNR

MALUS, PSEM, PVERSION, STAAT → PJAHR

MALUS, PVERSION, SEM, STAAT → GESCHL

MNR → FREIVERM, GESCHL, MALUS, PVERMERK, STAAT, STG, VERSUCH

MNR, PJAHR → ABSCHL

MNR, PJAHR, PMONAT → SEM

MNR, PJAHR, PMONAT, PNOTE → BONUS, ISTKTO, PSTATUS, PTAG

MNR, PJAHR, PNOTE, PNR → PSEM, PTAG, SEM

MNR, PJAHR, PNOTE, PRUEFUNG → PSEM, PTAG, SEM

MNR, PJAHR, PNOTE, PTAG → ISTKTO

MNR, PJAHR, PNR → BONUS, PNOTE

MNR, PJAHR, PNR, PSTATUS → PMONAT, PSEM, PTAG, SEM

MNR, PJAHR, PRUEFUNG → BONUS, PNOTE

MNR, PJAHR, PRUEFUNG, PSTATUS → PMONAT, PSEM, PTAG, SEM

MNR, PJAHR, PTAG → PMONAT, PSEM, SEM

MNR, PJAHR, SEM → PSEM

MNR, PMONAT → ABSCHL

MNR, PMONAT, PNOTE → PVERSION

MNR, PMONAT, PNOTE, PSEM → BONUS, ISTKTO, PSTATUS

MNR, PMONAT, PNOTE, PSTATUS → BONUS

MNR, PMONAT, PNOTE, PTAG → ISTKTO

MNR, PMONAT, PNOTE, PVERSION → PJAHR

MNR, PMONAT, PNOTE, SEM → BONUS, ISTKTO, PSTATUS

MNR, PMONAT, PNR → BONUS, PJAHR, PNOTE, PSEM, PTAG, SEM

MNR, PMONAT, PRUEFUNG → BONUS, PJAHR, PNOTE, PSEM, PTAG, SEM

MNR, PMONAT, PTAG → PJAHR, PSEM, PVERSION, SEM

MNR, PMONAT, SEM → PJAHR, PSEM

MNR, PNOTE → ABSCHL

MNR, PNOTE, PNR → BONUS, PJAHR, PMONAT

MNR, PNOTE, PNR, PSTATUS → PSEM, PTAG, SEM

MNR, PNOTE, PNR, PVERMERK → PTAG, SEM

MNR, PNOTE, PNR, PVERSION → PSEM, PTAG, SEM

MNR, PNOTE, PNR, VERSUCH → PSEM, PTAG, SEM

MNR, PNOTE, PRUEFUNG → BONUS, PJAHR, PMONAT

MNR, PNOTE, PRUEFUNG, PSTATUS → PSEM, PTAG, SEM

75

Page 76: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

MNR, PNOTE, PRUEFUNG, PVERMERK → PTAG

MNR, PNOTE, PRUEFUNG, PVERSION → PSEM, PTAG, SEM

MNR, PNOTE, PRUEFUNG, VERSUCH → PSEM, PTAG, SEM

MNR, PNOTE, PSEM, PTAG → ISTKTO

MNR, PNOTE, PSTATUS, SEM → BONUS

MNR, PNOTE, PTAG → BONUS, PJAHR, PMONAT, PSEM, PSTATUS, PVERSION, SEM

MNR, PNOTE, PTAG, PVERMERK → ISTKTO

MNR, PNOTE, PTAG, PVERSION → ISTKTO

MNR, PNOTE, PTAG, SEM → ISTKTO

MNR, PNOTE, PTAG, VERSUCH → ISTKTO

MNR, PNOTE, SEM → PJAHR, PSEM

MNR, PNR → ABSCHL, PSTATUS, PVERSION

MNR, PNR, PSEM → BONUS, PMONAT, PNOTE, PTAG

MNR, PNR, PSTATUS, PVERSION → PJAHR, PNOTE

MNR, PNR, PTAG → BONUS, PJAHR, PMONAT, PNOTE, PSEM, SEM

MNR, PNR, SEM → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PTAG

MNR, PRUEFUNG → ABSCHL, PNR, PSTATUS, PVERSION

MNR, PRUEFUNG, PSEM → BONUS, PMONAT, PNOTE, PTAG

MNR, PRUEFUNG, PSTATUS, PVERSION → PJAHR, PNOTE

MNR, PRUEFUNG, PTAG → BONUS, PJAHR, PMONAT, PNOTE, PSEM, SEM

MNR, PRUEFUNG, SEM → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PTAG

MNR, PSEM → ABSCHL, PJAHR, SEM

MNR, PSEM, PTAG → PMONAT

MNR, PSTATUS, PTAG, PVERSION → PJAHR

MNR, PSTATUS, SEM → PSEM

MNR, PTAG → ABSCHL

MNR, PTAG, SEM → PJAHR, PMONAT, PSEM

MNR, PVERMERK, SEM, VERSUCH → PSEM

MNR, PVERSION → ABSCHL

MNR, PVERSION, SEM → PJAHR, PSEM

MNR, SEM → ABSCHL, PVERSION

MNR, SEM, STAAT, VERSUCH → PSEM

PJAHR → FREIVERM, MALUS, PVERMERK, PVERSION, STG, VERSUCH

PJAHR, PMONAT → PSEM

PJAHR, PMONAT, PNOTE, PTAG → ABSCHL

PJAHR, PMONAT, PNOTE, SEM → ABSCHL

PJAHR, PMONAT, PNOTE, STAAT → GESCHL

PJAHR, PMONAT, PSEM, SEM → ABSCHL

PJAHR, PMONAT, PTAG, STAAT → ABSCHL

PJAHR, PMONAT, SEM, STAAT → ABSCHL

PJAHR, PNOTE, PNR, PTAG → BONUS

PJAHR, PNOTE, PNR, SEM → GESCHL

PJAHR, PNOTE, PRUEFUNG, PTAG → BONUS, GESCHL

76

Page 77: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PJAHR, PNOTE, PRUEFUNG, SEM → GESCHL

PJAHR, PNOTE, PSEM, SEM → ABSCHL

PJAHR, PNOTE, PSEM, STAAT → GESCHL

PJAHR, PNOTE, PSTATUS, STAAT → GESCHL

PJAHR, PNOTE, PTAG, SEM → GESCHL, PMONAT

PJAHR, PNOTE, PTAG, STAAT → ABSCHL

PJAHR, PNOTE, PVERSION, STAAT → GESCHL

PJAHR, PNOTE, SEM → PSEM

PJAHR, PNOTE, SEM, STAAT → ABSCHL

PJAHR, PNR → ABSCHL

PJAHR, PNR, PTAG → PMONAT, PSEM

PJAHR, PNR, SEM → PSEM

PJAHR, PNR, STAAT → GESCHL

PJAHR, PRUEFUNG → ABSCHL, PNR

PJAHR, PRUEFUNG, PTAG → PMONAT, PSEM

PJAHR, PRUEFUNG, SEM → PSEM

PJAHR, PRUEFUNG, STAAT → GESCHL

PJAHR, PSTATUS, PTAG, STAAT → GESCHL

PJAHR, PSTATUS, SEM → PSEM

PJAHR, PTAG, PVERMERK, STAAT → GESCHL

PJAHR, PTAG, PVERSION, STAAT → GESCHL

PJAHR, PTAG, SEM → ABSCHL, PSEM

PJAHR, PTAG, STAAT, VERSUCH → GESCHL

PJAHR, PVERMERK, SEM → PSEM

PJAHR, PVERSION, SEM → PSEM

PJAHR, SEM, STAAT → GESCHL, PSEM

PMONAT → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

PMONAT, PNOTE, PNR, PTAG → BONUS

PMONAT, PNOTE, PNR, SEM → GESCHL, PVERSION

PMONAT, PNOTE, PNR, STAAT → PVERSION

PMONAT, PNOTE, PRUEFUNG → PNR

PMONAT, PNOTE, PRUEFUNG, PTAG → BONUS, GESCHL

PMONAT, PNOTE, PRUEFUNG, SEM → GESCHL

PMONAT, PNOTE, PSEM, SEM → ABSCHL

PMONAT, PNOTE, PSEM, STAAT → GESCHL

PMONAT, PNOTE, PSTATUS, PTAG → ABSCHL

PMONAT, PNOTE, PSTATUS, STAAT → GESCHL

PMONAT, PNOTE, PTAG, PVERSION → ABSCHL, PJAHR

PMONAT, PNOTE, PTAG, SEM → GESCHL

PMONAT, PNOTE, PTAG, STAAT → ABSCHL

PMONAT, PNOTE, PVERSION, SEM → ABSCHL

PMONAT, PNOTE, PVERSION, STAAT → GESCHL

PMONAT, PNOTE, SEM, STAAT → ABSCHL, GESCHL

77

Page 78: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PMONAT, PNR → ABSCHL

PMONAT, PNR, PTAG → PJAHR, PSEM

PMONAT, PNR, STAAT → GESCHL

PMONAT, PRUEFUNG → ABSCHL

PMONAT, PRUEFUNG, PSTATUS → PNR

PMONAT, PRUEFUNG, PTAG → PJAHR, PSEM, PVERSION

PMONAT, PRUEFUNG, PVERMERK, VERSUCH → PNR

PMONAT, PRUEFUNG, SEM → PNR

PMONAT, PRUEFUNG, STAAT → GESCHL, PNR

PMONAT, PSEM → PJAHR

PMONAT, PSEM, PSTATUS, SEM → ABSCHL

PMONAT, PSEM, PTAG, STAAT → ABSCHL

PMONAT, PSEM, PVERMERK, SEM → ABSCHL

PMONAT, PSEM, PVERSION, SEM → ABSCHL

PMONAT, PSEM, SEM, STAAT → ABSCHL

PMONAT, PSTATUS, SEM, STAAT → GESCHL

PMONAT, PTAG, PVERSION, SEM → PJAHR

PMONAT, PTAG, SEM → ABSCHL

PMONAT, PTAG, STAAT → GESCHL

PMONAT, PVERSION, SEM, STAAT → GESCHL

PNOTE → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

PNOTE, PNR → ABSCHL, PSTATUS

PNOTE, PNR, PSEM, PTAG → BONUS

PNOTE, PNR, PSEM, SEM → GESCHL, PMONAT

PNOTE, PNR, PSTATUS, PTAG → BONUS, PSEM

PNOTE, PNR, PTAG → GESCHL, PJAHR, PMONAT

PNOTE, PNR, PTAG, PVERSION → PSEM

PNOTE, PNR, PTAG, SEM → BONUS, PSEM

PNOTE, PNR, PTAG, STAAT → BONUS, PSEM

PNOTE, PNR, STAAT → GESCHL

PNOTE, PRUEFUNG → ABSCHL, PSTATUS

PNOTE, PRUEFUNG, PSEM, PTAG → BONUS, GESCHL

PNOTE, PRUEFUNG, PSEM, SEM → GESCHL, PMONAT

PNOTE, PRUEFUNG, PSTATUS, PTAG → BONUS, GESCHL

PNOTE, PRUEFUNG, PSTATUS, STAAT → PNR

PNOTE, PRUEFUNG, PTAG → PJAHR, PMONAT, PVERSION

PNOTE, PRUEFUNG, PTAG, PVERMERK → GESCHL

PNOTE, PRUEFUNG, PTAG, PVERSION → GESCHL, PSEM

PNOTE, PRUEFUNG, PTAG, SEM → BONUS, GESCHL, PSEM

PNOTE, PRUEFUNG, PTAG, STAAT → BONUS, PSEM

PNOTE, PRUEFUNG, PTAG, VERSUCH → GESCHL

PNOTE, PRUEFUNG, PVERMERK, STAAT → PNR

PNOTE, PRUEFUNG, SEM → PNR

78

Page 79: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PNOTE, PRUEFUNG, STAAT → GESCHL

PNOTE, PSEM → PJAHR

PNOTE, PSEM, PSTATUS, SEM → ABSCHL

PNOTE, PSEM, PSTATUS, STAAT → GESCHL

PNOTE, PSEM, PTAG → ABSCHL

PNOTE, PSEM, PTAG, SEM → GESCHL, PMONAT

PNOTE, PSEM, PVERMERK, STAAT → GESCHL

PNOTE, PSEM, PVERSION, STAAT → GESCHL

PNOTE, PSEM, SEM, STAAT → ABSCHL

PNOTE, PSEM, STAAT, VERSUCH → GESCHL

PNOTE, PSTATUS, PTAG, SEM → ABSCHL

PNOTE, PSTATUS, SEM, STAAT → GESCHL

PNOTE, PTAG, PVERMERK, SEM → ABSCHL

PNOTE, PTAG, PVERSION, SEM → ABSCHL

PNOTE, PTAG, SEM, STAAT → ABSCHL

PNOTE, PTAG, SEM, VERSUCH → ABSCHL

PNOTE, PTAG, STAAT → GESCHL

PNOTE, PVERSION, SEM, STAAT → GESCHL

PNR → FREIVERM, ISTKTO, MALUS, PRUEFUNG, PVERMERK, STG, VERSUCH

PNR, PRUEFUNG → ABSCHL

PNR, PRUEFUNG, PTAG, SEM → PSEM

PNR, PSEM → ABSCHL, PJAHR

PNR, PSEM, PTAG → PMONAT

PNR, PSEM, STAAT → GESCHL

PNR, PSTATUS, PTAG, SEM → PSEM

PNR, PSTATUS, PVERMERK, PVERSION → ABSCHL

PNR, PSTATUS, PVERSION, STAAT → GESCHL

PNR, PTAG → ABSCHL, PVERSION

PNR, PTAG, PVERMERK, SEM → PSEM

PNR, PTAG, PVERSION → PJAHR

PNR, PTAG, PVERSION, SEM → PSEM

PNR, PTAG, PVERSION, STAAT → PMONAT

PNR, PTAG, SEM → PJAHR, PMONAT

PNR, PTAG, SEM, STAAT → PSEM

PNR, PTAG, SEM, VERSUCH → PSEM

PNR, PTAG, STAAT → GESCHL

PNR, SEM → ABSCHL

PNR, SEM, STAAT → GESCHL

PNR, STAAT → ABSCHL

PRUEFUNG → FREIVERM, ISTKTO, MALUS, PVERMERK, STG, VERSUCH

PRUEFUNG, PSEM → ABSCHL, PJAHR, PNR

PRUEFUNG, PSEM, PTAG → PMONAT

PRUEFUNG, PSEM, STAAT → GESCHL

79

Page 80: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PRUEFUNG, PSTATUS, PTAG, SEM → PSEM

PRUEFUNG, PSTATUS, PTAG, STAAT → PVERSION

PRUEFUNG, PSTATUS, PVERSION, STAAT → GESCHL

PRUEFUNG, PSTATUS, SEM, STAAT → PNR

PRUEFUNG, PTAG → ABSCHL, PNR

PRUEFUNG, PTAG, PVERSION → PJAHR

PRUEFUNG, PTAG, PVERSION, SEM → PSEM

PRUEFUNG, PTAG, PVERSION, STAAT → PMONAT

PRUEFUNG, PTAG, SEM → PJAHR, PMONAT, PVERSION

PRUEFUNG, PTAG, SEM, STAAT → PSEM

PRUEFUNG, PTAG, STAAT → GESCHL

PRUEFUNG, PVERMERK, SEM, STAAT → PNR

PRUEFUNG, PVERSION → ABSCHL, PNR

PRUEFUNG, SEM → ABSCHL

PRUEFUNG, SEM, STAAT → GESCHL

PRUEFUNG, SEM, STAAT, VERSUCH → PNR

PRUEFUNG, STAAT → ABSCHL

PSEM → FREIVERM, MALUS, PVERMERK, PVERSION, STG, VERSUCH

PSEM, PSTATUS → PJAHR

PSEM, PTAG → PJAHR

PSEM, PTAG, SEM → ABSCHL

PSEM, PTAG, STAAT → GESCHL

PSEM, PVERMERK → PJAHR

PSEM, SEM → PJAHR

PSEM, SEM, STAAT → GESCHL

PSTATUS → FREIVERM, ISTKTO, MALUS, PVERMERK, STG, VERSUCH

PSTATUS, PTAG, PVERSION, SEM → ABSCHL

PSTATUS, PTAG, PVERSION, STAAT → GESCHL

PTAG → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

PTAG, PVERMERK, PVERSION, SEM → ABSCHL

PTAG, PVERSION, SEM, STAAT → ABSCHL

PTAG, SEM, STAAT → GESCHL

PVERMERK → FREIVERM, MALUS, STG, VERSUCH

PVERSION → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

SEM → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

STAAT → FREIVERM, MALUS, PVERMERK, STG, VERSUCH

STG → MALUS, PVERMERK, VERSUCH

VERSUCH → FREIVERM, MALUS, PVERMERK, STG

80

Page 81: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

B.2.2 W-Fehlermaß mit ε = 0.1

BONUS → FREIVER, ISTKTO

BONUS, FREIVERM, MNR, PMONAT → PSTATUS, PVERSION

BONUS, FREIVERM, MNR, PNOTE → PSTATUS, PVERSION

BONUS, FREIVERM, MNR, PTAG → PMONAT, PNOTE, PSEM, PSTATUS, SEM

BONUS, FREIVERM, PJAHR, PRUEFUNG → MALUS

BONUS, FREIVERM, PMONAT, PRUEFUNG → PNR

BONUS, FREIVERM, PNOTE, PNR → ABSCHL

BONUS, FREIVERM, PNOTE, PRUEFUNG → ABSCHL

BONUS, FREIVERM, PNOTE, PTAG → PSTATUS

BONUS, FREIVERM, PNR, STAAT → ABSCHL

BONUS, FREIVERM, PRUEFUNG → PSTATUS

BONUS, FREIVERM, PRUEFUNG, PSEM → MALUS

BONUS, FREIVERM, PRUEFUNG, SEM → ABSCHL, PNR

BONUS, FREIVERM, PSEM, STAAT → PVERSION

BONUS, GESCHL, PJAHR, PNR → MALUS

BONUS, GESCHL, PJAHR, PRUEFUNG → MALUS

BONUS, GESCHL, PJAHR, PTAG → PVERSION

BONUS, GESCHL, PJAHR, SEM → PVERSION

BONUS, GESCHL, PMONAT, PRUEFUNG → PNR

BONUS, GESCHL, PNOTE, PNR → ABSCHL

BONUS, GESCHL, PNOTE, PRUEFUNG → ABSCHL

BONUS, GESCHL, PNOTE, PVERSION → ABSCHL

BONUS, GESCHL, PNOTE, STAAT → ABSCHL

BONUS, GESCHL, PNR, STAAT → ABSCHL

BONUS, GESCHL, PRUEFUNG → PSTATUS

BONUS, GESCHL, PRUEFUNG, PSEM → MALUS

BONUS, GESCHL, PRUEFUNG, SEM → ABSCHL

BONUS, GESCHL, PSEM, PVERSION → PJAHR

BONUS, GESCHL, PSEM, SEM → MALUS

BONUS, GESCHL, PSEM, STAAT → PVERSION

BONUS, ISTKTO, MNR, PJAHR → PSTATUS

BONUS, ISTKTO, MNR, PMONAT → PSTATUS, PVERSION

BONUS, ISTKTO, MNR, PNOTE → PSTATUS, PVERSION

BONUS, ISTKTO, MNR, PSEM → PSTATUS

BONUS, ISTKTO, MNR, PTAG → PMONAT, PNOTE, PSEM, PSTATUS, SEM

BONUS, ISTKTO, MNR, PVERSION → PSTATUS

BONUS, ISTKTO, MNR, SEM → PSTATUS

BONUS, ISTKTO, PNOTE, PTAG → PSTATUS, PVERSION

BONUS, ISTKTO, PNOTE, SEM → PSTATUS

BONUS, ISTKTO, PSEM, STAAT → PVERSION

81

Page 82: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, MALUS → PSTATUS

BONUS, MALUS, MNR, PMONAT → PVERSION

BONUS, MALUS, MNR, PTAG → PMONAT, PNOTE, PSEM, SEM

BONUS, MALUS, PMONAT, PRUEFUNG → PNR

BONUS, MALUS, PRUEFUNG, SEM → PNR

BONUS, MNR → ABSCHL, MALUS

BONUS, MNR, PJAHR, PNOTE → PSEM, PSTATUS, SEM

BONUS, MNR, PJAHR, PTAG → PMONAT, PNOTE, PSEM, PSTATUS, SEM

BONUS, MNR, PMONAT, PNOTE → PJAHR, PSEM, PSTATUS, PVERSION, SEM

BONUS, MNR, PMONAT, PSEM → PSTATUS

BONUS, MNR, PMONAT, PSTATUS → PVERSION

BONUS, MNR, PMONAT, PTAG → PNOTE, PSEM, PSTATUS, SEM

BONUS, MNR, PMONAT, PVERSION → PJAHR, PSEM, SEM

BONUS, MNR, PMONAT, SEM → PSTATUS

BONUS, MNR, PNOTE, PSEM → PMONAT, PSTATUS

BONUS, MNR, PNOTE, PSTATUS → PVERSION

BONUS, MNR, PNOTE, PTAG → PSTATUS

BONUS, MNR, PNOTE, SEM → PSTATUS

BONUS, MNR, PNOTE, VERSUCH → PVERSION

BONUS, MNR, PNR → PJAHR, PMONAT, PNOTE, PSEM, PTAG, SEM

BONUS, MNR, PRUEFUNG → PJAHR, PMONAT, PNOTE, PSEM, PSTATUS, PTAG, SEM

BONUS, MNR, PSEM → PJAHR, SEM

BONUS, MNR, PSEM, PTAG → PNOTE, PSTATUS

BONUS, MNR, PSTATUS, PTAG → PMONAT, PNOTE, PSEM, SEM

BONUS, MNR, PTAG → PJAHR, PVERSION

BONUS, MNR, PTAG, PVERSION → PMONAT, PNOTE, PSEM, PSTATUS, SEM

BONUS, MNR, PTAG, SEM → PNOTE, PSTATUS

BONUS, MNR, PTAG, VERSUCH → PMONAT, PNOTE, PSEM, PSTATUS, SEM

BONUS, MNR, SEM → PJAHR, PSEM, PVERSION

BONUS, PJAHR, PMONAT → PSEM

BONUS, PJAHR, PMONAT, PNR → ABSCHL

BONUS, PJAHR, PMONAT, PRUEFUNG → PVERSION

BONUS, PJAHR, PMONAT, PTAG → ABSCHL, PVERSION

BONUS, PJAHR, PMONAT, SEM → ABSCHL, MALUS, PVERSION

BONUS, PJAHR, PMONAT, STAAT → MALUS, PVERSION

BONUS, PJAHR, PNOTE → ABSCHL, PVERSION

BONUS, PJAHR, PNOTE, PTAG → PSEM, PSTATUS

BONUS, PJAHR, PNOTE, SEM → PSEM

BONUS, PJAHR, PNOTE, STAAT → GESCHL

BONUS, PJAHR, PNR, PTAG → PMONAT, PSEM

BONUS, PJAHR, PNR, PVERSION → MALUS

BONUS, PJAHR, PNR, SEM → PSEM

BONUS, PJAHR, PRUEFUNG → PNR, PSTATUS

82

Page 83: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PJAHR, PRUEFUNG, PSEM → MALUS

BONUS, PJAHR, PRUEFUNG, PTAG → PMONAT, PSEM, PVERSION

BONUS, PJAHR, PRUEFUNG, PVERSION → MALUS

BONUS, PJAHR, PRUEFUNG, SEM → PSEM

BONUS, PJAHR, PRUEFUNG, STAAT → ABSCHL

BONUS, PJAHR, PSEM, STAAT → PVERSION

BONUS, PJAHR, PSTATUS, PTAG → PVERSION

BONUS, PJAHR, PTAG → MALUS

BONUS, PJAHR, PTAG, SEM → ABSCHL, PSEM, PVERSION

BONUS, PJAHR, PTAG, STAAT → ABSCHL, PVERSION

BONUS, PJAHR, SEM, STAAT → ABSCHL, MALUS, PSEM, PVERSION

BONUS, PMONAT, PNOTE → ABSCHL

BONUS, PMONAT, PNOTE, PNR → PVERSION

BONUS, PMONAT, PNOTE, PTAG → PJAHR, PSEM, PSTATUS, PVERSION

BONUS, PMONAT, PNOTE, STAAT → GESCHL

BONUS, PMONAT, PNR → MALUS

BONUS, PMONAT, PNR, PSEM → ABSCHL

BONUS, PMONAT, PNR, PTAG → PJAHR, PSEM

BONUS, PMONAT, PNR, SEM → PVERSION

BONUS, PMONAT, PNR, STAAT → ABSCHL, PVERSION

BONUS, PMONAT, PRUEFUNG → MALUS, PSTATUS

BONUS, PMONAT, PRUEFUNG, PSTATUS → PNR

BONUS, PMONAT, PRUEFUNG, PTAG → PJAHR, PSEM, PVERSION

BONUS, PMONAT, PRUEFUNG, SEM → PNR

BONUS, PMONAT, PRUEFUNG, STAAT → ABSCHL

BONUS, PMONAT, PRUEFUNG, VERSUCH → PNR

BONUS, PMONAT, PSEM → PJAHR

BONUS, PMONAT, PSEM, PTAG → ABSCHL

BONUS, PMONAT, PSEM, SEM → ABSCHL, MALUS

BONUS, PMONAT, PSEM, STAAT → MALUS, PVERSION

BONUS, PMONAT, PTAG → MALUS

BONUS, PMONAT, PTAG, PVERSION → ABSCHL, PJAHR, PSEM

BONUS, PMONAT, PTAG, SEM → ABSCHL

BONUS, PMONAT, PTAG, STAAT → ABSCHL

BONUS, PMONAT, PVERSION, SEM → MALUS

BONUS, PMONAT, SEM, STAAT → ABSCHL, MALUS

BONUS, PNOTE → MALUS

BONUS, PNOTE, PNR, PSEM → PMONAT

BONUS, PNOTE, PNR, PTAG → GESCHL, PJAHR, PMONAT, PSEM

BONUS, PNOTE, PNR, PVERSION → ABSCHL

BONUS, PNOTE, PNR, SEM → PVERSION

BONUS, PNOTE, PNR, STAAT → ABSCHL, PVERSION

BONUS, PNOTE, PNR, VERSUCH → ABSCHL

83

Page 84: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PNOTE, PRUEFUNG → PNR

BONUS, PNOTE, PRUEFUNG, PTAG → PJAHR, PMONAT, PSEM, PVERSION

BONUS, PNOTE, PRUEFUNG, PVERSION → ABSCHL

BONUS, PNOTE, PRUEFUNG, STAAT → ABSCHL

BONUS, PNOTE, PSEM → ABSCHL, PJAHR, PVERSION

BONUS, PNOTE, PSEM, PTAG → PMONAT, PSTATUS

BONUS, PNOTE, PSEM, STAAT → GESCHL

BONUS, PNOTE, PSTATUS, PVERSION → ABSCHL

BONUS, PNOTE, PSTATUS, STAAT → ABSCHL

BONUS, PNOTE, PTAG → ABSCHL

BONUS, PNOTE, PTAG, SEM → PSTATUS

BONUS, PNOTE, PTAG, STAAT → GESCHL

BONUS, PNOTE, PVERSION, STAAT → ABSCHL

BONUS, PNOTE, SEM → ABSCHL

BONUS, PNOTE, SEM, STAAT → GESCHL

BONUS, PNOTE, STAAT, VERSUCH → ABSCHL

BONUS, PNR → PSTATUS

BONUS, PNR, PSEM → MALUS, PJAHR

BONUS, PNR, PSEM, PTAG → PMONAT

BONUS, PNR, PTAG → ABSCHL, PVERSION

BONUS, PNR, PTAG, PVERSION → PJAHR, PMONAT, PSEM

BONUS, PNR, PTAG, SEM → PJAHR, PMONAT, PSEM

BONUS, PNR, PTAG, STAAT → PJAHR, PMONAT, PSEM

BONUS, PNR, PVERMERK, STAAT → ABSCHL

BONUS, PNR, PVERSION, STAAT → ABSCHL

BONUS, PNR, SEM → ABSCHL, MALUS

BONUS, PNR, STAAT → MALUS

BONUS, PRUEFUNG, PSEM → PJAHR, PNR, PSTATUS, PVERSION

BONUS, PRUEFUNG, PSEM, PTAG → PMONAT

BONUS, PRUEFUNG, PSEM, PVERSION → MALUS

BONUS, PRUEFUNG, PSEM, VERSUCH → MALUS

BONUS, PRUEFUNG, PSTATUS, SEM → ABSCHL

BONUS, PRUEFUNG, PTAG → ABSCHL, MALUS, PNR, PSTATUS

BONUS, PRUEFUNG, PTAG, PVERSION → PJAHR, PMONAT, PSEM

BONUS, PRUEFUNG, PTAG, SEM → PJAHR, PMONAT, PSEM, PVERSION

BONUS, PRUEFUNG, PTAG, STAAT → PJAHR, PMONAT, PSEM, PVERSION

BONUS, PRUEFUNG, PVERMERK, SEM → ABSCHL

BONUS, PRUEFUNG, PVERMERK, VERSUCH → PSTATUS

BONUS, PRUEFUNG, PVERSION → PSTATUS

BONUS, PRUEFUNG, PVERSION, SEM → ABSCHL

BONUS, PRUEFUNG, PVERSION, STAAT → ABSCHL

BONUS, PRUEFUNG, SEM → MALUS, PSTATUS

BONUS, PRUEFUNG, SEM, VERSUCH → ABSCHL

84

Page 85: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

BONUS, PRUEFUNG, STAAT → MALUS, PNR, PSTATUS

BONUS, PSEM, PSTATUS, SEM → MALUS

BONUS, PSEM, PSTATUS, STAAT → PVERSION

BONUS, PSEM, PTAG → MALUS, PJAHR, PVERSION

BONUS, PSEM, PTAG, SEM → ABSCHL

BONUS, PSEM, PTAG, STAAT → ABSCHL

BONUS, PSEM, PVERMERK, STAAT → PVERSION

BONUS, PSEM, SEM → PJAHR, PVERSION

BONUS, PSEM, SEM, STAAT → ABSCHL, MALUS

BONUS, PSEM, STAAT → PJAHR

BONUS, PSEM, STAAT, VERSUCH → PVERSION

BONUS, PSTATUS, PTAG, SEM → ABSCHL

BONUS, PTAG, PVERSION → MALUS

BONUS, PTAG, PVERSION, SEM → ABSCHL

BONUS, PTAG, PVERSION, STAAT → ABSCHL

BONUS, PTAG, SEM → MALUS

BONUS, PTAG, SEM, STAAT → ABSCHL

BONUS, PTAG, STAAT → MALUS

BONUS, PVERSION, SEM, STAAT → ABSCHL, MALUS

FREIVERM → STG

FREIVERM, GESCHL, PMONAT, PSEM → PJAHR

FREIVERM, GESCHL, PMONAT, PSTATUS → PVERMERK

FREIVERM, GESCHL, PMONAT, PTAG → PVERMERK

FREIVERM, GESCHL, PNR, PRUEFUNG → VERSUCH

FREIVERM, GESCHL, PNR, PSTATUS → VERSUCH

FREIVERM, GESCHL, PNR, STAAT → ABSCHL

FREIVERM, GESCHL, PRUEFUNG, SEM → ABSCHL, MALUS

FREIVERM, GESCHL, PRUEFUNG, STAAT → ABSCHL

FREIVERM, GESCHL, PSEM, PTAG → PVERMERK

FREIVERM, GESCHL, PSTATUS → ISTKTO

FREIVERM, GESCHL, PSTATUS, PTAG → PVERMERK

FREIVERM, GESCHL, SEM, STAAT → PVERMERK

FREIVERM, ISTKTO, MNR, PJAHR → VERSUCH

FREIVERM, ISTKTO, MNR, SEM → PSEM

FREIVERM, ISTKTO, PJAHR, STAAT → PVERMERK

FREIVERM, ISTKTO, PMONAT, PSEM → PVERMERK

FREIVERM, ISTKTO, PMONAT, PTAG → PVERMERK

FREIVERM, ISTKTO, PMONAT, SEM → PVERMERK

FREIVERM, ISTKTO, PSEM, PTAG → PVERMERK

FREIVERM, ISTKTO, SEM, STAAT → PVERMERK

FREIVERM, MALUS → ISTKTO

FREIVERM, MALUS, MNR, PNR → PNOTE

FREIVERM, MALUS, MNR, SEM → PSEM

85

Page 86: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, MALUS, PRUEFUNG, PTAG → PNR

FREIVERM, MALUS, PRUEFUNG, STAAT → PNR

FREIVERM, MNR → PVERMERK

FREIVERM, MNR, PJAHR, PMONAT → MALUS

FREIVERM, MNR, PJAHR, PNR → BONUS

FREIVERM, MNR, PJAHR, PRUEFUNG → BONUS

FREIVERM, MNR, PJAHR, PSEM → SEM

FREIVERM, MNR, PJAHR, PTAG → PMONAT, PSEM, SEM

FREIVERM, MNR, PMONAT → ABSCHL, VERSUCH

FREIVERM, MNR, PMONAT, PNOTE → PVERSION

FREIVERM, MNR, PMONAT, PSEM → MALUS

FREIVERM, MNR, PMONAT, PSTATUS → MALUS

FREIVERM, MNR, PMONAT, PTAG → PSEM, SEM

FREIVERM, MNR, PMONAT, SEM → MALUS

FREIVERM, MNR, PNOTE → ABSCHL

FREIVERM, MNR, PNOTE, PTAG → PSTATUS

FREIVERM, MNR, PNR → PSTATUS

FREIVERM, MNR, PNR, PSTATUS → PJAHR

FREIVERM, MNR, PRUEFUNG → PSTATUS

FREIVERM, MNR, PRUEFUNG, PSTATUS → PJAHR

FREIVERM, MNR, PSEM → VERSUCH

FREIVERM, MNR, PSEM, PSTATUS → SEM

FREIVERM, MNR, PSTATUS, PVERSION → VERSUCH

FREIVERM, MNR, PSTATUS, SEM → PSEM

FREIVERM, MNR, PTAG → ABSCHL, MALUS

FREIVERM, MNR, PVERMERK, SEM → PSEM

FREIVERM, MNR, SEM → ABSCHL, PVERSION, VERSUCH

FREIVERM, MNR, SEM, VERSUCH → PSEM

FREIVERM, PJAHR, PMONAT, PRUEFUNG → PNR

FREIVERM, PJAHR, PMONAT, PTAG → PVERMERK, PSEM

FREIVERM, PJAHR, PMONAT, SEM → PVERMERK

FREIVERM, PJAHR, PMONAT, STAAT → PSEM

FREIVERM, PJAHR, PNOTE, STAAT → MALUS

FREIVERM, PJAHR, PNR →FREIVERM, PJAHR, PNR → MALUS, VERSUCH

FREIVERM, PJAHR, PNR, PTAG → PSEM

FREIVERM, PJAHR, PRUEFUNG → VERSUCH

FREIVERM, PJAHR, PRUEFUNG, PSEM → MALUS

FREIVERM, PJAHR, PRUEFUNG, PTAG → PVERSION

FREIVERM, PJAHR, PRUEFUNG, PVERSION → MALUS

FREIVERM, PJAHR, PRUEFUNG, SEM → MALUS

FREIVERM, PJAHR, PRUEFUNG, STAAT → ABSCHL

FREIVERM, PJAHR, PSEM, PTAG → PVERMERK

86

Page 87: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, PJAHR, PSEM, SEM → PVERMERK

FREIVERM, PJAHR, PSTATUS, SEM → PVERMERK

FREIVERM, PJAHR, PTAG, SEM → PVERMERK

FREIVERM, PJAHR, PTAG, STAAT → PVERSION, VERSUCH

FREIVERM, PJAHR, PVERSION, STAAT → PVERMERK

FREIVERM, PJAHR, SEM, STAAT → PVERMERK, PVERSION

FREIVERM, PJAHR, STAAT, VERSUCH → PVERMERK

FREIVERM, PMONAT, PNOTE, PNR → ABSCHL

FREIVERM, PMONAT, PNOTE, PRUEFUNG → PNR

FREIVERM, PMONAT, PNOTE, STAAT → MALUS

FREIVERM, PMONAT, PNR → MALUS

FREIVERM, PMONAT, PNR, PTAG → PJAHR

FREIVERM, PMONAT, PNR, SEM → PVERSION

FREIVERM, PMONAT, PNR, STAAT → ABSCHL, PSTATUS, PVERSION

FREIVERM, PMONAT, PRUEFUNG → MALUS, VERSUCH

FREIVERM, PMONAT, PRUEFUNG, PSEM → PNR, PVERSION

FREIVERM, PMONAT, PRUEFUNG, PTAG → PJAHR

FREIVERM, PMONAT, PRUEFUNG, SEM → PNR

FREIVERM, PMONAT, PRUEFUNG, STAAT → ABSCHL, PSTATUS

FREIVERM, PMONAT, PSEM, PSTATUS → PJAHR

FREIVERM, PMONAT, PSEM, PTAG → PVERMERK

FREIVERM, PMONAT, PSEM, PVERSION → PJAHR, PVERMERK

FREIVERM, PMONAT, PSEM, SEM → PJAHR, PVERMERK

FREIVERM, PMONAT, PSEM, VERSUCH → PJAHR

FREIVERM, PMONAT, PSTATUS → ISTKTO

FREIVERM, PMONAT, PSTATUS, PVERSION → PVERMERK

FREIVERM, PMONAT, PSTATUS, VERSUCH → PVERMERK

FREIVERM, PMONAT, PTAG, PVERSION → PVERMERK

FREIVERM, PMONAT, PTAG, STAAT → VERSUCH

FREIVERM, PMONAT, PTAG, VERSUCH → PVERMERK

FREIVERM, PMONAT, PVERSION, SEM → PVERMERK

FREIVERM, PMONAT, STAAT → PVERMERK

FREIVERM, PNOTE, PNR, PSEM → ABSCHL

FREIVERM, PNOTE, PNR, PTAG → PJAHR, PMONAT

FREIVERM, PNOTE, PNR, STAAT → ABSCHL

FREIVERM, PNOTE, PRUEFUNG, PSEM → ABSCHL

FREIVERM, PNOTE, PRUEFUNG, PTAG → PVERSION

FREIVERM, PNOTE, PRUEFUNG, SEM → PNR

FREIVERM, PNOTE, PRUEFUNG, STAAT → ABSCHL, PNR

FREIVERM, PNOTE, PSEM, STAAT → MALUS

FREIVERM, PNOTE, SEM, STAAT → MALUS

FREIVERM, PNR → PVERMERK

FREIVERM, PNR, PRUEFUNG, STAAT → ABSCHL

87

Page 88: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, PNR, PSEM → MALUS, VERSUCH

FREIVERM, PNR, PSEM, SEM → PJAHR

FREIVERM, PNR, PSEM, STAAT → PSTATUS

FREIVERM, PNR, PSTATUS → BONUS, MALUS

FREIVERM, PNR, PSTATUS, STAAT → ABSCHL

FREIVERM, PNR, PTAG → PVERSION

FREIVERM, PNR, PTAG, STAAT → PSTATUS

FREIVERM, PNR, PVERMERK, PVERSION → MALUS

FREIVERM, PNR, PVERMERK, STAAT → ABSCHL

FREIVERM, PNR, PVERMERK, VERSUCH → MALUS

FREIVERM, PNR, PVERSION, STAAT → ABSCHL

FREIVERM, PNR, SEM → ABSCHL, MALUS

FREIVERM, PNR, SEM, STAAT → PSTATUS, PVERSION

FREIVERM, PNR, STAAT → MALUS

FREIVERM, PNR, STAAT, VERSUCH → ABSCHL

FREIVERM, PRUEFUNG → PVERMERK

FREIVERM, PRUEFUNG, PSEM → VERSUCH

FREIVERM, PRUEFUNG, PSEM, PVERSION → MALUS

FREIVERM, PRUEFUNG, PSEM, SEM → PJAHR

FREIVERM, PRUEFUNG, PSTATUS → BONUS, MALUS

FREIVERM, PRUEFUNG, PSTATUS, SEM → ABSCHL

FREIVERM, PRUEFUNG, PTAG → MALUS

FREIVERM, PRUEFUNG, PTAG, STAAT → PSTATUS, PVERSION

FREIVERM, PRUEFUNG, PVERMERK, PVERSION → MALUS

FREIVERM, PRUEFUNG, PVERMERK, SEM → ABSCHL, MALUS

FREIVERM, PRUEFUNG, PVERMERK, STAAT → ABSCHL, PNR

FREIVERM, PRUEFUNG, PVERSION, SEM → ABSCHL, MALUS

FREIVERM, PRUEFUNG, PVERSION, STAAT → ABSCHL

FREIVERM, PRUEFUNG, SEM, STAAT → PSTATUS

FREIVERM, PRUEFUNG, SEM, VERSUCH → ABSCHL

FREIVERM, PRUEFUNG, STAAT → MALUS

FREIVERM, PSEM, PSTATUS → ISTKTO

FREIVERM, PSEM, PSTATUS, SEM → PVERMERK

FREIVERM, PSEM, PTAG, PVERSION → PVERMERK

FREIVERM, PSEM, PTAG, SEM → PVERMERK

FREIVERM, PSEM, PTAG, STAAT → PVERSION, VERSUCH

FREIVERM, PSEM, PVERMERK, STAAT → PVERSION

FREIVERM, PSEM, STAAT → PVERMERK

FREIVERM, PSTATUS, PTAG → ISTKTO

FREIVERM, PSTATUS, PTAG, PVERSION → PVERMERK

FREIVERM, PSTATUS, PTAG, STAAT → VERSUCH

FREIVERM, PSTATUS, PTAG, VERSUCH → PVERMERK

FREIVERM, PSTATUS, PVERSION → ISTKTO

88

Page 89: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

FREIVERM, PSTATUS, STAAT → PVERMERK

FREIVERM, PTAG, PVERSION, SEM → PVERMERK

FREIVERM, PTAG, SEM, STAAT → VERSUCH

FREIVERM, PTAG, STAAT → PVERMERK

FREIVERM, PVERSION, SEM, STAAT → PVERMERK

FREIVERM, SEM, STAAT, VERSUCH → PVERMERK

FREIVERM, VERSUCH → ISTKTO

GESCHL → STG

GESCHL, PJAHR, PMONAT, PRUEFUNG → PNR

GESCHL, PJAHR, PMONAT, PTAG → PSEM, PVERMERK

GESCHL, PJAHR, PMONAT, STAAT → PSEM

GESCHL, PJAHR, PNR → PVERMERK

GESCHL, PJAHR, PNR, PSEM → VERSUCH

GESCHL, PJAHR, PNR, PSTATUS → BONUS

GESCHL, PJAHR, PRUEFUNG, PTAG → PVERSION

GESCHL, PJAHR, PRUEFUNG, SEM → MALUS

GESCHL, PJAHR, PRUEFUNG, STAAT → ABSCHL

GESCHL, PJAHR, PRUEFUNG, VERSUCH → PVERMERK

GESCHL, PJAHR, PSTATUS, SEM → PVERMERK

GESCHL, PJAHR, PTAG, SEM → PVERMERK

GESCHL, PJAHR, SEM, STAAT → PVERSION

GESCHL, PMONAT, PNOTE, PNR → ABSCHL

GESCHL, PMONAT, PNR, PTAG → PJAHR

GESCHL, PMONAT, PNR, PVERSION → FREIVERM

GESCHL, PMONAT, PNR, STAAT → ABSCHL

GESCHL, PMONAT, PNR, VERSUCH → FREIVERM

GESCHL, PMONAT, PRUEFUNG → VERSUCH

GESCHL, PMONAT, PRUEFUNG, PSEM → PNR

GESCHL, PMONAT, PRUEFUNG, PVERSION → FREIVERM

GESCHL, PMONAT, PRUEFUNG, STAAT → ABSCHL

GESCHL, PMONAT, PSEM, PSTATUS → PJAHR

GESCHL, PMONAT, PSEM, PTAG → PVERMERK

GESCHL, PMONAT, PSEM, SEM → PJAHR

GESCHL, PMONAT, PSTATUS, PTAG → FREIVERM

GESCHL, PMONAT, PSTATUS, PVERSION → PVERMERK

GESCHL, PMONAT, PSTATUS, VERSUCH → PVERMERK

GESCHL, PNOTE, PNR, PSEM → ABSCHL

GESCHL, PNOTE, PNR, PTAG → PJAHR, PMONAT

GESCHL, PNOTE, PNR, STAAT → ABSCHL

GESCHL, PNOTE, PRUEFUNG, PSEM → ABSCHL

GESCHL, PNOTE, PRUEFUNG, PTAG → PJAHR, PMONAT, PVERSION

GESCHL, PNOTE, PRUEFUNG, SEM → PNR

GESCHL, PNOTE, PRUEFUNG, STAAT → ABSCHL, PNR

89

Page 90: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

GESCHL, PNOTE, PSEM, STAAT → MALUS

GESCHL, PNOTE, PTAG, PVERSION → MALUS

GESCHL, PNR, PRUEFUNG, PSTATUS → FREIVERM

GESCHL, PNR, PRUEFUNG, PTAG → PVERSION

GESCHL, PNR, PRUEFUNG, SEM → FREIVERM, MALUS

GESCHL, PNR, PRUEFUNG, STAAT → MALUS

GESCHL, PNR, PSEM, PTAG → PMONAT

GESCHL, PNR, PSEM, SEM → PJAHR

GESCHL, PNR, PSTATUS → MALUS

GESCHL, PNR, PSTATUS, PVERSION → FREIVERM

GESCHL, PNR, PSTATUS, STAAT → ABSCHL

GESCHL, PNR, PSTATUS, VERSUCH → FREIVERM

GESCHL, PNR, PVERMERK, STAAT → ABSCHL

GESCHL, PNR, PVERSION, SEM → ABSCHL, FREIVERM

GESCHL, PNR, PVERSION, STAAT → ABSCHL

GESCHL, PNR, SEM, STAAT → PVERSION

GESCHL, PNR, SEM, VERSUCH → FREIVERM

GESCHL, PNR, STAAT, VERSUCH → MALUS

GESCHL, PRUEFUNG, PSEM → PVERMERK

GESCHL, PRUEFUNG, PSEM, PTAG → PMONAT

GESCHL, PRUEFUNG, PSEM, SEM → PJAHR

GESCHL, PRUEFUNG, PSTATUS, PVERSION → FREIVERM

GESCHL, PRUEFUNG, PSTATUS, SEM → ABSCHL

GESCHL, PRUEFUNG, PSTATUS, VERSUCH → FREIVERM

GESCHL, PRUEFUNG, PVERMERK, SEM → ABSCHL, FREIVERM, MALUS

GESCHL, PRUEFUNG, PVERMERK, STAAT → ABSCHL

GESCHL, PRUEFUNG, PVERSION, SEM → ABSCHL, FREIVERM

GESCHL, PRUEFUNG, PVERSION, STAAT → ABSCHL, MALUS

GESCHL, PSEM, PSTATUS, PTAG → FREIVERM

GESCHL, PSEM, PSTATUS, SEM → PVERMERK

GESCHL, PSEM, PTAG, SEM → PVERMERK

GESCHL, PSEM, PTAG, STAAT → FREIVERM, PVERSION

GESCHL, PSEM, PVERMERK, STAAT → PVERSION

GESCHL, PSTATUS, PTAG, PVERSION → PVERMERK

GESCHL, PSTATUS, PTAG, SEM → FREIVERM

GESCHL, PSTATUS, STAAT, VERSUCH → FREIVERM

GESCHL, PTAG, STAAT, VERSUCH → PVERMERK

GESCHL, PVERMERK, VERSUCH → ISTKTO

ISTKTO → STG

ISTKTO, MALUS → PSTATUS

ISTKTO, MALUS, MNR, SEM → PSEM

ISTKTO, MNR, PJAHR, PMONAT → MALUS

ISTKTO, MNR, PJAHR, PNOTE → PSTATUS

90

Page 91: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

ISTKTO, MNR, PJAHR, PSEM → SEM

ISTKTO, MNR, PJAHR, PTAG → PSEM, PSTATUS, SEM

ISTKTO, MNR, PJAHR, SEM → FREIVERM

ISTKTO, MNR, PMONAT → VERSUCH

ISTKTO, MNR, PMONAT, PNOTE → PSTATUS

ISTKTO, MNR, PMONAT, PSEM → MALUS

ISTKTO, MNR, PMONAT, PSTATUS → MALUS

ISTKTO, MNR, PMONAT, PTAG → PSEM, PSTATUS, SEM

ISTKTO, MNR, PMONAT, SEM → MALUS

ISTKTO, MNR, PMONAT, VERSUCH → FREIVERM

ISTKTO, MNR, PNOTE, PSEM → PSTATUS

ISTKTO, MNR, PNOTE, PTAG → PSTATUS

ISTKTO, MNR, PNOTE, SEM → PSTATUS

ISTKTO, MNR, PSEM → FREIVERM, VERSUCH

ISTKTO, MNR, PSEM, PSTATUS → SEM

ISTKTO, MNR, PSEM, PTAG → PSTATUS

ISTKTO, MNR, PTAG → ABSCHL, MALUS

ISTKTO, MNR, PTAG, SEM → PSTATUS

ISTKTO, MNR, PVERMERK, SEM → FREIVERM

ISTKTO, MNR, PVERSION, SEM → FREIVERM

ISTKTO, MNR, PVERSION, VERSUCH → PVERMERK

ISTKTO, MNR, SEM → VERSUCH

ISTKTO, PJAHR, PMONAT, PTAG → PSEM, PVERMERK

ISTKTO, PJAHR, PMONAT, SEM → PVERMERK

ISTKTO, PJAHR, PMONAT, STAAT → FREIVERM, PSEM

ISTKTO, PJAHR, PNOTE, STAAT → MALUS

ISTKTO, PJAHR, PSEM, STAAT → PVERMERK

ISTKTO, PJAHR, PSTATUS, SEM → PVERMERK

ISTKTO, PJAHR, PTAG, SEM → PVERMERK

ISTKTO, PJAHR, PTAG, STAAT → FREIVERM, VERSUCH

ISTKTO, PJAHR, SEM, STAAT → PVERMERK

ISTKTO, PMONAT, PNOTE, STAAT → MALUS

ISTKTO, PMONAT, PSEM, PTAG → PVERMERK

ISTKTO, PMONAT, PSEM, SEM → PJAHR, PVERMERK

ISTKTO, PMONAT, PSEM, STAAT → FREIVERM, VERSUCH

ISTKTO, PMONAT, PSTATUS, PVERSION → PVERMERK

ISTKTO, PMONAT, PTAG, PVERSION → PVERMERK

ISTKTO, PMONAT, PTAG, STAAT → FREIVERM, VERSUCH

ISTKTO, PMONAT, SEM, STAAT → FREIVERM

ISTKTO, PMONAT, STAAT → PVERMERK

ISTKTO, PNOTE, PSEM, STAAT → MALUS

ISTKTO, PNOTE, PTAG, PVERSION → MALUS

ISTKTO, PNOTE, SEM, STAAT → MALUS

91

Page 92: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

ISTKTO, PSEM, PSTATUS, SEM → PVERMERK

ISTKTO, PSEM, PTAG, SEM → PVERMERK

ISTKTO, PSEM, PTAG, STAAT → FREIVERM, VERSUCH

ISTKTO, PSEM, SEM, STAAT → PVERMERK

ISTKTO, PSTATUS, PTAG, SEM → FREIVERM

ISTKTO, PSTATUS, PTAG, STAAT → VERSUCH

ISTKTO, PSTATUS, PVERSION, STAAT → FREIVERM

ISTKTO, PSTATUS, STAAT, VERSUCH → FREIVERM

ISTKTO, PTAG, PVERSION, STAAT → FREIVERM

ISTKTO, PTAG, SEM, STAAT → FREIVERM, VERSUCH

ISTKTO, PTAG, STAAT → PVERMERK

MALUS → FREIVERM, PVERMERK, STG, VERSUCH

MALUS, MNR → ABSCHL

MALUS, MNR, PJAHR, PNR → BONUS, PTAG

MALUS, MNR, PJAHR, PRUEFUNG → BONUS, PTAG

MALUS, MNR, PJAHR, PSEM → SEM

MALUS, MNR, PJAHR, PTAG → PSEM, SEM

MALUS, MNR, PMONAT, PTAG → PSEM, SEM

MALUS, MNR, PNR → PSTATUS

MALUS, MNR, PNR, PSTATUS → PJAHR

MALUS, MNR, PRUEFUNG → PSTATUS

MALUS, MNR, PRUEFUNG, PSTATUS → PJAHR

MALUS, MNR, PSEM, PSTATUS → SEM

MALUS, MNR, PSTATUS, SEM → PSEM

MALUS, MNR, PVERMERK, SEM → PSEM

MALUS, MNR, SEM → PVERSION

MALUS, MNR, SEM, VERSUCH → PSEM

MALUS, PJAHR → ABSCHL, PVERSION

MALUS, PJAHR, PMONAT → PSEM

MALUS, PJAHR, PMONAT, PRUEFUNG → PNR

MALUS, PJAHR, PNR, PTAG → PSEM

MALUS, PJAHR, PRUEFUNG, PTAG → PSEM

MALUS, PMONAT, PNOTE, PNR → PVERSION

MALUS, PMONAT, PNOTE, PRUEFUNG → PNR

MALUS, PMONAT, PNR, PTAG → PJAHR

MALUS, PMONAT, PRUEFUNG, PSEM → PNR

MALUS, PMONAT, PRUEFUNG, PTAG → PJAHR

MALUS, PMONAT, PRUEFUNG, SEM → PNR

MALUS, PNOTE, PNR, PTAG → PJAHR, PMONAT

MALUS, PNOTE, PRUEFUNG, PTAG → PMONAT, PVERSION

MALUS, PNOTE, PRUEFUNG, SEM → PNR

MALUS, PNOTE, PRUEFUNG, STAAT → PNR

MALUS, PNR, PRUEFUNG, PTAG → PVERSION

92

Page 93: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

MALUS, PNR, PSEM, PTAG → PMONAT

MALUS, PRUEFUNG, PTAG, SEM → PVERSION

MALUS, PSEM → ABSCHL, PJAHR, PVERSION

MALUS, PSTATUS → ISTKTO

MALUS, PTAG → ABSCHL

MALUS, PVERMERK, PVERSION → ISTKTO, PSTATUS

MALUS, PVERMERK, SEM → PSTATUS

MALUS, PVERMERK, VERSUCH → PSTATUS

MALUS, PVERSION → ABSCHL

MALUS, SEM → ABSCHL

MALUS, STAAT → ABSCHL

MALUS, VERSUCH → ISTKTO

MNR → GESCHL, STAAT, STG

MNR, PJAHR → ABSCHL, PVERMERK, PVERSION

MNR, PJAHR, PMONAT → FREIVERM, PSEM, SEM, VERSUCH

MNR, PJAHR, PMONAT, PNOTE → BONUS

MNR, PJAHR, PMONAT, PSTATUS → MALUS

MNR, PJAHR, PNR → PNOTE, PSTATUS

MNR, PJAHR, PNR, PSTATUS → PMONAT, PTAG, SEM

MNR, PJAHR, PNR, VERSUCH → BONUS

MNR, PJAHR, PRUEFUNG → PNOTE, PSTATUS

MNR, PJAHR, PRUEFUNG, PSTATUS → PMONAT, PTAG

MNR, PJAHR, PRUEFUNG, VERSUCH → BONUS

MNR, PJAHR, PSEM, PSTATUS → SEM

MNR, PJAHR, PSTATUS → VERSUCH

MNR, PJAHR, PSTATUS, PTAG → ISTKTO, PMONAT, PSEM, SEM

MNR, PJAHR, PTAG → MALUS

MNR, PJAHR, PTAG, PVERSION → PSEM

MNR, PJAHR, PTAG, VERSUCH → PSEM

MNR, PJAHR, PVERMERK, SEM → FREIVERM, VERSUCH

MNR, PJAHR, SEM → PSEM

MNR, PJAHR, SEM, VERSUCH → FREIVERM

MNR, PMONAT → PVERMERK

MNR, PMONAT, PNOTE → ABSCHL

MNR, PMONAT, PNOTE, PSEM → BONUS

MNR, PMONAT, PNOTE, PSTATUS → PVERSION

MNR, PMONAT, PNOTE, SEM → BONUS

MNR, PMONAT, PNR → BONUS, PJAHR, PNOTE, PSEM, PSTATUS, PTAG, SEM

MNR, PMONAT, PRUEFUNG → BONUS, PJAHR, PNOTE, PSEM, PSTATUS, PTAG, SEM

MNR, PMONAT, PSEM → FREIVERM, PJAHR, SEM, VERSUCH

MNR, PMONAT, PSEM, PSTATUS → MALUS

MNR, PMONAT, PSTATUS → VERSUCH

MNR, PMONAT, PSTATUS, PTAG → ISTKTO, PSEM, SEM

93

Page 94: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

MNR, PMONAT, PSTATUS, PVERSION → MALUS

MNR, PMONAT, PSTATUS, SEM → MALUS

MNR, PMONAT, PSTATUS, VERSUCH → MALUS

MNR, PMONAT, PTAG → ABSCHL, MALUS, PJAHR, PVERSION

MNR, PMONAT, PTAG, PVERSION → PSEM, SEM

MNR, PMONAT, PTAG, VERSUCH → PSEM, SEM

MNR, PMONAT, PVERMERK, PVERSION → VERSUCH

MNR, PMONAT, PVERSION → FREIVERM

MNR, PMONAT, SEM → ABSCHL, FREIVERM, PJAHR, PSEM, PVERSION, VERSUCH

MNR, PNOTE → MALUS

MNR, PNOTE, PNR → BONUS, PJAHR, PMONAT, PSEM, PTAG, SEM

MNR, PNOTE, PRUEFUNG → BONUS, PJAHR, PMONAT, PSEM, PTAG, SEM

MNR, PNOTE, PSEM → PJAHR, SEM

MNR, PNOTE, PSEM, PTAG → PSTATUS

MNR, PNOTE, PSTATUS → ABSCHL

MNR, PNOTE, PTAG → ABSCHL, BONUS, PJAHR, PMONAT, PSEM, PVERSION, SEM

MNR, PNOTE, PTAG, SEM → PSTATUS

MNR, PNOTE, SEM → ABSCHL, PJAHR, PSEM, PVERSION

MNR, PNR → ABSCHL, FREIVERM, MALUS, PVERMERK, PVERSION, VERSUCH

MNR, PNR, PSEM → BONUS, PJAHR, PMONAT, PNOTE, PSTATUS, PTAG, SEM

MNR, PNR, PSTATUS → BONUS, PNOTE

MNR, PNR, PSTATUS, PVERSION → PJAHR

MNR, PNR, PTAG → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PSTATUS, SEM

MNR, PNR, PVERMERK, STAAT → PSTATUS

MNR, PNR, PVERSION → PSTATUS

MNR, PNR, SEM → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PSTATUS, PTAG

MNR, PNR, VERSUCH → PSTATUS

MNR, PRUEFUNG → ABSCHL, FREIVERM, MALUS, PNR, PVERMERK, PVERSION, VERSUCH

MNR, PRUEFUNG, PSEM → BONUS, PJAHR, PMONAT, PNOTE, PSTATUS, PTAG, SEM

MNR, PRUEFUNG, PSTATUS → BONUS, PNOTE

MNR, PRUEFUNG, PSTATUS, PVERSION → PJAHR

MNR, PRUEFUNG, PTAG → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PSTATUS, SEM

MNR, PRUEFUNG, PVERMERK, STAAT → PSTATUS

MNR, PRUEFUNG, PVERSION → PSTATUS

MNR, PRUEFUNG, SEM → BONUS, PJAHR, PMONAT, PNOTE, PSEM, PSTATUS, PTAG

MNR, PRUEFUNG, VERSUCH → PSTATUS

MNR, PSEM → ABSCHL, PVERMERK, PVERSION

MNR, PSEM, PSTATUS → VERSUCH

MNR, PSEM, PSTATUS, PTAG → ISTKTO

MNR, PSEM, PSTATUS, VERSUCH → SEM

MNR, PSEM, PTAG → MALUS, PJAHR, PMONAT, SEM

MNR, PSTATUS → FREIVERM, PVERMERK

MNR, PSTATUS, PTAG → ABSCHL, MALUS

94

Page 95: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

MNR, PSTATUS, PTAG, SEM → ISTKTO

MNR, PSTATUS, SEM → ABSCHL, PVERSION, VERSUCH

MNR, PTAG → FREIVERM, PVERMERK, VERSUCH

MNR, PTAG, PVERMERK, VERSUCH → MALUS

MNR, PTAG, PVERSION → MALUS

MNR, PTAG, SEM → ABSCHL, MALUS, PJAHR, PMONAT, PSEM, PVERSION

MNR, PVERMERK, SEM → ABSCHL

MNR, PVERMERK, SEM, VERSUCH → PVERSION

MNR, PVERMERK, STAAT → ABSCHL

MNR, PVERSION → ABSCHL

MNR, PVERSION, SEM → PSEM

MNR, SEM → PVERMERK

MNR, VERSUCH → ABSCHL

PJAHR → STG

PJAHR, PMONAT, PNOTE → PSEM

PJAHR, PMONAT, PNOTE, PNR → ABSCHL

PJAHR, PMONAT, PNOTE, PRUEFUNG → ABSCHL

PJAHR, PMONAT, PNOTE, PSTATUS → MALUS

PJAHR, PMONAT, PNOTE, PTAG → PVERSION

PJAHR, PMONAT, PNOTE, SEM → ABSCHL, MALUS, PVERSION

PJAHR, PMONAT, PNOTE, STAAT → MALUS

PJAHR, PMONAT, PNR → FREIVERM, MALUS, PSEM

PJAHR, PMONAT, PRUEFUNG → FREIVERM, PSEM, VERSUCH

PJAHR, PMONAT, PRUEFUNG, PTAG → PVERSION

PJAHR, PMONAT, PRUEFUNG, PVERSION → MALUS

PJAHR, PMONAT, PRUEFUNG, STAAT → ABSCHL

PJAHR, PMONAT, PSTATUS → PVERMERK

PJAHR, PMONAT, PSTATUS, PTAG → FREIVERM, PSEM

PJAHR, PMONAT, PSTATUS, SEM → FREIVERM, PSEM

PJAHR, PMONAT, PSTATUS, STAAT → PSEM

PJAHR, PMONAT, PTAG, PVERSION → PVERMERK, PSEM

PJAHR, PMONAT, PTAG, SEM → ABSCHL, PSEM, PVERSION

PJAHR, PMONAT, PTAG, STAAT → FREIVERM, PSEM, PVERSION

PJAHR, PMONAT, PTAG, VERSUCH → PSEM, PVERMERK

PJAHR, PMONAT, PVERMERK, STAAT → PSEM

PJAHR, PMONAT, PVERSION, STAAT → PSEM

PJAHR, PMONAT, SEM, STAAT → PSEM, PVERSION

PJAHR, PMONAT, STAAT → PVERMERK

PJAHR, PMONAT, STAAT, VERSUCH → PSEM

PJAHR, PNOTE, PNR, PTAG → BONUS, PMONAT, PSEM

PJAHR, PNOTE, PNR, SEM → PSEM

PJAHR, PNOTE, PRUEFUNG → PNR, PVERSION

PJAHR, PNOTE, PRUEFUNG, PTAG → PMONAT, PSEM

95

Page 96: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PJAHR, PNOTE, PRUEFUNG, SEM → PSEM

PJAHR, PNOTE, PRUEFUNG, STAAT → ABSCHL

PJAHR, PNOTE, PSEM, STAAT → MALUS

PJAHR, PNOTE, PSTATUS, STAAT → MALUS

PJAHR, PNOTE, PTAG → MALUS

PJAHR, PNOTE, PTAG, SEM → ABSCHL, PSEM, PVERSION

PJAHR, PNOTE, PVERSION, STAAT → MALUS

PJAHR, PNOTE, SEM, STAAT → ABSCHL, MALUS, PSEM

PJAHR, PNOTE, STAAT → PVERSION

PJAHR, PNR → PVERSION

PJAHR, PNR, PRUEFUNG → PVERMERK

PJAHR, PNR, PSEM, PTAG → PMONAT

PJAHR, PNR, PSTATUS → FREIVERM, MALUS

PJAHR, PNR, PSTATUS, PTAG → PSEM

PJAHR, PNR, PSTATUS, STAAT → BONUS

PJAHR, PNR, PTAG, SEM → PMONAT, PSEM

PJAHR, PNR, PTAG, STAAT → PMONAT, PSEM

PJAHR, PNR, PVERMERK, SEM → PSEM

PJAHR, PNR, PVERSION → PVERMERK

PJAHR, PNR, SEM → ABSCHL, FREIVERM, MALUS

PJAHR, PNR, SEM, STAAT → PSEM

PJAHR, PNR, STAAT → ABSCHL, MALUS

PJAHR, PNR, VERSUCH → PVERMERK

PJAHR, PRUEFUNG, PSEM → PVERMERK

PJAHR, PRUEFUNG, PSEM, PTAG → PMONAT

PJAHR, PRUEFUNG, PSTATUS → FREIVERM, MALUS

PJAHR, PRUEFUNG, PSTATUS, PTAG → PVERSION

PJAHR, PRUEFUNG, PSTATUS, STAAT → ABSCHL

PJAHR, PRUEFUNG, PTAG → MALUS, PNR

PJAHR, PRUEFUNG, PTAG, SEM → PMONAT, PSEM

PJAHR, PRUEFUNG, PTAG, STAAT → PMONAT, PSEM

PJAHR, PRUEFUNG, PTAG, VERSUCH → PVERSION

PJAHR, PRUEFUNG, PVERMERK, SEM → MALUS

PJAHR, PRUEFUNG, PVERMERK, STAAT → ABSCHL

PJAHR, PRUEFUNG, PVERSION → PVERMERK

PJAHR, PRUEFUNG, PVERSION, SEM → MALUS

PJAHR, PRUEFUNG, PVERSION, STAAT → ABSCHL

PJAHR, PRUEFUNG, SEM → ABSCHL, FREIVERM, PNR, PVERSION

PJAHR, PRUEFUNG, SEM, STAAT → PSEM

PJAHR, PRUEFUNG, SEM, VERSUCH → MALUS

PJAHR, PRUEFUNG, STAAT → MALUS, PNR, PVERSION

PJAHR, PRUEFUNG, STAAT, VERSUCH → ABSCHL

PJAHR, PSEM, PSTATUS, SEM → FREIVERM, PVERMERK

96

Page 97: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PJAHR, PSEM, PTAG, SEM → PVERMERK

PJAHR, PSEM, PTAG, STAAT → FREIVERM, PVERSION

PJAHR, PSEM, SEM, STAAT → PVERMERK

PJAHR, PSTATUS, PTAG → PVERMERK

PJAHR, PSTATUS, PTAG, SEM → FREIVERM

PJAHR, PSTATUS, PTAG, STAAT → VERSUCH

PJAHR, PSTATUS, PVERSION, SEM → PVERMERK

PJAHR, PSTATUS, SEM, STAAT → PVERSION

PJAHR, PSTATUS, SEM, VERSUCH → FREIVERM, PVERMERK

PJAHR, PSTATUS, STAAT → FREIVERM, PVERMERK

PJAHR, PTAG, PVERMERK, STAAT → FREIVERM, PVERSION

PJAHR, PTAG, PVERSION, SEM → PVERMERK

PJAHR, PTAG, SEM, STAAT → ABSCHL, FREIVERM, PSEM, PVERSION, VERSUCH

PJAHR, PTAG, SEM, VERSUCH → PVERMERK

PJAHR, PTAG, STAAT → PVERMERK

PJAHR, PTAG, STAAT, VERSUCH → FREIVERM

PJAHR, PVERMERK, SEM, STAAT → PVERSION

PMONAT → STG

PMONAT, PNOTE, PNR, PSEM → ABSCHL

PMONAT, PNOTE, PNR, PTAG → BONUS, PJAHR, PSEM

PMONAT, PNOTE, PNR, SEM → PVERSION

PMONAT, PNOTE, PNR, STAAT → ABSCHL, PVERSION

PMONAT, PNOTE, PRUEFUNG, PSEM → ABSCHL

PMONAT, PNOTE, PRUEFUNG, PTAG → BONUS, PJAHR, PSEM, PVERSION

PMONAT, PNOTE, PRUEFUNG, SEM → PNR

PMONAT, PNOTE, PRUEFUNG, STAAT → ABSCHL

PMONAT, PNOTE, PSEM → PJAHR

PMONAT, PNOTE, PSEM, PSTATUS → MALUS

PMONAT, PNOTE, PSEM, PTAG → PVERSION

PMONAT, PNOTE, PSEM, SEM → ABSCHL, MALUS

PMONAT, PNOTE, PSEM, STAAT → MALUS

PMONAT, PNOTE, PSTATUS, PVERSION → MALUS

PMONAT, PNOTE, PSTATUS, SEM → MALUS

PMONAT, PNOTE, PSTATUS, STAAT → MALUS

PMONAT, PNOTE, PTAG → MALUS

PMONAT, PNOTE, PTAG, SEM → ABSCHL

PMONAT, PNOTE, PVERSION, SEM → MALUS

PMONAT, PNOTE, PVERSION, STAAT → MALUS

PMONAT, PNOTE, SEM, STAAT → ABSCHL, MALUS

PMONAT, PNOTE, STAAT, VERSUCH → MALUS

PMONAT, PNR → PVERMERK, VERSUCH

PMONAT, PNR, PRUEFUNG, SEM → PVERSION

PMONAT, PNR, PRUEFUNG, STAAT → ABSCHL, PVERSION

97

Page 98: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PMONAT, PNR, PSEM → FREIVERM, MALUS, PJAHR

PMONAT, PNR, PSTATUS → FREIVERM, MALUS

PMONAT, PNR, PSTATUS, PTAG → PJAHR

PMONAT, PNR, PSTATUS, STAAT → ABSCHL, BONUS, PVERSION

PMONAT, PNR, PTAG → PVERSION

PMONAT, PNR, PTAG, PVERSION → PJAHR, PSEM

PMONAT, PNR, PTAG, SEM → PJAHR, PSEM

PMONAT, PNR, PTAG, STAAT → PJAHR, PSEM

PMONAT, PNR, PVERMERK, PVERSION → FREIVERM

PMONAT, PNR, PVERMERK, STAAT → ABSCHL

PMONAT, PNR, PVERMERK, VERSUCH → FREIVERM

PMONAT, PNR, PVERSION, STAAT → ABSCHL

PMONAT, PNR, PVERSION, VERSUCH → FREIVERM

PMONAT, PNR, SEM → ABSCHL, FREIVERM, MALUS

PMONAT, PNR, SEM, STAAT → PVERSION

PMONAT, PNR, STAAT → MALUS

PMONAT, PNR, STAAT, VERSUCH → ABSCHL

PMONAT, PRUEFUNG → PVERMERK

PMONAT, PRUEFUNG, PSEM → FREIVERM, PJAHR, VERSUCH

PMONAT, PRUEFUNG, PSEM, PSTATUS → PNR

PMONAT, PRUEFUNG, PSEM, PVERSION → MALUS

PMONAT, PRUEFUNG, PSEM, VERSUCH → PNR

PMONAT, PRUEFUNG, PSTATUS → FREIVERM, MALUS

PMONAT, PRUEFUNG, PSTATUS, STAAT → ABSCHL

PMONAT, PRUEFUNG, PTAG → MALUS, PNR

PMONAT, PRUEFUNG, PTAG, PVERSION → PJAHR, PSEM

PMONAT, PRUEFUNG, PTAG, SEM → PJAHR, PSEM, PVERSION

PMONAT, PRUEFUNG, PTAG, STAAT → PJAHR, PSEM, PVERSION

PMONAT, PRUEFUNG, PVERMERK, PVERSION → FREIVERM

PMONAT, PRUEFUNG, PVERMERK, STAAT → ABSCHL

PMONAT, PRUEFUNG, PVERMERK, VERSUCH → FREIVERM

PMONAT, PRUEFUNG, PVERSION → VERSUCH

PMONAT, PRUEFUNG, PVERSION, STAAT → ABSCHL

PMONAT, PRUEFUNG, PVERSION, VERSUCH → FREIVERM

PMONAT, PRUEFUNG, SEM → ABSCHL, FREIVERM, MALUS

PMONAT, PRUEFUNG, STAAT → MALUS, PNR

PMONAT, PRUEFUNG, STAAT, VERSUCH → ABSCHL

PMONAT, PSEM, PSTATUS → PVERMERK

PMONAT, PSEM, PSTATUS, PTAG → FREIVERM

PMONAT, PSEM, PSTATUS, PVERSION → PJAHR

PMONAT, PSEM, PSTATUS, SEM → FREIVERM, PJAHR

PMONAT, PSEM, PSTATUS, STAAT → VERSUCH

PMONAT, PSEM, PSTATUS, VERSUCH → PJAHR

98

Page 99: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PMONAT, PSEM, PTAG → PJAHR

PMONAT, PSEM, PTAG, PVERSION → PVERMERK

PMONAT, PSEM, PTAG, SEM → ABSCHL, PVERSION

PMONAT, PSEM, PTAG, STAAT → FREIVERM, PVERSION, VERSUCH

PMONAT, PSEM, PTAG, VERSUCH → PVERMERK

PMONAT, PSEM, PVERMERK, SEM → PJAHR

PMONAT, PSEM, PVERMERK, VERSUCH → PJAHR

PMONAT, PSEM, PVERSION, SEM → PJAHR

PMONAT, PSEM, SEM, VERSUCH → PJAHR

PMONAT, PSEM, STAAT → PJAHR, PVERMERK

PMONAT, PSTATUS, PTAG → PVERMERK

PMONAT, PSTATUS, PTAG, PVERSION → FREIVERM

PMONAT, PSTATUS, PTAG, SEM → FREIVERM

PMONAT, PSTATUS, PTAG, STAAT → VERSUCH

PMONAT, PSTATUS, PVERSION, VERSUCH → PVERMERK

PMONAT, PSTATUS, SEM → PVERMERK

PMONAT, PSTATUS, SEM, STAAT → VERSUCH

PMONAT, PSTATUS, SEM, VERSUCH → FREIVERM

PMONAT, PSTATUS, STAAT → FREIVERM, PVERMERK

PMONAT, PTAG, PVERMERK, STAAT → FREIVERM

PMONAT, PTAG, PVERSION, STAAT → FREIVERM

PMONAT, PTAG, SEM → PVERMERK

PMONAT, PTAG, SEM, STAAT → ABSCHL, FREIVERM, VERSUCH

PMONAT, PTAG, STAAT → PVERMERK

PMONAT, PTAG, STAAT, VERSUCH → FREIVERM

PMONAT, PVERSION, STAAT, VERSUCH → PVERMERK

PMONAT, SEM, STAAT → PVERMERK

PNOTE → FREIVERM, ISTKTO, PVERMERK, STG, VERSUCH

PNOTE, PNR → MALUS, PSTATUS

PNOTE, PNR, PRUEFUNG, PTAG → PJAHR, PMONAT

PNOTE, PNR, PRUEFUNG, STAAT → ABSCHL

PNOTE, PNR, PSEM → PJAHR

PNOTE, PNR, PSEM, PTAG → BONUS, PMONAT

PNOTE, PNR, PSTATUS, PTAG → PJAHR, PMONAT

PNOTE, PNR, PSTATUS, STAAT → ABSCHL

PNOTE, PNR, PTAG → ABSCHL, PVERSION

PNOTE, PNR, PTAG, PVERSION → PJAHR, PMONAT, PSEM

PNOTE, PNR, PTAG, SEM → BONUS, GESCHL, PJAHR, PMONAT, PSEM

PNOTE, PNR, PTAG, STAAT → BONUS, GESCHL, PJAHR, PMONAT, PSEM

PNOTE, PNR, PTAG, VERSUCH → PJAHR, PMONAT

PNOTE, PNR, PVERMERK, STAAT → ABSCHL

PNOTE, PNR, PVERSION, STAAT → ABSCHL

PNOTE, PNR, SEM → ABSCHL

99

Page 100: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PNOTE, PNR, SEM, STAAT → PVERSION

PNOTE, PNR, STAAT, VERSUCH → ABSCHL

PNOTE, PRUEFUNG → MALUS, PSTATUS

PNOTE, PRUEFUNG, PSEM → PJAHR, PNR, PVERSION

PNOTE, PRUEFUNG, PSEM, PTAG → BONUS, PMONAT

PNOTE, PRUEFUNG, PSTATUS, PTAG → PVERSION

PNOTE, PRUEFUNG, PTAG → ABSCHL, PNR

PNOTE, PRUEFUNG, PTAG, PVERSION → PJAHR, PMONAT, PSEM

PNOTE, PRUEFUNG, PTAG, SEM → BONUS, GESCHL, PJAHR, PMONAT, PSEM, PVERSION

PNOTE, PRUEFUNG, PTAG, STAAT → BONUS, GESCHL, PJAHR, PMONAT, PSEM, PVERSION

PNOTE, PRUEFUNG, PTAG, VERSUCH → PVERSION

PNOTE, PRUEFUNG, PVERMERK, STAAT → PNR

PNOTE, PRUEFUNG, PVERSION, STAAT → ABSCHL

PNOTE, PRUEFUNG, SEM → ABSCHL

PNOTE, PRUEFUNG, STAAT, VERSUCH → PNR

PNOTE, PSEM, PSTATUS, STAAT → MALUS

PNOTE, PSEM, PTAG → MALUS, PJAHR

PNOTE, PSEM, PTAG, SEM → ABSCHL

PNOTE, PSEM, PTAG, STAAT → ABSCHL

PNOTE, PSEM, PVERSION, STAAT → MALUS

PNOTE, PSEM, SEM → PJAHR, PVERSION

PNOTE, PSEM, SEM, STAAT → ABSCHL, MALUS

PNOTE, PSEM, STAAT → PJAHR, PVERSION

PNOTE, PSEM, STAAT, VERSUCH → MALUS

PNOTE, PSTATUS, PTAG, PVERSION → MALUS

PNOTE, PSTATUS, PVERSION, STAAT → MALUS

PNOTE, PSTATUS, SEM, STAAT → MALUS

PNOTE, PTAG, PVERSION, SEM → ABSCHL

PNOTE, PTAG, SEM → MALUS

PNOTE, PTAG, SEM, STAAT → ABSCHL

PNOTE, PTAG, STAAT → MALUS

PNOTE, PVERSION, SEM, STAAT → ABSCHL, MALUS

PNR → ISTKTO, PRUEFUNG, STG

PNR, PRUEFUNG, PSTATUS → BONUS, MALUS

PNR, PRUEFUNG, PTAG, VERSUCH → PVERSION

PNR, PRUEFUNG, PVERMERK, STAAT → ABSCHL

PNR, PRUEFUNG, PVERSION, SEM → ABSCHL

PNR, PRUEFUNG, SEM, STAAT → PVERSION

PNR, PRUEFUNG, STAAT, VERSUCH → MALUS

PNR, PSEM → PVERMERK, PVERSION

PNR, PSEM, PSTATUS → FREIVERM, MALUS

PNR, PSEM, PSTATUS, PTAG → PMONAT

PNR, PSEM, PSTATUS, SEM → PJAHR

100

Page 101: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PNR, PSEM, PSTATUS, STAAT → BONUS

PNR, PSEM, PTAG → PJAHR

PNR, PSEM, PTAG, SEM → PMONAT

PNR, PSEM, PTAG, STAAT → PMONAT

PNR, PSEM, PVERMERK, SEM → PJAHR

PNR, PSEM, PVERMERK, VERSUCH → FREIVERM, PJAHR

PNR, PSEM, SEM → ABSCHL, FREIVERM, MALUS

PNR, PSEM, STAAT → ABSCHL, MALUS, PJAHR

PNR, PSTATUS → PVERMERK

PNR, PSTATUS, PTAG → PVERSION

PNR, PSTATUS, PTAG, STAAT → BONUS

PNR, PSTATUS, PVERMERK, PVERSION → FREIVERM

PNR, PSTATUS, PVERMERK, SEM → BONUS

PNR, PSTATUS, PVERMERK, STAAT → ABSCHL, BONUS

PNR, PSTATUS, PVERMERK, VERSUCH → FREIVERM

PNR, PSTATUS, PVERSION → BONUS, MALUS

PNR, PSTATUS, PVERSION, STAAT → ABSCHL

PNR, PSTATUS, PVERSION, VERSUCH → FREIVERM

PNR, PSTATUS, SEM → ABSCHL, FREIVERM, MALUS

PNR, PSTATUS, SEM, STAAT → BONUS, PVERSION

PNR, PSTATUS, STAAT → MALUS

PNR, PSTATUS, VERSUCH → BONUS, MALUS

PNR, PTAG → FREIVERM, MALUS, PVERMERK, VERSUCH

PNR, PTAG, PVERMERK, STAAT → PMONAT

PNR, PTAG, PVERMERK, VERSUCH → PVERSION

PNR, PTAG, PVERSION, SEM → PJAHR

PNR, PTAG, PVERSION, STAAT → PJAHR

PNR, PTAG, SEM → ABSCHL, PVERSION

PNR, PTAG, SEM, STAAT → PJAHR, PMONAT, PSEM, PSTATUS

PNR, PTAG, STAAT → ABSCHL, PVERSION

PNR, PVERMERK, PVERSION, STAAT → ABSCHL

PNR, PVERMERK, SEM → ABSCHL, FREIVERM, MALUS

PNR, PVERMERK, SEM, STAAT → PVERSION

PNR, PVERMERK, STAAT → MALUS

PNR, PVERMERK, STAAT, VERSUCH → ABSCHL

PNR, PVERSION, SEM, VERSUCH → ABSCHL, FREIVERM

PNR, PVERSION, STAAT, VERSUCH → MALUS

PNR, SEM → PVERMERK, VERSUCH

PNR, SEM, STAAT → ABSCHL, MALUS

PNR, SEM, STAAT, VERSUCH → PVERSION

PNR, STAAT → FREIVERM, PVERMERK, VERSUCH

PRUEFUNG → ISTKTO, STG

PRUEFUNG, PSEM, PSTATUS → FREIVERM, MALUS

101

Page 102: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PRUEFUNG, PSEM, PSTATUS, PTAG → PMONAT

PRUEFUNG, PSEM, PSTATUS, SEM → PJAHR

PRUEFUNG, PSEM, PSTATUS, STAAT → BONUS

PRUEFUNG, PSEM, PTAG → MALUS, PJAHR, PNR, PVERSION

PRUEFUNG, PSEM, PTAG, SEM → PMONAT

PRUEFUNG, PSEM, PTAG, STAAT → PMONAT

PRUEFUNG, PSEM, PVERMERK, SEM → PJAHR

PRUEFUNG, PSEM, PVERMERK, VERSUCH → FREIVERM

PRUEFUNG, PSEM, PVERSION → PVERMERK

PRUEFUNG, PSEM, SEM → ABSCHL, FREIVERM, MALUS, PNR, PVERSION

PRUEFUNG, PSEM, STAAT → ABSCHL, MALUS, PJAHR, PNR, PVERSION

PRUEFUNG, PSTATUS → PVERMERK

PRUEFUNG, PSTATUS, PTAG → MALUS

PRUEFUNG, PSTATUS, PTAG, SEM → PVERSION

PRUEFUNG, PSTATUS, PVERMERK, PVERSION → FREIVERM

PRUEFUNG, PSTATUS, PVERMERK, SEM → ABSCHL

PRUEFUNG, PSTATUS, PVERMERK, STAAT → BONUS

PRUEFUNG, PSTATUS, PVERMERK, VERSUCH → FREIVERM

PRUEFUNG, PSTATUS, PVERSION → BONUS, MALUS

PRUEFUNG, PSTATUS, PVERSION, SEM → ABSCHL

PRUEFUNG, PSTATUS, PVERSION, STAAT → ABSCHL

PRUEFUNG, PSTATUS, PVERSION, VERSUCH → FREIVERM

PRUEFUNG, PSTATUS, SEM → FREIVERM, MALUS

PRUEFUNG, PSTATUS, SEM, STAAT → BONUS

PRUEFUNG, PSTATUS, STAAT → MALUS

PRUEFUNG, PSTATUS, VERSUCH → BONUS

PRUEFUNG, PTAG → FREIVERM, PVERMERK, VERSUCH

PRUEFUNG, PTAG, PVERSION → MALUS

PRUEFUNG, PTAG, PVERSION, SEM → PJAHR

PRUEFUNG, PTAG, PVERSION, STAAT → PJAHR

PRUEFUNG, PTAG, SEM → ABSCHL, MALUS, PNR

PRUEFUNG, PTAG, SEM, STAAT → PJAHR, PMONAT, PSEM, PVERSION

PRUEFUNG, PTAG, STAAT → ABSCHL, MALUS, PNR

PRUEFUNG, PVERMERK, PVERSION, SEM → ABSCHL, FREIVERM, MALUS

PRUEFUNG, PVERMERK, PVERSION, STAAT → ABSCHL

PRUEFUNG, PVERMERK, SEM, VERSUCH → ABSCHL, FREIVERM

PRUEFUNG, PVERMERK, STAAT → MALUS

PRUEFUNG, PVERMERK, STAAT, VERSUCH → ABSCHL

PRUEFUNG, PVERSION → PNR

PRUEFUNG, PVERSION, SEM, VERSUCH → ABSCHL, FREIVERM

PRUEFUNG, PVERSION, STAAT, VERSUCH → ABSCHL, MALUS

PRUEFUNG, SEM → PVERMERK, VERSUCH

PRUEFUNG, SEM, STAAT → ABSCHL, MALUS, PNR

102

Page 103: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

PRUEFUNG, STAAT → FREIVERM, PVERMERK, VERSUCH

PSEM → STG

PSEM, PSTATUS, PTAG → PVERMERK

PSEM, PSTATUS, PTAG, PVERSION → FREIVERM

PSEM, PSTATUS, PTAG, SEM → FREIVERM, PJAHR

PSEM, PSTATUS, PTAG, STAAT → PVERSION, VERSUCH

PSEM, PSTATUS, PTAG, VERSUCH → FREIVERM

PSEM, PSTATUS, PVERSION, SEM → PVERMERK

PSEM, PSTATUS, SEM, VERSUCH → PVERMERK

PSEM, PSTATUS, STAAT → FREIVERM, PVERMERK

PSEM, PTAG, PVERMERK, STAAT → FREIVERM, PVERSION

PSEM, PTAG, PVERSION, SEM → PVERMERK

PSEM, PTAG, SEM, STAAT → ABSCHL, FREIVERM, VERSUCH

PSEM, PTAG, SEM, VERSUCH → PVERMERK

PSEM, PTAG, STAAT → PJAHR, PVERMERK

PSEM, PTAG, STAAT, VERSUCH → FREIVERM, PVERSION

PSEM, PVERMERK, STAAT, VERSUCH → PVERSION

PSEM, SEM, STAAT → PVERSION

PSTATUS → STG

PSTATUS, PTAG, PVERMERK, SEM → FREIVERM

PSTATUS, PTAG, PVERSION, SEM → FREIVERM

PSTATUS, PTAG, PVERSION, STAAT → VERSUCH

PSTATUS, PTAG, PVERSION, VERSUCH → PVERMERK

PSTATUS, PTAG, SEM → PVERMERK

PSTATUS, PTAG, SEM, STAAT → VERSUCH

PSTATUS, PTAG, SEM, VERSUCH → FREIVERM

PSTATUS, PTAG, STAAT → FREIVERM, PVERMERK

PSTATUS, PVERMERK, PVERSION, STAAT → FREIVERM

PSTATUS, PVERMERK, SEM, VERSUCH → FREIVERM

PSTATUS, PVERMERK, STAAT, VERSUCH → FREIVERM

PSTATUS, PVERSION, STAAT → PVERMERK

PSTATUS, PVERSION, STAAT, VERSUCH → FREIVERM

PSTATUS, SEM, STAAT → FREIVERM, PVERMERK

PSTATUS, STAAT, VERSUCH → PVERMERK

PSTATUS, VERSUCH → ISTKTO

PTAG → STG

PTAG, PVERMERK, SEM, STAAT → FREIVERM

PTAG, PVERSION, SEM, STAAT → FREIVERM

PTAG, PVERSION, STAAT → PVERMERK

PTAG, SEM, STAAT → PVERMERK

PTAG, SEM, STAAT, VERSUCH → FREIVERM

PVERMERK → STG

PVERSION → STG

103

Page 104: Matthias Gl˜afke - Homepage Datenbanksysteme · 2007-09-23 · FAen in F nur unter Verwendung der sogenannten Armstrong-Axiome herleiten ... die sich sofort aus den Armstrong-Axiomen

SEM → STG

STAAT → STG

VERSUCH → STG

104