~ubuntu-branches/ubuntu/lucid/postgresql-8.4/lucid-proposed

« back to all changes in this revision

Viewing changes to doc/FAQ_czech

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-03-20 12:00:13 UTC
  • Revision ID: james.westby@ubuntu.com-20090320120013-hogj7egc5mjncc5g
Tags: upstream-8.4~0cvs20090328
Import upstream version 8.4~0cvs20090328

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
                          Frequently Asked Questions
 
3
                                       
 
4
   Casto kladen� dotazy (FAQ) PostgreSQL
 
5
   
 
6
   Posledn� aktualizace: 29. r�jna 2007 (aktualizov�no pro PostgreSQL
 
7
   8.3)
 
8
   
 
9
   Soucasn� spr�vce: Bruce Momjian (bruce@momjian.us)
 
10
   
 
11
   Prelozil: Pavel Stehule (pavel.stehule@gmail.com)
 
12
   
 
13
   Nejaktu�lnejs� verzi tohoto dokumentu naleznete na adrese
 
14
   http://www.postgresql.org/files/documentation/faqs/FAQ.html
 
15
   
 
16
   Odpovedi na ot�zky v�zan� na konkr�tn� platformy naleznete na adrese
 
17
   http://www.postgresql.org/docs/faq/.
 
18
     _________________________________________________________________
 
19
   
 
20
                               Obecn� ot�zky
 
21
                                      
 
22
   1.1) Co je to PostgreSQL? Jak� je spr�vn� v�slovnost slova PostgreSQL?
 
23
   1.2) Kdo r�d� v�voj PostgreSQL?
 
24
   1.3) Pod jakou licenc� je PostgreSQL?
 
25
   1.4) Na kter�ch platform�ch lze provozovat PostgreSQL?
 
26
   1.5) Kde mohu z�skat PostgreSQL?
 
27
   1.6) Jak� je posledn� verze?
 
28
   1.7) Kde mohu z�skat podporu?
 
29
   1.8) Jak a kam hl�sit chyby?
 
30
   1.9) Kde najdu informace o zn�m�ch chyb�ch nebo nepodporovan�ch
 
31
   vlastnostech?
 
32
   1.10) Jak� je dostupn� dokumentace?
 
33
   1.11) Jak se mohu naucit SQL?
 
34
   1.12) Jak se mohu pripojit k t�mu v�voj�ru?
 
35
   1.13) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
 
36
   1.14) Je PostgreSQL pripraven na aktu�ln� zav�den� letn�ho casu v
 
37
   nekter�ch zem�ch?
 
38
   
 
39
                        Dotazy na klientsk� rozhran�
 
40
                                      
 
41
   2.1) Kter� rozhran� jsou pouziteln� pro PostgreSQL?
 
42
   2.2) Jak� n�stroje lze pouz�t pro PostgreSQL a web?
 
43
   2.3) Existuje grafick� rozhran� pro PostgreSQL?
 
44
   
 
45
                           Administrativn� dotazy
 
46
                                      
 
47
   3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
 
48
   3.2) Jak nastavit pravidla pro pr�stup z jin�ch stanic?
 
49
   3.3) Jak vyladit datab�zi na vyss� v�kon?
 
50
   3.4) Jak� m�m lad�c� prostredky?
 
51
   3.5) Co znamen� "Sorry, too many clients", kdyz se zkous�m pripojit?
 
52
   3.6) Proc je nutn� dump a obnoven� (load) datab�ze pri upgradu
 
53
   PostgreSQL?
 
54
   3.7) Jak� hardware bych mel pouz�vat?
 
55
   
 
56
                              Provozn� dotazy
 
57
                                      
 
58
   4.1) Jak z�skat pouze prvn� r�dek dotazu? N�hodn� r�dek?
 
59
   4.2) Jak z�sk�m seznam tabulek, indexu, datab�z�, a definovan�ch
 
60
   uzivatelu. Mohu videt dotazy, kter� pouz�v� psql pro zobrazen� techto
 
61
   informac�?
 
62
   4.3) Jak zmenit datov� typ sloupce?
 
63
   4.4) Jak� je maxim�ln� velikost r�dku, tabulky a datab�ze?
 
64
   4.5) Kolik diskov�ho prostoru je potreba k ulozen� dat z norm�ln�ho
 
65
   textov�ho souboru?
 
66
   4.6) Muj dotaz je pomal� a nepouz�v� vytvoren� indexy. Proc?
 
67
   4.7) Jak zjist�m, jak se vyhodnocuje muj dotaz?
 
68
   4.8) Jak pouz�t case-(in)sensitive regul�rn� v�raz? Jak pouz�t index
 
69
   pro case insensitive hled�n�?
 
70
   4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit
 
71
   dva retezce, pokud mohou obsahovat NULL? Lze tr�dit podle toho, jestli
 
72
   je polozka NULL nebo ne?
 
73
   4.10) Jak� jsou rozd�ly mezi ruzn�mi znakov�mi typy?
 
74
   4.11.1) Jak vytvorit serial/auto-increment polozku?
 
75
   4.11.2) Jak z�skat hodnotu SERIAL po vlozen� r�dku?
 
76
   4.11.3) Nezpusob� currval() a nextval() probl�my ve v�ce uzivatelsk�m
 
77
   prostred�?
 
78
   4.11.4) Proc nen� vygenerovan� c�slo pouzito pri prerusen�
 
79
   transakce?Proc vznikaj� d�ry v c�slov�n� prostrednictv�m sekvence nebo
 
80
   typu SERIAL?
 
81
   4.12) Co to je OID? Co je to CTID?
 
82
   4.13) Co znamen� chybov� hl�sen� "ERROR: Memory exhausted in
 
83
   AllocSetAlloc()"?
 
84
   4.14) Jak zjist�m, kterou verzi PostgreSQL pouz�v�m?
 
85
   4.15) Jak vytvorit sloupec, kter� bude implicitne obsahovat aktu�ln�
 
86
   cas?
 
87
   4.16) Jak prov�st vnejs� spojen� (outer join)?
 
88
   4.17) Jak prov�st dotaz napr�c nekolika datab�zemi?
 
89
   4.18) Muze funkce vr�tit v�ce r�dku nebo sloupcu?
 
90
   4.19) Co je pr�cinou chyby "relation with OID xxxxx does not exist"?
 
91
   4.20) Jak� jsou moznosti replikace datab�z�?
 
92
   4.21) Proc v dotazu nejsou rozpozn�ny n�zvy m�ch tabulek nebo funkc�?
 
93
   Proc jsou velk� p�smena v n�zvech automaticky prevedena na mal�
 
94
   p�smena?
 
95
     _________________________________________________________________
 
96
   
 
97
                               Obecn� ot�zky
 
98
                                      
 
99
  1.1) Co je to PostgreSQL? Jak� je spr�vn� v�slovnost slova PostgreSQL?
 
100
  
 
101
   V�slovnost PostgreSQL je Post-Gres-Q-L , nebo zjednodusene Postgres .
 
102
   V rade jazyku je slovo PostgreSQL obt�zne vysloviteln�, proto se v
 
103
   hovoru casto pouz�v� zjednodusen� forma n�zvu. Pro ty, kter� by si
 
