MUIbase Support This Project
programmable relational database
with graphical user interface
This page is also available in English Français

Handbuch

Die folgende Dokumentation ist Bestandteil der MUIbase-Distribution und gibt es auch als PDF.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

6. Projekte verwalten

In diesem Kapitel ist vorhanden:


6.1 Dateiformat

Ein MUIbase-Projekt besteht aus einer Sammlung von Dateien, die in einem eigenen Verzeichnis gespeichert werden. Dieses Verzeichnis wird erstmalig beim Speichern des Projekts erstellt. Machen Sie keinerlei Annahmen über die Verzeichnisstruktur oder Dateinamen in diesem Verzeichnis. Insbesondere dürfen weder Dateien aus diesem Verzeichnis entfernt noch in dieses Dateien oder weitere Verzeichnisse plaziert werden! Diese gehen verloren, wenn das Projekt neu organisiert wird.

Das Verzeichnis enthält eine Datei mit Namen `Structure.mb', in der die Beschreibungen aller Tabellen, Felder, Filter, usw. gespeichert sind. Die Datensatzköpfe sind auch dort vermerkt. Für jede Tabelle wird eine Datei mit dem Namen der Tabelle angelegt. In ihnen werden alle Datensätze gespeichert. Schließlich kann es noch mehrere Dateien geben die `.lock', `.plock' und `.rlock' heißen. Diese regeln den Zugriff auf das Projekt. Mehrere MUIbase-Instanzen können ein Projekt lesen und benötigen dazu einen geteilten Zugriff auf die `.lock'-Datei. Aber nur eine Instanz darf das Projekt ändern, indem es einen Zugriff auf `.rlock' erhält, und speichern, indem der Zugriff auf `.plock' erfolgt. Zu beachten ist, dass der Zugriffsmechanismus auf bestimmten Garantien des Dateisystems beruht. Am besten ist es, das Teilen eines Projekts zwischen verschiedenen MUIbase-Instanzen auf einem Dateisystem zu testen, bevor man auf diesen Mechanismus vertraut.


6.2 Information

MUIbase hält einige Informationen über jedes Projekt bereit. Um Informationen über das aktuelle Projekt zu erhalten, wird der Menüpunkt `Projekt - Information' ausgewählt. Die Informationen enthalten den Namen des Projekts, die Anzahl der Tabellen, die Gesamtanzahl aller Datensätz in allen Tabellen und ein Wert, der anzeigt, wieviele Bytes beim Neuorganisieren eingespart werden könnten. Diese Einsparung ist jedoch nur ein Schätzung und sollte nicht als exakter Wert angesehen werden. Insbesondere wenn viele Änderungen an der Struktur des Projekts durchgeführt wurden (Hinzufügen oder Entfernen von Feldern), ist der Wert sehr ungenau.


6.3 Neues Projekt

Mit MUIbase ist es möglich, mehrere Projekte gleichzeitig zu bearbeiten. Die Anzahl der Projekte ist nur durch den vorhandenen Speicher begrenzt. Soll ein weiteres Projekt gestartet werden, so wird Menüpunkt `Projekt - Neu' gewählt. Dies öffnet ein neues Fenster mit einem leeren Projekt. Es ist nun möglich die Struktur des neuen Projekts festzulegen (siehe Struktureditor) oder ein bereits bestehendes Projekt von Platte zu laden (siehe Projekt öffnen).


6.4 Projekt leeren

Das aktuelle Projekt lässt sich durch Menüpunkt `Projekt - Leeren - Projekt' zurücksetzten. Dies schließt das aktuelle Projekt und ersetzt es durch ein leeres Projekt. In diesem Modus befindet sich MUIbase automatisch nach dem Starten ohne Angabe eines Projekts.

Über den Menüpunkt `Projekt - Leeren - Datensätze' lässt sich ein Projekt neu beginnen, das auf der Struktur des aktuellen Projekts basiert. Dies bedeutet, dass alles außer die Datensatzdaten des aktuellen Projekts für das neue Projekt verwendet wird.

Wenn das Projekt noch nicht gespeichert wurde, bevor einer der beiden Menüpunkte ausgeführt wird, fragt eine Sicherheitsmeldung nach der Bestätigung der Operation.


6.5 Projekt öffnen

Um ein Projekt zu laden, wird `Projekt - Öffnen - Projekt' aufgerufen. Dies öffnet ein Dateiauswahlfenster, in dem ein Projekt ausgewählt werden kann. Es ist auch möglich, nur die Struktur eines Projekts zu laden, wenn das gesamte Projekt ohne die Daten geöffnet werden soll. Um dies zu bewerkstelligen, wird `Projekt - Öffnen - Struktur' aufgerufen.

