41
PostgreSQL PostgreSQL Die freie Datenbankalternative Peter Eisentraut [email protected] 22. 1. 2007

PostgreSQL: Die Freie Datenbankalternative

Embed Size (px)

DESCRIPTION

Introduction to the PostgreSQL software and project that I gave to students of the FH Aachen in January 2007.

Citation preview

Page 1: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

PostgreSQLDie freie Datenbankalternative

Peter [email protected]

22. 1. 2007

Page 2: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 3: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Historie

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 4: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Historie

INGRES

1977–1985University of California at BerkeleyProf. StonebrakerPrototyp eines relationalen DBMS

1986—Relational Technologies/Ingres Corp./Computer AssociatesKommerziell erfolgreich

Page 5: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Historie

POSTGRES

1986–1994University of California at BerkeleyProf. StonebrakerPrototyp eines objektrelationalen DBMS

1995—Illustra/Informix/IBMKommerziell erfolgreich

Page 6: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Historie

PostgreSQL

1995Postgres95University of California at BerkeleyUmstellung auf SQL

1996—Open-Source-ProjektTeamwachstum von 4 auf mehrere Dutzend

Page 7: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 8: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Projektorganisation

Interessierte versammeln sich [email protected]

Quellcode im CVSEntwickler schicken PatchesCore Team behält den Überblick

Page 9: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Entwicklungsarbeit

“Scratch your own itch”Roadmap gibt’s nichtFeature-Vorschläge auf TODO-ListeNebenaufgaben:

DokumentationWebsiteLokalisierungÖffentlichkeitsarbeitusw.

Page 10: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Wer entwickelt das?

SelbstständigeDienstleisterAnbieter von ErweiterungenHobbyistenStudenten

Page 11: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Lizenz

Freie Software / Open SourceBSD-LizenzKeinerlei LizenzkostenEigene Ergänzungen beliebig möglichKeine Herausgabe des Quelltextes erforderlich

Page 12: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Das Projekt

Community

Anwender helfen AnwendernDirekter Kontakt zu EntwicklernWebsite: http://www.postgresql.org/Mailing-ListenIRC, Foren, Blogs, . . .

Page 13: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Im Einsatz

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 14: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Im Einsatz

Anwendungen

TelekommunikationUniversitätenRegierungenMilitärWarenwirtschaftSteuerungssystemeInternetMedienEinzelhandelTechnologiefirmen

Page 15: PostgreSQL: Die Freie Datenbankalternative

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

Page 16: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Im Einsatz

Ableger

EnterpriseDBGreenplum/BizgresTelegraphCQ

Page 17: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 18: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Plattformen

Läuft auf großen Servern und auf kleinen SystemenUnterstützt nahezu alle Unix-Derivate, Linux, Windows,MacOSMultiprozessorfähig

Page 19: PostgreSQL: Die Freie Datenbankalternative

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, . . .

Page 20: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

SQL-Features

AggregierungConstraintsDomainsFremdschlüsselOuter JoinsPartielle IndexeSavepointsSchemasSubselectsTriggerViews

Page 21: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Programmierschnittstellen

Standardisierte APIs:ODBC 3.5JDBC 3Embedded SQL in CPerl DBI/DBD

Weitere Schnittstellen:SQL-ShellCC++PHPPython, Ruby, Tcl

Page 22: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Stored Procedures

Verschiedene Sprachen:PL/pgSQL, ähnlich PL/SQLJavaCPerl, PHP, Python, Ruby, Shell, Tcl

Benutzerdefinierte Funktionen:Liefert Einzelwert oder TabelleVerarbeitet Tabellen

Page 23: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Erweiterbarkeit

Benutzerdefinierte

DatentypenFunktionenOperatorenIndextypenProgrammiersprachenu.a.

Page 24: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Erweiterbarkeit

Viele Erweiterungen verfügbar:GISKryptoXMLVolltextsucheÄhnlichkeitssucheReplikation

Page 25: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Datensicherung

SQL-DumpsInkrementelle Backups mit Point-in-Time-Recovery“Hot Backups”

Page 26: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Keine Größenbeschränkung

Geeignet für große DatenmengenKeine Beschränkungen für Tabellen, Zeilen, . . .Lineare Skalierung auch bei anspruchsvollenAnwendungen

Page 27: PostgreSQL: Die Freie Datenbankalternative

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

Page 28: PostgreSQL: Die Freie Datenbankalternative

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

Page 29: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Multiversion Concurrency Control

Leser blockieren keine Schreiber, Schreiber blockierenkeine Leser.Volle Unterstützung des ACID-PrinzipsTransaktionsisolation: Serializable und Read CommittedExplizite Sperrmodi

Page 30: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Indexe

B-treeR-treeHashGiSTGIN

Page 31: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Objektrelationale Datenbankmanagementsysteme

Kombination relationaler und objekorientierter KonzepteBeibehaltung bewährter KonzepteAbwärtskompatibelEvolution statt RevolutionMigration

Page 32: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Objektrelationale Datenbankmanagementsysteme

Benutzerdefinierte Typen, OperatorenKomplexe Datentypen: Arrays, Zeilentypen, . . .VererbungEindeutige Objektidentität

Page 33: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Features

Administration

Sehr geringer AdministrationsaufwandIns Serversystem eingebunden: Dateisystem, Logging, . . .Diverse Administrationstools: phpPgAdmin, Webmin,pgAdmin, TOra, psqlZusätzlich Spezialtools: Visual Explain, . . .

Page 34: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Interna

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 35: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Interna

Wie funktioniert das?

. . . oder: Wieviel meines Studienwissens kann ich dabeianwenden?

Page 36: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Interna

Implementierung

Geschrieben in CClient/Server-ArchitekturEin Prozess pro VerbindungKommunikation über Shared MemoryDaten liegen in Dateien

Page 37: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Interna

Verarbeitung eines Befehls

1 Netzwerkprotokoll2 Parser3 Rewriter4 Planer/Optimizer5 Executor

Page 38: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Interna

Andere Bauteile

Storage ManagerLock ManagerMemory ManagerCache ManagerEingebaute Funktionen, Datentypen

Page 39: PostgreSQL: Die Freie Datenbankalternative

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

Page 40: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Abschluss

Agenda

1 Historie

2 Das Projekt

3 Im Einsatz

4 Features

5 Interna

6 Abschluss

Page 41: PostgreSQL: Die Freie Datenbankalternative

PostgreSQL

Abschluss

Die Zukunft

Neue Release 8.3 Mitte 2007PGCon im MaiAnsonsten weiter so