Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [08.12.2020 07:41] – sbel | faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [12.11.2024 15:51] (aktuell) – Marco Kuemmel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== n-m Beziehungen ====== | ====== n-m Beziehungen ====== | ||
- | In normalisierten Datenbanken kommen häufig " | + | In normalisierten Datenbanken kommen häufig " |
- | herstellen. **n-m-Beziehungen benötigen immer eine solche Beziehungstabelle**. | + | |
===== Beispiel ===== | ===== Beispiel ===== | ||
Zeile 11: | Zeile 10: | ||
- | {{ : | + | {{ : |
Zeile 18: | Zeile 17: | ||
'' | '' | ||
- | Eine kurze Recherche ergibt (unter anderem), dass Meg Ryan in "Harry And Sally" mitspielt. Um diese Beziehung abzubilden, muss in unserer schauspieler_film-tabelle eie Zeile der Form | + | Das vollständige Schema sieht also so aus: |
- | ^ id ^ sid | fid | | + | '' |
- | | 1 | + | '' |
+ | '' | ||
+ | |||
+ | |||
+ | |||
+ | 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 | ||
eingefügt werden. Der Umstand, dass John Belushi eine Rolle in Blues Brothers spielt, führt zu einer weiteren Zeile: | eingefügt werden. Der Umstand, dass John Belushi eine Rolle in Blues Brothers spielt, führt zu einer weiteren Zeile: | ||
- | ^ id ^ sid | fid | | + | ^ sfid | sid | fid | |
- | | 1 | + | | 1 |
- | | 2 | + | | 2 |
---- | ---- | ||
Zeile 34: | Zeile 41: | ||
=== (A1) === | === (A1) === | ||
- | Ergänze die Beziehungstabelle unter Verwendung | + | Ergänze die Beziehungstabelle unter Verwendung |
Zeile 40: | Zeile 47: | ||
<WRAP center round box 90%> | <WRAP center round box 90%> | ||
- | Importiere für die folgenden Übungen die Tabellen der normalisierte | + | Importiere für die folgenden Übungen die Tabellen der normalisierten |
</ | </ | ||
Zeile 47: | Zeile 54: | ||
=== (A2) === | === (A2) === | ||
- | Erstelle ein ER-Diagramm für die Datenbank. | + | Erstelle ein ER-Diagramm für die Datenbank. Überführe das ER Modell in ein relationales Datenbankschema. |
Zeile 55: | Zeile 62: | ||
- Gib ein SQL-Statement an, das alle Produkte der Firma mit Hilfe des Filters '' | - Gib ein SQL-Statement an, das alle Produkte der Firma mit Hilfe des Filters '' | ||
- | - Gib ein SQL-Statement an, das alle Bestellungen von Viktoria auflistet. | + | - Gib ein SQL-Statement an, das alle Bestellungen |
- Gib ein SQL-Statement an, das den Rechnungsbetrag von Dr. Blutgesicht ausgibt. | - Gib ein SQL-Statement an, das den Rechnungsbetrag von Dr. Blutgesicht ausgibt. | ||
- Gib ein SQL-Statement an, das alle Doktoren ausgibt, die Zement gekauft haben | - Gib ein SQL-Statement an, das alle Doktoren ausgibt, die Zement gekauft haben | ||
- | - Gib ein SQL-Statement an, deren Rechnungsbetrag über 100EUR liegt | + | - Gib ein SQL-Statement an, das alle Doktoren ausgibt, deren Rechnungsbetrag über 100EUR liegt |
Zeile 65: | Zeile 72: | ||
<code sql> | <code sql> | ||
- | SELECT | + | SELECT |
WHERE bestellungen.produkt_id = produkte.id | WHERE bestellungen.produkt_id = produkte.id | ||
- | AND bestellungen.doktor_id = doktoren.id | ||
AND bestellungen.hersteller_id = hersteller.id | AND bestellungen.hersteller_id = hersteller.id | ||
AND hersteller.firma = " | AND hersteller.firma = " | ||
Zeile 76: | Zeile 82: | ||
++++ Lösung 2 | | ++++ Lösung 2 | | ||
<code sql> | <code sql> | ||
- | SELECT | + | SELECT |
WHERE bestellungen.produkt_id = produkte.id | WHERE bestellungen.produkt_id = produkte.id | ||
AND bestellungen.doktor_id = doktoren.id | AND bestellungen.doktor_id = doktoren.id | ||
Zeile 91: | Zeile 97: | ||
AND bestellungen.hersteller_id = hersteller.id | AND bestellungen.hersteller_id = hersteller.id | ||
AND doktoren.name = " | AND doktoren.name = " | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++ Lösung 4 | | ||
+ | <code sql> | ||
+ | select vorname, name from bestellungen, | ||
+ | WHERE bestellungen.produkt_id=produkte.id | ||
+ | AND bestellungen.doktor_id=doktoren.id | ||
+ | AND produkte.produkt=" | ||
</ | </ | ||
++++ | ++++ | ||
Zeile 118: | Zeile 133: | ||
</ | </ | ||
- | Was wird hier abgefragt? Experimentiere mit der WHERE BEdingung | + | Was wird hier abgefragt? Experimentiere mit der WHERE Bedingung |