104
   r�di poslechli v�slovnost, je k dispozici audioz�znam v MP3 form�tu.
 
105
   
 
106
   PostgreSQL je relacn� datab�ze s nekter�mi objektov�mi rysy, kter� m�
 
107
   moznosti tradicn�ch komercn�ch datab�zov�ch syst�mu s nekolika
 
108
   rozs�ren�mi, kter� lze naj�t v DBMS syst�mech pr�st� generace.
 
109
   Pouz�v�n� PostgreSQL nen� omezen� a vesker� zdrojov� k�dy jsou volne
 
110
   dostupn�.
 
111
   
 
112
   Za v�vojem PostgreSQL je mezin�rodn� skupina nez�visl�ch v�voj�ru
 
113
   navz�jem komunikuj�c�ch prostrednictv�m internetu. Tento projekt nen�
 
114
   r�zen z�dnou obchodn� organizac�. Pokud se chcete pridat k projektu,
 
115
   prectete si v�voj�rsk� FAQ na adrese
 
116
   http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html .
 
117
   
 
118
  1.2) Kdo r�d� v�voj PostgreSQL?
 
119
  
 
120
   Pokud budete hledat organizaci r�d�c� v�voj PostgreSQL, budete
 
121
   zklam�ni. Nic takov�ho neexistuje. Existuj� pouze "core" a CVS skupiny
 
122
   uzivatelu, ale ty existuj� v�ce z administr�torsk�ch duvodu nez z
 
123
   organizacn�ch. Projekt je smerov�n komunitou v�voj�ru a uzivatelu, ke
 
124
   kter� se kdokoliv muze pripojit. Jedin� co potrebuje, je prihl�sit se
 
125
   do elektronick� konference. V�ce ve v�voj�rsk�m FAQ.
 
126
   
 
127
  1.3) Pod jakou licenc� je PostgreSQL?
 
128
  
 
129
   PostgreSQL je predmetem n�sleduj�c�ch autorsk�ch pr�v:
 
130
   
 
131
   D�lc� Copyright (c) 1996-2009, PostgreSQL Global Development Group
 
132
   D�lc� Copyright (c) 1994-6, Regents of the University of California
 
133
   
 
134
   Udeluje se opr�vnen� k uzit�, rozmnozov�n�, prov�den� �prav a
 
135
   rozsirov�n� tohoto softwaru a dokumentace k nemu, pro jak�koli �cely,
 
136
   bez licencn�ho poplatku a bez p�semn� licencn� smlouvy, za podm�nky,
 
137
   ze na vsech jeho kopi�ch je uvedeno ozn�men� o v�se uveden�ch pr�vech,
 
138
   jakoz i obsah tohoto a dvou n�sleduj�c�ch odstavcu.
 
139
   
 
140
   THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V Z�DN�M
 
141
   PR�PADE ODPOVEDNA Z�DN� TRET� OSOBE ZA PR�MOU, NEPR�MOU, ZVL�STN�,
 
142
   NAHODILOU NEBO V�SLEDNOU SKODU, VCETNE USL�HO ZISKU, ZPUSOBENOU UZIT�M
 
143
   TOHOTO SOFTWARU A DOKUMENTACE K NEMU, A TO I V PR�PADE, ZE THE
 
144
   UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MOZNOSTI VZNIKU TAKOV�
 
145
   SKODY.
 
146
   
 
147
   THE UNIVERSITY OF CALIFORNIA ZEJM�NA NEPOSKYTUJE JAK�KOLI Z�RUKY, A TO
 
148
   NEJEN Z�RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V�ROBKU KE
 
149
   SPECIFICK�M �CELUM. N�ZE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A
 
150
   LEZ�" A THE UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO
 
151
   �DRZBU, PODPORU, AKTUALIZACI, VYLEPSEN� NEBO MODIFIKACI.
 
152
   
 
153
   V�se uveden� je BSD licence, bezn� licence otevren�ho zdroje. Nen� zde
 
154
   z�dn� omezen� ohledne uzit� k�du zdroje. Jsme s t�m spokojeni a nem�me
 
155
   v �myslu na t�to skutecnosti cokoli menit.
 
156
   
 
157
  1.4) Na kter�ch platform�ch lze provozovat PostgreSQL?
 
158
  
 
159
   Strucne receno, PostgreSQL bez� na vsech modern�ch unixov�ch
 
160
   syst�mech. Seznam tech, u kter�ch probehlo testov�n�, naleznete v
 
161
   instalacn�ch instrukc�ch.
 
162
   
 
163
   PostreSQL tak� bez� nativne na vsech Microsof Windows syst�mech
 
164
   odvozen�ch z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP
 
165
   a Windows2003. Instalacn� bal�cek naleznete na adrese
 
166
   http://pgfoundry.org/projects/pginstaller. Na stars�ch syst�mech s
 
167
   jeste MS-DOS j�drem lze spustit PostgreSQL s emulacn�m programem
 
168
   Cygwin.
 
169
   
 
170
   D�le existuje port pro Novell Netware 6 port na adrese
 
171
   http://forge.novell.com, a pro OS/2 verze (eComStation) na adrese
 
172
   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
 
173
   SQL&stype=all&sort=type&dir=%2F .
 
174
   
 
175
  1.5) Kde mohu z�skat PostgreSQL?
 
176
  
 
177
   Pomoc� webov�ho klienta z adresy http://www.postgresql.org/ftp/ nebo
 
178
   klienta ftp z adresy ftp://ftp.postgresql.org/pub/.
 
179
   
 
180
  1.6) Jak� je posledn� verze?
 
181
  
 
182
   Nejnovejs� verz� PostgreSQL je verze 8.2.5
 
183
   
 
184
   V pl�nu je uvolnovat kazdorocne jednu velkou verzi a kazd�ch nekolik
 
185
   mes�cu mal� verze.
 
186
   
 
187
  1.7) Kde mohu z�skat podporu?
 
188
  
 
189
   Nejcastejs� forma podpory uzivatelum PostgreSQL komunitou je
 
190
   prostrednictv�m e-mailu. Na nasem webov�m serveru naleznete odkaz na
 
191
   str�nky,kde se muzete prihl�sit do elektronick� konference. Pro
 
192
   zac�tek jsou doporucen� konference general nebo bugs.
 
193
   
 
194
   Dals� cestou je IRC kan�l #postgresql na Freenode (irc.freenode.net).
 
195
   K pripojen� pouzijte Unixov� pr�kaz irc -x '#postgresql' "$USER"
 
196
   irc.freenode.net nebo jak�koholiv jin�ho IRC klienta. V t�to s�ti
 
