Post on 17-Sep-2018
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SEM → STG
STAAT → STG
VERSUCH → STG
104