von Karsten Dambekalns, 04.12.2005

Datenbankzugriff mal anders: TYPO3 4.0: DBAL

Aus dem
t3n Magazin Nr. 2

Die DBAL-Extension sitzt zwischen dem RDBMS und dem TYPO3-Kern bzw. den Extensions.

Mit Version 4.0 wird TYPO3 erstmals offiziell mit der Database-Abstraction-Layer-Extension (DBAL) ausgeliefert. Die Extension erweitert die Implementierung der im Kern des Systems vorhandenen API, um TYPO3 auch mit anderen Datenbanken als MySQL nutzbar zu machen.

Ein Datenbank-Abstraktions-Layer für wurde in der Vergangenheit im Zusammenhang mit TYPO3 meist von großen Firmen nachgefragt, die Zweifel an der Leistungsfähigkeit von MySQL hegten und lieber ihre bestehenden Oracle- oder SQL-Server-Installationen nutzen wollten. Im Laufe der Zeit stieg jedoch die Akzeptanz für MySQL auch in größeren Firmen, so dass sich trotz der immer wieder aufkeimenden Diskussionen über eine Abstraktionsschicht niemand fand, der diese auch implementiert hätte. Erst nach der TYPO3-Snowboard-Tour 2004 bot sich die Gelegenheit den DBAL zu realisieren.

Eine DBAL-Extension – das kann ja nicht so schwer sein

Aus Sicht von TYPO3 reicht Datenbank-Abstraktion im landläufigen Sinne – als Vereinheitlichung der Funktionen zum Senden von SQL-Anfragen – bei weitem nicht aus. Statt dieser „Zugriffs-Vereinheitlichung“ ist hier eine Kombination aus „SQL-Abstraktion“ und „Zugriffs-Vereinheitlichung“ notwendig. Dies ist nötig, da TYPO3 selbst Datenbanktabellen anlegt und diese auch jederzeit erweitern kann. Darüber hinaus ist Abwärtskompatibilität eine der Leitlinien des TYPO3-Projekts, mit der Folge, dass die Datenbankschemata weiterhin aus MySQL-Dumps erzeugt werden müssen – auch für Oracle und andere RDBMS. Dies alles führt natürlich zu völlig neuen Problemen, etwa bei der Behandlung unterschiedlicher Datentypen.

Im Laufe der Zeit hat Kasper Skårhøj alle Datenbankzugriffe im Kern von TYPO3 in der Klasse „t3lib_db“ konsolidiert. Dies bot die Basis für die Entwicklung der DBAL-Extension, die diese Klasse erweitert und Kernmethoden überschreibt. Ohne diese Extension kann „t3lib_db“ eher als Wrapper um die klassischen MySQL-Aufrufe gesehen werden. Da die Entwicklung der DBAL-Extension schon aufwändig genug sein würde, wurde nach einer geeigneten Abstraktions-Bibliothek gesucht. Als Kasper Skårhøj schließlich den Protoypen der Extension schrieb, setzte er auf PEAR DB und ADOdb. Dieser Prototyp wurde zur weiteren Entwicklung mit dem Ziel abgegeben, TYPO3 auf PostgreSQL lauffähig zu machen, um anschließend Oracle ins Visier zu nehmen.

Seite:  1 2 3 4 5

Empfohlene Artikel

Was erwartet uns in TYPO3 4.7?

Was erwartet uns in TYPO3 4.7?

Plangemäß ist inzwischen die zweite Alpha von TYPO3 4.7 erschienen – ein guter Zeitpunkt, um einen Blick auf die...