Title: IN0008_GDB / GDB: Kapitel 6: Relationale Entwurfstheorie
On every note of this deck, unless a note says otherwise:
Title: IN0008_GDB::GDB: Kapitel 6: Relationale Entwurfstheorie
Logo: tum_logo.png

Front: Was sind Funktionale Abhängigkeiten?
Back: Wenn die Werte in einer Menge von Spalten von den Werten in einer anderen Menge von Spalten sinngemäß abhängen nennt man sie funktional Abhängig

Front: Was ist volle funktionale Abhängigkeit?
Back: - b ist funktional abhängig von a: [$] a \rightarrow b [/$]
- a kann nicht mehr "verkleinert" werden: [$] \forall A \in a : \neg (a - {A} \to b) [/$]

Front: Wenn FD [$]a \rightarrow b[/$] gilt, was sollte für alle Möglichen Werte c aus a gelten?
Back: [$] \Pi_{b}(\sigma_{a=c}(R)) [/$] hat höchstens ein Element

Front: Was ist ein Superschlüssel?
Back: Eine Menge an Spalten von der zusammengenommen alle Spalten der Relation funktional abhängig sind. Z.b. auch die Menge aller Spalten

Front: Was ist ein Kandidatenschlüssel?
Back: Ein kleinstmöglicher Superschlüssel und potentieller Primärschlüssel

Front: Wie berechnet man die Attributhülle?

Front: Wann heißen zwei Mengen von FDs gleich?
Back: Wenn ihre Attributhüllen gleich sind

Front: Wie berechnet man die kanonische Überdeckung?

Front: Wozu dient die kanonische Überdeckung?
Back: Berechnet eine kleinstmögliche Menge an FDs die gleich der Ursprungsmenge ist. Vereinfacht das berechnen von Normalformen

Front: Was ist eine Updateanomalie?
Back: Wenn ein Wert geändert wird, dieser Wert allerdings duplikate hat, kann es sein dass diese Duplikate nicht mitgeupdated werden

Front: Was ist eine Löschanomalie?
Back: Wenn zwei Entities miteinander verknüpft sind und eines gelöscht wird, kann es sein, dass der foreign key der anderen nicht mehr gültig ist

Front: Was ist eine Einfügeanomalie?
Back: Wenn man Informationen einfügen will, allerdings felder in der Relation auf NULL setzen muss weil diese noch nicht feststehen

Front: Was ist eine (Verlustlose) Zerlegung?
Back: Eine Relation is zwei Teilrelationen zu zerlegen sodass sie gejoint genau die Ursprüngliche Relation bilden

Front: Welches Notwendige Kriterium muss gelten damit eine Zerlegung verlustfrei ist?
Back: [$] R_1 \setminus R_2 \rightarrow R_1, R_2 [/$]

Front: Wie überführt man eine Relation in die 3NF?

Front: Wie überführt man eine Relation in die BCNF?

Front: Wie überführt man eine Relation in die 4NF?

Front: Wann ist eine Relation in Boyce-Codd Normalform?
Back: Ein Relationenschema R mit FDs F ist in Boyce-Codd Normalform, falls für jede funktionale Abhängigkeit α Ñ β mindestens eine der folgenden zwei Bedingungen gilt:
- [$] a \subseteq b [/$], d.h. die Abhängigkeit ist trivial oder
- a ist Superschlüssel von R.

Front: Was ist eine Mehrwertige FD (MVD)?
Back: Seien a, b und c eine Partition von R, es gilt [$] a \twoheadrightarrow b [/$] gdw:
für alle Tupel [$] t_1, t_2 [/$] mit [$] t_1.a = t_2.a [/$] gibt es [$] t_4, t_4 [/$] sodass:
[$] t_1.a = t_2.a = t_3.a = t_4.a [/$]
[$] t_3.b = t_1.b [/$]
[$] t_4.b = t_2.b [/$]
[$] t_3.c = t_2.c [/$]
[$] t_4.c = t_1.c [/$]
Title: IN0008_GDB::GDB: Kapitel 6: Relationale Entwurfstheorie
Other fields (not shown on cards):
Logo: tum_logo.png

Front: Wann ist eine Relation in der 1. Normalform?
Back: Wenn alle Attribute atomare Wertebereiche haben.

Front: Wann ist eine Relation in der 2. Normalform?
Back: Jedes Nichtschlüssel-Attribut [$]A \in R[/$] ist voll funktional von jedem Kandidatenschlüssel der Relation abhängig.

Front: Wann ist eine Relation in der 3. Normalform?
Back: Jede für [$]R[/$] geltende funktionale Abhängigkeit der Form [$]a \rightarrow b[/$] mit [$]a \subseteq R[/$] und [$]b \in R[/$] muss eine der Bedingungen erfüllen:
- [$]b[/$] ist ein Primattribut, d.h. die FD ist trivial
- [$]a[/$] ist Superschlüssel von [$]R[/$]

Front: Wann ist eine Relation in der BCNF?
Back: Falls für [$]a \rightarrow b[/$] mindestens eine der folgenden zwei Bedingungen gilt:
- [$]b \subseteq a[/$], d.h. die Abhängigkeit ist trivial
- [$]a[/$] ist Superschlüssel von [$]R[/$]

Front: Wann ist eine Relation in der 4. Normalform?
Back: Wenn für jede MVD [$]a \rightarrow\rightarrow b[/$] [$]\in D[/$] eine der folgenden Bedingungen gilt:
- Die MVD ist trivial
- [$]a[/$] ist ein Superschlüssel von [$]R[/$]

