SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
PostgreSQL




                    PostgreSQL
             Die freie Datenbankalternative


                  Peter Eisentraut
             petere@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–1985
             University of California at Berkeley
             Prof. Stonebraker
             Prototyp eines relationalen DBMS
      1986—
             Relational Technologies/Ingres Corp./Computer Associates
             Kommerziell erfolgreich
PostgreSQL
  Historie




POSTGRES



      1986–1994
             University of California at Berkeley
             Prof. Stonebraker
             Prototyp eines objektrelationalen DBMS
      1995—
             Illustra/Informix/IBM
             Kommerziell erfolgreich
PostgreSQL
  Historie




PostgreSQL



      1995
             Postgres95
             University of California at Berkeley
             Umstellung auf SQL
      1996—
             Open-Source-Projekt
             Teamwachstum 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 auf
                pgsql-hackers@postgresql.org
                Quellcode im CVS
                Entwickler schicken Patches
                Core Team behält den Überblick
PostgreSQL
  Das Projekt




Entwicklungsarbeit


                “Scratch your own itch”
                Roadmap gibt’s nicht
                Feature-Vorschläge auf TODO-Liste
                Nebenaufgaben:
                    Dokumentation
                    Website
                    Lokalisierung
                    Öffentlichkeitsarbeit
                    usw.
PostgreSQL
  Das Projekt




Wer entwickelt das?




                Selbstständige
                Dienstleister
                Anbieter von Erweiterungen
                Hobbyisten
                Studenten
PostgreSQL
  Das Projekt




Lizenz




                Freie Software / Open Source
                BSD-Lizenz
                Keinerlei Lizenzkosten
                Eigene Ergänzungen beliebig möglich
                Keine Herausgabe des Quelltextes erforderlich
PostgreSQL
  Das Projekt




Community




                Anwender helfen Anwendern
                Direkter Kontakt zu Entwicklern
                Website: http://www.postgresql.org/
                Mailing-Listen
                IRC, Foren, Blogs, . . .
PostgreSQL
  Im Einsatz




Agenda


      1        Historie

      2        Das Projekt

      3        Im Einsatz

      4        Features

      5        Interna

      6        Abschluss
PostgreSQL
  Im Einsatz




Anwendungen

               Telekommunikation
               Universitäten
               Regierungen
               Militär
               Warenwirtschaft
               Steuerungssysteme
               Internet
               Medien
               Einzelhandel
               Technologiefirmen
PostgreSQL
  Im Einsatz




Vergleich mit anderen Produkten



               Vergleichbare Menge von Features
               Performance:
                   Benchmark muss wirklichkeitsnah sein
                        AS3AP: Geschwindigkeit und Skalierbarkeit
                        TPC-C: Online-Transaktionsverarbeitung
                   Veröffentlichung von Zahlen nicht erlaubt
                   Ergebnisse vergleichbar!
               Wirtschaftlich vorteilhafter
PostgreSQL
  Im Einsatz




Ableger




               EnterpriseDB
               Greenplum/Bizgres
               TelegraphCQ
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 Systemen
             Unterstützt nahezu alle Unix-Derivate, Linux, Windows,
             MacOS
             Multiprozessorfähig
PostgreSQL
  Features




SQL-Standards



             Unterstützt große Teile von SQL 1992, SQL 1999, SQL
             2003
             Beste SQL-Unterstützung am Markt
             Einfache Portierungen
             Portierungstools
             Kompatibilitätserweiterungen für Oracle, Informix, . . .
PostgreSQL
  Features




SQL-Features

             Aggregierung
             Constraints
             Domains
             Fremdschlüssel
             Outer Joins
             Partielle Indexe
             Savepoints
             Schemas
             Subselects
             Trigger
             Views
PostgreSQL
  Features




Programmierschnittstellen

      Standardisierte APIs:
             ODBC 3.5
             JDBC 3
             Embedded SQL in C
             Perl DBI/DBD
      Weitere Schnittstellen:
             SQL-Shell
             C
             C++
             PHP
             Python, Ruby, Tcl
PostgreSQL
  Features




Stored Procedures


      Verschiedene Sprachen:
             PL/pgSQL, ähnlich PL/SQL
             Java
             C
             Perl, PHP, Python, Ruby, Shell, Tcl
      Benutzerdefinierte Funktionen:
             Liefert Einzelwert oder Tabelle
             Verarbeitet Tabellen
PostgreSQL
  Features




Erweiterbarkeit


      Benutzerdefinierte
             Datentypen
             Funktionen
             Operatoren
             Indextypen
             Programmiersprachen
             u.a.
PostgreSQL
  Features




