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