197
   existuje jeste spanelsk� (#postgresql-es) a francouzsk�
 
198
   (#postgresqlfr) verze. Dals� PostgreSQL kan�l naleznete na EFNet.
 
199
   
 
200
   Seznam spolecnost� poskytuj�c� komercn� podporu naleznete na adrese
 
201
   http://techdocs.postgresql.org/companies.php.
 
202
   
 
203
  1.8) Jak a kam hl�sit chyby?
 
204
  
 
205
   Vyplnte formul�r na adrese
 
206
   http://www.postgresql.org/support/submitbug. Na nasem ftp serveru
 
207
   ftp://ftp.postgresql.org/pub/ si overte, ze pouz�v�te aktu�ln� verzi
 
208
   PostreSQL.
 
209
   
 
210
   Chyby reportovan� prostrednictv�m chybov�ho formul�re nebo zasl�n�m
 
211
   mailu do PostgreSQL konference obvykle generuje n�sleduj�c� odezvu:
 
212
     * Nejedn� se o chybu, a proc
 
213
     * Jedn� se o zn�mou chybu, kter� je jiz v seznamu �kolu TODO
 
214
     * Tato chyba byla opravena v aktu�ln� verzi
 
215
     * Tato chyba byla jiz opravena ve verzi, kter� zat�m nebyla
 
216
       ofici�lne uvolnena
 
217
     * Pozadavek na dals� doplnuj�c� informace:
 
218
          + Operacn� syst�m
 
219
          + Verze PostgreSQL
 
220
          + Test reprodukuj�c� chybu
 
221
          + Lad�c� informace
 
222
          + Backtrace v�stup debuggeru
 
223
     * Jedn� se o zat�m nezjistenou chybu, pak muzete cekat
 
224
          + Z�platu odstranuj�c� chybu, kter� bude vlozena do dals� velk�
 
225
            nebo mal� verze
 
226
          + Informaci, ze se jedn� o chybu, kterou nelze okamzite resit a
 
227
            je proto prid�na do TODO
 
228
       
 
229
  1.9) Kde najdu informace o zn�m�ch chyb�ch nebo nepodporovan�ch vlastnostech?
 
230
  
 
231
   PostgreSQL podporuje rozs�renou podmnozinu SQL:2003. V nasem TODO
 
232
   naleznete seznam zn�m�ch chyb, chybej�c�ch vlastnost�, a pl�ny do
 
233
   budoucna.
 
234
   
 
235
   Odezva na pozadavek na novou vlastnost PostgreSQL je obvykle:
 
236
     * Pozadavek je jiz v TODO
 
237
     * Pozadovan� funkce nen� chten� protoze
 
238
          + Duplikuje jiz existuj�c� funkci, kter� respektuje SQL
 
239
            standard
 
240
          + Implementac� funkce by se pr�lis zkomplikoval k�d bez
 
241
            relevantn�ho pr�nosu
 
242
          + Funkce by mohla b�t nebezpecn� nebo nespolehliv�
 
243
     * Pozadavek je prid�n do TODO
 
244
       
 
245
   PostgreSQL nepoz�v� syst�m pro sledov�n� chyb, protoze jsme zjistili,
 
246
   ze je efektivnejs� pr�mo reagovat na maily a udrzovat aktu�ln� TODO. V
 
247
   praxi je snaha o co nejrychlejs� resen� chyb, a chyby, kter� by se
 
248
   mohly projevit u mnoha uzivatelu jsou opravov�ny velice rychle. Jedin�
 
249
   m�sto, kde lze dohledat vsechny zmeny, rozs�ren� a opravy v PostgreSQL
 
250
   je CVS log. Pozn�mky k verzi "Release notes" nezachycuj� vsechny
 
251
   zmeny, k nemz doslo.
 
252
   
 
253
  1.10) Jak� je dostupn� dokumentace?
 
254
  
 
255
   PostgreSQL obsahuje vynikaj�c� dokumentaci zahrnuj�c� manu�l,
 
256
   manu�lov� str�nky a testovac� pr�klady. Pod�vejte se do adres�re /doc.
 
257
   Manu�l je pr�stupn� online na http://www.postgresql.org/docs.
 
258
   
 
259
   K dispozici jsou zdarma dve online knihy na adres�ch
 
260
   http://www.postgresql.org/docs/books/awbook.html a
 
261
   http://www.commandprompt.com/ppbook/. Dals� literaturu lze zakoupit.
 
262
   Nejpopul�rnejs� je od Kerryho Douglase. Seznam dostupn� literatury je
 
263
   na http://techdocs.postgresql.org/techdocs/bookreviews.php. Jeste je
 
264
   kolekce technicky orientovan�ch cl�nku tematicky spojen�ch s
 
265
   PostgreSQL na adrese http://techdocs.postgresql.org/.
 
266
   
 
267
   R�dkov� klient psql m� \d pr�kazy pro zobrazen� informac� o typech,
 
268
   oper�torech, funkc�ch, agregacn�ch funkc�, atd. Pouzijte \? pro
 
269
   zobrazen� dostupn�ch pr�kazu.
 
270
   
 
271
   Dals� dokumentaci najdete na nasem webu.
 
272
   
 
273
  1.11) Jak se mohu naucit SQL?
 
274
  
 
275
   Pod�vejte se do v�se uveden� dokumentace. Dals� online knihou je
 
276
   "Teach Yourself SQL in 21 Days, Second Edition" na adrese
 
277
   http://members.tripod.com/er4ebus/sql/index.htm. Mnoho nasich
 
278
   uzivatelu doporucuje knihu The Practical SQL Handbook, Bowman, Judith
 
279
   S., et al., Addison-Wesley. Dals� The Complete Reference SQL, Groff et
 
280
   al., McGraw-Hill.
 
281
   
 
282
   Dals� online tutori�ly jsou dostupn� na adres�ch:
 
283
     * http://www.intermedia.net/support/sql/sqltut.shtm
 
284
     * http://sqlcourse.com
 
285
     * http://www.w3schools.com/sql/default.asp
 
286
     * http://mysite.verizon.net/Graeme_Birchall/id1.html
 
287
       
 
288
  1.12) Jak se mohu pripojit k t�mu v�voj�ru?
 
289
  
 
290
   Prostudujte si Developer's FAQ.
 
291
   
 
292
  1.13) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
 
293
  
 
294
   Software muzeme porovn�vat z nekolika ruzn�ch pohledu: vlastnosti,
 
295
   v�kon, spolehlivost, podpora a cena.
 
296
   
 
297
    Vlastnosti
 
298
    
 
299
   PostgreSQL nab�z� vetsinu funkc� funkcionality velk�ch komercn�ch DBMS
 
300
   syst�mu jako jsou: transakce, vnoren� dotazy, spouste, referencn�
 
301
   integrita a sofistikovan� syst�m zamyk�n�. Poskytujeme urcit� funkce,
 
302
   kter� ostatn� syst�my bezne nepodporuj�. Napr. uzivatelem definovan�
 
303
   typy, dedicnost, pravidla (rules), a MVCC architekturu.
 
304
   
 
305
    V�kon
 
306
    
 
307
   V�kon PostgreSQL je srovnateln� s ostatn�mi komercn�mi nebo Open
 
308
   Source datab�zemi. V nekter�ch pr�padech je rychlejs�, jindy
 
309
   pomalejs�. N�s v�kon je obvykle +/-10% vuci ostatn�m datab�z�m.
 
310
   
 
311
    Spolehlivost
 
312
    
 
313
   Uvedomujeme si, ze datab�ze mus� b�t stoprocentne spolehliv�, jinak je
 
314
   nepouziteln�. Snaz�me se, aby kazd� verze byla dobre otestov�na a
 
