Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [25.11.2020 21:55] – sbel | faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== n-m Beziehungen ====== | ||
- | In normalisierten Datenbanken kommen häufig " | ||
- | |||
- | Importiere für die folgenden Übungen die Tabellen der normalisierte Zahnarztbedarfsdatenbank in deine Übungsdatenbank. ({{ : | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Erstelle ein ER-Diagramm für die Datenbank. | ||
- | |||
- | |||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | - 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 den Rechnungsbetrag von Dr. Blutgesicht ausgibt. | ||
- | - Gib ein SQL-Statement an, das alle Doktoren ausgibt, die Zement gekauft haben | ||
- | - Gib ein SQL-Statement an, deren Rechnungsbetrag über 12EUR liegt | ||
- | |||
- | |||
- | |||
- | ++++ Lösung 1 | | ||
- | |||
- | <code sql> | ||
- | SELECT * FROM hersteller, | ||
- | WHERE bestellungen.produkt_id = produkte.id | ||
- | AND bestellungen.doktor_id = doktoren.id | ||
- | AND bestellungen.hersteller_id = hersteller.id | ||
- | AND hersteller.firma = " | ||
- | </ | ||
- | |||
- | ++++ | ||
- | |||
- | ++++ Lösung 2 | | ||
- | <code sql> | ||
- | SELECT * FROM hersteller, | ||
- | WHERE bestellungen.produkt_id = produkte.id | ||
- | AND bestellungen.doktor_id = doktoren.id | ||
- | AND bestellungen.hersteller_id = hersteller.id | ||
- | AND doktoren.vorname = " | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ++++ Lösung 3 | | ||
- | <code sql> | ||
- | SELECT * FROM hersteller, | ||
- | WHERE bestellungen.produkt_id = produkte.id | ||
- | AND bestellungen.doktor_id = doktoren.id | ||
- | AND bestellungen.hersteller_id = hersteller.id | ||
- | AND doktoren.name = " | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ++++ Lösung 5 | | ||
- | <code sql> | ||
- | SELECT sum(preis) AS rechnung, doktoren.name FROM hersteller, | ||
- | WHERE bestellungen.produkt_id = produkte.id | ||
- | AND bestellungen.doktor_id = doktoren.id | ||
- | AND bestellungen.hersteller_id = hersteller.id | ||
- | GROUP BY doktoren.name | ||
- | HAVING rechnung >12 | ||
- | </ | ||
- | ++++ | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (Bonus 1) === | ||
- | |||
- | Teste das folgende SQL Statement: | ||
- | |||
- | <code sql> | ||
- | 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 = " | ||
- | </ | ||
- | |||
- | Was wird hier abgefragt? Experimentiere mit der WHERE BEdingung und mit den angezeigten Feldern. |