Falls das geladene Projekt die Programmquellen als extern gesetzt hat, so wird nach dem Öffnen die externe Quelldatei erzeugt (siehe Externe Programquellen).

Wird beim Bearbeiten eines Projekts eines der oben genannten Menüpunkte ausgewählt und das Projekt wurde noch nicht gespeichert, dann erscheint eine Sicherheitsmeldung, die nach einer Bestätigung fragt.

Man kann auch eine neue Version eines Projekts laden, indem man Menüpunkt `Project - Neu laden' wählt.


6.6 Projekt speichern

Alle Änderungen an einem Projekt werden nur im Speicher durchgeführt oder beim Auslagern von Datensätzen temporär gespeichert (siehe Datensätze auslagern). Um sie permanent zu machen, muss daher das Projekt auf Platte gespeichert werden. Dies wird durch `Projekt - Speichern' erledigt. Wenn das Projekt noch keinen Namen trägt, erscheint zuerst ein Dateiauswahlfenster und fragt nach einem Dateinamen.

Der Grund, warum MUIbase das Projekt nicht automatisch speichert, wenn sich etwas ändert, ist der, dass so der Benutzer entscheidet, wann das Projekt gespeichert wird, und der Benutzer durch Wählen von `Projekt - Zurück zum Gespeicherten' immer zur zuletzt gespeicherten Version des Projekts zurückkehren kann. Dieses Verfahren entspricht den Befehlen `COMMIT' und `ROLLBACK' in SQL-Datenbanksystemen.

Beim Speichern eines Projekts werden alle geänderten Datensätze auf Platte geschrieben und die Datei `Structure.mb' neu erzeugt. Vor dem Erzeugen der Datei benennt MUIbase eine möglicherweise existierende Datei `Structure.mb' in `Structure.old' um, um eine Sicherheitskopie zu haben, falls das Speichern misslingt.

Dieser Mechanismus garantiert schnelles Laden und Speichern, er erfordert aber gelegentliches Neuorganisieren (Umschichten) der Daten. Wenn viele Datensätze geändert wurden, dann werden die physikalische Reihenfolge der Datensätze und die daraus resultierende Fragmentierung zum Nachteil. Deshalb exisitiert ein Menüpunkt `Projekt - Umschichten & Speichern', der eine Umschicht- und Speicheroperation durchführt. Diese Operation kann etwas Zeit in Anspruch nehmen, die von der Anzahl und Größe der Datensätze abhängt. Die Umschicht- und Speicheroperation erzeugt ein neues Verzeichnis und schreibt alle projektbezogenen Dateien neu. Das alte Verzeichnis wird nach erfolgreicher Operation gelöscht.

Wenn Änderungen an der Struktur des Projekts durchgeführt wurden, wie z.B. das Einfügen eines neuen Feldes in einer Tabelle, so ist ein Umschichten auch sinnvoll. Strukturänderungen werden nicht automatisch an allen Datensätzen durchgeführt, da es zuviel Zeit in Anspruch nehmen würde, jeden Datensatz zu laden, ihn zu verändern und wieder auf Platte zurückzuschreiben. Daher werden diese Änderungen auf eine interne `todo'-Liste gesetzt, die nach dem Laden eines Datensatzes abgearbeitet wird. Das Anwenden dieser Liste auf einen Datensatz benötigt nur wenig Zeit. Je länger diese Liste jedoch wird, desto mehr Zeit wird beim Laden eines Datensatzes verbraucht. Das Umschichten eines Projekts führt dazu, dass die `todo'-Liste an allen Datensätzen durchgeführt wird. Wenn also viele Änderungen am Projekt durchgeführt wurden, so verkürzt das Umschichten des Projekts die Zeit zum Laden einzelner Datensätze.

Es ist auch möglich, ein Projekt unter einem neuen Dateinamen umzuschichten und zu speichern, ohne dass das alte Projekt geändert wird. Dies wird über den Menüpunkt `Projekt - Umschichten & Speichern als' angestoßen, welches nach einem neuen Namen für das Projekt fragt.


6.7 Admin- und Benutzermodus

MUIbase arbeitet entweder im Admin- (voreingestellt) oder im Benutzermodus. Durch Wählen der Menüpunkte `Project - Zum Admin-Modus wechseln' oder `Project - Zum Benutzer-Modus wechseln' kann zwischen den beiden Modi gewechselt werden. Im Benutzermodus sind mehrere Menüpunkte gesperrt und Struktur-, Program- und Abfrageeditor sind nicht verfügbar. Es sind daher nur die Grundfunktionen der Datensatzbearbeitung möglich. Im Admin-Modus sind alle Operationen erlaubt.

