Rechnersysteme File und Database

1 File Systems

1.1 Speichermedien

1.1.1 Magnetband





Vol1

HDR1

S1

S2

S3

S4

EOF1

Nächster Datenbestand


Reflektormarke Gap
Vol1
Volume Kennsatz char 6 (‚Lohn‘)
Kennzeichnet den Datenträger
HDR1
Header: Kennzeichnet den nachfolgenden Datenbestand
Name char 31


80 Byte
Erstelldatum
Schutzdatum
Recsize
(Record - Size)
BlkSize
(Block - Size)
EOF1
End of File char 80
Wie HDR1 + Anzahl der Sätze

1.1.2 4 - Spur - Bänder

8 Spuren Information + 1 Parity Bit
H
U
G
O




1
1
1
1
...
0

Daten
1
1
1
1
...
0


0
1
0
0
...
1

Blockprüfung
0
0
0
1
...
0


1
0
0
0
...
1


0
1
1
1
...
1


0
0
1
1
...
0


0
0
1
0
...
1


1
0
1
1



Parity - Bit
èBitparallele Aufzeichnung
Durch VRC (vertical redundacy check) und LRC (longitudinal redundancy check) sind 1 - Bit - Fehler korrigierbar, weil sie mit Hilfe des Parity - Bits und der Blockprüfung genau lokalisierbar sind. 2 - Bit - Fehler sind nur erkennbar.

1.1.3 Magnetplatte
















Platten
Antriebs - achse
Schreib/
Lese - Köpfe
Zugriffs - kamm

1.1.3.1 Aufbau einer Spur


Home Adress

Spurbeschreibungssatz

Record

Record


CC HH

OK / defekt



CC = Cylinder #
HH = Head #
è CC HH der
Ersatzspur

Count
(Rel. Satz)
Key
(Satzschlüsel)
Data


C
K

D

Architektur
Ein Satz ist durch CC HH RR adressierbar

1.1.3.2 Aufbau eines Volumes




Vol1
VTOC↑




Lohn - Datenbestand

HRD1
Name

Beginn
Größe
HDR1
Name

Beginn
Größe

VTOC = Volume Table of Contents (Directory)


2 Dateien und Datenbestände

OPEN
Input
HRD1 wird auf Platte gesucht

Output
HDR1 wird geschrieben bzw. erstellt
CLOSE
Input
-

Output
EOF1 wird erstellt
READ / WRITE
Datenmanagement stellt einen Satz im Buffer (& Working Storage) zur Verfügung, bzw. Datenmanagement schreibt Daten auf das Speichermedium

2.1 Ungeblockte Sätze



S1

S2

S3

S4

...
Band

Read
Datenmanagement




I/O - Buffer (Select .. Recsize, BlkSize)




Working Storage (in Working Storage Section)



2.2 Blocken der Sätze



S1
S2
S3
S4

S5
S6
S7
S8

S9
S10
S11
S12



1. READ 5. READ


1.
2.
3.
4.





2.3 Blocken der Sätze und 2 I/O Buffer



S1
S2
S3
S4

S5
S6
S7
S8

S9
S10
S11
S12

S13



















Ãœberlapptes Arbeiten mit 2 I/O - Buffern

3 Datenmanagement
Zugriffsmethoden SAM, ISAM, DAM

Zugriffsmethoden sind Hilfsroutinen des Betriebssystems, die dem Programmierer einfachen Zugriff auf Datenbestände ermöglichen

3.1 SAM - sequential access method

Magnetband oder Magnetplatte
READ
Liest den nächsten physischen Satz auf dem Band / Platte in den Speicher (Working Storage)
WRITE
Schreibt den Satz physisch auf Band oder Platte
REWRITE
Überschreibt den zuvor gelesenen Satz. Die Satzlänge muss gleich bleiben
DELETE
-
INSERT
-

