diff options
Diffstat (limited to 'doc/eudas/eudas.ref.3')
-rw-r--r-- | doc/eudas/eudas.ref.3 | 270 |
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). + |