„Eine Tabelle macht noch keine relationale Datenbank

Werbung
Zentrum für schulpraktische Lehrerausbildung Bocholt
Seminar für das Lehramt an Gymnasien und Gesamtschulen
„Eine Tabelle macht noch keine relationale Datenbank!“ Erarbeitung der Formulierung von SQL-Abfragen über
mehrere Tabellen einer Datenbank
Entwurf zum dritten Unterrichtsbesuch im Fach Informatik
Ausbildungsschule:
Städtisches Ganztagsgymnasium Nepomucenum
Holtwicker Straße 8
48653 Coesfeld
Datum:
Mittwoch, 18.05.2016
Lerngruppe:
Q1 Grundkurs Informatik
Anzahl der SuS:
21 (15 Schüler, 6 Schülerinnen)
Zeit, Raum:
5. Stunde (11:40 – 12:25 Uhr), Raum 235
Referendar:
Julian Hundt
Ausbildungslehrer:
Ausbildungsbeauftragte(r):
Schulleiterin:
Fachleiter:
Kernseminarleiter:
1 Längerfristige Unterrichtszusammenhänge
1.1 Thema der Unterrichtsreihe
„Eine Tabelle macht noch keine Datenbank!“ - Einführung in relationale Datenbanken
1.2 Schwerpunktlernziel der Unterrichtsreihe
Die Schülerinnen und Schüler (kurz: SuS) erweitern ihre Fähigkeit im Bereich Datenbanken.
Dies umfasst die Kenntnis wichtiger Fachbegriffe und ihre Anwendung bei der Analyse,
Entwicklung oder Modifikation bestehender Datenbankmodellierungen. Insbesondere stellen
sie Modellierungen mit Hilfe des Entity-Relationship-Diagramms (kurz: ER-Diagramm) dar.
Weiterhin ermitteln die SuS Ergebnisse von Datenbankabfragen (Queries) über eine oder
mehrere verknüpfte Tabellen mit Hilfe der Sprache SQL.
1.3 Lehrplanbezug
1.3.1 Schulinternes Curriculum [1]
Im Grundkurs Informatik ist durch das schulinterne Curriculum der Bereich der relationalen
Datenbanken vorgesehen. Dabei werden die Teilbereiche „Nutzung von relationalen
Datenbanken“, „Modellierung“ sowie „Aspekte des Datenschutzes“ unterschieden. Ein
Einstieg ist entweder theoretisch-modellbetont oder praktisch-abfrageorientiert möglich.
Der zu erarbeitende Begriffsapparat liegt hauptsächlich im Bereich der Modellierung.
Das Curriculum sieht vor mit Hilfe sich bewährter Beispieldatenbanken zu arbeiten und zum
Abschluss der Unterrichtsreihe ein vertiefendes Beispiel heranzuziehen. Während sich in der
Unterstufe im Wahlpflichtkurs Informatik eine hohe Handlungsorientierung mittels der
Beispieldatenbank „videocenter“ erreichen lässt, eignet sich nach Absprache mit den
Fachkollegen in der Oberstufe das Einrichten einer Beispieldatenbank mit Hilfe der
Webanwendung phpmyadmin über die Softwaresammlung xampp.
1.3.2 Kernlehrplan (KLP GOSt [2])
Die Unterrichtsreihe ist in Anlehnung an den Kernlehrplan Informatik geplant. Die
Schwerpunkte liegen dabei im Inhaltsfeld Daten und ihre Strukturierung sowie Algorithmen.
Während die erste Unterrichtssequenz hauptsächlich die theoretisch-modellbetonten Bereiche
von Datenbanken wie den Begriffsapparat um ER-Diagramme fokussiert, liegt das Augenmerk
der zweiten Unterrichtssequenz auf den benötigten Algorithmen.
Die SuS analysieren und erläutern die Syntax und Semantik einer Datenbankabfrage und
vertiefen dabei ihre Kompetenzen im Bereich Argumentieren. Weiterhin verwenden sie die
Syntax und Semantik einer Datenbankabfragesprache, um Informationen aus einem
Datenbanksystem zu extrahieren.
Auch das informatische Modellieren kontextbezogener Problemstellungen als Datenbanken
mit dem ER -Modell wird geübt. Tabellarisch werden nun für die zweite Sequenz der
Unterrichtsreihe die zu erwerbenden Kompetenzen, inhalts- bzw. prozessbezogen unterteilt,
dargestellt:
Kompetenzerwartungen
Inhaltsbezogen
Prozessbezogen
Algorithmen:
Argumentieren: SuS analysieren und erläutern der
SuS kennen Algorithmen in
Syntax und Semantik einer Datenbankabfrage.
Darstellen: SuS ermitteln Ergebnisse von
ausgewählten informatischen
Kontexten.
Datenbankabfragen über mehrere verknüpfte
Formale Sprachen und Automaten: Tabellen
SuS kennen die Syntax und Semantik Implementieren: SuS verwenden die Syntax und
einer Programmiersprache.
Semantik einer Programmiersprache, um
Informationen aus einem Datenbanksystem zu
extrahieren.
1
1.4 Einordnung der Unterrichtsstunde in den Kontext der Reihe
(Einzelstunde)
Einstieg in relationale Datenbanken: Fachbegriffe und ERModell
Relationales Modell – Überführen eines ER-Diagramms in
Tabellen
„5 Szenarien relationaler Datenbanken“ – Kooperative Übung
zum Modellieren einer Miniwelt mit Hilfe eines ER-Diagramms
und Übersetzen in ein Relationenschema
Normalisieren von Tabellen als weitere Möglichkeit des
Entwurfs relationaler Datenbankschemata
5. UE
Übungen zum Normalisieren von Tabellen
1. UE
(Doppelstunde)
2. UE
(Einzelstunde)
1. Sequenz
3. UE
(Doppelstunde)
4. UE
(Doppelstunde)
1. UE
(Einzelstunde)
2. UE
SQL-Anfragen über eine Tabelle – Entdecken der SQL mittels
praktischen Einsatzes einer MySQL-Datenbank
Vertiefende Übungen zu SQL-Abfragen und Aggregatfunktionen
(Doppelstunde)
3. UE
2. Sequenz
(Einzelstunde)
4. UE
(Doppelstunde)
5. UE
(Einzelstunde)
„Eine Tabelle macht noch keine relationale Datenbank!“ –
Erarbeitung der Formulierung von SQL-Anfragen über
mehrere Tabellen einer Datenbank
„inner, left & outer join“ – Analyse der Syntax und Semantik der
Verknüpfungsarten zweier Tabellen
„Welche US-Präsidenten haben das Hobby Poker?“ –
Vertiefende Übungen zu SQL-Anfragen über mehrere Tabellen
Übungen mit Hilfe der Präsidenten-Datenbank
2
2 Planung der Unterrichtsstunde
2.1 Bedingungsanalyse
Der Grundkurs Informatik des Qualifizierungsbereichs Q1 besteht aus 15 Schülern und sechs
Schülerinnen. Die drei Unterrichtsstunden verteilen sich auf eine montags stattfindende
Doppelstunde und eine Einzelstunde am Mittwoch. Aufgrund der Seminarverpflichtung des
LAA hat sich die Schwierigkeit ergeben, den Kurs an beiden Tagen zu besuchen. Aufgrund
von Seminarausfällen war es dem LAA dennoch möglich, an zwei Montagen den Unterricht
durchzuführen. Durch die genaue Abstimmung mit dem Ausbildungslehrer wurde eine
intensive Kommunikation möglich und inhaltliche Brüche wurden so verhindert.
Während der zu Beginn stattgefundenen Beobachtungen ist aufgefallen, dass die SuS im
hohen Maße eigenverantwortlich arbeiten. Dieser Eindruck hat sich bei einem kooperativen
Unterrichtsvorhaben bestätigt, bei dem der LAA die Gruppen zufällig gebildet hat.
Vier Schüler des Kurses schreiben schriftliche Klausuren.
In der Fachschaft gibt es die Vorgehensweise, dass abwechselnd SuS eine
zusammenfassende Präsentation der Themen der vergangenen Woche halten. Zu diesem
Ritual gehört auch ein anschließendes inhaltliches und methodisches Feedback durch die
übrigen Schüler, das durch den Vortragenden moderiert wird. Aus zeitlichen Gründen wird
dieses „Protokoll“ jedoch auf die Zeit der Doppelstunden verlegt.
2.2 Leitgedanken und Ziele der Stunde
Die Unterrichtsstunde soll möglichst stark handlungsorientiert und schüleraktivierend angelegt
sein. Daher soll das eigenständige Entdecken und Lösen der Problemstellung mittels
praktischer Arbeit an der Beispieldatenbank im Vordergrund stehen.
Die SuS können dabei selbst entscheiden, ob sie alleine oder mit einem/r PartnerIn die
Aufgabenstellung bearbeiten. Diese Vorgehensweise hat sich in den vergangenen
Unterrichtsstunden bewährt, wenngleich die SuS auch in zufällig zusammengesetzten
Gruppen zielführend arbeiten. Der Grundgedanke der Planung besteht in einem Wechsel aus
Dekonstruktion und Konstruktion. Bei der Dekonstruktion werden gegebene SQL-Abfragen im
Hinblick auf ihr erzeugtes Ergebnis analysiert. Hierbei sollen die SuS das kartesische Produkt
zweier Tabellen verstehen und erfahren, dass dabei vorhandene Beziehungen zwischen den
Tabellen nicht berücksichtigt werden. In einem konstruktiven Schritt sollen die SuS dann mit
Hilfe des aus den vorherigen Stunden erarbeiteten SQL-Bausteins der WHERE-Selektion die
Abfrage geeignet erweitern.
Der Problemkontext ist eine den SuS bereits bekannte Fehlstunden-Datenbank. Sie kennen
bereits Abfragen auf dieser Datenbank über eine Tabelle, nicht aber über zwei in Beziehung
stehende Tabellen.
Der LAA hat den Arbeitsauftrag auf Arbeitsblättern vorbereitet. Diese wurden in zwei
konsekutive Teile zerlegt, sodass während des Bearbeitens der Lernstand diagnostiziert
werden kann. Zudem soll durch die Trennung die Problemlösestrategie des Vereinfachens
verdeutlicht werden, da mit Beginn des zweiten Arbeitsblatts ein Kontextwechsel erfolgt.
Der fachsprachlich korrekte Begriff des „natürlichen bzw. inneren joins“ steht in dieser Stunde
noch nicht im Vordergrund – das Verständnis der zugrundeliegenden Idee ist hierbei wichtiger.
Die weiteren Verknüpfungsarten (left/right/outer join) werden in der nächsten
Unterrichtsstunde zum Gegenstand der Analyse.
Die Schlüsselstelle zum Verständnis liegt bei dem Arbeitsauftrag (5): Hier wird vom Prinzip
des Verständnisses durch Rekonstruktion abgewichen, da die SuS ihr Vorwissen (Kenntnis
3
des WHERE-Bausteins zur Selektion bestimmter Datensätze) konstruktiv anwenden sollen.
Für schwächere SuS stehen entsprechende Hilfen bereit (siehe 3.4.2).
2.2.1 Unterrichtsgegenstand
SQL - Abfragen über mehrere in Beziehung stehende Tabellen
2.2.2 Thema
„Eine Tabelle macht noch keine relationale Datenbank!“ – Erarbeitung der Formulierung von
SQL-Anfragen über mehrere Tabellen einer Datenbank
2.2.3 Schwerpunktlernziel
Die SuS erweitern ihre Fähigkeit im Bereich Argumentieren und Darstellen, indem sie die
Syntax und Semantik einer Datenbankabfrage über zwei verknüpfte Tabellen erläutern und
anwenden.
2.2.4 Stundeneinstieg
Der LAA hat sich für einen problementfaltenden und möglichst kurzen informierenden Einstieg
entschieden [5]. Der Einstieg beginnt mit der den SuS bekannten Fehlstunden-Datenbank mit
einer Tabelle. Eine einfache Abfrage über diese Tabelle zu gegebener Fragestellung soll die
SuS „warmmachen“, motivieren und bildet die Vernetzung zur vorangegangenen
Unterrichtsstunde. Das Problem der Stunde wird durch Normalisierung der Datenbankstruktur
gewonnen, da nunmehr eine Abfrage über zwei Tabellen nötig ist.
Nach Möglichkeit sollen die SuS dieses Problem selbst formulieren, um eine hohe
Transparenz über die Zielsetzung der Stunde zu schaffen. Zur Verdeutlichung des
Stundenziels findet sich dieses jedoch auch auf den Arbeitsblättern.
Um darüber hinaus eine methodische Klarheit zu erreichen, erläutert der LAA anschließend
den geplanten Ablauf der Stunde aus einer überfachlichen Sichtweise („Metaebene des
Problemlösens“).
Insgesamt soll der Einstieg funktionell im Hinblick auf eine starke methodische und inhaltliche
Klarheit des Unterrichtsgeschehens sein und an die Lerninhalte des vergangenen Unterrichts
anknüpfen.
4
2.3 Planung des Stundenverlaufs
Name:
STUNDENTHEMA: „Eine Tabelle macht noch keine relationale Datenbank!“ – Erarbeitung der
Formulierung von SQL-Anfragen über mehrere Tabellen einer Datenbank
Julian Hundt
Lerngruppe: Q1 GK Informatik
Datum:
18.05.2016
11:40 – 12:25
Phasen
Organisation
Einstieg
Aktivierung von
Vorwissen
Ankommen im
Lernkontext
Erarbeitung
Erkundung und
Entdeckung des
Problems
ZIEL: Die SuS erweitern ihre Fähigkeit im Bereich Argumentieren und Darstellen, indem sie
die Syntax und Semantik einer Datenbankabfrage über zwei verknüpfte Tabellen erläutern
und anwenden.
Unterrichtsgeschehen
Begrüßung
 L.: „In den letzten U-Stunden habt ihr viele
