HALDB
# HALDB

HALDB (High Availability Large Database) ist ein Datenbanktyp bei IMS, den IBM mit IMS Version 7 neu eingeführt hat.

## Größenbeschränkung

Besonderes Merkmal einer HALDB ist die Möglichkeit zur Partitionierung. Eine HALDB kann auf mehr als Tausend Partitionen aufgeteilt werden (bei Einführung: 1001). Jede Partition kann aus bis zu 10 Datagroups mit je maximal 4 Giga Byte Daten bestehen. Das ergibt eine maximale Größe von 1001*10*4 Giga Byte.

## Partitionierung

Jeder Datenbanksatz besitzt einen eindeutigen Schlüssel (Key). Über diesen und mittels vordefinierter Keygrenzen ermittelt das Datenbanksystem selbstständig die zugehörige Partition für jeden Datenbanksatz. Alternativ kann dem Datenbanksystem je Datenbank eine selbstgeschriebene Routine für die Verteilung (Partition Selection Exit – PSE) bekanntgegeben werden.

## HALDB-Typen

### PHIDAM (Partitioned HIDAM)

Jede Partition besitzt einen Primary Index (HIDAM steht für Hierarchical Index Direct Access Method). Damit ist ein Direktzugriff über einen Index. möglich.

### PHDAM (Partitioned HDAM)

Obwohl ohne Index, ist Direktzugriff mit Hilfe einer Hash-Funktion (Randomizing-Routine) möglich. Sie berechnet für jeden Datensatz die Stelle innerhalb der Datenbank-Partition, an der dieser zu stehen hat. Bei der Allianz wurde von W. Fritsch ein Verfahren namens WMP (Woifis Magic Partitioning) entwickelt, mit dem die Speicherreihenfolge über alle Partitionen hinweg unabhängig von der Partitionsanzahl und identisch mit derjenigen einer (unpartitionierten) HDAM DB mit Randomizing-Routine DFSHDC40 ist.

### PSINDEX (Partitioned Secondary Index)

Zu jeder PDHAM oder PHIDAM Datenbank können optional 0 bis n Sekundär-Indizes (PSINDEX) definiert werden.

