1996 hat PostgreSQL seinen Kampf gegen kommerzielle Datenbanksysteme aufgenommen. Als Erbe des Datenbank Management Systems Ingres ist PostgreSQL (daher auch der Name, Post=nach, (in-)"gres") auf dem Weg immer mehr kommerzielle Datenbanksysteme auch im Highlevel Segment zu verdrängen. Mit dem Zusatz SQL verdeutlich PostgreSQL sein bestreben die SQL-ANSI-Normen umzusetzen. Vor allem im Hochschulbereich wird PostgreSQL Entwickelt und auch eingesetzt. Datenmengen von mehreren Milliarden Datensätzen pro Tabelle bewältigt PostgreSQL mit Leichtigkeit denn gerade im GIS (Geografischen Information Systemen) Umfeld sind solche Datenmengen unabdingbar.
PostgreSQL im Überblick
Einsatzgebiete
Erfahrungsberichte
Grenzen und Ausblicke
Erweiterungen rund um PostgreSQL
PostgreSQL im Einsatz (Praxisberichte)
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
PostgreSQL im Produktivbetrieb
1. PostgreSQL im Produktivbetrieb
PostgreSQL
im Überblick
Von und mit Frank Schmidt
Frank Schmidt PostgreSQL im Überblick 1
Das Logo - Der Elefant
ü Elefant (von lateinisch
elephantus)
ü Elefanten sind die größten
noch lebenden Landtiere.
ü Eine Versuchsreihe im New
Yorker Bronx-Zoo zeigte
Anzeichen dafür, dass
Elefanten über ein Ich-
Bewusstsein verfügen
ü Sprichwort: „Elefanten
vergessen nicht“
Frank Schmidt PostgreSQL im Überblick 2
Frank Schmidt - www.SchmidtIT.de 1
2. PostgreSQL im Produktivbetrieb
Geschichte
ü POSTGRES
î Die Implementierung von POSTGRES begann 1986 unter Anleitung
von Professor Michael Stonebraker, wurde gesponsert von der
Defense Advanced Research Projects Agency (DARPA), dem Army
Research Office (ARO), der National Science Foundation (NSF) und
ESL, Inc. Schließlich hat Illustra Information Technologies (später
fusioniert mit Informix, die jetzt zu IBM gehört) den Code
übernommen und kommerzialisiert
ü Postgres95
î Im Jahr 1994 bauten Andrew Yu und Jolly Chen einen SQL-
Interpreter in POSTGRES ein. Unter neuem Namen wurde
Postgres95 im Web freigegeben, um seinen eigenen Weg als Open-
Source-Nachfolger des ursprünglichen POSTGRES-Codes zu finden
ü PostgreSQL
î 1996 wurde deutlich, dass der Name „Postgres95“ dem Test der Zeit
nicht standhalten würde
Frank Schmidt PostgreSQL im Überblick 3
Lizenz
ü PostgreSQL ist unter der BSD-Lizenz veröffentlicht, die
lediglich verlangt, dass die lizenzierten Quelltexte, die
Informationen über das Urheberrecht und die Lizenz
beibehalten werden müssen
ü Diese OSI-zertifizierte Lizenz wird hoch geschätzt, da sie
flexibel, benutzer- und geschäftsfreundlich ist
ü Sie erlaubt die uneingeschränkte Nutzung von
PostgreSQL in kommerziellen und urheberrechtlich
geschützten Anwendungen
ü Die BSD-Lizenz und der Quellcode, dessen Entwicklung von
mehreren Firmen gefördert wurde und der öffentliches
Eigentum ist, machen PostgreSQL bei Anbietern, die eine
Datenbank in ihre eigenen Produkte integrieren möchten,
ohne dass Lizenzgebühren, Abhängigkeiten von einem
Hersteller oder Änderungen der Lizenzbedingungen zu
befürchten sind, sehr beliebt
Frank Schmidt PostgreSQL im Überblick 4
Frank Schmidt - www.SchmidtIT.de 2
3. PostgreSQL im Produktivbetrieb
Technische Details
ü Hervorragende Umsetzung des ANSI- ü Hot Stand-By, Replikation
SQL99-Standards ü Volle Unterstützung des ACID-Prinzips,
ü ANSI-SQL2003 Unterstützung in ü Serialisierbare Transaktionen
Grundzügen ü Partielle Indizes und Indizes über
ü Schnittstellen für Tcl, Perl, C, C++, PHP, Funktionsergebnisse
ODBC, JDBC, Embedded SQL in C,
Python und Ruby ü Unicode- und Locale-Unterstützung
ü GUI-Administrationstools: pgAdmin, ü Nachladbare Erweiterungen für
pgAccess, phpPgAdmin Volltextsuche, GIS, XML und andere
Funktionalitäten
ü Views, Sequenzen, Vererbung, Outer ü Unterstützung von SSL und Kerberos-
Joins, Sub-Selects, Referentielle Authentifizierung
Integrität
ü UNION, INTERSECT und EXCEPT ü Werkzeuge, um portablen SQL-Code für
Anfragen alle SQL unterstützende Systeme zu
erzeugen
ü Rules (Regelsysteme), Trigger ü Datenbankübergreifende
ü Benutzerdefinierte Funktionen, Stored Kompatibilitäts-funktionen
Procedures ü Bitmap-Scan, Tabellen-Partitionierung,
ü Prozedurale Sprachen PL/pgSQL, PL/Perl, Zwei-Phasen-Commit
PL/Python, PL/Tcl und mehr
ü Erweiterbares Datentyp-System
Frank Schmidt PostgreSQL im Überblick 5
Leistungsgrenzen
ü Maximale Datenbankgröße Unbegrenzt
ü Maximale Tabellengröße 32 TB
ü Maximale Datensatzgröße 1.6 TB
ü Maximale Feldgröße 1 GB
ü Maximale Datensatzanzahl Unbegrenzt
ü Maximale Spalten pro Tabelle 250 – 1600
ü Maximale Indexe pro Tabelle Unbegrenzt
Frank Schmidt PostgreSQL im Überblick 6
Frank Schmidt - www.SchmidtIT.de 3
4. PostgreSQL im Produktivbetrieb
Neuerungen v. 8.2
ü Performanz -Steigerungen
î Version 8.2 steigert die Verarbeitungsgeschwindigkeit insgesamt um
ca. 20% bei Systemtests mit High-end OLTP (Online Transaction
Processing)
î Noch stärker profitieren Anwender sogar beim Betrieb von Data-
Warehouse-Lösungen
î Die Verbesserungen betreffen Sortiervorgänge. Sowohl im
Arbeitsspeicher als auch auf Festplatten wird schneller sortiert,
bessere Multi-Prozessor-Skalierung, bessere Planung von Abfragen
auf partitionierten Tabellen, schnellere Bulk Loads und erheblich
beschleunigte Outer-Join-Abfragen sind möglich
Frank Schmidt PostgreSQL im Überblick 7
Neuerungen v. 8.2
ü Warm-Standby Datenbanken
î Durch eine Erweiterung des in der Version 8.0 eingeführten "Point in
Time Recovery" können Administratoren jetzt auf einfache Weise
eine Kopie ihrer Datenbank-Cluster als Ausfallsicherung einrichten
ü Online Index Erstellung
î Tabellen können jetzt auch indiziert werden, während Anwendungen
in Datenbank-Tabellen schreiben, welches ein Datenbank-Tuning
ohne Ausfallzeiten ermöglicht
ü SQL:2003 Funktionalitäten
î PostgreSQL, bekannt für seine Standard-Kompatibilität, wurde um
Syntax für weitere Elemente der ANSI-Spezifikation SQL:2003
ergänzt. Unter anderem: Aggregatfunktionen für statistische
Auswertungen, VALUE-Zuweisungen für mehrere Zeilen zugleich,
UPDATE RETURNING und Aggregate über mehrere Spalten
Frank Schmidt PostgreSQL im Überblick 8
Frank Schmidt - www.SchmidtIT.de 4
5. PostgreSQL im Produktivbetrieb
Funktionsvergleich
FunktionDB PostgreSQL Oracle MySQL MS SQL
LOB Nur BLOBs P Nur BLOBs P
Felder P P O O
Strukt. Typen P P O P
Funktionen P P P P
Trigger P P P P
Vererbung P P O O
OIDs P P O O
Spiegel/Cluster P (diverse) P P (Enterprise) P
Standby Server P P P P
ORDBMS P P O O
Schema P P O P
Fremdschlüssel P P P (nur InnoDB) P
Operatoren P P O O
Frank Schmidt PostgreSQL im Überblick 9
Anwendungsgebiete
üPostgreSQL ist für fast alle Fälle die richtige
Wahl
î Mehrnutzerfähigkeit - MVCC
î Hohe Zuverlässigkeit
î Hohe Datenunabhängigkeit
î Viele Schnittstellen
î Hohe Datenvolumen
î Objekt-Relational (Eigene Objekte, Operatoren,
Vererbung)
Frank Schmidt PostgreSQL im Überblick 10
Frank Schmidt - www.SchmidtIT.de 5
6. PostgreSQL im Produktivbetrieb
Im Einsatz
ü - 3,6 Milliarden Datensätze pro Jahr
ü - 2 Milliarden Datensätze (GIS)
ü - Online Banking
ü - Technische Datenerfassung
ü - Web Content Management und
Redaktionssystem - CMAssist
ü - Online Auftritt, Baustellenmanagement
ü - Transportauftragssystem
ü - Projektzeiterfassungssystem
Frank Schmidt PostgreSQL im Überblick 11
Im Einsatz II
üHochschulen
î Viele deutsche Hochschulen nutzen PostgreSQL
im wissenschaftlichen Bereich für Forschung und
Lehre
î Darüber hinaus wird PostgreSQL auch von HIS
verwendet. HIS ist ein Hochschul- Informations-
System zur Verwaltung von Studenten,
Lehrkräften und Personal
Frank Schmidt PostgreSQL im Überblick 12
Frank Schmidt - www.SchmidtIT.de 6
7. PostgreSQL im Produktivbetrieb
Performance im Vergleich
Frank Schmidt PostgreSQL im Überblick 13
Performance im Vergleich
Frank Schmidt PostgreSQL im Überblick 14
Frank Schmidt - www.SchmidtIT.de 7
8. PostgreSQL im Produktivbetrieb
Sponsoren
ü Weltweit erfährt
PostgreSQL Unter-
stützung von renom-
mierten Unternehmen
Frank Schmidt PostgreSQL im Überblick 15
Softwareprodukte GIS
üPostGIS – GRASS
î Geographic Resources Analysis Support System
î Originally developed by the U.S. Army Corp of
Engineering Research Laboratories (1982-1995)
Frank Schmidt PostgreSQL im Überblick 16
Frank Schmidt - www.SchmidtIT.de 8
9. PostgreSQL im Produktivbetrieb
Software Produkt CMS
üCMAssist
î Web-Content-Management-System
î www.CMAssist.de
î Über 150 Kunden pro 0815/Server
Frank Schmidt PostgreSQL im Überblick 17
Administration
üZahlreiche Bashbefehle (psql)
üphpPgAdmin - Webinterface
üpgAdmin III GUI – Windows + Linux
Frank Schmidt PostgreSQL im Überblick 18
Frank Schmidt - www.SchmidtIT.de 9
10. PostgreSQL im Produktivbetrieb
Schnittstellen
ü DBD::Pg - Perl Driver
ü JDBC - JDBC Driver
ü libpqxx - C++ API
ü Npgsql - .Net Data Provider
ü ODBC - ODBC Driver
ü PgOleDb - OLE-DB Driver
ü pgtclng - Next generation interface for TCL
ü Pgtcl - Tcl binding library
ü Pgin - A Tcl interface to PostgreSQL written in Tcl
ü PyGreSQL - Python interface for PostgreSQL
ü psycopg - Another Python interface for PostgreSQL
Frank Schmidt PostgreSQL im Überblick 19
Serverseitige Programmiersprachen
ü PL/SQL - PostgreSQL Sprache ähnlich PL/SQL (Oracle)
ü PL/C - C/C++
ü pPerl - PERL als prozedurale Sprache
ü pPython - PYTHON
ü PL/Java - Java procedural language using in-process JNI-
based integration
ü PL-J - Java procedual language using one jvm per
database
ü plPHP - PHP-based procedural language
ü plR - Procedural language based on the R statistical
language
ü pl-ruby - Ruby based procedural language
Frank Schmidt PostgreSQL im Überblick 20
Frank Schmidt - www.SchmidtIT.de 10
11. PostgreSQL im Produktivbetrieb
Erweiterungen - Clusterlösungen
ü PGCluster
î is the synchronous replication system of the multi-master
composition for PostgreSQL
ü Slony-I
î is a "master to multiple slaves" replication system
supporting cascading and failover. It uses a group
communications system to manage its configuration,
allowing dynamic reconfiguration of the cluster
ü Pgpool
î is a connection pooling/replication server for PostgreSQL
Frank Schmidt PostgreSQL im Überblick 21
Erweiterungen - Oracle
ü Better Oracle functions support
î The goal of this project is implementation some functions from
Oracle database. Some date functions (next_day, last_day, trunc,
round, ...) are implemented now. Functionality was verified on
Oracle 10g and module is useful for production work
ü Oralink
î Oralink is a transparent gateway to access Oracle (tm) databases
directly from PostgreSQL. Can be used for integration, replication or
simply to access Oracle(tm) data using PostgreSQL
ü DBLink and Materialized Views
î Materialized Views, Materialized View Logs and a simple Database
Link on Pg also supporting Oracle's FAST REFRESH. It implements:
CREATE/DROP DBLINK,CREATE/DROP/REFRESH
SNAPSHOT,CREATE/DROP SNAPSHOT LOG. Oracle and Pg drivers
included
Frank Schmidt PostgreSQL im Überblick 22
Frank Schmidt - www.SchmidtIT.de 11
12. PostgreSQL im Produktivbetrieb
Literatur
üONLINE! http://www.postgresql.org/docs/
üBücher
î
PostgreSQL Ge -Packt
PostgreSQL. Das
offizielle Handbuch
PostgreSQL inkl. CD
Administration und
Einsatz
üEs gibt kein aktuelles Buch für Entwickler
Frank Schmidt PostgreSQL im Überblick 23
Frank Schmidt - www.SchmidtIT.de 12