Erweiterbarkeit



      Viele Erweiterungen verfügbar:
             GIS
             Krypto
             XML
             Volltextsuche
             Ähnlichkeitssuche
             Replikation
PostgreSQL
  Features




Datensicherung




             SQL-Dumps
             Inkrementelle Backups mit Point-in-Time-Recovery
             “Hot Backups”
PostgreSQL
  Features




Keine Größenbeschränkung




             Geeignet für große Datenmengen
             Keine Beschränkungen für Tabellen, Zeilen, . . .
             Lineare Skalierung auch bei anspruchsvollen
             Anwendungen
PostgreSQL
  Features




Datenintegrität



             Kompromisslos stabil und zuverlässig
             Datenintegrität gesichert bei Systemabstürzen
             Korrekte Transaktionslogik von Anfang an
             Ausgefeiltes Typensystem mit Domains
             Datenbank akzeptiert keine ungültigen Daten
             Korrekte Semantik der Daten durch Fremdschlüssel und
             Constraints
PostgreSQL
  Features




Transaktionsverarbeitung – ACID



             Atomicity Ergebnis der Transaktion ganz oder gar nicht zu
                       sehen
      Consistency Datenbank bleibt immer konsistent
             Isolation Gleichzeitige Transaktionen beeinflussen sich
                       nicht
         Durability Ergebnis bleibt erhalten
PostgreSQL
  Features




Multiversion Concurrency Control




             Leser blockieren keine Schreiber, Schreiber blockieren
             keine Leser.
             Volle Unterstützung des ACID-Prinzips
             Transaktionsisolation: Serializable und Read Committed
             Explizite Sperrmodi
PostgreSQL
  Features




Indexe




             B-tree
             R-tree
             Hash
             GiST
             GIN
PostgreSQL
  Features




Objektrelationale Datenbankmanagementsysteme




             Kombination relationaler und objekorientierter Konzepte
             Beibehaltung bewährter Konzepte
             Abwärtskompatibel
             Evolution statt Revolution
             Migration
PostgreSQL
  Features




Objektrelationale Datenbankmanagementsysteme




             Benutzerdefinierte Typen, Operatoren
             Komplexe Datentypen: Arrays, Zeilentypen, . . .
             Vererbung
             Eindeutige Objektidentität
PostgreSQL
  Features




Administration




             Sehr geringer Administrationsaufwand
             Ins Serversystem eingebunden: Dateisystem, Logging, . . .
             Diverse Administrationstools: phpPgAdmin, Webmin,
             pgAdmin, TOra, psql
             Zusä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 dabei
      anwenden?
PostgreSQL
  Interna




Implementierung




             Geschrieben in C
             Client/Server-Architektur
             Ein Prozess pro Verbindung
             Kommunikation über Shared Memory
             Daten liegen in Dateien
PostgreSQL
  Interna




Verarbeitung eines Befehls




            1   Netzwerkprotokoll
            2   Parser
            3   Rewriter
            4   Planer/Optimizer
            5   Executor
PostgreSQL
  Interna




Andere Bauteile




             Storage Manager
             Lock Manager
             Memory Manager
             Cache Manager
             Eingebaute Funktionen, Datentypen
PostgreSQL
  Interna




Was man noch so lernt



             COBOL lebt — als SQL
             B-Tree-Indexe sind noch viel komplizierter als in der
             Vorlesung
             Objektorientierte Datenbanken interessieren keinen
             Aber XML vielleicht schon
             Hardware spielt eine erhebliche Rolle
             Immer 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 2007
              PGCon im Mai
              Ansonsten weiter so

Weitere ähnliche Inhalte

Ähnlich wie PostgreSQL: Die Freie Datenbankalternative

Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQL
Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQLJakarta EE 10: Ein erster Blick auf Eclipse JNoSQL
Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQLgedoplan
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenMarkus Flechtner
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortragRamon Wartala
 
SCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare LangzeitarchivierungSCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare LangzeitarchivierungSven Schlarb
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositoriesinovex GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlageninovex GmbH
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebGFU Cyrus AG
 
Skalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine EinführungSkalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine EinführungMarkus Kühle
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit AngularJens Binfet
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?KurtStockinger
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzunginovex GmbH
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesDigicomp Academy AG
 
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternOracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternPeter Ramm
 
Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresqlinovex GmbH
 

Ähnlich wie PostgreSQL: Die Freie Datenbankalternative (20)

Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQL
Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQLJakarta EE 10: Ein erster Blick auf Eclipse JNoSQL
Jakarta EE 10: Ein erster Blick auf Eclipse JNoSQL
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
 
SCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare LangzeitarchivierungSCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare Langzeitarchivierung
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositories
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlagen
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im Produktivbetrieb
 
Skalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine EinführungSkalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine Einführung
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Python Academy
Python AcademyPython Academy
Python Academy
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & Features
 
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternOracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
 
Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresql
 

Mehr von Peter Eisentraut

Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQLPeter Eisentraut
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/ProxyPeter Eisentraut
 
Linux distribution for the cloud
Linux distribution for the cloudLinux distribution for the cloud
Linux distribution for the cloudPeter Eisentraut
 
Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesPeter Eisentraut
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPeter Eisentraut
 
Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPeter Eisentraut
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and DevelopmentPeter Eisentraut
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsPeter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsPeter Eisentraut
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQLPeter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsPeter Eisentraut
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLPeter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Peter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...Peter Eisentraut
 
The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)Peter Eisentraut
 

Mehr von Peter Eisentraut (20)

Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Linux distribution for the cloud
Linux distribution for the cloudLinux distribution for the cloud
Linux distribution for the cloud
 
Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
 
Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
 
The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
 

PostgreSQL: Die Freie Datenbankalternative

  • 1. PostgreSQL PostgreSQL Die freie Datenbankalternative Peter Eisentraut petere@postgresql.org 22. 1. 2007
  • 2. PostgreSQL Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 3. PostgreSQL Historie Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 4. PostgreSQL Historie INGRES 1977–1985 University of California at Berkeley Prof. Stonebraker Prototyp eines relationalen DBMS 1986— Relational Technologies/Ingres Corp./Computer Associates Kommerziell erfolgreich
  • 5. PostgreSQL Historie POSTGRES 1986–1994 University of California at Berkeley Prof. Stonebraker Prototyp eines objektrelationalen DBMS 1995— Illustra/Informix/IBM Kommerziell erfolgreich
  • 6. PostgreSQL Historie PostgreSQL 1995 Postgres95 University of California at Berkeley Umstellung auf SQL 1996— Open-Source-Projekt Teamwachstum von 4 auf mehrere Dutzend
  • 7. PostgreSQL Das Projekt Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 8. PostgreSQL Das Projekt Projektorganisation Interessierte versammeln sich auf pgsql-hackers@postgresql.org Quellcode im CVS Entwickler schicken Patches Core Team behält den Überblick
  • 9. PostgreSQL Das Projekt Entwicklungsarbeit “Scratch your own itch” Roadmap gibt’s nicht Feature-Vorschläge auf TODO-Liste Nebenaufgaben: Dokumentation Website Lokalisierung Öffentlichkeitsarbeit usw.
  • 10. PostgreSQL Das Projekt Wer entwickelt das? Selbstständige Dienstleister Anbieter von Erweiterungen Hobbyisten Studenten
  • 11. PostgreSQL Das Projekt Lizenz Freie Software / Open Source BSD-Lizenz Keinerlei Lizenzkosten Eigene Ergänzungen beliebig möglich Keine Herausgabe des Quelltextes erforderlich
  • 12. PostgreSQL Das Projekt Community Anwender helfen Anwendern Direkter Kontakt zu Entwicklern Website: http://www.postgresql.org/ Mailing-Listen IRC, Foren, Blogs, . . .
  • 13. PostgreSQL Im Einsatz Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 14. PostgreSQL Im Einsatz Anwendungen Telekommunikation Universitäten Regierungen Militär Warenwirtschaft Steuerungssysteme Internet Medien Einzelhandel Technologiefirmen
  • 15. PostgreSQL Im Einsatz Vergleich mit anderen Produkten Vergleichbare Menge von Features Performance: Benchmark muss wirklichkeitsnah sein AS3AP: Geschwindigkeit und Skalierbarkeit TPC-C: Online-Transaktionsverarbeitung Veröffentlichung von Zahlen nicht erlaubt Ergebnisse vergleichbar! Wirtschaftlich vorteilhafter
  • 16. PostgreSQL Im Einsatz Ableger EnterpriseDB Greenplum/Bizgres TelegraphCQ
  • 17. PostgreSQL Features Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 18. PostgreSQL Features Plattformen Läuft auf großen Servern und auf kleinen Systemen Unterstützt nahezu alle Unix-Derivate, Linux, Windows, MacOS Multiprozessorfähig
  • 19. PostgreSQL Features SQL-Standards Unterstützt große Teile von SQL 1992, SQL 1999, SQL 2003 Beste SQL-Unterstützung am Markt Einfache Portierungen Portierungstools Kompatibilitätserweiterungen für Oracle, Informix, . . .
  • 20. PostgreSQL Features SQL-Features Aggregierung Constraints Domains Fremdschlüssel Outer Joins Partielle Indexe Savepoints Schemas Subselects Trigger Views
  • 21. PostgreSQL Features Programmierschnittstellen Standardisierte APIs: ODBC 3.5 JDBC 3 Embedded SQL in C Perl DBI/DBD Weitere Schnittstellen: SQL-Shell C C++ PHP Python, Ruby, Tcl
  • 22. PostgreSQL Features Stored Procedures Verschiedene Sprachen: PL/pgSQL, ähnlich PL/SQL Java C Perl, PHP, Python, Ruby, Shell, Tcl Benutzerdefinierte Funktionen: Liefert Einzelwert oder Tabelle Verarbeitet Tabellen
  • 23. PostgreSQL Features Erweiterbarkeit Benutzerdefinierte Datentypen Funktionen Operatoren Indextypen Programmiersprachen u.a.
  • 24. PostgreSQL Features Erweiterbarkeit Viele Erweiterungen verfügbar: GIS Krypto XML Volltextsuche Ähnlichkeitssuche Replikation
  • 25. PostgreSQL Features Datensicherung SQL-Dumps Inkrementelle Backups mit Point-in-Time-Recovery “Hot Backups”
  • 26. PostgreSQL Features Keine Größenbeschränkung Geeignet für große Datenmengen Keine Beschränkungen für Tabellen, Zeilen, . . . Lineare Skalierung auch bei anspruchsvollen Anwendungen
  • 27. PostgreSQL Features Datenintegrität Kompromisslos stabil und zuverlässig Datenintegrität gesichert bei Systemabstürzen Korrekte Transaktionslogik von Anfang an Ausgefeiltes Typensystem mit Domains Datenbank akzeptiert keine ungültigen Daten Korrekte Semantik der Daten durch Fremdschlüssel und Constraints
  • 28. PostgreSQL Features Transaktionsverarbeitung – ACID Atomicity Ergebnis der Transaktion ganz oder gar nicht zu sehen Consistency Datenbank bleibt immer konsistent Isolation Gleichzeitige Transaktionen beeinflussen sich nicht Durability Ergebnis bleibt erhalten
  • 29. PostgreSQL Features Multiversion Concurrency Control Leser blockieren keine Schreiber, Schreiber blockieren keine Leser. Volle Unterstützung des ACID-Prinzips Transaktionsisolation: Serializable und Read Committed Explizite Sperrmodi
  • 30. PostgreSQL Features Indexe B-tree R-tree Hash GiST GIN
  • 31. PostgreSQL Features Objektrelationale Datenbankmanagementsysteme Kombination relationaler und objekorientierter Konzepte Beibehaltung bewährter Konzepte Abwärtskompatibel Evolution statt Revolution Migration
  • 32. PostgreSQL Features Objektrelationale Datenbankmanagementsysteme Benutzerdefinierte Typen, Operatoren Komplexe Datentypen: Arrays, Zeilentypen, . . . Vererbung Eindeutige Objektidentität
  • 33. PostgreSQL Features Administration Sehr geringer Administrationsaufwand Ins Serversystem eingebunden: Dateisystem, Logging, . . . Diverse Administrationstools: phpPgAdmin, Webmin, pgAdmin, TOra, psql Zusätzlich Spezialtools: Visual Explain, . . .
  • 34. PostgreSQL Interna Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 35. PostgreSQL Interna Wie funktioniert das? . . . oder: Wieviel meines Studienwissens kann ich dabei anwenden?
  • 36. PostgreSQL Interna Implementierung Geschrieben in C Client/Server-Architektur Ein Prozess pro Verbindung Kommunikation über Shared Memory Daten liegen in Dateien
  • 37. PostgreSQL Interna Verarbeitung eines Befehls 1 Netzwerkprotokoll 2 Parser 3 Rewriter 4 Planer/Optimizer 5 Executor
  • 38. PostgreSQL Interna Andere Bauteile Storage Manager Lock Manager Memory Manager Cache Manager Eingebaute Funktionen, Datentypen
  • 39. PostgreSQL Interna Was man noch so lernt COBOL lebt — als SQL B-Tree-Indexe sind noch viel komplizierter als in der Vorlesung Objektorientierte Datenbanken interessieren keinen Aber XML vielleicht schon Hardware spielt eine erhebliche Rolle Immer mal das Halteproblem zitieren
  • 40. PostgreSQL Abschluss Agenda 1 Historie 2 Das Projekt 3 Im Einsatz 4 Features 5 Interna 6 Abschluss
  • 41. PostgreSQL Abschluss Die Zukunft Neue Release 8.3 Mitte 2007 PGCon im Mai Ansonsten weiter so