Funktioniale Abhängigkeit und Normalform

Dr Franke Ghostwriter
Hallo
kann mir von euch jemand in einfachen Worten Schritt für Schritt erklären, wie ich bei einer Fragestellung wie der folgenden vorgehen muss, um rauszufinden, in welcher Normalform sich die Relationen befinden?

Aufgabe 5: Normalformen
Gegeben sei folgendes relationale Datenbankschema mit den Relationenschemata:

Ware (Warenbez, Lager, Lager_Leiter)
Bestellung (Lieferant, L_Anschrift, Warenbez, Menge)

Es gelten folgende funktionale Abhängigkeiten
Lager -> Lagerleiter
Lieferant -> L_Anschrift
Lieferant, Warenbez -> Menge
Warenbez -> Lager

a)
Welche Normalformen genügen für die Relationenschemata und welche nicht (2NF, 3NF, BCNF)?
Begründen Sie Ihre Antwort

Vielen Dank schon mal und Gruß
Fini
 
wenn die Frage noch besteht, ich würde so vorgehen:

Relation Ware:
hierzu gehören die Abhängigkeiten:
Lager -> Lagerleiter
Warenbez -> Lager
Der Schlüssel ist Warenbez.

Diese Relation ist in 2. NF, da es keine Nichtschlüsselattribute gibt, die nur von einer Teilmenge des Schlüssels abhängig sind. D.h. hat die Relation keinen aus mehreren Attributen zusammengesetzten Schlüssel ist diese meist in 2. NF.

Die Relation ist nicht in 3. NF, da das Nichtschlüsselattribut Lagerleiter funktional Abhängig von den Nichtschlüssel Lager ist. D.h. eine Seite der funktionalen Abhängigkeit muss einen Schlüssel beinhalten.

Somit ist die Relation auch nicht in BCNF.​


Relation Bestellung:
hierzu gehören die Abhängigkeiten:
Lieferant -> L_Anschrift
Lieferant, Warenbez -> Menge​

Daraus ergibt sich der Schlüssel {Lieferant, Warenbez}.

Die Relation ist nicht in 2. NF, da L_Anschrift funktional abhängig ist von einer Teilmenge des Schlüssels und zwar von Lieferant.

Somit ist die Relation auch nicht in 3. NF und BCNF.​
 
Hallo,

hier ein Erklärungsversuch (unter Vorbehalt 🙂 ):

ich würde erst den Schlüssel ermitteln:
Warenbez ist Schlüssel für die erste Relation.
Lieferant, Warenbez ist Schlüssel für die zweite Relation.


2NF: 1NF und jedes Nichtschlüsselattribut A von R in F+ voll funktional abhängig von jedem Schlüssel X von R.
Mit anderen Worten: Wenn ein Nichtschlüsselattribut von einem Teil des Schlüssels eindeutig identifiziert werden kann, liegt keine 2 NF vor.
Prüfung für R1: Schlüssel besteht nur aus 1 Attribut, deswegen automatisch in 2 NF.
Prüfung für R2: Nichtschlüsselattribute: L_Anschrift und Menge. Ist eines der beiden von einem Teil des Schlüssels (also Lieferant oder Warenbez) abhängig?
Ja, denn Lieferant -> L_Anschrift
also keine 2 NF.
Zerlegen: R2a=(Lieferant, L_Anschrift) und R2b=(Lieferant, Warenbez, Menge)


3NF: 2NF und wenn für alle X -> A <Element> F+ mit A <nicht Element X> X gilt: X enthält einen Schlüssel für R oder A ist Schlüsselattribut.
Mit anderen Worten: Aus keinem Nichtschlüsselattribut darf ein anderes Nichtschlüsselattribut folgen.
Prüfung für R1: Nichtschlüsselattribute Lager und Lager_Leiter. Folgt eins aus dem anderen? Ja, denn Lager -> Lagerleiter.
Zerlegung: R1a = (Lager, Lagerleiter), R1b = (Warenbez, Lager)
Prüfung für R2a: Gibt nur ein Nichtschlüsselattribut, also automatisch in 3NF
Prüfung für R2b: Gibt nur ein Nichtschlüsselattribut, also automatisch in 3NF


Viele Grüße
Birgit
 
Oben