[Allegro] Fortbildung 2.2: Wie funktioniert die Datenbank
B.Eversberg
ev at biblio.tu-bs.de
Fr Apr 15 09:57:00 CEST 2005
13-05-2004
Fortbildungskurs 18-04-2005
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.
Das Hauptprogramm des allegro-Systems heißt ab V25.5:
allegro.exe
Es startet aber seinerseits das Programm a99.exe oder alcarta.exe,
das OPAC-Programm. Was wir hier die ganze Zeit behandeln, das ist
das Programm a99.exe. Nur damit kann man katalogisieren. Es hat das
alte DOS-Programm PRESTO.EXE abgelöst, kann aber 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.)
Was passiert beim Katalogisieren? Welche Dateien sind da betroffen?
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 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!
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 ideelle 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!
Mehr Informationen über die Mailingliste Allegro