= Interaktives SQL E-Learning Module :author: Jan Klemkow, Benjamin Franzke :lang: de == Einleitung E-Learning ist heute mehr als nur die reine Zusammenstellung von Texten mit Bildern und Videos. Interaktive Inhalte mit denen der Student experimentieren kann, sind fuer das praktische Lernerfolg von elementarer Bedeutung. Der Bereich der Datenbanken ist ein gutes Beispiel, welches verdeutlicht, wie wichtig das praktische Anwenden von Wissen fuer den Lernerfolg ist. Fuer Datenbanken gibt eine grosse Menge von Lehrbuechern welche alle Aspekte dieses Bereichs erlaeutern. Diese Lehrbuecher und die Vorlesungen bilden im Presentsstudium die theoretische Grundlage. Um den Umgang mit Datenbanken zu erlehrnen werden zusaetzlich Praktika gegeben, in denen die Studenten eigene Datenbanken erstellen, Daten einpflegen und wieder abfragen. Den Fernstudenten bieten sich solche Moeglichkeiten leider nicht. Ihnen bleiben nur die Moeglichkeiten Anhand von Anleitungen eigenen Test-Umgebungen aufzubauen, um mit dieses praktische Erfahrungen sammeln zu koennen. Diese Arbeit beschreibt die Integration von realen Datenbanken in einen E-Learning-Kurs. == Grundlagen Im Fachbereich EuI an der Hochschule Wismar werden zwei verschiedene Systeme -- ILIAS und Moodle -- fuer Online-Kurse genutzt. Diese Lernplattformen sind beide webbasiert und in PHP geschrieben. Inhalte fuer verschiedene Kurse der Praesentsstudiengaenge sind dort zu finden. Die Lerninhalte des Fachs Datenbanken werden als Kurse des Moodle-Systems bereit gestellt. Zudem gibt es interaktives Online-Tutorial fuer eine Oracle-Datenbank. Dieses System wurde von Niels Weber im Rahmen einer Diplomarbeit realisiert. === Oracle-Tutorial Das Oracle-Tutorial ist ein eigenstaendiges webbasiertes System welches nicht mit den anderen Lernplattformen verknuepft ist. Es bietet den Studenten die Moeglichkeit anhand eines konstruiten Szenarios, auf einer realen Datenbank SQL-Abfragen zu stellen. Den Studenten werden dabei verschieden Aufgaben gestellt zu dessen Beantwortung sie SQL-Abfragen formulieren muessen. Diese werden dann auf der Beispieldatenbank ausgefuehrt und das Ergebnis intern mit einer vorgegebenen Loesung verglichen. Die Aufgaben sind dabei so gewaehlt, dass der Student moeglichst mit alle Arten und alle Aspekte einer SQL-Anfrage konfrontiert wird. Somit bekommt der Student einen umfassenden Einblick in die Moeglichkeiten, die sich einem mit SQL-Datenbanken ergeben. === Moodle Moodle ist eine modulare Open-Source Lernplattform. Sie ist webbasiert und in der Programmiersprache PHP geschrieben. === Moodle-Module Moodle-Module. === Videos einbinden Für Moodle ist ein integriertes Video-Plugin verfügbar. == SQLBox ``SQLBox'' ist ein Moodle-Modul, welches im Rahmen des Mulimedia-Projekts entstenden ist. === Sandbox für User-Queries Der Nutzer der SQLBox muss bei jedem Aufruf einen konsistenen Datenbestand vorfinden. Dazu ist es notwendig, dass Anfrage in einer Sandbox ablaufen. Zu diesem Zweck sollen folgend verschiedene Möglichkeiten vorgestellt und evaluiert werden. ===== Transactions Eine Idee ist es, die Eingabes des Nutzers durch Transactions zu schützen, indem vor dem Ausführen der Nutzeranfrage eine Transaction gestartet wird, und danach diese immer zurückgerollt (=ROLLBACK) wird: [source,sql] ---- # sqlbox instruction BEGIN TRANSACTION; # User Input: SELECT * FROM blub; # sqlbox instruction ROLLBACK TRANSACTION; ---- Ein Nutzer könnte aber aus dieser Sandbox ausbrechen, in dem er die gestartet Transaktion beendet, den Datensatz manipuliert und dann eine neue Transaction startet: [source,sql] ---- # sqlbox instruction BEGIN TRANSACTION; # User Input: INSET INTO blub VALUES (1,'foo') COMMIT TRANSACTION; BEGIN TRANSACTION; SELECT * FROM blub; # sqlbox instruction ROLLBACK TRANSACTION; ---- == Literatur * Niels Weber, Diplomarbeit // vim: syntax=asciidoc textwidth=80 :