Durch Auswahl das Menüpunkts `Project - Admin-Passwort ändern' kann ein Admin-Passwort für ein Projekt gesetzt werden. Wurde dieses einmal gesetzt, so muss bei jedem Wechsel in den Admin-Modus das Passwort bestätigt werden. Bei falscher Passworteingabe wird der Zugriff verweigert und das Projekt verbleibt im Benutzermodus.

Wird ein Projekt geöffnet, für das ein Admin-Passwort gesetzt wurde, so wird dieses im Benutzermodus gestartet. Andernfalls (es wurde kein Admin-Passwort gesetzt), wird das Projekt im Admin-Modus gestartet.


6.8 Integrität der Daten prüfen

MUIbase kann überprüfen, ob die Daten in einem Projekt noch gültig sind und nicht durch Systemabstürze oder durch Programme beschädigt wurden. Der Menüpunkt `Projekt - Prüfe Integrität der Daten' startet diesen Prozess.

Normalerweise sollte diese Funktionalität nie benötigt werden und MUIbase immer melden, dass die Integrität der Daten perfekt ist. Sollte es aber doch mal passieren, dass ein Projekt `interne Fehler' aufweist, was bedeutet, dass einige Datensätze nicht mehr geladen werden können, dann kann das Projekt über diesen Menüpunkt repariert werden.

MUIbase schreibt dann eine Logdatei mit allen betroffenen Datensätzen und man kann anschließend das Projekt umschichten und speichern. In der Logdatei werden die Datensätze, die möglicherweise beschädigt und nicht mehr erreichbar sind (so dass sie gelöscht wurden), nach ihrer Datensatznummer im alten (beschädigten) Projekt und nach ihrer Datensatznummer (in Klammern) im umgeschichteten Projekt aufgelistet.


6.9 Datensätze auslagern

MUIbase muss nicht alle Datensätze eines Projekts im Speicher halten. Dadurch wird das Laden und Speichern von Projekten erheblich beschleunigt. Beim Laden eines Projekts wird für jeden Datensatz ein Datensatzkopf angelegt. Die Daten selbst werden nur dann geladen, wenn sie benötigt werden, z.B. wenn sie auf dem Bildschirm angezeigt werden sollen. Die Gesamtanzahl der Datensätze ist dennoch durch den verfügbaren Speicher begrenzt, da jeder Datensatzkopf einige Bytes Speicher benötigt.

Es kann festgelegt werden, wieviel Speicher für die Datensätze eines Projekts verwendet werden darf. Dazu wird einer der vorgegebenen Werte im Menü `Einstellungen - Datensatzspeicher' eingestellt (siehe Datensatzspeicher). MUIbase belegt nicht vorab den Speicher der angegebenen Größe, sondern prüft von Zeit zu Zeit, ob die Größe des momentan belegten Speichers größer ist als die angegebene.

Wenn MUIbase der Speicher ausgeht oder die Obergrenze für den Datensatzspeicher erreicht ist, dann versucht es, so viele Datensätze wie möglich freizugeben. In diesem Fall schreibt MUIbase veränderte Datensätze auf Platte, um ein Maximum an verfügbarem Speicher zu erhalten. Dieser Vorgang kann auch über den Menüpunkt `Projekt - Datensätze auslagern' erzwungen werden.

MUIbase verwaltet eine Frei-Liste für jede Datensatzdatei. Wird ein Datensatz gelöscht, so wird der zugehörige Dateiplatz zu dieser Frei-Liste hinzugefügt. Auch bei einer Änderung eines Datensatzes, der auf die Platte geschrieben werden soll, wird der alte Platz der Datei in der Frei-Liste eingetragen. MUIbase stellt jedoch sicher, dass beim Neuladen immer zum Stand der letzten Speicheroperation zurückgegekehrt werden kann. Es werden keine Bereiche beschädigt, die frei aber dennoch von Datensätzen belegt sind, die beim Neuladen des Projekts erreicht werden könnten.


6.10 Projekt schließen

Wenn die Bearbeitung eines Projekt abgeschlossen ist, kann es über den Menüpunkt `Projekt - Schließen' geschlossen werden. Dies gibt den Speicher und alle Resourcen des Projekts frei. Falls das Projekt Änderungen besitzt, die noch nicht gespeichert wurden, so bietet eine Sicherheitsmeldung an, es zu speichern, fortzusetzen oder die Operation abzubrechen.

Zum Schließen eines Projekts kann auch der Menüpunkt `Projekt - Speichern & Schließen' verwendet werden, bei dem das Projekt zuerst gespeichert, sofern Änderungen vorlagen, und dann geschlossen wird.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

Dieses Dokument wurde am 11. September 2016 mit texi2html generiert.