May 26, 2015
PostgreSQL
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Historie
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Historie
INGRES
1977–1985University of California at BerkeleyProf. StonebrakerPrototyp eines relationalen DBMS
1986—Relational Technologies/Ingres Corp./Computer AssociatesKommerziell erfolgreich
PostgreSQL
Historie
POSTGRES
1986–1994University of California at BerkeleyProf. StonebrakerPrototyp eines objektrelationalen DBMS
1995—Illustra/Informix/IBMKommerziell erfolgreich
PostgreSQL
Historie
PostgreSQL
1995Postgres95University of California at BerkeleyUmstellung auf SQL
1996—Open-Source-ProjektTeamwachstum von 4 auf mehrere Dutzend
PostgreSQL
Das Projekt
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Das Projekt
Projektorganisation
Interessierte versammeln sich [email protected]
Quellcode im CVSEntwickler schicken PatchesCore Team behält den Überblick
PostgreSQL
Das Projekt
Entwicklungsarbeit
“Scratch your own itch”Roadmap gibt’s nichtFeature-Vorschläge auf TODO-ListeNebenaufgaben:
DokumentationWebsiteLokalisierungÖffentlichkeitsarbeitusw.
PostgreSQL
Das Projekt
Wer entwickelt das?
SelbstständigeDienstleisterAnbieter von ErweiterungenHobbyistenStudenten
PostgreSQL
Das Projekt
Lizenz
Freie Software / Open SourceBSD-LizenzKeinerlei LizenzkostenEigene Ergänzungen beliebig möglichKeine Herausgabe des Quelltextes erforderlich
PostgreSQL
Das Projekt
Community
Anwender helfen AnwendernDirekter Kontakt zu EntwicklernWebsite: http://www.postgresql.org/Mailing-ListenIRC, Foren, Blogs, . . .
PostgreSQL
Im Einsatz
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Im Einsatz
Anwendungen
TelekommunikationUniversitätenRegierungenMilitärWarenwirtschaftSteuerungssystemeInternetMedienEinzelhandelTechnologiefirmen
PostgreSQL
Im Einsatz
Vergleich mit anderen Produkten
Vergleichbare Menge von FeaturesPerformance:
Benchmark muss wirklichkeitsnah seinAS3AP: Geschwindigkeit und SkalierbarkeitTPC-C: Online-Transaktionsverarbeitung
Veröffentlichung von Zahlen nicht erlaubtErgebnisse vergleichbar!
Wirtschaftlich vorteilhafter
PostgreSQL
Im Einsatz
Ableger
EnterpriseDBGreenplum/BizgresTelegraphCQ
PostgreSQL
Features
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Features
Plattformen
Läuft auf großen Servern und auf kleinen SystemenUnterstützt nahezu alle Unix-Derivate, Linux, Windows,MacOSMultiprozessorfähig
PostgreSQL
Features
SQL-Standards
Unterstützt große Teile von SQL 1992, SQL 1999, SQL2003Beste SQL-Unterstützung am MarktEinfache PortierungenPortierungstoolsKompatibilitätserweiterungen für Oracle, Informix, . . .
PostgreSQL
Features
SQL-Features
AggregierungConstraintsDomainsFremdschlüsselOuter JoinsPartielle IndexeSavepointsSchemasSubselectsTriggerViews
PostgreSQL
Features
Programmierschnittstellen
Standardisierte APIs:ODBC 3.5JDBC 3Embedded SQL in CPerl DBI/DBD
Weitere Schnittstellen:SQL-ShellCC++PHPPython, Ruby, Tcl
PostgreSQL
Features
Stored Procedures
Verschiedene Sprachen:PL/pgSQL, ähnlich PL/SQLJavaCPerl, PHP, Python, Ruby, Shell, Tcl
Benutzerdefinierte Funktionen:Liefert Einzelwert oder TabelleVerarbeitet Tabellen
PostgreSQL
Features
Erweiterbarkeit
Benutzerdefinierte
DatentypenFunktionenOperatorenIndextypenProgrammiersprachenu.a.
PostgreSQL
Features
Erweiterbarkeit
Viele Erweiterungen verfügbar:GISKryptoXMLVolltextsucheÄhnlichkeitssucheReplikation
PostgreSQL
Features
Datensicherung
SQL-DumpsInkrementelle Backups mit Point-in-Time-Recovery“Hot Backups”
PostgreSQL
Features
Keine Größenbeschränkung
Geeignet für große DatenmengenKeine Beschränkungen für Tabellen, Zeilen, . . .Lineare Skalierung auch bei anspruchsvollenAnwendungen
PostgreSQL
Features
Datenintegrität
Kompromisslos stabil und zuverlässigDatenintegrität gesichert bei SystemabstürzenKorrekte Transaktionslogik von Anfang anAusgefeiltes Typensystem mit DomainsDatenbank akzeptiert keine ungültigen DatenKorrekte Semantik der Daten durch Fremdschlüssel undConstraints
PostgreSQL
Features
Transaktionsverarbeitung – ACID
Atomicity Ergebnis der Transaktion ganz oder gar nicht zusehen
Consistency Datenbank bleibt immer konsistentIsolation Gleichzeitige Transaktionen beeinflussen sich
nichtDurability Ergebnis bleibt erhalten
PostgreSQL
Features
Multiversion Concurrency Control
Leser blockieren keine Schreiber, Schreiber blockierenkeine Leser.Volle Unterstützung des ACID-PrinzipsTransaktionsisolation: Serializable und Read CommittedExplizite Sperrmodi
PostgreSQL
Features
Indexe
B-treeR-treeHashGiSTGIN
PostgreSQL
Features
Objektrelationale Datenbankmanagementsysteme
Kombination relationaler und objekorientierter KonzepteBeibehaltung bewährter KonzepteAbwärtskompatibelEvolution statt RevolutionMigration
PostgreSQL
Features
Objektrelationale Datenbankmanagementsysteme
Benutzerdefinierte Typen, OperatorenKomplexe Datentypen: Arrays, Zeilentypen, . . .VererbungEindeutige Objektidentität
PostgreSQL
Features
Administration
Sehr geringer AdministrationsaufwandIns Serversystem eingebunden: Dateisystem, Logging, . . .Diverse Administrationstools: phpPgAdmin, Webmin,pgAdmin, TOra, psqlZusätzlich Spezialtools: Visual Explain, . . .
PostgreSQL
Interna
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Interna
Wie funktioniert das?
. . . oder: Wieviel meines Studienwissens kann ich dabeianwenden?
PostgreSQL
Interna
Implementierung
Geschrieben in CClient/Server-ArchitekturEin Prozess pro VerbindungKommunikation über Shared MemoryDaten liegen in Dateien
PostgreSQL
Interna
Verarbeitung eines Befehls
1 Netzwerkprotokoll2 Parser3 Rewriter4 Planer/Optimizer5 Executor
PostgreSQL
Interna
Andere Bauteile
Storage ManagerLock ManagerMemory ManagerCache ManagerEingebaute Funktionen, Datentypen
PostgreSQL
Interna
Was man noch so lernt
COBOL lebt — als SQLB-Tree-Indexe sind noch viel komplizierter als in derVorlesungObjektorientierte Datenbanken interessieren keinenAber XML vielleicht schonHardware spielt eine erhebliche RolleImmer mal das Halteproblem zitieren
PostgreSQL
Abschluss
Agenda
1 Historie
2 Das Projekt
3 Im Einsatz
4 Features
5 Interna
6 Abschluss
PostgreSQL
Abschluss
Die Zukunft
Neue Release 8.3 Mitte 2007PGCon im MaiAnsonsten weiter so