In normalisierten Datenbanken kommen häufig "Beziehungstabellen" zum Einsatz, welche die Verbindung zwischen den Entitäten herstellen. n-m-Beziehungen benötigen immer eine solche Beziehungstabelle.
Die Struktur der Beziehungstabelle sieht so aus:
schauspieler_film(sfid, sid↑ , fid↑)
Das vollständige Schema sieht also so aus:
schauspieler_film(sfid, sid↑ , fid↑)
schauspieler(sid, SVorname, SNachname)
filme(fid, titel)
Eine kurze Recherche ergibt (unter anderem), dass Meg Ryan in "Harry And Sally" mitspielt. Um diese Beziehung abzubilden, muss in unserer schauspieler_film-Tabelle eine Zeile der Form
sfid | sid | fid |
---|---|---|
1 | 4 | 2 |
eingefügt werden. Der Umstand, dass John Belushi eine Rolle in Blues Brothers spielt, führt zu einer weiteren Zeile:
sfid | sid | fid |
---|---|---|
1 | 4 | 2 |
2 | 6 | 1 |
Ergänze die Beziehungstabelle unter Verwendung entsprechender Ressourcen (Suchmaschine).
Importiere für die folgenden Übungen die Tabellen der normalisierten Zahnarztbedarfsdatenbank in deine Übungsdatenbank. (zahnarztbedarf_2nf.zip)
Erstelle ein ER-Diagramm für die Datenbank. Überführe das ER Modell in ein relationales Datenbankschema.
WHERE hersteller.firma = 'Eisen Karl'
auflistet1).
Teste das folgende SQL Statement:
SELECT DISTINCT produkt, firma FROM produkte p INNER JOIN bestellungen b ON p.id=b.produkt_id INNER JOIN hersteller h ON h.id=b.hersteller_id WHERE h.firma = "Eisen-Karl"
Was wird hier abgefragt? Experimentiere mit der WHERE Bedingung und mit den angezeigten Feldern.