PostgreSQL: Die Freie Datenbankalternative

Preview:

DESCRIPTION

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

Citation preview

PostgreSQL

PostgreSQLDie freie Datenbankalternative

Peter Eisentrautpetere@postgresql.org

22. 1. 2007

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 aufpgsql-hackers@postgresql.org

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

Recommended