Datenbanken
Datenbanken
Datenbanken
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Datenbanken</strong><br />
Christian Heidrich<br />
Elke Frey<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Lehrplan<br />
• Gymnasium Inf 9.2 (NTG)<br />
• Realschule Inf 8.3 und 10.1<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre<br />
Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
– Klassendiagramm und relationale<br />
Datenbank<br />
– Einfache Abfragen<br />
– Abfragen mit Aggregatfunktionen<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Klassendiagramm → Tabelle<br />
EINKAUF<br />
Kunde<br />
Geschlecht<br />
Sparte<br />
Warenbezeichnung<br />
Preis<br />
Zahlungsart<br />
Geschäft<br />
Kaufdatum<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre<br />
Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
– Klassendiagramm und relationale Datenbank<br />
– Einfache Abfragen<br />
– Abfragen mit Aggregatfunktionen<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen-Baustein: Selektion<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen-Baustein: Projektion<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen: SQL<br />
SELECT Warenbezeichnung, Preis<br />
FROM einkauf<br />
WHERE Preis > 5;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Projektion<br />
Selektion<br />
Ergebnistabelle
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
– Klassendiagramm und relationale Datenbank<br />
– Einfache Abfragen<br />
– Abfragen mit Aggregatfunktionen<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen mit Aggregatfunktionen<br />
SELECT Kunde, COUNT(*) AS Anzahl<br />
FROM einkauf<br />
WHERE Zahlungsart = ‚bar'<br />
GROUP BY Kunde;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
...
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
– Redundante Daten<br />
– Entwurf einer Datenbank,<br />
Klassendiagramm<br />
– Umsetzung der 1:n-Beziehung – Fremdschlüssel<br />
– Abfragen<br />
– Umsetzung der n:m-Beziehung<br />
– Datenintegrität<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
BAND<br />
Klassendiagramm<br />
Bandname<br />
Stil<br />
n<br />
1<br />
PERSON<br />
Vorname<br />
Nachname<br />
Geburtsjahr<br />
Instrument<br />
1<br />
^<br />
spielt_in<br />
gibt_heraus ><br />
0..n<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
CD<br />
CDTitel<br />
n<br />
LIED<br />
1<br />
LiedTitel<br />
Länge<br />
^<br />
enthalten_in
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
– Redundante Daten<br />
– Entwurf einer Datenbank, Klassendiagramm<br />
– Umsetzung der 1:n-Beziehung –<br />
Fremdschlüssel<br />
– Abfragen<br />
– Umsetzung der n:m-Beziehung<br />
– Datenintegrität<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
BAND<br />
Bandname<br />
Stil<br />
n<br />
1<br />
PERSON<br />
Vorname<br />
Nachname<br />
Geburtsjahr<br />
Instrument<br />
1<br />
⇒ Tabellenschema<br />
0..n<br />
CD<br />
CDTitel<br />
n<br />
LIED<br />
1<br />
LiedTitel<br />
Länge<br />
1. 2. Schritt:<br />
band(Bandname, Stil)<br />
cd(CDTitel)<br />
cd(CDTitel, Bandname )<br />
person(Vorname, person(Nr, Vorname, Nachname,<br />
Geburtsjahr, Nachname, Geburtsjahr,<br />
Instrument)<br />
lied(LiedTitel, Instrument, Länge) Bandname)<br />
lied(LiedTitel, Länge, CDTitel)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Tabellenschema:<br />
band(Bandname, Stil)<br />
cd(CDTitel, Bandname )<br />
person(Nr, Vorname,<br />
Nachname, Geburtsjahr,<br />
Instrument, Bandname)<br />
lied(LiedTitel, Länge, CDTitel)<br />
⇒ Tabellen<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
– Redundante Daten<br />
– Entwurf einer Datenbank, Klassendiagramm<br />
– Umsetzung der 1:n-Beziehung – Fremdschlüssel<br />
– Abfragen<br />
– Umsetzung der n:m-Beziehung<br />
– Datenintegrität<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen auf mehreren Tabellen<br />
Problem:<br />
Liste aller Liedtitel der Band „Devils“<br />
mitsamt dem zugehörigen CD-Titel<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfragen auf mehreren Tabellen<br />
Lösungsversuch1:<br />
SELECT Liedtitel, cd.CDTitel<br />
FROM lied, cd<br />
WHERE Bandname=‚Devils‘;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Die Tabelle muss<br />
genannt werden, weil<br />
CDTitel in beiden<br />
Tabellen vorkommt.
Abfragen auf mehreren Tabellen<br />
Ergebnis1:<br />
Alle CD-Titel passen, sie<br />
sind aber jeweils<br />
kombiniert mit jedem<br />
beliebigen Liedtitel.<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Liedtitel CDTitel<br />
Bad Song Hell<br />
Bad Song Heaven<br />
Good Song Hell<br />
Good Song Heaven<br />
Schlecht Hell<br />
Schlecht Heaven<br />
Gutes Lied Hell<br />
Gutes Lied Heaven
Das Kreuzprodukt<br />
zweier Tabellen ist<br />
Kreuzprodukt<br />
die Kombination aller<br />
Datensätze der einen<br />
Tabelle mit allen<br />
Datensätzen der<br />
anderen Tabelle.<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Liedtitel CDTitel<br />
Bad Song Hell<br />
Bad Song Heaven<br />
Good Song Hell<br />
Good Song Heaven<br />
Schlecht Hell<br />
Schlecht Heaven<br />
Gutes Lied Hell<br />
Gutes Lied Heaven
Kreuzprodukt und Join<br />
Lösungsversuch2:<br />
SELECT Liedtitel, cd.CDTitel<br />
FROM lied, cd Joinbedingung<br />
WHERE Bandname=‚Devils‘<br />
AND lied.CDTitel=cd.CDTitel;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Kreuzprodukt und Join<br />
Ergebnis2:<br />
Mit Hilfe der Joinbedingung<br />
lied.CDTitel=cd.CDTitel<br />
erhält man das gewünschte<br />
Ergebnis.<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Liedtitel CDTitel<br />
Bad Song Hell<br />
Good Song Hell<br />
Gutes Lied Heaven
Abfrage: Beispiel 1<br />
Welche Musiker (Vor- und Nachname)<br />
spielen auf der CD „Spain“?<br />
cd(CDTitel, Bandname )<br />
person(Nr, Vorname, Nachname, Geburtsjahr,<br />
Instrument, Bandname)<br />
SELECT Vorname, Nachname<br />
FROM person, cd<br />
WHERE person.bandname=cd.bandname<br />
AND CDTitel=‚Spain‘;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Abfrage: Beispiel 2<br />
Auf wie vielen CDs wirkt Katja Biller mit?<br />
cd(CDTitel, Bandname )<br />
person(Nr, Vorname, Nachname, Geburtsjahr,<br />
Instrument, Bandname)<br />
SELECT COUNT(CDTitel)<br />
FROM person, cd<br />
WHERE person.bandname=cd.bandname<br />
AND Vorname=‚Katja‘<br />
AND Nachname=‚Biller‘;<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
– Redundante Daten<br />
– Entwurf einer Datenbank, Klassendiagramm<br />
– Umsetzung der 1:n-Beziehung – Fremdschlüssel<br />
– Abfragen<br />
– Umsetzung der n:m-Beziehung<br />
– Datenintegrität<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
ORT<br />
n:m-Beziehung<br />
Modellierung Sportverein<br />
PLZ<br />
Ortsname<br />
1<br />
< wohnt_in<br />
n<br />
PERSON<br />
Vorname<br />
Nachname<br />
Geburtsdatum<br />
Geschlecht<br />
Straße<br />
Telefon<br />
ist_Mitglied_von ><br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
m<br />
n<br />
ABTEILUNG<br />
Sportart<br />
Beitrag
Sportverein Datentabellen<br />
PLZ Ortsname<br />
91054 Erlangen<br />
91056 Erlangen<br />
92318 Neumarkt<br />
Sportart Beitrag<br />
Fußball 135,00 €<br />
Golf 500,00 €<br />
Gymnastik 120,00 €<br />
M_I Vorname Nachname Geburtsda Geschle Plz Strasse Telefon<br />
D<br />
tum cht<br />
206 Christian Heidrich 11.11.1911 m 91056 xxx-Straße 66 09131/999999<br />
Wie verbindet man die Mitglieder<br />
207 Albert Einstein 28.03.1879 m 92318 Einsteinstraße 11 09181/12345<br />
mit den Sportarten?<br />
208 Heidi Hofmann 13.01.1967 w 92318 Hofmannstraße 3<br />
209 Dora Dollmann 23.05.1980 w 92318 Wolfsteinstr. 7<br />
210 Manfred Schmidt 08.08.1888 m 92318 Müllerweg 7<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
n:m-Beziehung 1. Versuch<br />
PLZ Ortsname<br />
91054 Erlangen<br />
91056 Erlangen<br />
92318 Neumarkt<br />
Sportart Beitrag Mitglied<br />
Fußball 135,00 € 206 207 208<br />
Golf 500,00 € 210<br />
Gymnastik 120,00 € 208 209 206<br />
M_I Vorname Nachname Geburtsda Geschle Plz Strasse Telefon<br />
D<br />
tum cht<br />
206 Christian Heidrich 11.11.1911 m 91056 xxx-Straße 66 09131/999999<br />
Geht nicht, weil in einem<br />
207 Albert Einstein 28.03.1879 m 92318 Einsteinstraße 11 09181/12345<br />
208 Heidi Hofmann 13.01.1967 w 92318 Hofmannstraße 3<br />
Tabellenfeld mehrere Werte stehen.<br />
209 Dora Dollmann 23.05.1980 w 92318 Wolfsteinstr. 7<br />
210 Manfred Schmidt 08.08.1888 m 92318 Müllerweg 7<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
n:m-Beziehung 2. Versuch<br />
PLZ Ortsname<br />
91054 Erlangen<br />
91056 Erlangen<br />
92318 Neumarkt<br />
Sportart Beitrag<br />
Fußball 135,00 €<br />
Golf 500,00 €<br />
Gymnastik 120,00 €<br />
M_I Vorname Nachname Geburtsda<br />
Geschlecht Plz Strasse Telefon Sportart<br />
D<br />
M_I Vorname Nachname<br />
tum<br />
Geburtsda Geschle Plz Strasse Telefon<br />
206 206D Christian Heidrich 11.11.1911 tum m cht 91056 xxx-Straße 66 09131/9999 Fußball<br />
206 Geht Christian nicht, Heidrich weil 11.11.1911in m einem 91056 xxx-Straße 99 66 09131/999999 Gymnastik<br />
207 Albert Einstein 28.03.1879 m 92318 Einsteinstraße<br />
09181/1234 Fußball<br />
207 Albert Einstein 28.03.1879 m 92318 11<br />
Einsteinstraße 5 11 09181/12345<br />
Tabellenfeld mehrere Werte stehen.<br />
208 Heidi Hofmann 13.01.1967 w 92318 Hofmannstraße<br />
208 Heidi Hofmann 13.01.1967 w 92318 3<br />
Hofmannstraße 3<br />
209 Dora Dollmann 23.05.1980 w 92318 Wolfsteinstr. 7 Gymnastik<br />
209 Dora Dollmann 23.05.1980 w 92318 Wolfsteinstr. 7<br />
210 210 Manfred Manfred Schmidt Schmidt 08.08.1888 08.08.1888 m m 92318 92318 Müllerweg Müllerweg 7 7<br />
Golf<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Fußball<br />
Gymnastik
n:m-Beziehung Lösung<br />
PLZ Ortsname<br />
91054 Erlangen<br />
91056 Erlangen<br />
92318 Neumarkt<br />
Mitglied Sportart<br />
206 Fußball<br />
206 Gymnastik<br />
207 Fußball<br />
208 Fußball<br />
208 Gymnastik<br />
209 Gymnastik<br />
210 Golf<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Sportart Beitrag<br />
Fußball 135,00 €<br />
Golf 500,00 €<br />
Gymnastik 120,00 €<br />
M_I Vorname Nachname Geburtsda Geschle Plz Strasse Telefon<br />
D<br />
tum cht<br />
206 Christian Heidrich 11.11.1911 m 91056 xxx-Straße 66 09131/999999<br />
207 Albert Einstein 28.03.1879 m 92318 Einsteinstraße 11 09181/12345<br />
208 Heidi Hofmann 13.01.1967 w 92318 Hofmannstraße 3<br />
209 Dora Dollmann 23.05.1980 w 92318 Wolfsteinstr. 7<br />
210 Manfred Schmidt 08.08.1888 m 92318 Müllerweg 7
Unterrichtliche Gliederung<br />
• Einblick: Große Datenmengen und ihre<br />
Verwaltung (2)<br />
• <strong>Datenbanken</strong> mit einer Tabelle (8)<br />
• <strong>Datenbanken</strong> mit mehreren Tabellen (13)<br />
• Aspekte der Datenpflege/-sicherheit (4)<br />
• Komplexes Anwendungsbeispiel (11)<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Projekt<br />
• Kleine Gruppen (3-4 Schüler)<br />
• Mögliche Themen<br />
– Flugbuchungen<br />
– Schuldatenverwaltung<br />
– Fahrradverleih<br />
– Geographische Daten<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
• Meilensteine:<br />
– Klassenmodell<br />
Projekt<br />
– Datenbank mit Spieldaten<br />
– Abfragen<br />
– Rechte für Benutzergruppen<br />
• Präsentation der Ergebnisse<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Werkzeuge<br />
• MS-Access<br />
– kommerziell<br />
– typsicherweise Einzelplatzsystem<br />
– eingängige Bedienung für MS-Benutzer<br />
•MySQL<br />
– frei verfügbar<br />
– Datenbankserver<br />
– phpMyAdmin als Client<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
MySQL mit phpMyAdmin<br />
MySQL-<br />
Datenbankserver<br />
php<br />
Apache-<br />
Webserver<br />
Server<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!<br />
Browser<br />
Arbeitsplatzrechner
XAMPP<br />
• MySQL-Datenbankserver<br />
• Apache-Webserver<br />
• FileZilla-FTP-Server<br />
• Mercury-EMail-Server<br />
Quelle: http://www.apachefriends.org/de/xampp.html<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!
Kontakt:<br />
<strong>Datenbanken</strong><br />
christian.heidrich@fen-net.de<br />
frey_elke@web.de<br />
Handreichungen:<br />
http://www.isb.bayern.de<br />
→ Fächer → Informatik → Publikationen<br />
12.10.2006 <strong>Datenbanken</strong> – Wie sag ich‘s meinen Schülern?!