315
   obsahovala minimum chyb. Kazd� verze je minim�lne nekolik mes�cu v
 
316
   beta testovac�m rezimu. Do produkcn�ho rezimu se dostane, az kdyz
 
317
   nedoch�z� k dals�m zmen�m nebo oprav�m. Ver�me, ze jsem v�ce nez
 
318
   srovnateln� s ostatn�mi datab�zemi v t�to oblasti.
 
319
   
 
320
    Podpora
 
321
    
 
322
   Na nasich internetov�ch konferenc�ch se setk�v� velk� skupina v�voj�ru
 
323
   a uzivatelu pri resen� vyskytuj�c�ch se probl�mu. Nase internetov�
 
324
   konference umoznuj� kontakt velk� skupiny v�voj�ru a uzivatelu.
 
325
   Nemuzeme garantovat opravu chyby, ale komercn� DBMSs tak� vzdy
 
326
   negarantuj� resen� probl�mu. Ver�me ale, ze d�ky pr�m�mu kontaktu na
 
327
   v�voj�re, nasi uzivatelskou komunitu, manu�lum, a dostupn�m zdrojov�m
 
328
   k�dum m�me leps� podporu nez ostatn� DBMSs. Pro ty, kter� preferuj�
 
329
   komercn� "per-incident" podporu, existuje spolecnost�, kter� ji
 
330
   nab�zej� (FAQ sekce 1.7.)
 
331
   
 
332
    Cena
 
333
    
 
334
   PostgreSQL lze pouz�vat bezplatne (a to i pro komercn� pouzit�). Tak�
 
335
   muzete neomezene pouz�vat n�s k�d ve sv�ch produktech s v�jimkami
 
336
   specifikovan�mi v nas� licenci (preb�r�me BSD licenci).
 
337
   
 
338
  1.14) Je PostgreSQL pripraven na aktu�ln� zav�den� letn�ho casu v nekter�ch
 
339
  zem�ch?
 
340
  
 
341
   Poc�naje verz� 8.0.[4+] podporuje PostgreSQL letn� cas tak� pro USA.
 
342
   Podpora letn�ho casu (daylight saving time) pro Kanadu a Z�padn�
 
343
   Austr�lii je obsazena ve verz�ch 8.0.[10+] a 8.1.[6+] a vsech
 
344
   n�sleduj�c�ch verz�ch. Stars� verze pouz�valy syst�movou datab�zi
 
345
   casov�ch z�n obsahuj�c�, krome jin�ho, informaci o tom, zda se pro
 
346
   danou casovou z�nu rozlisuje mezi letn�m a zimn�m casem.
 
347
     _________________________________________________________________
 
348
   
 
349
                        Dotazy na klientsk� rozhran�
 
350
                                      
 
351
  2.1) Kter� rozhran� jsou pouziteln� pro PostgreSQL?
 
352
  
 
353
   PostgreSQL se distribuuje pouze s rozhran�m pro jazyk C a embedded C.
 
354
   Vsechna dals� rozhran� predstavuj� nez�visl� projekty, kter� je treba
 
355
   st�hnout z internetu samostatne. Osamostatnen� techto projektu
 
356
   umoznuje nez�vislost v�vojov�ch t�mu a moznost vyd�vat nov� verze bez
 
357
   ohledu na vyd�n� nov� verze PostgreSQL.
 
358
   
 
359
   Nekter� programovac� jazyky jako je napr. PHP obsahuj� rozhran� pro
 
360
   PostgreSQL. Rozhran� pro jazyky jako je Perl, Tcl, Python a mnoho
 
361
   dals�ch jsou dostupn� na adrese: http://gborg.postgresql.org v sekci
 
362
   Drivers/Interfaces.
 
363
   
 
364
  2.2) Jak� n�stroje lze pouz�t pro PostgreSQL a web?
 
365
  
 
366
   Dobr�m �vodem do problematiky datab�z� v prostred� webov�ch str�nek
 
367
   muze b�t web http://www.webreview.com.
 
368
   
 
369
   PHP (http://www.php.net) je vynikaj�c�m rozhran�m pro tvorbu webu.
 
370
   
 
371
   Pro slozitejs� �lohy se casto pouz�v� Perl a jeho BDB:Pg rozhran� s
 
372
   podporou CGI - CGI.pm nebo mod_perl(u).
 
373
   
 
374
  2.3) Existuje grafick� rozhran� pro PostgreSQL?
 
375
  
 
376
   K dispozici je rada grafick�ch n�stroju podporuj�c�ch PostgreSQL a to
 
377
   od komercn�ch nebo open source v�voj�ru. Podrobn� seznam naleznete na
 
378
   adrese http://www.postgresql.org/docs/techdocs.54.
 
379
     _________________________________________________________________
 
380
   
 
381
                           Administrativn� dotazy
 
382
                                      
 
383
  3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
 
384
  
 
385
   Pri spousten� configure nastavte parametr --prefix
 
386
   
 
387
  3.2) Jak nastavit pravidla pro pr�stup z jin�ch stanic?
 
388
  
 
389
   Ve v�choz� konfiguraci, PostgreSQL umoznuje pouze pripojen� z
 
390
   lok�ln�ho uzivatele prostrednictv�m Unix domain sockets nebo TCP/IP
 
391
   spojen�. Bez modifikace listen_addresses v souboru postgresql.conf, a
 
392
   povolen� adresy v souboru $PGDATA/pg_hba.conf se nelze pripojit k
 
393
   PostgreSQL z ostatn�ch stanic. Zmena v�se zm�nen�ch parametru vyzaduje
 
394
   restart datab�zov�ho serveru.
 
395
   
 
396
  3.3) Jak vyladit datab�zi na vyss� v�kon?
 
397
  
 
398
   V�kon syst�mu muzete ovlivnit ve trech oblastech:
 
399
   
 
400
    Zmeny dotazu
 
401
    
 
402
     * Pouzit�m indexu vcetne c�stecn�ch a funkcion�ln�ch
 
403
     * Pouzit�m COPY m�sto opakovan�ch INSERTu
 
404
     * Sloucen�m mnoha SQL pr�kazu do jedn� transakce sn�zen�m rezie na
 
405
       commit
 
406
     * Pouz�v�n�m CLUSTERU, pokud nac�t�te vets� pocet r�dek podle indexu
 
407
     * Pouzit�m klauzule LIMIT v poddotazech
 
408
     * Pouzit�m predpripraven�ch dotazu
 
409
     * Pouz�v�n�m ANALYZE. Tento pr�kaz aktualizuje statistiky, kter� se
 
410
       pouz�vaj� pri optimalizaci dotazu
 
411
     * Pravideln� pouzit� VACUUM nebo pouz�v�n� pg_autovacuum
 
412
     * Odstranen�m indexu pred rozs�hl�mi zmenami v datech
 
413
       
 
414
    Konfigurace serveru
 
415
    
 
416
   Urcit� parametry v souboru postgresql.conf maj� vliv na v�kon serveru.
 
417
   Detaily naleznete v pr�rucce Administr�tora v Server Run-time
 
418
   Environment/Run-time Configuration. Dals� koment�re naleznete v
 
