faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
faecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [08.12.2020 08:21] sbelfaecher:informatik:oberstufe:datenbanken:nm_beziehungen:start [05.04.2022 12:18] – [Tabelle] the
Zeile 6: Zeile 6:
 ===== Beispiel ===== ===== Beispiel =====
  
-{{:aufgabe.png?nolink  |}} +
-=== (A1) ===+
  
 {{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:erfilme.png |}} {{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:erfilme.png |}}
  
  
-{{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:tabellen.png?400 |}}+{{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:tabellen.png?300 |}}
  
  
-Die Beziehungstabelle sieht so aus:+Die Struktur der Beziehungstabelle sieht so aus:
  
-schauspieler_film(__sfid__, sid↑ , fid↑)+''schauspieler_film(__sfid__, sid↑ , fid↑)''
  
 +Das vollständige Schema sieht also so aus:
  
-Eine kurze Recherche ergibt (unter anderem): +''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 eie 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    |
  
-  * Megy Ryan spielt in "Harry And Sally" mit.  
 ---- ----
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
 +
 +Ergänze die Beziehungstabelle unter Verwendung entsprechenden Ressourcen.
 +
 +
 +----
 +
 +<WRAP center round box 90%>
 Importiere für die folgenden Übungen die Tabellen der normalisierte Zahnarztbedarfsdatenbank in deine Übungsdatenbank. ({{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:zahnarztbedarf_2nf.zip |}}) Importiere für die folgenden Übungen die Tabellen der normalisierte Zahnarztbedarfsdatenbank in deine Übungsdatenbank. ({{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:zahnarztbedarf_2nf.zip |}})
 +</WRAP>
 +
  
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (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 40: Zeile 66:
   - 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 12EUR liegt+  - Gib ein SQL-Statement an, deren Rechnungsbetrag über 100EUR liegt
  
  
Zeile 68: Zeile 94:
 ++++ Lösung 3 | ++++ Lösung 3 |
 <code sql> <code sql>
-SELECT * FROM hersteller,doktoren, produkte, bestellungen +SELECT sum(preis*anzahl) AS rechnung, doktoren.name FROM hersteller,doktoren, produkte, bestellungen 
 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 78: Zeile 104:
 ++++ Lösung 5 | ++++ Lösung 5 |
 <code sql> <code sql>
-SELECT sum(preis) AS rechnung, doktoren.name FROM hersteller,doktoren, produkte, bestellungen +SELECT sum(preis*anzahl) AS rechnung, doktoren.name FROM hersteller,doktoren, produkte, bestellungen 
 WHERE bestellungen.produkt_id = produkte.id WHERE bestellungen.produkt_id = produkte.id
 AND bestellungen.doktor_id = doktoren.id AND bestellungen.doktor_id = doktoren.id
 AND bestellungen.hersteller_id = hersteller.id AND bestellungen.hersteller_id = hersteller.id
 GROUP BY doktoren.name GROUP BY doktoren.name
-HAVING rechnung >12+HAVING rechnung >100
 </code> </code>
 ++++ ++++
Zeile 100: Zeile 126:
 </code> </code>
  
-Was wird hier abgefragt? Experimentiere mit der WHERE BEdingung und mit den angezeigten Feldern.+Was wird hier abgefragt? Experimentiere mit der WHERE Bedingung und mit den angezeigten Feldern.