SQL-Anfragen über eine Tabelle entwickelt.“
 L. zeigt Datenbankstruktur – SuS
wiederholen Abfrage über eine Tabelle
o SELECT Name, Vorname, Datum,
entschuldigt FROM protokoll
 L. zeigt normalisierte DB-Struktur mit
gleicher Fragestellung – Impuls: „Beschreibt,
was nun anders ist – gibt es ein Problem?“
o Schüler / Lehrer deutet auf das Ziel
der Stunde: „Wie entwickelt man
Abfragen über zwei Tabellen?“
 L. zeigt den Ablauf und erklärt Methodik
o zwei kleine ABs (zunächst das
erste)
o Arbeit in EA oder PA (max. 2 SuS)
o Zeitlimit setzen
 L. erkundigt sich nach Rückfragen
 SuS bearbeiten AB1 / AB2
 L. diagnostiziert und unterstützt individuell
Did. /Meth. Kommentar
Sozial
form
Problementfaltung.
Informierender Einstieg schafft
inhaltliche und methodische Klarheit.
LV
/ UG
Training des Problemlösens:
Meta-Wissen aktivieren:
Probleme zunächst vereinfachen bzw.
anhand eines kleineren Beispiels
verstehen und lösen. Anschließend
Transfer auf das ursprüngliche
Problem.
Hoher Grad an SuS-Aktivität durch
handlungsorientierten Zugang.
Möglichkeit des eigenständigen oder
kooperativen Lernens.
Problemverständnis durch
Dekonstruktion und Konstruktion.
5
Medien
ActiveBoard (AcB) –
Folie:
„Problemstellung“
AcB-Folie:
„Stundenablauf“
EA /
PA
AB1 / AB2
Apache-Webserver,
mySQL-Datenbank
Sicherung