Update eines (consecutive Datenbestandes)
Stamm - Alt
Beweg
Logik:
OPEN Input Stamm - Alt, Beweg
OPEN Output Stamm - Neu
READ Stamm - Alt, READ Beweg
WHILE NOT EOF(Stamm - Alt) OR NOT EOF(Beweg)

Vgl. KEY(Stamm - Alt) mit KEY(Beweg)


<
=
>

Stamm - Alt - Satz è Stamm - Neu
DELETE
Beweg - Satz è Stamm - Neu

%
Beweg - Satz è Stamm - Neu

READ Stamm - Alt
READ Stamm - Alt
READ Beweg
READ Beweg

EOF
EOF
EOF

KEY = HighValue
%
KEY = HighValue
%
KEY = HighValue
%
CLOSE aller Dateien
SAM wird heute ausschließlich für Backups verwendet.
Vorteil: sehr schnell
Nachteil: kein Direktzugriff

3.2 ISAM - index sequential access method

Vgl. dazu auch Arbeitsblatt
Funktionen:
READ
READ NEXT bringt den logisch nächsten Satz
READ KEY 4711 : Direktzugriff über alle Indexstufen
WRITE
Sätze müssen sortiert geladen werden. ISAM baut die Indizies automatisch auf à Spurindex à Zylinderindex à Hauptindex
REWRITE
Satzlänge und Schlüssel dürfen nicht geändert werden
DELETE
Nur mit Delete - Byte (Schlüssel) möglich
INSERT
Sätze kommen in die Überlaufspuren
à bei READ DIRECT wird immer die zugehörige Ãœberlaufspur mit durchsucht bevor ‚not found‘ gemeldet wird
Vorteil: sequentieller und direkter Datenzugriff
Nachteil: langsame Methode bei Direktzugriff wegen des mehrstufigen Indexes
à Antwortzeiten im Online - Betrieb sind bei großen Datenbeständenschlecht

3.3 DAM - direct access method

3.3.1 Regional 1



0
4710
1
4711
2

3
4713
4

5
4715
6
4716
7
4717
8

9





















1 Region entspricht einem Satz

Der gesamte zur Verfügung stehende Plattenplatz wird in Regionen aufgeteilt. Eine Region nimmt einen Satz auf.
Durch Umrechnungen mit Hilfe eines Umrechnungsschlüssels erhält man aus dem Schlüsselwort die Region#.
Schlüsselwort
Region#
4710
4711
4713
4715
4716
4717
0
1
2
3
5
6
Funktionen:
READ NEXT
Bringt die physische Folge der Sätze (logische Folge)
READ ... REGION#
Bringt den Satz der spezifizierten Region
WRITE
Schreibt einen Satz in die errechnete Region
REWRITE
Schlüssel darf nicht geändert werden
DELETE
REGION wird mit X‘00‘ überschrieben
INSERT
Wie WRITE
Vorteil: schnellste Methode für den Direktzugriff überhaupt. Unabhängig von der Größe des Datenbestandes wird ein Satz mit einem Zugriff gefunden.
Nachteil: Umrechnung der Schlüssel in der Region notwendig.
à geschlossene Schlüsselkreise notwendig, da sonst große Lücken auf der Platte entstehen
à Sätze müssen alle gleich lang sein

3.3.2 Regional 3

