summaryrefslogtreecommitdiff
path: root/doc/FAQ_czech
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FAQ_czech')
-rw-r--r--doc/FAQ_czech2282
1 files changed, 1105 insertions, 1177 deletions
diff --git a/doc/FAQ_czech b/doc/FAQ_czech
index 1fd6627b8a5..1a2b33cb687 100644
--- a/doc/FAQ_czech
+++ b/doc/FAQ_czech
@@ -1,855 +1,823 @@
-�asto kladen� dotazy (FAQ) PostgreSQL
-=====================================
-
-Obecn� ot�zky
-=============
-1.1 Co je PostgreSQL? Jak se vyslovuje?
-1.2 Jak� je licence na PostgreSQL?
-1.3 Na kter�ch Unixex lze spustit PostgreSQL?
-1.4 Kter� ne-unixov� platformy jsou podporovan�?
-1.5 Kde mohu z�skat PostgreSQL?
-1.6 Kde mohu z�skat podporu?
-1.7 Kde je posledn� verze?
-1.8 Jak� je dostupn� dokumentace?
-1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?
-1.10 Jak se mohu nau�it SQL?
-
-1.11 Nem� PostgreSQL probl�my s rokem 2000?
-1.12 Jak se p�ipojit k v�voj��sk�mu t�mu?
-1.13 Kam podat report o chyb�?
-1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
-1.15 Jak lze finan�n� pomoci PostgreSQL?
-
-User client dotazy
-==================
-2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL?
-2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web?
-2.3 Existuje grafick� rozhran� pro PostgreSQL?
-2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL?
-
-Administrativn� dotazy
-======================
-3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?
-3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo
-core dump. Pro�? 3.3 P�i startu postmastera dostanu hl�en� o chyb�
-IpcMemoryCreate. Pro�? 3.4 P�i startu postmastera dostanu hl�en� o
-chyb� IpcSemaphoreCreate. Pro�? 3.5 Jak povolit nebo zak�zat p��stup z
-jin�ch stanic? 3.6 Jak ladit datab�zov� stroj na lep�� v�kon?
-
-3.7 Jak� jsou mo�nosti lad�n�?
-3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?
-3.9 K �emu slou�� adres�� pgsql_tmp?
-
-3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade
-mezi velk�mi verzemi PostgreSQL?
-
-Provozn� dotazy
-===============
-4.1 ��m se li�� bin�rn� a norm�ln� kurzor?
-4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?
-4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?
-4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?
-4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?
-4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho
-textov�ho souboru? 4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�,
-datab�z�? 4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?
-4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?
-
-4.10 Co to je R-tree index?
-4.11 Co je Genetic Query Optimizer?
-4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv,
-insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? 4.13 Jak
-v dotazu detekovat, �e polo�ka je NULL? 4.14 Jak� jsou rozd�ly mezi
-r�zn�mi znakov�mi typy? 4.15.1 Jak vytvo�it serial/auto-increment pole?
-4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku?
-
-4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s
-jin�mi u�ivateli? 4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i
-p�eru�en� transakce? Pro� vznikaj� d�ry v ��slov�n� vlastn�
-sekvenc�/SERIAL sloupce? 4.16 Co to je OID? Co je to TID?
-
-4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?
-4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in
-AllocSetAlloc()"? 4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?
-4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj
-descriptor"? 4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln�
-datum? 4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?
-4.23 Jak prov�st vn�j�� spojen� (outer join)?
-
-4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi?
-4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�?
-4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL
-funkc�ch? 4.27 Jak� jsou mo�nosti replikace datab�z�?
-
-4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�?
-
-Roz�i�ov�n� PostgreSQL
-======================
-5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?
-5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do
-PostgreSQL? 5.3 Jak napsat funkci v C vracej�c� ntici?
-
-5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci
-vzata v potaz. Pro�?
-------------------------------------------------------------------------
-
-Obecn� ot�zky
-=============
-
-1.1 Co je PostgreSQL? Jak se vyslovuje?
----------------------------------------
-
-PostgreSQL se vyslovuje Post-Gres-Q-L.
-
-PostgreSQL vych�z� z datab�ze POSTGRES - v�zkumn�ho prototypu DBMS nov�
-generace. Z postgresu byl p�evzat siln� datov� model a bohat� soubor
-datov�ch typ� a jeho dotazovac� jazyk PostQuel byl nahrazen roz���enou
-podmno�inou jazyka SQL. PostgreSQL lze pou��vat bez omezen� a jeho
-zdrojov� k�dy jsou voln� k dispozici.
-
-PostgreSQL vyv�j� t�m v�voj��� p�ihl�en�ch do v�voj��sk� konference
-PostgreSQL. Sou�asn�m koordin�torem je Marc G. Fournier. (Odpov�� 1.6. -
-jak se zapojit). Tento t�m je zodpov�dn� za ve�ker� v�voj PostgreSQL.
-
-Autory prvn� verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
-portace, testov�n�, lad�n� a roz�i�ov�n� k�du se zapojilo mnoho dal��ch
-v�voj��� . P�vodni k�d Postgresu, ze kter�ho PostgreSQL vych�z�, je
-v�sledkem �sil� mnoha student� a program�tor� pracuj�c�ch pod veden�m
-prof. Michaela Stonebrakera na University of California v Berkley.
-
-P�vodn� n�zev software z Berkley byl Postgres. Po p�id�n� jazyka SQL se
-n�zev zm�nil na Postgres95. Koncem roku 1996 byl RDBMS p�ejmenov�n na
-PostgreSQL.
-
-1.2 Jak� je licence na PostgreSQL?
-----------------------------------
-
-PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v:
-
-D�l�� copyright (c) 1996-2002, PostgreSQL Global Development Group
-
-D�l�� copyright (c) 1994-6, Regents of the University of California
-
-Ud�luje se opr�vn�n� k u�it�, rozmno�ov�n�, prov�d�n� �prav a
-roz�i�ov�n� tohoto softwaru a dokumentace k n�mu, pro jak�koli ��ely,
-bez licen�n�ho poplatku a bez p�semn� licen�n� smlouvy, za podm�nky, �e
-na v�ech jeho kopi�ch je uvedeno ozn�men� o v��e uveden�ch pr�vech,
-jako� i obsah tohoto a dvou n�sleduj�c�ch odstavc�.
-
-THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V ��DN�M
-P��PAD� ODPOV�DNA ��DN� T�ET� OSOB� ZA P��MOU, NEP��MOU, ZVL��TN�,
-NAHODILOU NEBO V�SLEDNOU �KODU, V�ETN� U�L�HO ZISKU, ZP�SOBENOU U�IT�M
-TOHOTO SOFTWARU A DOKUMENTACE K N�MU, A TO I V P��PAD�, �E THE
-UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MO�NOSTI VZNIKU TAKOV�
-�KODY.
-
-THE UNIVERSITY OF CALIFORNIA ZEJM�NA NEPOSKYTUJE JAK�KOLI Z�RUKY, A TO
-NEJEN Z�RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V�ROBKU KE SPECIFICK�M
-��EL�M. NͮE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A LE��" A THE
-UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO �DR�BU, PODPORU,
-AKTUALIZACI, VYLEP�EN� NEBO MODIFIKACI.
-
-V��e uveden� je BSD licence, b�n� licence otev�en�ho zdroje. Nen� zde
-��dn� omezen� ohledn� u�it� k�du zdroje. Jsme s t�m spokojeni a nem�me v
-�myslu na t�to skute�nosti cokoli m�nit.
-
-1.3 Na kter�ch Unixex lze spustit PostgreSQL?
----------------------------------------------
-
-PostgreSQL b�� na v�ech modern�ch unixov�ch platform�ch. V instala�n�ch
-instrukc�ch naleznete aktu�ln� seznam v�ech platforem na kter�ch byla
-testov�n�m ov��ena funkcionalita PostgreSQL.
-
-1.4 Kter� ne-unixov� platformy jsou podporovan�?
-------------------------------------------------
-
-Klient
-------
-
-Knihovna libpq, psql a n�kter� dal�� moduly byly p�elo�eny pro MS
-Windows. Klienta lze provozovat na MS Windows, ten prost�ednictv�m
-TCP/IP protokolu komunikuje se serverem b��c�m na n�kter� z
-podporovan�ch Unixov�ch platforem. K p�ekladu lze pou��t win32.mak a
-Win32 knihovny libpq a psql. K datab�zi PostgerSQL lze p�istupovat skrze
-rozhran� ODBC.
-
-Server
-------
-
-Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou
-Cygwin, Cygnus Unix/NT porting library. Na nativn�m portu pro MS Win
-NT/2000/XP se pracuje. Existuj�c� port pro Novell Netware 6 naleznete na
-http://forge.novell.com.
-
-1.5 Kde mohu z�skat PostgreSQL?
--------------------------------
-
-Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je
-ftp://ftp.PostgreSQL.org/pub . Seznam zrcadel naleznete na na�ich
-webov�ch str�nk�ch.
-
-1.6 Kde mohu z�skat podporu?
-----------------------------
-
-Hlavn�m mailov� konference je [email protected]. Slou�� k
-diskuz�m ohledn� PostgreSQL. P�ihl�s�te se zasl�n�m mailu obsahuj�c�
-n�sleduj�c� ��dky v t�le dopisu (nikoliv v z�hlav� - subjectu)
-
-subscribe
-end
-
-na adresu mailto:[email protected].
-
-M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn�
-zpr�v.
-
-Konference psql-bugs je ur�ena k zas�l�n� zpr�v o chyb�ch. Pro
-p�ihl�en� po�lete mail se stejn�m obsahem jako v p�edchoz�m p��pad� na
-adresu mailto:[email protected].
-
-Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji� zmi�ovan�m
-obsahem na mailto:[email protected].
-
-Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL
-http://www.postgresql.org
-
-1.7 Kde je posledn� verze?
---------------------------
-
-Posledn� verz� je PostgreSQL 7.4.. Pl�nujeme uvolnit velkou verzi
-ka�d�ch �est a� osm m�s�c�.
-
-1.8 Jak� je dostupn� dokumentace?
----------------------------------
-
-R�zn� manu�ly, manu�lov� str�nky a n�kolik mal�ch testovac�ch p��klad�
-jsou sou��sti distribuce. Pod�vejte se do adres��e /doc. Manu�ly jsou
-p��stupn� online na http://www.PostgreSQL.org/docs.
-
-Na adres�ch http://www.PostgreSQL.org/docs/awbook.html a
-http://www.commandprompt.com/ppbook/ naleznezte dv� online knihy o
-PostgreSQL. Seznam dostupn� literatury je na
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
-technick�ch �l�nk� s tematikou PostgresQL najdete na
-http://techdocs.PostgreSQL.org/.
-
-psql m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o typech,
-oper�torech, funkc�, agrega�n�ch funkc� atd.
-
-V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch.
-
-1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?
-------------------------------------------------------------------
-
-PostgreSQL podporuje roz���enou podmno�inu SQL-92. V na�em TODO [1]
-najdete seznam zn�m�ch chyb, chyb�j�c�ch vlastnost� a seznam vlastnost�,
-kter� budou do syst�mu implementov�ny v budoucnu (v�etn� priorit).
-
-1.10 Jak se mohu nau�it SQL?
-----------------------------
-
-V knize The PostgreSQL book na
-http://www.PostgreSQL.org/docs/awbook.html je vysv�tlen jazyk SQL (vy�la
-�esky). Dal�� dostupnou knihou je http://www.commandprompt.com/ppbook.
-Kvalitn� n�vody naleznete na
-http://www.intermedia.net/support/sql/sqltut.shtm, na
-http://www.intermedia.net/support/sql/sqltut.shtm [2] , a na
-http://sqlcourse.com.
-
-Dal�� je Teach Yourself SQL in 21 days, Second Edition na
-http://members.tripod.com/er4ebus/sql/index.htm.
-
-Mnoho u�ivatel� doporu�uje The Practical SQL Handbook, Bowman, Judith
-S., et al., Addison-Wesley. Jin� preferuj� The Complete Reference SQL,
-Groff et al., McGraw-Hill.
-
-1.11 Nem� PostgreSQL probl�my s rokem 2000?
--------------------------------------------
-
-Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed
-rokem 2000 p�.n.l.
-
-1.12 Jak se p�ipojit k v�voj��sk�mu t�mu?
------------------------------------------
-
-Nejd��ve si st�hn�te nejnov�j�� zdroje a p�e�t�te si v�voj��skou
-dokumentaci na na�em webu nebo v distribuci. Pak se p�ihla�te do
-konferenc� pgsql-hackers a pgsql-patches. Kvalitn� z�platy pos�lejte do
-pgsql-patches.
-
-Pr�vo commit m� v cvs archivu asi t�in�cti lid�. Ka�d� z nich poslal
-mnoho kvalitn�ch z�plat, tak�e tehdej�� commiters m�li jistotu, �e budou
-p�edkl�dat jenom kvalitn� z�platy a mohli jim p�ed�lit v�t�� pr�va.
-
-1.13 Kam podat report o chyb�?
-------------------------------
-
-Nav�tivte na�i PostgreSQL BugTool str�nku na
-http://www.PostgreSQL.org/bugs/bugs.php, kter� obsahuje n�vod a sm�rnice
-jak podat chybov� report.
-
-Ov��te si na na�em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li m�te
-nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak� z�platy.
-
-1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
---------------------------------------------------------------
-
-Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon,
-spolehlivost, podpora a cena.
-
-Vlastnosti
-----------
-
-PostgreSQL m� hodn� spole�n�ch vlastnost� s velk�mi komer�n�mi DBMS,
-nap�. transakce, vno�en� dotazy, spou�t�, pohledy, kontrolu referen�n�
-integrity a sofistikovan� zamyk�n�. Podporuje n�kter� vlastnosti, kter�
-tyto syst�my nemaj�, u�ivatelem definovan� typy, d�di�nost, pravidla,
-MVCC redukuj�c� zamyk�n�.
-
-V�kon
------
-
-V�konnostn� je na tom PostgreSQL podobn� jako dal�� komer�n� ale i open
-source datab�ze, v n��em je rychlej��, jindy pomalej��. V porovn�n� s
-MySQL a podobn�mi datab�zov�mi syst�my je PostgreSQL rychlej�� p�i
-v�ceu�ivatelsk�m p��stupu, slo�it�j��ch dotazech a zat��en� read/write
-dotazy. MySQL je rychlej�� v jednodu���ch dotazech s mal�m po�tem
-u�ivatel�. Nav�c, MySQL nepodporuje mnoh� vlatnosti zm�n�n� v sekci
-vlastnosti. Zapracovali jsme na spolehlivosti a podporovan�ch
-vlastnostech, a v�kon zvy�ujeme v ka�d� verzi. Zaj�mavou str�nku
-porovn�vaj�c� PostgreSQL a MySQL naleznete na
-http://openacs.org/philosophy/why-not-mysql.html. Za v�vojem MySQL nen�
-Open Source komunita, ale komer�n� spole�nost, p�esto�e svoje produkty
-distribuuje jako Open Source.
-
-Spolehlivost
-------------
-
-Jsme si v�domi, �e datab�ze mus� b�t spolehliv�, jinak je nepou�iteln�.
-Sna��me se zve�ej�ovat dob�e otestovan�, stabiln� k�d s minimem chyb.
-Ka�d� verze je v�ce ne� m�s�c v beta testov�n�, a na�e historie verz�
-ukazuje, �e m��eme nab�dnout stabiln�, solidn� verze, kter� jsou
-p�ipraveny pro re�ln� nasazen�. V t�to oblasti jsme srovnateln� s
-dal��mi datab�zemi.
-
-Podpora
--------
-
-Na na�� mailov� konferenci m��ete kontaktovat velkou skupinu v�voj��� a
-u�ivatel�.probl�m�. Nem��eme garantovat opravu, nicm�n� komer�n�
-datab�ze tak� ne v�dy nab�dnou opravu. Podle ohlas� je na�e podpora
-hodnocena l�pe ne� u jin�ch DBMS a to d�ky p��m�mu kontaktu s v�voj��i,
-velkou komunitou u�ivatel�, kvalitn�mi manu�ly a p��stupn�m zdrojov�m
-k�dem. Pro u�ivatele, kte�� vy�aduj� podporu ke konkr�tn�m p��pad�m,
-existuje placen� podpora (FAQ sekce 1.6).
-
-Cena
-----
-
-PosgreSQL lze voln� pou��vat pro nekomer�n� i komer�n� pou�it�. M��ete
-do sv�ch produkt� p�idat n� k�d bez omezen�, respektive v souladu s
-podm�nkami na�� licen�n� smlouvy (v duchu BSD licence).
-
-1.15 Jak lze finan�n� pomoci PostgreSQL?
-----------------------------------------
-
-PosgreSQL m� prvot��dn� infrastrukturu od na�eho za��tku v roce 1996.
-Vd���me za to Marku Fournierovi, kter� zalo�il a spravoval tuto
-infrastrukturu n�kolik let.
-
-Kvalitn� infrastruktura je velice d�le�it� pro ka�d� open source
-projekt. P�edch�z� nedorozum�n�m, kter� velice zdr�uj� pokrok v
-projektu.
-
-Tato infrastruktura nen� lacin�. K jej�mu zaji�t�n� je t�eba st�le
-hradit ur�it� m�s��n� a jednor�zov� ��stky. Pokud m�te Vy nebo Va�e
-spole�nost pen�ze, kter� n�m m��ete darovat, obra�e se na
-http://store.pgsql.com/shopping/ a darujte je.
-
-A�koliv webov� str�nka zmi�uje PostgreSQL, Inc. vklady jsou ur�eny pouze
-k podpo�e projektu PostgreSQL a nepodporuj� ��dnou existuj�c�
-spole�nost. Pokud to vy�adujete, m��ete poslat kontrolu na na�i
-kontaktn� adresu.
-
-Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n�
-advocacy site na http://advocacy.postgresql.org.
-
-------------------------------------------------------------------------
-
-User client dotazy
-==================
-
-2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL?
----------------------------------------------
-
-Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC.
-
-PsqlODBC je ke sta�en� na
-http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
-
-OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s
-jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi
-podporovan� platformy (Win, Mac, Unix, VMS).
-
-Tento ovlada� je ur�en pro ty, kte�� vy�aduj� podporu komer�n� kvality,
-nicm�n� freeware verze je dostupn� a funk�n�. Dotazy zas�lejte na
-
-2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web?
---------------------------------------------------
-
-P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch
-str�nek najdete na http://www.webreview.com.
-
-Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na
-http://www.php.net.
-
-Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl.
-
-2.3 Existuje grafick� rozhran� pro PostgreSQL?
-----------------------------------------------
-
-Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess
-(http://www.php.net), PgAdmin (http://www.php.net), RHDB Admin
-(http://sources.redhat.com/rhdb/) a Rekall (
-http://www.thekompany.com/products/rekall/). D�le existuje PHPPgAdmin
-(http://phppgadmin.sourceforge.net/) rozhran� PostgreSQL zalo�en� na web
-technologii.
-
-�pln�j�� seznam najdete na
-http://techdocs.postgresql.org/guides/GUITools.
-
-2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL?
-----------------------------------------------------------
-
-V�t�ina programovac�ch jazyk� obsahuje rozhran� pro PostgreSQL.
-Pod�vejte se do roz�i�uj�c�ch modul� Va�eho programovac�ho jazyka.
-
-Distribuce PostgreSQL obsahuje tato rozhran�:
-
- - C (libpq)
- - Embbedded C (ecpg)
- - Java (jdbc)
- - Python (PyGreSQL)
- - TCL (libpgtcl)
-
-Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci
-Drivers/Interfaces.
-
-------------------------------------------------------------------------
-
-Administrativn� dotazy
-======================
-
-3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?
---------------------------------------------------------------
-
-Pou�ijte volbu --prefix p�i spu�t�n� configure
-
-3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo core dump. Pro�?
-----------------------------------------------------------------------------------------
-
-D�vody mohou b�t r�zn�, ale nejprve zkontrolujte, zda V� syst�m
-podporuje System V extensions. PostgreSQL vy�aduje v j�d�e podporu
-sd�len� pam�ti a semafor�.
-
-3.3 P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�?
--------------------------------------------------------------------------
-
-Bu�to nem�te spr�vn� nakonfigurovanou sd�lenou pam� v j�d�e nebo musite
-zv�t�it jej� velikost. Pot�ebn� velikost je z�visl� na architektu�e a na
-tom, kolik pam�ov�ch buffer� a backend� m�te povoleno pro postmastera.
-Pro v�t�inu syst�m� s p�eddefinovan�m po�tem backend� a pam�ov�ch
-buffer� je minimum zhruba 1MB. V
-http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kern
-el-resources.html [3] naleznete podrobn�j�� informace o sd�len� pam�ti a
-semaforech.
-
-3.4 P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate. Pro�?
-----------------------------------------------------------------------------
-
-Pokud dostane chybovou zpr�vu IpcSemaphoreCreate: semget failed (No
-space left on device), pak va�e j�dro nem� dost voln�ch semafor�.
-PostgreSQL vy�aduje jeden semafor pro ka�d� backend v pozad�. Do�asn�m
-�e�en�m je start postmastera s limitem backend�. Pou�ijte p�ep�na� -N s
-hodnotou men�� ne� 32. �pln�m �e�en�m je zv��en� hodnot SEMMNS a SEMMNI
-jadra.
-
-Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch
-operac�.
-
-Pokud se tato chyba vyskytuje je�t� n�kde jinde, mo�n� nem�te v�bec
-nakonfigurov�ny semafory ve va�em j�d�e. V PostgreSQL Administrator's
-Guide najdete podrobn�j�� popis po�adavk� na sd�lenou pam�t a semafory.
-
-3.5 Jak povolit nebo zak�zat p��stup z jin�ch stanic?
------------------------------------------------------
-
-P�i v�choz�m nastaven� PostgreSQL odep�e p��stup z jin�ch stanic ne�
-lok�ln� s pou�it�m UDP. Datab�ze se zp��stupn� jin�m stanic�m nastaven�m
-p�ep�na�e -i postmastera a povolen�m stanice a ur�en�m re�imu
-autentifikace v $PGDATA/pg_hba.conf. T�m se povol� TCP/IP spojen�.
-ZASTARAL�
-
-3.6 Jak ladit datab�zov� stroj na lep�� v�kon?
-----------------------------------------------
-
-Ur�it� pomohou indexy. P��kaz EXPLAIN zobraz� zp�sob interpretace Va�eho
-dotazu a pou�it� index�.
-
-P�i v�t�� d�vce INSERT� uva�ujte o n�hrad� p��kazem COPY. Ten je mnohem
-rychlej�� ne�li samotn� INSERT. Ka�d� p��kaz mimo blok BEGIN WORK/COMMIT
-se prov�d� ve vlastn� transakci. Zva�te, zda-li by se nedalo n�kolik
-p��kaz� spojit do jedn� transakce. T�m se sn��� re�ie na transakce. P�ed
-proveden�m rozs�hl�ch zm�n zru�te indexy, kter� po dokon�en� zm�n op�t
-vytvo�te.
-
-M�te n�kolik dal��ch mo�nost�, jak zlep�it v�kon. M��ete zak�zat fsyn()
-p�i startu postmastera p�ep�na�i -o -F. Tyto p�ep�na�e zabr�n� fsync(),
-tj. z�pisu na disk po ka�d� transakci.
-
-M��ete zv��it velikost pam�ov�ch buffer� pou�it�ch backendy tj.
-parametr -B postmasteru. Pokud ale tato hodnota bude p��li� velk�, tak
-mo�n� nespust�te postmastera jeliko� dos�hnete limitu sd�len� pam�ti.
-Ka�d� buffer m� 8K a implicitn� je 64 buffer�.
-
-D�le m��ete pou��t p�ep�na� -S k zv��en� limitu pam�ti pro backendy na
-do�asn� t��d�n�. Hodnota je m�n�na v kilobytech a v�choz� nastaven� je
-512, tj. 512K.
-
-M��ete pou��t p��kaz CLUSTER, kter� uspo��d� fyzicky data v tabulk�ch
-podle indexu. V�ce na manu�lov�ch str�nk�ch p��kazu CLUSTER.
-
-3.7 Jak� jsou mo�nosti lad�n�?
-------------------------------
-
-M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m.
-
-Zaprv�, p�i p�ekladu pou�ijte p�ep�na� --enable-cassert, t�m se zapne
-monitorov�n� a n�sledn� zastaven� aplikace, kdy� se proces v backendu
-dostane do neo�ek�van�ho stavu.
-
-Jak postmaster tak postgres m� n�kolik p�ep�na�� umo��uj�c�ch lad�n�.
-Postmaster nastartujte tak, abyste si byli jisti, �e je standartn�
-v�stup a standartn� chybov� v�stup p�esm�rov�n do souboru logu,
-nap��klad:
-
-cd /usr/local/pgsql
-./bin/postmaster > server.log 2>&1 &
-
-T�m se vytvo�� log v adres��i PostgreSQL, Tento soubor obsahuje u�ite�n�
-informace o probl�mech a chyb�ch vyskytl�ch se na serveru. Postmaster m�
-p�ep�na� -d ur�uj�c�, jak podrobn� maj� b�t reportovan� informace, tj.
-debug level. Pozor, p�i velk� hodnot� debug levelu rychle roste velikost
-souboru logu.
-
-Pokud neb�� postmaster, m��ete spustit backend PostgreSQL z p��kazov�
-��dky a napsat sv�j SQL dotaz p��mo v backendu (doporu�eno pouze pro
-lad�n�). Dotaz je v tomto p��pad� ukon�en novou ��dkou, nikoliv
-st�edn�kem. Pokud m�te aplikaci p�elo�enou s lad�c�mi symboly, m��ete
-pou��t debbuger k monitorov�n� procesu. Pokud nen� backend spu�t�n
-postmasterem, pak neb�� ve sv�m obvykl�m prost�ed� a tud�� n�kter�
-probl�my dan� interakc� mezi backendy nemohou b�t nasimulov�ny.
-
-Pokud b�� postmaster, spus�e psql v jednom okn� a pak si zjist�te PID
-procesu postgres pou�it�ho psql. V debuggeru sep�ipojte k postgresql
-PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud
-lad�te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus�e psql.
-Tento p�ep�na� zp�sob� pauzu n sekund, tak�e budete m�t �as se p�ipojit
-k procesu, a nastavit breakpointy a pokra�ovat v startup posloupnosti.
-
-Pro lad�n� a m��en� v�konu mohou b�t u�ite�n� p�ep�na�e -s, -A a -t
-programu postgres (backend).
-
-M��ete prov�st p�eklad s profilac�, tak abyste vid�li kolik �asu
-zab�raj� jednotliv� funkce. Soubory s profily backend� jsou ulo�eny v
-adres��i pgsql/data/base/dbname. Profil klienta pak v jeho aktu�ln�m
-adres��i. Korektn� profilace v prost�ed� Linux po�aduje konfiguraci
-syst�mu s parametrem -DLINUX_PROFILE.
-
-3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?
----------------------------------------------------------------------
-
-Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch
-backend�.
-
-V�choz� hodnota je 32 backend�. Tuto hodnotu zv���te zastaven�m a
-op�tovn�m spu�t�n�m postmastera s parametrem -N nebo �pravou
-postgresql.conf.
-
-P�i zv��en� hodnoty -N nad 32 mus�te zv��it hodnotu -B nad v�choz� 64,
--B mus� b�t minim�ln� dvakr�t v�t��, nebo je�t� l�pe v�ce. Pravd�podobn�
-zjist�te, �e pro velk� po�et proces� backendu je nutn� zv��it n�kter�
-parametry j�dra. Jsou to p�edev��m maxim�ln� velikost sd�len� pam�ti
-SHMMAX, maxim�ln� po�et semaf�r� SEMMNS a SEMMNI, maxim�ln� po�et
-proces� NPROC, maxim�ln� po�et proces� u�ivatele MAXUPRC a maxim�ln�
-po�et otev�en�ch soubor� NFILE a NINODE. D�vod pro omezen� maxim�ln�ho
-po�tu backend� je fakt, �e by mohlo doj�t k vy�erp�n� zdroj� Va�eho
-syst�mu.
-
-3.9 K �emu slou�� adres�� pgsql_tmp?
-------------------------------------
-
-Tento adres�� obsahuje do�asn� soubory vytvo�en� exekutorem dotaz�.
-Nap��klad, kdy� je nutn� t��d�n� k zaji�t�n� ORDER BY a t��d�n� m� v�t��
-n�roky na prostor ne� povoluje parametr -S backendu, pak je vytvo�en
-do�asn� soubor k ulo�en� extra �daj�.
-
-Do�asn� soubory jsou obvykle maz�ny automaticky, ale m��e se st�t, �e
-b�hem t��d�n� server spadne. Zastaven� a dal�� start postmastera zajist�
-odstran�n� soubor� s t�chto adres���.
-
-3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi velk�mi verzemi PostgreSQL?
-------------------------------------------------------------------------------------------------------
-
-PostgreSQL se minim�ln� m�n� b�hem mal�ch verz�, tak�e nap�. p�i upgrade
-z 7.2 na 7.2.1 nen� nutn� dump a load datab�ze. Ale velk� verze �asto
-m�n� intern� form�t syst�mov�ch tabulek a datov�ch soubor�. Tyto zm�ny
-jsou natolik rozs�hl�, �e nelze zajistit zp�tnou kompatibilitu pro
-datov� soubory. Dump ulo�� data v obecn�m form�tu, tak�e mohou b�t
-na�tena a pou��v�na v nov�m intern�m form�tu.
-
-------------------------------------------------------------------------
-
-Provozn� dotazy
-===============
-
-4.1 ��m se li�� bin�rn� a norm�ln� kurzor?
-------------------------------------------
-
-Popis najdete v manu�lov� str�nce DECLARE
-
-4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?
--------------------------------------------------------
-
-Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ...
-LIMIT ...
-
-Nen� nutn� zpracov�vat cel� dotaz, kdy� pot�ebujete pouze n�kolik
-prvn�ch ��dk�. Pokud existuje index ORDER BY, PostgreSQL je schopen
-p�eru�it zpracov�n� dotazu po z�sk�n� po�adovan�ho po�tu ��dk�.
-
-K z�sk�n� n�hodn�ho ��dku pou�ijte:
-
-SELECT col FROM tab
- ORDER BY random() LIMIT 1;
-
-4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?
-------------------------------------------------------------
-
-Pod�vejte se do zdrojov�ch k�d� psql do souboru
-pgsql/src/bin/psql/describe.c. Ten obsahuje SQL p��kazy, kter� se
-pou��vaj� v psql metap��kazech. D�le m��ete spustit psql s p�ep�na�em
--E, kter� zp�sob� zobrazen� ka�d�ho dotazu, kter� zpracov�n� metap��kazu
-vyvol�.
-
-4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?
--------------------------------------------------------
-
-Po��naje verz� 7.3 m��ete pou��t p��kaz ALTER TABLE DROP COLUMN. Ve
-star��ch verz�ch m��ete pou��t n�sleduj�c� postup:
-
-BEGIN;
-LOCK TABLE old_table;
-SELECT ... -- mimo sloupec, kter� chceme odstranit
- INTO TABLE new_table;
-DROP TABLE old_table;
-ALTER TABLE new_table RENAME TO old_table;
-COMMIT;
-
-Pro zm�nu typu sloupce je t�eba prov�st:
-
-BEGIN;
-ALTER TABLE tab ADD COLUMN new_col new_data_type;
-UPDATE tab SET new_col = CAST(old_col AS new_data_type;
-ALTER TABLE tab DROP COLUMN old_col;
-COMMIT;
-
-Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran�
-nyn� ji� neplatn�mi ��dky.
-
-4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?
----------------------------------------------------------
-
-PostgreSQL m� tato omezen�:
-
- Maxim�ln� velikost datab�ze: neomezena (existuj� 32TB db)
-
- Maxim�ln� velikost tabulky: 32 TB
-
- Maxim�ln� velikost ��dky: 1.6 TB
-
- Maxim�ln� velikost polo�ky 1 GB
-
- Maxim�ln� po�et ��dk� v tabulce: neomezeno
-
- Maxim�ln� po�et sloupc� v tabulce: 250-1600 podle typ�
-
- Maxim�ln� po�et index� na tabulce: neomezeno
-
-Ve skute�nosti nic nen� neomezeno, limitem b�v� v�dy dostupn� diskov�
-pam� nebo velikost opera�n� pam�ti. Pokud m�te n�kterou z t�chto hodnot
-neobvykle velkou, m��e doj�t ke sn��en� v�konu.
-
-Maxim�ln� velikost tabulky je 32 TB a nevy�aduje podporu velk�ch soubor�
-opera�n�m syst�mem. Velk� tabulky se ukl�daj� do n�kolika 1 GB soubor�
-tak�e limity souborov�ho syst�mu nejsou podstatn�.
-
-Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme
-ze�ty�n�sobit nastaven�m velikosti bloku na 32K.
-
-4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho textov�ho souboru?
--------------------------------------------------------------------------------------
-
-PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z
-textov�ho souboru.
-
-Nap��klad, uva�ujme soubor se 100 tis�ci ��dky obsahuj�c� na ka�d� ��dce
-cel� ��slo a textov� popis. Text je v pr�m�ru dvacet byt� dlouh�.
-Textov� soubor bude 2.8 MB dlouh�. Velikost datab�ze obsahuj�c�
-odpov�daj�c� data bude zhruba 6.4 MB.
-
- 36 byt�: hlavi�ka ��dku (p�ibli�n�)
- 24 byt�: jedna celo��seln� polo�ka a jedna textov�
- 4 byty: ukazatel na str�nku k ntici
-------------------------------------------------------
- 64 byt� na ��dek
-
-Velikost datov� str�nky PostgreSQL je 8KB
-
- 8192 byt� na str�nce
----------------------- = 128 ��dek na str�nku
- 64 byt� za ��dek
-
-100000 ��dek
--------------------- = 782 str�nek (zaokrouhleno nahoru)
-128 ��dek na str�nce
-
-782 * 8192 = 6, 406, 144 byt� (6.4 MB)
-
-Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e
-obsahuj� indexovan� data.
-
-Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo
-diskov�ho prostoru.
-
-4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�?
-------------------------------------------------------------
-
-psql m� sadu metap��kaz� k zobrazen� t�chto informac�. Jejich seznam
-z�sk�te p��kazem \?. D�le se m��ete pod�vat na obsah syst�mov�ch tabulek
-za��naj�c�ch pg_. Spu�t�n� psql s parametrem -l provede v�pis n�zv�
-v�ech datab�z�.
-
-Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c� k
-syst�mov�m tabulk�mm.
-
-4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?
------------------------------------------------------------
-
-Ka�d� dotaz nemus� nutn� pou��t existuj�c� indexy. Index se pou�ije
-tehdy, kdy� je tabulka v�t�� ne� ur�it� minim�ln� velikost, a dotaz
-vyb�r� pouze procentu�ln� malou ��st ��dk� tabulky. To proto, �e n�hodn�
-p��stup k disku dan� �ten�m indexu m��e b�t pomalej�� ne� line�rn� �ten�
-tabulky nebo sekven�n� �ten�,
-
-PostgreSQL rozhoduje o pou�it� index� na z�klad� statistiky p��stup� k
-tabulce. Tyto statistiky se shroma��uj� p��kazy VACUUM ANALYZE nebo
-ANALYZE. D�ky statistik�m m� optimizer informaci o po�tu ��dek v tabulce
-a m��e l�pe rozhodnout o pou�it� index�. Statistiky se uplatn� p�i
-ur�en� optim�ln�ho po�ad� a metody spojen� tabulek. Statistiky by se
-m�li aktualizovat opakovan�, tak jak se m�n� obsah tabulek.
-
-Indexy nejsou oby�ejn� pou�ity pro set��d�n� nebo spojen� tabulek.
-Sekven�n� zpracov�n� n�sledovan� explicitn�m t��d�n�m je oby�ejn�
-rychlej�� ne� indexn� �ten� na velk� tabulce.
-
-Jinak je tomu v p��pad� pou�it� LIMIT a ORDER BY, p�i kter�m se v�t�inou
-index pou�ije, v�sledkem je pouze mal� ��st tabulky. Funkce MAX() a
-MIN() nepou��vaj� indexy, ale je mo�n� tut� hodnotu z�skat
-
-SELECT col FROM tab
- ORDER BY col [ DESC ] LIMIT 1;
-
-Pokud si mysl�te, �e optimizer myln� zvolil sekven�n� prohled�v�n�
-tabulky, pou�ijte p��kaz SET enable_seqscan TO 'off' a zkuste zda je
-indexn� prohled�v�n� rychlej��.
-
-P�i vyhled�v�n� na z�klad� vzoru jako je nap�. oper�tor LIKE nebo ~ se
-indexy pou��j� pouze za ur�it�ch skute�nost�:
-
- - za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj.
-
- * vzor LIKE nesm� za��nat %
- * regul�rn� v�raz mus� za��nat ^
-
- - vzor nesm� za��nat intervalem, nap�. [a-e]
-
- - vyhled�van�, kter� nen� Case sensitiv nepou��v� indexy.
- M��ete ale pou��t funkcion�ln� indexy, kter� jsou pos�ny v sekci
- 4.12
- - p�i inicializaci datab�ze (initdb) mus� b�t pou�ito C locale
- (pozn. p�ekladatele - tud�� v na�ich podm�nk�ch nepou�iteln�,
- nepracovalo by �esk� t��d�n�).
-
-4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?
-------------------------------------------------------------
-
-Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN.
-
-4.10 Co to je R-tree index?
----------------------------
-
-R-tree index se pou��v� pro indexov�n� prostorov�ch dat. Hash index
-nem��e obslou�it prohled�v�n� oblast�. B-tree index m��e ��dit vyhled�n�
-oblast� v jedn� dimenzi. R-tree index m��e podporovat hled�n� v
-multidimenzion�ln�ch datech. Pou�ijeme-li nap��klad R-tree index na
-atributy typu point, pak syst�m m��e efektivn� odpov�d�t na dotaz -
-vyber v�echny body uvnit� obd�ln�k�.
-
-P�vodn� n�vrh R-tree je Guttman, A. "R-trees: A Dynamic Index Structure
-for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on
-Mgmt of Data, 45-57
-
-Tyto materi�ly naleznete v Stonebraker's "Readings in Database Systems".
-
-Vestav�n� R-tree m��e slou�it k indexaci polygon� a oblast�. Teoreticky
-m��eme R-tree pou��t i pro v�ce dimenz� (jin� ne� 3D). Ve skute�nosti
-ale takov� roz���en� R-tree vy�aduje trochu pr�ce a ve sou�astnosti
-chyb� dokumentace jak na to.
-
-4.11 Co je Genetic Query Optimizer?
------------------------------------
-
-GEQO modul urychluje optimalizaci dotaz� p�i spojov�n� mno�stv� tabulek
-metodou Genetick�ch algoritm� (GA). To umo��uje z�skat velk�ho mno�stv�
-variant spojen� p�i ne�pln�m prohled�v�n�m.
-
-4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv,
-insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�?
-
-Oper�tor ~ slou�� k porov�n� s regul�rn�m v�razem, jeho modifikace *~
-p�edstavuje case insensitive vyhled�v�n�. Jedn� se o obdobu LIKE a
-ILIKE.
-
-Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme
-
-SELECT * FROM tab
- WHERE lower(col) = 'abc';
-
-V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se
-funkcion�ln� index, pokud jej vytvo��te
-
-CREATE INDEX tabindex ON tab (lower(col));
-
-4.13 Jak v dotazu detekovat, �e polo�ka je NULL?
-------------------------------------------------
-
-Ur��te pomoc� IS NULL nebo IS NOT NULL
-
-4.14 Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy?
----------------------------------------------------
+ �asto kladen� dotazy (FAQ) PostgreSQL
+
+ Posledn� aktualizace: St�eda 23. �ervna 21:10:00 EST 2004
+
+ Sou�asn� spr�vce: Bruce Momjian ([email protected])
+
+ P�elo�il: Pavel St�hule ([email protected])
+
+ Aktu�ln� verzi tohoto dokumentu naleznete na adrese:
+ http://www.PostgreSQL.org/docs/faqs/FAQ.html. �esk� p�eklad na adrese:
+ http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html.
+
+ Odpov�di na dotazy relevantn� ke konkr�tn�m platform�m lze nal�zt na
+ adrese: http://www.PostgreSQL.org/docs/index.html.
+ _________________________________________________________________
+
+ Obecn� ot�zky
+
+ 1.1) Co je PostgreSQL? Jak se vyslovuje?
+ 1.2) Jak� je licence na PostgreSQL?
+ 1.3) Na kter�ch Unixex lze spustit PostgreSQL?
+ 1.4) Kter� ne-unixov� platformy jsou podporovan�?
+ 1.5) Kde mohu z�skat PostgreSQL?
+ 1.6) Kde mohu z�skat podporu?
+ 1.7) Kde je posledn� verze?
+ 1.8) Jak� je dostupn� dokumentace?
+ 1.9) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?
+ 1.10) Jak se mohu nau�it SQL?
+ 1.11) Nem� PostgreSQL probl�my s rokem 2000?
+ 1.12) Jak se p�ipojit k v�voj��sk�mu t�mu?
+ 1.13) Kam podat report o chyb�?
+ 1.14) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
+ 1.15) Jak lze finan�n� pomoci PostgreSQL?
+
+ User client dotazy
+
+ 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL?
+ 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web?
+ 2.3) Existuje grafick� rozhran� pro PostgreSQL?
+ 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL?
+
+ Administrativn� dotazy
+
+ 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?
+ 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call
+ nebo core dump. Pro�?
+ 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate.
+ Pro�?
+ 3.4) P�i startu postmastera dostanu hl�en� o chyb�
+ IpcSemaphoreCreate. Pro�?
+ 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic?
+ 3.6) Jak ladit datab�zov� stroj na lep�� v�kon?
+ 3.7) Jak� jsou mo�nosti lad�n�?
+ 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?
+ 3.9) K �emu slou�� adres�� pgsql_tmp?
+ 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade
+ mezi velk�mi verzemi PostgreSQL?
+
+ Provozn� dotazy
+
+ 4.1) ��m se li�� bin�rn� a norm�ln� kurzor?
+ 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?
+ 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?
+ 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?
+ 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?
+ 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho
+ textov�ho souboru?
+ 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�?
+ 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?
+ 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?
+ 4.10) Co to je R-tree index?
+ 4.11) Co je Genetic Query Optimizer?
+ 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv,
+ insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�?
+ 4.13) Jak v dotazu detekovat, �e polo�ka je NULL?
+ 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy?
+ 4.15.1) Jak vytvo�it serial/auto-increment pole?
+ 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku?
+ 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i
+ soub�hu s jin�mi u�ivateli?
+ 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce?
+ Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce?
+ 4.16) Co to je OID? Co je to TID?
+ 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?
+ 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in
+ AllocSetAlloc()"?
+ 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?
+ 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj
+ descriptor"?
+ 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?
+ 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?
+ 4.23) Jak prov�st vn�j�� spojen� (outer join)?
+ 4.24) Jak prov�st dotaz nap��� n�kolika datab�zemi?
+ 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�?
+ 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v
+ PL/pgSQL funkc�ch?
+ 4.27) Jak� jsou mo�nosti replikace datab�z�?
+ 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�?
+
+ Roz�i�ov�n� PostgreSQL
+
+ 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?
+ 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do
+ PostgreSQL?
+ 5.3) Jak napsat funkci v C vracej�c� ntici?
+ 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i
+ rekompilaci vzata v potaz. Pro�?
+ _________________________________________________________________
+
+ Obecn� ot�zky
+
+ 1.1) Co je PostgreSQL? Jak se vyslovuje?
+
+ PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukov� z�znam je dostupn� na
+ adrese .
+
+ PostgreSQL vych�z� z datab�ze POSTGRES (a st�le je n�kdy ozna�ov�n
+ zjednodu�en� jako Postgres) - v�zkumn�ho prototypu DBMS nov� generace.
+ Z postgresu byl p�evzat siln� datov� model a bohat� soubor datov�ch
+ typ� a jeho dotazovac� jazyk PostQuel byl nahrazen roz���enou
+ podmno�inou jazyka SQL. PostgreSQL lze pou��vat bez omezen� a jeho
+ zdrojov� k�dy jsou voln� k dispozici.
+
+ PostgreSQL vyv�j� t�m v�voj��� p�ihl�en�ch do v�voj��sk� konference
+ PostgreSQL. Sou�asn�m koordin�torem je Marc G. Fournier
+ ([email protected]). (viz 1.6 - jak se zapojit). Tento t�m je
+ zodpov�dn� za ve�ker� v�voj PostgreSQL. Jedn� se o ve�ejn� projekt,
+ kter� nen� ��zen ��dnou firmou. Pokud se chcete zapojit, p�e�t�te si
+ developer's FAQ na adrese
+ http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
+
+ Autory prvn� verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
+ portace, testov�n�, lad�n� a roz�i�ov�n� k�du se zapojilo mnoho
+ dal��ch v�voj��� . P�vodni k�d Postgresu, ze kter�ho PostgreSQL
+ vych�z�, je v�sledkem �sil� mnoha student� a program�tor� pracuj�c�ch
+ pod veden�m prof. Michaela Stonebrakera na University of California v
+ Berkley.
+
+ P�vodn� n�zev software z Berkley byl Postgres. Po p�id�n� jazyka SQL
+ se n�zev zm�nil na Postgres95. Koncem roku 1996 byl RDBMS p�ejmenov�n
+ na PostgreSQL.
+
+ 1.2) Jak� je licence na PostgreSQL?
+
+ PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v:
+
+ D�l�� Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ D�l�� Copyright (c) 1994-6, Regents of the University of California
+
+ Ud�luje se opr�vn�n� k u�it�, rozmno�ov�n�, prov�d�n� �prav a
+ roz�i�ov�n� tohoto softwaru a dokumentace k n�mu, pro jak�koli ��ely,
+ bez licen�n�ho poplatku a bez p�semn� licen�n� smlouvy, za podm�nky,
+ �e na v�ech jeho kopi�ch je uvedeno ozn�men� o v��e uveden�ch pr�vech,
+ jako� i obsah tohoto a dvou n�sleduj�c�ch odstavc�.
+
+ THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V ��DN�M
+ P��PAD� ODPOV�DNA ��DN� T�ET� OSOB� ZA P��MOU, NEP��MOU, ZVL��TN�,
+ NAHODILOU NEBO V�SLEDNOU �KODU, V�ETN� U�L�HO ZISKU, ZP�SOBENOU U�IT�M
+ TOHOTO SOFTWARU A DOKUMENTACE K N�MU, A TO I V P��PAD�, �E THE
+ UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MO�NOSTI VZNIKU TAKOV�
+ �KODY.
+
+ HE UNIVERSITY OF CALIFORNIA ZEJM�NA NEPOSKYTUJE JAK�KOLI Z�RUKY, A TO
+ NEJEN Z�RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V�ROBKU KE
+ SPECIFICK�M ��EL�M. NͮE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A
+ LE��" A THE UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO
+ �DR�BU, PODPORU, AKTUALIZACI, VYLEP�EN� NEBO MODIFIKACI.
+
+ V��e uveden� je BSD licence, b�n� licence otev�en�ho zdroje. Nen� zde
+ ��dn� omezen� ohledn� u�it� k�du zdroje. Jsme s t�m spokojeni a nem�me
+ v �myslu na t�to skute�nosti cokoli m�nit.
+
+ 1.3) Na kter�ch Unixex lze spustit PostgreSQL?
+
+ PostgreSQL b�� na v�ech modern�ch unixov�ch platform�ch. V
+ instala�n�ch instrukc�ch naleznete aktu�ln� seznam v�ech platforem na
+ kter�ch byla testov�n�m ov��ena funkcionalita PostgreSQL.
+
+ 1.4) Kter� ne-unixov� platformy jsou podporovan�?
+
+ Klient
+
+ Knihovna libpq, psql a n�kter� dal�� moduly byly p�elo�eny pro MS
+ Windows. Klienta lze provozovat na MS Windows, ten prost�ednictv�m
+ TCP/IP protokolu komunikuje se serverem b��c�m na n�kter� z
+ podporovan�ch Unixov�ch platforem. K p�ekladu lze pou��t win32.mak a
+ Win32 knihovny libpq a psql. K datab�zi PostgerSQL lze p�istupovat
+ skrze rozhran� ODBC.
+
+ Server
+
+ Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou
+ Cygwin, Cygnus Unix/NT porting library. V�ce pgsql/doc/FAQ_MSWIN v
+ distribuci nebo MS Windows FAQ na adrese
+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
+
+ Na nativn�m portu pro MS Win NT/2000/XP se pracuje. Dal�� informace o
+ aktu�ln�m stavu PostgreSQL pro Windows naleznet na adrese
+ http://techdocs.postgresql.org/guides/Windows a
+ http://momjian.postgresql.org/main/writings/pgsql/win32.html.
+
+ Existuj�c� port pro Novell Netware 6 naleznete na
+ http://forge.novell.com.
+
+ 1.5) Kde mohu z�skat PostgreSQL?
+
+ Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je
+ ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na na�ich
+ webov�ch str�nk�ch.
+
+ 1.6) Kde mohu z�skat podporu?
+
+ Hlavn� mailov� konference je: [email protected]. Slou�� k
+ diskuz�m ohledn� PostgreSQL. P�ihl�s�te se zasl�n�m mailu obsahuj�c�
+ n�sleduj�c� ��dky v t�le dopisu (nikoliv v z�hlav� - subjectu):
+ subscribe
+ end
+
+ na adresu [email protected].
+
+ M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn�
+ zpr�v.
+
+ Konference psql-bugs je ur�ena k zas�l�n� zpr�v o chyb�ch. Pro
+ p�ihl�en� po�lete mail se stejn�m obsahem jako v p�edchoz�m p��pad�
+ na adresu [email protected].
+
+ Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji�
+ zmi�ovan�m obsahem na mailto:[email protected].
+
+ Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL:
+
+ http://www.postgresql.org
+
+ 1.7) Jak� je posledn� verze?
+
+ Posledn� verze PostgreSQL je 7.4.3. Pl�nujeme uvolnit v�znamnou verzi
+ ka�d�ch �est a� osm m�s�c�.
+
+ 1.8) Jak� je dostupn� dokumentace?
+
+ R�zn� manu�ly, manu�lov� str�nky a n�kolik mal�ch testovac�ch p��klad�
+ jsou sou��sti distribuce. Pod�vejte se do adres��e /doc. Manu�ly jsou
+ p��stupn� online na http://www.PostgreSQL.org/docs.
+
+ Na adres�ch http://www.PostgreSQL.org/docs/awbook.html a
+ http://www.commandprompt.com/ppbook/ naleznezte dv� online knihy o
+ PostgreSQL. Seznam dostupn� literatury je na
+ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
+ technick�ch �l�nk� s tematikou PostgresQL najdete na
+ http://techdocs.PostgreSQL.org/.
+
+ psql m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o
+ typech, oper�torech, funkc�, agrega�n�ch funkc� atd.
+
+ V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch.
+
+ 1.9) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?
+
+ PostgreSQL podporuje roz���enou podmno�inu SQL-92. V na�em TODO
+ najdete seznam zn�m�ch chyb, chyb�j�c�ch vlastnost� a seznam
+ vlastnost�, kter� budou do syst�mu implementov�ny v budoucnu (v�etn�
+ priorit).
+
+ 1.10) Jak se mohu nau�it SQL?
+
+ V knize The PostgreSQL book na
+ http://www.PostgreSQL.org/docs/awbook.html je vysv�tlen jazyk SQL
+ (vy�la �esky). Dal�� dostupnou knihou je
+ http://www.commandprompt.com/ppbook. Kvalitn� n�vody naleznete na
+ http://www.intermedia.net/support/sql/sqltut.shtm, a na
+ http://sqlcourse.com.
+
+ Dal�� je Teach Yourself SQL in 21 days, Second Edition na
+ http://members.tripod.com/er4ebus/sql/index.htm.
+
+ Mnoho u�ivatel� doporu�uje The Practical SQL Handbook, Bowman, Judith
+ S., et al., Addison-Wesley. Jin� preferuj� The Complete Reference SQL,
+ Groff et al., McGraw-Hill.
+
+ 1.11) Nem� PostgreSQL probl�my s rokem 2000?
+
+ Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed
+ rokem 2000 p�.n.l.
+
+ 1.12) Jak se p�ipojit k v�voj��sk�mu t�mu?
+
+ Nejd��ve si st�hn�te nejnov�j�� zdroje a p�e�t�te si v�voj��skou
+ dokumentaci na na�em webu nebo v distribuci. Pak se p�ihla�te do
+ konferenc� pgsql-hackers a pgsql-patches. Kvalitn� z�platy pos�lejte
+ do pgsql-patches.
+
+ Pr�vo commit m� v CVS archivu asi t�in�cti lid�. Ka�d� z nich poslal
+ mnoho kvalitn�ch z�plat, tak�e tehdej�� commiters m�li jistotu, �e
+ budou p�edkl�dat jenom kvalitn� z�platy a mohli jim p�ed�lit v�t��
+ pr�va.
+
+ 1.13) Kam podat report o chyb�?
+
+ Nav�tivte na�i PostgreSQL BugTool str�nku na
+ http://www.PostgreSQL.org/bugs/bugs.php, kter� obsahuje n�vod a
+ sm�rnice jak podat chybov� report.
+
+ Ov��te si na na�em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li
+ m�te nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak�
+ z�platy.
+
+ 1.14) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
+
+ Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon,
+ spolehlivost, podpora a cena.
+
+ Vlastnosti
+ PostgreSQL m� hodn� spole�n�ch vlastnost� s velk�mi komer�n�mi
+ DBMS, nap�. transakce, vno�en� dotazy, spou�t�, pohledy,
+ kontrolu referen�n� integrity a sofistikovan� zamyk�n�.
+ Podporuje n�kter� vlastnosti, kter� tyto syst�my nemaj�,
+ u�ivatelem definovan� typy, d�di�nost, pravidla, MVCC
+ redukuj�c� zamyk�n�.
+
+ V�kon
+ V�konnostn� je na tom PostgreSQL podobn� jako dal�� komer�n�
+ ale i open source datab�ze, v n��em je rychlej��, jindy
+ pomalej��. V porovn�n� s MySQL a podobn�mi datab�zov�mi syst�my
+ je PostgreSQL rychlej�� p�i v�ceu�ivatelsk�m p��stupu,
+ slo�it�j��ch dotazech a zat��en� read/write dotazy. MySQL je
+ rychlej�� v jednodu���ch dotazech s mal�m po�tem u�ivatel�.
+ Nav�c, MySQL nepodporuje mnoh� vlatnosti zm�n�n� v sekci
+ vlastnosti. Zapracovali jsme na spolehlivosti a podporovan�ch
+ vlastnostech, a v�kon zvy�ujeme v ka�d� verzi. Zaj�mavou
+ str�nku porovn�vaj�c� PostgreSQL a MySQL naleznete na
+ http://openacs.org/philosophy/why-not-mysql.html. Za v�vojem
+ MySQL nen� Open Source komunita, ale komer�n� spole�nost,
+ p�esto�e svoje produkty distribuuje jako Open Source.
+
+ Spolehlivost
+ Jsme si v�domi, �e datab�ze mus� b�t spolehliv�, jinak je
+ nepou�iteln�. Sna��me se zve�ej�ovat dob�e otestovan�, stabiln�
+ k�d s minimem chyb. Ka�d� verze je v�ce ne� m�s�c v beta
+ testov�n�, a na�e historie verz� ukazuje, �e m��eme nab�dnout
+ stabiln�, solidn� verze, kter� jsou p�ipraveny pro re�ln�
+ nasazen�. V t�to oblasti jsme srovnateln� s dal��mi datab�zemi.
+
+ Podpora
+ Na na�� mailov� konferenci m��ete kontaktovat velkou skupinu
+ v�voj��� a u�ivatel�.probl�m�. Nem��eme garantovat opravu,
+ nicm�n� komer�n� datab�ze tak� ne v�dy nab�dnou opravu. Podle
+ ohlas� je na�e podpora hodnocena l�pe ne� u jin�ch DBMS a to
+ d�ky p��m�mu kontaktu s v�voj��i, velkou komunitou u�ivatel�,
+ kvalitn�mi manu�ly a p��stupn�m zdrojov�m k�dem. Pro u�ivatele,
+ kte�� vy�aduj� podporu ke konkr�tn�m p��pad�m, existuje placen�
+ podpora (FAQ sekce 1.6).
+
+ Cena
+ PosgreSQL lze voln� pou��vat pro nekomer�n� i komer�n� pou�it�.
+ M��ete do sv�ch produkt� p�idat n� k�d bez omezen�, respektive
+ v souladu s podm�nkami na�� licen�n� smlouvy (v duchu BSD
+ licence).
+
+ 1.15) Jak lze finan�n� pomoci PostgreSQL?
+
+ PosgreSQL m� prvot��dn� infrastrukturu od na�eho za��tku v roce 1996.
+ Vd���me za to Marku Fournierovi, kter� zalo�il a spravoval tuto
+ infrastrukturu n�kolik let.
+
+ Kvalitn� infrastruktura je velice d�le�it� pro ka�d� open source
+ projekt. P�edch�z� nedorozum�n�m, kter� velice zdr�uj� pokrok v
+ projektu.
+
+ Tato infrastruktura nen� lacin�. K jej�mu zaji�t�n� je t�eba st�le
+ hradit ur�it� m�s��n� a jednor�zov� ��stky. Pokud m�te Vy nebo Va�e
+ spole�nost pen�ze, kter� n�m m��ete darovat, obra�e se na
+ http://store.pgsql.com/shopping/ a darujte je.
+
+ A�koliv webov� str�nka zmi�uje PostgreSQL, Inc. vklady jsou ur�eny
+ pouze k podpo�e projektu PostgreSQL a nepodporuj� ��dnou existuj�c�
+ spole�nost. Pokud to vy�adujete, m��ete poslat kontrolu na na�i
+ kontaktn� adresu.
+ _________________________________________________________________
+
+ Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n�
+ advocacy site na http://advocacy.postgresql.org.
+
+ User client dotazy
+
+ 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL?
+
+ Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC.
+
+ PsqlODBC je ke sta�en� na
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
+
+ OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s
+ jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi
+ podporovan� platformy (Win, Mac, Unix, VMS).
+
+ Tento ovlada� je ur�en pro ty, kte�� vy�aduj� podporu komer�n�
+ kvality, nicm�n� freeware verze je dostupn� a funk�n�. Dotazy
+ zas�lejte na [email protected].
+
+ 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web?
+
+ P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch
+ str�nek najdete na http://www.webreview.com.
+
+ Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na
+ http://www.php.net.
+
+ Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl.
+
+ 2.3) Existuje grafick� rozhran� pro PostgreSQL?
+
+ Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess
+ (http://www.php.net), PgAdmin III (http://www.php.net), RHDB Admin
+ (http://sources.redhat.com/rhdb/) a Rekall (
+ http://www.thekompany.com/products/rekall/). D�le je�t� PhpPgAdmin
+ (http://phppgadmin.sourceforge.net/) co� je rozhran� PostgreSQL
+ zalo�en� na web technologii.
+
+ �pln�j�� seznam najdete na
+ http://techdocs.postgresql.org/guides/GUITools.
+
+ 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL?
+
+ V�t�ina programovac�ch jazyk� obsahuje rozhran� pro PostgreSQL.
+ Pod�vejte se do roz�i�uj�c�ch modul� Va�eho programovac�ho jazyka.
+
+ Distribuce PostgreSQL obsahuje tato rozhran�:
+ * C (libpq)
+ * Embbedded C (ecpg)
+ * Java (jdbc)
+ * Python (PyGreSQL)
+ * TCL (libpgtcl)
+
+ Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci
+ Drivers/Interfaces.
+ _________________________________________________________________
+
+ Administrativn� dotazy
+
+ 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?
+
+ Pou�ijte volbu --prefix p�i spu�t�n� configure.
+
+ 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo
+ core dump. Pro�?
+
+ D�vody mohou b�t r�zn�, ale nejprve zkontrolujte, zda V� syst�m
+ podporuje System V extensions. PostgreSQL vy�aduje v j�d�e podporu
+ sd�len� pam�ti a semafor�.
+
+ 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�?
+
+ Bu�to nem�te spr�vn� nakonfigurovanou sd�lenou pam� v j�d�e nebo
+ musite zv�t�it jej� velikost. Pot�ebn� velikost je z�visl� na
+ architektu�e a na tom, kolik pam�ov�ch buffer� a backend� m�te
+ povoleno pro postmastera. Pro v�t�inu syst�m� s p�eddefinovan�m po�tem
+ backend� a pam�ov�ch buffer� je minimum zhruba 1MB. V PostgreSQL
+ Administrator's Guide naleznete podrobn�j�� informace o sd�len� pam�ti
+ a semaforech.
+
+ 3.4) P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate.
+ Pro�?
+
+ Pokud dostane chybovou zpr�vu IpcSemaphoreCreate: semget failed (No
+ space left on device), pak va�e j�dro nem� dost voln�ch semafor�.
+ PostgreSQL vy�aduje jeden semafor pro ka�d� backend v pozad�. Do�asn�m
+ �e�en�m je start postmaster s limitem backend�. Pou�ijte p�ep�na� -N s
+ hodnotou men�� ne� 32. �pln�m �e�en�m je zv��en� hodnot SEMMNS a
+ SEMMNI jadra.
+
+ Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch
+ operac�.
+
+ Pokud se tato chyba vyskytuje je�t� n�kde jinde, mo�n� nem�te v�bec
+ nakonfigurov�ny semafory ve va�em j�d�e. V PostgreSQL Administrator's
+ Guide najdete podrobn�j�� popis po�adavk� na sd�lenou pam�t a
+ semafory.
+
+ 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic?
+
+ P�i v�choz�m nastaven� PostgreSQL odep�e p��stup z jin�ch stanic ne�
+ lok�ln� s pou�it�m UDP. P��stup z jin�ch stroj� nen� mo�n� dokud jej
+ nepovol�te nastaven�m tcpip_socket v postgresql.conf a ur�en�m zp�sobu
+ autentifikace v $PGDATA/pg_hba.conf.
+
+ 3.6) Jak ladit datab�zov� stroj na lep�� v�kon?
+
+ Ur�it� pomohou indexy. P��kaz EXPLAIN ANALYZE V�m umo�n� sledovat jak
+ PostgreSQL interpretuje V� dotaz a kter� indexy pou��v�.
+
+ P�i v�t�� d�vce INSERT� uva�ujte o n�hrad� p��kazem COPY. Ten je
+ mnohem rychlej�� ne�li samotn� INSERT. Ka�d� p��kaz mimo blok BEGIN
+ WORK/COMMIT se prov�d� ve vlastn� transakci. Zva�te, zda-li by se
+ nedalo n�kolik p��kaz� spojit do jedn� transakce. T�m se sn��� re�ie
+ na transakce. P�ed proveden�m rozs�hl�ch zm�n zru�te indexy, kter� po
+ dokon�en� zm�n op�t vytvo�te.
+
+ M�te n�kolik dal��ch mo�nost�, jak zlep�it v�kon. M��ete zak�zat
+ fsyn() p�i startu postmastera p�ep�na�i -o -F. Tyto p�ep�na�e zabr�n�
+ fsync(), tj. z�pisu na disk po ka�d� transakci.
+
+ M��ete zv��it velikost pam�ov�ch buffer� pou�it�ch backendy tj.
+ parametr -B postmasteru. Pokud ale tato hodnota bude p��li� velk�, tak
+ mo�n� nespust�te postmastera jeliko� dos�hnete limitu sd�len� pam�ti.
+ Ka�d� buffer m� 8K a implicitn� je 64 buffer�.
+
+ D�le m��ete pou��t p�ep�na� -S k zv��en� limitu pam�ti pro backendy na
+ do�asn� t��d�n�. Hodnota je m�n�na v kilobytech a v�choz� nastaven� je
+ 512, tj. 512K.
+
+ M��ete pou��t p��kaz CLUSTER, kter� uspo��d� fyzicky data v tabulk�ch
+ podle indexu. V�ce na manu�lov�ch str�nk�ch p��kazu CLUSTER.
+
+ 3.7) Jak� jsou mo�nosti lad�n�?
+
+ M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m.
+
+ Zaprv�, p�i p�ekladu pou�ijte p�ep�na� --enable-cassert, t�m se zapne
+ monitorov�n� a n�sledn� zastaven� aplikace, kdy� se proces v backendu
+ dostane do neo�ek�van�ho stavu.
+
+ Jak postmaster tak postgres m� n�kolik p�ep�na�� umo��uj�c�ch lad�n�.
+ Postmaster nastartujte tak, abyste si byli jisti, �e je standartn�
+ v�stup a standartn� chybov� v�stup p�esm�rov�n do souboru logu,
+ nap��klad:
+ cd /usr/local/pgsql
+ ./bin/postmaster > server.log 2>&1 &
+
+ T�m se vytvo�� log v adres��i PostgreSQL, Tento soubor obsahuje
+ u�ite�n� informace o probl�mech a chyb�ch vyskytl�ch se na serveru.
+ Postmaster m� p�ep�na� -d ur�uj�c�, jak podrobn� maj� b�t reportovan�
+ informace, tj. debug level. Pozor, p�i velk� hodnot� debug levelu
+ rychle roste velikost souboru logu.
+
+ Pokud neb�� postmaster, m��ete spustit backend PostgreSQL z p��kazov�
+ ��dky a napsat sv�j SQL dotaz p��mo v backendu (doporu�eno pouze pro
+ lad�n�). Dotaz je v tomto p��pad� ukon�en novou ��dkou, nikoliv
+ st�edn�kem. Pokud m�te aplikaci p�elo�enou s lad�c�mi symboly, m��ete
+ pou��t debbuger k monitorov�n� procesu. Pokud nen� backend spu�t�n
+ postmasterem, pak neb�� ve sv�m obvykl�m prost�ed� a tud�� n�kter�
+ probl�my dan� interakc� mezi backendy nemohou b�t nasimulov�ny.
+
+ Pokud b�� postmaster, spus�e psql v jednom okn� a pak si zjist�te PID
+ procesu postgres pou�it�ho psql. V debuggeru sep�ipojte k postgresql
+ PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql.
+ Pokud lad�te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus�e
+ psql. Tento p�ep�na� zp�sob� pauzu n sekund, tak�e budete m�t �as se
+ p�ipojit k procesu, a nastavit breakpointy a pokra�ovat v startup
+ posloupnosti.
+
+ Pro lad�n� a m��en� v�konu mohou b�t u�ite�n� p�ep�na�e -s, -A a -t
+ programu postgres (backend).
+
+ M��ete prov�st p�eklad s profilac�, tak abyste vid�li kolik �asu
+ zab�raj� jednotliv� funkce. Soubory s profily backend� jsou ulo�eny v
+ adres��i pgsql/data/base/dbname. Profil klienta pak v jeho aktu�ln�m
+ adres��i. Korektn� profilace v prost�ed� Linux po�aduje konfiguraci
+ syst�mu s parametrem -DLINUX_PROFILE.
+
+ 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?
+
+ Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch
+ backend�.
+
+ V�choz� hodnota je 32 backend�. Tuto hodnotu zv���te zastaven�m a
+ op�tovn�m spu�t�n�m postmastera s parametrem -N nebo �pravou
+ postgresql.conf.
+
+ P�i zv��en� hodnoty -N nad 32 mus�te zv��it hodnotu -B nad v�choz� 64,
+ -B mus� b�t minim�ln� dvakr�t v�t��, nebo je�t� l�pe v�ce.
+ Pravd�podobn� zjist�te, �e pro velk� po�et proces� backendu je nutn�
+ zv��it n�kter� parametry j�dra. Jsou to p�edev��m maxim�ln� velikost
+ sd�len� pam�ti SHMMAX, maxim�ln� po�et semaf�r� SEMMNS a SEMMNI,
+ maxim�ln� po�et proces� NPROC, maxim�ln� po�et proces� u�ivatele
+ MAXUPRC a maxim�ln� po�et otev�en�ch soubor� NFILE a NINODE. D�vod pro
+ omezen� maxim�ln�ho po�tu backend� je fakt, �e by mohlo doj�t k
+ vy�erp�n� zdroj� Va�eho syst�mu.
+
+ 3.9) K �emu slou�� adres�� pgsql_tmp?
+
+ Tento adres�� obsahuje do�asn� soubory vytvo�en� exekutorem dotaz�.
+ Nap��klad, kdy� je nutn� t��d�n� k zaji�t�n� ORDER BY a t��d�n� m�
+ v�t�� n�roky na prostor ne� povoluje parametr -S backendu, pak je
+ vytvo�en do�asn� soubor k ulo�en� extra �daj�.
+
+ Do�asn� soubory jsou obvykle maz�ny automaticky, ale m��e se st�t, �e
+ b�hem t��d�n� server spadne. Zastaven� a dal�� start postmastera
+ zajist� odstran�n� soubor� s t�chto adres���.
+
+ 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi
+ velk�mi verzemi PostgreSQL?
+
+ PostgreSQL se minim�ln� m�n� b�hem mal�ch verz�, tak�e nap�. p�i
+ upgrade z 7.2 na 7.2.1 nen� nutn� dump a load datab�ze. Ale v�ynamn�
+ verze �asto m�n� intern� form�t syst�mov�ch tabulek a datov�ch
+ soubor�. Tyto zm�ny jsou natolik rozs�hl�, �e nelze zajistit zp�tnou
+ kompatibilitu pro datov� soubory. Dump ulo�� data v obecn�m form�tu,
+ tak�e mohou b�t na�tena a pou��v�na v nov�m intern�m form�tu.
+ _________________________________________________________________
+
+ Provozn� dotazy
+
+ 4.1) ��m se li�� bin�rn� a norm�ln� kurzor?
+
+ Popis najdete v manu�lov� str�nce DECLARE
+
+ 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?
+
+ Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ...
+ LIMIT ...
+
+ I kdy� pot�ebujete z�skat pouze prvn�ch n�kolik ��dk�, je t�eba
+ zpracovat v�echna data, nap�. pokud dotaz m� ORDER BY. Pokud v�ak
+ existuje index, kter� odpov�d� ORDER BY, PostgreSQL m��e z�skat pouze
+ prvn�ch n ��dk� a ukon�it zpracov�n� dotazu.
+
+ K z�sk�n� n�hodn�ho ��dku pou�ijte:
+ SELECT col
+ FROM tab
+ ORDER BY random()
+ LIMIT 1;
+
+ 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?
+
+ P��kaz \dt v psql zobraz� seznam tabulek. �pln� seznam p��kaz� psql
+ dostanete p��kazem \?. Tak� se m��ete pod�vat do zdrojov�ch k�d� psql
+ do souboru pgsql/src/bin/psql/describe.c. Ten obsahuje SQL p��kazy,
+ kter� se pou��vaj� v psql metap��kazech. D�le m��ete spustit psql s
+ p�ep�na�em -E, kter� zp�sob� zobrazen� ka�d�ho dotazu, kter�
+ zpracov�n� metap��kazu vyvol�. PostgreSQL nab�z� SQLi INFORMATION
+ SCHEMA s tabulkami obsahuj�c� informace o datab�zi.
+
+ 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?
+
+ Po��naje verz� 7.3 m��ete pou��t p��kaz ALTER TABLE DROP COLUMN. Ve
+ star��ch verz�ch m��ete pou��t n�sleduj�c� postup:
+ BEGIN;
+ LOCK TABLE old_table;
+ SELECT ... -- mimo sloupec, kter� chceme odstranit
+ INTO TABLE new_table;
+ DROP TABLE old_table;
+ ALTER TABLE new_table RENAME TO old_table;
+ COMMIT;
+
+ Pro zm�nu typu sloupce je t�eba prov�st:
+ BEGIN;
+ ALTER TABLE tab ADD COLUMN new_col new_data_type;
+ UPDATE tab SET new_col = CAST(old_col AS new_data_type;
+ ALTER TABLE tab DROP COLUMN old_col;
+ COMMIT;
+
+ Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran�
+ nyn� ji� neplatn�mi ��dky.
+
+ 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?
+
+ PostgreSQL m� tato omezen�:
+ Maxim�ln� velikost datab�ze: neomezena (existuj� 32TB db)
+ Maxim�ln� velikost tabulky: 32 TB
+ Maxim�ln� velikost ��dky: 1.6 TB
+ Maxim�ln� velikost polo�ky 1 GB
+ Maxim�ln� po�et ��dk� v tabulce: neomezeno
+ Maxim�ln� po�et sloupc� v tabulce: 250-1600 podle typ�
+ Maxim�ln� po�et index� na tabulce: neomezeno
+
+ Ve skute�nosti nic nen� neomezeno, limitem b�v� v�dy dostupn� diskov�
+ pam� nebo velikost opera�n� pam�ti. Pokud m�te n�kterou z t�chto
+ hodnot neobvykle velkou, m��e doj�t ke sn��en� v�konu.
+
+ Maxim�ln� velikost tabulky je 32 TB a nevy�aduje podporu velk�ch
+ soubor� opera�n�m syst�mem. Velk� tabulky se ukl�daj� do n�kolika 1 GB
+ soubor� tak�e limity souborov�ho syst�mu nejsou podstatn�.
+
+ Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme
+ ze�ty�n�sobit nastaven�m velikosti bloku na 32K.
+
+ 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z
+
+ norm�ln�ho textov�ho souboru?
+
+ PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z
+ textov�ho souboru.
+
+ Nap��klad, uva�ujme soubor se 100 tis�ci ��dky obsahuj�c� na ka�d�
+ ��dce cel� ��slo a textov� popis. Text je v pr�m�ru dvacet byt�
+ dlouh�. Textov� soubor bude 2.8 MB dlouh�. Velikost datab�ze
+ obsahuj�c� odpov�daj�c� data bude zhruba 6.4 MB.
+ 36 byt�: hlavi�ka ��dku (p�ibli�n�)
+ 24 byt�: jedna celo��seln� polo�ka a jedna textov�
+ + 4 byty: ukazatel na str�nku k ntici
+ ------------------------------------------------------
+ 64 byt� na ��dek
+
+ Velikost datov� str�nky PostgreSQL je 8KB
+
+ 8192 byt� na str�nce
+ ---------------------- = 128 ��dek na str�nku
+ 64 byt� za ��dek
+
+ 100000 ��dek
+ -------------------- = 782 str�nek (zaokrouhleno nahoru)
+ 128 ��dek na str�nce
+
+ 782 * 8192 = 6, 406, 144 byt� (6.4 MB)
+
+ Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e
+ obsahuj� indexovan� data.
+
+ Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo
+ diskov�ho prostoru.
+
+ 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�?
+
+ psql m� sadu metap��kaz� k zobrazen� t�chto informac�. Jejich seznam
+ z�sk�te p��kazem \?. D�le se m��ete pod�vat na obsah syst�mov�ch
+ tabulek za��naj�c�ch pg_. Spu�t�n� psql s parametrem -l provede v�pis
+ n�zv� v�ech datab�z�.
+
+ Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c�
+ k syst�mov�m tabulk�mm.
+
+ 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?
+
+ Ka�d� dotaz nemus� nutn� pou��t existuj�c� indexy. Index se pou�ije
+ tehdy, kdy� je tabulka v�t�� ne� ur�it� minim�ln� velikost, a dotaz
+ vyb�r� pouze procentu�ln� malou ��st ��dk� tabulky. To proto, �e
+ n�hodn� p��stup k disku dan� �ten�m indexu m��e b�t pomalej�� ne�
+ line�rn� �ten� tabulky nebo sekven�n� �ten�.
+
+ PostgreSQL rozhoduje o pou�it� index� na z�klad� statistiky p��stup� k
+ tabulce. Tyto statistiky se shroma��uj� p��kazy VACUUM ANALYZE nebo
+ ANALYZE. D�ky statistik�m m� optimizer informaci o po�tu ��dek v
+ tabulce a m��e l�pe rozhodnout o pou�it� index�. Statistiky se uplatn�
+ p�i ur�en� optim�ln�ho po�ad� a metody spojen� tabulek. Statistiky by
+ se m�li aktualizovat opakovan�, tak jak se m�n� obsah tabulek.
+
+ Indexy nejsou oby�ejn� pou�ity pro set��d�n� nebo spojen� tabulek.
+ Sekven�n� zpracov�n� n�sledovan� explicitn�m t��d�n�m je oby�ejn�
+ rychlej�� ne� indexn� �ten� na velk� tabulce.
+
+ Jinak je tomu v p��pad� pou�it� LIMIT a ORDER BY, p�i kter�m se
+ v�t�inou index pou�ije, v�sledkem je pouze mal� ��st tabulky. Funkce
+ MAX() a MIN() nepou��vaj� indexy, ale je mo�n� tut� hodnotu z�skat:
+ SELECT col
+ FROM tab
+ ORDER BY col [ DESC ]
+ LIMIT 1;
+
+ Pokud si mysl�te, �e optimizer myln� zvolil sekven�n� prohled�v�n�
+ tabulky, pou�ijte p��kaz SET enable_seqscan TO 'off' a zkuste zda je
+ indexn� prohled�v�n� rychlej��.
+
+ P�i vyhled�v�n� na z�klad� vzoru jako je nap�. oper�tor LIKE nebo ~ se
+ indexy pou��j� pouze za ur�it�ch skute�nost�:
+ * za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj.
+ + vzor LIKE nesm� za��nat %
+ + ~ regul�rn� v�raz mus� za��nat ^
+ * vzor nesm� za��nat intervalem, nap�. [a-e]
+ * vyhled�van�, kter� nen� Case sensitiv jako je ILIKE nebo ~*
+ nepou��v� indexy. M��ete ale pou��t funkcion�ln� indexy, kter�
+ jsou pos�ny v sekci 4.12
+ * p�i inicializaci datab�ze (initdb) mus� b�t pou�ito C locale
+ (pozn. p�ekladatele - tud�� v na�ich podm�nk�ch nepou�iteln�,
+ nepracovalo by �esk� t��d�n�).
+
+ 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?
+
+ Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN.
+
+ 4.10) Co to je R-tree index?
+
+ R-tree index se pou��v� pro indexov�n� prostorov�ch dat. Hash index
+ nem��e obslou�it prohled�v�n� oblast�. B-tree index m��e ��dit
+ vyhled�n� oblast� v jedn� dimenzi. R-tree index m��e podporovat
+ hled�n� v multidimenzion�ln�ch datech. Pou�ijeme-li nap��klad R-tree
+ index na atributy typu point, pak syst�m m��e efektivn� odpov�d�t na
+ dotaz - vyber v�echny body uvnit� obd�ln�k�.
+
+ P�vodn� n�vrh R-tree je Guttman, A. "R-trees: A Dynamic Index
+ Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD
+ Int'l Conf on Mgmt of Data, 45-57
+
+ Tyto materi�ly naleznete v Stonebraker's "Readings in Database
+ Systems".
+
+ Vestav�n� R-tree m��e slou�it k indexaci polygon� a oblast�.
+ Teoreticky m��eme R-tree pou��t i pro v�ce dimenz� (jin� ne� 3D). Ve
+ skute�nosti ale takov� roz���en� R-tree vy�aduje trochu pr�ce a ve
+ sou�astnosti chyb� dokumentace jak na to.
+
+ 4.11) Co je Genetic Query Optimizer?
+
+ GEQO modul urychluje optimalizaci dotaz� p�i spojov�n� mno�stv�
+ tabulek metodou Genetick�ch algoritm� (GA). To umo��uje z�skat velk�ho
+ mno�stv� variant spojen� p�i ne�pln�m prohled�v�n�m.
+
+ 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, insensitiv?
+ Jak pou��t index pro case insensitive vyhled�v�n�?
+
+ Oper�tor ~ slou�� k porov�n� s regul�rn�m v�razem, jeho modifikace *~
+ p�edstavuje case insensitive vyhled�v�n�. Jedn� se o obdobu LIKE a
+ ILIKE.
+
+ Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme:
+ SELECT *
+ FROM tab
+ WHERE lower(col) = 'abc';
+
+ V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se
+ funkcion�ln� index, pokud jej vytvo��te:
+ CREATE INDEX tabindex ON tab (lower(col));
+
+ 4.13) Jak v dotazu detekovat, �e polo�ka je NULL?
+
+ Ur��te pomoc� IS NULL nebo IS NOT NULL
+
+ 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy?
+
Typ Intern� n�zev Pozn�mka
--------------------------------------------------------------------------
VARCHAR(n) varchar omezeno maxim�ln� d�lkou, bez dopln�n� mezerami
@@ -858,332 +826,292 @@ TEXT text bez horn�ho limitu na d�lku
BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL)
"char" char jeden znak
-S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch
-chybov�ch hl�en�ch.
-
-Prvn� �ty�i uveden� typy jsou tzv. varlena typy (tj. prvn� �ty�i byty na
-disku nesou �daj o d�lce, n�sleduj� samotn� data). Proto skute�n�
-pou�it� prostor je v�dy o n�co m�lo v�t�� ne� deklarovan� d�lka. Naopak,
-tyto datov� typy jsou komprimov�nty TOASTem, tak�e prostor na disku m��e
-b�t ni��� ne� je o�ek�v�no.
-
-VARCHAR(n) je vhodn� pro ukl�d�n� text� promm�n� d�lky s pevn�
-stanovenou maxim�ln� d�lkou. TEXT je pro �et�zce bez omezen� d�lky s
-maximem jeden gigabajt.
-
-CHAR(n) slou�� k ukl�d�n� �et�zc� stejn� d�lky. CHAR(n) dopln� pr�zdn�
-znaky do specifikovan� d�lky, zat�mco VARCHAR(n) ulo�� pouze p�edan�
-znaky. BYTEA je ur�eno pro ukl�d�n� bin�rn�ch dat, v�etn� NULL byte.
-V�echny zde popsan� typy maj� podobn� v�konnostn� charakteristiky.
-
-4.15.1 Jak vytvo�it serial/auto-increment pole?
------------------------------------------------
-
-PostgreSQL podporuje typ SERIAL. P�i jeho pou�it� se automaticky vytvo��
-SEQUENCE a index na sloupci (Pro vy��� verze to neplat� OV��IT).
-Nap��klad:
-
-CREATE TABLE person (
- id SERIAL,
- name TEXT
-);
-
-je automaticky p�evedeno do
-
-CREATE SEQUENCE person_id_seq;
-CREATE TABLE person (
- id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
- name TEXT
-);
-CREATE UNIQUE INDEX person_id_key ON person(id);
-
-Viz dokumentace create_sequence v manu�lov�ch str�nk�ch. D�le m��ete
-pou��t unik�tn� hodnotu OID ka�d�ho ��dku. Potom ale mus�te spou�t�t
-pg_dump s p�ep�na�em -o, tak aby z�staly zachov�ny hodnoty OID (u
-p��kazu copy COPY WITH OIDS).
-
-4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku?
---------------------------------------------------
-
-Jednou z mo�nost� je z�skat budouc� hodnotu SERIAL funkc� nextval p�ed
-samotn�m vlo�en�m a pak ji vlo�it explicitn�. Nap��klad v jak�msi
-pseudojazyku
-
-newid = execute("SELECT nextval('person_id_seq')");
-execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-
-M��ete pak je�t� pou��t hodnotu newid v dal��ch dotazech, nap�. jako
-hodnotu ciz�ho kl��e. N�zev automaticky vytvo�en� sekvence je
-tabulka_sloupec_seq.
-
-Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc�
-currval() po vlo�en�
-
-execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-new_id = execute("SELECT currval('person_id_seq')");
-
-Kone�n� m��ete pou��t OID hodnotu vr�cenou p��kazem INSERT, ale to je
-pravd�podobn� nejm�n� p�enositeln� �e�en�. V Perlu p�i pou�it� DBI
-modulu Edmunda Mergleho DBD:Pg oid hodnotu z�sk�me $sth->{pg_oid_status}
-po ka�d�m $sth->execute().
-
-4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s jin�mi u�ivateli?
-------------------------------------------------------------------------------------------
-
-Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em
-backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m.
-
-4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce?
-Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce?
-
-K zaji�t�n� efektivnosti soub�hu, jsou hodnoty posloupnosti, kdy� se o
-n� po��d�, a sekvence nen� zam�ena do ukon�en� transakce. To zp�sobuje
-d�ry v ��slov�n� ze zru�en�ch transakc�.
-
-4.16 Co to je OID? Co je to TID?
---------------------------------
-
-Ka�d� ��dek vytvo�en� v PostgreSQL z�sk� jedine�n� OID. V�echna OID
-generovan� b�hem inicializace datab�ze jsou men�� ne� 16384
-(include/access/transam.h). V�echna OID generovan� na po�adavek
-u�ivatele jsou rovna nebo vy��� t�to hodnot�. Norm�ln�, v�echna OID jsou
-jedine�n� nejen uvnit� tabulky nebo datab�ze, ale v r�mci cel� instalace
-PostgreSQL
-
-PostgreSQL pou��v� OID ve sv�m intern�m syst�mu tabulek k vytvo�en�
-relac�. Tato OID mohou b�t pou�ita k identifikaci konkr�tn�ho u�ivatele
-a pou�ita v spojen�. Pro OID hodnoty je doporu�en typ OID. Nad t�mto
-sloupcem m��ete vytvo�it index pro urychlen� p��stupu.
-
-OID jsou d�na v�em ��dk�m z centr�ln� oblasti a jsou pou�ita v ka�d�
-datab�zi. Pokud pot�ebujete zm�nit OID, nebo chcete zkop�rovat tabulku s
-p�vodn�mi OID, lze pou��t
-
-CREATE TABLE new_table(old_oid oid, mycol int);
-SELECT old_oid, mycol INTO new FROM old;
-COPY new TO '/tmp/pgtable';
-DELETE FROM new;
-COPY new WITH OIDS FROM '/tmp/pgtable';
-
-OID jsou ulo�ena jako 4bajtov� integer a p�ete�ou po �ty�ech miliard�ch.
-Nebylo hl�eno, �e by se tak n�kdy stalo, p�esto ale pl�nujeme odstranit
-tento limit d��v ne� se tak stane.
-
-TID se pou��vaj� i identifikaci fyzick�ch ��dk� s hodnotou bloku a
-offsetu. TIDs se m�n� modifikac� ��dk� (pou��v� se jako ukazatel indexu
-fyzick�ho ��dku).
-
-4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?
-------------------------------------------------------------
-
-V n�kter�ch zdrojov�ch k�dech nebo star�� dokumentaci se m��ete setkat s
-n�sleduj�c�mi v�razy, kter� maj� �ir�� v�znam. Zde je p��klad nekter�ch:
-
- - tabulka, relace, t��da (table, relation, class)
- - ��dek, z�znam, ntice (row, record, tuple)
- - sloupec, polo�ka, atribut (column, field, attribute)
- - vyhled�n�, v�b�r (retrieve, select)
-
- - n�hrada, �prava (replace, update)
- - p�id�n�, vkl�d�n� (append, insert)
- - OID, serial value (OID, serial value)
- - portal, kurzor (portal, cursor)
- - range variable, jm�no tabulky, alias tabulky (range
- variable, table name, table alias)
-
-seznam t�chto v�raz� m��ete nal�zt na
-http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/g
-lossary.html.
-
-4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in AllocSetAlloc()"?
------------------------------------------------------------------------------------
-
-Pravd�podobn� do�lo k vy�erp�n� virtu�ln� pam�i na Va�em syst�mu, nebo
-j�dro m� n�zk� limit pro ur�it� zdroje. Vyzkou�ejte p�ed startem
-posmatera
-
-ulimit -d 262144
-limit datasize 256m
-
-Z�le�� na Va�em shellu, zda budou tyto p��kazy �sp�n�, m�ly by zv��it
-limit datov�ho segmentu pro Va�e procesy a umo�nit tak dokon�en� dotazu.
-Tyto p��kazy se aplikuj� na aktu�ln� proces a v�echny synovsk� procesy
-vytvo�en� po proveden� p��kazu. Pokud m�te probl�my s SQL klientem
-proto�e backend vrac� p��li� mnoho dat, zkuste zv��it limity p�ed
-startem klienta.
-
-4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?
------------------------------------------------------
-
-V psql spus�te
-
-SELECT version();
-
-4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"?
--------------------------------------------------------------------------
-
-V�echny operace s velk�mi objekty - lo_open, lo_close, ... mus�te
-spou�t�t v transakci, tj. mezi p��kazy BEGIN WORK a COMMIT.
-
-PostgreSQL uvol�uje handle velk�ch objekt� p�i skon�en� transakce. Pokud
-budete pracovat s velk�mi objekty mimo transakci, pravd�podobn�
-dostanete toto chybov� hl�en�, proto�e handle ji� budou neplatn�.
-
-Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit
-off
-
-4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?
----------------------------------------------------------------
-
-Pou�ijte CURRENT_TIMESTAMP
+ S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch
+ chybov�ch hl�en�ch.
+
+ Prvn� �ty�i uveden� typy jsou tzv. varlena typy (tj. prvn� �ty�i byty
+ na disku nesou �daj o d�lce, n�sleduj� samotn� data). Proto skute�n�
+ pou�it� prostor je v�dy o n�co m�lo v�t�� ne� deklarovan� d�lka.
+ Naopak, tyto datov� typy jsou komprimov�nty TOASTem, tak�e prostor na
+ disku m��e b�t ni��� ne� je o�ek�v�no.
+
+ VARCHAR(n) je vhodn� pro ukl�d�n� text� promm�n� d�lky s pevn�
+ stanovenou maxim�ln� d�lkou. TEXT je pro �et�zce bez omezen� d�lky s
+ maximem jeden gigabajt.
+
+ CHAR(n) slou�� k ukl�d�n� �et�zc� stejn� d�lky. CHAR(n) dopln� pr�zdn�
+ znaky do specifikovan� d�lky, zat�mco VARCHAR(n) ulo�� pouze p�edan�
+ znaky. BYTEA je ur�eno pro ukl�d�n� bin�rn�ch dat, v�etn� NULL byte.
+ V�echny zde popsan� typy maj� podobn� v�konnostn� charakteristiky.
+
+ 4.15.1) Jak vytvo�it serial/auto-increment pole?
+
+ PostgreSQL podporuje typ SERIAL. P�i jeho pou�it� se automaticky
+ vytvo�� SEQUENCE. Nap��klad:
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+ );
+
+ je automaticky p�evedeno do
+ CREATE SEQUENCE person_id_seq;
+ CREATE TABLE person (
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+ name TEXT
+ );
+ CREATE UNIQUE INDEX person_id_key ON person(id);
+
+ Viz dokumentace create_sequence v manu�lov�ch str�nk�ch. D�le m��ete
+ pou��t unik�tn� hodnotu OID ka�d�ho ��dku. Potom ale mus�te spou�t�t
+ pg_dump s p�ep�na�em -o, tak aby z�staly zachov�ny hodnoty OID (u
+ p��kazu copy COPY WITH OIDS).
+
+ 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku?
+
+ Jednou z mo�nost� je z�skat budouc� hodnotu SERIAL funkc� nextval()
+ p�ed samotn�m vlo�en�m a pak ji vlo�it explicitn�. Nap��klad v jak�msi
+ pseudojazyku:
+ newid = execute("SELECT nextval('person_id_seq')");
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+
+ M��ete pak je�t� pou��t hodnotu newid v dal��ch dotazech, nap�. jako
+ hodnotu ciz�ho kl��e. N�zev automaticky vytvo�en� sekvence je
+ tabulka_sloupec_seq.
+
+ Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc�
+ currval() po vlo�en�:
+ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+ new_id = execute("SELECT currval('person_id_seq')");
+
+ Kone�n� m��ete pou��t OID hodnotu vr�cenou p��kazem INSERT, ale to je
+ pravd�podobn� nejm�n� p�enositeln� �e�en�. V Perlu p�i pou�it� DBI
+ modulu Edmunda Mergleho DBD:Pg oid hodnotu z�sk�me
+ $sth->{pg_oid_status} po ka�d�m $sth->execute().
+
+ 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s
+ jin�mi u�ivateli?
+
+ Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em
+ backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m.
+
+ 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? Pro�
+ vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce?
+
+ K zaji�t�n� efektivnosti soub�hu, jsou hodnoty posloupnosti, kdy� se o
+ n� po��d�, a sekvence nen� zam�ena do ukon�en� transakce. To zp�sobuje
+ d�ry v ��slov�n� ze zru�en�ch transakc�.
+
+ 4.16) Co to je OID? Co je to TID?
+
+ Ka�d� ��dek vytvo�en� v PostgreSQL z�sk� jedine�n� OID. V�echna OID
+ generovan� b�hem inicializace datab�ze jsou men�� ne� 16384
+ (include/access/transam.h). V�echna OID generovan� na po�adavek
+ u�ivatele jsou rovna nebo vy��� t�to hodnot�. Norm�ln�, v�echna OID
+ jsou jedine�n� nejen uvnit� tabulky nebo datab�ze, ale v r�mci cel�
+ instalace PostgreSQL
+
+ PostgreSQL pou��v� OID ve sv�m intern�m syst�mu tabulek k vytvo�en�
+ relac�. Tato OID mohou b�t pou�ita k identifikaci konkr�tn�ho
+ u�ivatele a pou�ita v spojen�. Pro OID hodnoty je doporu�en typ OID.
+ Nad t�mto sloupcem m��ete vytvo�it index pro urychlen� p��stupu.
+
+ OID jsou d�na v�em ��dk�m z centr�ln� oblasti a jsou pou�ita v ka�d�
+ datab�zi. Pokud pot�ebujete zm�nit OID, nebo chcete zkop�rovat tabulku
+ s p�vodn�mi OID, lze pou��t:
+ CREATE TABLE new_table(old_oid oid, mycol int);
+ SELECT old_oid, mycol INTO new FROM old;
+ COPY new TO '/tmp/pgtable';
+ DELETE FROM new;
+ COPY new WITH OIDS FROM '/tmp/pgtable';
+
+ OID jsou ulo�ena jako 4bajtov� integer a p�ete�ou po �ty�ech
+ miliard�ch. Nebylo hl�eno, �e by se tak n�kdy stalo, p�esto ale
+ pl�nujeme odstranit tento limit d��v ne� se tak stane.
+
+ TID se pou��vaj� i identifikaci fyzick�ch ��dk� s hodnotou bloku a
+ offsetu. TIDs se m�n� modifikac� ��dk� (pou��v� se jako ukazatel
+ indexu fyzick�ho ��dku).
+
+ 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?
+
+ V n�kter�ch zdrojov�ch k�dech nebo star�� dokumentaci se m��ete setkat
+ s n�sleduj�c�mi v�razy, kter� maj� �ir�� v�znam. Zde je p��klad
+ nekter�ch:
+ * tabulka, relace, t��da (table, relation, class)
+ * ��dek, z�znam, ntice (row, record, tuple)
+ * sloupec, polo�ka, atribut (column, field, attribute)
+ * vyhled�n�, v�b�r (retrieve, select)
+ * n�hrada, �prava (replace, update)
+ * p�id�n�, vkl�d�n� (append, insert)
+ * OID, serial value (OID, serial value)
+ * portal, kurzor (portal, cursor)
+ * range variable, jm�no tabulky, alias tabulky (range variable,
+ table name, table alias)
+
+ seznam t�chto v�raz� m��ete nal�zt na
+ http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
+ /glossary.html.
+
+ 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in
+ AllocSetAlloc()"?
+
+ Pravd�podobn� do�lo k vy�erp�n� virtu�ln� pam�i na Va�em syst�mu,
+ nebo j�dro m� n�zk� limit pro ur�it� zdroje. Vyzkou�ejte p�ed startem
+ posmatera
+ ulimit -d 262144
+ limit datasize 256m
+
+ Z�le�� na Va�em shellu, zda budou tyto p��kazy �sp�n�, m�ly by zv��it
+ limit datov�ho segmentu pro Va�e procesy a umo�nit tak dokon�en�
+ dotazu. Tyto p��kazy se aplikuj� na aktu�ln� proces a v�echny synovsk�
+ procesy vytvo�en� po proveden� p��kazu. Pokud m�te probl�my s SQL
+ klientem proto�e backend vrac� p��li� mnoho dat, zkuste zv��it limity
+ p�ed startem klienta.
+
+ 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?
+
+ V psql spus�te SELECT version();
+
+ 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"?
+
+ V�echny operace s velk�mi objekty - lo_open, lo_close, ... mus�te
+ spou�t�t v transakci, tj. mezi p��kazy BEGIN WORK a COMMIT.
+
+ PostgreSQL uvol�uje handle velk�ch objekt� p�i skon�en� transakce.
+ Pokud budete pracovat s velk�mi objekty mimo transakci, pravd�podobn�
+ dostanete toto chybov� hl�en�, proto�e handle ji� budou neplatn�.
+ Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit
+ off.
+
+ 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?
+
+ Pou�ijte CURRENT_TIMESTAMP:
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?
--------------------------------------------------------------
-
-Aktu�ln� spojujeme tabulky se sekven�n�m skenov�n�m v�sledku pro ka�d�
-��dek vn�j��ho dotazu. Pokud vno�en� dotaz m� pouze n�kolik ��dk� a
-vn�j�� dotaz vrac� hodn� ��dek, IN je rychl�. V jin�ch p��padech
-nahra�te IN EXISTS:
-
-SELECT * FROM tab
- WHERE col IN (SELECT subcol FROM subtab);
-
-takto
-
-SELECT * FROM tab
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-
-Pro urychlen� vytvo�ete index pro subcol. Tento v�konnostn� probl�m byl
-odstran�n ve verzi 7.4.
-
-4.23 Jak prov�st vn�j�� spojen� (outer join)?
----------------------------------------------
-
-PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy.
-Zde jsou dva p��klady:
-
-SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-
-nebo
-
-SELECT * FROM t1 LEFT OUTER JOIN USING (col);
-
-Tyto identick� dotazy napoj� t1.col na t2.col a je�t� p�id� nep�ipojen�
-��dky z t1 (kter� nemaj� obdoby v t2). Prav� spojen� (RIGHT JOIN) p�id�
-nep�ipojen� ��dky z t2. FULL JOIN vr�t� v�echny ��dky, v�etn�
-nep�ipojen�ch z tbulek t1 a t2. Kl��ov� slovo OUTER je nepovinn� a v�e
-se na LEFT, RIGHT a FULL join. B�n� spojen� se naz�v� INNER JOIN.
-
-V d��v�j��ch verz�ch se vn�j�� spojen� tabulek mohlo simulovat pomoc�
-UNION a NOT IN. Nap��klad pro spojen� tabulek tab1 a tab2, je
-n�sleduj�c� dotaz ekvivalentn� k vn�j��mu spojen� dvou tabulek:
-
-SELECT tab1.col2, tab2.col2 FROM tab1, tab2
- WHERE tab1.col1 = tab2.col1
-UNION ALL
-SELECT tab1.col2, NULL FROM tab1
- WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
-ORDER BY col1;
-
-4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi?
---------------------------------------------------
-
-PostgreSQL nenab�z� ��dn� zp�sob, jak se dot�zat do jin� datab�ze ne� do
-aktu�ln�. Dopln�k contrib/dblink umo��uje dotaz do ciz� datab�ze
-prost�ednictv�m funkce. Na stran� klienta nen� probl�m si otev��t v�ce
-simult�ln�ch p��stup� do r�zn�ch datab�z� a spojovat v�sledek na stran�
-klienta.
-
-4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�?
-------------------------------------------------
-
-V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z
-funkce, viz:
-http://techdocs.postgresql.org/guides/SetReturningFunctions.
-
-4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL funkc�ch?
---------------------------------------------------------------------------------
-
-P�elo�en� k�d PL/pgSQL funkce je ulo�en ve vyrovn�vac� pam�ti, tj.
-funkce je p�ekl�d�na pouze p�i zm�n� k�du, nikoliv p�ed ka�d�m vol�n�m
-funkce. Necht�n�m vedlej��m efektem je, �e vol�n� funkce sel�e, kdy� se
-funkce odkazuje na do�asnou tabulku, pokud tato tabulka byla od p�ekladu
-funkce zru�ena (a�koliv ji� byla znovu vytvo�ena a existuje). Jedin�m
-�e�en�m probl�mu je p��stup k do�asn� tabulce pomoc� EXECUTE, tj.
-dynamick� prov�d�n� dotazu. Tento p��kaz zajist� opakovan� p�eklad
-dotazu p�i ka�d�m vol�n� funkce.
-
-4.27 Jak� jsou mo�nosti replikace datab�z�?
--------------------------------------------
-
-Existuje n�kolik dostupn�ch �e�en� master/slave replikac�. Ty povoluj�
-modifikace master datab�ze a slave datab�z�m umo��uj� pouze �ten�. Na
-konci http://gborg.PostgreSQL.org/genpage?replication_research najdete
-jejich seznam. Na �e�en� multi-master replikaci se pracuje na
-http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
-
-4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�?
--------------------------------------------
- -
-
- contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL
- dotazech.
-
- -
-
- K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server
- p�elo�en s podporou ssl a p�ep�na� sslv postgresql.conf mus� b�t
- nastaven na hodnotu true. Klient mus� m�t vytvo�en z�znam hostssl v
- pg_hba.conf a tak� m�t povolen re�im ssl. Lze pou��t i jin�
- prost�edky, nejen nativn� podporu ssl v PostgreSQL, nap�. stunel a
- ssh.
-
- -
-
- Hesla u�ivatel� datab�ze jsou za�ifrov�na po��naje verz� 7.3. Ve
- star��ch verz�ch toto chov�n� muselo b�t vynuceno volbou
- PASSWORD_ENCRYPTION v postgresql.conf
-
- -
-
- Server m��e b�et na �ifrovan�m souborov�m syst�mu.
-
-------------------------------------------------------------------------
-
-Roz�i�ov�n� PostgreSQL
-======================
-
-5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?
-------------------------------------------------------------
-
-Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji funkci
-nejd��ve v n�jak� jednoduch� aplikaci.
-
-5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do PostgreSQL?
--------------------------------------------------------------------------------
-
-Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n�
-skon�� v podadres��i contrib.
-
-5.3 Jak napsat funkci v C vracej�c� ntici?
-------------------------------------------
-
-Funkce vracej�c� tabulky jsou podporovan� PostgreSQL 7.3 a vy��� pro
-jazyky C, PL/PgSQL a SQL. V�ce naleznete v The Programmer's Guide.
-P��klady t�chto funkc� pro C naleznete v contrib/tablefunc.
-
-5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci vzata v potaz. Pro�?
----------------------------------------------------------------------------------------------
-
-Makefile nem� informace o z�vislostech mezi hlavi�kov�mi soubory. Mus�te
-prov�st make clean a pak make. Pokud pou��v�te gcc, m��ete pou��t
-p�ep�na� --enable-depend p��kazu configure k automatick�mu �e�en�
-z�vislost� p�eklada�em.
-
-
-[1] http://developer.postgresql.org/todo.php
-[2] http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
-[3] http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide
-
+ 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?
+
+ D��v�j�� verze (p�ed 7.4) spojovali vno�en� dotazy k vn�j��m
+ sekven�n�m �ten�m v�sledku poddotazu pro ka�d� ��dek vn�j��ho dotazu.
+ Pokud poddotaz vr�til n�kolik m�lo ��dk� IN bylo rychl�. Pro ostatn�
+ p��pady je vhodn� nahradit IN EXISTS:
+ SELECT *
+ FROM tab
+ WHERE col IN (SELECT subcol FROM subtab);
+
+ na:
+ SELECT *
+ FROM tab
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+
+ Pro urychlen� vytvo�ete index pro subcol.
+
+ Ve verzi 7.4 a pozd�j��ch, IN pou��v� stejn� sofistikovanou techniku
+ spojov�n� tabulek jako ostatn� dotazy a je preferovan� p�ed EXISTS.
+
+ 4.23) Jak prov�st vn�j�� spojen� (outer join)?
+
+ PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy.
+ Zde jsou dva p��klady:
+ SELECT *
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+
+ nebo
+ SELECT *
+ FROM t1 LEFT OUTER JOIN USING (col);
+
+ Tyto identick� dotazy napoj� t1.col na t2.col a je�t� p�id�
+ nep�ipojen� ��dky z t1 (kter� nemaj� obdoby v t2). Prav� spojen�
+ (RIGHT JOIN) p�id� nep�ipojen� ��dky z t2. FULL JOIN vr�t� v�echny
+ ��dky, v�etn� nep�ipojen�ch z tbulek t1 a t2. Kl��ov� slovo OUTER je
+ nepovinn� a v�e se na LEFT, RIGHT a FULL join. B�n� spojen� se
+ naz�v� INNER JOIN.
+
+ V d��v�j��ch verz�ch se vn�j�� spojen� tabulek mohlo simulovat pomoc�
+ UNION a NOT IN. Nap��klad pro spojen� tabulek tab1 a tab2, je
+ n�sleduj�c� dotaz ekvivalentn� k vn�j��mu spojen� dvou tabulek:
+ SELECT tab1.col2, tab2.col2
+ FROM tab1, tab2
+ WHERE tab1.col1 = tab2.col1
+ UNION ALL
+ SELECT tab1.col2, NULL
+ FROM tab1
+ WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
+ ORDER BY col1;
+
+ 4.24) Jak prov�st dotaz z v�ce datab�z�?
+
+ PostgreSQL nepodporuje dotazy do jin� ne� aktu�ln� datab�ze.
+
+ contrib/dblink nab�z� funkce umo��uj�c� proveden� dotazu v jin�
+ datab�zi. Klient si m��e otev��t simult�ln� p�ipojen� do r�zn�ch db
+ bez omezen�.
+
+ 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�?
+
+ V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z
+ funkce, viz:
+ http://techdocs.postgresql.org/guides/SetReturningFunctions.
+
+ 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL
+ funkc�ch?
+
+ P�elo�en� k�d PL/pgSQL funkce je ulo�en ve vyrovn�vac� pam�ti, tj.
+ funkce je p�ekl�d�na pouze p�i zm�n� k�du, nikoliv p�ed ka�d�m vol�n�m
+ funkce. Necht�n�m vedlej��m efektem je, �e vol�n� funkce sel�e, kdy�
+ se funkce odkazuje na do�asnou tabulku, pokud tato tabulka byla od
+ p�ekladu funkce zru�ena (a�koliv ji� byla znovu vytvo�ena a existuje).
+ Jedin�m �e�en�m probl�mu je p��stup k do�asn� tabulce pomoc� EXECUTE,
+ tj. dynamick� prov�d�n� dotazu. Tento p��kaz zajist� opakovan� p�eklad
+ dotazu p�i ka�d�m vol�n� funkce.
+
+ 4.27) Jak� jsou mo�nosti replikace datab�z�?
+
+ Existuje n�kolik dostupn�ch �e�en� master/slave replikac�, tj umo��uj�
+ modifikace master datab�ze a slave datab�z�m umo��uj� pouze �ten�. Na
+ konci http://gborg.PostgreSQL.org/genpage?replication_research najdete
+ jejich seznam. Na �e�en� multi-master replikaci se pracuje na
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+
+ 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�?
+
+ * contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL
+ dotazech.
+ * K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server
+ p�elo�en s podporou ssl a p�ep�na� ssl v postgresql.conf mus� b�t
+ nastaven na hodnotu true. Klient mus� m�t vytvo�en z�znam hostssl
+ v pg_hba.conf a tak� m�t povolen re�im ssl. Lze pou��t i jin�
+ prost�edky, nejen nativn� podporu ssl v PostgreSQL, nap�. stunel a
+ ssh.
+ * Hesla u�ivatel� datab�ze jsou za�ifrov�na po��naje verz� 7.3. Ve
+ star��ch verz�ch toto chov�n� muselo b�t vynuceno volbou
+ PASSWORD_ENCRYPTION v postgresql.conf
+ * Server m��e b�et na �ifrovan�m souborov�m syst�mu.
+ _________________________________________________________________
+
+ Roz�i�ov�n� PostgreSQL
+
+ 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?
+
+ Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji
+ funkci nejd��ve v n�jak� jednoduch� aplikaci.
+
+ 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do
+ PostgreSQL?
+
+ Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n�
+ skon�� v podadres��i contrib.
+
+ 5.3) Jak napsat funkci v C vracej�c� ntici?
+
+ Funkce vracej�c� tabulky jsou podporovan� PostgreSQL 7.3 a vy��� pro
+ jazyky C, PL/PgSQL a SQL. V�ce naleznete v The Programmer's Guide.
+ P��klady t�chto funkc� pro C naleznete v contrib/tablefunc.
+
+ 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci
+ vzata v potaz. Pro�?
+
+ Makefile nem� informace o z�vislostech mezi hlavi�kov�mi soubory.
+ Mus�te prov�st make clean a pak make. Pokud pou��v�te gcc, m��ete
+ pou��t p�ep�na� --enable-depend p��kazu configure k automatick�mu
+ �e�en� z�vislost� p�eklada�em.