419
   http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.ht
 
420
   ml a http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
 
421
   
 
422
    V�ber hardware
 
423
    
 
424
   Vliv hardware na v�kon serveru je pops�n v dokumentech
 
425
   http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html
 
426
   a http://www.powerpostgresql.com/PerfList/.
 
427
   
 
428
  3.4) Jak� m�m lad�c� prostredky?
 
429
  
 
430
   Nastaven�m log_* promenn�ch v konfiguraci serveru si vynut�te logov�n�
 
431
   dotazu a procesn�ch statistik, kter� V�m mohou pomoci pri laden� a
 
432
   optimalizaci v�konu.
 
433
   
 
434
  3.5) Co znamen� "Sorry, too many clients", kdyz se zkous�m pripojit?
 
435
  
 
436
   Prekrocil jste v�choz� limit, kter� je 100 soucasne pripojen�ch
 
437
   uzivatelu. V konfiguraci serveru v postgresql.conf tuto hodnotu muzete
 
438
   zvetsit zmenou hodnoty max_connection. Nezapomente restartovat server.
 
439
   
 
440
  3.6) Proc je nutn� dump a obnoven� (load) datab�ze pri upgradu PostgreSQL?
 
441
  
 
442
   Zpusob c�slov�n� je pops�n v dokumentaci na
 
443
   http://www.postgresql.org/support/versioning. Instrukce k proveden�
 
444
   migrace na vyss� verzi jsou takt�z v dokumentaci na adrese
 
445
   http://www.postgresql.org/docs/current/static/install-upgrading.html.
 
446
   
 
447
  3.7) Jak� hardware bych mel pouz�vat?
 
448
  
 
449
   Jelikoz PC jsou vetsinou kompatibiln�, lid� maj� tendence verit, ze
 
450
   vsechna PC jsou stejne kvalitn�. Coz nen� pravda. Pameti ECC, SCSI a
 
451
   kvalitn� z�kladn� desky jsou mnohem spolehlivejs� a v�konnejs� nez
 
452
   lacinejs� hardware. PostgreSQL pobez� na vetsine hardwaru, nicm�ne
 
453
   pokud je pro V�s spolehlivost a v�kon syst�mu dulezit�, je dobr�
 
454
   venovat cas nalezen� vhodn� hardwarov� konfigurace. Na nasich
 
455
   elektronick�ch konferenc�ch muzete diskutovat o vhodn�ch konfigurac�ch
 
456
   a znack�ch.
 
457
     _________________________________________________________________
 
458
   
 
459
                              Provozn� dotazy
 
460
                                      
 
461
  4.1) Jak z�skat pouze prvn� r�dek dotazu? N�hodn� r�dek?
 
462
  
 
463
   Pokud potrebujete pouze nekolik r�dku a pokud v�te kolik, pouzijte
 
464
   SELECT LIMIT. Pokud bude mozn� pouz�t index shoduj�c� se s ORDER BY,
 
465
   je mozn�, ze se nebude prov�det cel� dotaz. Pokud nezn�te pocet
 
466
   z�znamu, pouzijte kurzor a pr�kaz FETCH.
 
467
   
 
468
   Pro v�ber n�hodn�ho r�dku pouzijte pr�kaz ve tvaru:
 
469
SELECT col
 
470
FROM tab
 
471
ORDER BY random()
 
472
LIMIT 1;
 
473
 
 
474
  4.2) Jak z�sk�m seznam tabulek, indexu, datab�z�, a definovan�ch uzivatelu.
 
475
  Mohu videt dotazy, kter� pouz�v� psql pro zobrazen� techto informac�?
 
476
  
 
477
   V psql pr�kazem \dt z�sk�te seznam tabulek. �pln� seznam pr�kazu psql
 
478
   z�sk�te pr�kazem \?. Alternativne si muzete prostudovat zdrojov� k�d
 
479
   psql - soubor pgsql/src/bin/psql/describe.c, kter� obsahuje SQL
 
480
   pr�kazy, kter� jsou generov�ny pro z�sk�n� v�stupu psql "backslash"
 
481
   pr�kazu. Tak� muzete nastartovat psql s parametrem -E, kter� zpusob�
 
482
   zobrazen� vsech SQL pr�kazu, kter� se odes�laj� na server. PostgreSQL
 
483
   tak� podporuje SQL standard INFORMACN� SCH�MATA (standardn� syst�mov�
 
484
   tabulky). Klasick�m dotazem do syst�mov�ch tabulek z�sk�te pozadovan�
 
485
   informace o strukture datab�ze.
 
486
   
 
487
   Syst�mov� tabulky PostgreSQL (mimo r�mec SQL standardu) pouz�vaj�
 
488
   prefix pg_. Pro zjisten� struktury datab�ze je muzete pouz�t tak�, i
 
489
   kdyz preferov�ny jsou dotazy do informacn�ho sch�matu.
 
490
   
 
491
   Seznam vsech datab�z� z�sk�te pr�kazem psql -l
 
492
   
 
493
   Dals� inspiraci najdete v souboru pgsql/src/tutorial/syscat.source.
 
494
   Obsahuje ilustracn� SELECTy potrebn� k z�sk�n� informac� z syst�mov�ch
 
495
   tabulek datab�ze.
 
496
   
 
497
  4.3) Jak zmenit datov� typ sloupce?
 
498
  
 
499
   Ve verz�ch 8.0 a pozdejs�ch jednoduse:
 
500
ALTER TABLE ALTER COLUMN TYPE
 
501
 
 
502
   V stars�ch verz�ch:
 
503
BEGIN;
 
504
ALTER TABLE tab ADD COLUMN new_col new_data_type;
 
505
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
 
506
ALTER TABLE tab DROP COLUMN old_col;
 
507
COMMIT;
 
508
 
 
509
   Po zmene spustte pr�kaz VACUUM FULL, aby doslo k uvolnen� diskov�ho
 
510
   prostoru pouzit�ho v tu chv�li jiz neplatn�mi z�znamy.
 
511
   
 
512
  4.4) Jak� je maxim�ln� velikost r�dku, tabulky a datab�ze?
 
513
  
 
514
   PostgreSQL m� tato omezen�:
 
515
   
 
516
   Maxim�ln� velikost datab�ze:       neomezena (existuj� 32TB db)
 
517
   Maxim�ln� velikost tabulky:        32 TB
 
518
   Maxim�ln� velikost r�dky:          480GB
 
519
   Maxim�ln� velikost polozky         1 GB
 
520
   Maxim�ln� pocet r�dku v tabulce:   neomezeno
 
521
   Maxim�ln� pocet sloupcu v tabulce: 250-1600 podle typu
 
522
   Maxim�ln� pocet indexu na tabulce: neomezeno
 
523
   
 
524
   Ve skutecnosti nic nen� neomezeno, limitem b�v� vzdy dostupn� diskov�
 
525
   pamet nebo velikost operacn� pameti. Pokud m�te nekterou z techto
 
526
   hodnot neobvykle velkou, muze doj�t ke sn�zen� v�konu.
 
527
   
 
528
   Maxim�ln� velikost tabulky je 32 TB a nevyzaduje podporu velk�ch
 
