Db2 ist ein kommerzielles relationales Datenbankmanagementsystem (RDBMS) des Unternehmens IBM, dessen Ursprünge auf das System R und die Grundlagen von Edgar F. Codd vom IBM Research aus dem Jahr 1970 zurückgehen.
Eigenschaften Das Datenbankmanagementsystem DataBase 2 (Db2) wird von IBM für verschiedene Plattformen vertrieben:
Es gibt die Produktlinie für IBM-Mainframes, auf denen sich aus dem Betriebssystem VSE über MVS und OS/390 das System für z/OS entwickelt hat.
Eine andere Linie entstand ursprünglich für das Betriebssystem OS/2. Diese Software ist in der Programmiersprache C geschrieben und bildete die Basis für die Varianten in den Betriebssystemen Linux, Unix und Windows (LUW).
Eine Variation ist eine in das Betriebssystem IBM i integrierte Lösung für IBM-Midrangesysteme (heutige Maschinenbezeichnung System i).
Die vierte Produktlinie betrifft die Betriebssysteme VSE und VM. Für diese gibt es zwar noch Support, aber keine neuen Versionen mehr. IBM rät den Kunden zu einem Wechsel auf andere Plattformen.
Aktuell sind die Versionen: Db2 for z/OS, Version 13 (frühere Bezeichnungen: Db2 UDB for z/OS für Version 8 bzw. Db2 UDB for z/OS and OS/390 für Version 7) Db2 for Linux, UNIX and Windows, Version 12.1 Db2 Data Warehouse Edition für AIX, Linux, Windows Db2 Everyplace IBM hat die IBM DB2 Everyplace-Produkte vom Vertrieb zurückgezogen. Außerdem wurde die Unterstützung für den 30. April 2013 abgekündigt. Db2 for i, Version 7 Release 6 (frühere Bezeichnung: DB2/400) Db2 Server for VSE & VM, Version 7.4
Db2 verwaltet Daten in Tabellen und speichert sie in Tablespaces. Db2 unterstützt neben den Standard-SQL-Datentypen auch binäre Datentypen (Text, Töne, Bilder, Videos, XML-Daten).
Seit Februar 2006 gibt es eine kostenlose Community EditionExpress-C (kostenlose Version) für Windows und Linux mit den folgenden Einschränkungen gegenüber den kommerziellen Versionen: Benutzung von max. 2 Kernen einer CPU (bzw. 4 Kerne mit zusätzlichem Wartungsvertrag) Benutzung von max. 4 GB Hauptspeicher (bzw. 8 GB mit zusätzlichem Wartungsvertrag)
Diese Version hat keine Einschränkungen hinsichtlich der Größe der Datenbank und der Anzahl der Benutzer, ohne zusätzlichen Wartungsvertrag gibt es jedoch keine Replikation, 24/7-Support und komfortable Updates.
Um bei der Ausführung von DB-Zugriffen optimale Performance zu erzielen, wird ein sog. Optimizer eingesetzt, ein kostenbasierter Anfrageoptimierer,Graig S. Mullins: DB2 Developer’s Guide. 2004, S. 722. welches bei der Programmvorbereitung den Zugriff auf die betreffenden Tabellen festlegt. Dies beruht unter anderem auf den sogenannten Tabellenstatistiken, die mit dem Tool RUNSTATS periodisch aktualisiert werden können, berücksichtigt aber auch andere Kennwerte wie z. B. die Anzahl der CPUs und Hilfs-CPUs, den Systemzustand, die verfügbare Speichermenge und die physische Verteilung der Daten.
Der Datenzugriff der Anwendungsschicht erfolgt mit SQL, das weitgehend dem ANSI-SQL entspricht. Zugriffe auf gespeicherte Daten können daher aus vielen Programmiersprachen heraus mit eingebettetem SQL erfolgen.
Db2 kann auch als eingebettetes Datenbanksystem eingesetzt werden.
Im April 2007 hat IBM eine Kooperation mit MySQL AB angekündigt, um das Db2 UDB for iSeries als Database-Engine für MySQL verfügbar zu machen. In: ibm.com. Dadurch kann die Open-Source-Datenbank MySQL auch auf dem System i5 eingesetzt werden. IBM erhofft sich davon, neue Einsatzbereiche des Systems i5 für MySQL- und PHP-Anwendungen zu eröffnen.
Eigenschaften (Db2 z/OS) Das System erlaubt derzeit Tablespaces mit einer maximalen Größe von 128 Terabyte.
Die Administration auf Mainframes erfolgt in der Regel mittels Batchjobs, wobei zwischen Db2 Utilities (RUNSTATS, COPY, REORG usw.) und DBA-Jobs unterschieden wird (SQL wird mittels DSNTIAD in einem TSO-Backgroundjob durchgeführt). Kleinere Arbeiten werden oft auch am TSO-Terminal mittels SPUFI oder QMF (Query Management Facility) unter ISPF durchgeführt.
Größere Mainframeumgebungen verwenden Db2 Data Sharing, wobei die Funktionalität des Parallel Sysplex der zSeries-Rechner voll genutzt wird.
Eigenschaften (Db2 LUW) Das Db2 für Linux, Unix und Windows wird oft als Db2 LUW abgekürzt.
Es wird mit CLI-Befehlen in der Kommandozeile administriert oder graphisch über die Steuerzentrale (Control Center (Db2cc)).
Die graphische Oberfläche wurde ab der Version 10.1 abgelöst. Stattdessen kann der IBM Data Server Manager benutzt werden.
Das sogenannte Db2-EEE (sprich „triple E“, oder „trippel-Ih“) – ab der Version 8 „DPF“ (distributed partitioning feature) genannt – ist für größere Umgebungen, wobei die Datenbankpartitionen über mehrere Rechner (Nodes) verteilt werden können.
Komponenten Komponenten (Db2 z/OS) Liste der Systemkomponenten eines Db2-Systems für z/OS und OS/390. Die Unterschiede zwischen OS/390 und z/OS sind relativ gering, daher muss (bezüglich der Db2-Komponenten und -Funktionen) nicht näher unterschieden werden, auf welchem dieser beiden Betriebssysteme Db2 installiert ist. Im Folgenden soll z/OS als Synonym für „z/OS oder OS/390“ verwendet werden. Das Db2 für z/OS ist für eine optimale Nutzung der Betriebssystem- und Hardware-Komponenten ausgerichtet. Um die Zusammenhänge zu verdeutlichen, wurden in dieser Liste auch einige Begriffsdefinitionen von Hardware-Komponenten aufgeführt, die nicht Bestandteil des Db2-Systems im engeren Sinne sind.
BM Buffer Manager. Er ist ein Teil des Db2-Subsystems und hat die Aufgabe, den BP zu verwalten und die Kommunikation mit dem GBP auszuführen. BP Buffer Pool. Bezeichnet einen Bereich im Arbeitsspeicher, der von einem Db2-Subsystem verwaltet wird. In einem Db2-Subsystem werden meistens mehrere BP eingerichtet, die den einzelnen Databases oder genauer den Tablespaces zugeordnet werden, wobei ein Bufferpool mehreren Tablespaces zugeordnet sein kann. BSDS Bootstrap Data Set. Dateien, die Recovery-Informationen und Kommunikationsinformationen für DDF bzw. Sysplex speichern. Data Sharing Function Eine Data-Sharing-Gruppe schließt mehrere Db2-Subsysteme und mehrere Datenbanken zusammen. Jedes Db2-Subsystem kann auf jede in der Data-Sharing-Gruppe enthaltene Datenbank zugreifen (Shared Everything Architecture). Die einzelnen Db2-Subsysteme können auf denselben oder auf unterschiedlichen Rechnerknoten laufen. Eine Anwendung hat keinen unmittelbaren Einfluss darauf, von welchem der Db2-Subsysteme sie bedient wird. Einer Data-Sharing-Gruppe können während des laufenden Betriebs weitere Db2-Subsysteme hinzugefügt oder entzogen werden. Dadurch wird eine leicht zu administrierende Skalierbarkeit erreicht. Data Sharing Gruppe Eine Data-Sharing-Gruppe fasst mehrere Data-Sharing-Member zusammen. Eine Data-Sharing-Gruppe hat einen GBP und einen Db2-Katalog. Dabei können sowohl mehrere Data-Sharing-Member, die auf demselben Rechnerknoten liegen, zusammengeschlossen werden, als auch Data-Sharing-Member eingebunden werden, die auf einem bis zu 40 km entfernten Rechnerknoten liegen. Data Sharing Member Ein in einer Data-Sharing-Gruppe enthaltenes Db2-Subsystem. Datenbank Ein logisches Ordnungskriterium von Db2-Objekten. Wenn Data-Sharing verwendet wird, dann ist jede Datenbank genau einer Data-Sharing-Gruppe zugeordnet. Zu jeder Datenbank wird meistens eine RACF-Gruppe und ein gleichnamiges Schema eingerichtet. Ein Tablespace ist genau einer Datenbank zugeordnet. Db2-Subsystem Synonym für Db2-Instanz und für Db2-Exemplar. Bezeichnet wird damit ein Programm, das vom Betriebssystem gestartet wurde und im Arbeitsspeicher aktiv ist. Auf einem Rechnerknoten können mehrere Db2-Subsysteme installiert werden. Wenn die Data-Sharing-Funktion genutzt wird, dann hat ein Db2-Subsystem auf alle Datenbanken Zugriff, die der gesamten Data-Sharing-Gruppe zugeordnet sind (Shared Everything Architecture). Ein Db2-Subsystem kann auch so installiert werden, dass es in keiner Data-Sharing-Gruppe eingebunden ist. Dann kann jedes Db2-Subsystem nur auf seine eigenen Datenbanken zugreifen (Shared Nothing Architecture). Ein Db2-Subsystem besteht aus dem RDS, dem DM mit dem IRLM und dem BM. Es verwaltet mehrere BP und einen SQL-Statement-Cache. Jedes Db2-Subsystem hat seine eigenen Log-Dateien. Daher ist auch jedes Db2 Subsystem für sein eigenes Recovery verantwortlich. Db2-Katalog Verzeichnis aller DB-Objekte. In einer Data-Sharing-Umgebung gibt es einen einzigen Db2-Katalog, in dem alle Objekte, auf die die Db2-Subsysteme zugreifen können, verzeichnet sind. Objekte, die in dem Db2-Katalog verzeichnet sind, sind unter anderem die Databases, Bufferpools, Tablespaces, Tables, Views, Indizes und die Zugriffsberechtigungen. DDF Distributed Data Facility. Komponente für den Zugriff auf ein RDBMS auf einem entfernten System. Dadurch sind sowohl Zugriffe auf andere Db2-Systeme als auch auf RDBMS anderer Datenbank-Hersteller wie z. B. Oracle oder Microsoft SQL Server möglich. DM Data-Manager. Komponente eines Db2-Subsystems, die den Zugriff auf den Bufferpool ausführt und die Stage-1-Prädikate der SQL-Queries ausführt. (Die Liste der Stage-1- und der Stage-2-Prädikate findet man im Kapitel 6.3.3.2 Summary of predicate processing vom Application Programming and SQL Guide In: ibm.com.) Der DM wird vom RDS aufgerufen, um eine SQL-Query zu evaluieren. Der DM fordert vom BM die erforderlichen Daten an. DSNZPARM Systemparameter. Hier werden Konfigurationsparameter des Db2-Subsystems gespeichert. GBP Group Buffer Pool. Der GBP steht allen Db2-Subsystemen einer Data-Sharing-Gruppe zur Verfügung. Der GBP ist die logische Bezeichnung des vom Coupling Facility verwalteten Speicherbereichs. GLM Global Lock Manager. Bei einem Parallel Sysplex nimmt die Coupling Facility die Aufgabe des GLM wahr. Er übernimmt die Kohärenzkontrolle für die gemeinsame Nutzung von Daten durch die einzelnen Rechnerknoten. Der GLM kommuniziert mit den LLM der Rechnerknoten. Hiper Pool Stellt eine optionale Erweiterung des Virtual Pools dar und kann bei der Db2 z/OS Version 7 bis zu 8 GB groß definiert werden. Der Hiper-Pool befindet sich im Expanded Storage. Seit der Db2-z/OS-Version 8 sind Hiper-Pools nicht mehr erforderlich, da durch die 64-Bit-Adressierung der gesamte Arbeitsspeicher direkt adressiert werden kann. (Eine 64-Bit-Adresse kann 16 Exabyte direkt adressieren). Instanz Synonym für Db2-Subsystem und für Db2-Exemplar. IRLM Internal Resource Lock Manager. Das ist der Lock-Manager eines Db2-Subsystems. Er kommuniziert mit dem LLM des Rechnerknotens LLM Local Lock Manager. Das ist der Lock-Manager, der das Locking innerhalb eines Rechnerknotens steuert. Wenn Ressourcen vom Festplattenspeicher angefordert werden, die sich bereits vom LLM anderer Rechnerknoten im Zugriff befinden, dann koordiniert der GLM die Locks zwischen den einzelnen LLM. Partitionierung ist bei Db2 z/OS eine Eigenschaft von Tablespaces, Tabellen und Indizes. Alle Partitionen werden im selben Katalog verzeichnet und können von denselben Db2-Subsystemen zugegriffen werden. Partitionierung wird für die Speicherung und Verwaltung von großen Datenbeständen eingesetzt. Eine partitionierte Tabelle bietet die Möglichkeit, dass einzelne Partitionen administriert werden (REORG, RECOVER, COPY), während die Anwendungsprogramme auf den anderen Partitionen aktiv sind. Die Partitionierung ist ein wesentlicher Beitrag zur Gewährleistung einer hohen Verfügbarkeit von großen Datenbeständen. RDS Relational Data System. Komponente eines Db2-Subsystems, das unter anderem die Stage-2-Prädikate ausführt. (Die Liste der Stage-1- und der Stage-2-Prädikate findet man im Kapitel 6.3.3.2 Summary of predicate processing vom Application Programming and SQL Guide) Während der DM alle „einfachen“ Prädikate evaluiert, führt das RDS die „komplexen“ Verknüpfungen zur Ermittlung der Ergebnisse einer SQL-Query aus.