30.10.2013 Aufrufe

Datenbanken

Datenbanken

Datenbanken

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<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?!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!