PostgreSQL czsloni

Aktuálně z CVSDalší


>13.6. pg_dump podporuje large objects, PL/pgSQL SQLSTATE a SQLERRM
>15.6. Parametry příkazu raise mohou být výrazy
>21.6. Podpora 2PC!!! PL/pgSQL podporuje příkaz CONTINUE
>26.6. Přidány funkce LEAST a GREATEST
>27.6. Concurrency for GiST
>28.6. Implementace rolí
>30.8. K dispozici jsou rpm a deb instalační soubory bety8.1
>1.10. Tyto stránky nejsou nadále aktualizovány
> 19.4. Aktualizovaný obsah tohoto webu byl přesunut na postgresql.interweb.cz

UdálostiDalší


>7.6. Ohlášena nová verze EMS PostgreSQL Managera 3.0 pro Win
>23.6. Uvolněna 1.1 verze Slony-I, změny, dokumentace, offline replikace.
>26.9. Byla uvolněna RC MySQL5
>27.9. Na nedělním programu konference OpenWeekend je prezentace RDBMS PostgreSQL 8.1

Ovladače pro win


>ODBC ovladač
>ADO.NET data provider
>SDBC ovladač
>OLE DB ovladač

Projekty


>EGS
>PostgreSQL-relay
>pginformix
>PostgreSQL Autodoc
>dbmail
>Pgbash
>Psycopg
>Pg_ci_diff
>Pgjobs
>PgSendMail
>PL/sh
>plmono
>LaTeXDB
>pgfsck
>hier
>Rdbi
>octave-pg
>PgPool
>PostGIS
>Quantum GIS
>Tsearch2
>auth postgresql
>Arbitrary collation support
>oledb
>Slony1
>mssql2pgeh
>Oryx Mailstore
>Generall triggers

Nástroje pro správu


>EMS PostgreSQL Manager (komerční) luxusní gui správce, vizuální návrh dotazu, tabulek, cizích klíčů, reportů, zvýraznění syntaxe, export import z/do dbf, xls, txt, csv, debugger PL/pgSQL, reverz. inženýring, metareporty
>CASE Studio 2 návrh ER, DFD diagramů, reverz. inženýring, dokumentace db.
>pgAdminIII free gui správa databáze
>Mammoth PostgreSQL modifikovaná verze pro snadnou instalaci a provoz ve win32, MacOSX
>phpPgAdmin web db admin, podporuje všechny 7.x verze PostgreSQL
>QLR Manager HTTP generátor tiskových sestav

Redakce


>Víte-li o dalších článcích, novinkách, zajímavých projektech, oznámeních a přehledech o PostgreSQL, SQL, free RDBMS, které zde chybí, a měli by zde být zveřejněny, pošlete jejich URL a krátký konentář na adresu postgresql@ok.cz.

PostgreSQL je pravděpodobně nejpokrokovějším open source RDBMS. Jeho přednostmi je podpora všech moderních operačních systémů (od verze 8.0.1 i win32) včetně os/2 a Novell (je součástí většiny distribucí linuxu). Pokud chcete spouštět PostgreSQL na NT4, přečtěte si FAQ_windows. Je šířen pod BSD licencí umožňující vlastní úpravy a šíření binárního kódu, splňuje kritéria ACID, z SQL podporuje cizí klíče, JOIN tabulek, pohledy, spouště, vnořené příkazy SELECT, příkazy CASE, COALESCE a NULLIF. Uživatelem definované funkce (UDF) mohou být psané v několika programovacích jazycích. UDF lze využít k návrhu vlastních datových typů, konverzních a agregačních funkcí. Obsahuje kvalitní, přehlednou a dobře udržovanou dokumentaci + český překlad FAQ.

Pro PostgreSQL existuje OLEDB, ODBC driver, .NET provider, komerční dbExpress Driver, OpenOffice postgresql-sdbc-driver, existuje podpora pro XUL, podporu PostgreSQL má většina programovacích jazyků - namádkou PHP, Perl, Pascal, Python, libpq nebo Embedded SQL pro C/C++, Java (JDBC) a další.

On-line zdroje


