Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
blob: 7b77f0ba6b880135e7e2d099fb7c40853e3373ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678

   PostgreSQL GyIK Utols� m�dos�t�s d�tuma: 2002 Okt 20. Ford�t�s
   aktualiz�l�sa: 2003 janu�r A GyIK karbantart�ja: Bruce Momjian
   (pgman@candle.pha.pa.us) Ford�t�: Horny�k L�szl�
   (hornyakl.NOSPAM@inf.elte.hu) A legfrissebb verzi� itt �rhet� el
   (angol): http://www.PostgreSQL.org/docs/faq-english.html. Legfrissebb
   magyar nyelv� verzi�:
   http://www.rootshell.be/~hornyakl/downloads/postgres_faq/ Platform
   specifikus k�rd�sek:
   http://www.PostgreSQL.org/users-lounge/docs/faq.html.
   _________________________________________________________________
   �ltal�nos k�rd�sek 1.1) Mi a PostgreSQL? Hogy kell kimondani? 1.2) Mik
   a PostgreSQL felhaszn�l�si felt�telei? 1.3) Milyen UNIX oper�ci�s
   rendszereken fut PostgreSQL? 1.4) Milyen nem UNIX oper�ci�s rendszerek
   el�rhet�ek? 1.5) Hogyan tudok PostgreSQL-t szerezni? 1.6) Hogyan kapok
   term�kt�mogat�st? 1.7) Melyik a legfrissebb kiad�s? 1.8) Milyen
   dokument�ci� �ll rendelkez�sre? 1.9) Hogyan tal�lok inform�ci�t
   hib�kr�l vagy hi�nyz� funkcional�t�sr�l? 1.10) Hogy tanuljam meg az
   SQL nyelvet? 1.11) A PostgreSQL 2000. �v kompatibilis? 1.12) Hogyan
   lehet csatlakozni a fejleszt� csapathoz? 1.13) Hogyan k�ldjek
   hibajelent�st? 1.14) Milyen a PostgreSQL m�s DBMS-ekkel
   �sszehasonl�tva? 1.15) Hogyan tudom �zletileg segiteni a PostgreSQL-t?
   Felhaszn�l�i kliens k�rd�sek 2.1) Van ODBC meghajt� PostgreSQL-hez?
   2.2) Milyen eszk�z�k �llnak rendelkez�sre PostgreSQL Web
   fejleszt�sekhez? 2.3) Van a PostgreSQL-hez grafikus felhaszn�l�i
   fel�let ? Riport gener�tor? Be�gyazott lek�rdez� nyelv fel�let? 2.4)
   Milyen programoz�si nyelvekkel lehet el�rni a PostgreSQL szervert?
   Adminisztr�ci�s k�rd�sek 3.1) Hogyan tudom a PostgreSQL-t
   /usr/local/pgsql -t�l elt�r� helyre install�lni? 3.2) AMikor elind�tom
   a postmaster-t, egy "Bad System Call"-t vagy core dump-ot kapok.
   Mi�rt? 3.3) Amikor megpr�b�lom inditani a postmaster-t,
   "IpcMemoryCreate" hib�kat kapok. Mi�rt? 3.4) Amikor megpr�b�lom
   inditani a postmaster-t, "IpcSemaphoreCreate" hib�kat kapok. Mi�rt?
   3.5) Hogyan tudom kontroll�lni a m�s g�pekr�l �rkez� kapcsolat
   k�r�seket? 3.6) Hogyan tudom nagyobb teljes�tm�nyre hangolni az
   adatb�zisomat? 3.7) Milyen hibakeres� lehet�s�gek �rhet�ek el? 3.8)
   Mi�rt kapok "Sorry, too many clients" hib�t csatlakoz�sn�l? 3.9) Mi
   van pgsql_tmp k�nyvt�rban? 3.10) Mi�rt kell dumpolni �s �jrat�lteni
   PostgreSQL kiad�s v�lt�s�n�l? M�k�dtet�si k�rd�sek 4.1) Mi a k�l�nbs�g
   a bin�ris �s a norm�l kurzorok k�z�tt? 4.2) Hogyan tudom select-elni a
   lek�rdez�s els� p�r sor�t? 4.3) Hogy tudom kilist�zni a t�bl�kat vagy
   m�s dolgokat a PostgreSQL-ben? 4.4) Hogyan tudok elt�vol�tani egy
   oszlopot egy t�bl�b�l? 4.5) Mi a maxim�lis m�rete egy sornak, egy
   t�bl�nak vagy egy adatb�zisnak? 4.6) Mekkora adatb�zis lemez ter�let
   sz�ks�ges egy tipikus sz�veg �llom�ny t�rol�s�hoz? 4.7) Hogy tudhatom
   meg milyen t�bl�k, indexek, adatb�zisok vagy felhaszn�l�k vannak
   defini�lva? 4.8) A lek�rdez�seim lass�ak, vagy nem haszn�lj�k az
   indexeket. Mi�rt? 4.9) Hogy tudom ellen�rizni, hogy optimaliz�lta a
   lek�rdez�s optimaliz�l� a lek�rdez�sem? 4.10) Mi az R-tree index?
   4.11) Mi a Genetic Query Optimizer? 4.12) Hogyan tudok regexp keres�st
   �s case-insensitive regexp keres�st haszn�lni? Hogyan tudok indexet
   haszn�lni case-insensitive keres�shez? 4.13) Hogyan tudom �szlelni egy
   lek�rdez�sban, ha egy mez� NULL? 4.14) Mi a k�l�nbs�g a k�l�nb�z�
   karaktert�pusok k�z�tt? 4.15.1) Hogyan tudok l�trehozni automatikusan
   n�vekv� �rt�k� mez�t? 4.15.2) Hogyan kaphatom meg egy SERIAL besz�r�s
   �rt�k�t? 4.15.3) A currval() �s a nextval() nem teremt holtpont
   vesz�lyes helyzetet a felhaszn�l�k k�z�tt? 4.15.4) Mi�rt nem
   haszn�l�dnak fel �jra a sequence sz�mok tranzakci� abort eset�n? Mi�rt
   vannak probl�m�k a serial oszlopok sz�moz�s�val? 4.16) Mi a OID? Mi a
   TID? 4.17) Mi a PostgreSQL-ben haszn�lt kifejez�sek jelent�se? 4.18)
   Mi�rt kapom ezt a hib�t: "ERROR: Memory exhausted in AllocSetAlloc()"?
   4.19) Hogyan tudhatom meg PostgreSQL, milyen verzi�t futtatok? 4.20)
   Mi�rt kapok "invalid large obj descriptor" hib�t nagy objektumok
   kezel�s�n�l? 4.21) Hogy hozhatok l�tre olyan oszlopot, aminek
   alap�rtelmezett �r�tke a jelenlegi id�? 4.22) Mi�rt olyan lass�ak az
   al-lek�rdez�seim IN-nel? 4.23) Hogyan tudok outer join-t v�grehajtani?
   4.24) Hogyan tudok t�bb adatb�zison v�grehajtani lek�rdez�st? 4.25)
   Hogy tudok t�bb soros vagy oszlopos eredm�nyt visszaadni egy
   funkci�b�l? 4.26) Mi�rt nem tudom megbizhat�an l�trehozni �s t�r�lni
   az �tmeneti t�bl�kat a PL/pgSQL funkci�kban? 4.27) Milyen replik�ci�s
   lehet�s�gek vannak? 4.28) Milyen k�dol�si lehet�s�gek vannak? A
   PostgreSQL kiterjeszt�se 5.1) �rtam egy felhaszn�l�i funkci�t. Mi�rt
   core dumpol az adatb�zis amikor haszn�lom? 5.2) Hogyan lehet �j
   adatt�pusokat �s funkci�kat hozz�adni a PostgreSQL disztrib�ci�hoz?
   5.3) Hogyan lehet olyan C funkci�t �rni, ami Tuple-t ad vissza? (t�bb
   soros t�bb oszlopos eredm�nyek) 5.4) Megv�ltoztattam egy forr�s
   �llom�nyt. Mi�rt nem v�ltozik a bin�ris �jraford�t�s ut�n?
   _________________________________________________________________
   �ltal�nos k�rd�sek 1.1) Mi a PostgreSQL? Hogy kell kimondani? �gy
   ejstd ki: Post-Gres-Q-L. (Vagy tal�n ink�bb t�ltsd le a kis mp3-at a
   PostgreSQL homepage-r�l) A PostgreSQL a POSTGRES adatb�zis management
   rendszer egy kieg�sz�t�se, ami egy k�vetkez� gener�ci�s DBMS kutat�si
   protot�pus. Megtartja a POSTGRES adatmodell�t �s gazdag adatt�pus
   v�laszt�k�t, de a PostQuel lek�rdez� nyelvet az SQL egy kiterjesztett
   verzi�j�val helyettes�ti. A PostgreSQL szabad �s a teljes forr�sk�d
   hozz�f�rhet�. A PostgreSQL fejleszt�s�t egy csapat v�gzi, amelynek
   minden tagja megtal�lhat� a PostgreSQL fejleszt�i levelez�si list�n. A
   jelenlegi koordin�tor Marc G. Fournier (scrappyp@PostgreSQL.org). Ez a
   csapat felel�s minden fejleszt�s�rt. A PostgreSQL 1.01 alkot�i Andrew
   Yu �s Jolly Chen voltak. Sokan j�rultak hozz� portol�ssal,
   tesztel�ssel, hibakeres�ssel �s fejleszt�ssel. Az eredeti Postgres
   k�d, amib�l a PostgreSQL sz�rmazik Michael Stonebraker professzor
   ir�ny�t�sa alatt fejlesztettek az egyetem programoz�i, tanul�i �s
   v�gzett tanul�i. A szoftver ereeti neve Postgres volt. Amikor SQL
   funkcional�t�ssal eg�sz�tett�k ki 1995-ben, a nev�t Postgres95-re
   v�ltoztatt�k. 1996 v�g�n kapta mai nev�t. 1.2) Mik a PostgreSQL
   felhaszn�l�si felt�telei? Az eredeti angol copyright sz�veg:
   -------------------- PostgreSQL is subject to the following COPYRIGHT:
   PostgreSQL Data Base Management System Portions copyright (c)
   1996-2002, PostgreSQL Global Development Group Portions Copyright (c)
   1994-6 Regents of the University of California Permission to use,
   copy, modify, and distribute this software and its documentation for
   any purpose, without fee, and without a written agreement is hereby
   granted, provided that the above copyright notice and this paragraph
   and the following two paragraphs appear in all copies. IN NO EVENT
   SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT,
   INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
   LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
   DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
   OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA
   SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
   THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE
   MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. The
   above is the BSD license, the classic open-source license. It has no
   restrictions on how the source code may be used. We like it and have
   no intention of changing it. -------------------- Ami nagyon
   leegyszer�s�tve azt jelenti, hogy jogod van haszn�lni a szoftvert
   mindenf�le ellenszolg�ltat�s (p�nz, stb) n�lk�l, a forr�s k�dot
   m�dos�thatod, �s tov�bbadhatod, DE semmilyen, a szoftver haszn�lat�b�l
   k�vetkez� k�rosod�s�rt nem v�llal garanci�t a fejleszt�. A fenti a BSD
   licensz, egy klasszikus nyilt-forr�sk�d licensz. Nem tartalmaz
   megszor�t�sokat arra, hogy a forr�sk�dot hogyan haszn�lod fel.
   Kedvelj�k ezt a licensz form�t �s nem �ll sz�nd�kunkban
   megv�ltoztatni. 1.3) Milyen UNIX oper�ci�s rendszereken fut
   PostgreSQL? �ltal�ban minden UNIX-kompatibilis oper�ci�s rendszer
   k�pes arra hogy futtassa a PostgreSQL-t. Azokat a platformokat, amiken
   tesztelt�k a kiad�st megtal�lhatod a install�ci�s utas�t�sok k�z�tt.
   1.4) Milyen nem UNIX oper�ci�s rendszerek el�rhet�ek? Kliens A libpq C
   f�ggv�nyk�nyvt�rat, a psql-t �s m�s fel�leteket le lehet �gy
   ford�tani, hogy fussanak MS Windows oper�ci�s rendszereken. Ebben az
   esetben a kliens MS Windows-on fut �s TCP/IP seg�ts�g�vel kommunik�l a
   Unixon fut� szerverrel. A "win32.mak" �llom�ny a kiad�s r�sze, ennek
   seg�ts�g�vel lehet Win32 platformokra leford�tani a libpq-t �s a
   psql-t. A PostgreSQL ODBC kliensekkel is k�pes kommunik�lni. Szerver
   Az adatb�zis szerver Cygwin seg�ts�g�vel fut Windows NT �s Win2k
   rendszereken. Tov�bbi inform�ci� tal�lhat� a pgsql/doc/FAQ_MSWIN
   �llom�nyban �s a MS Windows FAQ-ban a k�vetkez� helyen:
   http://www.PostgreSQL.org/docs/faq-mswin.html. Nat�v MS Windows
   NT/2000/XP portok jelenleg fejleszt�s alatt �llnak. 1.5) Hogyan tudok
   PostgreSQL-t szerezni? Az els�dleges anonim ftp oldal:
   ftp://ftp.PostgreSQL.org/pub. A t�k�r oldalak list�ja megtal�lhat� a
   f� weboldalunkon. 1.6) Hogyan kapok term�kt�mogat�st? Az els�dleges
   lista a pgsql-general@postgresql.org. Ez haszn�lhat� a PostgreSQL-lel
   kapcsolatos p�rbesz�dekre. Ha fel szeretn�l �ratkozni, k�ldj egy
   levelet a k�vetkez� tartalommal (nem t�rggyal) a
   pgsql-general-request@postgresql.org c�mre: subscribe end Van egy
   hib�kkal kapcsolatos levelez�si lista is:
   pgsql-bugs-request@PostgreSQL.org a k�vetkez� tartalommal: subscribe
   end A fejleszt?i levelez�si lista:
   pgsql-hackers-request@PostgreSQL.org a k�vetkez� tertalommal:
   subscribe end Egy�b levelez�si list�k tal�lhat�ak a weboldalunkon:
   http://www.PostgreSQL.org Van egy IRC csatorna is #PostgreSQL n�ven
   ahol felteheted k�r�dseid. A k�vetkez� unix paranccsal csatlakozhatsz:
   irc -c '#PostgreSQL' "$USER" irc.phoenix.net. A kereskedelmi
   term�kt�mogat�st ny�jt� c�gek list�ja el�rhet� itt:
   http://www.PostgreSQL.org/users-lounge/commercial-support.html 1.7)
   Melyik a legfrissebb kiad�s? A legfrissebb PostgreSQL kiad�s a 7.3. A
   tervek szerint minden negyedik h�napban van �j kiad�s. 1.8) Milyen
   dokument�ci� �ll rendelkez�sre? Sz�mos k�zik�nyv, man oldalak �s kis
   teszt p�ld�k tal�lhat�ak a kiad�sban a doc/ k�nyvt�r alatt. Az
   interneten is olvashatod a dokument�ci�t a k�vetkez� c�men:
   http://www.PostgreSQL.org/users-lounge/docs/. K�t PostgreSQL k�nyv
   �rhet� el az interneten a http://www.PostgreSQL.org/docs/awbook.html
   �s a http://www.commandprompt.com/ppbook/ c�meken. A megv�s�rolhat�
   k�nyvek list�ja itt tal�lhat�: http://www.ca.PostgreSQL.org/books/. A
   PostgreSQL-lel kapcsolatos technikai jelleg� cikkek gy�jtem�nye:
   http://techdocs.PostgreSQL.org/. A psql parancs rendelkezik n�h�ny \d
   utas�t�ssal, amellyekkel list�zhat�ak az oper�torok, a funkci�k, stb.
   A website is tartalmaz tov�bbi dokument�ci�kat. 1.9) Hogyan tal�lok
   inform�ci�t hib�kr�l vagy hi�nyz� funkcional�t�sr�l? A PostgreSQLaz
   SQL-92 szabv�ny egy kieg�sz�t�se. N�zd meg a TODO list�kat ha
   �rdekelnek az ismert hib�k. 1.10) Hogy tanuljam meg az SQL nyelvet? A
   PostgreSQL k�nyv a http://www.PostgreSQL.org/docs/awbook.html c�men
   tartalmaz SQL alapokat. El�rhet� egy m�sik SQL k�nyv is a
   http://www.commandprompt.com/ppbook c�men. Egy sz�p oktat� anyag
   tal�lhat� a http://www.intermedia.net/support/sql/sqltut.shtm, a
   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
   �s a http://sqlcourse.com oldalakon. Egy m�sik lehet�s�g a "Tan�tsd
   magad 21 nap alatt SQL-re, m�sodik kiad�s" a
   http://members.tripod.com/er4ebus/sql/index.htm. Sok felhaszn�l�nak
   tetszett a gyakorlati SQL k�nyv ("The Practical SQL Handbook"). 1.11)
   A PostgreSQL 2000. �v kompatibilis? Igen, k�nnyed�n kezeli a 2000
   ut�ni �s id�sz�m�t�sunk el�tt 2000 el�tti d�tumokat is. 1.12) Hogyan
   lehet csatlakozni a fejleszt� csapathoz? El�ssz�r is t�ltsd le a
   forr�sk�dot, �s olvasd el a PostgreSQL fejleszt�i dokumnet�ci�t a web
   oldalunkon vagy a kiad�sban. Ezut�n �ratkozz fel a pgsql-hackers �s a
   pgsql-patches levelez�si list�kra. V�g�l pedig k�ldj be magas
   szinvonal� patch-eket a pgsql-patches list�ra. Van egy p�r ember,
   akiknek commit privil�giumuk a PostgreSQL CVS f�n. �k olyan sok magas
   szinvonal� patch-et k�ldtek be, hogy az addigi csapat m�r nem tudta
   k�vetni, �s nem volt k�ts�g�nk arr�l, hogy a patch-ek amiket �k
   k�ldenek j� min�s�g�. 1.13) Hogyan k�ldjek hibajelent�st? L�togass el
   a BugTool oldalra: http://www.PostgreSQL.org/bugs/bugs.php Itt
   megtal�lod k�vetend� utas�t�sokat. Ellen�rizd az ftp oldalunkon is,
   hogy nincs-e �jabb verzi� vagy folt. ftp://ftp.PostgreSQL.org/pub
   1.14) Milyen a PostgreSQL m�s DBMS-ekkel �sszehasonl�tva? Sz�mos
   n�z�pontb�l lehet vizsg�lni a szoftvert: k�pess�gek, teljes�tm�ny
   megb�zhat�s�g, t�mogatotts�g �s �r. K�pess�gek A PostgreSQL
   rendelkezik a nagy, kereskedelmi DBMS-ek k�pess�geivel: tranzakci�k,
   al-lek�rdez�sek, triggerek, n�zetek, k�ls� kulcsok, integr�t�s �s
   kifinoult z�rmechanizmusok. Van n�h�ny k�pess�ge, ami a kereskedelmi
   adatb�zisokb�l hi�nyzik, mint p�ld�ul a felhaszn�l� �ltal defini�lt
   t�pusok, �r�kl�d�s, szab�lyok �s verzi� kontroll a z�rol�si vit�k
   reduk�l�s��rt. Teljes�tm�ny A PostgreSQL teljes�tm�nye hasonl�t a
   kereskedelmi �s m�s ny�lt adatb�zis szerverek�hez. Lehet bizonyos
   esetekben lassabb, m�sokban gyorsabb. A MySQL nev� tanul� RDBMS
   p�ld�ul gyorsabban hajt v�gre insert/update m�veleteket, mivel a
   tranzakci�kat elsum�kolja. Persze a MySQL nem rendelkezik a k�pess�gek
   r�szben felsoroltak nagy r�sz�vel. Mi a megb�zhat�s�gra �s a
   k�pess�gekre �p�t�nk, b�r a teljes�tm�ny is n� minden kiad�ssal. Van
   egy �rdekes oldal a MySQL �s a PostgreSQL �sszehasonl�t�s�val a
   http://openacs.org/philosophy/why-not-mysql.html c�men. Megb�zhat�s�g
   Tudjuk hogy ha egy DBMS nem megb�zhat�, akkor teljesen haszontalan.
   Igyeksz�nk j�l tesztelt, stabil k�dot kiadni, amiben a lehet�
   legkevesebb hiba van. Minden kiad�s el�tt eltellik legal�bb 1 h�nap
   b�ta teszt, �s a kiad�si t�rt�net is azt mutatja, hogy stabil k�dot
   adunk ki, ami k�szen �ll a produkt�v felhaszn�l�sra. �gy gondoljuk,
   fel�lm�lunk m�s adatb�zis szoftvereket ezen a t�ren. T�mogat�s A
   levelez�si list�ink kapcsolatot teremtenek a fejleszt�k �s
   felhaszn�l�k csoportj�val , akik seg�tenek a probl�m�k megold�s�ban.
   B�r nem tudjuk garant�lni hogy ki tudjuk jav�tani a hib�t, m�s,
   kereskedelmi adatb�zis c�gek sem tudj�k. A fejleszt� csoport k�zvetlen
   el�r�si lehet�s�ge, a k�z�ss�g, a dokument�ci� �s a forr�sk�d gyakran
   t�mogat�st biztos�t, mint m�s adatb�zisokn�l. Van kereskedelmi,
   alkalmi t�mogat�s azoknak, akiknek sz�ks�ge van r� (l�sd: 1.6). �r A
   PostgreSQL szabad b�rmilyen felhaszn�l�sra, ak�r kereskedelmire is. A
   term�khez hozz�adhatod a saj�t forr�sk�djaidat korl�toz�s n�lk�l,
   1.15) Hogyan tudom �zletileg segiteni a PostgreSQL-t? A PostgreSQL
   els� oszt�ly� infrastrukt�r�val rendelkezik, amit 1996-ban ind�tottunk
   el. Mindent Marc Fourniernek k�sz�nhet�nk, aki l�trehozta �s
   karbantartja a rendszert. A min�s�gi infrastrukt�ra nagyon fontos egy
   nyilt forr�s� szoftver eset�ben. Megv�d az olyan fennakad�sokt�l,
   amelyek komoly k�s�seket okoznak a fejleszt�sekben. Term�szetesen ez
   az infrastrukt�ra nem olcs�. Sz�mos havi �s �lland� kiad�sunk van. Ha
   a c�gednek van p�nze, amivel t�mogatn� er�fesz�t�seinket, k�rlek
   l�togass el a http://store.pgsql.com/shopping/ oldalra. B�r a weboldal
   "PostgreSQL, Inc"-k�nt eml�ti, a hozz�j�rul�sok kiz�r�lag a PostgreSQL
   fejleszt�sre �rtend�ek, �s nem egy meghat�rozott c�gnek. Ha jobban
   tetszik, k�ldhetsz csekket is a kapcsolati c�mek b�rmelyik�re.
   _________________________________________________________________
   Felhaszn�l�i kliens k�rd�sek 2.1) Van ODBC meghajt� PostgreSQL-hez?
   K�t ODBC meghajt� �rhet� el: PsqlODBC �s a OpenLink ODBC. A PsqlODBC a
   PostgreSQL kiad�s r�sze. Tov�bbi inform�ci� tal�lhat� a
   ftp://ftp.PostgreSQL.org/pub/odbc/ oldalon. Az OpenLink ODBC-t a
   http://www.openlinksw.com c�mr�l t�ltheted le. Ez az � szabv�nyos ODBC
   kliens szoftver�kkel m�k�dik, �gy minden �ltaluk t�mogatott platformon
   (Win, Mac, Unix, VMS) el�rhet� lesz a PostgreSQL szerver. Tal�n olyan
   vev�knek fogj�k eladni, akik kereskedelmi min�s�g� term�ket
   szeretn�nek kapni, de a freeware verzi� mindig el�rhet� lesz.
   K�rd�seidet a term�kkel kapcsolatban a postgres95@openlink.co.uk c�men
   teheted fel. Olvasd el az ODBC fejezetet is a programoz�k
   k�zik�nyv�ben! 2.2) Milyen eszk�z�k �llnak rendelkez�sre PostgreSQL
   Web fejleszt�sekhez? Egy sz�p bemutat� olvashat� az adatb�zissal
   t�mogatott web oldalanr�l a http://www.webreview.com weboldalon. A web
   integr�ci�hoz a PHP egy kiv�ll� szoftver. Let�lthet� a
   http://www.php.net c�mr�l. Komplexebb esetekre sokan haszn�lj�k a Perl
   fel�letet �s a CGI.pm vagy a mod_perl-t. 2.3) Van a PostgreSQL-hez
   grafikus felhaszn�l�i fel�let? Riport gener�tor? Be�gyazott lek�rdez�
   nyelv fel�let? Van egy sz�p PgAccess nev� grafikus fel�let�nk, ami
   riport gener�tork�nt is haszn�lhat�. A weboldal�t megtal�lod a
   http://www.pgaccess.org/ c�men. A disztrib�ci� tartalmazza az ecpg
   programot is, ami egy be�gyazott SQL lek�rdez�si fel�let C nyelvhez.
   2.4) Milyen programoz�si nyelvekkel lehet el�rni a PostgreSQL
   szervert? A k�vetkez�k: * C (libpq) * C++ (libpq++) * Embedded C
   (ecpg) * Java (jdbc) * Perl (DBD::Pg and perl5) * ODBC (odbc) * Python
   (PyGreSQL) * TCL (libpgtcl) * C Easy API (libpgeasy) * PHP ('pg_'
   functions, Pear::DB) Tov�bbi programoz�si fel�letek �rhet�ek el a
   http://www.PostgreSQL.org/interfaces.html �s a
   http://gborg.PostgreSQL.org oldalakon.
   _________________________________________________________________
   Adminisztr�ci�s k�rd�sek 3.1) Hogyan tudom a PostgreSQL-t
   /usr/local/pgsql -t�l elt�r� helyre install�lni? A configure script
   --prefix param�ter�nek haszn�lat�val. 3.2) AMikor elind�tom a
   postmaster-t, egy "Bad System Call"-t vagy core dump-ot kapok. Mi�rt?
   Sz�mos probl�ma lehet, de legel�ssz�r ellen�rizd le, hogy a kerneled
   System V kieg�sz�t�sekkel rendelkezik-e. A PostgreSQL haszn�lja a
   kernel osztott mem�ria �s szemafor API-j�t. 3.3) Amikor megpr�b�lom
   inditani a postmaster-t, "IpcMemoryCreate" hib�kat kapok. Mi�rt? Vagy
   nincs megfelel�en konfigur�lva a kerneled osztott mem�ria t�mogat�sa
   vagy meg kell nagyobb�tanod a maxim�lis osztott mem�ria m�retet. A
   pontos m�ret sz�ks�glet f�gg az architekt�r�dt�l �s att�l hogy h�ny
   buffert �s processzt konfigur�lsz a postmasternek. Legal�bb 1 MB
   ter�letre sz�ks�ged van. A PostgreSQL Adminisztr�ci� k�zik�nyvben
   olvashatsz r�szletesebb inform�ci�kat az osztott mem�ri�r�l �s a
   szemaforokr�l. 3.4) Amikor megpr�b�lom inditani a postmaster-t,
   "IpcSemaphoreCreate" hib�kat kapok. Mi�rt? Ha a hiba�zenet ez: "
   IpcSemaphoreCreate: semget failed (No space left on device)", akkor a
   kerneled konfigur�ci�ja nem tesz lehet�v� elegend� szemafort. A
   PostgreSQL szerver processzenk�nt 1 szemafort ig�nyel. Egy �tmeneti
   megold�s lehet az hogy a postmastert kevesebb maxim�lis processz
   sz�mmal inditod el. Haszn�ld a -D param�tert. Egy sokkal megfelel�bb
   megold�s az ha n�veled a kerneled SEMMNS �s SEMMNI param�tereit. A
   hib�s szemaforok is adat�zis lerobban�s�hoz is vezethet nagy terhel�s
   eset�n. Ha a hiba�zenet valami m�s, lehet hogy nincs szemaforok
   t�mogat�s forditva a kerneledbe. Olvasd el a PostgreSQL
   adminisztr�torok k�zik�nyv�ben az osztott mem�ri�r�l �s a
   szemaforokr�l sz�l� fejezetet. 3.5) Hogyan tudom kontroll�lni a m�s
   g�pekr�l �rkez� kapcsolat k�r�seket? Alap�rtelmez�sben a PostgreSQL a
   helyi kapcsolatokat Unix socketekkel val�s�tja meg. M�s g�pek nem
   lesznek k�pesek csatlakozni, ha nem enged�lyezed azt -i opci�val a
   postmasternek, �s nem �ll�tod be host a alap� azonos�t�st a
   pg_hba.conf �llom�nyban. Ezzel v�lnak lehet�v� a TCP/IP kapcsolatok.
   3.6) Hogyan tudom nagyobb teljes�tm�nyre hangolni az adatb�zisomat? Az
   indexel�s felt�tlen�l gyors�tja a lek�rdez�seket. Az EXPLAIN parancs
   lehet�v� teszi hogy l�sd, hogy a PostgreSQL mik�nt interpret�lja a
   lek�rdez�st �s melyik indexet haszn�lja. Ha sok INSERT m�veletet
   hajtassz v�gre, csin�ld nagy k�tegekben a COPY paranccsal. Ez sokkal
   gyorsabb mint az egyedi INSERT parancsok. M�sodszor: Azok a m�veletek,
   amelyek nincsenek tranzakci� blokkon bel�l, azok saj�t tranzakci�t
   ind�tanak. Sok m�veletet �rdemes egy tranzakci�n bel�l v�grehajtani.
   Ez cs�kkenti a tranzakci� kezel�s t�bbletidej�t. Az indexeket javasolt
   a nagy adatv�ltoz�sok el�tt elt�vol�tani, majd �jra l�trehizni. Sz�mos
   teljes�tm�ny jav�t� lehet�s�g van. Kikapcsolhatod az fsync() m�veletet
   a postmaster -o -F opci�kval val� ind�t�sakor. �gy nem fog az amugy
   lass� fsync() f�ggv�ny megh�v�dni minden tranzakci� v�g�n.
   Haszn�lhatod a postmaster -B opci�j�t is az osztott mem�ria szegmens
   m�ret�nek n�vel�s�hez. Ha az �rt�ket t�l magasra �ll�tod, lehet hogy a
   postmaster nem indul el, mert t�ll�pted az oper�ci�s rendszer �ltal
   megengedett m�retet. Minden buffer 8K m�ret� �s alap�rtelmez�sban 64
   buffer van. A -S opci�val n�velheted a szerver �tmeneti rendez�sekre
   fenntartott mem�ria ter�let�t. Az �rt�ket kilobyteban add meg. Az
   alap�rtelmezett �rt�k 512K. Haszn�lhatod a CLUSTER utas�t�st is, hogy
   a t�bl�kat egy indexnek megfelel�en csoportos�tsd. Olvasd el a CLUSTER
   k�zik�nyv oldalt tov�bbi r�szletek�rt. 3.7) Milyen hibakeres�
   lehet�s�gek �rhet�ek el? A PostgreSQL sz�mos lehet�s�ggel rendelkezik
   ami �rt�kes lehet a hiba- keres�sn�l. El�ssz�r is, futtathatod a
   configure scriptet --enable-cassert opci�val, sok assert()
   funkci�hiv�s ellen�rzi a program fut�s�t �s meg�llitja ha valami
   v�ratlan hiba t�rt�nik. Mind a postmaster �s a postgres sz�mos
   hibakeres� lehet�s�ggel rendelkezik. Mindig amikor elinditod a
   postmastert, gy�z�dj meg r�la, hogy a kimenetet log �llom�nyba k�ld�d.
   Igy: cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & Ez egy
   server.log �llom�nyt hoz l�tre a fels� PostgreSQL k�nyvt�rban. Ez az
   �llom�ny tartlamaz majd sz�mos hasznos inform�ci�t a szerverrel
   kapcsolatos probl�m�kr�l �s hib�kr�l. A postmaster -d opci�j�val lehet
   r�szletesebb hibakeres� inform�ci�t kapni. A -d opci�hoz meg kell
   hat�rozni egy hiba szintet. Vigy�zz, a magas hibakeres� szint nagy log
   �llom�nyt okozhat. Ha a postmaster nem fut, akkor futtathatod a
   postgres szervert parancssorb�l is, �s az SQL kifejez�st k�zvetlen�l
   ennek adhatod �t. Ez csak hibakeres�s eset�ben javasolt. Az �j sor a
   kifejez�s v�g�t jelenti, nem a pontosvessz�. Ha hibakeres� opci�kkal
   forditottad a szervert, haszn�lhatsz egy debuggert is hogy l�sd hogy
   mi t�rt�nik. Mivel igy a szervert nem a postmaster inditotta, nem
   t�bbfelhaszn�l�s k�rnyezetk�nt fut, igy a z�rol�si �s a szerverek
   k�z�tti kommunik�ci�s hiba jelens�gek nem jelentkeznek. Ha m�r fut a
   postmaster, indits egy psql-t, �s n�zd meg a szerver processz PID-j�t!
   Egy debuggert haszn�lhatsz a processzhez csatlakoz�shoz. Be�llithatsz
   t�r�spontokat �s elindithatsz lek�rdez�seket. Ha a postgres indit�sban
   keresel hib�t, a PGOPTIONS k�rnyezeti v�ltoz�t �llitsd be "-W n"
   �rt�kre. Ez n m�sodperc v�rakoz�st id�z el�, igy tudsz csatlakozni a
   processzhez, el tdsz hejezni t�r�spontokat, majd folytathatod a
   ind�t�st. A postgres program -s, -A �s -t opci�i is nagyon hasznosak
   lehetnek hibakeres�sn�l �s teljes�tm�ny m�r�sn�l. Profiling
   leht�s�ggel is fordithatod a szervert, hogy l�sd melyik funkci�k
   foglalj�k el a fut�si id�t. A szerver profile �llom�nyai a
   pgsql/data/base/dbname k�nzvt�rba ker�lnek, a kliens profile
   �llom�nyok az aktu�lis k�nyvt�rba. Linuxon ehhez sz�ks�ges a
   -DLINUX_PROFILE ford�t�si direktiva. 3.8) Mi�rt kapok "Sorry, too many
   clients" (T�l sok kliens) hib�t csatlakoz�sn�l? N�velned kell a
   postmaster egyidej�leg futtatott szerver processz sz�m korl�tj�t. Az
   alap�rtelmezett korl�t 32 processz. Ezt n�velhetjed �gy, hogy
   �jrainditod a postmastert �s -N opci�val meghat�rotod az �j �rt�ket,
   vagy m�dositod a postgresql.conf-ot. Ne felejtsd el, hogy ha n�veled a
   szerver processzek maxim�lis sz�m�t, akkor bufferek sz�m�t is n�velned
   kell, legal�bb a processzek sz�m�nak k�tszeres�re. Nagy processz
   sz�mokeset�ben val�szin�leg a Unix konfigur�ci�s param�tereken is
   n�velni kell. Ellen�rizd a SHMMAX (az osztott mem�ria szegmensek
   maxim�lis m�rete), a SEMMNS �s a SEMMNI (a szemaforok maxim�lis
   sz�ma), az NPROC (a processzek maxim�lis sz�ma), a MAXUPRC
   (felhaszn�l�nk�nti maxim�lis processz sz�m) �s a NFILE �s NINODE (a
   megnzitott �llom�nzok maxim�lis sz�ma) param�tereket. A PostgreSQL
   az�rt korl�tozza k�l�n a processz sz�mot, hogy a rendszeredet ne
   terhelhesse meg t�ls�gosan. A PostgreSQL 6.5 verzi�ban a maxim�lis
   szerver processz sz�m 64 volt �s a m�dosit�shoz bele kellett irni a
   include/storage/sinvaladt.h �llom�nyba �s �jra kellett forditani a
   servert. 3.9) Mi van pgsql_tmp k�nyvt�rban? Ez a k�nyvt�r a lek�rdez�s
   v�grehajt� �ltal l�trehezott �tmeneti �llom�nyokat tartalmazza.
   P�ld�ul ha egy rendez�st kell v�grehajtani egy ORDER BY kifejez�s
   miatt �s a m?velet t�bb mem�ri�t vesz ig�nybe, mint amennyit a -S
   param�ter megenged, akkor az �tmeneti k�nyvt�rban hoz l�tre egy
   �llom�nyt a fennmarad� adat t�rol�s�ra. Az �tmeneti �llom�nyok
   t�bbnyire t�rl?dnek, de meg is maradhat ha p�ld�ul v�ratlan hib�val
   le�ll a szerver egy rendez�s k�zben. Indit�skor �s le�llit�skor ezeket
   az �llom�nyokat t�rli a postmaster. 3.10) Mi�rt kell dumpolni �s
   �jrat�lteni PostgreSQL kiad�s v�lt�s�n�l? A PostgreSQL csapat csak
   apr�bb v�ltoztat�sokat hajt v�gre a kisebb kiad�sok k�z�tt, igy ha 7.2
   verzi�r�l �llsz �t 7.2.1 verzi�ra, akkor nem sz�ks�ges kidumplonod az
   adatb�zist. A nagy kiad�sok eset�ben (p�ld�ul verzi�r�l 7.3-ra
   �tt�r�sn�l) v�ltozik a belsi� adatstrukt�r�k �s adat�llom�nyok
   form�tuma. Ezek a v�ltoz�sok gyakran nagyon �sszetettek, ez�rt ink�b
   nem tartunk fenn visszafel� kompatibilit�st. A dump az adatot
   �ltal�nos form�tumban irja ki, majd az �j form�tumban lehet azt
   visszat�leni. Azokban a kiad�sokban, amelyek k�z�tt az adat form�tum
   nem v�ltozik, a pg_upgrade program haszn�lhat� dumpol�s �s
   helzre�llit�s n�lk�l.
   _________________________________________________________________
   M�k�dtet�si k�rd�sek 4.1) Mi a k�l�nbs�g a bin�ris �s a norm�l
   kurzorok k�z�tt? N�zd meg a DECLARE dokument�ci�j�t. 4.2) Hogyan tudom
   select-elni a lek�rdez�s els� p�r sor�t? Olvasd el a FETCH
   dokument�ci�j�t, vagy haszn�ld a SELECT LIMIT-et. Az eg�sz lek�rdez�st
   v�gre kell hajtani, m�g akkor is, ha csak az els� p�r sort akarod
   megkapni. Gondolj arra, hogy a lek�rdez�sben lehet ORDER BY is. Ha van
   olyan index, ami megfelel az ORDER BY kifejez�sednek, a PostgreSQL
   k�pes lehet az els� n�h�ny rekord visszaad�s�ra, vagy a teljes
   lek�rdez�snek le kell futnia, amig a k�rt rekordok le nem
   gener�l�dnak. 4.3) Hogy tudom kilist�zni a t�bl�kat vagy m�s dolgokat
   a PostgreSQL-ben? Elolvashatod a psql forr�s k�dj�ban a
   pgsql/src/bin/psql/describe.c �llom�nyban. Ez SQL parancsokat
   tartalmaz, amelyek azokat a kimeneteket �llitj�k el�, amiket a per
   jellel kezd�d� parancsok adnak vissza. 4.4) Hogyan tudok elt�vol�tani
   egy oszlopot egy t�bl�b�l? Ez a funkcionalit�s a 7.3 verzi�t�l kezdve
   �rhet� el az ALTER TABLE DROP COLUMN -nal. A r�gebbi verti�kban igy
   lehet v�grehajtani: BEGIN; LOCK TABLE old_table; SELECT ... -- minden
   oszlopot, kiv�tel amit t�r�lni szeretn�l INTO TABLE new_table FROM
   old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO
   old_table; COMMIT; 4.5) Mi a maxim�lis m�rete egy sornak, egy t�bl�nak
   vagy egy adatb�zisnak? A korl�tok: adatb�zis: korl�tlan (1 TB az
   �ltalunk ismert lagnagyobb) t�bla: 16 TB rekord/sor 1.6TB mez� 1 GB a
   t�bla sorainak sz�ma: korl�tlan a t�bla oszlopainak sz�ma: 250-1600 az
   oszlop nevekt�l f�gg�en A t�bla indexeinek sz�ma: korl�tlan
   Term�szetesen nem igaz�n korl�tlan, de a t�rter�let, mem�ria �s egy�b
   k�ls� t�nyez�k korl�tozz�k. A teljesitm�ny romolhat, ha ezek az
   �rt�kek szokatlanul nagyok. A 16 TB-os legnagyobb t�bla m�ret nem
   ig�nyel nagy �llom�ny t�mogat�st. A nagy t�bl�k t�bb 1 GB m�ret�
   �llom�nyba ker�lnek, igy az �llom�ny rendszer korl�tai nem l�nyegesek.
   A maxim�lis t�bla m�ret �s az oszlopok maxim�lis oszlop sz�m
   n�velhet�, ha az alap�rtelmezett blokkm�retet 32k-ra n�veled. 4.6)
   Mekkora adatb�zis lemez ter�let sz�ks�ges egy tipikus sz�veg �llom�ny
   t�rol�s�hoz? A PostgreSQL ak�r a sz�veg �llom�ny helyig�nz�nek
   �tsz�r�s�t is elfoglalhaja. K�pzelj el p�ld�ul, egy 100.000 soros
   sz�veget, aminek minde sora egy sz�mb�l �s egy sz�vegb�l �ll. Tegy�k
   el, hogy �tlagosan 20 byte hossz� sz�vegek. Ez a sz�veg�llom�ny
   k�r�lbel�l 2.8 MB helyet foglalna el. A t�bla ami a fenti
   adatszerkezetet elt�roln�, k�r�lbel�l 6.4 MB-os lenne. Ezt a
   k�vetkez�k�ppen sz�molhatjuk ki: 36 byte: sor fejl�c 24 byte: egy int
   mez� + egy sz�veg mez� 4 byte: mutato
   --------------------------------------- 64 byte soronkent. Az adat
   oldal m�rete a PostgreSQL-ben 8192 byte, igy 8192 / 64 = 128 rekord
   adatb�zis oldalank�nt (lefel� kerekitve). 100000 rekord / 128 rekord
   oldalank�nt = 782 adat oldal (felel� kerekitve). 782 adatb�zis oldal *
   8192 byte olalank�nt = 6,406,144 byte (6.4 MB) Az indexek nem
   foglalnak t�l sokat, de tartalmazz�k az indexelt adatot, igy ezek is
   lehetnek nagyok. A NULL �rt�kek bitt�rk�pben vannak t�rolva, igy kev�s
   helyet foglanak. 4.7) Hogy tudhatom meg milyen t�bl�k, indexek,
   adatb�zisok vagy felhaszn�l�k vannak defini�lva? A psql-ben tal�lsz
   sz�mos '\' karakterrel kezd�d� utas�t�st az ilyen inform�ci�k
   list�z�s�ra. A '\?' segits�g�vel tudot kilist�zni ezeket a
   parancsokat. Ezen kiv�l vannak rendszer t�bl�k, amelyek nevei 'pg_'
   -vel kezd�dnek. Pr�b�ld ki a pgsql/src/tutorial/syscat.source
   �llom�nyt is. Ez sok p�ld�t tartalmaz az rendszert�bl�kon v�grehajtott
   SELECT-ekr�l. 4.8) A lek�rdez�seim lass�ak, vagy nem haszn�lj�k az
   indexeket. Mi�rt? Az indexeket nem haszn�lja a szerver minden
   lek�rdez�sn�l automatikusan. Csak akkor haszn�l indexet, ha a t�bla
   m�rete egy megadott als� hat�r felett van, �s a lek�rdez�s csak a
   sorok egy kis r�sz�t �rinti. Ez az�rt van, mert a v�letlen hozz�f�r�s
   m�g mindig lassabb lehet mint az t�bla szekvenci�lis olvas�sa. Hogy a
   PostgreSQL meg tudja hat�rozni hogy kell-e indexet haszn�lni, l�teznie
   kell egy statisztik�nak a t�bl�r�l. Ez a statisztikai adatok a VAACUM
   ANALYZE vagy az egyszer� ANALYZE m�veletek sor�n j�nnek l�tre. A
   statisztikai adatok felhaszn�l�s�val az optimaliz�l� meg tudja
   hat�rozni, hogy h�ny sor van a t�bl�ban, �s el tudja d�nteni, hogy
   haszn�ljon-e indexet. A statisztiaki adatgy�jt�st id�nk�nt v�gre kell
   hajtani, ahogy a t�bla adatai v�ltoznak. Az indexeket norm�lis esetben
   nem haszn�lja az ORDER BY vagy az OUTER JOIN. A szekvenci�lis olvas�s
   �ltal�ban gyorsabb, mint az index keres�s egy nagy t�bl�ban. B�r a
   LIMIT az ORDER BY-val kombin�lva haszn�lhat indexet, mert a t�bla csak
   kis r�sze �rintett. B�r a MIN �s MAX SQL funkci�k sem haszn�lj�k az
   indexeket, ezeket az �rt�keket egy ORDER BY + LIMIT lek�rdez�ssel is
   le lehet k�rdezni: SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1;
   Amikor helyettes�t� jel oper�torokat haszn�lsz, mint a LIKE kulcssz�
   vagy a ~, az indexeket csak bizonyos k�r�lm�nyek k�z�tt lehet
   haszn�lni: * A keres� string kezdete a keres�si minta elej�n kell hogy
   legyen. p�ld�ul: + A LIKE mint�k nem kezd�dhetnek % jellel. + ~
   (regexp) kifejez�sek nem kezd�dhetnek ^ jellel. * A keres�si kifejez�s
   nem kezd�dhet karakter oszt�llyal. * A case-insensitive keres�s
   (ILIKE, ~*) nem haszn�lnak indexet ehelyett funkcion�lis indexet
   haszn�lnak, amit a 4.12 pontban tal�lhatsz. * Az alap�rtelmezett C
   hellyel kell futtatni az initdb-t. 4.9) Hogy tudom ellen�rizni, hogy
   optimaliz�lta a lek�rdez�s optimaliz�l� a lek�rdez�sem? Olvasd el a
   dokument�ci� EXPLAIN-r�l sz�l� r�sz�t. 4.10) Mi az R-tree index? Az
   R-tree index a t�rbeli adat indexel�s�re alkalmas. Egy hash index nem
   k�pes tartom�ny keres�sekre. A B-tree index csak egy dimenzi�n kezeli
   a tartom�ny keres�seket. P�ld�ul ha az indexet egy pont (point
   adatt�pus) t�pus� mez.re �p�tj�k, gyorsabban kezeli az olyan jelleg�
   lek�rdez�seket, mint egy adott k�rben tal�lhat� pontok. Az R-tree
   tervez�si mint�t eredetileg le�r� sz�veg: 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. Ezt olvashatod
   Stonebraker "Readings in Database Systems" c. k�nyv�ben. A be�p�tett
   R-tree kezelni tudj�k a soksz�geket (polygon adatt�pus) �s a dobozokat
   (box). Elm�letileg, az R-tree kiterjeszthet� tov�bbi dimenzi�kra is.
   Gyakorlatilag ezen dolgoznod kell egy kicsit, �s m�g nincs
   dokument�ci�nk arr�l hogy az hogyan m�k�dik. 4.11) Mi a Genetic Query
   Optimizer? A GEQO modul a lek�rdez�s optimaliz�ci� sebess�g�t n�veli
   nagy mennyis�g� t�bla �sszekapcsol�sa eset�n. Lehet�v� teszi a nagy
   lek�rdez�sek v�grehajt�s�t nem teljes keres�ssel. 4.12) Hogyan tudok
   regexp keres�st �s case-insensitive regexp keres�st haszn�lni? Hogyan
   tudok indexet haszn�lni case-insensitive keres�shez? A ~ oper�tor hajt
   v�gre regul�ris kifejez�s (regexp) �rtelmez�st, a ~* ennek
   case-insensitive v�ltozata. A LIKE case-insensitive v�ltozata az
   ILIKE. A case-insensitive egyenl�s�g m�veleteket �ltal�ban igy hajtjuk
   v�gre: SELECT * FROM tab WHERE lower(col) = 'abc'; Ez nem fog indexet
   haszn�lni, b�r l�trehozhatsz egy funkci� indexet: CREATE INDEX
   tabindex ON tab (lower(col)); 4.13) Hogyan tudom �szlelni egy
   lek�rdez�sben, ha egy mez� NULL? Haszn�ld "IS NULL"-t �s az "IS NOT
   NULL"-t. 4.14) Mi a k�l�nbs�g a k�l�nb�z� karaktert�pusok k�z�tt? Type
   Internal Name Notes --------------------------------------------------
   "char" char 1 character CHAR(n) bpchar blank padded to the specified
   fixed length VARCHAR(n) varchar size specifies maximum length, no
   padding TEXT text no specific upper limit on length BYTEA bytea
   variable-length byte array (null-byte safe) L�tni fogod a bels�
   elnevez�s�ket, ha tanulm�nyozod a rendszert�bl�kat �s n�h�ny
   hiba�zenetet. Az ut�bbi n�gy a "varlena" t�pusok, ami a t�rol�suk
   m�dj�ra utal: az els� 4 byte a lemezen a hossz�s�g, a t�bbi az adat. A
   val�di m�ret teh�t nagyobb mint a deklar�lt hossz�s�g.Ezek azadatok
   t�m�ritve t�rol�dnak el, igy kevesebb helyet foglalnek el az el�re
   sz�mitottn�l. A CHAR(n) a legjobb megold�s, ha stabil hossz�s�g�
   stringet t�rolsz. A VARCHAR(n) j� arra az esetekre, ha a hossz�s�g
   v�ltozik, de van fels� korl�tja. A TEXT t�pus korl�tlan hossz�s�g� (1
   GB-ig) sz�vegek t�rol�s�ra alklamas. A BYTEA bin�ris adatok t�rol�s�ra
   van. A teljesitm�ny mutat�i hasonl�ak ezenek a t�pusoknak. 4.15.1)
   Hogyan tudok l�trehozni automatikusan n�vekv� �rt�k� mez�t? A
   PostgreSQL rendelkezik egy SERIAL adatt�pussal. Ez egy szekvenci�t �s
   egy indexet hoz l�tre az oszlopon. P�ld�ul ez: CREATE TABLE person (
   id SERIAL, name TEXT ); ugyanezt jelenti: 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 ); A szekvenci�kkal kapcsolatban olvasd
   el a create_sequence man oldalt. A sor OID-j�t is haszn�lhatod egyedi
   azonosit�k�nt, b�r ebben az esetben figyelj a pg_gump haszn�lat�n�l a
   -o opci�ra (COPY WITH OIDS, m�sol�s OID-dal), hogy meg?rizd az
   �rt�keket. 4.15.2) Hogyan kaphatom meg egy SERIAL besz�r�s �rt�k�t?
   Egy megold�s erre az, ha a nextval() funkci�val megszerzed az �rt�ket
   m�g miel�tt besz�rn�d az adatot a t�bl�ba. Erre itt l�thatsz egy
   p�ld�t: new_id = execute("SELECT nextval('person_id_seq')");
   execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
   Pascal')"); Esetleg lek�rdezheted a szekvencia �llapot�t a sor
   besz�r�sa ut�n. execute("INSERT INTO person (name) VALUES ('Blaise
   Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); V�g�l
   pedig, haszn�lhatod a visszaadott OID �rt�ket is, b�r ez a lehet�
   legkev�sb� portolhat�. Perl DBI-ben, Edmund Mergl DBD::Pg modulj�ban
   az OID �rt�k haszn�lhat� a $sth->execute() ut�n
   ($sth->{pg_oid_status}). 4.15.3) A currval() �s a nextval() nem teremt
   holtpont vesz�lyes helyzetet a felhaszn�l�k k�z�tt? Nem. A currval()
   funkci� a szerver processzed �ltal adott �rt�ket adja vissza, nem
   pedig a t�bbi szerver processz �ltal adottat. 4.15.4) Mi�rt nem
   haszn�l�dnak fel �jra a sequence sz�mok tranzakci� abort eset�n? Mi�rt
   vannak probl�m�k a serial oszlopok sz�moz�s�val? A p�rhuzamoss�g
   fejleszt�se �rdek�ben a sorozat sz�mokat k�r�sre adja ki a szerver
   fut� tranzakci�knak, �s azokat nem z�rja, amig a tranzakci� v�get nem
   �r. Ez jukakat okoz a sz�moz�sokban a visszaforditott tranzakci�k
   miatt. 4.16) Mi a OID? Mi a TID? Az OID a PostgreSQL egyedi sor
   azonosit�ja. Minden sor, ami l�trej�n a szerveren, kap egy OID-t.
   Minden OID, amit az initdb alatt j�n l�tre 16384 alatt van (l�sd
   include/access/transam.h). Minden, felhaszn�l� �ltal l�trehozott OID
   legal�bb ennyi. Alap�rtelmez�sben, az OID nem csak a t�bl�ban vagy az
   adatb�zisban egyedi, hanem a teljes PostgreSQL adatb�zis rendszerben.
   A PostgreSQL az OID-okat a bels� t�bl�iban haszn�lja a sorok t�bl�k
   k�z�tt �sszekapcsol�s�hoz. Ezek az OID-k haszn�lhat�ak a rekordok
   azonosit�s�ra is amikor t�bl�kat csatol �ssze a szerver (JOIN). Az
   OID-ot haszn�lhatod mez� t�pusk�nt is, �s indexelheted is. Az OID
   �rt�k egy k�zponti ter�letr�l sz�rmazik, amit minden szerver processz
   haszn�l. Ha az OID-ot valami m�sra szeretn�d cser�lni: 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'; Az OID 4 byte-os integer �rt�kk�nt t�rol�dik, igy
   4 milli�rdn�l t�lcsordul. M�g soha senki nem jelezte hogy ez t�rt�nt
   volna, �s ezt a korl�tot igyeksz�nk elt�volitani, m�g miel�tt b�rki
   �szrevenn�. A TID a fizikai sorok blokk �s offszet c�mmel val�
   azonosit�s�ra szolg�l. A TID v�ltozik minden rekord m�dosit�s �s
   t�rl�s alkalm�val. Ezeket az indexek haszn�lj�k hogy a fizikai sort
   gyorsan megtal�lj�k. 4.17) Mi a PostgreSQL-ben haszn�lt kifejez�sek
   jelent�se? N�hol a forr�s k�dban �s a dokumnet�ci�ban tal�lhat�ak
   kifejez�sek, amelyek �ltal�nosabb jelent�ssel b�rnak. Itt van n�h�ny:
   * t�bla (table), rel�ci� (relation), oszt�ly (class) * sor (row),
   rekord (record), tuple (nincs magyar jelent�s) * oszlop (column), mez�
   (field), attributum (attribute) * retrieve, select * helyettesit
   (replace), m�dosit (update) * hozz�f�z (append), besz�r (insert) *
   OID, sorozat �rt�k (serial value) * portal, cursor * range variable,
   t�bla n�v, t�bla alias Az �ltal�nos adatb�zis kifejez�sek
   �sszefoglal�j�t itt olvashat�:
   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
   /glossary.html 4.18) Mi�rt kapom ezt a hib�t: "ERROR: Memory exhausted
   in AllocSetAlloc()"? Lehet hogy elfogyott a virtu�lis mem�ri�d, vagy a
   kerneled er�forr�s korl�tai alacsonyak. Pr�b�ld ki ezt miel�tt
   elinditan�d a postmastert: ulimit -d 262144 limit datasize 256m A
   shellt�l f�gg�en ezek k�z�l csak az egyik fut majd le, de a processzek
   adatszegmens�t sokkal magasabbra �llitja, ami tal�n el�g lesz a
   lek�rdez�s v�grehajt�s�hoz. Ez az utas�t�s a jelenlegi processzre (a
   shelled) �rv�nyes, �s minden �ltala l�trehozott processzre. Ha
   probl�m�d van az SQL klienssel, mert a szerver t�l nagy adatot k�ld
   vissza, pr�b�ld meg e klienssel is ugyanezt. 4.19) Hogyan tudhatom meg
   PostgreSQL, milyen verzi�t futtatok? A psql programban select
   version(); 4.20) Mi�rt kapok "invalid large obj descriptor" hib�t nagy
   objektumok kezel�s�n�l? A nagy objektumok kezel�s�t egy tranzakci�s
   blokkban helyezd el. (BEGIN �s COMMIT k�z�tt) Jelenleg a PostgreSQL
   ezt a szab�lyt azzal teszi k�telez�v�, hogy a tranzakci� v�g�n a nagy
   objektumokat lez�rja, igy a tranzakci� ut�n az els� m�velet amit az
   objektumon v�grahajtan�l hib�s lesz. Ha olyan programoz�si fel�letet
   haszn�lsz mint az ODBC vagy a JDBC akkor val�szin�leg ki kell
   kapcsolnod az auto-commit-ot. 4.21) Hogy hozhatok l�tre olyan
   oszlopot, aminek alap�rtelmezett �r�tke a jelenlegi id�? Haszn�ld a
   CURRENT_TIMESTAMP -ot: CREATE TABLE test (x int, modtime timestamp
   DEFAULT CURRENT_TIMESTAMP ); 4.22) Mi�rt olyan lass�ak az
   al-lek�rdez�seim IN-nel? Jelenleg az al-lek�rdez�seket a k�ls�
   lek�rdez�shez csatoljuk. Ha az allek�rdez�s csak kev�s sort eredm�nyez
   �s a k�ls� lek�rdez�s sokat, akkor az IN is gyors. Az EXISTS kulcssz�
   haszn�lat�val gyorsithatod a lek�rdez�seket. SELECT * FROM tab WHERE
   col IN (SELECT subcol FROM subtab); EXISTS haszn�lat�val: SELECT *
   FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
   Ahhoz hogy ez gyorsan fusson le, a subcol indexelt oszlopnak kell hogy
   legyen. Rem�lj�k ezt a korl�tot siker�l hamarosan legy�zn�nk. 4.23)
   Hogyan tudok outer join-t v�grehajtani? A PostgreSQL a szabv�nyos SQL
   szintaktik�t k�veti. Itt van k�t p�lda: SELECT * FROM t1 LEFT OUTER
   JOIN t2 ON (t1.col = t2.col); vagy SELECT * FROM t1 LEFT OUTER JOIN t2
   USING (col); Ezek az identikus lek�rdez�sek �sszekapcsolj�k a t1.col
   �s a t2.col mez�ket, �s a t1 b�rmelyik kapcsolatlan sor�t is
   visszadj�k. A RIGHT JOIN a t2 kapcsolatlan sorait adta volna vissza, a
   FULL JOIN pedig a kapcsolt, �s mindk�t t�bla kapcsolatlan sorait adja.
   Az OUTER kulcssz� opcion�lis, a LEFT, RIGHT �s FULL JOIN
   szintaktikailag helyes. Az �tlagos �sszekapcsol�sokat INNER JOIN-nak
   nevezz�k. Az el�z� kiad�sokban a OUTER JOIN lek�rdez�seket UNION �s
   NOT IN kulcsszavakkal lehetett szimul�lni. P�ld�ul a tab1 �s a tab2
   �sszekapcsol�sa: SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE
   tab1.col1 = tab2.col1 UNION ALL SELECT tab1.col1, NULL FROM tab1 WHERE
   tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) ORDER BY col1 4.24)
   Hogyan tudok t�bb adatb�zison v�grehajtani lek�rdez�st? Arra nincs
   lehet�s�g, hogy m�s adatb�zisb�l k�rdezz le adatot. Mivel a PostgreSQL
   adatb�zis specifikus rendszer t�bl�kat t�lt be, bizonytalan hogy egy
   adatb�zisok k�z�tti lek�rdez�snek hogyan kellene viselkednie. A
   contrib/dblink k�nyvt�rban tal�lsz egy megold�st erre, ami funkci�
   hiv�sok segits�g�vel m�k�dik. Persze, a kliens hozhat l�tre szimult�n
   kapcsolatot t�bb adatb�zissal, �s �sszef�s�lheti az eredm�nyeket.
   4.25) Hogy tudok t�bb soros vagy oszlopos eredm�nyt visszaadni egy
   funkci�b�l? A PL/pgSQL t�rolt elj�r�s nyelvvel refcursor
   haszn�lat�val. R�szletesen itt:
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html 4.26)
   Mi�rt nem tudom megbizhat�an l�trehozni �s t�r�lni az �tmeneti
   t�bl�kat a PL/pgSQL funkci�kban? A PL/pgSQL cacheli a funkci�k
   tartalm�t, aminek az a szerencs�tlen mell�khat�sa, hogy ha egy
   PL/pgSQL funkci� haszn�l egy �tmeneti t�bl�t, ami k�s?bb t�rl�dik majd
   ujra l�trej�n, akkor az �jra lefut� funkci� nem fogja megtal�lni a
   t�bl�t, mert a cache v�ltozat a r�gi t�bl�ra tartalmaz mutat�t. A
   megold�s erre az EXECUTE utas�t�s haszn�lata az �tmeneti t�bl�k
   kezel�s�re PL/pgSQL-ben. Ez a lek�rdez�s �jraford�t�s�t fogja
   el�id�zni minden alkalommal. 4.27) Milyen replik�ci�s lehet�s�gek
   vannak? Sz�mos master/slave replik�ci�s lehet�s�g l�tezik. Ez csak a
   master adatb�zis sz�m�ra teszi lehet�v�, hogy az adatokat v�ltoztassa.
   Egy List�t olvashatsz ezekr�l itt:
   http://gborg.PostgreSQL.org/genpage?replication_research Egy
   t�bbfelhaszn�l�s replik�ci�s rendszer k�sz�l itt:
   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
   4.28) Milyen k�dol�si lehet�s�gek vannak? - A contrib/pgcrypto
   tartlamaz sz�mos SQL lek�rdez�sben haszn�lhat� k�dol�st. - A
   kliens-szerver kommunik�ci� rejtjelez�s�re a hostssl haszn�lhat�. Ezt
   a pg_hba.conf-ben enged�lyeztheted. - Az adatb�zis felhszn�l�k
   jelszavait t�rol�skor k�dolja a rendszer. R�gebbi verzi�kban a
   PASSWORD_ENCRYPTION opci�val lehetett bekapcsolni. - A szerveren
   haszn�lhatsz k�dolt f�jrendszert.
   _________________________________________________________________ A
   PostgreSQL kiterjeszt�se 5.1) �rtam egy felhaszn�l�i funkci�t. Mi�rt
   core dumpol az adatb�zis amikor haszn�lom? Sz�mos probl�ma lehet.
   El�bb prob�ld ki a funkci�dat egy k�l�n�ll� alkalmaz�sban. 5.2) Hogyan
   lehet �j adatt�pusokat �s funkci�kat hozz�adni a PostgreSQL
   disztrib�ci�hoz? K�ldd el a kieg�sz�t�seid a pgsql-hackers levelez�si
   list�ra �s a forr�skodjaid v�g�l a contrib-ban k�tnek ki. 5.3) Hogyan
   lehet olyan C funkci�t �rni, ami Tuple-t ad vissza? A 7.3 verzi�t�l
   kezdve a PostgreSQL t�mogatja a t�bl�zatokat viszzaad� funkci�kat C,
   PL/pgSQL �s SQL nyelveken. B�vebb dokument�ci�t a Programoz�
   k�zik�nyvben tal�lsz. Egy C p�lda funkci� tal�lhat� a
   contrib/tablefunc k�nyvt�rban. 5.4) Megv�ltoztattam egy forr�s
   �llom�nyt. Mi�rt nem v�ltozik a bin�ris �jraford�t�s ut�n? A
   Makefile-ok nem ismerik a include �llom�nyok megfelel� f�gg�s�geit.
   V�gre kell hajtanod egy make clean-t, majd �jra egy make-t. Ha GCC-t
   haszn�lsz felhaszn�lhatod a configure script --enable-depend opci�j�t,
   �gy a compiler maga fogja ellen�rizni a f�gg�s�geket.