Buch
- titel
- erscheinungsjahr
Aufgabe 4
Übertrage dieselben Informationen zwischen dem objektorientierten und dem relationalen Modell.
Einstieg
Eine Klassenkarte zeigt eine Klasse mit ihren Attributen. Ein Tabellenschema zeigt dieselbe Struktur als Tabelle mit Spalten.
Für jede Spalte wird zusätzlich festgelegt, welche Art von Wert sie speichern darf.
varchar(255)intcharN.dateWähle für jede Eigenschaft den passenden Datentyp.
Beispiel
Das Beispiel ist bewusst einfacher als die nächsten Aufgaben: Eine Bibliothek verwaltet Bücher.
buch(
titel: varchar(255)
erscheinungsjahr: int
)Merke die Syntax:
{ } sind ebenfalls erlaubt, mit oder ohne Leerzeichen davor.Wähle die zutreffende Aussage.
Anwenden
usersSchreibe das vollständige Tabellenschema. Nutze Klammern und Doppelpunkte; Einrückung und Attributreihenfolge sind frei.
Beginne mit dem Tabellennamen und (. Beende das Schema mit ).
Setze in jeder Attributzeile einen Doppelpunkt vor den Datentyp. Leerzeichen am Zeilenanfang sind freiwillig.
id ist eine ganze Zahl, ein Benutzername ist Text und ein Geburtstag ist ein Datum.
Anwenden
photosSchreibe das vollständige Tabellenschema für Fotos. Nutze die gelernte Syntax; die Attributreihenfolge ist egal.
Schreibe zuerst photos( und setze die schließende Klammer in die letzte Zeile.
Eine Beschreibung und eine URL bestehen aus Text; die ID ist eine Zahl.
Die beiden Attribute mit _at enthalten Datumsangaben. Übertrage alle fünf Attribute genau einmal.
Entdecken
Vergleiche die beiden vollständigen Tabellenschemata. Eine Zeile in photos verweist auf users.
users(
id: int
username: varchar(255)
birthday: date
)photos(
id: int
description: varchar(255)
url: varchar(255)
user_id[users]: int
created_at: date
updated_at: date
)Achte auf den Namen in den eckigen Klammern.
Ein Benutzer kann mehrere Fotos hochladen. Jedes Foto gehört zu genau einem Benutzer.
user_id[users] ist der Fremdschlüssel. Im Klassendiagramm wird er nicht als Attribut übernommen: Die Verbindung erscheint als 1:n-Beziehung.
Gegenrichtung
Erstelle aus dem Tabellenschema die Klassenkarte. Entscheide dabei, welche Zeilen Attribute der Klasse werden.
photos(
id: int
description: varchar(255)
url: varchar(255)
user_id[users]: int
created_at: date
updated_at: date
)Übernimm den Tabellennamen als Klassennamen.
Datentypen gehören nicht in die Klassenkarte. Prüfe außerdem die Zeile mit den eckigen Klammern.
Der Fremdschlüssel beschreibt die Beziehung und wird nicht als Attribut übernommen. Fünf Attribute bleiben übrig.
Sicherung
Wähle für beide Umwandlungen die passende Merkhilfe.
Abschlussübersicht
tabellenname(, danach attribut: datentyp, zum Schluss ). Einrückungen sind erlaubt, aber freiwillig.