summaryrefslogtreecommitdiff
path: root/doc/eudas/eudas.ref.3
diff options
context:
space:
mode:
Diffstat (limited to 'doc/eudas/eudas.ref.3')
-rw-r--r--doc/eudas/eudas.ref.3270
1 files changed, 270 insertions, 0 deletions
diff --git a/doc/eudas/eudas.ref.3 b/doc/eudas/eudas.ref.3
new file mode 100644
index 0000000..9b58b9b
--- /dev/null
+++ b/doc/eudas/eudas.ref.3
@@ -0,0 +1,270 @@
+#limit (11.0)##pagelength (16.5)##block#
+#start (2.0,0.0)#
+#page (31)#
+#headodd#
+#center#EUDAS#right#%
+
+#end#
+#headeven#
+%#center#EUDAS
+
+#end#
+#center#1
+
+3 Das virtuelle Dateimodell
+
+
+
+3.1 Dateistruktur
+
+Eine EUDAS-Datei hat folgende Bestandteile:
+
+- 0 bis 5000 #on("i")#Sätze#off("i")#, von 1 an durchnumeriert. Jeder Satz enthält für
+ jedes Feld einen variabel langen Text als Inhalt, der standard­
+ mäßig leer ist.
+
+- 1 bis 256 #on("i")#Felder#off("i")#, die die Sätze aufteilen. Jedes Feld besitzt einen
+ #on("i")#Feldnamen#off("i")# als Text und einen von vier #on("i")#Feldtypen#off("i")# (TEXT, ZAHL,
+ DATUM oder DIN). Der Feldname dient zur Identifizierung des
+ Feldes, der Feldtyp spezifiziert die Art der Behandlung beim Ver­
+ gleichen von Feldern.
+
+- Drei Zusatztexte. Der erste nimmt die #on("i")#Prüfbedingungen#off("i")# auf, der
+ zweite speichert das Datum der letzten Veränderung und der
+ dritte kann allgemeine #on("i")#Notizen#off("i")# aufnehmen.
+
+- Einen #on("i")#Satzzeiger#off("i")#, der einen bestimmten Satz als aktuellen Satz
+ auszeichnet. Der Satzzeiger kann durch Positionierungsoperatio­
+ nen verändert werden.
+
+- Eine #on("i")#Sortierreihenfolge#off("i")#, die angibt, in welcher Feldreihenfolge die
+ Datei zuletzt sortiert worden ist. Dazu für jeden Satz eine Anga­
+ be, ob er entsprechend dieser Reihenfolge an der richtigen Posi­
+ tion steht.
+
+- Eine interne Datenstruktur, die beschleunigten Zugriff auf eine
+ Satz nach dem Inhalt des ersten Feldes ermöglicht. Diese Struktur
+ steht ganz unter Kontrolle von EUDAS und kann nicht von außen
+ manipuliert werden.
+
+
+3.2 Öffnen
+
+#on("b")#Virtuelle Datei#off("b")# Die meisten EUDAS-Funktionen arbeiten
+nicht
+direkt auf einer EUDAS-Datei, sondern auf der sogenannten #on("i")#vir­
+tuellen Datei#off("i")#, die aus mehreren realen Dateien bestehen kann. Die
+virtuelle Datei erscheint nach außen hin wie eine einzelne
+EUDAS-Datei. Die Operationen auf der virtuellen Datei werden je­
+weils auf die einzelnen Bestandteile abgebildet.
+ Damit eine EUDAS-Datei Bestandteil der virtuellen Datei wird,
+muß sie geöffnet werden. Dieses Öffnen kann auf dreierlei Art und
+Weise geschehen.
+ Das Öffnen der ersten Datei stellt eine neue virtuelle Datei
+her. Die Feldnamen und Feldeigenschaften der ersten Datei werden
+in der virtuellen Datei übernommen. Dies ist der Normalfall, in dem
+sich die virtuelle Datei noch nicht von der zugrundeliegenden Datei
+unterscheidet.
+ Bei diesem ersten Öffnen muß angegeben werden, ob die vir­
+tuelle Datei verändert werden soll oder nicht. Falls die virtuelle
+Datei verändert werden soll, wird eine Arbeitskopie aller geöffneten
+Dateien angelegt. Die Ursprungsdateien können erst am Ende der
+Arbeit mit den geänderten Kopien überschrieben werden.
+
+#on("b")#Weitere Dateien#off("b")# Weitere Dateien können gekettet oder
+gekoppelt
+werden. Gekettete Dateien werden logisch an die zuerst geöffnete
+Datei angehängt. Ihre Dateistruktur wird ignoriert, sollte aber mit
+der ersten Datei übereinstimmen. Die Folge aneinander geketteter
+EUDAS-Dateien wird als #on("i")#Hauptdatei#off("i")# bezeichnet.
+ In der Hauptdatei werden die Sätze von 1 an durchnumeriert;
+die Aufeinanderfolge der Sätze wird durch die Anordnung der Sätze
+in den einzelnen Dateien und die Reihenfolge bestimmt, in der die
+Dateien gekettet wurden.
+ Die gekoppelten Dateien werden der Hauptdatei untergeordnet.
+Die in ihnen enthaltenen Informationen werden nur angezeigt, wenn
+sie mit einem Satzinhalt der Hauptdatei korrespondieren. Der
+Mechanismus dieser Satzkopplung wird im nächsten Abschnitt
+beschrieben.
+
+
+#free (8.0)#
+
+#center#Abb. 3-1 Schematischer Aufbau der virtuellen Datei
+
+
+
+3.3 Koppeln
+
+ Die Sätze der gekoppelten Dateien werden in Relation zu den
+Sätzen in der Hauptdatei gesetzt. Zu jedem Satz in der Hauptdatei
+kann eine Anzahl von Sätzen aus jeder Koppeldatei gehören. Diese
+Sätze müssen in den Inhalten der sogenannten #on("i")#Koppelfelder#off("i")# über­
+einstimmen.
+ Welche Felder Koppelfelder sind, richtet sich nach den Feld­
+namen. Die ersten Felder der Koppeldatei, die auch in der Haupt­
+datei vorhanden sind, werden als Koppelfelder betrachtet. Die Kop­
+pelfelder müssen also bei der Koppeldatei am Anfang stehen - in
+der Hauptdatei kann jedes beliebige Feld ein Koppelfeld sein.
+ Wenn eine Datei zur virtuellen Datei gekoppelt wird, werden
+alle Felder, die nicht Koppelfelder sind, in die virtuelle Datei auf­
+genommen. Die Koppelfelder brauchen nicht noch mal wiederholt zu
+werden, da ihr Inhalt ja immer identisch ist.
+ Zu beachten ist, daß bei diesem Verfahren auch Namenskonflik­
+te entstehen können, wenn nach den Koppelfeldern später wieder
+ein Feldname vorkommt, der auch in der Hauptdatei vorhanden ist.
+In den Fällen, in denen Felder durch ihren Namen angesprochen
+werden, ist dann das zweite Feld gleichen Namens nicht verfügbar.
+
+
+#free (7.0)#
+
+#center#Abb. 3-2 Schema des Koppelvorgangs
+
+
+#on("b")#Kombinationen#off("b")# Beim Vorwärtsgehen in der virtuellen Datei
+werden
+zu jedem Satz der Hauptdatei nacheinander alle möglichen Kombina­
+tionen der zugehörigen Koppelsätze angezeigt, denn es können
+mehrere passende Koppelsätze vorhanden sein. Die Satznummer
+bleibt dabei gleich; die einzelnen Kombinationen werden von 1 an
+durchgezählt. Beim Rückwärtsgehen wird aus technischen Gründen
+immer nur die erste Kombination angezeigt.
+ Existiert zu einem Satz kein passender Koppelsatz, so bleiben
+die entsprechenden Felder leer. Die Koppelsätze müssen in der
+ganzen Koppeldatei gesucht werden, daher ist bei großen Koppel­
+dateien die Suchzeit zu berücksichtigen.
+
+
+3.4 Änderungen
+
+In der virtuellen Datei kann auch geändert werden. Dabei ist jedoch
+Vorsicht angebracht. Es muß festgelegt sein, wie Änderungen der
+einzelnen Felder auf die beteiligten Dateien abgebildet werden.
+ Falls die virtuelle Datei keine Koppeldateien enthält, werden
+Änderungen am aktuellen Satz an der zugehörigen Datei durchge­
+führt. Das Löschen eines Satzes wird auch direkt in der Datei
+durchgeführt. Ein neuer Satz wird immer in der Datei eingefügt, zu
+der der aktuelle Satz gehört - am Ende der ersten Datei kann also
+kein Satz eingefügt werden, wenn noch weitere Dateien folgen.
+ Enthält die virtuelle Datei Koppeldateien, werden die Änderun­
+gen in der Hauptdatei wie oben beschrieben durchgeführt. Änderun­
+gen, die Felder in den Koppeldateien betreffen, werden nach folgen­
+der Entscheidungstabelle behandelt:
+
+ 1 2 3 4 5
+ ---------------
+ Koppelfelder verändert N J J N N
+ Übrige Felder verändert N - - J J
+ Übrige Felder leer - J N - N
+ Vorher Koppelsatz vorhanden - - - J N
+ ---------------
+ Neuen Satz einfügen x x
+ Koppelsatz ändern x
+ Kopplung aktualisieren x
+
+Fall 1: Es wurden keine Veränderungen an den Feldern des Kop­
+ pelsatzes vorgenommen, daher ist auch keine Aktion not­
+ wendig.
+
+Fall 2: Eines der Koppelfelder wurde verändert. Die Änderung wird
+ in der Hauptdatei durchgeführt. Die übrigen Felder des
+ Koppelsatzes sind jedoch als leer angegeben. In diesem Fall
+ wird der Koppelsatz nicht verändert, sondern nur eine
+ neue Korrespondenz gesucht.
+
+Fall 3: Eines der Koppelfelder wurde verändert, gleichzeitig ent­
+ halten aber auch die anderen Felder Informationen. In
+ diesem Fall wird ein neuer Satz in der Koppeldatei ange­
+ fügt, der die neuen Inhalte enthält. So wird vermieden,
+ daß an anderer Stelle plötzlich kein passender Koppelsatz
+ mehr vorhanden ist.
+
+Fall 4: Nur Felder der Koppeldatei, die nicht Koppelfelder sind,
+ wurden verändert, außerdem existierte ein korrespondie­
+ render Satz in der Koppeldatei. In diesem Fall werden die
+ Informationen im Koppelsatz abgeändert.
+
+Fall 5: Wie 4, nur war vorher noch kein Koppelsatz vorhanden
+ (Felder waren leer). In diesem Fall muß ein neuer Satz in
+ die Koppeldatei eingefügt werden. Einfügungen in die
+ Koppeldatei geschehen immer am Dateiende.
+
+#on("b")#Einfügen/Löschen#off("b")# Beim Löschen eines Satzes der virtuellen
+Datei
+durch Tragen bleiben die Koppeldateien unverändert. Nach dem
+Einfügen eines neuen Satzes wird nur dann ein Satz in einer Kop­
+peldatei eingefügt, wenn dieser Satz nicht nur Koppelfelder enthal­
+ten würde. Falls beim Einfügen nur die Koppelfelder angegeben
+werden, wird ein korrespondierender Satz in der Koppeldatei ge­
+sucht. Vergleichen Sie hierzu die Regeln beim Ändern.
+
+
+3.5 Sichern
+
+Falls Änderungen der virtuellen Datei erlaubt sind, arbeitet EUDAS
+immer auf Sicherheitskopien der beteiligten Dateien. Eine Datei, die
+wirklich verändert wurde, muß vor dem Aufbau einer neuen virtuel­
+len Datei gesichert oder explizit gelöscht werden.
+ Für jede einzelne Datei kann festgelegt werden, ob sie gesi­
+chert werden soll oder nicht. Als Hilfe wird dazu für jede Datei
+angegeben, ob sie tatsächlich verändert wurde oder nicht. Die
+Arbeitskopie kann beim Sichern die alte Version überschreiben oder
+unter einem neuen Namen gesichert werden.
+ Am Ende des Sicherns können die Arbeitskopien gelöscht wer­
+den. Anderenfalls werden die Dateien so betrachtet, als ob sie di­
+rekt nach dem Sichern wieder geöffnet worden wären und stehen
+weiterhin zur Verfügung.
+ Falls alle Dateien entweder gesichert oder nicht verändert
+sind, werden beim nächsten Öffnen einer neuen virtuellen Datei die
+vorherigen Arbeitskopien gelöscht.
+
+
+3.6 Umschalten auf Koppeldatei
+
+Falls eine Datei gekoppelt ist, kann man die virtuelle Datei auf
+diese Koppeldatei umschalten. Dadurch verhält sich die virtuelle
+Datei so, als ob nur diese Koppeldatei geöffnet wäre. Die Einstel­
+lungen der Hauptdatei wie Markierungen und Suchbedingung bleiben
+jedoch erhalten und stehen beim Zurückschalten wieder zur Verfü­
+gung.
+ Die Satzposition der Koppeldatei beim letzten Umschalten wird
+ebenfalls gespeichert und wird beim nächsten Umschalten wieder
+eingenommen, unabhängig von der tatsächlichen Satzposition der
+Koppeldatei zu diesem Zeitpunkt.
+ Für die Koppeldatei können eigene Markierungen vergeben
+werden, die auch nach dem Umschalten gespeichert bleiben. Auch
+ein Suchmuster kann für die Koppeldatei eingestellt werden, dies
+geht jedoch beim Zurückschalten wieder verloren. Die eingestellte
+Feldauswahl für die Bildschirmanzeige geht leider bei jedem Um­
+schalten verloren.
+ Das Umschalten kann entweder im Menü 'Einzelsatz' oder beim
+Einfügen und Ändern durch ESC 'K' bewirkt werden, ebenso das
+Zurückschalten nur im Menü 'Einzelsatz'. Beim Umschalten aus Ein­
+fügen oder Ändern erfolgt beim Zurückschalten eine Rückkehr in
+diesen Zustand. Dabei können nach Anfrage die Koppelfelder des
+aktuellen Satzes der Koppeldatei in die Hauptdatei übernommen und
+damit eine bestimmte Kopplung bewirkt werden.
+
+
+3.7 Mehrbenutzerbetrieb
+
+Durch Einstellen einer Managertask für den Mehrbenutzerbetrieb
+können auch Dateien dieser Managertask beim Öffnen direkt ver­
+wendet werden. Die Datei wird automatisch aus der Managertask
+kopiert und geöffnet.
+ Falls die Datei geändert werden soll, wird eine Sperre in der
+Managertask gesetzt, die verhindert, daß auch ein anderer Benutzer
+diese Datei zum Ändern öffnet. Beim Sichern erfolgt dann ein Rück­
+schreiben der Arbeitskopie. Die Sperre wird jedoch erst dann zu­
+rückgesetzt, wenn alle Arbeitskopien gelöscht werden, da erst dann
+keine Möglichkeit des Rückschreibens mehr besteht.
+ Alle Dateien der Managertask werden bei der Dateiauswahl zum
+Öffnen mit angeboten. Falls eine Datei in beiden Tasks existiert,
+wird die Datei in der Managertask genommen, die Datei der eigenen
+Task jedoch erst nach Anfrage überschrieben.
+ Damit die Sperre funktionieren kann, muß EUDAS in der Mana­
+gertask zur Verfügung stehen und die Task muß #on("i")#nach#off("i")# dem Insertie­
+ren von EUDAS als 'global manager' definiert werden (nicht 'free
+global manager' verwenden).
+