Relationales Datenmodell

Wang

Bekanntes Mitglied
Hallo zusammen,

die folgende Aufgabe stammt aus der Vorlesung "Datenbanksysteme I" und sie bereitet mir etwas Kopfschmerzen:

homeworkh.png



Ich hänge momentan bei der (a), denn man kann doch hier einfach das Attribut "Ware" als Primary Key nehmen und hätte damit die Eigenschaften Minimalität und Eindeutigkeit erfüllt... Oder ist das ein Nachteil?

Ich danke Euch vielmals!

Gruß
Wang
 
N

nillehammer

Gast
Die Tabelle verletzt die zweite Normalform, nach der jedes nicht-Schlüssel Attribut vom Primärschlüssel abhängig sein soll.Das führt dazu, dass Lieferant und Adresse mehrfach in der Tabelle auftauchen. Wenn Du normalisieren würdest und eine eigene Tabelle Lieferant hättest und eine Tabelle Waren, welche einen Fremdschlüssel auf Lieferant hätte, dann wäre das Problem gelöst.
 

Wang

Bekanntes Mitglied
Vielen Dank (der Fachbegriff stand nicht mal im Skript...)! ;)

Bei der (c) und (d) hätte ich:

(c) Evtl. später wichtige Daten wie der Einkaufspreis des Warenartikels, verschwinden vollständig aus der Datenbank, obwohl der Einkaufspreis z.B. bei der eigenen Preisgestaltung wichtig wäre.

(d) Es könnte sich später herausstellen, dass er die gleiche Ware liefert wie ein anderer Lieferant.

Mir kommen meine Antworten schwammig vor, aber einen anderen Einfall habe ich nicht...
 

chalkbag

Bekanntes Mitglied
(c) ergibt sich ja schon fast aus der Fragestellung.

Wenn der Anbieter xy nur 1 Ware in dieser Form der Tabelle hat, du dann diese 1 Ware aus der Tabelle löscht, dann ist auch der Anbieter xy verschwunden weil er momentan keine bei dir gespeicherten Waren anbietet.
Wäre Ware ausgliedert aus Lieferanten hättest du in der Lieferantentabelle immer noch Lieferant XY, auch wenn keine Referenz zu Waren momentan besteht.

(d)
So wie ich das verstehe führt das zu dem Problem das der Lieferant nun das NULL Element bzw. den leerstring als Ware hat. Solange Ware kein Pflichtfeld ist, wäre das beim ersten Lieferanten ohne Waren kein Problem. Es wäre erst ein Problem wenn du einen weiteren Lieferanten ohne Waren eintragen willst, was scheitert da jede Ware laut Beschreibung nur von einem Lieferanten angeboten werden darf, somit auch das NULL Element
 

Wang

Bekanntes Mitglied
Danke für die gute Hilfe bisher.
Es wäre nett, wenn jemand einen Blick auf die Tabelle zur letzten Teilaufgabe werfen könnte:

letzte.png


Ist das so O.K.?
 
N

nillehammer

Gast
Ja, die Beziehung ist so korrekt abgebildet. Allerdings würde ich noch eine eigene Spalte für Primärschlüssel (id) in die Tabellen einbauenm, und die Beziehung über die Primärschlüssel herstellen. Name als Primärschlüssel ist eine besonders schlechte Idee. Was ist, wenn Fa. Albrecht ihren Namen ändert?
 

Evil-Devil

Top Contributor
Man könnte die Waren noch in eine eigene Tabelle legen, dann wäre es später einfacher die Bezeichnung selbiger zu ändern, falls es mal mehr als nur einen Lieferanten pro Ware geben wird.
 

Neue Themen


Oben