Diskussion,
Wertung (ggf.
Reflexion) des
Gelernten


12:25
L. bittet zur gemeinsamen Diskussion und
wählt wichtige Aspekte zur fachlichen
Sicherung aus. Einzelne SuS(-Teams)
stellen ihre Arbeitsergebnisse vor, die nun
gewertet und beurteilt werden:
o Kartesisches Produkt (4)
o Lösung des Ausgangsproblems (6)
L. erkundigt sich nach offenen Fragen oder
Fehlern, die bei der Arbeit aufgetreten sind
o L.: „Versucht zunächst allein, den
Lückentext auszufüllen.“
o Gemeinsamer Austausch
L. teilt die Hausaufgabe aus und schließt die
Stunde.
Binnendifferenzierung nach „oben und
unten“ durch Hilfekarten und
Sprinteraufgaben.
Rückzug des Lehrers (Trainingsziel) –
Moderation an SuS abgeben
Ggf. können beobachtete Fehler /
Ungenauigkeiten aufgegriffen werden.
Auswertung des Stundenergebnisses
hinsichtlich der Zielsetzung mit den
SuS.
Diagnose: SPLZ („anwenden“)
erreicht?
UG
AcB-Folien
„Kartesisches
Produkt“,
„Problemlösung“,
„Abfrage über zwei
Tabellen“
Aktive Beteiligung durch Lückentext –
inhaltlich und fachsprachlich korrektes
Festhalten der zentralen Erkenntnisse.
Diagnose: SPLZ („erläutern“) erreicht?
(did. Reserve: Vertiefung des
Gelernten bzw. Beginn des
Hausaufgabe)
2.4 Hausaufgaben
Die SuS nutzen ihre erworbene Kompetenz, indem sie eine Abfrage über drei miteinander in Beziehung stehende Tabellen entwerfen sollen.
Zusätzlich wird noch die Hausaufgabe eines vergangenen Arbeitsblatts erteilt, bei dem sich die SuS mit dem Begriff der Anomalien vertraut und an
einem eigens gewählten Beispiel erläutern sollen. Dieses soll zu Vernetzungen zur Unterrichtsstunde führen und die Sinnhaftigkeit der
Normalisierung verdeutlichen.
6
3 Anhang
3.1 Quellen
[1]: Schulinternes Curriculum Informatik für die gymnasiale Oberstufe
[2]: Kernlehrplan für die gymnasiale Oberstufe in NRW
[3]: Structured Query Language – Fortbildungsmaterial von D. Garmann, Internetquelle:
www.projekte.gymnasium-odenthal.de/informatik/ (Zugriff am 30.04.2016)
[4]: Präsentation zu SQL, D. Riehle, Internetquelle: www.projekte.gymnasiumodenthal.de/informatik/ (Zugriff am 30.04.2016)
[5]: Unterrichtseinstiege für den Informatikunterricht – Reader: Interne Seminarfortbildung
(ZfsL Bocholt, 2016)
3.2 Verwendete Software
XAMPP Lite: Zusammenstellung freier Software (inkl. Apache Webserver, portable Version),
im Internet verfügbar unter: https://www.apachefriends.org/de/index.html
phpMyAdmin: freie Webanwendung zur Administration von MySQL-Datenbanken, enthalten
in XAMPP
Beispieldatenbanken: Fehlstunden-Datenbank und Postleitzahlen-DB
i
3.3 Übersicht geplanter ActivBoard-Folien
ii
3.4 Ergänzendes Material
3.4.1 Zusatzaufgaben
Eine Förderung der starken SuS wird durch in den Aufgabenstellungen enthaltene
Sprinteraufgaben berücksichtigt. Diese bestehen aus einer Aufgabe zur Reflexion
(Metaebene) und einer vertiefenden Aufgabe mit einer Abfrage über drei in Beziehung
stehenden Tabellen. Die dritte Aufgabe ist besonders anspruchsvoll und erfordert zunächst
eine Gruppierung der Datensätze.
Während die möglichen Ergebnisse der Reflexionsaufgabe in der Sicherungsphase in das
Unterrichtsgespräch integriert werden können, soll die vertiefende Aufgabe später
Hausaufgabe für alle SuS sein.
3.5 Arbeitsmaterialien
3.5.1 Arbeitsaufträge
iii
iv
3.5.2 Tippkarten
Die Tipps werden so eine DIN-A5-Seite gedruckt, dass immer nur ein Tipp nach dem
anderen sichtbar ist. Mit Hilfe dieser Stufung können die SuS den Grad ihrer Unterstützung
selbst bestimmen.
3.6 Antizipierte Schülerlösungen der Arbeitsmaterialien
(1) Boris Becker hat die ID 1 und taucht in der Tabelle fehlt viermal auf.
(2) Es werden zu viele Datensätze angezeigt. Boris Becker taucht viel häufiger auf.
(3)
(4) Jeder Datensatz aus der Tabelle kunden wird mit jedem Datensatz aus der Tabelle
orte kombiniert. Die Beziehungen zwischen den Tabellen werden zerstört / ignoriert.
(5) WHERE postleitzahl = plz
(6) … WHERE ID = IDPerson…
(S1) SELECT vorname, name, entschuldigt, datum, thema from personen, fehlt, termine
WHERE (ID = IDPerson AND fehlt.Datum = termine.Datum)
(S2) Eine Abfrage über zwei Tabellen geschieht über das kartesische Produkt und einer
WHERE-Bedingung, welche die Datensätze auf die sinnvollen begrenzt, die sich
durch Gleichheit der Fremd- und Primärschlüssel auszeichnen (weitere
Formulierungen möglich!).
(S3) SELECT vorname, name, count(stunden) FROM personen, fehlt, termine
WHERE ID = IDPerson AND fehlt.datum = termine.datum
GROUP BY ID
v
Herunterladen