DBM (Datenbank)
DBM war der erste Vertreter einfacher, dateibasierter Datenbankmanagementsysteme. DBM wurde ursprünglich von Ken Thompson entwickelt und im Jahr 1979 von AT&T veröffentlicht.[1] Der Name ist ein Akronym für database manager.
DBM speichert beliebige Daten in sogenannten Buckets mit fester Größe, versehen mit einem Schlüssel, mit dessen Hilfe die Daten unter Verwendung einer Hashfunktion in der Datenbank wieder auffindbar sind.
Der Hashing-Algorithmus verwendet eine Form des erweiterbaren Hashings, bei dem die mögliche Anzahl verfügbarer Schlüssel erweitert wird, sobald neue Buckets hinzugefügt werden, was sich in einer Einsparung von Speicherplatz auswirkt.
Besonderes Merkmal von DBM und Derivaten von DBM, die allesamt als vor-relationale Datenbanken gelten, ist die Einsparung von Rechen- und Wartezeiten für den Verbindungsaufbau zum Datenbankserver und die Vorbereitung von Datenbankabfragen. Der sich daraus ergebende Nachteil ist, dass immer nur ein Prozess auf die Datenbank zugreifen kann.
Nachfolger
DBM hat eine ganze Reihe von Nachfolgern, die auf dem gleichen Prinzip aufbauen:
- Ndbm
- Die 1986 in Berkeley entwickelte Datenbank ndbm (New Database Manager). Sie unterstützte die Verwendung mehrerer Datenbanken zur gleichen Zeit.
- Sdbm
- Aufgrund von der Lizenzbedingungen wurde Ndbm aus einigen UNIX-Versionen entfernt und seit 1987 durch den Public-Domain-Klon Sdbm von Ozan Yigit ersetzt.[2]
- gdbm
- Der GNU Database Manager (gdbm), eine weitere Open-Source-Variante, wurde von Philip A. Nelson für das GNU-Projekt entwickelt. Er erweiterte die Funktionalität von DBM um die Verwendung von Datenpaketen beliebiger Länge[3]. Später wurden weitere Funktionen hinzugefügt, wie den Schutz der Datenbank vor Beschädigung bei Ausfällen.[4]
- Tdbm
- Die Tdbm (Transactional Database Manager) bietet außerdem Transaktionen.
- TDB
- Diese Datenbank wurde von dem Samba-Team entwickelt und unter der GPL-Lizenz als Bestandteil des Samba-Pakets verbreitet. Zitat von der SourceForge Webseite: TDB is a Trivial Database. In concept, it is very much like GDBM, and BSD's DB except that it allows multiple simultaneous writers and uses locking internally to keep writers from trampling on each other. TDB is also extremely small.
- QDBM
- Der Quick Database Manager beansprucht für sich, schneller zu sein. Er wurde von Mikio Hirabayashi im Jahr 2000 ebenfalls unter GPL veröffentlicht.
- Berkeley DB
- Die Berkeley DB ist eine Variante, die unter zwei Lizenzen veröffentlicht wurde und mit einer Copyleft- oder einer kommerziellen Lizenz einsetzbar ist. Ursprünglich von Sleepycat entwickelt, wird sie seit Februar 2006 von Oracle gewartet und vertrieben.
- MapDB
- MapDB (ehem. JDBM) ist ein transaktionales Datenbankmanagementsystem für Java.
- Tkrzw
- Ist eine moderne Re-Implementierung der QDBM vom selben Autor. Nachfolger von Tokyo Cabinet und Kyoto Cabinet.
- cdb
- Die Constant Database wurde von Daniel J. Bernstein entwickelt und unterscheidet sich von den anderen Datenbanksystemen dadurch, dass Datenbanken nach dem Erstellen nur noch gelesen, aber nicht mehr verändert werden können.
- VSDB
- Eine Implementierung einer DBM-ähnlichen Datenbank von John Meacham, welche unter Verwendung atomarer Dateisystemoperationen die volle ACID-Semantik unterstützt.
- LMDB
- Diese DBM-ähnliche Datenbank wurde von Howard Chu für das OpenLDAP-Projekt entwickelt. Sie unterstützt die ACID-Semantik und wurde auf das schnelle Lesen von Daten optimiert.
Siehe auch
Einzelnachweise
- AT&T, DBM(3X), Unix Programmer's Manual, Seventh Edition, Volume 1, Januar 1979
- Ozan (oz) Yigit, sdbm - Substitute DBM or Berkeley ndbm for Every UN*X Made Simple, The Guild of PD Software Toolmakers, Toronto - Canada, 1998
- gnu dbm von Philip A. Nelson, Jason Downs und Sergey Poznyakoff
- GDBM manual: Crash Tolerance
Weblinks
- Seltzer & Yigit: A New Hashing Package for Unix (englisch; PostScript-Datei; 150 kB)
- Olsen, Bostic & Seltzer: Berkeley DB (englisch; PDF; 76 kB)