===== Lösung zu Aufgabe 1 ====== In einem Theater soll eine Datenbank eingeführt werden, in der die Theaterstücke, die Schauspieler/innen und die Aufführungen (welcher Saal?, wann?) verwaltet werden. * a) Erstelle das Klassendiagramm mit Relationen (noch ohne Attribute) und darauf aufbauend das relationale Modell (insgesamt mindestens 6 Attribute)! * b) Wie könnte das Modell erweitert werden, damit nicht nur gespeichert werden kann, welche Schauspieler in welchen Stücken mitspielen, sondern auch, welche Rolle sie jeweils haben? ==== a) Klassendiagramm und relationales Modell ===== {{ :jg10:modellierung10einstieg:aufgabe1loesung:pasted:20231019-102912.png?500 }} **Relationales Modell:** \\ * Schauspielerin [__id: integer__, rufname: varchar(80), familienname: varchar(80)] * Theaterstück [__id: integer__, titel: varchar(200), autor: varchar(100)] * spielt_in [//__schauspielerin_id: integer__//, //__theaterstück_id: integer__//] * Aufführung [__id: integer__, zeitpunkt: datetime, //theaterstück_id: integer//, //saal_id: integer//] * Saal[__id: integer__, name: varchar(100), kapazität: integer] {{ :jg10:modellierung10einstieg:aufgabe1loesung:pasted:20231019-103323.png?500 }} Wir sehen hier erstmals den Fall, dass eine n:m-Relation ein zusätzliches Attribut hat (hier: die Rolle). Man bildet es ab, indem man die Beziehungstabelle um eine entsprechende Fremdschlüsselspalte erweitert. Zur Veranschaulichung nachfolgend die vier beteiligten Tabellen mit ein paar Beispieldatensätzen: {{ :jg10:modellierung10einstieg:aufgabe1loesung:pasted:20231019-113903.png?800 }}