Relationaler Entwurf
This commit is contained in:
		
							parent
							
								
									f8e5954ad6
								
							
						
					
					
						commit
						6cc21101cd
					
				| @ -342,7 +342,7 @@ Die Konzepte im Überblick: | ||||
| | Optionalität | Attribute oder Funktionale Beziehungen als partielle Funktionen | | ||||
| 
 | ||||
| 
 | ||||
| # Relationaler DB-Entwurf | ||||
| # Datenbankentwurf | ||||
| ## Phasen des Datenbankentwurfs | ||||
| - Datenerhaltung für mehrere Anwendungssysteme und mehrere Jahre | ||||
| - Anforderungen an Entwurf: | ||||
| @ -473,7 +473,164 @@ Umsetzung des konzeptionellen Schemas | ||||
| | m:n                   | $P_1 \cup P_2$ wird Primärschlüssel der Beziehung | | ||||
| | IST Beziehung         | $R_1$ erhält zusätzlichen Schlüssel $P_2$ | | ||||
| 
 | ||||
| # Relationale Entwurfstheorie | ||||
| # Relationaler Entwurf | ||||
| ## Zielmodell des logischen Entwurfs | ||||
| 
 | ||||
| Begriffe des Relationenmodells | ||||
| | Begriff | Informale Bedeutung | | ||||
| | -- | -- | | ||||
| | Attribut | Spalte einer Tabelle | | ||||
| | Wertebereich | mögliche Werte eines Attributs (auch Domäne) | | ||||
| | Attributwert | Element eines Wertebereichs | | ||||
| | Relationenschema | Menge von Attributen |  | ||||
| | Relation | Menge von Zeilen einer Tabelle | | ||||
| | Tupel | Zeile einer Tabelle | | ||||
| | Datenbankschema | Menge von Relationenschemata | | ||||
| | Datenbank | Menge von Relationen (Basisrelationen) | | ||||
| | Schlüssel | minimale Menge von Attributen, deren Werte ein Tupel einer Tabelle eindeutig identifizieren | | ||||
| | Primärschlüssel | ein beim Datenbankentwurf ausgezeichneter Schlüssel | | ||||
| | Fremdschlüssel | Attributmenge, die in einer anderen Relation Schlüssel ist | | ||||
| | Fremdschlüsselbedingung | alle Attributwerte des Fremdschlüssels tauchen in der anderen Relation als Werte des Schlüssels auf | | ||||
| 
 | ||||
| Formalisierung Relationenmodell | ||||
| - Attribute und Domänen | ||||
|   - $U$ nichtleere, endliche Menge: Universum | ||||
|   - $A\in U$: Attribut | ||||
|   - $D = {D_1,..., D_m}$ Menge endlicher, nichtleerer Mengen: jedes $D_i$: Wertebereich oder Domäne | ||||
|   - total definierte Funktion $dom:U \rightarrow D$ | ||||
|   - $dom(A)$: Domäne von A | ||||
|   - $w \in dom(A)$: Attributwert für A | ||||
| - Relationenschemata und Relationen | ||||
|   - $R\subseteq U$: Relationenschema | ||||
|   - Relation $r$ über $R = {A_1,..., A_n}$ (kurz: $r(R)$) ist endliche Menge von Abbildungen $t:R \rightarrow \bigcup_{i=1}^{m} D_i$, Tupel genannt | ||||
|   - Es gilt $t(A) \in dom(A)$ ($t(A)$ Restriktion von $t$ auf $A \in R$) | ||||
|   - für $X\subseteq R$ analog $t(X)$ X-Wert von $t$ | ||||
|   - Menge aller Relationen über $R: REL(R) := {r | r(R)}$ | ||||
| - Datenbankschema und Datenbank | ||||
|   - Menge von Relationenschemata $S := {R_1,..., R_p }:$ Datenbankschema | ||||
|   - Datenbank über $S$: Menge von Relationen $d:={r_1,..., r_p}$, wobei $r_i (R_i)$ | ||||
|   - Datenbank $d$ über $S: d(S)$ | ||||
|   - Relation $r\in d$: Basisrelation | ||||
| 
 | ||||