Front: Wann ist eine MVD trivial?
Back: [$]a \rightarrow\rightarrow b[/$] genau dann trivial, wenn gilt:
1. [$]b \subseteq a[/$] oder
2. [$]b = R - a[/$]

Front: Wann ist eine FD voll funktional abhängig?
Back: Es gilt [$]a \stackrel{\cdot}{\rightarrow} b[/$], falls beide folgenden Kriterien gelten:
1. [$]a \rightarrow b[/$] d.h. [$]b[/$] ist funktional abhängig von [$]a[/$]
2. [$]a[/$] kann nicht mehr "verkleinert" werden, d.h. [$]\forall A \in a: a - {A} \not\to b[/$]

Front: Gegeben ist folgende Relation: [$]R = {A, B, C, D}[/$]
Und die FDs:
- [$]AB \to C[/$]
- [$]B \to D[/$]
Welche Normalformen sind für die Relation erfüllt?
Back: Die Relation ist nicht mengenwertig, daher 1. NF.
D ist lediglich von B abhängig, der Kandidatenschlüssel ist aber AB, weswegen D nicht voll funktional vom Kandidatenschlüssel abhängig ist, daher keine 2. NF.

Front: Gegeben ist folgende Relation: [$]R = {A, B, C, D}[/$]
Und die FDs:
- [$]AB \to C[/$]
- [$]C \to D[/$]
Welche Normalformen sind für die Relation erfüllt?
Back: Jedes Attribut der Relation ist voll funktional abhängig vom Kandidatenschlüssel AB, daher 2.NF.
Das Attribut D ist transitiv und nicht direkt vom Kandidatenschlüssel abhängig, darum nicht 3. NF.

Front: Gegeben ist folgende Relation: [$]R = {A, B, C, D}[/$]
Und die FDs:
- [$]BC \to AD[/$]
- [$]D \to C[/$]
Welche Normalformen sind für die Relation erfüllt?
Back: Für jede FD gilt entweder:
- Sie ist trivial
- Die linke Seite ist ein Superschlüssel
- Rechte Seite ist in einem Kandidatenschlüssel enthalten
daher 3. NF.
Bei der BCNF fällt die dritte erlaubte Art von FD weg, daher müssen FDs trivial sein oder ihre linke Seite Superschlüssel. Da die zweite FD des Beispiels dies verletzt, ist die Relation nicht in BCNF und daher genau in 3. NF.

Front: Gegeben ist folgende Relation: [$]R = {A, B, C, D}[/$]
Und die FDs:
- [$]AB \to CD[/$]
- [$]BC \to AD[/$]
- [$]D \to\to C[/$]
Welche Normalformen sind für die Relation erfüllt?
Back: BCNF, da die BCNF verletzende FD aus dem Beispiel für 3. NF entfernt wurde. Nicht 4. NF weil eine nicht triviale MVD gilt, deren linke Seite nicht Superschlüssel ist.

Front: Gegeben ist folgende Relation: [$]R = {A, B, C, D}[/$]
Und die FDs:
- [$]AB \to CD[/$]
- [$]BC \to AD[/$]
Welche Normalformen sind für die Relation erfüllt?
Back: Nach Entfernung der nicht trivialen MVD dann auch 4. NF.

Front: Alternative Definition der 2NF vom Normaliser
Back: Schema ist in 2NF, wenn es in 1NF ist und für jedes Attribut b auf der rechten Seite gilt:
1. b ist Teil eines Kandidatenschlüssels oder
2. b ist nicht von einer echten Teilmenge eines Kandidatenschlüssels abhängig

Front: Alternative Definition der 3NF vom Normalizer
Back: Schema ist in 3NF, wenn jede FD α->β mindestens eine der folgenden Bedingungen erfüllt:
1. α->β ist trivial (β⊆α)
2. α ist Superschlüssel
3. Jedes Attribut in β ist in einem Kandidatenschlüssel enthalten

Front: Alternative Definition der BCNF vom Normalizer
Back: 3NF ohne die dritte Bedingung.
Schema ist in BCNF, wenn jede FD α->β mindestens eine der folgenden Bedingungen erfüllt:
1. α->β ist trivial (β⊆α)
2. α ist Superschlüssel

Front: Alternative Definition der 4NF vom Normalizer
Back: Schema ist in 4NF, wenn jede MVD α->>β mindestens eine der folgenden Bedingungen erfüllt:
1. α->>β ist trivial (β⊆α oder α∪β = R)
2. α ist Superschlüssel

Front: Informellere Beschreibung des Synthesealgorithmus (überführt R in 3NF) (4 Schritte)
Back: 1. Kanonische Überdeckung
2. Relationsschemata formen: Aus jeder FD der kanonischen Überdeckung entsteht eine neue Relation
3. Schlüssel hinzufügen: Füge ein neues Relationsschema mit einem Kandidatenschlüssel hinzu, falls keiner der Kandidatenschlüssel vollständig in einem Schema enthalten ist
4. Redundante Schemata eliminieren: Eliminiere Ra, wenn Ra ⊆ R

Front: Welche Bedingungen müssen für eine Ri geltende nicht-triviale FD oder MVD a -> b erfüllt sein, damit eine FD oder MVD zur weiteren Dekomposition der Relation R_i genutzt werden darf?
Back: - [$] a \cap b = \emptyset [/$]
- [$] a \not\to \mathcal{R}_i [/$]

Front: Wie wird eine Relation R_i beim Dekompositionsalgorithmus zerlegt, wenn eine FD/MVD gefunden wurde, die die gewünschte Normalform verletzt?
Back: - [$] \mathcal{R}_{i,1} = a \cup b [/$]
- [$] \mathcal{R}_{i,2} = \mathcal{R}_i - b [/$]