529
   souboru operacn�m syst�mem. Velk� tabulky se ukl�daj� do nekolika 1 GB
 
530
   souboru takze limity souborov�ho syst�mu nejsou podstatn�.
 
531
   
 
532
   Maxim�ln� velikost tabulky a maxim�ln� pocet sloupcu muzeme
 
533
   zectyrn�sobit nastaven�m velikosti bloku na 32K.
 
534
   
 
535
   Indexy jsou povolen� pouze na sloupc�ch jejichz d�lka je mens� nez
 
536
   2000 znaku. Pokud tuto d�lku prekroc�me a index potrebujeme pro
 
537
   zajisten� jednoznacnosti, je vhodnejs� pouz�t funkcion�ln� index nad
 
538
   MD5 funkc� nebo fulltextov� index.
 
539
   
 
540
  4.5) Kolik diskov�ho prostoru je potreba k ulozen� dat z norm�ln�ho textov�ho
 
541
  souboru?
 
542
  
 
543
   PostgreSQL vyzaduje az petin�sobek diskov�ho prostoru k ulozen� dat z
 
544
   textov�ho souboru.
 
545
   
 
546
   Napr�klad, uvazujme soubor se 100 tis�ci r�dky obsahuj�c� na kazd�
 
547
   r�dce cel� c�slo a textov� popis. Text je v prumerne dvacet bytu
 
548
   dlouh�. Textov� soubor bude 2.8 MB dlouh�. Velikost datab�ze
 
549
   obsahuj�c� odpov�daj�c� data bude zhruba 5.2 MB.
 
550
    24 bytu: hlavicka r�dku (priblizne)
 
551
    24 bytu: jedna celoc�seln� polozka a jedna textov�
 
552
   + 4 byty: ukazatel na str�nku k entici
 
553
   ------------------------------------------------------
 
554
    52 bytu na r�dek
 
555
 
 
556
   Velikost datov� str�nky PostgreSQL je 8192 bytu (8KB)
 
557
 8192 bytu na str�nce
 
558
---------------------- = 158 r�dek na str�nku
 
559
  52 bytu za r�dek
 
560
 
 
561
100000 r�dek
 
562
----------------------- = 633 str�nek (zaokrouhleno nahoru)
 
563
   158 r�dek na str�nce
 
564
 
 
565
633 datov�ch str�nek * 8192 bytu na kazdou str�nku = 5,185,536 bytu (5.2 MB)
 
566
 
 
567
   Indexy nemaj� tak velkou rezii, ale mohou b�t tak� velk�, protoze
 
568
   obsahuj� indexovan� data.
 
569
   
 
570
   Hodnoty NULL jsou ulozeny v bitmap�ch, takze zab�raj� jen velmi m�lo
 
571
   diskov�ho prostoru.
 
572
   
 
573
  4.6) Muj dotaz je pomal� a nepouz�v� vytvoren� indexy. Proc?
 
574
  
 
575
   Kazd� dotaz nemus� nutne pouz�t existuj�c� indexy. Index se pouzije
 
576
   tehdy, kdyz je tabulka vets� nez urcit� minim�ln� velikost, a dotaz
 
577
   vyb�r� pouze procentu�lne malou c�st r�dku tabulky. To proto, ze
 
578
   n�hodn� pr�stup k disku dan� cten�m indexu muze b�t pomalejs� nez
 
579
   line�rn� cten� tabulky nebo sekvencn� cten�.
 
580
   
 
581
   PostgreSQL rozhoduje o pouzit� indexu na z�klade statistiky pr�stupu k
 
582
   tabulce. Tyto statistiky se shromazduj� pr�kazy VACUUM ANALYZE nebo
 
583
   ANALYZE. D�ky statistik�m m� optimizer informaci o poctu r�dek v
 
584
   tabulce a muze l�pe rozhodnout o pouzit� indexu. Statistiky se uplatn�
 
585
   pri urcen� optim�ln�ho porad� a metody spojen� tabulek. Statistiky by
 
586
   se meli aktualizovat opakovane, tak jak se men� obsah tabulek.
 
587
   
 
588
   Indexy nejsou obycejne pouzity pro setr�den� nebo spojen� tabulek.
 
589
   Sekvencn� zpracov�n� n�sledovan� explicitn�m tr�den�m je obycejne
 
590
   rychlejs� nez pouzit� indexu na velk� tabulce.
 
591
   
 
592
   Jinak je tomu v pr�pade pouzit� LIMIT a ORDER BY, pri kter�m se
 
593
   vetsinou index pouzije, jelikoz je v�sledkem pouze mal� c�st tabulky.
 
594
   
 
595
   Pokud si mysl�te, ze optimizer mylne zvolil sekvencn� prohled�v�n�
 
596
   tabulky, pouzijte pr�kaz SET enable_seqscan TO 'off' a zkuste zda je
 
597
   prohled�v�n� s indexem rychlejs�.
 
598
   
 
599
   Pri vyhled�v�n� na z�klade vzoru jako je napr. oper�tor LIKE nebo ~ se
 
600
   indexy pouzij� pouze za urcit�ch skutecnost�:
 
601
     * zac�tek hledan�ho vzoru mus� b�t ukotven k zac�tku, tj.
 
602
          + vzor LIKE nesm� zac�nat %
 
603
          + ~ regul�rn� v�raz mus� zac�nat ^
 
604
     * vzor nesm� zac�nat intervalem, napr. [a-e]
 
605
     * vyhled�van�, kter� nen� Case sensitiv jako je ILIKE nebo ~*
 
606
       nepouz�v� indexy. Muzete ale pouz�t funkcion�ln� indexy, kter�
 
607
       jsou pops�ny v sekci 4.8
 
608
     * pri inicializaci datab�ze (initdb) mus� b�t pouzito C locale nebo
 
609
       vytvorte speci�ln� text_pattern_index, kter� umozn�, pri
 
610
       respektov�n� zm�nen�ch podm�nek pouzit� indexu operac� LIKE. Pro
 
611
       vyhled�v�n� cel�ch slov je mozn� a v�hodn� pouz�t fulltext.
 
612
       
 
613
  4.7) Jak zjist�m, jak se vyhodnocuje muj dotaz?
 
614
  
 
615
   Pod�vejte se do n�povedy k pr�kazu EXPLAIN.
 
616
   
 
617
  4.8) Jak pouz�t case-(in)sensitive regul�rn� v�raz? Jak pouz�t index pro case
 
618
  insensitive hled�n�?
 
619
  
 
620
   Vyhled�v�n� prostrednictv�m regul�rn�ch vzoru zajistuje oper�tor ~,
 
621
   kter� je case-sensitive. Jeho case-insensitive varianta je oper�tor
 
622
   ~*. Case-insensitive variac� oper�toru LIKE je oper�tor ILIKE.
 
623
   
 
624
   Case-insensitive vyhled�n� se res�:
 
625
SELECT *
 
626
FROM tab
 
627
WHERE lower(col) = 'abc';
 
628
 
 
629
   Tento dotaz nepouzije standardn� index. Mus�te pouz�t tzv.
 
630
   funkcion�ln� index:
 
631
CREATE INDEX tabindex ON tab (lower(col));
 