| Integritätsbedingung | ||||
| - Identifizierende Attributmenge $K:= {B_1,..., B_k } \subseteq R: \forall t_1, t_2 \in r [t_1 \not = t_2 \Rightarrow \exists B \in K: t_1(B) \not = t_2(B)]$ | ||||
| - Schlüssel: ist minimale identifizierende Attributmenge | ||||
| - Primattribut: Element eines Schlüssels | ||||
| - Primärschlüssel: ausgezeichneter Schlüssel | ||||
| - Oberschlüssel oder Superkey: jede Obermenge eines Schlüssels (= identifizierende Attributmenge) | ||||
| - Fremdschlüssel: $X(R_1)\rightarrow Y(R_2)$ | ||||
| 
 | ||||
| 
 | ||||
| ## Relationaler DB-Entwurf | ||||
| **Redundanzen** in Basisrelationen sind aus mehreren Gründen unerwünscht: | ||||
| - Redundante Informationen belegen unnötigen Speicherplatz | ||||
| - Änderungsoperationen auf Basisrelationen mit Redundanzen nur schwer korrekt umsetzbar:  | ||||
|   - wenn eine Information redundant vorkommt, muss eine Änderung diese Information in allen ihren Vorkommen verändern | ||||
|   - mit normalen relationalen Änderungsoperationen und den in | ||||
|     - relationalen Systemen vorkommenden lokalen | ||||
|     - Integritätsbedingungen (Schlüsseln) nur schwer realisierbar | ||||
| 
 | ||||
| Funktionale Abhängigkeit zwischen Attributemengen X und Y | ||||
| > Wenn in jedem Tupel der Relation der Attributwert unter den X-Komponenten den Attributwert unter den Y-Komponenten festlegt. | ||||
| - Unterscheiden sich zwei Tupel in den X-Attributen nicht, so haben sie auch gleiche Werte für alle Y-Attribute | ||||
| - Notation für funktionale Abhängigkeit (FD, von functional dependency): X → Y | ||||
| 
 | ||||
| > Ziel des Datenbankentwurfs: alle gegebenen funktionalen Abhängigkeiten in Schlüsselabhängigkeiten umformen, ohne dabei semantische Information zu verlieren | ||||
| 
 | ||||
| ## Normalformen | ||||
| Schemaeigenschaften | ||||
| - Relationenschemata, Schlüssel und Fremdschlüssel so wählen, dass | ||||
|     1. alle Anwendungsdaten aus den Basisrelationen hergeleitet werden können, | ||||
|     2. nur semantisch sinnvolle und konsistente Anwendungsdaten dargestellt werden können und | ||||
|     3. die Anwendungsdaten möglichst nicht-redundant dargestellt werden. | ||||
| - Hier: Forderung 3 | ||||
|   - Redundanzen innerhalb einer Relation: Normalformen | ||||
|   - globale Redundanzen: Minimalität | ||||
| 
 | ||||
| Normalformen | ||||
| - legen Eigenschaften von Relationenschemata fest | ||||
| - verbieten bestimmte Kombinationen von funktionalen Abhängigkeiten in Relationen | ||||
| - sollen Redundanzen und Anomalien vermeiden | ||||
| 
 | ||||
