[Allegro] Fortbildung 2-2 : allegro-Konzept, Technik der Datenbank

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Jun 12 11:42:16 CEST 2015


                                                              13-05-2004
allegro-Fortbildung                                          18-04-2005
                                                              12-06-2015
    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.




Mehr Informationen über die Mailingliste Allegro