summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/documentation.txt98
1 files changed, 50 insertions, 48 deletions
diff --git a/doc/documentation.txt b/doc/documentation.txt
index 1709a32..2108ace 100644
--- a/doc/documentation.txt
+++ b/doc/documentation.txt
@@ -60,6 +60,8 @@ Der Name ist gebildet als Akronym aus ``Modular Object-Oriented Dynamic Learning
Environment''. Die im Namen bereits festgehalten Modularität kann genutzt werden
um die Lernplattform um kursspezifische Aktivitäten zu erweitern.
+Zur Entwicklung dieses Projekts wurde Moodle in der Version 2.4 eingesetzt.
+
=== Videos einbinden
Im Rahmen der Lehre von Datenbanken, ist eine attraktive Möglichkeit, die
@@ -139,22 +141,22 @@ von XML in SQL Befehle transformiert.
=== Separierung von Benutzern
-Der Benutzer der SQLBox muss bei jedem Aufruf einen konsistenen Datenbestand
+Der Benutzer der SQLBox muss bei jedem Aufruf einen konsistenten 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.
+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.
+Aus diesem Grund ist es notwendig, dass die Anfragen von den verschiedenen
+Benutzern, von einander trennen werden.
+In den Folgenden Abschnitten werden verschieden Möglichkeiten diskutiert und
+bewertet, die die Trennung der Benutzer erlauben.
-==== Transactions
+==== Transaktionen
Eine Idee ist es, die Eingaben des Nutzers durch Transaktionen zu schützen,
-indem vor dem Ausführen der Nutzeranfrage eine Transaktion gestartet wird,
+indem vor dem Ausführen der Nutzeranfrage eine Transaktion gestartet,
und danach diese immer zurückgerollt (=ROLLBACK) wird:
[source,sql]
@@ -169,9 +171,9 @@ SELECT * FROM blub;
ROLLBACK TRANSACTION;
----
-Ein Nutzer könnte aber aus dieser Sandbox ausbrechen, in dem er die gestartet
+Ein Nutzer könnte aber aus dieser ``Sandbox'' ausbrechen, in dem er die gestarte
Transaktion beendet, den Datensatz manipuliert und dann eine neue Transaktion
-startet:
+startet, wodurch es nicht einmal zu einer Warnung vom Datenbank-Server kommt:
[source,sql]
----
@@ -188,43 +190,43 @@ SELECT * FROM blub;
ROLLBACK TRANSACTION;
----
-Dieses Verfahren wuerden einen normalen Betrieb ermoeglichen, indem Fehlerhafte
+Dieses Verfahren würde einen normalen Betrieb ermöglichen, indem Fehlerhafte
SQL-Anfragen wieder behoben werden.
-Es biete aber die Moeglichkeit der gezielten Stoerung durch boeswillige
+Es bietet aber die Möglichkeit der gezielten Störung durch böswillige
Benutzer.
-Diese koennte alle Tests unbrauchbar machen und damit einen normalen Lernbetrieb
+Dies könnte 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
-Moeglichkeit jedem Nutzer eine eigene Datenbank zur Verfuegung zu stellen.
-Somit koennte der Nutzer in den Test-Szenarien umfassende Aenderungen an der
-Datenbank vornehmen, ohne andere Nutzer dabei zu beeintraechtigen.
-Die Uebungen koennen dann nach einander so konstruiert werden, dass der Nutzer
-die Datenbank in eine bestimmte Richtung hin veraendert.
+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 Datenbank in eine bestimmte Richtung hin verändert.
-Der groesste Nachteil liegt im erheblichen Verwaltungsaufwand.
-Es muss bestimmt werden fuer welche Moodle-Nutzer eine Datenbank angelegt wird.
-Zudem muss es Moeglichkeiten geben, die Datenbanken wieder zurueckzusetzen,
+Der grösste 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 muesste geklaert sein, in welchem Zustand diese geschehen muesste.
-Entweder in einen Zustand indem der Nutzer an der naechsten noch offenen Aufgabe
+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
-Aufgaben von neuem erfuellen muss.
-Alle diese Massnahmen wuerden den Entwicklungsaufwand enorm steigern.
+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 fuer das Modul, sowie
+Dieses 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+ koennten
+Mit dieser Variante lassen sich hingegen nur +SELECT+-Anfragen stellen.
+Andere wichtige Anfragen, wie +UPDATE+, +DELETE+, +CREATE+ und +ALTER+ könnten
dann nicht innerhalb mit der SQLBox erprobt werden.
-Dazu wird mit einem priviligierten Account ein Nutzer angelegt, der für die
+Dazu wird mit einem privilegiertem Account ein Nutzer angelegt, der für die
Datenbank nur Leserechte, also für +SELECT+, besitzt:
[source,sql]
@@ -237,31 +239,31 @@ GRANT
==== Fazit
-Transaktionen koennten das Risiko von fehlerhafen Anfragen fuer die Datenbank
+Transaktionen könnten das Risiko von fehlerhaften Anfragen für die Datenbank
stark reduzieren.
-Da dieser Mechanismuss aber keinen Schutz vor gezielten Manipulationen bietet,
-ist er fuer eine Lernplattform mit vielen unbekannten Nutzern ungeeignet.
+Da dieser Mechanismus aber keinen Schutz vor gezielten Manipulationen bietet,
+ist er für eine Lernplattform mit vielen unbekannten Nutzern ungeeignet.
-Separate Datenbanken fuer Benutzer bieten eine sehr gute Trennung und verhindern
+Separate Datenbanken für 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
+Datenbank im Betrieb sind zu hoch im Verhältnis der anderen Lösungen.
+Aus diesem Grund kommt diese Lösung unter den Umständen 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
+Eine Read-Only-Lösung indem es den Benutzern nur erlaubt wird +SELECT+-Anfragen
+zustellen schränkt die Vielfalt der Aufgabenmoeglichkeiten ein, aber bietet
+sichere Trennung der Benutzer sowie einen geringen Entwicklungsaufwand für 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.
+Da der Hauptfokus beim Erlernen der SQL-Sprache auf den verschiedensten
+Möglichkeiten von Anfragen liegt und das Anlegen von Tabellen und Spalten im
+Vergleich eher nebensächlich zu betrachten ist, stellt sich diese Lösung am
+geeignetsten für das Problem der Benutzertrennung unter den aktuellen
+Umständen da.
== Installation
-Das Modul verzeichnis (+sqlbox/+ im Projektordner) muss zunächst auf den Server
+Das Moodle-Modul (+sqlbox/+ im Projektordner) muss zunächst auf den Server
in das Modulverzeichnis (+mod+) der Moodle-Installation kopiert werden:
[source,sh]