632
 
 
633
   Pokud index vytvor�me jako unik�tn�, tak muzeme ukl�dat retezce
 
634
   obsahuj�c� mal� i velk� p�smena, ale nikoliv retezce, kter� se od sebe
 
635
   odlisuj� jen v mal�ch a velk�ch p�smenech. K zajisten� z�pisu retezce
 
636
   obsahuj�c� pouze mal� nebo pouze velk� p�smena pouzijte CHECK kontroly
 
637
   nebo triggery.
 
638
   
 
639
  4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit dva
 
640
  retezce, pokud mohou obsahovat NULL? Lze tr�dit podle toho, jestli je polozka
 
641
  NULL nebo ne?
 
642
  
 
643
   Pokud chcete testovat hodnotu NULL pouzijte oper�tor IS:
 
644
   SELECT *
 
645
   FROM tab
 
646
   WHERE col IS NULL;
 
647
 
 
648
   K spojen� retezcu, kter� mohou obsahovat hodnotu NULL, pouz�vejte
 
649
   funkci COALESCE(), napr.:
 
650
   SELECT COALESCE(col1, '') || COALESCE(col2, '')
 
651
   FROM tab
 
652
 
 
653
   Pokud chcete tr�dit podle hodnoty NULL, pouzijte v�raz IS NULL nebo IS
 
654
   NOT NULL v klauzuli ORDER. Hodnota pravda m� prednost pred hodnotou
 
655
   false a tedy pokud pouzijete:
 
656
   SELECT *
 
657
   FROM tab
 
658
   ORDER BY (col IS NOT NULL)
 
659
 
 
660
   tak z�znamy s NULL budou na zac�tku setr�den�ch dat.
 
661
   
 
662
  4.10) Jak� jsou rozd�ly mezi ruzn�mi znakov�mi typy?
 
663
  
 
664
   Typ        Intern� n�zev Pozn�mky
 
665
   VARCHAR(n) varchar       n urcuje maxim�ln� d�lku
 
666
   CHAR(n)    bpchar        retezec je do dan� d�lky rozs�ren mezerami
 
667
   TEXT       text          bez omezen� d�lky
 
668
   BYTEA      bytea         pole bytu nespecifikovan� d�lky
 
669
   "char"     char          jeden znak
 
670
   
 
671
   Na intern� n�zvy muzete narazit v syst�mov�m katalogu nebo v nekter�ch
 
672
   chybov�ch hl�sen�ch.
 
673
   
 
674
   Ctyri prvn� typy jsou tzv. varlena typy (prvn� ctyri byty na disku
 
675
   jsou obsahuj� d�lku, ostatn� obsahuj� vlastn� data). Skutecne obsazen�
 
676
   prostor je tedy o neco m�lo vets� nez deklarovan� velikost. Na druhou
 
677
   stranu, dels� retezce jsou komprimov�ny, takze obsazen� prostor na
 
678
   disku muze b�t mens� nez se cek�.
 
679
   
 
680
   VARCHAR(n) je vhodn� pro ukl�d�n� ruzne dlouh�ch retezcu u kter�ch
 
681
   zn�me d�lkov� omezen�, TEXT pro retezce bez omezen� d�lky (maximum je
 
682
   jeden gigabyte).
 
683
   
 
684
   CHAR(n) se pouz�v� pro ulozen� stejne dlouh�ch retezcu. CHAR(n) dopln�
 
685
   mezerami na specifikovanou d�lku, VARCHAR(n) hodnoty se ukl�daj� tak
 
686
   jak jsou. BYTEA je pro ukl�d�n� bin�rn�ch dat - non ASCII hodnot.
 
687
   Vsechny zm�nen� typy maj� podobn� v�konov� charakteristiky.
 
688
   
 
689
  4.11.1) Jak vytvorit serial/auto-increment polozku?
 
690
  
 
691
   V PostgreSQL muzete pouz�t datov� typ SERIAL. Jeho pouzit�m se
 
692
   automaticky vytvor� sekvence. Napr�klad:
 
693
CREATE TABLE person (
 
694
  id   SERIAL,
 
695
  name TEXT
 
696
);
 
697
 
 
698
   je automaticky transformov�no na:
 
699
CREATE SEQUENCE person_id_seq;
 
700
CREATE TABLE person (
 
701
  id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
 
702
  name TEXT
 
703
);
 
704
 
 
705
   Podrobnejs� informace najdete v manu�lu v popisu pr�kazu
 
706
   create_sequence.
 
707
   
 
708
  4.11.2) Jak z�skat hodnotu SERIAL po vlozen� r�dku?
 
709
  
 
710
   Nejjednoduss�m zpusob, jak z�skat vygenerovanou hodnotu typu SERIAL,
 
711
   je vyuz�t klauzuli RETURNING. Pro tabulku z 4.11.1 vypad� takto:
 
712
INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
 
713
 
 
714
   Tak� muzete pouz�t funkci nextvall() a jej� v�sledek pouz�t v pr�kazu
 
715
   INSERT, nebo zavolat currval() po proveden� pr�kazu INSERT.
 
716
   
 
717
  4.11.3) Nezpusob� currval() a nextval() probl�my ve v�ce uzivatelsk�m
 
718
  prostred�?
 
719
  
 
720
   Ne, currval vrac� vzdy hodnotu, kter� byla vygenerov�na pro v�s.
 
721
   
 
722
  4.11.4) Proc nen� vygenerovan� c�slo pouzito pri prerusen� transakce?Proc
 
723
  vznikaj� d�ry v c�slov�n� prostrednictv�m sekvence nebo typu SERIAL?
 
724
  
 
725
   Pot� co sekvence vygeneruje nov� c�slo, tak se nedoch�z� k zamcen�
 
726
   sekvence a necek� se na �spesn� nebo ne�spesn� dokoncen� transakce.
 
727
   Odvol�n�m transakce, kter� si vyz�dala c�sla sekvence se tato c�sla
 
728
   nen�vratne ztrat�.
 
729
   
 
730
  4.12) Co to je OID? Co je to CTID?
 
731
  
 
732
   V pr�pade, ze tabulku nezaloz�me s atributem WITHOUT OIDS, tak m�
 
733
   kazd� r�dek unik�tn� identifikacn� c�slo OID. Toto c�slo je 4 bajtov�
 
734
   cel� c�slo, kter� je jedinecn� v cel� instalaci. Pretece po 4
 
735
   miliard�ch r�dku. PostgreSQL pouz�v� OIDs jako intern� linky v
 
736
   intern�ch syst�mov�ch tabulk�ch.
 
737
   
 
738
   K z�sk�n� unik�tn�ho c�sla v nesyst�mov�ch tabulk�ch je vhodnejs�
 
739
   pouzit� typu SERIAL nez OID, jelikoz sekvence SERIAL se pouz�v� pouze
 
740
   pro jednu tabulku a je tud�z m�ne n�chyln� na pretecen�. Pokud byste
 
741
   se toho ob�vali, pouzijte typ SERIAL8.
 
742
   
 
743
   CTID se pouz�v� k identifikaci konkr�tn�ho fyzick�ho r�dku. CTID se
 