| 1. Erste Normalform | ||||
|     - erlaubt nur atomare Attribute in den Relationenschemata, d.h. als Attributwerte sind Elemente von Standard-Datentypen wie integer oder string erlaubt, aber keine Konstruktoren wie array oder set | ||||
| 2. Zweite Normalform | ||||
|     - Zweite Normalform eliminiert derartige partielle Abhängigkeiten bei Nichtschlüsselattributen | ||||
|     - partielle Abhängigkeit liegt vor, wenn ein Attribut funktional schon von einem Teil des Schlüssels abhängt | ||||
|     - Beispielrelation in 2 NF | ||||
|         - R1(Name, Weingut, Preis) | ||||
|         - R2(Name, Farbe) | ||||
|         - R3(Weingut, Anbaugebiet, Region) | ||||
| 3. Dritte Normalform | ||||
|     - eliminiert (zusätzlich) transitive Abhängigkeiten | ||||
|     - etwa Weingut $\rightarrow$ Anbaugebiet und Anbaugebiet $\rightarrow$ Region in Relation | ||||
|     - man beachte: 3 NF betrachtet nur Nicht-Schlüsselattribute als Endpunkt transitiver Abhängigkeiten | ||||
|     - Beispielrelation in 3NF, transitive Abhängigkeit in R3, d.h. R3 verletzt 3NF | ||||
|       - R3_1(Weingut, Anbaugebiet) | ||||
|       - R3_2(Anbaugebiet, Region) | ||||
| 
 | ||||
| > Dritte Normalform:  | ||||
| > - $A \in R$ heißt transitiv abhängig von X bezüglich F genau dann, wenn es ein $Y\subseteq R$ gibt mit $X \rightarrow Y, Y \not\rightarrow X, Y \rightarrow A, A \not\in XY$ | ||||
| > - erweitertes Relationenschema $R=(R, \bf{K})$ ist in 3 NF bezüglich F genau dann, wenn $\not\exists A \in R$: | ||||
| >   - A ist Nicht-Primattribut in R | ||||
| >   - $\wedge A$ transitiv abhängig von einem $K\in \bf{K}$ bezüglich $F_i$. | ||||
| >   - Nicht-Primattribut: A ist in keinem Schlüssel von R enthalten | ||||
| 
 | ||||
| > Boyce-Kodd-Normalform (Verschärfung der 3NF): Eliminierung transitiver Abhängigkeiten auch zwischen Primattributen | ||||
| - $\not\exists A \in R$: A transitiv abhängig von einem $K\in\bf{K}$ bezüglich F | ||||
| 
 | ||||
| Minimalität | ||||
| - Global Redundanzen vermeiden | ||||
| - andere Kriterien (wie Normalformen) mit möglichst wenig Schemata erreichen | ||||
| - Beispiel: Attributmenge ABC, FD-Menge ${A \rightarrow B, B \rightarrow C}$ | ||||
| 
 | ||||
| Übersicht | ||||
| | Kennung | Schemaeigenschaft | Kurzcharakteristik | | ||||
| | -- | -- | -- | | ||||
| | | 1 NF | nur atomare Attribute | | ||||
| | | 2 NF | keine partielle Abhängigkeit eines Nicht-Primattributes von einem Schlüssel | | ||||
| | S1 | 3 NF | keine transitive Abhängigkeit eines Nicht-Primattributs von einem Schlüssel | | ||||
| | | BCNF | keine transitive Abhängigkei eines Attributes von einem Schlüssel | | ||||
| | S2 | Minimalität | minimale Anzahl von Relationsschemata, die die anderen Eigenschaften erfüllt | | ||||
| 
 | ||||
