From 21d61b0a5af68cdfb62c463f44a00bbaf7322aaf Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Thu, 31 Jan 2013 02:30:14 +0100 Subject: doc: Final correction --- doc/documentation.txt | 60 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/doc/documentation.txt b/doc/documentation.txt index fa20461..a99aab2 100644 --- a/doc/documentation.txt +++ b/doc/documentation.txt @@ -11,7 +11,7 @@ Interaktive Inhalte mit denen der Student experimentieren kann, sind für den praktischen 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. -Für Datenbanken gibt eine große Menge von Lehrbuechern welche alle Aspekte +Für Datenbanken gibt es eine große Menge von Lehrbuechern welche alle Aspekte dieses Bereichs erläutern. Diese Lehrbücher und die Vorlesungen bilden im Präsenzstudium die theoretische Grundlage. @@ -19,7 +19,7 @@ Um den Umgang mit Datenbanken zu erlernen werden zusätzlich Praktika gegeben, in denen die Studenten eigene Datenbanken erstellen, Daten einpflegen und wieder abfragen. Den Fernstudenten bieten sich solche Möglichkeiten leider nicht. -Ihnen bleiben nur die Möglichkeiten Anhand von Anleitungen eigene +Ihnen bleibt nur die Möglichkeit anhand von Anleitungen eigene Test-Umgebungen aufzubauen, um somit praktische Erfahrungen sammeln zu können. Diese Arbeit beschreibt die Integration von realen Datenbanken in einen @@ -33,7 +33,7 @@ Diese Lernplattformen sind beide webbasiert und in PHP geschrieben. Inhalte für verschiedene Kurse der Präsenzstudiengänge 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. +Zudem gibt es ein interaktives Online-Tutorial für eine Oracle-Datenbank. Dieses System wurde von Nils Weber im Rahmen einer Diplomarbeit realisiert. === Oracle-Tutorial @@ -42,14 +42,14 @@ Das Oracle-Tutorial ist ein eigenständiges webbasiertes System welches nicht mit den anderen Lernplattformen verknüpft ist. Es bietet den Studenten die Möglichkeit anhand eines konstruierten Szenarios, auf einer realen Datenbank SQL-Abfragen zu stellen. -Den Studenten werden dabei verschieden Aufgaben gestellt zu dessen Beantwortung +Den Studenten werden dabei verschiedene Aufgaben gestellt, zu dessen Beantwortung sie SQL-Abfragen formulieren müssen. Diese werden dann auf der Beispieldatenbank ausgeführt und das Ergebnis intern mit einer vorgegebenen Lösung verglichen. -Die Aufgaben sind dabei so gewählt, dass der Student möglichst mit alle Arten -und alle Aspekte einer SQL-Anfrage konfrontiert wird. +Die Aufgaben sind dabei so gewählt, dass der Student möglichst mit allen Arten +und allen Aspekte einer SQL-Anfrage konfrontiert wird. Somit bekommt der Student einen umfassenden Einblick in die Möglichkeiten, die -sich mit SQL-Datenbanken ergeben. +SQL-Datenbanken bieten. === Moodle @@ -81,21 +81,21 @@ oder aber Videos von YouTube einzubinden. ``SQLBox'' ist der Name des Aktivitätsmodul, welches die Möglichkeit bietet SQL Lerntests in Moodle zu integrieren. Es ist als Projekt des Faches ``Multimedia-Projekt'' implementiert worden. -Mit diesem Modul lassen sich Aufgaben für Datenbanken Anhand eines Beispiels +Mit diesem Modul lassen sich Aufgaben für Datenbanken anhand eines Beispiels formulieren. Der Tutor, welcher einen Lernkurs für Datenbanken verwaltet, gibt dabei eine Aufgabenstellung in Textform und eine Musterlösung in Form einer SQL-Anfrage-Strings an. -Der Student muss Anhand des Aufgabentextes eine SQL-Anfrage formulieren welche -diese Aufgabe löst. +Der Student muss entsprechend des Aufgabentextes eine SQL-Anfrage formulieren +welche diese Aufgabe löst. .SQLBox mit ausgeführtem Query image::sqlbox.png[] -Die SQL-Anfrage der Musterlösung sowie die des Studenten werden beide +Die SQL-Anfrage der Musterlösung, sowie die des Studenten werden beide nacheinander auf einer realen PostgreSQL-Datenbank ausgeführt. Die dabei entstehenden Antworten werden verglichen und bei Übereinstimmung -aller Zeile gilt diese Aufgabe fuer den Studenten als Bestanden. +aller Zeilen, gilt diese Aufgabe für den Studenten als bestanden. Während der Entwicklung des Queries hat der Nutzer, wie in Abbildung 1 zu sehen, die Möglichkeit, die Ergebnistabelle seiner Anfrage zu sehen. Auch mögliche Fehler in dem SQL-Statement, zurück gegeben vom PostgreSQL server, @@ -134,7 +134,7 @@ hinzugefügt werden. Der Datenbestand wurde aus der Oracle Datenbank exportiert, indem alle Daten über +SELECT+-Anfragen, gekapselt in der Oracle-Funktion +dbms_xmlgen.getxml+, -abgerufen wurden. +abgerufen wurden, und somit als XML gespeichert. Folgend ist die dazu notwendige Eingabe in das Oracle-Tool +sqlplus+ aufgelistet, um zum einen für die KAPV-Datenbank, zum anderen für die Aufgaben, @@ -165,10 +165,10 @@ vorfinden. Da es dieses System einem Benutzer gestattet reale Anfragen an eine reale Datenbank zu stellen, könnte dieser den Bestand der Datenbank verändern oder beschädigen. -Zudem können Aufgaben welche das Erstellen oder gezielte Verändern von -Tabellen zum Ziel haben, nur einem einem Benutzer erfüllt werden. +Zudem könnten Aufgaben welche das Erstellen oder gezielte Verändern von +Tabellen zum Ziel haben, nur einem Benutzer erfüllt werden. Aus diesem Grund ist es notwendig, dass die Anfragen von den verschiedenen -Benutzern, von einander trennen werden. +Benutzern, von einander getrennt werden. In den Folgenden Abschnitten werden verschieden Möglichkeiten diskutiert und bewertet, die die Trennung der Benutzer erlauben. @@ -222,27 +222,27 @@ Um die Anfragen der Nutzer von einander zu trennen, gibt es weiterhin die Möglichkeit jedem Nutzer eine eigene Datenbank zur Verfügung zu stellen. Somit könnte der Nutzer in den Test-Szenarien umfassende Änderungen an der Datenbank vornehmen, ohne andere Nutzer dabei zu beeinträchtigen. -Die Übungen können dann nach einander so konstruiert werden, dass der Nutzer +Die Übungen können dann nacheinander so konstruiert werden, dass der Nutzer die Datenbank in eine bestimmte Richtung hin verändert. -Der grösste Nachteil liegt im erheblichen Verwaltungsaufwand. +Der größte Nachteil liegt im erheblichen Verwaltungsaufwand. Es muss bestimmt werden für welche Moodle-Nutzer eine Datenbank angelegt wird. Zudem muss es Möglichkeiten geben, die Datenbanken wieder zurückzusetzen, sollte ein Nutzer die Datenbank in einen Zustand bringen, der keine erfolgreichen Test mehr erlaubt. Dabei müsste geklärt sein, zu welchem Zustand diese Rücksetzung geschehen müsste. Entweder in einen Zustand indem der Nutzer an der nächsten noch offenen Aufgabe -weiter arbeiten kann, oder in eine Grundzustand, bei dem der Nutzer alle +weiter arbeiten kann, oder in einen Grundzustand, bei dem der Nutzer alle Aufgaben von neuem erfüllen muss. Alle diese Maßnahmen würden den Entwicklungsaufwand enorm steigern. ==== Keine Schreibrechte Im einfachsten Fall, bekommen die Nutzer nur Lese-Rechte auf die Datenbank. -Dieses hat den Vorteil, dass der Verwaltungsaufwand für das Modul, sowie +Dies hat den Vorteil, dass der Verwaltungsaufwand für das Modul, sowie der Speicherbedarf der Datenbank verringert wird. Mit dieser Variante lassen sich hingegen nur +SELECT+-Anfragen stellen. -Andere wichtige Anfragen, wie +UPDATE+, +DELETE+, +CREATE+ und +ALTER+ könnten +Andere Anfragen, wie +UPDATE+, +DELETE+, +CREATE+ und +ALTER+ könnten dann nicht innerhalb mit der SQLBox erprobt werden. Dazu wird mit einem privilegiertem Account ein Nutzer angelegt, der für die @@ -271,7 +271,7 @@ Aus diesem Grund kommt diese Lösung unter den Umständen dieses Projekte nicht in Betracht. Eine Read-Only-Lösung indem es den Benutzern nur erlaubt wird +SELECT+-Anfragen -zustellen schränkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet +zu stellen schränkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet sichere Trennung der Benutzer sowie einen geringen Entwicklungsaufwand für das Modul. Da der Hauptfokus beim Erlernen der SQL-Sprache auf den verschiedensten @@ -290,8 +290,8 @@ in das Modulverzeichnis (+mod+) der Moodle-Installation kopiert werden: cp -R sqlbox/ /path/to/moodle/htdocs/mod/ ---- -Es sollte im weiteren eine Datenbank für die Tests und dazugehörige Nutzer -angelegt werden: +Es sollte im weiteren eine Datenbank für die Tests und dazugehörige Nutzer, +mit und ohne Schreibrechte, angelegt werden. [source,sh] ---- @@ -315,8 +315,9 @@ psql -c "grant select on all tables in schema public to sqlbox_read;" sqlbox /etc/init.d/postgresql-X.Y reload ---- -Die KAPV-Datenbasis kann über die im Projekt enthaltenen Schemata -und Daten erreicht, diese sind in separaten SQL-Dateien abgespeichert: +Die KAPV-Datenbasis kann über das im Projektordner enthaltene Schema +und die Daten erhalten werden. Diese sind bereits mittels XSLT konvertiert und +in separaten SQL-Dateien abgespeichert: [source,sh] ---- @@ -336,11 +337,12 @@ aktiviert werden, sodass unterhalb jeder Sektion die Möglichkeit eingeblendet wird, eine Aktivität anzulegen. In der Aktivitätsliste wird ``SQLBox'' gewählt und eine Aufgabe mit Beschreibung und Referenz-Abfrage angelegt. Dieser Prozess wiederholt sich für jede zu -stellendene Aufgabe. +stellende Aufgabe. -Alternativ können die Testaufgaben automatisiert der Moodle-Instanz hinzugefügt +Zusätzlich können die Testaufgaben automatisiert der Moodle-Instanz hinzugefügt werden. Dazu wird die der exportierte Aufgabendatenbestand von Nils Weber -benutzt, dieser ist in der Datei +oracle-conversion/lesson.xml+ zu finden. +benutzt. +Dieser ist in der Datei +oracle-conversion/lesson.xml+ zu finden. Ein XSLT-Programm (+oracle-conversion/oracle-conversion/lesson-add-to-moodle.xsl+) erstellt Kommandozeilenbefehle, die zur Erstellung ausgeführt werden müssen. -- cgit