744
   men� pokud je r�dek modifikov�n nebo znovu nacten. Pouz�vaj� ho indexy
 
745
   jako adresaci fyzick�ch r�dku.
 
746
   
 
747
  4.13) Co znamen� chybov� hl�sen� "ERROR: Memory exhausted in
 
748
  AllocSetAlloc()"?
 
749
  
 
750
   Pravdepodobne jste vycerpal dostupnou virtu�ln� pamet, nebo tvuj
 
751
   kernel m� pr�lis n�zk� limity u urcit�ch zdroju. Pred startem
 
752
   PostgreSQL vyzkousejte:
 
753
ulimit -d 262144
 
754
limit datasize 256m
 
755
 
 
756
   Mozn�, ze se projde pouze jeden pr�kaz - z�lez� to na vasem shellu.
 
757
   Mel by zvednout limity datov�ch segmentu vasich procesu na dostatecne
 
758
   velkou hodnotu a snad umoznit dokoncen� dotazu. Zmena limitu se bude
 
759
   aplikovat pouze na aktu�ln� proces a na vsechny nove vytvoren�
 
760
   procesy. Jestlize m�te probl�m s SQL klientem, protoze v�m server
 
761
   vr�til pr�lis dat, zkuste to pred startem klienta.
 
762
   
 
763
  4.14) Jak zjist�m, kterou verzi PostgreSQL pouz�v�m?
 
764
  
 
765
   V psql napiste:
 
766
SELECT version();
 
767
 
 
768
  4.15) Jak vytvorit sloupec, kter� bude implicitne obsahovat aktu�ln� cas?
 
769
  
 
770
   Pouzijte CURRENT_TIMESTAMP:
 
771
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 
772
 
 
773
  4.16) Jak prov�st vnejs� spojen� (outer join)?
 
774
  
 
775
   PostgreSQL podporuje standardn� SQL syntaxi pro vnejs� spojen�. Zde
 
776
   jsou dva pr�klady:
 
777
SELECT *
 
778
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
 
779
 
 
780
   nebo
 
781
SELECT *
 
782
FROM t1 LEFT OUTER JOIN t2 USING (col);
 
783
 
 
784
   Tyto identick� dotazy spoj� sloupec t1.col k sloupci t2.col, a jeste
 
785
   vr�t� vsechny nesp�rovan� r�dky t2 (ty, kter� nedohled� v t2). RIGHT
 
786
   JOIN by pripojil vsechny nesp�rovan� r�dky z t2. FULL JOIN vr�t�
 
787
   vsechny sp�rovan� r�dky i vsechny zb�vaj�c� r�dky z obou tabulek.
 
788
   Kl�cov� slovo OUTER je voliteln�. Bezn� operace JOIN se tak� oznacuje
 
789
   jako vnitrn� spojen�.
 
790
   
 
791
  4.17) Jak prov�st dotaz napr�c nekolika datab�zemi?
 
792
  
 
793
   Neexistuje z�dn� zpusob, jak se v dotazu odkazovat na tabulky z jin�
 
794
   nez aktu�ln� datab�ze. A to protoze m� syst�mov� tabulky ulozen�
 
795
   nez�visle v kazd� datab�zi a nen� tak �plne zrejm�, jak by se dotaz
 
796
   proveden� napr�c datab�zemi mel chovat.
 
797
   
 
798
   Jeden z doplnku dblink umoznuje dotaz nad nekolika tabulkami pomoc�
 
799
   funkc�. Druh� zpusob je simult�ln� pripojen� klienta ke vsem
 
800
   relevantn�m datab�z�m a sloucen� v�sledku na strane klienta.
 
801
   
 
802
  4.18) Muze funkce vr�tit v�ce r�dku nebo sloupcu?
 
803
  
 
804
   Jde to jednoduse pomoc� set-returning funkce. V�ce na
 
805
   http://www.postgresql.org/docs/techdocs.17.
 
806
   
 
807
  4.19) Co je pr�cinou chyby "relation with OID xxxxx does not exist"?
 
808
  
 
809
   Nechten�m vedlejs�m efektem kesov�n� SQL dotazu v PL/pgSQL funkci je
 
810
   probl�m s neplatn�mi odkazy na docasn� tabulky, kter� byly od prvn�ho
 
811
   spusten� funkce zruseny a znovu vytvoreny pred dals�m spusten�m
 
812
   PL/pgSQL funkce. Resen�m je pouz�t pr�kaz EXECUTE a to proto, ze
 
813
   prov�dec� pl�n SQL pr�kazu spousten�ho pr�kazem EXECUTE se vytv�r�
 
814
   pokazd� znovu (neukl�d� se do cache).
 
815
   
 
816
   Tento probl�m by se nemel vyskytovat u PostgreSQL verze 8.3 a vyss�ch
 
817
   verz�ch.
 
818
   
 
819
  4.20) Jak� jsou moznosti replikace datab�z�?
 
820
  
 
821
   Replikaci datab�ze umoznuje nekolik technoligi�. Kazd� m� urcit�
 
822
   v�hody a nev�hody.
 
823
   
 
824
   Master/Slave replikaci podporuje jeden hlavn� server, kter� prij�m�
 
825
   pozadavky na z�pis a cten�, a nekolik podr�zen�ch serveru, kter�
 
826
   umoznuj� pouze cten� (SELECT). Nejrozs�renejs�m volne dostupn�m
 
827
   resen�m tohoto typu je Slony-I.
 
828
   
 
829
   Replikace typu Multi-master podporuje existenci nekolika serveru s
 
830
   povolen�m z�pisem na v�ce replikovan�ch serverech. Toto resen� zvysuje
 
831
   z�tez serveru, protoze je nutn� synchronizace serveru.
 
832
   Nejrozs�renejs�m volne dostupn�m resen�m je PGCluster.
 
833
   
 
834
   Jeste existuje nekolik komercn�ch a hardware resen� replikac�
 
835
   podporuj�c�ch ruzn� modely replikace.
 
836
   
 
837
  4.21) Proc v dotazu nejsou rozpozn�ny n�zvy m�ch tabulek nebo funkc�? Proc
 
838
  jsou velk� p�smena v n�zvech automaticky prevedena na mal� p�smena?
 
839
  
 
840
   Nejcastejs�m duvodem nerozpozn�n� n�zvu objektu bylo pouzit� vlozen�
 
841
   n�zvu sloupce nebo tabulky mezi uvozovky pri zakl�d�n� tabulky. Pokud
 
842
   se n�zev zap�se mezi uvozovky, pak je case sensitive, a v dusledku
 
843
   toho je nutn� n�zvy techto sloupcu nebo tabulek v SQL pr�kazech tak�
 
844
   vkl�dat mezi uvozovky (pokud obsahuj� velk� p�smena). Nekter�
 
845
   programy, jako je napr�klad pgAdmin, automaticky pouz�vaj� uvozovky.
 
846
   Takze pokud chcete, aby syst�m identifikoval identifik�tor, mus�te:
 
847
     * nepouz�vat uvozovky v pr�kazu CREATE TABLE
 
848
     * v identifik�toru pouz�t pouze mal� p�smena
 
849
     * v dotazech vkl�dat identifik�tory do uvozovek