| ## Transformationseigenschaften | ||||
| - bei einer Zerlegung einer Relation in mehrere Relationen ist darauf zu achten, dass | ||||
|     1. nur semantisch sinvolle und konsistente Anwendungsdaten dargestellt (Abhängigkeitstreue) und | ||||
|     2. alle Anwendungsdaten aus den Basisrelationen hergeleitet werden können (Verbundtreue) | ||||
| - Abhänggikeitstreue (Kennung T1) | ||||
|   - alle gegebenen Abhängigkeiten sind durch Schlüssel repräsentiert | ||||
|   - eine Menge von Abhängigkeiten kann äquivalent in eine zweite Menge von Abhängigkeiten transformiert werden | ||||
|   - spezieller: in die Menge der Schlüsselabhängigkeiten, da diese vom Datenbanksystem effizient überprüft werden kann | ||||
|     - die Menge der Abhängigkeiten soll äquivalent zu der Menge der Schlüsselbedingungen im resultierenden Datenbankschema sein | ||||
|     - Äquivalenz sichert zu, dass mit den Schlüsselabhängigkeiten semantisch genau die gleichen Integritätsbedingungen ausgedrückt werden wie mit den funktionalen oder anderen Abhängigkeiten vorher | ||||
|   - S charakterisiert vollständig F (oder: ist abhängigkeitstreu bezüglich F) genau dann, wenn $F\equiv \{K\rightarrow R | (R,\bf{K})\in S, K\in\bf{K}\}$ | ||||
| - Verbundtreue (Kennung T2) | ||||
|   - Originalrelationen können durch den Verbund der Basisrelationen wiedergewonnen werden | ||||
|   - zur Erfüllung des Kriteriums der Normalformen müssen Relationenschemata teilweise in kleinere Relationenschemata zerlegt werden | ||||
|   - für Beschränkung auf „sinnvolle“ Zerlegungen gilt Forderung, dass die Originalrelation wieder aus den zerlegten Relationen mit dem natürlichen Verbund zurückgewonnen werden kann | ||||
|     - Zerlegung des Relationenschemas $R = ABC$ in $R_1 = AB$ und $R_2 = BC$ | ||||
|     - Dekomposition bei Vorliegen der Abhängigkeiten $F = \{A \rightarrow B, C \rightarrow B\}$ ist nicht verbundtreu | ||||
|     - dagegen bei Vorliegen von $F′ = \{A \rightarrow B, B \rightarrow C\}$ verbundtreu | ||||
| 
 | ||||
| > Verbundtreue: Die Dekomposition einer Attributmenge $X$ in $X_1,..., X_p$ mit $X = \bigcup_{i=1}^p X_i$ heißt verbundtreu ($\pi \bowtie$-treu, lossless) bezüglich einer Menge von Abhängigkeiten F über X genau dann, wenn $\forall r \in SAT_X(F) : \pi_{X_1}(r) \bowtie ··· \bowtie \pi_{X_p}(r) = r$ gilt. | ||||
| 
 | ||||
| ## Weitere Abhängigkeiten | ||||
| - Mehrwertige Abhängigkeit (kurz: MVD) | ||||
|   - innerhalb einer Relation r wird einem Attributwert von X eine Menge von Y-Werten zugeordnet, unabhängig von den Werten der restlichen Attribute $\rightarrow$ Vierte Normalform | ||||
|   - Folge der 1NF: Mehrwertige Abhängigkeiten erzeugen Redundanz | ||||
|     - eine (oder mehrere) Gruppe von Attributwerten ist von einem Schlüssel bestimmt, unabhängig von anderen Attributen | ||||
|     - Resultat: Redundanz durch Bildung aller Kombinationen | ||||
|   - wünschenswerte Schemaeigenschaft bei Vorliegen von MVDs: vierte Normalform | ||||
|     - fordert die Beseitigung derartiger Redundanzen: keine zwei MVDs zwischen Attributen einer Relation | ||||
|     - Elimination der rechten Seite einer der beiden mehrwertigen Abhängigkeiten, | ||||
|     - linke Seite mit dieser rechten Seite in neue Relation kopiert | ||||
| - Verbundabhängigkeit (kurz: JD) | ||||
|   - R kann ohne Informationsverlust in $R_1,..., R_p$ aufgetrennt werden: $\bowtie [R_1,..., R_p]$ | ||||
| - Inklusionsabhängigkeit (kurz: IND) | ||||
|   - auf der rechten Seite einer Fremdschlüsselabhängigkeit nicht unbedingt der Primärschlüssel einer Relation | ||||
| 
 | ||||
| > Vierte Normalform: erweitertes Relationenschema $R = (R, \bf{K})$ ist in vierter Normalform (4NF) bezüglich M genau dann, wenn für alle $X\rightarrow\rightarrow Y \in M^+$ gilt: $X\rightarrow\rightarrow Y$ ist trivial oder $X\supseteq K$ für ein $K\in\bf{K}$ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # die Datenbanksprache SQL | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user