V češtině je to především konference databases@linux.cz, která je přístupná také prostřednictvím news cz.comp.databases.misc. Archiv konference naleznete na http://www.linux.cz/lists/archive/databases/. Dále jsou k dispozici konference (v angličtině) psql-general (obecné dotazy), psql-bugs (hlášení chyb) nebo psql-hackers (komunikace s/mezi vývojáři).

VývojDalší


Stabilní verzí je od 5.10.2005 verze 8.0.4 (seznam změn). Z této verze již byl odstraněn patentově problematický algoritmus ARC. Nejdůležitější novinky: Savepoints, PITR, CVS pro COPY. Od 8.1 se očekává podpora dvoufázového potvrzování, integrace PG_Autovacuum, podpora uložených procedur (ve skutečnosti PG umožňuje pouze návrh funkcí), vyšší výkon na high-end hardwaru, podpora rekurzivních dotazů,...

Poslední předchozí verze je 7.4.9. Oproti předchozí verzi přinaší opravu chyb, zlepšený výkon (je znatelně rychlejší (první uživatelé hovoří o dvoj až pětinásobném zrychlení některých dotazů) ~ opravou chyb, sofistikovanějším využití indexů) a dostupnost, podporu polí, snadnější konfiguraci, polymorfní funkce, standardní informační schémata, úplnější lokalizaci, fulltext a další - seznam změn.

Co lze čekat od 8.1? Předně dvoufázové potvrzování, poněkud nečekaně Partitioning (přišly vhod OO vlastnosti Pg), přechod ze skupin uživatelů na role, integrované autovacuum. Pak balík dalších vylepšení: souběh GIST, balík funkcí pro správu db, zrychlení příkazu COPY, pár změn doznalo PL/pgSQL i PL/Perl, funkce GREATEST a LEAST, binární indexy (index se použije i pro podmínky OR), optimalizace dotazů obsahujících MIN() MAX() funkce. Pokročilo SlonyI. Co nebude: Rekurzivní dotazy. A co by tak mohlo přijít na jaře: XML a nested tables, PL/pgSQL debugger, SlonyII

Kromě oficiálního vývojového stromu existují také další podporující např. dvoufázový commit nebo replikace PostgreSQL-R. EnterpriseDB nabízí větší kompatibilitu s Oracle - inline triigery, Oracle datové typy, vestavěné funkce jako SYSDATE, nová sys. schémata - ALL_TABLES. Starší verze PostgreSQL (před 8.0.x) bylo možné na platformě WinNT provozovat pouze s emulací CYGWIN. Existují ale komerční varianty - PowerGres k dispozici je 60denní trial verze, dbExperts PostgreSQL Professional, které lze spustit nativně na Windows 2000 a Windows XP, tj. bez jakékoliv emulace Unixu. Projekt Slony-I je funkčním a jednodušše instalovatelným řešení master-multislave replikací.

