PostgreSQL
PostgreSQL | |
---|---|
The PostgreSQL Logo | |
Maintainer: | PostgreSQL Global Development Group |
Latest release: | 17.0 / 26. září 2024 |
OS: | Unix, Microsoft Windows |
License: | PostgreSQL licence |
Website: | www.postgresql.org |
PostgreSQL (nebo zkráceně Postgres) je plnohodnotným relačním databázovým systémem s otevřeným zdrojovým kódem. Má za sebou více než dvacet pět let aktivního vývoje a má vynikající pověst pro svou spolehlivost a bezpečnost. Běží nativně na všech rozšířených operačních systémech (Linux, BSD, MacOS, Windows) včetně některých dnes už méně rozšířených systémů (AIX, Solaris). Stoprocentně splňuje podmínky ACID, plně podporuje cizí klíče, operace JOIN, pohledy, spouště a uložené procedury. Obsahuje většinu SQL92 a SQL99 datových typů, např. INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL a TIMESTAMP. Nechybí ani podpora moderních datových typů jako je JSON nebo XML.
Vývojáři PostgreSQL se snaží o respektování a implementaci standardu ANSI SQL - k dispozici jsou vlastnosti popsané v ANSI/SQL 200x (např. rekurzivní a analytické dotazy) a ANSI/SQL 201x . K systému existuje kvalitní volně dostupná dokumentace včetně českých překladů FAQ a FAQ pro o.s. fy. Microsoft. Výkonnostně nezaostává za srovnatelnými komerčními systémy a v častokrát je i předčí. Deset rad jak efektivně používat PostgreSQL
"U našich klientů provozujeme tisíce instalací PostgreSQL na často pochybných strojích. Provozujeme je od malých netboocích až výkonných clusterech. A ještě jsme nezaznamenali jediný případ ztráty dat, který by byl způsobený PostgreSQL" - Petr Ferschmann, CEO, Internetové ekonomické systémy FlexiBee, FlexiBee Systems s.r.o.
"Večer trávený nad PL/PgSQL, které se dá používat a je k němu dobrá dokumentace, což o psaní stored procedur ve FirebirdSQL napsat nemohu ani omylem." - MaReK Olšavský
PostgreSQL lze jednoduše nainstalovat ze všech veřejných depozitářů linuxových distribucí (případně repozitáře vyhrazeného pro PostgreSQL). Vždy aktuální instalační soubor pro Microsoft Windows lze PostgreSQL stáhnout z archivu EnterpriseDB.
PostgreSQL je šířen pod BSD licencí, která je nejliberálnější ze všech open source licencí. Tato licence umožňuje neomezené bezplatné používání, modifikaci a distribuci PostgreSQL a to ať pro komerční nebo nekomerční využití. PostgreSQL můžete šířit se zdrojovými kódy nebo bez nich, zdarma nebo komerčně.
Přihlásit odběr skupiny PostgreSQL-cz |
Navštívit tuto skupinu |
PostgreSQL umožňuje běh uložených procedur napsaných v několika programovacích jazycích, v Perlu, v Pyhon, v jazyku C nebo v speciálním PL/pgSQL, jazyku vycházejícím z PL/SQL fy. Oracle. Existují PostgreSQL varianty JDBC, ODBC, dbExpress, Open Office, PHP, .NET, Perl nativních rozhraní. K PostgreSQL existuje překladač Embedded SQL pro C a C++.
Předchůdcem systému PostgreSQL byl systém Ingres (Interactive Graphics and Retrieval System), vyvinutý na kalifornské univerzitě v Berkeley v letech 1977 - 1985. Jeho nástupce byl vyvíjen pod vedením Prof. Michaela Stonebrakera jako objektově-relační databázový server pod názvem Postgres. Z toho později firma Illustra vytvořila komerční produkt, který byl později převzat Informixem. Původní Postgres byl doplněn o podporu jazyka SQL a byl označen Postgres95. V létě 1996 Marc Fournier, Bruce Momjian a Vadim B. Mikheev pokračovali na vývoji Postgres95 už jako open source a nezávisle na univerzitě. Systém byl postupně opravován a po odstranění nejhorších problémů začala implementace nových vlastností. Na konci roku 1996 byl projekt přejmenován na PostgreSQL a byla uvolněna verze 6.0.
Počínaje osmičkovou řadou PostgreSQL obsahuje vlastnosti, které očekáváme od tzv. enterprise produktů: stabilní výkon, MVCC, TOAST, WAL, Save Points, Point In Time Recovery, dvoufázové potvrzování, Partitioning, podporu SMP, informační schémata, částečné a funkcionální indexy, podporu SQL/XML, integrovaný fulltext, integrovanou autentifikaci v prostředí MS Windows. verze 8.4. (více v článku PostgreSQL v roce 2009 (PostgreSQL 8.4)), přináší funkce funkce na které jsme zvyklí z nejlepších komerčních databázových systémů - namátkou Common Table Expressions, podporu locales pro každou databázi, některé stávající funkce jsou rozšířeny, optimalizovány (podpora SEMIJOINu, ANTIJOINu, statistik pro fulltext).
"Zkušenosti s PostgreSQL jsou zatím výborné. Odpadly nám problémy s pády SQL serveru a s neaktivitou serveru při odpoledním zálohování. Také se výrazně zrychlila odezva programů, zejména díky rychlejšímu provádění SELECT příkazů." - zkušenosti vývojářů ekonomického systému po migraci na PostgreSQL.
Verze 9.0 přináší integrovanou replikaci, podmíněné a sloupcové triggery, klauzuli ORDER BY v agregačních funkcích, JOIN removal (odstranění nepotřebnách relací z prováděcích plánů). verze 9.1 obsahuje podporu COLLATEs, integraci s SE-Linuxem, synchronní replikaci, upravený režim SERIALIZABLE, podporu cizích tabulek dle standardu SQL/MED, cyklus FOREACH v PL/pgSQL a řadu dalších funkcí.Ve verzi 9.2 se setkáme s index only scanem, datovým typem range, datovým typem JSON, podporou SP_GIST indexů. Ve verzi 9.3 je k dispozici např. podpora DDL triggerů, klauzule LATERAL, kontrolní součty datových stránek. Verze 9.4 přináší podmíněné agregační funkce a agregační funkce na seřazených datech (median), nerelační datový typ jsonb (další generace typu HStore), možnost konfigurace pomocí SQL příkazů (ALTER SYSTEM). Verze 9.5 přináší GROUPING SETS, UPSERT, práva na úrovni řádku (Row Level Security), vyšší výkon pod extrémní zátěží, online komprimaci transakčního logu. verze 9.6 umožňuje využít pro jeden dotaz více CPU. Verze 10 přináší zlepšení partitioningu, integraci logické replikace, podpoře více sloupcových statistik. Ve verzi 11 můžeme používat příkaz CALL a v procedurách explicitně commitovat. V této verzi díky paralelnímu hashjoinu dosáhneme rychlejších analytických výpočtů. Přínosem je i dynamičtější partitioning. Verze 12 přináší podporu JSONPath, podporu nedeterministických locales (např. case insensitive) a další způsob práce s více sloupcovými statistikami. Verze 13 pak přináší přepsanou hash agregaci, efektivnější ukládání klíčů v indexu (deduplikace), a výrazně rychlejší vykonávání výrazů v PLpgSQL. Ve verzi 14 jsou na statistiky nad výrazy, je efektivnější vyhledávání hodnoty v dlouhém seznamu hodnot, je menší bloatingu indexů, a konečně je i úplná podpora výrazů na levé straně přiřazovacího příkazu (v PL/pgSQL). Verze 15 přidává ANSI SQL příkaz MERGE a další možnosti nastavení přístupových práv. Verze 16 přináší řadu optimalizací a pokračuje v implementaci SQL/JSON. Díky tomu je PostgreSQL solidní a bezpečnou platformou pro vývoj aplikací (informační, řídící a monitorovací systémy, výzkum, aplikace pro státní a komunální správu). Verze 17 přináší podporu inkrementálního backupu a finišuje podporu SQL/JSON.
viz Feature Matrix
Předností systému PostgreSQL je rozšiřitelnost. Systém může být bezproblémově rozšiřován o nové datové typy, funkce operátory, agregační funkce, procedurální jazyky. Díky tomu mohly vzniknout následující rozšíření: PostGIS - podpora pro geografické informační systémy, Timescale - podpora pro data časových řad nebo Citus - umožní používat Postgres jako distribuovanou databázi. Na serverech GitHub nebo PGXN je k dispozici několik desítek doplňků včetně doplňků rozšířující o funkcionalitu MySQL, SQL Serveru a Oraclu. Uživatelé také oceňují vynikající uživatelskou podporu (ať začátečníků nebo pokročilých uživatelů).
Za vývojem PostgreSQL stojí skupina nezávislých vývojářů a uživatelů, ke které se kdokoliv může připojit. A to přihlášením do diskusního fóra a následnou participací na projektu: patche, podporou uživatelů, psaním a překladem dokumentace atd.
PostgreSQL je faktickým průmyslovým standardem - existují komerční databáze postavené nad komunitním PostgreSQL - Netezza,GreenPlum, EnterpriseDB, Timescale, YugabyteDB. Můžeme se setkat s databázemi, které používají protokol kompatibilní s PostgreSQL - H2 nebo databáze, které přebírají interface PostgreSQL - např. Vertica.
CSPUG - Czech and Slovak PostgreSQL Users Group
Za účelem podpory sdružování uživatelů PostgreSQL vznikla v roce 2010 obecně prospěšná společnost (dle zákona č. 634/2004 Sb. o správních poplatcích) Sdružení českých a slovenských uživatelů PostgreSQL.
Autorem zde uložených dokumentů (a překladatelem FAQ) je Pavel Stěhule.