Bayer Bäume


Beschreibung der ISAM Dateiverarbeitung:
========================================

Wichtig:
Die Indexdateiverarbeitung funktioniert nur mit eindeutigen
Schlüsselstrings einwandfrei ! Bei Mehrfachauftreten des
gleichen Keys, werden nur die Daten des Zuletzt bearbeteten
Keys in der Indexdatei gespeichert (wegen REWRITE !).
Alle Funktionen zur ISAM-Verarbeitung arbeiten mit
Freispeicherverwaltung, sodaß kein Speicherplatz
verschwendet wird.


Aufbau Datendatei:
==================

Pos   0: unsigned reclen                  Datensatzläng in Bytes
Pos   2: long     recanz                  Anzahl gespeicherter Datensätze
Pos   6: long     datfrevek               Vektor auf zuletzt frei ge=
                                          wordenen speicherbereich
Pos   8: unsigned keylen                  Schlüssellänge

Pos 511
...........................
Pos 512: records                          Datensätze ab Pos 512.


Zuletzt frei gewordenen Speicherbereich:
----------------------------------------

long datfrevek                            Vektor auf zuvor freigewordenen
                                          Speicherbereich.
                                          Beim zuallererst freigewordenen
                                          Speicherbereich ist dieser
                                          Pointer gleich '0'.

Bsp. :
-----
Pos  6: 762
Pos512: record
Pos562: record
Pos612: 0                                 Freier Speicherbereich
Pos662: record
Pos712: 612                               Freier Speicherbereich
Pos762: 712                               Freier Speicherbereich


An Pos 762 ist eine 712 (long-Wert) eingetragen, d.h. Pos 712 ist der
zuvor feigewordene Speicherplatz. Wird jetzt vom System ein Speicher-
platz für einen Satz gebraucht, so wird dieser Satz an Pos762 geschrieben.
Die Zahl 762 an Pos 6 wird in 712 geändert. Steht an Pos 6 (datfrevek)
eine Null, so wird der zu speichernde Datensatz ans Dateiende
geschrieben.


Aufbau Indexdatei:
==================

Pos    0: unsigned idxkeylen       Länge des Indexschlüssels (in Bytes)
Pos    2: unsigned idxstufen       Tiefe des B-Baumes
Pos    4: long     idxwrz          Vektor auf Wurzelblock
Pos    8: long     idxfrevek       Vektor auf zuletzt freigewordenen
                                   Speicherbereich


Pos 2047:
...........................
Pos 2048: blocks                     Indexblocks


Bsp:
----
Pos    0: 20
Pos    2: 4
Pos    4: 4096
Pos    8: 12288
Pos 2048: block
Pos 4096: block                    Wurzel
Pos 6144: 0                        Freier Speicherbereich
Pos 8192: block
Pos12288: 6144                     Freier Speicherbereich
.
.

Aufbau Indexblock:
------------------

Positionen relativ zum Blockbeginn.

Pos  0: long blkvek                Position des blocks in der
                                   Indexdatei.
Pos  4: long blkvatvek             Position des Vaterblocks in der
                                   Indexdatei.
                                   Positionen können mit lseek()
                                   eingestellt werden
Pos  8: unsigned blkstfnr          Höhe des Blocks in der Indexdatei
Pos 10: unsigned blkkeyanz         Anzahl der Einträge im Indexblock.
Pos 11: Eintragungen
.
.
.
BLOCKSIZE                          Blockende
...........................


Aufbau einer Eintragung:
------------------------

Pos 0: string-----------     Pos keylen: long Vektor

Tiefste Indexstufe: Vektor = Vektor auf datensatz in Datendatei.

Ansonsten         : Vektor = Vektor auf Indexblock indem weitergesucht
                             werden muß [siehe auch Beschreibung
                             isamramsrch()]

Copyright (c) 1989-2019 Michael Ollmann

LEXO-Tags

Michael Ollmann, Selbstständigkeit, Ideen

Weblinks

Michael Ollmann

Bayer Bäume Seiten:  
x
Franchiseportal

Gemacht für GRÜNDER und den Weg zum ERFOLG!
Wähle dein Thema:

Eine erprobte Geschäftsidee finden mit Innovationen für den eigenen Start in die Selbstständigkeit. © FranchiseCHECK.de - ein Service der Nexodon GmbH