# Relationales Datenmodell



## Wang (27. Okt 2011)

Hallo zusammen,

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








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


----------



## nillehammer (27. Okt 2011)

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 (27. Okt 2011)

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 (27. Okt 2011)

(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 (28. Okt 2011)

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






Ist das so O.K.?


----------



## nillehammer (30. Okt 2011)

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 (31. Okt 2011)

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.


----------

