Open Source im professionellen Einsatz

PostgreSQL

Wie schon der Name zeigt (Post Ingres), hat PostgreSQL seine Wurzeln im Ingres-Projekt der Universität of California in Berkeley. Bereits 1985 startete Michael Stonebraker dort das Postgres-Projekt, das Ingres technologisch beerbte, ohne den Quellcode zu übernehmen. Das heutige PostgreSQL, das SQL sichtbar im Namen trägt, startete erst 1994 als Anschlussprojekt, das die Ingres-Abfragesprache QUEL [6] durch SQL ersetzte.

Dank seiner universitären Wurzeln gehört PostgreSQL bis heute nicht einer einzelnen Firma, was Anwender angesichts der Unruhe, die die Oracle-Übernahme in der MySQL-Community ausgelöst hat, inzwischen vielleicht als Vorteil empfinden. PostgreSQL gibt es unter einer BSD-artigen Lizenz [7].

Noch im letzten Jahrtausend implementierte PostgreSQL im Enterprise-Umfeld gefragte Features wie Views, Trigger, temporäre Tabellen und Multi Version Concurrency Control (MVCC), ein Verfahren, das konkurrierende Zugriffe effizienter ausführt, den einzelnen Nutzern Schnappschüsse des aktuellen Datenbestandes bereitstellt und damit ein unbeabsichtigtes Blockieren der Datenbank verhindert.

Bei der früh implementierten Trigger-Unterstützung hebt sich PostgreSQL bis heute von der Konkurrenz ab: Die durch bestimmte SQL-Operationen ausgelösten Prozeduren dürfen Entwickler nicht nur im PostgreSQL-spezifischen PL/PgSQL, sondern auch in den verbreiteten Sprachen Tcl, Perl und Python schreiben. Das Spektrum der externen Erweiterungen reicht von der Bash [8] über das besonders Webentwicklern geläufige PHP bis zum speziell für das Einbetten in andere Software konzipierte Lua [9].

PostgreSQL enthält ein umfangreiches Volltext-Suchsystem. Seit PostgreSQL 8.3 ist das frühere Tsearch2-Modul fester Bestandteil der Datenbank-Engine. Es unterstützt Unicode und linguistische Funktionen wie Stop-Words und Synonyme [10]. Bei der Replikation hinkt PostgreSQL MySQL allerdings hinterher: Erst die kürzlich erschienene Version 9 beherrscht asynchrone Replikation (siehe Artikel in diesem Schwerpunkt). Eine synchrone Replikation ist für die Folgeversion geplant. Allerdings gibt es eine Reihe von Third-Party-Erweiterungen, die diese bereits jetzt bereitstellen [11]. Mit Pg-Admin3 (Abbildung 2) steht auch für PostgreSQL ein leistungsfähiges grafisches Verwaltungstool zur Verfügung.

Abbildung 2: Der Pg-Admin3 administriert auch fortgeschrittene PostgreSQL-Funktionen wie Trigger oder die Volltextsuche in einem übersichtlichen GUI.

Ingres

Wie PostgreSQL und MySQL liegt auch Ingres seit Herbst in einer neuen Version vor. Zu den wichtigen Neuerungen dieser Version 10 gehören spaltenspezifische Datenverschlüsselung, Support für den JDBC-4-Standard und Multiversion Concurrency Control. Erstmals steht auch eine 64-Bit-Version für Windows zur Verfügung.

Batch-Queries bündeln nun mehrere »Insert-« oder »Delete« -Kommandos und übertragen sie in einem Stück an den Server. Eine Optimierung bei Abfragen über partitionierte Tabellen steigert die Performance, wobei eine neue Funktion für das Dynamic Partition Pruning zum Einsatz kommt: das Überspringen nicht zu durchsuchender Partitionen. Für mehr Tempo auf Unix-Systemen sorgen der Einsatz von Direct-I/O [12] und das Prä-Allozieren von Plattenplatz mit dem »fallocate« -System-Call [13].

Version 9.3 vom Oktober 2009 erweiterte dagegen vor allem den Umfang des Ingres-SQL-Dialekts: Vergleiche mit »LIKE« dürfen sich seither auf Spalten vom Typ »LONG VARCHAR« und »LONG NVARCHAR« beziehen. Außerdem kommen die Vergleichsoperatoren »BEGINNING« , »CONTAINING« und »ENDING« sowie »SIMILAR TO« mit Unterstützung für Reguläre Ausdrücke hinzu.

Leider nur für Windows erhältlich greift das Community-Projekt Easy Ingres [14] PHP-Entwicklern unter die Arme, die Anwendungen auf Basis von Ingres statt für MySQL schreiben. Auch hilft die Software beim Programme-Migrieren von MySQL zu Ingres. Das unter der Federführung des französischen PHP-Programmierers Cedric Pasquotti entwickelte Projekt kombiniert die Ingres-Datenbank (zurzeit noch Version 9.2) mit Apache 2.2.8, PHP 5.2.9, der Ingres Developer Workbench [15], dem Scite Editor 1.77 sowie der Demo-Applikation Frequent Flyer und sorgt für die passende Konfiguration.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook