PostgreSQL
PostgreSQL ist eines der ältesten und am weitesten fortgeschrittenen objektrelationalen Datenbankverwaltungssysteme (ORDBMS) im Bereich der freien Software. Mit PostGIS wird PostgreSQL um geografische Objekte erweitert.
PostgreSQL ist weitgehend konform mit dem SQL92/SQL99-Standard, d.h. alle in dem Standard geforderten Funktionen stehen zur Verfügung und verhalten sich so, wie vom Standard gefordert; dies ist bei manchen kommerziellen oder nichtkommerziellen SQL-Datenbanken bisweilen nicht gegeben.
Inhaltsverzeichnis
Wichtige Eigenschaften von PostgreSQL sind:
umfassendes Transaktionskonzept, komplexe Abfragen mit Unterabfragen (Subselects), auch geschachtelt, Mengenoperationen, Views, die mit Hilfe von Regeln auch schreibfähig sein können, Trigger und gespeicherte Prozeduren (stored procedures) in verschiedenen Sprachen, referentielle Integrität (u. a. Constraints, Fremdschlüssel), Schnittstellen zu vielen Programmiersprachen, lauffähig auf vielen Unix-Plattformen, geringe Systembelastung und hohe Geschwindigkeit, problemloser Export und Import sowohl von Daten als auch von Datenbankstrukturen (Schemas)
Geschichte
PostgreSQL, auch einmal bekannt unter dem Namen Postgres95, entstand aus einer Datenbankentwicklung der University of California in Berkeley. Das Berkley-Projekt INGRES nahm 1986 seinen Anfang, und die erste Demonstration fand auf der ACM-SIGMOD Conference 1988 statt.
Im Jahre 1994 wurde POSTGRES um einen SQL-Interpreter erweitert und die Software als Open Source unter dem Namen Postgres95 freigegeben. Im Zuge der Entwicklung des World Wide Web und von GNU/Linux verstärkte sich das Interesse an Datenbanken und die Entwicklung von PostgreSQL wurde 1996 verstärkt angegangen mit dem Wechsel auf den heutigen Namen.
Erweiterungen
Mit PostGIS wird PostgreSQL um geografische Objekte erweitert. PostgreSQL ist damit neben proprietären Produkten in der Lage, als Datenbank für GIS (Geoinformationssysteme) zu dienen.
Installationsskript
Entsprechende Hinweise zur Installation finden sich auf der PostgresSQL-Homepage (http://www.postgresql.org/docs).
Das Compilierungs-/Installationsskript wurde mit folgenden Systemvoraussetzungen verwendet.
- Betriebsystem : SuSE Linux 10.3
- Postgres Version : 8.3.3
Voraussetzungen
Folgende Bibliotheken/Programme müssen installiert sein
- GNU make (gmake)
- ISO/ANSI C compiler (gcc)
- Tar
- GNU Readline libary
- Zlib compression library
Siehe auch http://www.postgresql.org/docs/8.3/static/install-short.htm
Skript
#!/bin/bash echo ============================================================================================ echo "Installationscript PostgreSQL 8.3.3 - PostgreSQL 8.3.3 Installationskript " echo ============================================================================================ echo "" echo "Variables" echo "--------------------------------------------------------------------------------------------" WGET_PGSQL_FILENAME=postgresql-8.3.3 WGET_EXT=.tar.gz WGET_PGSQL_PATH=http://ftp.de.postgresql.org/mirror/postgresql//source/v8.3.3/$WGET_PGSQL_FILENAME$WGET_EXT DIR_BASE=/usr/local/src SUBDIR_DOWNLOAD=pgsql DIR_DOWNLOAD=$DIR_BASE/$SUBDIR_DOWNLOAD DIR_EXTRACT=$DIR_DOWNLOAD/$WGET_PGSQL_FILENAME echo "WGET_PGSQL_FILENAME : "$WGET_PGSQL_FILENAME echo "WGET_EXT : "$WGET_EXT echo "WGET_PGSQL_PATH : "$WGET_PGSQL_PATH echo "DIR_BASE : "$DIR_BASE echo "SUBDIR_DOWNLOAD : "$SUBDIR_DOWNLOAD echo "DIR_DOWNLOAD : "$DIR_DOWNLOAD echo "DIR_EXTRACT : "$DIR_EXTRACT echo "" echo "Prepare directories" echo "--------------------------------------------------------------------------------------------" cd $DIR_BASE if [ ! -d $SUBDIR_DOWNLOAD ]; then mkdir $SUBDIR_DOWNLOAD ; else echo "Directory for installation ["$SUBDIR_DOWNLOAD"] allready exists"; fi echo "change to directory" cd $SUBDIR_DOWNLOAD echo "" echo "Download PostgreSQL file " echo "--------------------------------------------------------------------------------------------" echo "From: "$WGET_PGSQL_PATH echo "To "$DIR_DOWNLOAD$WGET_PGSQL_FILENAME$WGET_EXT if [ ! -f $WGET_PGSQL_FILENAME$WGET_EXT ]; then wget $WGET_PGSQL_PATH; else echo "Downloaddirectory ["$WGET_PGSQL_PATH"] allready exists."; echo "Download canceled (assuming allready done)"; fi echo "" echo "Extract content to "$WGET_PGSQL_FILENAME echo "--------------------------------------------------------------------------------------------" if [ ! -d $WGET_PGSQL_FILENAME ]; then tar xvf $WGET_PGSQL_FILENAME$WGET_EXT; else echo "Directory ["$WGET_PGSQL_FILENAME"] allready exists"; echo "Extraction canceled (assuming allready done)"; fi echo "" echo "Change to directory "$WGET_PGSQL_FILENAME echo "---------------------------------------------------------------------------------------------" cd $WGET_PGSQL_FILENAME echo "File operations finished" echo "" echo "install see -> http://www.postgresql.org/docs/8.3/static/install-short.html" echo "---------------------------------------------------------------------------------------------" echo "Press return to continue configure" read tmp ./configure echo "" echo "configure fini shed" echo "gmake" echo "---------------------------------------------------------------------------------------------" echo "Press return to continue to gmake" read tmp gmake echo "" echo "gmake finished" echo "gmake install" echo "---------------------------------------------------------------------------------------------" echo "Press return to continue to gmake install" read tmp #su gmake install echo "" echo "'gmake install' finished" echo "adduser postgres" echo "---------------------------------------------------------------------------------------------" echo "Press return to continue to adduser postgres" read tmp useradd postgres echo "" echo "adduser postgresl finished" echo "create postgres directories" echo "---------------------------------------------------------------------------------------------" echo "Press return to create postgres directories" read tmp mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data mkdir /var/lib/pgsql chown postgres /var/lib/pgsql echo "" echo "create postgres directories finished" echo "run tests" echo "---------------------------------------------------------------------------------------------" echo "Press return to run tests" read tmp su - postgres echo "" echo "create postgres directories finished" echo "initdb -D /usr/local/pgsql/data" echo "---------------------------------------------------------------------------------------------" echo "Press return to run initdb" read tmp /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data echo "" echo "initdb finished" echo "logfile" echo "---------------------------------------------------------------------------------------------" echo "Press return to run /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &" read tmp /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & echo "" echo "logfile finished" echo "createdb test" echo "---------------------------------------------------------------------------------------------" echo "Press return to run createdb test step 1" read tmp /usr/local/pgsql/bin/createdb test echo "Press return to run createdb test step 2" read tmp /usr/local/pgsql/bin/psql test
Konfiguration (Post-Setup)
- Um angenehm auf die Postgres Befehle zugreifen zu können, sollte man folgende Zeilen in die /etc/profile.local (SuSE spezifisch) eintragen
PATH=/usr/local/pgsql/bin:$PATH export PATH MANPATH=/usr/local/pgsql/man:$MANPATH export MANPATH
Mit diesen Einstellungen werden die Befehle in den Systempfad aufgenommen und die Manpages dem System bekannt gegeben.
Links
- der obige Text entstammt der Wikipedia
- http://www.openwiki.com/ow.asp?PostgreSQL
- Praktische PostgreSQL-Infos auf Deutsch
- phpPgAdmin phpPgAdmin ist ein web-basierenders Administration-Tool für PostgreSQL.