Aufgabe 1-1 Relationships
Geben Sie für jeden der folgenden Relationship-Typen (= Beziehungs-Typen) mindestens ein Beispiel an.
a) 1:1
- Jeder Student besitzt genau eine Matrikelnummer
b) 1:n
- Eine Mutter kann mehrere Kinder haben
c) m:n
- Ein Student kann mehrere Kurse besuchen, in diesen Kursen können mehrere Studenten eingeschrieben sein
d) 1:n rekursiv, d.h eine 1:n-Entity-Sets zu sich selbst
- Ein Mitarbeiter ist Chef von mehreren Mitarbeitern
e) m:n rekursiv
- Personen können gegenseitig Nachkommen voneinander sein
Aufgabe 1-2 Ableitung eines ER-Diagramms
Aufgabenstellung
Gegeben sei die folgende relationale „Geschäftsdatenbank“ einer Kaufhauskette:
Leiten Sie für die „Geschäftsdatenbank“ aus den Relationen ein vollständiges ER-Diagramm mit Entities, Relationships und Attributen ab.
Hinweise:
Um die Bearbeitung der Aufgabe zu erleichtern, gehen Sie die folgenden Schritte zunächst durch:
a) Identifizieren Sie die Entitäten:
- Bestimmen Sie, welche Entitäten aus den gegebenen Tabellen der „Geschäftsdatenbank“ abgeleitet werden können.
Entitäten:
- Angestellter
- Abteilung
- Filiale
- Lieferant
- Artikel
b) Bestimmen Sie die Attribute:
-
Ordnen Sie den Entitäten die entsprechenden Attribute zu, wie sie in den Tabellen beschrieben sind.
-
Angestellter:
- Attribute: Nummer, Name, Gehalt, Geburtsjahr, Einstellungsdatum
-
Abteilung:
- Attribute: Nummer, Name, Stock. Leiter ist ein Angestellter
-
Filiale:
- Attribute: Nummer, Stadt, Land
-
Lieferant:
- Attribute: Nummer, Name, Stadt, Land
-
Artikel:
- Attribute: Nummer, Name, Abteilung, Preis, Bestand, Lieferant
c) Definieren Sie die Beziehungen zwischen den Entitäten:
Aufgabenstellung
- Analysieren Sie, wie die Entitäten miteinander in Beziehung stehen. Verwenden Sie dabei die folgenden Hilfestellungen, um die Kardinalitäten (z. B. 1:1, 1:N, N:M) zu bestimmen:
- Überlegen Sie, ob eine Instanz einer Entität immer genau einer Instanz der anderen Entität zugeordnet ist.
- Überlegen Sie, ob eine Instanz einer Entität mit mehreren Instanzen der anderen Entität verbunden sein kann, aber die andere Entität nur mit einer Instanz der ersten Entität.
- Überprüfen Sie, ob beide Entitäten mehrfach miteinander verknüpft sein können.
- Angestellter Abteilung: Jeder Angestellter ist zugehörig zu einer Abteilung, und eine Abteilung kann mehrere Angestellte haben (1:n)
- Abteilung Filiale: Eine Abteilung gehört zu einer Filiale, und eine Filiale besteht aus mehreren Abteilungen (1:n)
- Lieferant Artikel: Ein Lieferant liefert beliebige Artikel, und ein Artikel wird von genau einem Lieferanten geliefert (1:n)
Korrektur:
Eine Abteilung kann von mehreren Angestellten geleitet werden, und viele Angestellte sind in einer Abteilung angestellt. Das Attribut “Leiter” für die Abteilung bedeutet Angestellter. Das bedeutet, dass es zwei 1:n-Beziehungen zwischen Abteilung und Angestellten gibt.
Aufbauend auf den vorherigen Schritten:
- Erstellen Sie auf Basis Ihrer bisherigen Analyse ein vollständiges ER-Diagramm, das die Entitäten, deren Attribute und die definierten Beziehungen visualisiert. Verwenden Sie die in der Vorlesung gezeigte Notation.
- Kennzeichnen Sie die Kardinalitäten und stellen Sie sicher, dass alle Entitäten und Beziehungen korrekt miteinander verbunden sind
erDiagram
Beziehungen zwischen den Entitäten
2. Abteilung gehört zu einer Filiale (1:n)
Filiale ||--o{ Abteilung : "besteht aus"
4. Lieferant liefert Artikel (1:n)
Lieferant ||--o{ Artikel : "liefert"
Hinweis: Ein Angestellter kann mehrere Abteilungen leiten (1:n)
Entitäten und ihre Attribute
NIKOLAUS {
string Name PK
string Kleidergroesse
}
SCHULE {
string Name PK
string Adresse
}
KLASSE {
string Zimmernummer PK
string Lehrername
string SchuleName FK
}
BESUCH {
date Besuchsdatum PK
string KlassenZimmernummer FK
string NikolausName FK
}
KIND {
string Name PK
date Geburtsdatum
string KlassenZimmernummer FK
}
GESCHENK {
string FarbeDesGeschenkbandes PK
string MotivDesGeschenkpapiers PK
float Gewicht
string KindName FK
}
SPENDER {
string Name PK
int Alter
}
VERSCHENKT {
string GESCHENK_FarbeDesGeschenkbandes PK
string GESCHENK_MotivDesGeschenkpapiers PK
string SPENDER_Name PK
string KIND_Name FK
}
Assoziative Entität für die n:m-Beziehung zwischen KIND, SPENDER und GESCHENK
SPENDER ||--o{ VERSCHENKT : "verschenkt"
GESCHENK ||--o{ VERSCHENKT : "wird verschenkt"
KIND ||--o{ VERSCHENKT : "erhält"
-
Erklärungen der Änderungen:
- GESCHENK: Anstatt
PRIMARY KEY (FarbeDesGeschenkbandes, MotivDesGeschenkpapiers)
zu verwenden, sind beide Attribute nun alsPK
gekennzeichnet, um einen zusammengesetzten Primärschlüssel darzustellen. - VERSCHENKT: Eine assoziative Entität eingeführt, um die n:m-Beziehung zwischen KIND, SPENDER und GESCHENK darzustellen. Dies ist notwendig, da Mermaid keine direkten ternären Beziehungen unterstützt.
- GESCHENK: Anstatt
-
Kardinalitätsnotationen:
||--||
: 1:1 Beziehung||--|{
: 1:n Beziehung||--o{
: 1:optional n Beziehungo{--|{
: m:n Beziehung
-
Primärschlüssel (PK): Eindeutige Identifikation einer Entität.
-
Fremdschlüssel (FK): Verbindet Entitäten durch Referenz.
Aufgabe 1-4 Ableitung eines Relationenschemas
Erzeugen Sie entsprechend der Vorlesung (Kapitel 6 Folien 16-24) aus dem gegebenen E/R-Diagramm eines Christkindlmarktes ein vollständiges Relationenschema. Unterstreichen Sie dabei in jeder Relation den Primärschlüssel und überstreichen Sie die Fremdschlüssel. Begründen Sie Ihre Umsetzung der Relationship ‘freier Eintritt’.
Korrekturen:
- Entfernen Sie
PlatzNr
aus der Relation Gegenstand, da sie unnötig ist. - Fügen Sie
StandNr
zur Relation Kauft hinzu, um den Stand zu referenzieren.
Relation | Attribute |
---|---|
Besitzer | GewerbeNr (PK), Name |
Stand | PlatzNr (PK), GewerbeNr (FK), Name |
Gegenstand | Bezeichnung (PK), Preis |
Mitarbeiter | PersNr (PK), Name, PlatzNr (FK) |
Besucher | SteuerId (PK), Geb_Datum |
Kauft | SteuerId (FK), Bezeichnung (FK), StandNr (FK), Anzahl |
Freier_Eintritt | SteuerId (FK), PersNr (FK), Datum |
Begründung der Umsetzung der Relationship ‘freier Eintritt’: Die Relationship „freier Eintritt“ verbindet die Entitäten Besucher und Mitarbeiter mit einem bestimmten Datum. Diese Beziehung wird als m:n-Beziehung dargestellt, da ein Besucher mit mehreren Mitarbeitern interagieren kann und umgekehrt. Durch die Aufnahme des Attributs Datum wird die Beziehung weiter spezifiziert, sodass jeder Eintrag eindeutig durch die Kombination von SteuerId, PersNr und Datum identifiziert werden kann.