8.0.2 podporuje PL/pgSQL Output parametry. (S jejich implementací byla odstraněna nutnost ukončovat provádění funkce příkazem RETURN. Output parametry lze používat jak v obyčejných funkcích, tak v SRF funkcích. Funkce vrací RECORD obsahující všechny hodnoty všech OUT proměnných. Neobvyklé je volání funci s OUT parametry. Všechny OUT proměnné se musí odstranit ze seznamu parametrů funkce:

CREATE OR REPLACE FUNCTION foo(OUT x integer, INOUT y integer) AS $$
BEGIN x := y; END; $$ LANGUAGE plpgsql;

test=# SELECT foo(10);   test=# SELECT * FROM foo(10);
   foo                    x  | y  
---------                ----+----
 (10,10)                  10 | 10

CREATE OR REPLACE FUNCTION foo2(OUT x integer, OUT y integer) RETURNS SETOF record AS $$
BEGIN x := 0; y := 1;
  FOR _i IN 1..3 LOOP
    RETURN NEXT;
    x := x + 1; y := y + 1;
  END LOOP;
END; $$ LANGUAGE plpgsql; 

test=# SELECT * FROM foo2();
 x | y 
---+---
 0 | 1
 1 | 2
 2 | 3
(3 řádek)

ČlánkyDalší


> V článku Instalace PostgreSQL je stručně (cca na 50 řádkách), ale dostatečně popsána instalace PostgreSQL ze zdrojových souborů.

> V dokumentu Hezky česky v PostgreSQL Karel Žák popisuje národní podporu (kódování a třídění) v PostgreSQL.

> Článek Karla Žáka Co nového v PostgreSQL je věnován přehledu nových vlastností PostgreSQL 7.3

> V jemném úvodu do PL/pgSQL se dozvíte, jak navrhovat a používat UDF funkce v program. jazyce PL/pgSQL.

> Článek Návrh UDF v C Vás seznámí s realizaci UDF funkcí v C. Odměnou za vyšší pracnost je vyšší výkon.

> Seriál PostgreSQL na Linuxzone je věnovaný především přístupu k PostgreSQL z různých vývoj. prostředí (zejména prostřednictvím knhovny libpq).

> Jak ukládat obrázky do PostgreSQL Vám poradí Pavel Janík v článku PHP a Large Objects v PostgreSQL. V článku je stručně popsána manipulace s tzv. BLOBy v jazyce PHP.

> Článek PostgreSQL SPI a triggery v C Karla Žáka je věnován návrhu spouští (triggerů) v C pomocí SPI rozhraní

> Dokument Pgbash se věnuje možnosti používání SQL příkazů v unixovém shellu Bash

> Články Petra Bravence Jak na účetnictví v Linuxu jsou velice dobrou ukázkou návrhu databáze. Na příkladu realizace podvojného účetnictví autor demonstruje zajištění referenční a doménové integrity a optimalizaci databáze.

> Pavel Kysilka v článku Praktický návod k PgSQL popisuje své zkušenosti s migrací z MySQL do PostgreSQL.

> Článek Jirky Koska Úvod do PostgreSQL a PHP je návodem pro začátečníky na psaní vlastních php stránek přistupujících do RDBMS PostgreSQL

> V článku Použití SRF funkcí v jazyce PL/pgSQL při návrhu plánovacích funkcí je popsáno použití funkcí vracející tabulky a datumová aritmetika beroucí v potaz víkendy a státní svátky.

> Karel Žák ve svém výstižně nazvaném článku Co je nového v PostgreSQL 7.4. seznamuje čtenáře roota s nejdůležitějšími změnami ve verzi 7.4.

> Chybějící podpora fulltextu byla závažným nedostatkem PostgreSQL. Modul tsearch2 představuje originální řešení fulltextového vyhledávání. Popisem modulu se zabývá článek Fulltextování v PostgreSQL Pavla Stěhuleho na rootu.

> Přínosem PL/Perlu se zabývá článek Krátce o PL/Perl Pavla Stěhuleho na rootu.

> Karel Žák ve svém článku PostgreSQL:připravené dotazy a oddělení dat od dotazů shrnuje přínos předpřipravených parametrizovaných dotazů k bezpečnosti aplikace.

> Na rootu vychází seriál Radima Koláře věnovaný replikačnímu systému Slony1

> Marek Olšavský pro Linuxsoft.cz připravuje seriál o jazyku SQL. Jako referenční SQL server zvolil jeho oblíbenou databázi PostgreSQL.

> Karel Žák pokračuje v tradici svých článků na rootu věnovovaných novinkám PostgreSQL. Tentokrát píše o verzi 8.0.

> Na serveru root Pavel Stěhule publikoval článek PL/Perl, PostgreSQL aneb jak na aplikační server, kde mimo jiné ukazuje možnost přístupu do externích databází (konkrétně MySQL) pomocí rozhraní DBI

> Několik možných způsobů řešení úloh nad daty obsahující stromové struktury popisuje Pavel Stěhule v článku Stromy.

> Článek Kešování prováděcích plánů v PL/pgSQL vysvětluje problematiku zpracování SQL dotazů v jazyce PL/pgSQL a vysvětluje jak rozpoznat a vyvarovat se chybám vznikajících z nepochopení principu provádění SQL příkazů v PostgreSQL.

Případové studieDalší


> V článku Radim Kolář popisuje zkušenosti s přechodem na PostgreSQL z DB2 a s provozem PostgreSQL.

> Přechodem z RDBMS Solid na PostgreSQL se zabývá studie Pavla Stěhuleho.

TipDalší


> Inicializace větších polí v PL/pgSQL je neefektivní (každý přiřazovací příkaz generuje nové pole. Mnohem rychlejší je použítí funkce generate_series (v PL/pgSQL 317ms, SQL 16ms):

  select array (select 0 from generate_series(1,10000));
> PostgreSQL nepodporuje SQL příkaz MERGE. Jedním možným řešením je následující uložená procedura:
CREATE TABLE db (a INT PRIMARY KEY, b TEXT);
CREATE FUNCTION merge_db (key INT, data TEXT) RETURNS VOID AS $$
BEGIN 
  LOOP
    UPDATE db SET b = data WHERE a = key;
    IF found THEN RETURN; END IF;
    BEGIN
      INSERT INTO db(a,b) VALUES (key, data);
      RETURN;
    EXCEPTION WHEN unique_violation THEN
      -- do nothing
    END;
  END LOOP;
END; $$ LANGUAGE plpgsql;
 
SELECT merge_db (1, 'david');
SELECT merge_db (1, 'dennis');
> PostgreSQL neumožňuje deklarovat session proměnné. Náhradním řešením bylo vytvoření dočasné tabulky a ukládání proměnných do ní. V plperlu (PostgreSQL 7.5) je k dispozici hash. tabulka existující po celou dobu session. Drobnou nepříjemností je, že plperl nepodporuje anyelement, a anyarray.
CREATE OR REPLACE FUNCTION putv(text, text) RETURNS text AS $$
   $_SHARED{$_[0]}=$_[1];
$$ LANGUAGE plperl;

CREATE OR REPLACE FUNCTION getv(text) RETURNS text AS $$
   return $_SHARED{$_[0]};
$$ LANGUAGE plperl;
Pomocí takto vytvořených pseudoglobálních proměnných můžeme např. celkem řešít úlohu číslování řádků:
lokality=# select putv('idx',0);
 putv
------
 0
(1 row)

lokality=# select putv('idx',cast(getv('idx')as integer)+1), ulice, cispop from lok limit 5;
 putv |   ulice   | cispop
------+-----------+--------
 1    | K LIPANŮM |      0
 2    | K LIPANŮM |      0
 3    | K LIPANŮM |     54
 4    | K LIPANŮM |     55
 5    | K LIPANŮM |     56
(5 rows)
Převzato z http://www.varlena.com/GeneralBits/

On-line knihy


>Practical PostgreSQL
>PostgreSQL: Introduction and Concepts

Odkazy


>Domací stránky PostgreSQL
>PostgreSQL Technical Documentation
>PostgreSQL 8.1. Devel Documentation
>Search PostgreSQL resource
>GBorg PostgreSQL related projects
>The PostgreSQL Global Devel. Group
>PostgreSQL Notes
>Postgres General Bits
>Tuning PostgreSQL for performance
>PostgreSQL CookBook Pages
>OpenLDAP - PostgreSQL Howto
>SQL mod pro emacs
>PostgreSQL Native Win32 Status Report
>PostgreSQL a XML
>Efficient SQL
>F.A.Q. for PostgreSQL
>Materialized Views in PostgreSQL
>PostgreSQL.PL
>Extending the Database with C
>PostgreSQL 8.0 Performance Checklist
>Planet PostgreSQL
>MySQL vs PostgreSQL

Ostatní


>SQL Tutorial
>A Gentle Introduction to SQL
>Teach Yourself SQL in 21 Days

Další o.s. rdbms


>dbXML
>Firebird
>MySQL
>Sap DB (MaxDB)
>SQL Lite
>OpenXMLD

České o.s. portály


>AbcLinux
>Penguin
>Linux cz
>Linuxzone
>Linuxsoft.cz
>Root

Portály věnované db.


>Databázový svět

logo InWay Provozováno díky společnosti InWay, a.s.
 ISP, ICP, telekomunikační operátor
Aktualizováno 06. 10. 2005 @pst