Astrid

Aus ProgrammingWiki

Inhaltsverzeichnis

Thema der Datenbank

Abgebildet ist die Datenbank eines Besitzer mehrerer Supermärkte, die zu einer Kette gehören, um den Überblick über Personal etc. zu behalten.


Entity-Relationship-Modell

Fastfood.jpeg


Relationenmodell

Personal (P_Nr, S_Nr, Name, Vorname, Straße, PLZ, Hausnummer, Lohn)

Standort (S_Nr, P_Nr, Straße, PLZ, Hausnummer)

Produkte (Pr-Nr, Preis, Zusatzstoffe, Produktbeschreibung)

bietet an (S_Nr, Pr_Nr, Preis)

Zulieferer (Z-Nr, Lieferprodukt, PLZ, Straße, Hausnummer)

liefert an (S_Nr, Z-Nr, Lieferdatum)

PLZ (PLZ, Ort )

Legende:

Fett: Primärschlüssel

kursiv: Fremdschlüssel

unterstrichen: doppelter Primärschlüssel

 Erste Normalform: Nur eine Information pro Feld
 Zweite Normalform: Trennung der Tabellen nach ihren Kardinalitäten (1:1-Beziehung wird in eine Tabelle zusammengeführt) und Einführung von Fremdschlüsseln.
 Dritte Normalform: keine Abhängigkeit einzelner Attribute außer vom Primärschlüssel.
Kardinalitäten: Sind Beziehungstypen, die die einzelnen Entitys miteinander verbinden.
1:1-Beziehung: Jedem Attribut der Entitymenge A wird genau ein Attribut der Entitymenge B zugeordnet und andersrum.
1:n-beziehung: Jedem Attribut der Entitymenge A werden mehrere Attribute der Entitymenge B zugeordnet, umgekehrt jedoch nur 1 aus B zu einem aus A. Beim Überführen in das Relationenmodell wird der Primärschlüssel der ersten Entitymenge als Fremdschlüssel in die zweite Entitymenge eingeführt.
n:m-Beziehung: Jedem Attribut der Entitymenge A werden mehrere Attribute der Entitymenge B zugeordnet. Beim Überführen in das Relationenmodell entsteht eine neue Tabelle. Diese enthält beide Primärschlüssel der Entitymengen als Fremdschlüssel.

Im Nachhinein ist mir noch eingefallen, dass nach Transformationsregel 1 jede Information in ein extra Feld gehört und die Hausnummer extra aufgeführt werden sollte. Auch ist die Postleitzahl vom Ort abhängig und sollte in eine extra Tabelle eingefügt werden. Das hab ich leider im ERM nicht berücksichtig und werde erst im Nachhinein eine extra Tabelle für Ort und PLZ anlegen, da sonst die dritte Normalform nicht erfüllt ist.

Datenbank

Damit der Besitzer sehen kann, welcher Angestellte an Standort 100 arbeitet.


So sieht der besitzer, was für eine Hausnummer und Personalnummer die Mitarbeiter haben, die an Standort 107 arbeiten.

So sieht der Besitzer, welche Mitarbeiter aus dem Ort mit der PLZ 02625 kommen und an welchem Standort diese arbeiten.


Fazit

Ich hätte bei der Erstellung des ERM gründlicher über die Beziehungen und die Abhängigkeiten untereinander nachdenken sollen, dass würde das bestimmt anders aussehen. Als Erweiterung könnte man noch sowas wie Rabattaktionen einführen oder bisherige Beschwerden von Kunden oder Produkte aufführen, die man auf Grund von Mängeln zurückrufen musste. Aber im Großen und Ganzen bin ich mit meiner Arbeit nicht gerade unzufrieden.