allegro-Fortbildung 11 Datenbankadministration 11.5 Daten von einem Katalog in einen anderen schaufeln Folgende Situation ist nicht so ganz selten: Man hat zwei Datenbanken, wir nennen sie mal A und B. In A sind eine Menge Daten, die man eigentlich in B haben will. Oder es sollen gleich alle Daten von A nach B, damit man nur noch eine Datenbank hat. Wenn es nur wenige Titel sind, geht es ja sehr gut mit der Schnellkopplung, siehe Lektion 5-3.6. Heute interessiert uns aber der Fall, wenn es sehr viele Daten sind und man weder Zeit noch Lust hat, sie einzeln zu kopieren. Wie geht das? Hier das Rezept, kurz und knapp und Schritt für Schritt: 0. Haben A und B dasselbe Datenformat? D.h. sind die Feldnummern die gleichen? Wenn nicht, wird es schwieriger! Dann muß erst eine Exportparameterdatei her, die einem die Daten aus A in das Schema der Datenbank B umwandelt. Das können wir hier nicht behandeln, dazu müßten Sie die Handbuchkapitel 6 und 10 studieren oder einen Allegrologen beauftragen. Wir nehmen also an, beide Datenbanken besitzen dasselbe Format. 1. Datenbank A starten. Menü "Füllhorn / EXPORT..." 2. Menüpunkt "Andere Exportparameter nehmen" Aus der Datei-Auswahlliste, die dann erscheint, wählen Sie die Datei i-1.apr (sie liegt auf dem Prog.Verz., also meistens c:\allegro) [Hat man zwei verschiedene Formate, dann ist an dieser Stelle die für die Umwandlung erstellte Parameterdatei zu wählen!] Vorsicht: Gibt es Sätze in A und B, die identische Nummern in #00 haben? Hinweise für diesen Fall geben wir ganz unten. 3. "Andere Exportdatei einstellen" Geben Sie dann den Dateinamen "transfer.alg" ein. (Wichtig ist nur das ".alg", der Name selbst darf anders lauten) 4a. Menüpunkt "Ganze Datenbank exportieren" , wenn alle Daten überführt werden sollen. 4b. Ergebnismengen aus den gewünschten Daten bilden und jeweils dann den Menüpunkt "Export / Aktuelle Erg.Menge ausgeben" . Bis man alle Daten zusammen hat. Auch einzelne Sätze können beliebig noch dazu exportiert werden : Punkt "Aktueller Satz" im Menü "Export" Aber Achtung: wenn ein Satz hierbei zweimal exportiert wird, weil er z.B. in zwei Ergebnismengen vorkommt, hat man ihn hinterher doppelt in A! 5. Datenbank B öffnen, Menü "Datei / Weitere offline-Datei laden" Die Datei transfer.alg auswählen und einlesen lassen. 6. Zuerst sind dann diese Daten in der Liste der "Daten in Bearb.", die man auch mit Alt+q aufmachen kann. Hier ist es möglich, einzelne Sätze noch zu bearbeiten, bevor man die Daten wirklich einspeisen läßt. Diese Sätze erscheinen mit blauem Hintergrund. Dazu siehe auch "Sonderlektion" in Lektion --> 13.3! Das endgültige Einspeisen geht dann so: 7. Menü "Datei / Offline-Datei -> Datenbank" Dann werden die Daten der Liste Satz für Satz gespeichert. Je nach Anzahl kann das ein paar Minuten dauern... Datenbank B darf selbstsverständlich auf einem anderen Rechner liegen, der ganz woanders auf dem Globus steht! In dem Fall muß man die Datei transfer.alg natürlich erst zu diesem Rechner hintransportieren oder über das Netz, per Mail oder ftp, übertragen. Danach kann man mit Punkt 5 weitermachen, auf Rechner B natürlich. Jetzt noch ein paar Hinweise für Fortgeschrittene! Vorkommen kann aber auch, daß man die "anderen Daten" nicht einfach so hineinschaufeln will, sondern daß es in Bank B schon Sätze gibt, die durch die anderen ersetzt oder ergänzt werden sollen, oder eben nicht, d.h. daß die anderen Sätze zu ignorieren sind, wenn schon einer für dasselbe Dokument vorhanden sind (Dublettenverhinderung). Alles das läßt sich machen, Wichtig ist dann aber, daß es einen eindeutigen Schlüssel gibt, der in A-Sätzen und B-Sätzen identisch ist. Das kann die Nummer in der #00 sein, es kann die ISBN (Vorsicht! Verlage machen Fehler) oder auch eine Signatur sein. Man muß im konkreten Fall jeweils genauer untersuchen, was der beste Schlüssel ist. Diesen macht man für die Dauer des Einmischens zum Primärschlüssel: man setzt die zugehörige ak-Zeile in den Indexparametern an die erste Stelle. Das Einmischen selbst wird dann am besten nicht mit a99 gemacht, sondern dem DOS-Programm UPDATE.EXE. Dazu steht alles Wichtige im Kapitel 9 des Handbuchs (in a99 eingeben: h ac9). Hier nur ein Beispiel, wie update.exe gestartet wird: Wir nehmen an, die Datenbank B liegt auf c:\allegro\katalog, hat die Konfiguration A.CFG und heißt "cat" (arbeitet also mit cat.api). Unsere Datei aus Bank A soll auch hier "transfer.alg" heißen. und auf c:\allegro liegen. Dann startet man in einem DOS-Fenster vom Verzeichnis c:\allegro aus das Einspeisen mit diesem Befehl: update -fm11 -ka -dc:\allegro\katalog -utransfer.alg -n2 -m1 Der Modus des Einspeisens steht hinter der Angabe -fm. Der Modus 11 bedeutet: Gefundene Sätze (mit identischem Primärschlüssel) sollen komplett durch die Sätze aus transfer.alg ersetzt werden. Wird ein Satz nicht identifiziert, soll er als neuer Satz eingemischt werden. Diese neuen Sätze landen in Datei cat_2.ald, was durch die Option -n2 ausgedrückt wird. Die Dateinummer kann zwischen 1 und 255 frei gewählt werden; sehr oft gibt es nur die 1. Hinweis: Wenn ein Satz in transfer.alg doppelt vorkommt, und beide haben wirklich denselben Schlüssel, bleibt nur der zweite übrig. Ahnen Sie, warum? Welche anderen Modusziffern es gibt und was man sonst noch beim Einspeisen modifzieren kann, das werden Sie jetzt problemlos aus dem Handbuch entnehmen können! Kap. 9, wie gesagt. Hinweise für den Fall, daß es identische IdNummern in A und B gibt. Man legt eine Variante von i-1.apr an, sagen wir i-export.apr. Es muß darin eine einzige zusaetzliche Zeile geben, und zwar diese: /00 (Wo sie steht, ist unwichtig.) Dann werden die IdNummern nicht mit exportiert und die Sätze erhalten in Datenbank A neue, individuelle Nummern. Im Schritt 2 ist dann also diese Datei zu wählen statt i-1.apr Vorsicht ist auch geboten, wenn man nicht mit a99, sondern mit update einspeist. Bei jedem Modus außer -fm01 werden dabei identische Nummern zu einer Fehlzuordnung führen. Solche Aufgaben sind denn doch eher was für erfahrene allegrologen und lassen sich nicht in einer knappen Lektion abhandeln - deshalb gibt es Kap. 9. |