If Fase Logo

mit Google im Archiv der If Fase

Ausgabe 10 vom 1. Juni 2006 (als PDF):

31. Mai 2006 – Dr. Ludger Humbert

Datenbank ohne SQL

Programmieren

Datenbanken im Informatikunterricht

Je nach Bundesland finden sich in der BRD unterschiedliche Vorgaben in der gymnasialen Oberstufen bezüglich der Inhalte. Allerdings wurde spätestens mit der Verabschiedung der aktuell gültigen EPA (Einheitliche Prüfungsanforderungen für das Abitur) durch die Kultusministerkonferenz (KMK) im Jahr 2003 deutlich, dass zumindest in der Vorbereitungsgruppe eine grosse Mehrheit die Notwendigkeit der Datenbankmodellierung im Informatikunterricht unterstützt (vgl. www.kmk.org/doc/beschl/EPA-Informatik.pdf ). Immerhin wurden vier der 20 Beispielaufgaben so formuliert, dass sie mit Hilfe einer Datenbankmodellierung (ER und SQL werden explizit benannt) bearbeitet werden müssen.

Nun stellt sich – wie für viele Gegenstände des Informatikunterrichts – die Frage nach der Umsetzung und den dazu unabdingbaren Hilfsmitteln, den Werkzeugen und den Techniken, die bei der Modellierung nützlich sind. Aus der Sicht der Didaktik können – ausgehend vom wissensbasierten Paradigma – solche Modellierungen mit Mitteln spezialisierter Inferenzmaschinen durch eine Reihe von Fakten und Regeln vorgenommen werden (häufig mit der Programmiersprache Prolog umgesetzt).
Die zweite Variante besteht in der Regel in der Modellierung mit Hilfe von Entity-Relationship-Diagrammen, die dann mit einer Datenbank implementiert werden. Als dritte Variante bietet sich an, die (auch für andere Aufgabenbereiche notwendige) objektorientierte Modellierung (OOM) zu verwenden.

%
%

from buzhug import Base

from datetime import date

# erstelle Tabelle 'teams'

teams = Base('teams')

teams.create(('name',str),('stadt',str))

Wie dem Codeschnipsel entnommen werden kann, wird hier das Objekt teams aus der Klasse Base erzeugt und verfügt über die Methode create. Daneben existieren die Methoden: open (um eine bestehende Tabelle zu öffnen), insert (um einen Datensatz einzufügen) teams.insert(name="Arsenal", stadt="London") update (um einen Datensatz zu ändern). Wie kann ein Datensatz gefunden werden?
%
%

datensatz=[r for r in teams if r.city == "London" ][0]

liefert den Datensatz, der dann z.B. mit teams.update(datensatz, name= "Aston Villa") geändert werden kann.
Weitere Hinweise (inkl. Tutorial) finden sich über buzhug.sourceforge.net. Ich bin der Überzeugung, dass eine OOM für Aufgaben aus diesem Kontext eine erheblich bessere Integration in den Informatikunterricht ermöglicht, da weiterhin mit einer bereits bekannten Problembeschreibungstechnik gearbeitet werden kann.

Soll mit erstellten Datenbanktabellen gearbeitet werden, die SQL-kompatibel sind, so lohnt ein Blick in SQLite – eine kleine Bibliothek, mit der transparent auf SQL-Dateien zugegriffen werden kann: pysqlite.org

Die hier veröffentlichten Inhalte stellen keine Meinungsäußerungen der Studienseminare Hamm Arnsberg dar.
© Redaktion If Fase