Zum Inhalt springen

Kostenlose Lerninhalte

/informatik/161991/aufgabe

Frei zugängliche, geprüfte Lerninhalte zum Verstehen, Wiederholen und selbstständigen Üben.

Aufgabe

/informatik/161991/aufgabe

/informatik/161991/aufgabe

Gib ein Datenbankschema zum Klassendiagramm an. Erkläre, wie du die Beziehungen zwischen den Klassen abgebildet hast.

Datenbank eines Streaminganbieters
Lösung anzeigen
Lösung
Voraussetzung
Datenmodellierung
Strategie
  1. Die Schlüssel der Tabellen sind bereits unterstrichen
  2. Überlege dir die Datentypen der Attribute
  3. Schau dir die Beziehungen an und ergänze gegebenenfalls weitere Attribute und Tabellen
  4. Unterstreiche Schlüssel, Überstreiche Fremdschlüssel
Schritte

Datentypen

Suche dir passende Datentypen heraus. Ein Vorschlag:

FILM(FilmID: INT, Titel: VARCHAR(20), Laenge: INT, Genre: VARCHAR(20))

NUTZER(UserID: INT, Name: VARCHAR(20), Nutzungsstunden: DOUBLE)

ZAHLUNGSDATEN(KundenID: INT, Name: VARCHAR(30), Adresse: VARCHAR(50), Kontodaten: VARCHAR(30), Preismodell: VARCHAR(15))

{
  "plugin": "separator"
}

Beziehungen

Zwischen NUTZER und ZAHLUNGSDATEN besteht eine 1:n-Beziehung. Wie du im Kurs Beziehungen in Datenbanken nachlesen kannst, wird diese Beziehung abgebildet, indem du einen Fremdschlüssel in der Tabelle NUTZER ergänzt, der auf den Schlüssel KundenID in der Tabelle ZAHLUNGSDATEN verweist:

NUTZER(UserID: INT, Name: VARCHAR(20), Nutzungsstunden: DOUBLE, KundenID: INT)

Die m:n-Beziehung zwischen FILM und NUTZER benötigt eine neue Tabelle "angesehen", die als Attribute lediglich zwei Fremdschlüssel besitzt: Einen zur Tabelle FILM und einen zur Tabelle NUTZER:

angesehen(FilmID: INT, UserID: INT)

{
  "plugin": "separator"
}

Fertiges Datenbankschema mit Schlüsseln

Die Attribute, die du im letzten Schritt hinzugefügt hast, sind die Fremdschlüssel. Insgesamt sieht das Datenbankschema so aus:

Datenschema Streaming Datenbank

Zur Übersichtlichkeit sind Schlüssel unterstrichen und Fremdschlüssel überstrichen. Einige Leute unterstreichen Fremdschlüssel auch gestrichelt.