4711
4712
4805
4874
4913
5000
5001
Für gestreute Schlüssel geeignet
Divisionsrestmethode:
KEY: Anzahl Spuren = Ergebnis + Rest
Rest gibt die Region# an
Funktionen:
READ NEXT
Physisch sequentieller Zugriff
READ ... KEY
Direktzugriff
WRITE
Hashing - Methode errechnet den physischen Speicherplatz (Region#)
Variable Satzlänge möglich
REWRITE
Gleiche Schlüssel und gleiche Satzlänge sind Voraussetzung
DELETE
Nur mit Löschkennzeichen
INSERT
Wie WRITE
Vorteil: Performance bei Direktzugriff wie bei Regional 1
Gestreute Schlüssel möglich
Variable Satzlänge möglich
Nachteil: zum sequentiellen Verarbeiten muss der Datenbestand sortiert werden
Die Sätze können nicht mehr in die ursprüngliche Reihenfolge zurückgebracht werden.

3.4 Nachteil aller Methoden

    kein Zugriffsschutz nicht Reorganisationsfrei kein Komfort beim Verwalten der Datenbestände keine Verarbeitung über Sekundärschlüssel viel Arbeit mit der Plattenverwaltung kein Schutz vor unbeabsichtigtem Löschen

3.5 Performance Betrachtungen

3.5.1 DAM/ISAM

Performanceprobleme durch gelöschte Sätze und stark gefüllte Überlaufbereiche
è Reorganisation:
    unload der Datei auf die Platte Newdefine der Plattenbereiche Reload der Datei von der Platte

3.5.2 SAM

Performanceprobleme durch Sätze und gelöschte Sätze
    à unload à reload blocken und 2 Buffer anlegen

4 File Systems

Bisherige Verfahren: SAM, ISAM, DAM
Vorteil: wenig Speicherbedarf
Nachteil: unkomfortabel, wenig Funktionalität
IBM - Methode: VSAM - virtual storage access method
    Catalogs Cluster Physische Organisation Logische Organisation Alternative Index

4.1 Catalogs

VSAM besitzt eine zentrale Informationsstelle im System, den "Catalog". Dieser verwaltet alle zugeordneten Volumes, Datenbestände, Paßwörter, usw.
Wird der Catalog zerstört (z. B. durch Stromausfall während eines Updates), so können alle von ihm verwalteten Datenbestände nicht mehr eröffnet werden.
Wie schützt man einen solchen Catalog?

4.1.1 Recoverable Catalog

CRA = Catalog Recevery Area (Kopie der Katalog Daten)
Die CRA wird ständig mit den Katalogdaten synchronisiert. Wird der Katalog zerstört, können seine Daten mit Hilfe der CRA wieder hergestellt werden.

4.1.2 Mehrere Subcataloge anlegen

    Möglichkeit: Für jedes Volume wird ein Subcatalog angelegt.
Pointer vom Master - Catalog zu den Sub - Catalogs
    Möglichkeit: Für jedes Sachgebiet wird ein Subcatalog angelegt.
Was wird alles im Catalog verzeichnet?
    gesamte VSAM - Space wird verwaltet Datenbestände mit ihrem Attributen werden verwaltet

è Vgl. Arbeitsblatt; Listing von Katalog MCAT.WI

VSAM - Implementierung
    Masterkataloge anlegen durch DBA (Data - Base - Administrator)
Name, Volume, Extent
    Subcataloge an legen durch DBA (Data - Base - Administrator)
Name, Volume, Extent
    VSAM - Space anlegen
Name, Volume, Extent
    Datenbestand (Cluster) anlegen
à Attribute des zukünftigen Datenbestandes definieren
à im VSAM - Space Platz reservieren für diese zukünftige Datei
    Datenbestand laden und damit arbeiten
READ, WRITE, UPDATE, DELETE
    Datenbestand aus dem Catalog löschen

4.2 Cluster

VSAM - Datenbestände werden mit Hilfe der VSAM Definitionssprache "AMS - Acces Method Services" definiert.
Beispiel:
DEFINE CLUSTER
NAME(Personal.Stamm.Datei)
MASTERPW(Hugo)
UPDATEPW(Berta)
READPW(Emma)
CYLINDER(50 - 2)
[fürs erste Laden; Sekundärerweiterung bei Überlauf (automatisch)]
FOR(1000) TO (365 2000)
INDEXED
KEYS(50 0)
[Länge und Offset vom Key]
RECORDSIZE(80 150)
[∅, max]
FREESPACE(30 30)
[30%]
CATALOG(Hugo1)

4.3 Physische Organisation

Jeder Cluster besteht intern aus Control - Invervallen. (Blöcke gleicher Länge 2K, 4K, 8K [1K, 512 Byte], welche organisatorisch zu Control - Areas zusammen gefaßt werden)

2K






Ci1
C1

Ci2


Ci3


Ci4
C2

Ci5


Ci6


Ci7
Regel:
Ci - Size> max Satzlänge
CA - Size wird VSAM intern je nach Plattencharakteristik bestimmt (immer 1 Cylinder der physischen Platte)
Zwischen Device und Hauptspreicher werden immer nur ganze Cis hin - bzw. herbewegt.
Wird ein Cluster geladen, werden die Sätze von links nach rechts in ein Ci gestellt, während von rechts nach links Kontrollinformationen eingetragen werden.
S1
S2
S3
S4
Länge Freespace
RDF
CiDF









0
1
2
3

Offset
Länge
CiDF è Control Interval Definition Field (verwaltet Freespace: Länge & offset)
RDF è Record Definition Field (verwaltet Sätze in Ci)
Beispiel:
2K
S1
S2
S3
Länge Freespace
RDF1
RDF2
CiDF
100
50
100

100
50
00
100
0
0




4 Byte
Analyse des Plattendumps (Speicherauszug) des Arbeitsblatts:
Man unterschiedet zwei verschieden Plattentypen:
1. CKD - Platten: Cylinder, Spuren
2. FBA - Platten: Fixed - Block - Architecture

Block 212 264 ist Beginn des VSAM - Cluster = Beginn des ersten Cis
Ci - Size = 2K
Fragen:
    Wieviel Sätze sind in einem Ci? à RDF Wie lang sind die Sätze? à RDF Wieviel Freespace gibt es im Ci? à CiDF
Alle Kontrollfelder (CiDF, RDF) enthalten Binärinformationen

4.4 Logische Organisation

VSAM unterstützt sequentielle, index - sequentielle und driekte Zugriffe
ESDS: entry sequence data set (entspricht SAM, Datei in Zugriffsfolge)
à Die Sätze haben keinen Ordnungsbegriff
DEFINE CLUSTER
...
NONINDEXED
FREESPACE(0 0)
Funktionen:
WRITE: der Satz wird hinter den vorhergehenden geschrieben
READ NEXT: sequentielles Lesen
REWRITE: Satzlänge darf nicht geändert werden
Sätze können nur am Ende des Datenbestandes angefügt werden
Kein insert
Kein delete

4.4.1 RRADS: Relative Record Data Set (=DAM Regional 1)





Jeweils 2 RDF
CiDF
0
1
2
3



4
5
6
7










Alle Sätze sind gleich lang.
Umrechnung notwendig
Schlüssel à rel. Satz# (Slot)
z. B. PNr. 4711 à Slot# 4711
Funktionen:
WRITE ... SLOT# schreibt Satz in den spezifizierten Slot
READ NEXT sequentielles Lesen
READ ... SLOT# direktes Lesen
INSERT ... SLOT# schreibt einen Satz in einen leeren Slot
DELETE ... SLOT# löscht einen Satz
REWRITE ändert Satzinhalt
DEFINE - Klausel:
DEFINE CLUSTER
...
NUMBERED

5 VSAM - Key sequence data set (KSDS)

Die Sätze besitzen einen Schlüssel, über den ein Index aufgebaut wird.
DEFINE - Klausel:
DEFINE CLUSTER
...
INDEXED
KEYS (Länge, Offset)
FREESPACE (30 25) {30% in Ci und 25% in Ca}

OPEN UPDATE SEQUENTIAL
à Ca - Splits

OPEN UPDATE DIRECT
à Ci - Splits

Funktionen bei KSDS:
WRITE Muß sortiert nach Schlüssellänge erfolgen. VSAM baut den Index automatisch auf.
Auf der obersten Indexstue beschreibt 1 Ci, die gesamte Datei.
READ ... KEY(4711) Direktes Lesen erfolgt über alle Indexstufen
READ NEXT Sequentielles Lesen erfolgt über den sequence - set (unterste Indexstufe)
INSERT Bei Einzelzugängen eventuell ein Ci - Split
Bei Massenzugängen Ca - Split
DELETE KEY(4711) Die nachfolgenden Sätze werden nach vorne geschoben; der Freespace ist immer kompakt am Ende des Ci.
REWRITE Sätze können verlängert und verkürzt werden

Alternate - Index
Beispiel: Kundenstamm - Daten einer Kfz - Versicherung
Satzaufbau: (Key = Vers. - Nr)
Vers. - Nr.
Name, Vorname
Anschrift
Kfz - Nr.
Id - Nr.
Vers. - Daten
Vorgehensweise:
    Basiscluster definieren (DEFINE CLUSTER) Basiscluster mit Daten laden (Cobol / PL1 - Programm) Alternate index definieren "Build Index" lädt die Schlüsselpaare in den AIX Pfad definieren Arbeiten

OPEN :
    READ KEY ( )
    à spezifiziert Satz aus Base - Cluster; Not - Found abfragen READ NEXT
    à Sätze in der Sortierfolge des Primärschlüssels; EOF abfragen
OPEN :
    READ KEY ( ) READ NEXT
à Es werden bei beiden Operationen nur Schlüsselpaare aus dem AIX zurückgegeben.
OPEN :
    READ ... (ALTERNATE - KEY)
    à Spezifizierter Cluster aus Base - Cluster wird zurückgegeben READ NEXT
    à gesamter Basisdatenbestand in der neuen Sortierreihenfolge

6 Datenbanken

Herkömmliche Datenspeicherung: Files (à VSAM)
Funktionsorientierter Ansatz bei der Systementwicklung:
Funktionen stehen im Vordergrund bei der Entwicklung. Datenbestände werden den Erfodernissen der Programme angepaßt (Welcher Input wird benötigt, damit der Output erzeugt werden kann?).
à Redundanz der Datenspeicherung à Konsistenzprobleme
Datenorientierter Ansatz:
Die Datenstrukturen im Unternehmen sind relativ stabil. Die Funktionen sind dagegen ständigen Änderungen unterworfen.
Programme / Benutzer
Views
Data Base Management System
P1
DBMS

P2


Zugriffsbefehle:
IMS / PL1 /
SQL / Natural
P3

P4

Funktionen des DBMS:
    stellt Befehle zur Manipulation zur Verfügung stellt für die Benutzer Views zur Verfügung stellt eine Authority - Schema für die Benutzer zur Verfügung (Berechtigungen) und prüft beim Zugriff diese Berechtigungen ab verfügt über einen Locking - Mechanismus für "concurrency" (konkurrierender Zugriff) stellt Logging - Mechanismus für Warmstart zur Verfügung Mechanismen für Backup / Restore Mechanismen zur Sicherung der Datenintegrität

6.1 Datenbankmodelle

    invertierte Listen (ADABAS - Datenbanke, Software AG) Netzwerkmodelle (Siemens - UDS, CA - IDMS, ... CODASYL - Datenbanken) Hierarchisches Modell (IBM - IMS, PL1) Relationales Modell (IBM - DB2, Oracle - ??, Informix - ??, Tandem - ??, ...) Obektorientiertes Modell (für Videoobjekte, Sound, Graphik) (POSTGRES)

6.2 Das hierarchische Datenbankmodell am Beispiel von
IMS / PL1

Beispiel: Personaldatensatz soll abgespeichert werden
Pers#
Name
Anschrift
Ausbildung
Fam.Daten
Gehalt
Key

n*
n*
n*
n*
    als VSAM - KSDS abspeichern
Probleme:
Multiple Felder - wie oft legt man das Datenfeld an?
Wie schützt man Felder vor unbefugtem Zugriff?
    als PL1 - Datenbank abspeichern (in Form eines hierarchischen Baumes)
(Root - Segment)
Pointer Area
Pers#
Name








Anschrift

Ausbildung

PA
Fam. Daten

Gehalt
(Dependent Segmente)



Kinder

Root - Segmente: bilden den Einstieg in die Datenbank
Dependent - Segmente: sind Sequenztypen auf der unteren Hierarchieebene (max. 15. Ebenen)
Alle Segmente sind verpointert.
Die Programme müssen entlang der Pointer navigieren.
GET PNR 4711
GET Fam.Daten
GET Kinder
GET NEXT PNR
Beispiel: Verknüpfung von Datenbanken
Personal - Datenbank
Die Verknüpfung mehrerer physischer Datensätze führt zu weiteren möglichen Datenbank - Strukturen.
Views werden erstellt, indem man für die Anwendung nur bestimmte Segmenttypen und Felder sensitiv macht.

6.3 Pointersysteme

d. h. in den Datenbanken sind Pointer (in der Regel VSAM - RBAs) abgespeichert.
Das Root - Segment enthält den Schlüssel für den Direktzugriff.
Die Dependent - Segmente werden über die Pointer PCF / PTF gefunden.
Pointer können auch in andere Datenbanken zeigen.
Pointer werden bei der Generierung des Datenbankschemas angelegt (Struktur der Datenbank) und sind nur schwer modifizierbar.
    Datenbanksegemente komplett auf Bank speichern Datenbankschema neu generieren Die Daten von Band zurückspeichern Alle Programme anpassen
Man braucht immer ein (Cobol - ) Programm um auf die Datenbank zuzugreifen. Die Pfade zu den Daten sind über die Pointer fest vorgegeben.
Der Zugriff zu den Segmenten erfolgt über Zugriffsbefehle des DBMS:
GET UNIQUE è direct Read (Rootsegment)
GET NEXT è sequentielles Read bis Datenbankende
GET NEXT IN PARENT è liest nur die abhängigen Segmente unter einem Parent Segment

7 Programmentwicklung

7.1 Beispiele zur Programmierung

7.1.1 alle Segmente der Datenbank

à drucke alle Segmente der Datenbank aus
Ópen Liste, Überschrift drucken
EXEC DL 1 GET NEXT INTO IO
While Not DB - Ende

Drucke IO
EXEC DL 1 GET NEXT INTO IO
Nach jedem Zugriff wird die DIB (Database Interface Block) vom DBMS gefüllt
    Statuscode (Feld DibStat) [´ ´] Segmentname (Feld DibSEGM) [Name] Hierarchiestufe (Feld DibSegrLV) [2]
Lassen sich zur Flow - Control verwenden

7.1.2 alle "Name" - Segmente der Datenbank

Um alle "Name" - Segmente der Datenbank ausdrucken zu können, muss der GET - NEXT - CALL von 7.1.1 modifiziert werden.
    EXEC DL 1 GN SEGMENT(Name) INTO IO
Ópen Liste, Überschrift drucken
EXEC DL 1 GN SEGMENT(Name) INTO IO
WHILE DibStat NOT = GB

Drucke IO
EXEC DL 1 GN SEGMENT(Name) INTO IO

    DibSEGM = ´Name´
Ópen Liste, Überschrift drucken
EXEC DL GN INTO IO
WHILE NOT GB

DibSegm = ´Name´
Drucke IO
%
EXEC DL 1 GN SEGMENT(Name) INTO IO

7.1.3 Namen aller Mitarbeiter

Ópen Liste, Überschrift drucken
EXEC DL GET UNIQUE SEGMENT=´Funktion´ WHERE KEY = ´Craftsman´
DibSTAT = GE
DISPLAY ´Segment not Found´
EXEC DL 1 GET NEXT INTI IO
EXIT
WHILE DibSEGM NOT = 1

IF DibSEGM = 2
Drucke Name - Segment

EXEC DL 1 GET NEXT INTO IO
Bessere Lösung: GNP - GET NEXT IN PARENT
Ópen Liste, Überschrift drucken
GET UNIQUE SEGMENT(Funktion) WHERE KEY = ´Craftsmen´
DibSTAT = GE
DISPLAY "Not Found"
EXEC DL 1 GNP SEGMENT NAME INTO IO
WHILE DibSTAT NOT = GE

Drucke
GNP SEGMENT NAME INTO IO
GNP liest alle abhängigen Segment unter einem Parent. Dieses wird zuvor mit GN oder GU positioniert.

7.1.4 Alle Mitarbeiter die Abitur haben (EDUC - Segment = Abitur)

Open Liste, Drucke Ãœberschrift
EXEC DL 1 GN INTO IO
WHILE NOT = GB

DibSEGM = 2
IO à Hilfefeld

GNP Segment EDUC
WHILE NOT GE
Abitur
Drucke Hilfefeld

GNP Segment EDUC
EXEC DL 1 GET NEXT INTO IO

8 Die Zugriffsmethoden HDAM und HiDAM

Segmentformat:
SC
DB
Pointer Area
(PCF, PTF)
Daten

Delete Byte wird nicht verwendet
Segmentcode: 1 Root
2 Name
3 EXPR
4 EDUC
Die Segmente werden physisch in einem VSAM - ESDS - Cluster abgespeichert.

8.1 HDAM - Hierarchical direct access method

FSEAP: Freespace Element Anchor Point
AP: Anchor Pint
RAA: Root Adressable Area
OFL; Overflow Area
Freespaceverwaltung:
Bit Map: 0 in Ci ist noch Freespace
1 Ci ist gefüllt
FSEAP: Pointer zeigt auf den ersten Freespace in Ci jeglicher weiterer Freespace ist verpointert.
    Der gesamte Freespace in Ci ist verpointert
Root Key
RR
Ci #
+
AP
Randomizing Routine

Artist

2

1

LOAD / INSERT: Der Platz für ein Root - Segment wird über die Randomizing - Routine errechnet.
à Ci# + AP#
Werden für mehrere Root - Segmente die gleiche Ci# und gleiche AP# errechnet werden alle Roots in Ci über PTF verkettet.
Dependent - Segmente kommen in den OFC und werden über PCF und PTF verkettet.
GET UNIQUE: Max 1 IO um ein Root - Segment zu finden.

à schnellste Datenfankmethode überhaupt

à Zugriffsgeschwindigkeit ist unabhängig von der Größe der Datenbank

è Ideal für sehr große Datenbanken und Online - Betrieb.
GN, GNP: Ãœber PCF und PTF
INSERT: über Bit - Map und FSEAP wird freier Platz für das einzufügende Segment gesucht.
DELETE: Das gelöschte Segment wird als Freespace verkettet.
à Reorganisationsfrei
REPLACE: Ein Segment kann verlängert oder verkürzt werden.

Nachteil: GET NEXT bringt physische Reihenfolge der Root - Segmente.
è Gebräuchlichste Datenbank für Massendaten in der IBM - Großrechnerwelt.

8.2 HiDAM - Hierarchical indexed direct access method

è ermöglicht über eine Index - Datenbank den direkten und den sewuentiellen Zugriff auf die Root - Segmente

Die Daten werden beim Coden sequentiell abgespeichert
    keine Randomizing Routine keine Overflow - Area keine Ankerpunkte
Die Index - Datenbank zeigt auf die Root - Segmente und ist sortiert nach den Root - Key.
Die Freespaceverwaltung erfolgt wie bei HDAM durch eine Bit - Map und durch FSEAP.
Vorteil:
    direkter und sequentieller Zugriff Reorganisationsfreiheit durch Freespaceverwaltung
Nachteil gegenüber HDAM:
    langsamer, da Index durchsucht werden muss
    (nur 3 IOs fr eine Root - Segment)
Sekundär - Index - Datenbanken ermöglichen den Direkteinstieg über alle möglichen Segmenttypen (über jedem Datenbank - Segment kann ein Index aufgebaut werden).

3125 Worte in "deutsch"  als "hilfreich"  bewertet