7 - Konzeptionelle Modellierung [ID:804]
50 von 678 angezeigt

Also herzlich willkommen zur Vorlesung konzeptionelle Modellierung.

Wir wiederholen wie immer kurz, was wir beim letzten Mal besprochen haben. Beim letzten Mal

hatten wir das Kapitel Normalisierung und da ging es darum, wir haben eine Menge von Tabellen und

jetzt wollen wir feststellen, sind diese Tabellen wirklich redundanzfrei oder haben wir da nicht

vielleicht Tabellen drin, die eigentlich Informationen enthalten, die zu verschiedenen Entity-Typen

gehören. Um das rauszukriegen, haben wir funktionale Abhängigkeiten zwischen den Attributen in dieser

Tabelle untersucht. Den Begriff funktionale Abhängigkeit, den haben wir schon länger gekannt,

den wenden wir jetzt eben nicht mehr auf verschiedene Entity-Typen an, sondern wir gucken, ob bestimmte

Attribute voneinander funktional abhängig sind. Attribut B ist funktional abhängig von einem

Attribut A, wenn es zu einem Wert in A immer nur höchstens einen Wert in B auch gibt. Wir sagen

dann eben auch A bestimmt B. Wir haben mal solche funktionalen Abhängigkeiten untersucht und

basierend auf diesen funktionalen Abhängigkeiten, die wir in den Tabellen gefunden haben, haben wir

dann verschiedene Normalformen definiert. Okay, die erste Normalform, die steht hier schon an der

Tafel, die ist für uns nichts Neues, denn so haben wir eigentlich unsere Tabellen im relationalen

Datenmodell überhaupt definiert. Jedes Feld in einer Tabelle enthält nur atomare Attributwerte,

also da dürfen wir nicht mehrere Werte in ein Feld reinschreiben und da gehören dann noch

andere Eigenschaften dazu. Wir haben eine Menge von Spalten, eine Menge von Zeilen, es gibt keine

zwei gleichen Zeilen in der Tabelle, in jedem Feld steht nur ein atomarer Attributwert, der zum

Wertebereich des jeweiligen Attributs gehört. Wenn das alles der Fall ist, dann reden wir von einer

Tabelle in erster Normalform. Die Tabelle ist in zweiter Normalform, wenn sie in erster Normalform

ist und zusätzlich gilt, es gibt keine partiellen Abhängigkeiten, vereinfacht ausgedrückt. Oder,

da hatten wir auch uns überlegt, was ist der Fall, den wir da eliminieren wollen. Wir haben einen

zusammengesetzten Premierschlüssel oder einen zusammengesetzten Schlüsselkandidaten aus zwei

Attributen mindestens, A und B und jetzt haben wir da noch mehrere Attribute in unserer Tabelle drin

und wir haben eine funktionale Abhängigkeit, sagen wir mal so, C ist funktional abhängig von A und B,

jedes Attribut ist funktional abhängig von A und B, weil A und B der Premierschlüssel in dieser

Tabelle ist. Dann ist automatisch jedes andere Attribut davon funktional abhängig. Jetzt haben

wir aber zusätzlich hier eine partielle Abhängigkeit, D ist nur von B alleine funktional abhängig und nicht

vom ganzen Premierschlüssel, das heißt, D ist nicht voll funktional abhängig, so haben wir das

genannt von diesem Premierschlüssel und das nennen wir eine partielle Abhängigkeit. Dann besteht eben

der Verdacht, dass B alleine schon Entities eines anderen Typs identifiziert. Wir haben mal festgestellt,

wenn wir so eine Tabelle haben, da ist dann wirklich redundante Information drin. Das eliminieren wir,

indem wir das abhängige Attribut rausziehen. Wir machen also da zwei Tabellen draus, R1, was bleibt

in der Tabelle drin? Alles bis auf dieses abhängige Attribut, also da bleibt drin A, B und C, A, B ist

nach wie vor der Premierschlüssel und dieses abhängige Attribut, das ziehen wir raus. Da haben

wir jetzt übrig im R2, D haben wir rausgezogen und D wird identifiziert über einen Premierschlüssel D,

das ist diese funktionale Abhängigkeit hier, die wir rausgezogen haben. Wir hatten gefordert,

wenn wir Tabellen zerlegen, dann müssen zwei Eigenschaften erfüllt sein, nämlich erstens,

diese Zerlegung muss verlustfrei sein, das heißt, dass diese zwei neuen Tabellen,

muss man eigentlich unsere ursprüngliche Tabelle wieder zusammensetzen können. Und dass das hier

verlustfrei ist, das können Sie sich auch leicht überlegen, für jedes Tupel A, B, C in R1 können

wir den fehlenden D-Wert in der Tabelle R2 nachgucken, denn für jedes B hier, was wir hier haben,

können wir nachgucken, welches D gehört dazu. Da gibt es nur eins, weil D funktional abhängig ist

von B. Dieses B hier ist also gleichzeitig an Fremdschlüssel, auf dieses B. Über diese

Primär-Fremdschlüssel-Beziehung können wir diese zwei Tabellen wieder zusammenführen und die

ursprüngliche Tabelle wieder draus gewinnen. Das ist also verlustfrei. Die zweite Eigenschaft,

die wir gefordert hatten, war funktionale Abhängigkeiten, die von unserer ursprünglichen

Tabelle bereits garantiert werden, die sollen auch von unserer Zerlegung garantiert werden. Also bei

unserer ursprünglichen Tabelle hatten wir einen Primärschlüssel A, B und wenn wir den haben,

dann garantiert uns das, dass es pro Kombination aus A und B gibt es nur ein C und es gibt nur

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:21:39 Min

Aufnahmedatum

2010-06-08

Hochgeladen am

2011-04-11 13:53:28

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen