2010-12-05 9 views
12
Scheme (R) = (A,B,C,D,E,F,G,H) 

Function Dependencies (F) = {A->CGH, AD->C, DE->F, G->H} 

Wie würde ich eine verlustfreie Join-Zerlegung des Schemas R in die dritte Normalform (3NF) durchführen?Zerlegung in die dritte Normalform (3NF)

Jede Hilfe wird geschätzt.

+0

Sollte nicht die Studie Führer Sie den Prozess sagen, diese Art von Problem zu lösen? Oder zumindest, geben Sie eine Antwort, gegen die Sie überprüfen können? –

+4

nein es nicht, was saugt – Chris

Antwort

18

Da A → CGH und Ax → C für jeden Buchstaben x sind, können wir die zweite der funktionalen Abhängigkeiten ignorieren (AD → C), weil sie uns nichts sagt, was A → CGH nicht auch sagt.

Es gibt nichts, das B bestimmt; es gibt nichts, das D bestimmt. Da G H bestimmt und A sowohl G als auch H bestimmt, können wir G → H in eine Beziehung trennen (es gibt eine transitive Abhängigkeit A → G und G → H).

R1 = { G, H }  : PK = { G } 

Das läßt F '= {A → CG, DE → F}, und R' = (A, B, C, D, E, F, G).

die beiden funktionellen Abhängigkeiten kann zwei weitere Beziehungen links Form:

R2 = { A, C, G } : PK = { A } 
R3 = { D, E, F } : PK = { D, E } 

Das läßt R '' = {A, B, D, E}

R4 = { A, B, D, E } : PK = { A, B, D, E } 

Die Verknüpfung von R1, R2 , R3 und R4 sollten Sie mit dem R verlassen, mit dem Sie begonnen haben, für jeden Anfangswert von R (der die Einschränkungen der gegebenen funktionalen Abhängigkeiten erfüllt).

+0

1. warum Seit A → CGH und Ax → C für jeden Buchstaben x, können wir die zweite der funktionalen Abhängigkeiten ignorieren (AD → C), weil es uns nichts sagt, dass A → CGH sagt uns nicht auch? A bestimmt eine Teilmenge, bestimmt es spezifisch jedes einzelne Atom, was AD zu tun scheint? – Marine1

+0

2. Sie haben also den "neuen Schlüssel" und die Attribute, die Sie in 'F'festgelegt haben, entfernt? Ist es der Weg, der eine 3NF-Zerlegung bestimmt? Aber was ist nötig, um einen solchen Algorithmus zu starten? Mindestens zwei FD müssen das gleiche Attribut bestimmen? – Marine1

+0

@ Marine1: Ich bin mir nicht sicher, was Sie wirklich fragen. In der Antwort habe ich gesagt (und Sie haben zitiert) _ "Da A → CGH und Ax → C für jeden Buchstaben x, können wir die zweite der funktionalen Abhängigkeiten ignorieren (AD → C), weil sie uns nichts sagt, was A → CGH sagt uns auch nichts. "_ Fragen Sie nach der Gültigkeit dieser Aussage? Suche Wikipedia auf [Armstrongs Axiome] (http://en.wikipedia.org/wiki/Armstrong's_axioms) oder [Funktionale Abhängigkeiten] (http://en.wikipedia.org/wiki/Functional_dependency) und verwende Dekomposition, Augmentation und Zersetzung erneut, um AD → C von A → CGH zu erhalten. –

0

Insgesamt sollten Sie die min Abdeckung zuerst erhalten und fügen Sie dann den Schlüssel ABDE