summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/documentation.txt77
1 files changed, 70 insertions, 7 deletions
diff --git a/doc/documentation.txt b/doc/documentation.txt
index 2eef013..ba9ee46 100644
--- a/doc/documentation.txt
+++ b/doc/documentation.txt
@@ -69,13 +69,45 @@ Für Moodle ist ein integriertes Video-Plugin verfügbar.
``SQLBox'' ist ein Moodle-Modul, welches im Rahmen des Mulimedia-Projekts
entstanden 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.
+Mit diesem Modul lassen sich Aufgaben fuer Datenbanken Anhand eines Beispiels
+formulieren.
+Der Tutor, welcher einen Lernkurs fuer Datenbanken verwaltet, gibt dabei eine
+Aufgabenstellung in Textform und eine Musterloesung inform eines SQL-Strings an.
+Der Student muss Anhand des Aufgabentextes einen SQL-Anfrage formulieren welche
+diese Aufgabe loest.
+Der die SQL-Anfrage der Muterloesung sowie die des Studenten werden beide
+nacheinander auf einer Realen PostgreSQL-Datenbank ausgefuert.
+Die dabei entstehenden Antworten werden verglichen und bei Uebereinstimmung gilt
+gilt diese Aufgabe fuer den Studenten als Bestanden.
+Der Tutor kann den Lernsoftschritt aller Studenten Anhand einer
+Uebersichtstabelle verfolgen.
+In dieser Tabelle werden alle SQLBox-Aufgaben sowie alle Bentzer einander
+gegenueber gestellt.
+
+=== Das Test-Szenario
+
+Alle SQLBoxen finden im selben Beispiel-Szenario statt.
+Dieses Szanario ist in der Datenbank ``sqlbox'' abgebildet.
+Im Rahmen dieser Arbeit wurde das von Niels Weber entwickelte KAPV-Beispiel
+uebernommen.
+Es ist moeglich dieses Szenario zu erweitern oder auch ein vollkommen anderes
+zu erstellen, in man die Datenbank ``sqlbox'' anpasst.
+In einer Moodle-Instanz ist es momentan nicht moeglich mehrere verschiedene
+Beispielumgebungen fuer verschiedene SQLBoxen zu erstellen.
+
+=== Separierung von Benutzern
+
+Der Benutzer der SQLBox muss bei jedem Aufruf einen konsistenen Datenbestand
+vorfinden.
+Da es dieses System einem Benutzer gestattet reale Anfragen an eine reale
+Datenbank zu stellen, koennte dieser den Bestand der Datenbank veraendern oder
+beschaedigen.
+Zudem koennen Aufgaben welche das Erstellen oder gezielte Veraendern von
+Tabellen nur einem einem Benutzer erfuellt werden.
+Aus diesem Grund ist es notwendig, dass Anfrage von der verschiedenen Benutzer
+von einander trennen werden.
+In den Folgenden Abschnitten werden verschieden Moeglichkeiten diskutiert und
+bewertet, die Trennung der Benutzer erlauben.
==== Transactions
@@ -114,6 +146,13 @@ SELECT * FROM blub;
ROLLBACK TRANSACTION;
----
+Dieses Verfahren wuerden einen normalen Betrieb ermoeglichen, indem Fehlerhafte
+SQL-Anfragen wieder behoben werden.
+Es biete aber die Moeglichkeit der gezielten Stoerung durch boeswillige
+Benutzer.
+Diese koennte alle Tests unbrauchbar machen und damit einen normalen Lernbetrieb
+verhindern.
+
==== Separate Datenbank
Um die Anfragen der Nutzer von einander zu trennen, gibt es ebenfalls die
@@ -154,6 +193,30 @@ sqlbox=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO sqlbox_read;
GRANT
----
+==== Fazit
+
+Transaktionen koennten das Risiko von fehlerhafen Anfragen fuer die Datenbank
+stark reduzieren.
+Da dieser Mechanismuss aber keinen Schutz vor gezielten Manipulationen bietet,
+ist er fuer eine Lernplattform mit vielen unbekannten Nutzern ungeeignet.
+
+Separate Datenbanken fuer Benutzer bieten eine sehr gute Trennung und verhindern
+eine direkte gegenseitige Beeinflussung.
+Der Entwicklungsaufwand des Moodle-Moduls und die genutzten Ressourcen der
+Datenbank im Betrieb sind zu hoch im Verhaeltniss der anderen Loesungen.
+Aus disem Grund kommt diese Loesung unter den Umstaenden dieses Projekte nicht
+in Betracht.
+
+Eine Read-Only-Loesung indem es den Benutzern nur erlaubt wird +SELECT+-Anfragen
+zustellen schraenkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet
+sichere Trennung der Benutzer sowie einen geringen Entwicklungsaufwand fuer das
+Modul.
+Da er Hautpfokus beim Erlernen der SQL-Sprache auf den verschiedensten
+Moeglichkeiten von Anfragen liegt und das Anlegen von Tabelle und Spalten im
+Vergleich eher nebensaechlich zubetrachten ist, stellt sich diese Loesung am
+geeignetsten fuer das Problem der Benutzertrennung unter den aktuellen
+Umstaenden da.
+
== Literatur
* Niels Weber, Diplomarbeit