faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [25.11.2020 20:20] sbelfaecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [08.12.2020 08:23] sbel
Zeile 1: Zeile 1:
 ====== n-m Beziehungen ====== ====== n-m Beziehungen ======
  
-In normalisierten Datenbanklen kommen häufig "Beziehungstabellen" zum Einsatz, welche die Verbindung zwischen den Entitäten herstellen. n-m-Beziehungen benötigen immer eine solche Beziehungstabelle. +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**
 + 
 +===== Beispiel ===== 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A1) === === (A1) ===
  
-  * Importiere die Tabellen der normalisierte Zahnarztbedarfsdatenbank in deine Übungsdatenbank. ({{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:zahnarztbedarf_2nf.zip |}}) +{{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:erfilme.png |}} 
-  Erstelle ein ER-Diagramm für die Datenbank + 
-  Gib ein SQL-Statement an, das alle Produkte der Firma Eisen-Karl mit Hilfe des Filters ''WHERE hersteller.firma = 'Eisen Karl' '' auflistet. + 
-  Gib ein SQL-Statement an, das alle Bestellungen von Viktoria auflistet. +{{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:tabellen.png?400 |}} 
-  Gib ein SQL-Statement an, das den Rechungsbetrag von Dr. Blutgesicht ausgibt.+ 
 + 
 +Die Struktur der Beziehungstabelle sieht so aus: 
 + 
 +''schauspieler_film(__sfid__, sid↑ , fid↑)'' 
 + 
 +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  
 + 
 +  id,   
 +---- 
 +Importiere für die folgenden Übungen die Tabellen der normalisierte Zahnarztbedarfsdatenbank in deine Übungsdatenbank. ({{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:zahnarztbedarf_2nf.zip |}}) 
 + 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A2) === 
 + 
 +Erstelle ein ER-Diagramm für die Datenbank. 
 + 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A3) === 
 + 
 +  - Gib ein SQL-Statement an, das alle Produkte der Firma  mit Hilfe des Filters ''WHERE hersteller.firma = 'Eisen Karl' '' auflistet((Du sollst also nicht "von Hand" zuerst die Hersteller ID nachschauen...))
 +  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,doktoren, produkte, bestellungen  
 +WHERE bestellungen.produkt_id = produkte.id 
 +AND bestellungen.doktor_id = doktoren.id 
 +AND bestellungen.hersteller_id = hersteller.id 
 +AND hersteller.firma = "Eisen-Karl" 
 +</code> 
 + 
 +++++ 
 + 
 +++++ Lösung 2 | 
 +<code sql> 
 +SELECT * FROM hersteller,doktoren, produkte, bestellungen  
 +WHERE bestellungen.produkt_id = produkte.id 
 +AND bestellungen.doktor_id = doktoren.id 
 +AND bestellungen.hersteller_id = hersteller.id 
 +AND doktoren.vorname = "Viktoria" 
 +</code> 
 +++++ 
 + 
 +++++ Lösung 3 | 
 +<code sql> 
 +SELECT * FROM hersteller,doktoren, produkte, bestellungen  
 +WHERE bestellungen.produkt_id = produkte.id 
 +AND bestellungen.doktor_id = doktoren.id 
 +AND bestellungen.hersteller_id = hersteller.id 
 +AND doktoren.name = "Blutgesicht" 
 +</code> 
 +++++ 
 + 
 +++++ Lösung 5 | 
 +<code sql> 
 +SELECT sum(preis) AS rechnung, doktoren.name FROM hersteller,doktoren, produkte, bestellungen  
 +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 
 +</code> 
 +++++ 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (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 = "Eisen-Karl" 
 +</code> 
 + 
 +Was wird hier abgefragt? Experimentiere mit der WHERE BEdingung und mit den angezeigten Feldern.
  • faecher/informatik/oberstufe/datenbanken/nm_beziehungen/start.txt
  • Zuletzt geändert: 11.11.2022 11:47
  • von Frank Schiebel