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