allegro-Fortbildung 2 Das allegro-Konzept 2.2 Technik der allegro-Datenbank (Was wird wie und wo gespeichert?) Jetzt wissen Sie, was es für Dateien gibt. Aber wie wirkt das alles zusammen? Von selber machen die Dateien nichts, da stehen nur Daten drin. Die Programme sind es, die einem die Inhalte von Dateien zeigen und damit etwas tun, neue Daten hineinschreiben usw. Der PC braucht immer geeignete Programme, von sich aus kann er nichts anfangen mit den Dateien. Wenn man eine .DOC-Datei hat oder eine .XLS oder .PPT, braucht man WinWord, Excel bzw. PowerPoint, sonst hat man nichts davon. Eine graphische Veranschaulichung macht einige Zusammenhaenge klar: http://www.allegro-c.de/doku/fkts/fktschema.htm Das Hauptprogramm des allegro-Systems heißt ab V25.5: allegro.exe oder a99.exe (Beide sind gleich) Nur damit kann man katalogisieren. a99 hat 1999 das alte DOS-Programm PRESTO.EXE abgelöst (das funktioniert aber immer noch!), und es kann SEHR viel mehr. (Andererseits und nebenbei: Programme sind auch nur Dateien, d.h. lange Listen von Zahlen. Diese Zahlen stellen dann aber keinen Text dar, sondern verschlüsselte Befehle, die der Computer ausführen kann. a99.exe ist z.B. eine solche "ausführbare" Datei, keine menschenlesbare mit Text drin. Bloß nicht versuchen, so eine irgendwie zu bearbeiten!) Was passiert beim Katalogisieren? Welche Dateien sind da beteiligt? Wo kommen die eingegebenen Daten wirklich hin? Schaden kann's nicht, darüber ein paar Dinge zu wissen... Während man mit einem neuen Datensatz beginnt oder einen schon vorhandenen bearbeitet, wird noch nichts in eine Datei geschrieben! Alles spielt sich zuerst im Arbeitsspeicher ab. (Wenn man Katalogzettel schreibt, passiert das alles nur auf dem Schreibtisch...) Erst wenn auf [Speichern] gedrückt wird (PRESTO: F10), dann passiert was, und zwar viel: 1. Der Datensatz wird in eine Datendatei geschrieben (Typ .ALD) Eine Datenbank kann bis zu 255 Datendateien haben. In welche davon ein neuer Satz gespeichert wird, kann man in der INI-Datei ein- stellen. Normalerweise ist es die Datei 1, sie heißt cat_1.ald. Beinahe ist es so, als hätte man einen Zettelkatalog mit 255 Kästen. Aber nur beinahe! Wenn es in der Datei einen gelöschten oder freigegebenen Satz gibt, in den der neue Satz hineinpaßt, wird der gelöschte überschrieben. Sonst kommt der neue Satz an das Ende der Datei. Ein alter Satz kommt nach Bearbeitung immer zurück in die Datei, wo er vorher schon war. Von alledem merkt man nichts. 2. Ein neuer Satz bekommt eine interne Nummer, und zwar übernimmt er die des gelöschten bzw. er erhält die nächsthöhere Nummer, die noch nicht vergeben wurde. Die Adresse des Satzes (Dateinummer plus Position in der Datei) wird in die Datei vom Typ .TBL geschrieben (die "Satztabelle"), das sind pro Satz nur 4 Byte. Wären die Sätze Zettel, dann hätte jeder eine Nummer, und man fände den Zettel, also in welcher Schublade und an welcher Stelle darin er steht, mit Hilfe einer langen Liste. 3. Jetzt das Allerkomplizierteste: Aus dem Datensatz werden die Registereinträge (die "Schlüssel") gebildet. Das geschieht nach der Vorschrift, die in der Index-Parameterdatei steht (Standard: Datei cat.api), und die ist auch noch für die Schritte 4. und 5. zuständig. Die Einträge kommen alle in die Indexdatei, Typ .ADX. Diese besteht aus bis zu 11 Teilen, die "Register" genannt werden. Die interne Satznummer wird mit jedem Schlüssel mitgespeichert. Damit kann das Programm über die .TBL-Datei die Adresse des Satzes finden, wenn er wieder gebraucht wird! Die Registereinträge sind so etwas wie die Haupt- und Neben- einträge der Titelaufnahme, bloß viel mehr als im Zettelkatalog! Bei korrigierten Sätzen ist es besonders kompliziert: die nicht mehr korrekten Schlüssel müssen raus aus dem Index und die nun korrekten dafür rein, aber an der richtigen Stelle! Ab V27 (2007) gibt es mehr als eine Indexdatei: eine zweite kann z.B. cat.aex heißen, eine dritte cat.azx etc. Damit ist die Menge der möglichen Registereinträge nochmal sehr viel größer geworden. 4. Die Kurzzeile wird gebildet und in die Datei vom Typ .STL geschrieben. Das sind die Zeilen, die man bei der Anzeige von Erg.Mengen sieht. 5. Die Restriktionsangaben werden gebildet und in die Datei vom Typ .RES geschrieben. Das sind z.B. Erscheinungsjahre und Sprachcodes, die zum Einschränken von Erg.Mengen benutzt werden können. Zu 4. und 5. gibt es bei der Zettelwirtschaft keine Parallele! 6. Während dieser Vorgänge wird die Datenbank für andere Schreib- vorgänge gesperrt, sonst könnte es ein Durcheinander geben. Daher kann die Meldung "bitte warten" kommen, wenn man speichern will. Wenn diese Meldung nicht weggeht und man also nicht speichern kann, obwohl sonst keiner am Arbeiten ist, dann ist die Sperre nicht wieder aufgehoben worden. Dazu gibt's den Menüpunkt "Datenbank sperren/freigeben" auf dem ORG-Menü (h org eingeben). Hinterher, beim Suchen, entnimmt das Programm immer aus dem Index die interne Nummer eines Satzes, denn die steht unsichtbar bei jedem Registereintrag dabei. Mit der Nummer stellt das Programm dann über die Satztabelle die Adresse des Satzes fest und greift auf die richtige Datendatei zu, um den Satz zu holen und anzuzeigen. Der Text der Titelaufnahme steht, anders als beim Zettelkatalog, nur an dieser einen Stelle in der Datenbank. So einfach ist das Ganze! (Aber im Ernst: noch viel einfacher könnte man es wirklich kaum machen - und wie gesagt, der Nutzer sieht das und ahnt das alles gar nicht.) Summa summarum: Eine allegro-Datenbank ist nicht eine einzige Datei, sondern es gehören mehrere dazu, die in sinnvoller Weise miteinander eine virtuelle Einheit bilden. >>Tip: Was folgt daraus für die Sicherheit? Die Titelaufnahmen, also was man eingegeben hat, stehen NUR in den Datendateien, Typ .ALD. Nur diese müßte man also sichern. Die anderen Dateien können in der Tat alle rekonstruiert werden: Dazu gibt es das Org-Menü, das die einzelnen Schritte genau erklärt: Geben Sie ein h org und dann klicken Sie oben rechts auf HILFE..HILFE..HILFE Dann kommt die ausführliche Fassung des Menüs. Auch: Menü "Global / (Re-)Organisieren" >>Übrigens: Die "interne Nummer" eines Satzes steht nicht in einem Datenfeld. Man sieht sie nur in dem zweiten Statusfeld von unten rechts. Da steht z.B.: 1296/1 L624 Das heißt: Sie haben den Satz 1296 vor sich, der gespeichert ist in der Datei 1 und er ist 624 Byte lang. Im DOS-Programm PRESTO sieht man diese Angaben in der obersten Zeile. (Nicht in alcarta bzw. in APAC.) Die INTERNE Nummer hat also NICHTS zu tun mit der Nummer in #00, um es nochmal ganz klar zu sagen! Das wird gern verwechselt. |