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 als PK 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.
  • Kardinalitätsnotationen:

    • ||--|| : 1:1 Beziehung
    • ||--|{ : 1:n Beziehung
    • ||--o{ : 1:optional n Beziehung
    • o{--|{ : 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.
RelationAttribute
BesitzerGewerbeNr (PK), Name
StandPlatzNr (PK), GewerbeNr (FK), Name
GegenstandBezeichnung (PK), Preis
MitarbeiterPersNr (PK), Name, PlatzNr (FK)
BesucherSteuerId (PK), Geb_Datum
KauftSteuerId (FK), Bezeichnung (FK), StandNr (FK), Anzahl
Freier_EintrittSteuerId (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.