Update Russian FAQ.
authorBruce Momjian <[email protected]>
Wed, 28 Sep 2005 11:33:42 +0000 (11:33 +0000)
committerBruce Momjian <[email protected]>
Wed, 28 Sep 2005 11:33:42 +0000 (11:33 +0000)
Victor Vislobokov

doc/FAQ_AIX
doc/FAQ_russian
doc/src/FAQ/FAQ_russian.html

index 64ccccb2218ec3483196ab417d57c26a4e71f76b..430ab0d750a16fd9830ac63617e1da3847f2a8ba 100644 (file)
@@ -1,5 +1,5 @@
 From: Zeugswetter Andreas <[email protected]>
-$Date: 2005/09/22 22:14:10 $
+$Date: 2005/09/28 11:33:41 $
 
 On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
 (vac.C 5.0.1) passes all regression tests.  Other versions of OS and
index e74ba789ce551e900d78f1bef32a0d3113365123..5637f548c5b4ad576cba42ddfbf9facdaabf4dcd 100644 (file)
 
                Otvety na chasto zadavaemye voprosy po PostgreSQL
                                        
-   Data poslednego obnovleniya: Sreda 15 dekabrya 20:06:34 EST 2004
+   Data poslednego obnovleniya: Pyatnica 16 sentyabrya 14:07:22 EDT 2005
    
    Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
    
-   Perevel na russkij: Viktor Vislobokov (corochoone@perm.ru)
+   Pereviol na russkij: Viktor Vislobokov (admin@linuxshare.ru)
    
    Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
-   http://www.PostgreSQL.org/docs/faqs/FAQ.html.
+   http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
    
    Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti
-   na http://www.PostgreSQL.org/docs/index.html.
+   na http://www.PostgreSQL.org/docs/faq/.
      _________________________________________________________________
    
                               Obschie voprosy
                                       
    1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
    1.2) Kakovy avtorskie prava na PostgreSQL?
-   1.3) Na kakih Unix platformah rabotaet PostgreSQL?
-   1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
-   1.5) Gde mozhno vzyat' PostgreSQL?
-   1.6) Gde poluchit' podderzhku?
+   1.3) Na kakih platformah rabotaet PostgreSQL?
+   1.4) Gde mozhno vzyat' PostgreSQL?
+   1.5) Gde poluchit' podderzhku?
+   1.6) Kak mne soobschit' ob oshibke?
    1.7) Kakaya versiya poslednyaya?
    1.8) Kakaya dokumentaciya imeetsya v nalichii?
    1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
    vozmozhnostyah?
    1.10) Kak nauchit'sya SQL?
-   1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
-   1.12) Kak prisoedinitsya k komande razrabotchikov?
-   1.13) Kak otpravit' soobschenie ob oshibke?
-   1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
-   1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
+   1.11) Kak prisoedinitsya k komande razrabotchikov?
+   1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
+   1.13) Kto upravlyaet PostgreSQL?
    
                  Voprosy pol'zovatelej po klientskoj chasti
                                       
-   2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
+   2.1) Kakie interfejsy est' dlya PostgreSQL?
    2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL
    cherez Web?
    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
-   2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
    
                          Voprosy administrirovaniya
                                       
    3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot
    /usr/local/pgsql?
-   3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad
-   System Call ili soobschenie core dumped. Pochemu?
-   3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
-   IpcMemoryCreate. Pochemu?
-   3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
-   IpcSemaphoreCreate. Pochemu?
-   3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
-   3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
+   3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
+   3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
    proizvoditel'nosti?
-   3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
-   3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
+   3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
+   3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
    pytayus' podklyuchit'sya k baze?
-   3.9) CHto nahoditsya v kataloge pgsql_tmp?
-   3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
+   3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
    PostgreSQL?
-   3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
+   3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
    
                            Voprosy `ekspluatacii
                                       
-   4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
-   4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
+   4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
    zaprosa? Dlya proizvol'noj stroki?
-   4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
-   4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
-   4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
-   4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya
+   4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli
+   suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya
+   polucheniya `etoj informacii?
+   4.3) Kak izmenit' tip dannyh kolonki?
+   4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy
+   dannyh?
+   4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya
    sohraneniya dannyh iz obychnogo tekstovogo fajla?
-   4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy,
-   indeksy, bazy dannyh i pol'zovateli?
-   4.8) U menya medlenno rabotayut zaprosy ili ne proishodit
-   ispol'zovaniya indeksov. Pochemu?
-   4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
-   4.10) CHto takoe R-tree indeks?
-   4.11) CHto takoe Genetic Query Optimizer?
-   4.12) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk
+   4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut
+   moi indeksy?
+   4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
+   4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk
    nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne
    ispol'zovat' indeks dlya poiska nezavisimogo ot registra bukv?
-   4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
-   kakom-libo zaprose?
-   4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
-   4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
-   4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
-   4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
+   4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
+   zaprose? Mogu ya otsortirovat' polya NULL ili net?
+   4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
+   4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
+   4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
+   4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
    nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
-   4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
+   4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
    snova pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii
    v kolonke, gde ya ispol'zuyu posledovatel'nost'/SERIAL?
-   4.16) CHto takoe OID? CHto takoe TID?
-   4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
-   4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
+   4.12) CHto takoe OID? CHto takoe CTID?
+   4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
    AllocSetAlloc()"?
-   4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
-   4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
-   "invalid large obj descriptor"?
-   4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
+   4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
+   4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
    tekuschee vremya?
-   4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno
-   rabotaeyut?
-   4.23) Kak vypolnit' vneshnee svyazyvanie?
-   4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
-   4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
-   4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy
-   v funkciyah PL/PgSQL?
-   4.27) Kakie opcii shifrovaniya suschestvuyut?
-   
-                          Rasshireniya PostgreSQL
-                                      
-   5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya
-   zapuskayu ee v psql, pochemu ya poluchayu core dump?
-   5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
-   PostgreSQL?
-   5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
-   5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne
-   vizhu izmenenij?
+   4.16) Kak vypolnit' vneshnee svyazyvanie?
+   4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
+   4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
+   4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne
+   suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah
+   PL/PgSQL?
+   4.20) Kakie est' resheniya dlya replikacii?
+   4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom
+   zaprose?
      _________________________________________________________________
    
                               Obschie voprosy
                                       
-    1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
-    
-   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). Po adresu
-   http://www.postgresql.org/postgresql.mp3 dostupen zvukovoj fajl s
-   primerom kak `eto nuzhno proiznosit'.
-   
-   PostgreSQL - `eto rasshirenie SUBD POSTGRES (i po`etomu inogda
-   govoryat prosto "Postgres"), issledovatel'skij prototip novogo
-   pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet moschnuyu model'
-   dannyh i obschirnoe kolichestvo tipov POSTGRES, i zameschaet yazyk
-   zaprosov PostQuel na rasshirennoe podmnozhestvo SQL. PostgreSQL - `eto
-   svobodnoe i polnost'yu otkrytoe programmnoe obespechenie.
-   
-   Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, vse
-   uchastniki kotoroj podpisany na spisok rassylki razrabotchikov. V
-   nastoyaschee vremya, ih koordinatorom yavlyaetsya Mark Furn'e (Marc G.
-   Fournier) ([email protected]). (Sm. sekciyu 1.6 o tom, kak
-   podklyuchit'sya k razrabotke). `Eta komanda teper' otvechaet za vsyu
-   razrabotku PostgreSQL. Dannyj proekt yavlyaetsya obschestvennym i ne
-   upravlyaetsya kakoj-libo kompaniej. Podrobnosti smotrite v FAQ dlya
-   razrabotchikov, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
-   
-   Avtorami PostgreSQL 1.01 yavlyayutsya `Endryu YU (Andrew Yu) i Dzholi
-   CHen (Jolly Chen). Mnogie drugie vnesli svoj vklad v perenos na drugie
-   platformy, testirovanie, otladku i rasshirenie `etogo koda.
-   Pervonachal'nyj kod Postgres, iz kotorogo poyavilsya PostgreSQL, byl
-   itogom usilij mnogih akademicheskih studentov, neakademicheskih
-   studentov i mnozhestva raznyh programmistov, rabotavshih pod
-   rukovodstvom professora Majkla Stounbrejkera (Michael Stonebraker) v
-   Kalifornijskom universitete, Berkli.
-   
-   Pervonachal'noe imya, dannoe v Berkli, bylo Postgres. Kogda v 1995
-   godu byla dobavlena funkcional'nost' SQL, `eto imya bylo izmeneno na
-   Postgres95. No i `eto imya bylo izmeneno v konce 1996 na PostgreSQL.
-   
-    1.2) Kakovy avtorskie prava na PostgreSQL?
-    
-   PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT:
+  1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
+  
+   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
+   inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto
+   proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3.
+   
+   PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami
+   dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih
+   SUBD s rasshireniyami, kotorye est' v SUBD novogo pokoleniya.
+   PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe
+   obespechenie.
+   
+   Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, razbrosannaya
+   po vsemu miru i svyazannaya cherez Internet. Razrabotka yavlyaetsya
+   obschestvennym proektom i ne upravlyaetsya kakoj-libo kompaniej.
+   Podrobnosti smotrite v FAQ dlya razrabotchikov,
+   http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html
+   
+  1.2) Kakovy avtorskie prava na PostgreSQL?
+  
+   PostgreSQL rasprostranyaetsya po klassicheskoj licenzii BSD. `Eta
+   licenziya ne soderzhit ogranichenij na to, kak budet ispol'zovat'sya
+   ishodnyj kod. Nam nravitsya `eta licenziya i u nas net namerenij eio
+   menyat'.
+   
+   Vot `eta licenziya BSD, kotoruyu my ispol'zuem:
    
    Sistema Upravleniya Bazami Dannyh PostgreSQL
    
-   Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
-   Portions Copyright (c) 1994-6 Regents of the University of California
+   Portions copyright (c) 1996-2005, PostgreSQL Global Development Group
+   Portions Copyright (c) 1994-1996 Regents of the University of
+   California
    
    Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i
    rasprostranenie dannogo programmnogo obespecheniya i ego dokumentacii
    PREDOSTAVLYAT' SOPROVOZHDENIE, PODDERZHKU, OBNOVLENIYA, RASSHIRENIYA
    ILI IZMENENIYA.
    
-   Vysheizlozhennoe yavlyaetsya BSD licenziej, klassicheskoj licenziej
-   programmnogo obespecheniya s otkrytym kodom. `Eta licenziya ne
-   nakladyvaet ogranichenij na ispol'zovanie ishodnogo koda. Nam
-   nravitsya `eta licenziya i my ne sobiraemsya eio menyat'.
-   
-    1.3) Na kakih Unix platformah rabotaet PostgreSQL?
-    
+  1.3) Na kakih platformah rabotaet PostgreSQL?
+  
    Obychno, PostgreSQL mozhet rabotat' na lyuboj sovremennoj platforme
    sovmestimoj s Unix. V instrukcii po ustanovke, vy najdete spisok teh
    platform, na kotoryh byli provedeny testovye zapuski PostgreSQL k
    momentu vyhoda dannoj versii.
    
-    1.4) Suschestvuyut li versii perenesennye ne na Unix sistemy?
-    
-   Nachinaya s versii 8.0, PostgreSQL bez vsyakih uhischrenij rabotaet na
-   operacionnyh sistemah Microsoft Windows, osnovannyh na NT, takih kak
-   Win2000, WinXP i Win2003. Paket installyatora dostupen po adresu
+   PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows,
+   osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket
+   installyatora dostupen po adresu
    http://pgfoundry.org/projects/pginstaller. Versii Windows, osnovannye
    na MS-DOS (Win95, Win98, WinMe) mogut zapuskat' PostgreSQL s
    pomosch'yu Cygwin.
    
    Takzhe suschestvuet versiya sportirovannaya pod Novell Netware 6 na
-   http://forge.novell.com.
-   
-    1.5) Gde mozhno vzyat' PostgreSQL?
-    
-   Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL
-   ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem
-   osnovnom sajte.
-   
-    1.6) Gde poluchit' podderzhku?
-    
-   Osnovnoj spisok rassylki: [email protected]. V nem mozhno
-   obsuzhdat' lyubye temy, kasayuschiesya PostgreSQL. CHtoby
-   podpisat'sya, otprav'te pis'mo po `elektronnoj pochte, v kotorom v
-   tele pis'ma (ne v teme) napishite sleduyuschie stroki:
-    subscribe
-    end
-
-   na adres [email protected].
-   
-   Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te
-   pis'mo po `elektronnoj pochte na adres:
-   [email protected] i v tele pis'ma napishite
-   strochki strochki:
-    subscribe
-    end
-
-   Dajzhesty otpravlyayutsya podpischikam, kogda v osnovnom spiske
-   rassylki nakopitsya okolo 30 kilobajt soobschenij.
-   
-   Dostupen i spisok rassylki soobschenij ob oshibkah. CHtoby
-   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
-   na adres [email protected] i v tele pis'ma napishite
-   strochki strochki:
-    subscribe
-    end
-
-   Takzhe imeetsya spisok rassylki s diskussiyami razrabotchikov. CHtoby
-   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
-   na adres [email protected] i v tele pis'ma
-   napishite strochki strochki:
-    subscribe
-    end
-
-   Dopolnitel'nye spiski rassylki i infomaciyu o PostgreSQL mozhno najti
-   na domashnej stranichke PostgreSQL po adresu:
+   http://forge.novell.com, i versiya dlya OS/2 (eComStation) na
+   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+   SQL&stype=all&sort=type&dir=%2F.
+   
+  1.4) Gde mozhno vzyat' PostgreSQL?
+  
+   CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez
+   ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/.
+   
+  1.5) Gde poluchit' podderzhku?
+  
+   Soobschestvo PostgreSQL predostavlyaet pomosch' mnozhestvu
+   pol'zovatelej cherez E-mail. Osnovnoj web-sajt dlya podpiski na spiski
+   rassylki po E-mail `eto: http://www.postgresql.org/community/lists/.
+   Horoshim mestom dlya togo, chtoby nachat' zadavat' voprosy
+   yavlyayutsya spiski general (obschie voprosy) ili bugs (oshibki).
    
-     http://www.PostgreSQL.org
-     
    Glavnym IRC kanalom yavlyaetsya #postgreql, raspolozhennyj na servere
    Freenode (irc.freenode.net). CHtoby podklyuchit'sya, vy mozhete
-   ispol'zovat' komandu Unix irc -c '#postgresql' "$USER"
+   ispol'zovat' v Unix vyzov programmy irc -c '#postgresql' "$USER"
    irc.freenode.net ili lyuboj drugoj IRC klient. Na `etom zhe servere
    suschestvuyut kanaly na ispanskom (#postgresql-es) i francuzskom
    (#postgresqlfr) yazykah. Takzhe suschestvuet kanal po PostgreSQL na
    Spisok kommercheskoj podderzhki kompanij dostupen na
    http://techdocs.postgresql.org/companies.php.
    
-    1.7) Kakaya poslednyaya versiya?
-    
-   Poslednij vypusk PostgreSQL - `eto versiya 7.4.6
+  1.6) Kak mne soobschit' ob oshibke?
+  
+   Posetite stranichku so special'noj formoj otchiota ob oshibke v
+   PostgreSQL po adresu: http://www.postgresql.org/support/submitbug.
    
-   My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
+   Takzhe prover'te nalichie bolee svezhej versii PostgreSQL na nashem
+   FTP sajte ftp://ftp.PostgreSQL.org/pub/.
    
-    1.8) Kakaya dokumentaciya imeetsya v nalichii?
-    
-   V distributiv vklyuchayutsya razlichnye rukovodstva, stranicy
-   `elektronnogo rukovodstva man i nekotorye malen'kie testovye primery.
-   Smotrite v katalog /doc. Vy takzhe mozhete prosmatrivat' dokumentaciyu
-   v Internet po adresu http://www.PostgreSQL.org/docs.
+  1.7) Kakaya poslednyaya versiya?
+  
+   Poslednij vypusk PostgreSQL - `eto versiya 8.0.3
+   
+   My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
+   versii kazhdye neskol'ko mesyacev.
+   
+  1.8) Kakaya dokumentaciya imeetsya v nalichii?
+  
+   PostgreSQL soderzhit mnogo dokumentacii, vklyuchaya bol'shoe
+   rukovodstvo, stranicy `elektronnogo rukovodstva man i nekotorye
+   malen'kie testovye primery. Smotrite v katalog /doc. Vy takzhe mozhete
+   prosmatrivat' dokumentaciyu v Internet po adresu
+   http://www.PostgreSQL.org/docs.
    
    Suschestvuet dve knigi po PostgreSQL dostupnye po adresam
-   http://www.PostgreSQL.org/docs/awbook.html i
-   http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL,
-   kotorye mozhno kupit' dostupen po adresu
+   http://www.PostgreSQL.org/docs/books/awbook.html i
+   http://www.commandprompt.com/ppbook/. Est' neskol'ko knig po
+   PostgreSQL, kotorye mozhno kupit'. Odnu iz naibolee populyarnyh
+   napisal Korri Duglas (Korry Douglas). Spisok obzorov po `etim knigam
+   dostupen po adresu
    http://techdocs.postgresql.org/techdocs/bookreviews.php. Krome togo,
    po adresu http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu
    tehnicheskih statej posvyaschennyh PostgreSQL.
    
-   psql imeet neskol'ko prekrasnyh komand \d dlya otobrazheniya
-   informacii po tipam, operatoram, funkciyam, agregatam i t.d.
+   Klient komandnoj stroki psql imeet neskol'ko komand \d dlya
+   otobrazheniya informacii po tipam, operatoram, funkciyam, agregatam i
+   t.d. - ispol'zujte \? dlya polucheniya spiska dostupnyh komand.
    
    Nash sajt soderzhit esche bol'she informacii.
    
-    1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
-    vozmozhnostyah?
-    
+  1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
+  vozmozhnostyah?
+  
    PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash
    spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih
    vozmozhnostej i buduschih planov.
    
-    1.10) Kak mne nauchit'sya SQL?
-    
-   Kniga po PostgreSQL na http://www.PostgreSQL.org/docs/awbook.html
-   nauchit SQL. Suschestvuet drugaya kniga po PostgreSQL na
-   http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na
+  1.10) Kak mne nauchit'sya SQL?
+  
+   Vo-pervyh, voz'mite odnu iz knig po PostgreSQL, o kotoryh govorilos'
+   vyshe. Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21
+   Days, Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
+   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm. Mnogim
+   iz nashih pol'zovatelej nravitsya kniga The Practical SQL Handbook,
+   Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya The
+   Complete Reference SQL, Groff et al., McGraw-Hill.
+   Est' prekrasnyj uchebnik na
    http://www.intermedia.net/support/sql/sqltut.shtm, na
    http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
    i na http://sqlcourse.com.
    
-   Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 Days,
-   Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
-   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm
-   
-   Mnogim iz nashih pol'zovatelej nravitsya kniga The Practical SQL
-   Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya
-   The Complete Reference SQL, Groff et al., McGraw-Hill.
-   
-    1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
-    
-   Da, my legko rabotaem s datami posle 2000 goda i pered 2000 godom.
-   
-    1.12) Kak prisoedinitsya k komande razrabotchikov?
-    
-   Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i
-   prochtite dokumentaciyu razrabotchikov PostgreSQL na nashem sajte ili
-   v distributive. Zatem, podpishites' na spiski rassylki pgsql-hackers i
-   pgsql-patches. Dalee, otpravlyajte ispravleniya (patches) vysokogo
-   kachestva v spisok pgsql-patches.
-   
-   Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu
-   vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v
-   svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto
-   ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny
-   previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya,
-   kotorye oni vnesut budut vysokogo kachestva.
-   
-    1.13) Kak otpravit' soobschenie ob oshibke??
-    
-   Zapolnite formu ob oshibke v PostgreSQL, kotoraya raspolozhena na
-   http://www.postgresql.org/bugform.html.
-   
-   Takzhe ne zabud'te posmotret' na ftp://ftp.PostgreSQL.org/pub na
-   predmet bolee svezhih versij PostgreSQL ili zaplat.
-   
-    1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
-    
+  1.11) Kak prisoedinitsya k komande razrabotchikov?
+  
+   Smotrite FAQ dlya razrabotchikov.
+   
+  1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
+  
    Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya:
    vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena.
    
           dlya raboty s soderzhimym blokirovok.
           
    Proizvoditel'nost'
-          PostgreSQL imeet proizvoditel'nost' shodnuyu s drugimi
-          kommercheskimi SUBD i s SUBD s otkrytym ishodnym kodom, v
-          kakih-to aspektah rabotaya bystree chem oni, v kakih-to
-          medlenee. V sravnenii s MySQL ili obydennee SUBD, my bystree,
-          kogda pol'zovatelej mnogo, a takzhe na kompleksnyh zaprosah i
-          chtenii/zapisi zagruzki zaprosa. MySQL bystree dlya prostyh
-          SELECT zaprosov, vypolnyaemyh nebol'shim kolichestvom
-          pol'zovatelej. I razumeetsya, MySQL ne imeet kakih-libo
-          vozmozhnostej iz perechislenyh vyshe, v sekcii Vozmozhnosti. My
-          delaem upor na nadezhnost' i rasshirennye vozmozhnosti, no my
-          takzhe prodolzhaem uvelichivat' proizvoditel'nost' s kazhdym
-          vypuskom. Suschestvuet interesnaya stranichka v Internet,
-          sravnivayuschaya PostgreSQL i MySQL na
-          http://openacs.org/philosophy/why-not-mysql.html. Takzhe, MySQL
-          - `eto kompaniya, kotoraya rasprostranyaet svoj produkt cherez
-          otkrytye ishodnye teksty i trebuet kommercheskuyu licenziyu na
-          zakrytoe programmnoe obespechenie, a ne soobschestvo
-          razrabotchikov s otkrytymi ishodnymi tekstami, kak PostgreSQL.
+          Proizvoditel'nost' PostgreSQL shodna s drugimi kommercheskimi
+          SUBD i s SUBD s otkrytym ishodnym kodom. V kakih-to veschah my
+          bystree, v kakih-to medlennee. Nasha proizvoditel'nosti obychno
+          +/-10% po sravneniyu s drugimi SUBD.
           
    Nadezhnost'
           My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona
           podderzhku PostgreSQL prevoshodyaschej drugie SUBD.
           Suschestvuet kommercheskaya podderzhka po rezul'tam voznikshih
           incidentov, kotoraya dostupna dlya teh komu ona nuzhna.
-          (Smotrite Sekciyu 1.6.)
+          (Smotrite Sekciyu 1.5.)
           
    Cena
           Nash produkt besplaten kak dlya kommercheskogo tak, i ne dlya
           opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena
           vyshe.
           
-    1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
-    
-   PostgreSQL imeet odnorangovuyu infrastrukturu s togo samogo vremeni
-   kak my nachali razrabotku v 1996 godu. My dolzhny blagodarit' za `eto
-   Marka Furn'e (Marc Fournier), kotoryj sozdal `etu infrastrukturu i
-   upravlyaet ej na protyazhenii `etih let.
-   
-   Kachestvennaya infrastruktura ochen' vazhna dlya proektov s otkrytym
-   ishodnym kodom. Ona predotvraschaet raskoly, kotorye mogut sil'no
-   zaderzhat' postupatel'noe dvizhenie proekta.
-   
-   Razumeetsya, `eta infrastruktura ne yavlyaetsya deshevoj. Suschestvuet
-   nekotoroe kolichestvo ezhemesyachnyh i odnorazovyh rashodov, kotorye
-   trebuyut deneg. Esli vy ili vasha kompaniya imeet den'gi, kotorye
-   mozhno peredat' v pomosch' nashim usiliyam, pozhalujsta posetite
-   stranichku https://store.pgsql.com/shopping/ i sdelajte svoj vklad.
-   
-   Hotya na stranichke govoritsya o PostgreSQL, Inc, punkt
-   "contributions" prednaznachen isklyuchitel'no dlya podderzhki proekta
-   PostgreSQL i ne peredaetsya kakoj-libo konkretnoj kompanii. Esli
-   hotite, to mozhete `eto proverit', napisav pis'mo na kontaktnyj adres.
+  1.13) Kto upravlyaet PostgreSQL?
+  
+   Esli vy ischite kakogo-to osobennogo cheloveka, central'nyj komitet
+   ili upravlyayuschuyu kompaniyu, to naprasno --- ih net. U nas est'
+   yadro komiteta i razrabotchikov, rabotayuschih s CVS, no `eti gruppy
+   sluzhat bol'she dlya administrativnyh celej, chem dlya upravleniya.
+   Proekt napryamuyu funkcioniruet s pomosch'yu soobschestva
+   razrabotchikov i pol'zovatelej, k kotoromu mozhet prisoedinitsya
+   kazhdyj. Vsio chto nuzhno -- `eto podpisat'sya na spiski rassylki i
+   uchastvovat' v diskussiyah. (Podrobnosti o tom kak vklyuchit'sya v
+   razrabotku PostgreSQL smotrite v FAQ dlya razrabotchikov.)
      _________________________________________________________________
    
-   Esli u vas est' istorii po uspeshnomu primeneniyu PostgreSQL,
-   pozhalujsta, prisylajte ih na nash sajt propagandy
-   http://advocacy.postgresql.org.
-   
                  Voprosy pol'zovatelej po klientskoj chasti
                                       
-    2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
-    
-   Suschestvuet dva ODBC drajvera, PsqlODBC i OpenLink ODBC.
-   
-   Vy mozhete skachat' PsqlODBC s
-   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
-   
-   OpenLink ODBC mozhno vzyat' na http://www.openlinksw.com. `Etot
-   drajver rabotaet s ih standartnym klientskim programmnym
-   obespecheniem, ispol'zuyuschim ODBC, i takim obrazom, ODBC drajvery
-   dlya PostgreSQL dostupny dlya kazhdoj iz podderzhivaemyh imi platform
-   (Win, Mac, Unix, VMS).
-   
-   Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna
-   kommercheskaya podderzhka, no besplatnaya versiya vsegda budet
-   dostupna. Pozhalujsta, napravlyajte voprosy na adres
-   
-    2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
-    Web?
-    
+  2.1) Kakie interfejsy est' dlya PostgreSQL?
+  
+   Ustanovka PostgreSQL vklyuchaet tol'ko C i vstroennyj (embedded) C
+   interfejsy. Vse drugie interfejsy yavlyayutsya nezavisimymi proektami
+   i zagruzhayutsya otdel'no; samostoyatel'nost' proektov pozvolyaet im
+   organizovat' sobstvennoe raspisanie vypuskov novyh versij i imet'
+   sobstvennuyu komandu razrabotchikov.
+   
+   Nekotorye yazyki programmirovaniya, takie kak PHP vklyuchayut v sebya
+   interfejs k PostgreSQL. Interfejsy dlya takih yazykov kak Perl, TCL,
+   Python i mnogih drugih, dostupny na http://gborg.postgresql.org v
+   sekcii Drivers/Interfaces, a takzhe cherez poisk v Internet.
+   
+  2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
+  Web?
+  
    Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti
    na: http://www.webreview.com
    
-   Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya
-   PHP. Domashnyaya stanichka http://www.php.net.
-   
-   Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom i
-   CGI.pm ili mod_perl.
-   
-    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
-    
-   Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
-   `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
-   (http://www.pgadmin.org), RHDB Admin
-   (http://sources.redhat.com/rhdb/), TORA (http://www.globecom.net/tora/
-   (chastichno kommercheskoe PO) i Rekall (
-   http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
-   est' PhpPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
-   PostgreSQL, osnovannyj na Web.
-   
-    2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
-    
-   Kakie-libo interfejsy dlya PostgreSQL suschestvuyut dlya bol'shinstva
-   populyarnyh yazykov programmirovaniya. Posmotrite spisok modulej
-   rasshireniya dlya teh yazykov programmirovaniya, kotorymi vy
-   pol'zuetes'.
-   
-   Sleduyuschie interfejsy vklyuchayutsya v distributiv PostgreSQL:
-     * C (libpq)
-     * Embedded C (ecpg)
-     * Java (jdbc)
-     * Python (PyGreSQL)
-     * TCL (libpgtcl)
-       
-   Dopolnitel'nye interfejsy dostupny po adresu
-   http://gborg.PostgreSQL.org v sekcii Drivers/Interfaces.
+   Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim
+   interfejsom.
+   
+   V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i DBD::Pg s CGI.pm ili
+   mod_perl.
+   
+  2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
+  
+   Da, podrobnosti smotrite v
+   http://techdocs.postgresql.org/guides/GUITools.
      _________________________________________________________________
    
                          Voprosy administrirovaniya
                                       
-    3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
-    
+  3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
+  
    Zadajte opciyu --prefix kogda zapuskaete configure.
    
-    3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad System
-    Call ili soobschenie core dumped. Pochemu?
-    
-   `Eto mozhet byt' vyzvano raznymi problemami, no pervoe, chto nuzhno
-   sdelat' - `eto ubedit'sya v tom, chto v vashem yadre ustanovleno
-   rasshirenie System V. PostgreSQL trebuet, chtoby yadro podderzhivalo
-   razdelyaemuyu pamyat' i semafory.
-   
-    3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
-    IpcMemoryCreate. Pochemu?
-    
-   Libo u vas v yadre nepravil'nye nastrojki razdelyaemoj pamyati, libo
-   vashemu yadru nuzhno bol'shee kolichestvo dostupnoj razdelyaemoj
-   pamyati. Te konkretnye dejstviya, kotorye vam nuzhno proizvesti
-   zavisyat ot arhitektury vashej mashiny i ot togo kak mnogo buferov i
-   backend processov vy nastroili dlya postmaster. Dlya bol'shinstva
-   sistem, s kolichestvom buferov i processov po umolchaniyu, neobhodimyj
-   minimum - `eto okolo 1 megabajta. Podrobnosti o razdelyaemoj pamyati i
-   semaforah smotrite v Rukovodstve administratora PostgreSQL..
-   
-    3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
-    IpcSemaphoreCreate. Pochemu?
-    
-   Esli `eto soobschenie IpcSemaphoreCreate: semget failed (No space left
-   on device) to nastrojki vashego yadra takovy, chto emu ne hvataet
-   semaforov. Postgres trebuet odin semafor na potencial'nyj backend
-   process. Vremennym resheniem yavlyaetsya zapusk postmaster s
-   nastrojkami na mesh'shee kolichestvo backend processov. Ispol'zujte -N
-   s znacheniem men'shim chem 32, kotoroe prinyato po umolchaniyu. Bolee
-   pravil'noe reshenie - `eto uvelichit' znacheniya SEMMNS i SEMMNI v
-   nastrjkah yadra.
-   
-   Neispravnye semafory takzhe mogut privesti k padeniyu SUBD vo vremya
-   dostupa k baze dannyh.
-   
-   Esli vy poluchili kakoe-libo drugoe soobschenie ob oshibke, to vpolne
-   vozmozhno, chto v vashem yadre voobsche ne nastroena podderzhka
-   semaforov. Smotrite podrobnosti o razdelyaemoj pamyati i semaforah v
-   Rukovodstve Administratora PostgreSQL.
-   
-    3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
-    
+  3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
+  
    Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj
-   mashine cherez sokety domena Unix ili TCP/IP soedineniya. Drugie
-   mashiny ne smogut podklyuchit'sya k baze poka vy ne izmenite
-   listen_addresses v postgresql.conf i poka ne budet razreshena
-   host-avtorizaciya v fajle $PGDATA/pg_hba.conf.
-   
-    3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
-    proizvoditel'nosti?
-    
-   Nesomnenno, indeksy mogut uvelichit' skorost' vypolneniya zaprosov.
-   Komanda EXPLAIN ANALYZE pozvolyaet vam posmotret' kak PostgreSQL
-   interpretiruet vash zapros i kakie indeksy ispol'zuyutsya.
-   
-   Esli vy vypolnyaete mnogo operatorov INSERT, rassmotrite vozmozhnost'
-   vypolnyat' ih v bol'shoj pachke, ispol'zuya komandu COPY. `Eto
-   znachitel'no bystree, chem otdel'nye INSERT. Vo-vtoryh, operatory vne
-   bloka tranzakcii BEGIN WORK/COMMIT sami vypolnyayut tranzakciyu.
-   Podumajte nad vypolneniem neskol'kih operatorov v odnom bloke
-   tranzakcii. `Eto umen'shit kolichestvo tranzakcij. Takzhe, zadumajtes'
-   nad udaleniem i peresozdaniem indeksov, kogda vy vypolnyaete bol'shie
-   izmeneniya dannyh.
-   
-   Suschestvuet neskol'ko opcij nastrojki v Rukovodstve Administratora
-   PostgreSQL. Vy mozhete zapretit' fsync() pri starte postmaster s
-   opciej -o -F. `Eto predotvratit vyzovy fsync(), kotorye privodyat k
-   sbrosu dannyh na disk posle kazhdoj tranzakcii.
-   
-   Vy mozhete takzhe ispol'zovat' opciyu shared_buffers -B dlya
-   uvelicheniya kolichestva buferov razdelyaemoj pamyati, kotoraya
-   ispol'zuetsya backend processami. Esli vy sdelaete znachenie `etogo
-   parametra slishkom bol'shim, to postmaster mozhet ne zapustitsya
-   potomu chto vy ischerpaete ogranichenie yadra na ob"em razdelyaemoj
-   pamyati. Kazhdyj bufer imeet razmer v 8 kilobajt i po umolchaniyu
-   vydelyaetsya 1000 buferov.
-   
-   Vy mozhete takzhe ispol'zovat' backend opcii sort_mem i work_mem dlya
-   uvelicheniya maksimal'nogo kolichestva pamyati, kotoroe ispol'zuetsya
-   backend processom dlya vremennyh sortirovok. Znachenie po umolchaniyu
-   sostavlyaet 1024 (t.e. 1MB).
-   
-   Vy takzhe mozhete ispol'zovat' komandu CLUSTER dlya gruppirovki dannyh
-   v tablicah na sovpadayuschij indeks. Podrobnosti smotrite na stranice
-   rukovodstva po komande CLUSTER.
-   
-    3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
-    
-   PostgreSQL imeet neskol'ko vozmozhnostej, pozvolyayuschie poluchit'
-   informaciyu o sostoyanii, kotoraya mozhet byt' ispol'zovana v
-   otladochnyh celyah.
-   
-   Vo-pervyh, pri zapuske configure s opciej --enable-cassert, mnogie
-   vyzovy assert() pozvolyayut otslezhivat' rabotu backend processa i
-   ostanovku programmy pri vozniknovenii kakih-libo neozhidannostej.
-   
-   I postmaster, i postgres imeyut neskol'ko otladochnyh opcij.
-   Vo-pervyh, pri zapuske postmaster, ubedites', chto standartnyj vyvod i
-   vyvod oshibok osuschestvlyayutsya v fajl zhurnala:
-    cd /usr/local/pgsql
-    ./bin/postmaster >server.log 2>&1 &
-
-   `Eto privedet k poyavleniyu fajla server.log v glavnom kataloge
-   PostgreSQL. `Etot fajl soderzhit poleznuyu informaciyu o problemah ili
-   oshibkah, voznikshih na servere. Postmaster imeet opciyu -d, kotoraya
-   pozvolyaet poluchat' pri protokolirovanii bolee detal'nuyu infrmaciyu.
-   Dlya opcii -d ukazyvaetsya chislo, kotoroe zadaet uroven' otladki.
-   Bud'te ostorozhny, tak kak vysokij uroven' otladki privodit k
-   generacii fajlov zhurnala bol'shogo razmera.
-   
-   Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz
-   komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto
-   rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom
-   rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s
-   zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvoloami,
-   vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto
-   sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne
-   zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij
-   blokirovok/backend ne mogut byt' vosproizvedeny.
-   
-   Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite
-   PID processa postgres, ispol'zuemyj psql, ispol'zuya
-        SELECT pg_backend_pid()
-
-
-   Ispol'zujte otdadchik dlya podklyucheniya k postgres PID. Vy mozhete
-   ustanovit' tochki preryvaniya v otladchike i zapustit' zapros iz psql.
-   Esli vy proizvodite otladku zapuska postgres, vy mozhete ustanovit'
-   PGOPTIONS="-W n", i zatem zapustit' psql. `Eta opciya privodit k
-   zaderzhke processa zapuska na n sekund, v techenie kotoryh vy mozhete
-   podklyuchit' k processu otladchik, ustanovit' lyubye tochki
-   preryvaniya i prodolzhit' zapusk.
-   
-   Programma postgres imeet opcii -s, -A, i -t kotorye mogut byt' ochen'
-   poleznymi dlya otladki i izmereniya proizvoditel'nosti.
-   
-   Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya
-   togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya.
-   Fajly profilirovaniya backend'a nahodyatsya v kataloge
-   pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v
-   tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya
-   trebuetsya kompilyacii s -DLINUX_PROFILE.
-   
-    3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
-    pytayus' podklyuchit'sya k baze?
-    
-   Vam nuzhno uvelichit' ogranichenie na kolichestvo konkuretnyh backend
-   processov pri zapuske postmaster.
-   
-   Po umolchaniyu ustanovlen limit na 32 processa. Vy mozhete uvelichit'
-   `etot limit perezapustiv postmaster s nuzhnym znacheniem processov,
-   kotoroe ukazyvaetsya v opcii -N ili izmeniv fajl postgresql.conf.
-   
-   Zametim, chto esli vy zadadite v opcii -N znachenie bol'she 32, to vy
-   takzhe dolzhny uvelichit' znachenie v opcii -B kotoroe po umolchaniyu
-   ustanovleno v 64; Znachenie opcii -B dolzhno byt' po krajnej mere
-   vdvoe bol'she znacheniya opcii -N, i vozmozhno eschio bol'she dlya
-   luchshej proizvoditel'nosti. Dlya bol'shego kolichestva backend
-   processov, vam takzhe neploho bylo by uvelichit' nekotorye parametry
-   yadra Unix. `Eto takie parametry, kak maksimal'noe kolichestvo blokov
-   razdelyaemoj pamyati, SHMMAX; maksimal'noe kolichestvo semaforov,
-   SEMMNS i SEMMNI; maksimal'noe kolichestvo processov, NPROC;
-   maksimal'noe kolichestvo processov na pol'zovatelya, MAXUPRC; i
-   maksimal'noe kolichestvo otkrytyh fajlov, NFILE i NINODE. Prichina
-   sozdaniya ogranicheniya na kolichestvo backend processov kak raz i
-   sostoit v tom, chtoby vashej sisteme hvatilo resursov.
-   
-    3.9) CHto nahoditsya v kataloge pgsql_tmp?
-    
-   Dannyj katalog soderzhit vremennye fajly, generiruemye obrabotchikom
-   zaprosa. Naprimer, esli dlya vypolneniya ORDER BY nuzhna sortirovka i
-   `eta sortirovka trebuet pamyati bol'she, chem dopuskaet parametr -S u
-   backend'a, to dlya hraneniya dopolnitel'nyh dannyh sozdayutsya
-   vremennye fajly.
-   
-   `Eti vremennye fajly dolzhny udalyat'sya avtomaticheski, no `etogo
-   mozhet ne proizojti, esli backend ruhnul vo vremya sortirovki. Ostanov
-   i zapusk servernogo processa obespechit ih udalenie iz kataloga.
-   
-    3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
-    PostgreSQL?
-    
+   mashine cherez sokety domena Unix ili TCP/IP soedineniya. Dlya togo,
+   chtoby drugie mashiny smogli podklyuchit'sya k baze vy dolzhny
+   izmenit' listen_addresses v postgresql.conf, razreshit'
+   host-avtorizaciya v fajle $PGDATA/pg_hba.conf i perestartovat' server.
+   
+  3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti?
+  
+   Suschestvuet tri glavnyh oblasti, kotorye potencial'no mogut
+   uvelichit' proizvoditel'nost':
+   
+   Izmenenie zaprosa
+          `Eto oznachaet modifikaciyu zaprosov dlya polucheniya luchshej
+          proizvoditel'nosti:
+          
+          + Sozdanie indeksov, vklyuchaya indeksy vyrazhenij i
+            chastichnye indeksy
+          + Ispol'zovanie COPY vmesto mnozhestva INSERT
+          + Gruppirovka neskol'kih operatorov v edinuyu tranzakciyu dlya
+            umen'sheniya nagruzki pri vypolnenii zaversheniya tranzakcii
+          + Ispol'zovanie CLUSTER, kogda iz indeksa beriotsya mnozhestvo
+            strok
+          + Ispol'zovanie LIMIT dlya togo, chtoby vozvraschalas' tol'ko
+            chast' vyvoda ot zaprosa
+          + Ispol'zovanie Podgotovlennyh (Prepared) zaprosov
+          + Ispol'zovanie ANALYZE dlya obsluzhivaniya statistiki
+            optimizatora
+          + Regulyarnoe ispol'zovanie VACUUM ili pg_autovacuum
+          + Udalenie indeksov vo vremya bol'shih izmenenij dannyh
+            
+   Nastrojka servera
+          Nekotorye ustanovki v postgresql.conf vliyayut na
+          proizvoditel'nost'. Podrobnyj polnyj spisok ustanovok sm. v
+          Administration Guide/Server Run-time Environment/Run-time
+          Configuration, a kommentarii sm. v
+          http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co
+          nf_e.html i
+          http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
+          
+   Vybor "zheleza" - apparatnogo obespecheniya
+          Vliyanie "zheleza" na proizvoditel'nost' podrobno opisano v
+          http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
+          x.html i http://www.powerpostgresql.com/PerfList/.
+          
+  3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
+  
+   Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na
+   log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty
+   processa, kotoraya ochen' polezna dlya otladki i izmereniya
+   proizvoditel'nosti.
+   
+  3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
+  pytayus' podklyuchit'sya k baze?
+  
+   Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya na 100 sessij
+   podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' dlya
+   postmaster limit na kolichestvo konkurentnyh backend processov,
+   izmeniv znachenie max_connections v fajle postgresql.conf i
+   perestartovat' postmaster.
+   
+  3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
+  PostgreSQL?
+  
    Razrabotchiki PostgreSQL delayut tol'ko nebol'shie izmeneniya mezhdu
-   podvypuskami. Takim obrazom obnovlenie s versii 7.2 do 7.2.1 ne
+   podvypuskami. Takim obrazom obnovlenie s versii 7.4.0 do 7.4.1 ne
    trebuet vypolneniya dump i restore. Odnako pri vyhode ocherednogo
-   vypuska (t.e. pri obnovlenii naprimer, s 7.2 na 7.3) chasto menyaetsya
+   vypuska (t.e. pri obnovlenii naprimer, s 7.3 na 7.4) chasto menyaetsya
    vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya
    chasto nosyat kompleksnyj harakter, tak chto net vozmozhnosti
    obespechit' obratnuyu sovmestimost' fajlov dannyh. Vypolenie dump
    bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda
    mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska.
    
-    3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
-    
+  3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
+  
    Poskol'ku "zhelezo" personal'nyh komp'yuterov yavlyaetsya naibolee
    sovmestimym, lyudi sklonny verit', chto takoe "zhelezo" imeet
    odinakovoe kachestvo. `Eto ne tak. Pamyat' ECC, SCSI i kachestvennye
    
                            Voprosy `ekspluatacii
                                       
-    4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
-    
-   Smotrite opisanie na stranicah rukovodstva posvyaschennym DECLARE.
-   
-    4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
-    Proizvol'noj stroki?
-    
-   Smotrite stanicu rukovodstva posvyaschennuyu FETCH ili ispol'zujte
-   SELECT ... LIMIT....
-   
-   Dazhe esli vy hotite poluchit' tol'ko pervye neskol'ko zapisej, budet
-   vypolnen ves' zapros. Rassmotrim zapros, kotoryj imeet ORDER BY. Esli
-   est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, PostgreSQL
-   mozhet vydat' tol'ko neskol'ko pervyh zaproshennyh zapisej ili mozhet
-   vypolnyat' zapros poka ne budut vydany zhelaemye zapisi.
+  4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
+  Proizvol'noj stroki?
+  
+   Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih
+   kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT.
+   Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to
+   vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete
+   kolichestva neobhodimyh strok na moment vypolneniya SELECT,
+   ispol'zujte kursor i FETCH.
    
    To SELECT a random row, use:
     SELECT col
     ORDER BY random()
     LIMIT 1;
 
-    4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
-    
+  4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli
+  suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya
+  polucheniya `etoj informacii?
+  
    CHtoby prosmatrivat' tablicy v psql, ispol'zujte komandu \dt. Polnyj
    spisok komand v psql vy mozhete poluchit', ispol'zuya \?. Krome togo,
    vy mozhete posmotret' ishodnyj kod psql v fajle
    generiruyutsya pri vvode v psql komand, nachinayuschihsya s obratnoj
    kosoj cherty. Vy takzhe mozhete zapustit' psql s opciej -E tak, chtoby
    `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
-   vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet
-   SQLi sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu
-   kotorogo, vy mozhete sformirovat' zapros na poluchenie informacii o
-   baze dannyh.
-   
-    4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
-    
-   DROP COLUMN funkcional'nost' byla dobavlena v vypusk 7.3 s operatorom
-   ALTER TABLE DROP COLUMN. V rannih versiyah, mozhno sdelat' tak:
-    BEGIN;
-    LOCK TABLE old_table;
-    SELECT ...  -- vyborka vseh kolonok za isklyucheniem toj, kotoruyu hotite u
-dalit'
-    INTO TABLE new_table
-    FROM old_table;
-    DROP TABLE old_table;
-    ALTER TABLE new_table RENAME TO old_table;
-    COMMIT;
-
-   Dlya izmeneniya tipa dannyh kolonki, sdelajte tak:
+   vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet SQL
+   sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu kotorogo, vy
+   mozhete sformirovat' zapros na poluchenie informacii o baze dannyh.
+   
+   Takzhe suschestvuyut sistemnye tablicy, nachinayuschiesya s pg_.
+   
+   Ispol'zujte psql -l dlya polucheniya spiska vseh baz dannyh.
+   
+   Takzhe posmotrite fajl pgsql/src/tutorial/syscat.source. On pokazyvaet
+   mnogie iz operatorov SELECT neobhodimyh dlya polucheniya informacii iz
+   sistemnyh tablic bazy dannyh.
+   
+  4.3) Kak izmenit' tip dannyh kolonki?
+  
+   V 8.0 i bolee pozdnih versiyah, izmenenie tipa kolonki vypolnyaetsya
+   ochen' legko cherez ALTER TABLE ALTER COLUMN TYPE.
+   
+   V bolee rannih versiyah sdelajte tak:
     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;
 
-    4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
-    
+  4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy dannyh?
+  
    Suschestvuyut sleduyuschie ogranicheniya:
-    Maksimal'nyj razmer bazy?                    neogranichen (suschestvuyut ba
-zy na 32 TB)
-    Maksimal'nyj razmer tablicy?                 32 TB
-    Maksimal'nyj razmer zapisi?                  1.6 TB
-    Maksimal'nyj razmer polya?                    1 GB
-    Maksimal'noe kolichestvo zapisej v tablice?   neogranicheno
-    Maksimal'noe kolichestvo kolonok v tablice?   250-1600 v zavisimosti ot tip
-a
-    Maksimal'noe kolichestvo indeksov v tablice?  neogranicheno
-
+   
+   Maksimal'nyj razmer bazy? neogranichen (suschestvuyut bazy na 32 TB)
+   Maksimal'nyj razmer tablicy? 32 TB
+   Maksimal'nyj razmer stroki? 1.6 TB
+   Maksimal'nyj razmer polya? 1 GB
+   Maksimal'noe kolichestvo strok v tablice? neogranicheno
+   Maksimal'noe kolichestvo kolonok v tablice? 250-1600 v zavisimosti ot
+   tipa
+   Maksimal'noe kolichestvo indeksov v tablice? neogranicheno
+   
    Razumeetsya, ponyatie "neogranicheno" na samom dele ogranichivaetsya
    dostupnym diskovym prostranistvom i razmerami pamyati/svoppinga. Kogda
    znacheniya perechislennye vyshe neopravdano bol'shie, mozhet
@@ -803,9 +538,16 @@ a
    byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
    uvelichen do 32k.
    
-    4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
-    dannyh iz obychnogo tekstovogo fajla?
-    
+   Suschestvuet ogranichenie, po kotoromu indeksy ne mogut sozdavat'sya
+   dlya kolonok dlinnee chem 2,000 simvolov. K schast'yu takie indeksy
+   vryad li dejstvitel'no komu-to nuzhny. Unikal'nost' garantiruetsya
+   nailuchim obrazom, s pomosch'yu funkcional'nogo indeksa iz h`esha MD5
+   dlinnoj kolonki, a polnotekstovoe indeksirovanie pozvolyaet iskat'
+   slova vnutri kolonki.
+   
+  4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
+  dannyh iz obychnogo tekstovogo fajla?
+  
    SUBD PostgreSQL mozhet potrebovat'sya diskovogo prostranstva do 5 raz
    bol'she dlya sohraneniya dannyh iz prostogo tekstovogo fajla.
    
@@ -814,23 +556,23 @@ a
    srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB.
    Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit
    priblizitel'no 6.4 MB iz kotoryh:
-    32 bajt: na kazhdyj zagolovok zapisi (priblizitel'no)
+    28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
   + 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
-  +  4 bajta: ukazatel' na stranice dlya vsej zapisi
+  +  4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
    ----------------------------------------
-    60 bajt na zapis'
+    56 bajt na stroku v tablice
 
    Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
 
    8192 bajt na stranicu
-   ---------------------   =  136 zapisej na stranicu BD (okruglionno)
-     60 bajt na zapis'
+   ---------------------   =  146 strok v tablice na stranicu BD (okruglionno)
+     56 bajt na stroku v tablice
 
      100000 strok dannyh
-   ----------------------- =  735 stranic v BD (okruglionno)
-   128 zapisej na stranicu
+   ----------------------- =  685 stranic v BD (okruglionno)
+   146 strok v tablice na stranicu
 
-   735 stranic BD * 8192 bajt na stranicu = 6,021,120 bajt (6 MB)
+   685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB)
 
    Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
    bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
@@ -838,39 +580,25 @@ a
    Znacheniya NULL hranyatsya kak bitovye karty i po`etomu oni zanimayut
    ochen' malo mesta.
    
-    4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy, indeksy,
-    bazy dannyh i pol'zovateli?
-    
-   psql imeet neskol'ko komand, nachinayuschihsya s obratnoj kosoj
-   cherty, dlya togo chtoby prosmatrivat' takuyu informaciyu. Ispol'zujte
-   \? dlya togo, chtoby uvidet' `eti komandy. Takzhe suschestvuyut
-   sistemnye tablicy, imya kotoryh nachinaetsya na pg_ i v kotoryh takzhe
-   soderzhitsya `eta informaciya. Eschio, psql -l pokazhet spisok vseh
-   baz dannyh.
-   
-   Takzhe smotrite fajl pgsql/src/tutorial/syscat.source. V nem
-   predstavleny mnogie operatory SELECT kotorye nuzhny dlya polucheniya
-   informacii iz sistemnyh tablic bazy dannyh.
-   
-    4.8) U menya medlenno rabotayut zaprosy ili ne proishodit ispol'zovaniya
-    indeksov. Pochemu?
-    
-   Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. Oni
-   ispol'zuyutsya tol'ko esli tablica bol'she minimal'nogo razmera i
-   zapros vybiraet tol'ko malen'kij procent zapisej v tablice. Tak
-   ustroeno, potomu chto dostup k disku s primeneniem randomizacii pri
-   skanirovanii indeksov mozhet byt' medlennee, chem prostoe chtenie
-   tablicy ili ee posledovatel'noe skanirovanie.
+  4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi
+  indeksy?
+  
+   Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa. Oni ispol'zuyutsya
+   tol'ko esli tablica bol'she minimal'nogo razmera i zapros vybiraet
+   tol'ko malen'kij procent strok v tablice. Tak ustroeno, potomu chto
+   dostup k disku s primeneniem randomizacii pri skanirovanii indeksov
+   mozhet byt' medlennee, chem prostoe chtenie tablicy ili ee
+   posledovatel'noe skanirovanie.
    
    CHtoby opredelit' neobhodimost' ispol'zovaniya indeksa dlya kakoj-libo
    tablicy, PostgreSQL dolzhen imet' statistiku po `etoj tablice. `Eta
    statistika sobiraetsya pri ispol'zovanii VACUUM ANALYZE ili prosto
    ANALYZE. Ispol'zuya statistiku, optimizator uznaet o tom kak mnogo
-   zapisej v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet
+   strok v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet
    prinimat' luchshie resheniya. Statistika takzhe vliyaet na opredelenie
-   optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Sbor
-   statistiki dolzhen periodicheski vypolnyatsya pri izmenenii
-   soderzhimogo tablicy.
+   optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Pri
+   izmenenii soderzhimogo tablicy dolzhen periodicheski vypolnyatsya sbor
+   statistiki.
    
    Obychno indeksy ne ispol'zuyutsya dlya ORDER BY ili dlya vypolneniya
    svyazyvanij. Posledovatel'nyj perebor sleduyuschij za yavnoj
@@ -887,8 +615,8 @@ a
 
    Esli vam kazhetsya, chto optimizator nekorrektno vybiraet
    posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i
-   zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov
-   bystree.
+   zapustite zapros snova, chtoby uvidet', dejstvitel'no li skanirovanie
+   indeksov bystree.
    
    Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~,
    indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah:
@@ -899,64 +627,26 @@ a
      * Stroka poiska ne dolzhna nachinat'sya s simvola klassa, t.e.
        [a-e].
      * Poisk nezavisimyj ot registra, takoj kak ILIKE i ~* ne ispol'zuet
-       indeksy. Vmesto nego, ispol'zujte funkcional'nye indeksy, kotorye
-       opisyvayutsya v sekcii 4.12.
+       indeksy. Vmesto nego, ispol'zujte indeksy vyrazhenij, kotorye
+       opisyvayutsya v sekcii 4.8.
      * Vo vremya initdb dolzhna ispol'zovat'sya lokal' po umolchaniyu C,
-       potomu chto ne suschestvuet vozmozhnosti uznat' next-greater
-       simvol dlya ne-C lokali. Vy mozhete dlya takih sluchaev sozdat'
-       special'nyj indeks
-        text_pattern_ops
-
-       kotoryj rabotaet tol'ko dlya
-        LIKE
-
-       indeksirovaniya.
+       potomu chto ne suschestvuet vozmozhnosti uznat' sleduyuschij
+       naibol'shij simvol dlya ne-C lokali. Vy mozhete dlya takih
+       sluchaev sozdat' special'nyj indeks text_pattern_ops kotoryj
+       rabotaet tol'ko dlya LIKE indeksirovaniya.
        
    V vypuskah do versii 8.0, indeksy chasto nel'zya bylo ispol'zovat',
    esli tipy dannyh tochno ne sovpadali s indeksnymi tipami kolonok. `Eto
    osobenno kasalos' int2, int8 i numeric indeksov kolonok.
    
-    4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
-    
+  4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
+  
    Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN.
    
-    4.10) CHto takoe R-tree indeks?
-    
-   R-tree indeks ispol'zuetsya dlya indeksirovaniya prostranstvennyh
-   dannyh. Indeks h`esha ne mozhet upravlyat' poiskami diapazona. B-tree
-   indeks upravlyaet tol'ko poiskami diapazona v odnom izmerenii. R-tree
-   indeks mozhet upravlyat' mnogorazmernymi dannymi. Naprimer, esli
-   R-tree indeks mozhet byt' vstroen v atribut tipa point, to sistema
-   mozhet bolee `effektivno otvetit' na zapros tipa "vybrat' vse tochki
-   vnutri zadannogo chetyrehugol'nika."
-   
-   Kanonicheskij istochnik, opisyvayuschij pervonachal'noe sozdanie
-   R-tree `eto:
-   
-   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.
-   
-   Vy mozhete najti `etot dokument v knige Stounbrejkera "Readings in
-   Database Systems".
-   
-   Vstroennnye R-tree mogut upravlyat' poligonami i boksami. V teorii,
-   R-tree mogut byt' rasshireny dlya upravleniya bol'shim kolichestvom
-   izmerenij. Na praktike, rasshirenie R-tree trebuet nekotoryh usilij i
-   u nas, v dannyj moment, net kakoj-libo dokumentacii o tom, kak `eto
-   sdelat'.
-   
-    4.11) CHto takoe Genetic Query Optimizer?
-    
-   Modul' GEQO proizvodit bystruyu optimizaciyu zaprosa, kogda proishodit
-   svyazyvanie mnogih tablic cherez Genetic Algorithm (GA). `Eto
-   pozvolyaet upravlyat' bol'shimi zaprosami na svyazyvanie cherez
-   neistoschayuschij poisk.
-   
-    4.12) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj
-    ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat'
-    indeks dlya poiska nezavisimogo ot registra bukv?
-    
+  4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj ot
+  registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' indeks
+  dlya poiska nezavisimogo ot registra bukv?
+  
    Operator ~ proizvodit poisk regulyarnogo vyrazheniya, a operator ~*
    proizvodit nezavisimyj ot registra bukv poisk regulyarnogo
    vyrazheniya. Nezavisimyj ot registra variant LIKE nazyvaetsya ILIKE.
@@ -967,37 +657,51 @@ a
     WHERE lower(col) = 'abc';
 
    `Eta konstrukciya ne budet ispol'zovat' standartnyj indeks. Odnako,
-   esli vy sozdadite funkcional'nyj indeks, on budet ispol'zovan:
+   esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
     CREATE INDEX tabindex ON tab (lower(col));
 
-    4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
-    zaprose?
-    
-   Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL.
-   
-    4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
-    
-Tip            Vnutrennee imya   Zamechaniya
---------------------------------------------------
-VARCHAR(n)      varchar         razmer zadaet maksimal'nuyu dlinu, net zapolnen
-iya
-CHAR(n)         bpchar          zapolnyaetsya pustotoj do fiksirovannoj dliny
-TEXT            text            net zadavaemogo verhnego ogranicheniya ili dlin
-y
-BYTEA           bytea           massiv bajt peremennoj dliny (mozhno ispol'zova
-t' null-bajt bez opaski)
-"char"          char            odin simvol
-
+   Esli vysheukazannyj indeks sozdaiotsya kak UNIQUE, to kolonka, dlya
+   kotoroj on sozdaiotsya mozhet hranit' simvoly i v verhnem, i v nizhnem
+   registre, indes ne mozhet imet' identichnyh znachenij, kotorye
+   otlichayutsya tol'ko registrom. CHtoby v kolonke mozhno bylo hranit'
+   simvoly tol'ko v opredelionnom registre, ispol'zujte ogranichenie
+   CHECK ili proverku cherez trigger.
+   
+  4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
+  zaprose? Mogu ya otsortirovat' polya NULL ili net?
+  
+   Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL, kak zdes':
+   SELECT *
+   FROM tab
+   WHERE col IS NULL;
+
+   CHtoby otsortirovat' dannye po znacheniyu ispol'zujte modifikatory IS
+   NULL i IS NOT NULL v vyrazhenii ORDER BY. Kogda oni budut generirovat'
+   znacheniya istina, to pri sortirovke oni budut vyshe, chem znacheniya
+   lozh', tak chto zapisi s NULL budut v otsortirovannom spiske sverhu:
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL);
+
+  4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
+  
+   Tip Vnutrennee imya Zamechaniya
+   VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolneniya
+   CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny
+   TEXT text net zadavaemogo verhnego ogranicheniya ili dliny
+   BYTEA bytea massiv bajt peremennoj dliny (mozhno ispol'zovat'
+   null-bajt bez opaski)
+   "char" char odin simvol
+   
    Vnutrennee imya vy mozhete uvidet', kogda smotrite sistemnye katalogi
    i v nekotoryh soobscheniyah ob oshibkah.
    
    Pervye chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye
    chetyre bajta na diske yavlyayutsya dlinnoj, za kotoroj sleduyut
    dannye). Takim obrazom, fakticheski ispol'zuemoe prostranstvo bol'she,
-   chem oboznachennyj razmer. Odnako, `eti tipy dannyh takzhe poddayutsya
-   szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak
-   chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she,
-   chem ozhidalos'.
+   chem oboznachennyj razmer. Odnako, dlinnye znacheniya takzhe
+   szhimayutsya, tak chto zanimaemoe diskovoe prostranstvo mozhet takzhe
+   byt' i men'she, chem ozhidalos'.
    VARCHAR(n) - `eto luchshee reshenie, kogda nuzhno hranit' stroki
    peremennoj dliny, ne prevyshayuschie opredelennogo razmera. TEXT -
    `eto luchshee reshenie dlya strok neogranichennoj dliny, s maksimal'no
@@ -1010,8 +714,8 @@ t' null-bajt bez opaski)
    znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye
    zdes', imeyut shodnye harakteristiki proizvoditel'nosti.
    
-    4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
-    
+  4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
+  
    PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet
    posledovatel'nost'. Naprimer:
     CREATE TABLE person (
@@ -1027,18 +731,14 @@ t' null-bajt bez opaski)
     );
 
    Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva
-   posvyaschennoj create_sequence. Vy takzhe mozhete ispol'zovat' kazhdoe
-   pole OID v zapisi kak unikal'noe znachenie. Odnako, esli vam nuzhen
-   damp i perezagruzka bazy dannyh, vam neobhodimo ispol'zovat' komandu
-   pg_dump s opciej -o ili opciyu COPY WITH OIDS dlya sohraneniya
-   znachenij polya OID.
-   
-    4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
-    
+   posvyaschennoj create_sequence.
+   
+  4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
+  
    Odin iz sposobov sostoit v poluchenii sleduyuschego znacheniya SERIAL
    iz ob"ekta sequence s pomosch'yu funkcii nextval() pered vstavkoj i
    zatem vstavlyat' `eto znachenie yavno. Ispol'zujte tablicu-primer v
-   4.15.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
+   4.11.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
     new_id = execute("SELECT nextval('person_id_seq')");
     execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
 
@@ -1055,89 +755,47 @@ t' null-bajt bez opaski)
     execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
     new_id = execute("SELECT currval('person_id_seq')");
 
-   I nakonec, vy mozhete ispol'zovat' znachenie OID, vozraschaemoe iz
-   opertora INSERT chtoby uvidet' znachenie po umolchaniyu, chto
-   predpolozhitel'no yavlyaetsya naimenee perenosimym na drugie platformy
-   resheniem, k tomu zhe znachenie oid budet urezat'sya, kogda ono
-   dostignet 4 milliardov. V Perl, ispol'zuya DBI s modulem Edmund
-   Mergl'ya DBD::Pg, znachenie oid stanovitsya dostupnym cherez
-   $sth->{pg_oid_status} posle $sth->execute().
-   
-    4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
-    nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
-    
-   Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashem
-   backend'om, a ne drugimi pol'zovatelyami.
-   
-    4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova
-    pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke,
-    gde ya ispol'zuyu posledovatel'nost'/SERIAL?
-    
+  4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
+  nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
+  
+   Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej
+   sessiej, a ne drugimi sessiyami.
+   
+  4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova pri
+  otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, gde
+  ya ispol'zuyu posledovatel'nost'/SERIAL?
+  
    Dlya realizacii konkuretnosti, znacheniya posledovatel'nostej, pri
    neobhodimosti vydayutsya vo vremya zapuska tranzakcij i ne
    blokiruyutsya do polnogo vypolneniya tranzakcij. `Eto mozhet vyzyvat'
    razryvy v numeracii pri otmene tranzakcij.
    
-    4.16) CHto takoe OID? CHto takoe TID?
-    
-   Polya OID sluzhat unikal'nymi idetifikatorami zapisej v PostgreSQL.
-   Kazhdaya zapis', kotoraya sozdaiotsya v PostgreSQL poluchaet
-   unikal'nyj OID. Vse znacheniya OID generiruemye vo vremya initdb
-   imeyut znacheniya men'she 16384 (iz include/access/transam.h). Vse
-   sozdannye pol'zovatelem OID imeyut bOl'shie znachenie. Po umolchaniyu,
-   vse `eti OID yavlyayutsya unikal'nymi ne tol'ko vnutri kakoj-libo
-   tablicy ili bazy dannyh, no i vnutri vsej SUBD PostgreSQL.
-   
-   PostgreSQL ispol'zuet OID v svoih vnutrennih sistemnyh tablicah dlya
-   svyazi zapisej i tablic. Znacheniya OID mogut byt' ispol'zovany dlya
-   identifikacii zadannyh pol'zovatelem zapisej, a takzhe ispol'zovat'sya
-   pri svyazyvaniyah. Rekomenduetsya ispol'zovat' tip kolonki OID dlya
-   hraneniya znachenij OID Vy mozhete sozdat' indeks na pole OID dlya
-   bolee bystrogo dostupa.
-   
-   Znacheniya OID naznachayutsya dlya vseh novyh zapisej iz central'noj
-   oblasti, kotorye ispol'zuyutsya vsemi vsemi bazami dannyh. Esli vy
-   hotite izmenit' OID na kakoe-libo drugoe znachenie ili esli vy hotite
-   sozdat' kopiyu tablicy s takimizhe OID, to `eto mozhno sdelat' tak:
-        CREATE TABLE new_table(mycol int);
-        SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
-        COPY tmp_table TO '/tmp/pgtable';
-        COPY new_table WITH OIDS FROM '/tmp/pgtable';
-        DROP TABLE tmp_table;
-
-   OID hranitsya kak 4-h bajtnoe celoe i ne mozhet prevyshat' znachenie v
-   4 milliarda. Odnako, esche nikto ne soobschil o tom, chto takoe
-   proizoshlo, no my planiruem do togo kak `eto sluchit'sya izbavitsya ot
-   `etogo ogranicheniya.
-   
-   TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
-   blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak
-   zapisi byli izmeneny ili peregruzheny.
+  4.12) CHto takoe OID? CHto takoe CTID?
+  
+   Kazhdaya, sozdavaemaya v PostgreSQL tablichnaya stroka, poluchaet
+   unikal'nyj indentifikator OID za isklyucheniem sluchaya kogda
+   ispol'zovalos' WITHOUT OIDS. OID - `eto avtomaticheski naznachaemoe
+   unikal'noe 4-h bajtovoe celoe chislo. Odnako, posle togo kak ego
+   znachenie prevysit 4 milliarda, znacheniya OID nachinayut
+   dublirovat'sya. PostgreSQL ispol'zuet OID dlya svyazyvaniya svoih
+   vnutrennih tablic.
+   
+   Dlya unikal'nyh znachenij v kolonkah tablicy pol'zovatelya, luchshim
+   sposobom yavlyaetsya ispol'zovanie SERIAL vmesto OID, potomu chto
+   posledovatel'nosti SERIAL unikal'ny tol'ko vnutri tablicy i takim
+   obrazom men'she podverzheny perepolneniyu. Dlya hraneniya znachenij
+   8-mi bajtnoj posledovatel'nosti dostupen tip SERIAL8.
+   
+   CTID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej
+   s blochnymi i offset znacheniyami. CTID izmenyaetsya posle togo kak
+   stroki v tablice byli izmeneny ili peregruzheny.
    
    TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
    fizicheskie zapisi.
    
-    4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
-    
-   Nekotoryj ishodnyj kod i staraya dokumentaciya ispol'zuyut
-   obscheupotrebitel'nye terminy. Vot nekotorye iz nih:
-     * table, relation, class
-     * row, record, tuple
-     * column, field, attribute
-     * retrieve, select
-     * replace, update
-     * append, insert
-     * OID, serial value
-     * portal, cursor
-     * range variable, table name, table alias
-       
-   Spisok obschih terminov po bazam dannyh mozhno najti na
-   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
-   /glossary.html
-   
-    4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
-    AllocSetAlloc()"?
-    
+  4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
+  AllocSetAlloc()"?
+  
    Predpolozhitel'no u vas zakonchilas' virtual'naya pamyat' ili chto
    vashe yadro imeet malen'kij limit na opredelennye resursy. Popytajtes'
    pered zapuskom postmaster vypolnit' sleduyuschie komandy:
@@ -1152,61 +810,18 @@ t' null-bajt bez opaski)
    klientom, potomu chto backend vozvraschaet slishkom bol'shoj ob"em
    dannyh, popytajtes' vypolnit' `etu komandu pered zapuskom klienta.
    
-    4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
-    
+  4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
+  
    Iz psql, naberite SELECT version();
    
-    4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
-    "invalid large obj descriptor"?
-    
-   Vam nuzhno pri ispol'zovanii bol'shogo ob"ekta pomestit' v nachale
-   BEGIN WORK i v konce COMMIT, a vnutri poluchivshegosya bloka lo_open
-   ... lo_close.
-   
-   V nastoyaschij moment PostgreSQL trebuet, chtoby pri zakrytii
-   bol'shogo ob"ekta proishodilo vypolnenie tranzakcii. Takim obrazom,
-   pervaya zhe popytka sdelat' chto-libo s bol'shim ob"ektom, ne
-   soblyudaya dannogo pravila privedet k soobscheniyu invalid large obj
-   descriptor, tak kak kod vypolnyayuschij rabotu nad bol'shim ob"ektom
-   (po krajnej mere v nastoyaschij moment) budet generirovat' soobschenie
-   ob oshibke esli vy ne ispol'zuete tranzakciyu.
-   
-   Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno
-   ponadobitsya ustanovit' auto-commit off.
-   
-    4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
-    tekuschee vremya?
-    
+  4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
+  tekuschee vremya?
+  
    Ispol'zujte CURRENT_TIMESTAMP:
-CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 
-    4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno rabotaeyut?
-    
-   V versiyah do 7.4, podzaprosy svyazyvalis' s roditel'skimi zaprosami
-   cherez posledovatel'nyj perebor rezul'tatov pozaprosa dlya kazhdoj
-   zapisi roditel'skogo zaprosa. Esli podzapros vozvraschaet tol'ko
-   neskol'ko zapisej, a roditel'skij zapros vozvraschaet mnogo zapisej,
-   IN rabotaet naibolee bystro. CHtoby uvelichit' skorost' v drugih
-   zaprosah, zamenite IN na EXISTS:
-    SELECT *
-    FROM tab
-    WHERE col IN (SELECT subcol FROM subtab);
-
-   na:
-    SELECT *
-    FROM tab
-    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-
-   CHtoby takaya konstrukciya rabotala bystro, kolonka subcol dolzhna
-   byt' proindeksirovana.
-   
-   V versii 7.4 i vyshe, IN fakticheski ispol'zuet takoj zhe mehanizm
-   svyazyvaniya kak i obychnye zaprosy, po`etomu predpochtitel'nym
-   yavlyaetsya ispol'zovanie EXISTS
-   .
-   
-    4.23) Kak mne vypolnit' vneshnee svyazyvanie?
-    
+  4.16) Kak mne vypolnit' vneshnee svyazyvanie?
+  
    PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj
    sintaksis SQL. Vot dva primera:
     SELECT *
@@ -1217,49 +832,34 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
     FROM t1 LEFT OUTER JOIN t2 USING (col);
 
    `Eto identichnye zaprosy svyazyvaniya t1.col i t2.col, takzhe
-   vozvraschayut lyubye nesvyazannye zapisi v t1 (kotorye ne sovpadayut s
-   t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye zapisi t2. FULL
-   svyazyvanie dolzhno vozvratit' sovpavshie zapisi plyus vse
-   nesvyazannye zapisi iz t1 i t2. Slovo OUTER yavlyaetsya
+   vozvraschayut lyubye nesvyazannye stroki v t1 (kotorye ne sovpadayut s
+   t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye stroki t2. FULL
+   svyazyvanie dolzhno vozvratit' sovpavshie stroki plyus vse
+   nesvyazannye stroki iz t1 i t2. Slovo OUTER yavlyaetsya
    neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah.
    Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya.
    
-   V predyduschih versiyah, vneshnie svyazyvaniya mogli byt' `emulirovany
-   ispol'zuya UNION i NOT IN. Naprimer, kogda proishodit svyazyvanie tab1
-   i tab2, sleduyuschij zapros vypolnyaet vneshnee svyazyvanie dvuh
-   tablic:
-    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) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
-    
+  4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
+  
    Ne suschestvuet sposoba sozdat' zapros k bazam dannyh otlichnym ot
    tekuschej. Poskol'ku PostgreSQL zagruzhaet sistemnye katalogi
    specifichnye dlya bazy dannyh, neponyatno dazhe, kak dolzhen sebya
    vesti takoj mezhbazovyj zapros.
    
    contrib/dblink pozvolyaet zaprosy mezhdu bazami, ispol'zuya vyzovy
-   funkcij. Razumeetsya, klient mozhet odnovremenno ustanavlivat'
+   funkcij. Razumeetsya, klient mozhet odnovremenno takzhe ustanavlivat'
    soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat'
    informaciyu iz nih.
    
-    4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
-    
-   V versii 7.3, vy mozhete legko vernut' neskol'ko zapisej ili kolonok
-   iz kakoj-libo funkcii,
-   http://techdocs.postgresql.org/guides/SetReturningFunctions
-   .
-   
-    4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
-    funkciyah PL/PgSQL?
-    
-   PL/PgSQL k`eshiruet soderzhimoe funkcii i odin iz negativnyh `effektov
+  4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
+  
+   Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok,
+   http://techdocs.postgresql.org/guides/SetReturningFunctions.
+   
+  4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne suschestvuet",
+  kogda obraschayuts' k vremennym tablicam v funkciyah PL/PgSQL?
+  
+   PL/PgSQL k`eshiruet scenarii funkcii i odin iz negativnyh `effektov
    `etogo sostoit v tom, chto esli funkciya PL/PgSQL obraschaetsya k
    vremennoj tablice i `eta tablica pozdnee udalyaetsya i peresozdaetsya,
    a funkciya zatem vyzyvaetsya snova, to ee vyzov privedet k oshibke,
@@ -1268,51 +868,36 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
    EXECUTE dlya dostupa k vremennym tablicam v PL/PgSQL. Ispol'zovanie
    `etogo operatora zastavit zapros peregenerirovat'sya kazhdyj raz.
    
-    4.27) Kakie opcii shifrovaniya suschestvuyut?
-    
-     * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya
-       ispol'zovaniya v SQL zaprosah.
-     * Dlya shifrovaniya peredavaemyh dannyh ot klienta k serveru, na
-       servere v fajle postgresql.conf, opciya ssl dolzhna byt'
-       ustanovlena v true, v fajle pg_hba.conf dolzhna byt'
-       sootvetstvuyuschaya zapis' host ili hostssl i na storone klienta
-       sslmode ne dolzhen byt' zapreschion cherez disable. (Zametim, chto
-       takzhe vozmozhno ispol'zovanie nezavisimyh vneshnih shifruyuschih
-       transportov, takih kak stunnel ili ssh, vmesto sobstvennyh SSL
-       soedinenij PostgreSQL).
-     * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya,
-       pri sohranenii v versii 7.3. V predyduschih versiyah, vy dolzhny
-       razreshit' opciyu PASSWORD_ENCRYPTION v postgresql.conf.
-     * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu
-       sistemu.
-     _________________________________________________________________
-   
-                          Rasshireniya PostgreSQL
-                                      
-    5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu
-    ee v psql, pochemu ya poluchayu core dump?
-    
-   Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes'
-   sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj
-   programme.
-   
-    5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
-    PostgreSQL?
-    
-   Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po
-   vozmozhnosti budut pomescheny v podkatalog contrib/.
-   
-    5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
-    
-   V versiyah PostgreSQL, nachinaya s 7.3, funkcii, vozvraschayuschie
-   tablicy polnost'yu podderzhivayutsya v C, PL/PgSQL i SQL. Podrobnosti
-   smotrite v Rukovodstve Programmista. Primer vozvraschayuschej tablicu
-   funkcii, napisannoj na C, mozhno najti v contrib/tablefunc.
-   
-    5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu
-    izmenenij?
-    
-   Fajly Makefile ne imeyut pravil'nyh zavisimostej dlya include fajlov.
-   Vy dolzhny vypolnit' make clean i zatem make. Esli vy ispol'zuete GCC
-   vy mozhete ispol'zovat' opciyu --enable-depend v configure chtoby
-   poruchit' kompilyatoru avtomaticheski otslezhivat' zavisimosti.
+  4.20) Kakie est' resheniya dlya replikacii?
+  
+   Hotya "replikaciya" -- `eto edinyj termin, est' neskol'ko raznyh
+   tehnologij dlya vypolneniya replikacij s raznymi osobennostyami dlya
+   kazhdoj.
+   
+   Replikaciya Master/slave pozvolyaet imet' odin glavnyj (master) server
+   dlya vypolneniya zaprosov chteniya/zapisi, v to vremya kak
+   podchinionnye (slave) servera mogut proizvodit' tol'ko zaprosy
+   chteniya/SELECT. Naibolee populyarnym resheniem dlya replikacii
+   master-slave v PostgreSQL yavlyaetsya Slony-I.
+   
+   Replikaciya Multi-master pozvolyaet vypolnyat' zaprosy chteniya/zapisi
+   na neskol'kih, repliciruemyh drug s drugom komp'yuetrah. `Eta
+   osobennost' takzhe privodit k potere proizvoditel'nosti, potomu chto
+   neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami.
+   Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL
+   yavlyaetsya Pgcluster.
+   
+  4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose?
+  
+   Naibolee chasto `eto proishodit iz-za ispol'zovaniya dvojnyh kavychek
+   v imeni tablicy ili kolonki pri sozdanii tablicy. Pri ispol'zovanii
+   dvojnyh kavychek, imya tablicy i kolonki (kotorye nazyvayut
+   identifikatorami) sohranyayutsya v registro-zavisimom vide; `eto
+   oznachaet, chto vy dolzhny ispol'zovat' dvojnye kavychki, kogda
+   ukazyvaete `eti imena v zaprose. Nekotorye interfejsy, takie kak
+   pgAdmin, vo vremya sozdaniya tablicy dobavlyayut dvojnye kavychki
+   avtomaticheski. Takim obrazom, chtoby identifikatory raspoznavalis' vy
+   dolzhny sledovat' odnomu iz sleduyuschih pravil:
+     * Izbegat' ispol'zovaniya dvojnyh kavychek pri sozdanii tablic
+     * Ispol'zovat' v identifikatorah tol'ko simvoly nizhnego registra
+     * Ispol'zovat' dvojnye kavychki dlya identifikatorov v zaprosah
index c065123f1ce960126a2ab51b7861a1bc79cb4f65..e26d33df585d3acf7890618c842ae5aa2aae62af 100644 (file)
   <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
     <H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
 
-    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: óÒÅÄÁ 15 ÄÅËÁÂÒÑ 20:06:34 EST 2004</P>
+    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÑÔÎÉÃÁ 16 ÓÅÎÔÑÂÒÑ 14:07:22 EDT 2005</P>
 
     <P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑΠ(Bruce Momjian) (<A href=
     "mailto:[email protected]">[email protected]</A>)<BR>
     </P>
-    <P>ðÅÒÅ×ÅÌ ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (<A href=
-    "mailto:[email protected]">corochoone@perm.ru</A>)<BR>
+    <P>ðÅÒÅף̠ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (<A href=
+    "mailto:[email protected]">admin@linuxshare.ru</A>)<BR>
     </P>
 
     <P>óÁÍÕÀ Ó×ÅÖÕÀ ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
-    <A href="http://www.postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P>
+    <A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html</A>.</P>
 
     <P>ïÔ×ÅÔÙ ÎÁ ×ÏÐÒÏÓÙ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÌÁÔÆÏÒÍ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
-    <A href="http://www.postgresql.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P>
+    <A href="http://www.postgresql.org/docs/faq/">http://www.PostgreSQL.org/docs/faq/</A>.</P>
     <HR>
 
     <H2 align="center">ïÂÝÉÅ ×ÏÐÒÏÓÙ</H2>
-    <A href="#1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?<BR>
+     <A href="#1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?<BR>
      <A href="#1.2">1.2</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?<BR>
-     <A href="#1.3">1.3</A>) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?<BR>
-     <A href="#1.4">1.4</A>) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÏÒÔÉÒÏ×ÁÎÎÙÅ ÎÅ ÎÁ Unix ÓÉÓÔÅÍÙ?<BR>
-     <A href="#1.5">1.5</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?<BR>
-     <A href="#1.6">1.6</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?<BR>
+     <A href="#1.3">1.3</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?<BR>
+     <A href="#1.4">1.4</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?<BR>
+     <A href="#1.5">1.5</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?<BR>
+     <A href="#1.6">1.6</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?<BR>
      <A href="#1.7">1.7</A>) ëÁËÁÑ ×ÅÒÓÉÑ ÐÏÓÌÅÄÎÑÑ?<BR>
      <A href="#1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?<BR>
      <A href="#1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ
     ×ÏÚÍÏÖÎÏÓÔÑÈ?<BR>
      <A href="#1.10">1.10</A>) ëÁË ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?<BR>
-     <A href="#1.11">1.11</A>) òÅÛÅÎÁ ÌÉ × PostgreSQL ÐÒÏÂÌÅÍÁ 2000-ÇÏ ÇÏÄÁ (Y2K)?<BR>
-     <A href="#1.12">1.12</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?<BR>
-     <A href="#1.13">1.13</A>) ëÁË ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ?<BR>
-     <A href="#1.14">1.14</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
+     <A href="#1.11">1.11</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?<BR>
+     <A href="#1.12">1.12</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
     <SMALL>óõâä</SMALL>?<BR>
-     <A href="#1.15">1.15</A>) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ PostgreSQL?<BR>
-     
+     <A href="#1.13">1.13</A>) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?<BR>
+    
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
-    <A href="#2.1">2.1</A>) óÕÝÅÓÔ×ÕÀÔ ÌÉ <SMALL>ODBC</SMALL> ÄÒÁÊ×ÅÒÁ ÄÌÑ
-    PostgreSQL?<BR>
+    <A href="#2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?<BR>
      <A href="#2.2">2.2</A>) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
     PostgreSQL ÞÅÒÅÚ Web?<BR>
      <A href="#2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
     ÐÏÌØÚÏ×ÁÔÅÌÑ?<BR>
-     <A href="#2.4">2.4</A>) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó
-    PostgreSQL?<BR>
      
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ</H2>
     <A href="#3.1">3.1</A>) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ
     ÏÔ <I>/usr/local/pgsql</I>?<BR>
-     <A href="#3.2">3.2</A>) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ <I>postmaster</I>, Ñ ÐÏÌÕÞÁÀ
-     ÓÏÏÂÝÅÎÉÅ <I>Bad System Call</I> ÉÌÉ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?<BR>
-     <A href="#3.3">3.3</A>) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ <I>postmaster</I>, Ñ
-    ÐÏÌÕÞÁÀ ÏÛÉÂËÉ <I>IpcMemoryCreate</I>. ðÏÞÅÍÕ?<BR>
-     <A href="#3.4">3.4</A>) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ <I>postmaster</I>, Ñ
-    ÐÏÌÕÞÁÀ ÏÛÉÂËÉ <I>IpcSemaphoreCreate</I>. ðÏÞÅÍÕ?<BR>
-     <A href="#3.5">3.5</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
+     <A href="#3.2">3.2</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
     ËÏÍÐØÀÔÅÒÏ×?<BR>
-     <A href="#3.6">3.6</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
+     <A href="#3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
      ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?<BR>
-     <A href="#3.7">3.7</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?<BR>
-     <A href="#3.8">3.8</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too many
+     <A href="#3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?<BR>
+     <A href="#3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too many
     clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?<BR>
-     <A href="#3.9">3.9</A>) þÔÏ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÅ <I>pgsql_tmp</I>?<BR>
-     <A href="#3.10">3.10</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
+     <A href="#3.6">3.6</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
     ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?<BR>
-     <A href="#3.11">3.11</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
+     <A href="#3.7">3.7</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
     ÉÓÐÏÌØÚÏ×ÁÔØ?<BR>
      
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ</H2>
-    <A href="#4.1">4.1</A>) ÷ ÞÅÍ ÏÔÌÉÞÉÅ ÍÅÖÄÕ ÂÉÎÁÒÎÙÍ É ÎÏÒÍÁÌØÎÙÍ
-    ËÕÒÓÏÒÏÍ?<BR>
-     <A href="#4.2">4.2</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
+     <A href="#4.1">4.1</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
      ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? äÌÑ ÐÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?<BR>
-     <A href="#4.3">4.3</A>) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉàÉÌÉ ÄÒÕÇÉÈ
-     ËÏÍÐÏÎÅÎÔÏ× × <I>psql</I>?<BR>
-     <A href="#4.4">4.4</A>) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ ÉÌÉ ÉÚÍÅÎÉÔØ
-     Å£ ÔÉРÄÁÎÎÙÈ?<BR>
-     <A href="#4.5">4.5</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ,
-    ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?<BR>
-     <A href="#4.6">4.6</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
+     <A href="#4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
+     ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ,
+     ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?<BR>
+     <A href="#4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉРÄÁÎÎÙÈ ËÏÌÏÎËÉ?<BR>
+     <A href="#4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
+     ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?<BR>
+     <A href="#4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
      ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?<BR>
-     <A href="#4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ
-     ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?<BR>
-     <A href="#4.8">4.8</A>) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ
-     ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?<BR>
-     <A href="#4.9">4.9</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
+     <A href="#4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
+     ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?<BR>
+     <A href="#4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
      ÍÏÊ ÚÁÐÒÏÓ?<BR>
-     <A href="#4.10">4.10</A>) þÔÏ ÔÁËÏÅ R-tree ÉÎÄÅËÓ?<BR>
-     <A href="#4.11">4.11</A>) þÔÏ ÔÁËÏÅ Genetic Query Optimizer?<BR>
-     <A href="#4.12">4.12</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
+     <A href="#4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
      É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
      ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?<BR>
-     <A href="#4.13">4.13</A>) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ
-     <SMALL>NULL</SMALL> × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?<BR>
-     <A href="#4.14">4.14</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
+     <A href="#4.9">4.9</A>) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ
+     <SMALL>NULL</SMALL> × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ
+     <SMALL>NULL</SMALL> ÉÌÉ ÎÅÔ?<BR>
+     <A href="#4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
      ÔÉÐÁÍÉ?<BR>
-     <A href="#4.15.1">4.15.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?<BR>
-     <A href="#4.15.2">4.15.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
+     <A href="#4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?<BR>
+     <A href="#4.11.2">4.11.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
     <SMALL>SERIAL</SMALL>?<BR>
-     <A href="#4.15.3">4.15.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
+     <A href="#4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
     ÉÓÐÏÌØÚÏ×ÁÎÉÅ <I>currval()</I> É <I>nextval()</I> ÐÒÉ×ÅÄÅÔ Ë
     ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?<BR>
-     <A href="#4.15.4">4.15.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
+     <A href="#4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
     ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
     ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?<BR>
-     <A href="#4.16">4.16</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
-    <SMALL>TID</SMALL>?<BR>
-     <A href="#4.17">4.17</A>) þÔÏ ÏÚÎÁÞÁÀÔ ÎÅËÏÔÏÒÙÅ ÔÅÒÍÉÎÙ ÉÓÐÏÌØÚÕÅÍÙÅ ×
-    PostgreSQL?<BR>
-     <A href="#4.18">4.18</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
+     <A href="#4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
+    <SMALL>CTID</SMALL>?<BR>
+     <A href="#4.13">4.13</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
     exhausted in AllocSetAlloc()"</I>?<BR>
-     <A href="#4.19">4.19</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
+     <A href="#4.14">4.14</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
     ÚÁÐÕÝÅÎÁ?<BR>
-     <A href="#4.20">4.20</A>) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ
-     Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"invalid large obj descriptor"</I>?<BR>
-     <A href="#4.21">4.21</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
+     <A href="#4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
      ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?<BR>
-     <A href="#4.22">4.22</A>) ðÏÞÅÍÕ ÍÏÉ ÐÏÄÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ
-    <CODE><SMALL>IN</SMALL></CODE> ÔÁË ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÅÀÔ?<BR>
-     <A href="#4.23">4.23</A>) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?<BR>
-     <A href="#4.24">4.24</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
+     <A href="#4.16">4.16</A>) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?<BR>
+     <A href="#4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
      ÂÁÚ ÄÁÎÎÙÈ?<BR>
-     <A href="#4.25">4.25</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?<BR>
-     <A href="#4.26">4.26</A>) ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÎÁÄÅÖÎÏ ÓÏÚÄÁ×ÁÔØ/ÕÄÁÌÑÔØ
-     ×ÒÅÍÅÎÎÙÅ ÔÁÂÌÉÃÙ × ÆÕÎËÃÉÑÈ PL/PgSQL?<BR>
-     <A href="#4.27">4.27</A>) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ?<BR>
-
-    <H2 align="center">òÁÓÛÉÒÅÎÉÑ PostgreSQL</H2>
-    <A href="#5.1">5.1</A>) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ.
-    ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × <I>psql</I>, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?<BR>
-     <A href="#5.2">5.2</A>) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ
-     ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?<BR>
-     <A href="#5.3">5.3</A>) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ
-    ÚÁÐÉÓØ?<BR>
-     <A href="#5.4">5.4</A>) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ
-     ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?<BR>
-     
+     <A href="#4.18">4.18</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?<BR>
+     <A href="#4.19">4.19</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID ####
+     ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?<BR>
+     <A href="#4.20">4.20</A>) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?<BR>
+     <A href="#4.21">4.21</A>) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ
+     ÒÁÓÐÏÚÎÁÀÔÓÑ × × Íϣ͠ÚÁÐÒÏÓÅ?<BR>
+
     <HR>
 
     <H2 align="center">ïÂÝÉÅ ×ÏÐÒÏÓÙ</H2>
 
-    <H4><A name="1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?</H4>
-
-    <P>PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ <I>Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ)</I>.
-    ðÏ ÁÄÒÅÓÕ http://www.postgresql.org/postgresql.mp3 ÄÏÓÔÕÐÅΠÚ×ÕËÏ×ÏÊ
-    ÆÁÊÌ Ó ÐÒÉÍÅÒÏÍ ËÁË ÜÔÏ ÎÕÖÎÏ ÐÒÏÉÚÎÏÓÉÔØ.</P>
-
-    <P>PostgreSQL - ÜÔÏ ÒÁÓÛÉÒÅÎÉÅ óõâä POSTGRES (É ÐÏÜÔÏÍÕ ÉÎÏÇÄÁ
-    ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ "Postgres"), ÉÓÓÌÅÄÏ×ÁÔÅÌØÓËÉÊ
-    ÐÒÏÔÏÔÉРÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ <SMALL>óõâä</SMALL>.
-    PostgreSQL ÏÄÎÏ×ÒÅÍÅÎÎÏ ÓÏÈÒÁÎÑÅÔ ÍÏÝÎÕÀ ÍÏÄÅÌØ ÄÁÎÎÙÈ É ÏÂÝÉÒÎÏÅ
-    ËÏÌÉÞÅÓÔ×Ï ÔÉÐÏ× POSTGRES, É ÚÁÍÅÝÁÅÔ ÑÚÙË ÚÁÐÒÏÓÏ× PostQuel ÎÁ
-    ÒÁÓÛÉÒÅÎÎÏÅ ÐÏÄÍÎÏÖÅÓÔ×Ï <SMALL>SQL</SMALL>. PostgreSQL - ÜÔÏ
-    Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.</P>
-
-    <P>òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ×ÓÅ ÕÞÁÓÔÎÉËÉ
-    ËÏÔÏÒÏÊ ÐÏÄÐÉÓÁÎÙ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. ÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ,
-    ÉÈ ËÏÏÒÄÉÎÁÔÏÒÏÍ Ñ×ÌÑÅÔÓÑ íÁÒË æÕÒÎØÅ (Marc G. Fournier) (<A href=
-    "mailto:[email protected]">[email protected]</A>). (óÍ.
-    ÓÅËÃÉÀ <A href="#1.6">1.6</A> Ï ÔÏÍ, ËÁË ÐÏÄËÌÀÞÉÔØÓÑ Ë ÒÁÚÒÁÂÏÔËÅ).
-    üÔÁ ËÏÍÁÎÄÁ ÔÅÐÅÒØ ÏÔ×ÅÞÁÅÔ ÚÁ ×ÓÀ ÒÁÚÒÁÂÏÔËÕ PostgreSQL. äÁÎÎÙÊ
-    ÐÒÏÅËÔ Ñ×ÌÑÅÔÓÑ ÏÂÝÅÓÔ×ÅÎÎÙÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ.
-    ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×,
-    <A href="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>
+    <H3><A name="1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?</H3>
+
+    <P>PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ <I>Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ)</I>,
+    ÔÁËÖÅ ÉÎÏÇÄÁ ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ <I>Postgres</I>. ÷Ù ÍÏÖÅÔÅ ÕÓÌÙÛÁÔØ ËÁË
+    ÜÔÏ ÐÒÏÉÚÎÏÓÉÔÓÑ Ó ÐÏÍÏÝØÀ ÁÕÄÉÏÆÁÊÌÁ, ËÏÔÏÒÙÊ ÄÏÓÔÕÐÅΠ×
+    <A href="http://www.postgresql.org/files/postgresql.mp3">ÆÏÒÍÁÔÅ MP3</A>.
     </P>
 
-    <P>á×ÔÏÒÁÍÉ PostgreSQL 1.01 Ñ×ÌÑÀÔÓÑ üÎÄÒÀ à (Andrew Yu) É äÖÏÌÉ þÅΠ
-    (Jolly Chen). íÎÏÇÉÅ ÄÒÕÇÉÅ ×ÎÅÓÌÉ Ó×ÏÊ ×ËÌÁÄ × ÐÅÒÅÎÏÓ ÎÁ ÄÒÕÇÉÅ
-    ÐÌÁÔÆÏÒÍÙ, ÔÅÓÔÉÒÏ×ÁÎÉÅ, ÏÔÌÁÄËÕ É ÒÁÓÛÉÒÅÎÉÅ ÜÔÏÇÏ ËÏÄÁ. ðÅÒ×ÏÎÁÞÁÌØÎÙÊ
-    ËÏÄ Postgres,  ÉÚ ËÏÔÏÒÏÇÏ ÐÏÑ×ÉÌÓÑ PostgreSQL, ÂÙÌ ÉÔÏÇÏÍ ÕÓÉÌÉÊ ÍÎÏÇÉÈ
-    ÁËÁÄÅÍÉÞÅÓËÉÈ ÓÔÕÄÅÎÔÏ×, ÎÅÁËÁÄÅÍÉÞÅÓËÉÈ ÓÔÕÄÅÎÔÏ× É ÍÎÏÖÅÓÔ×Á
-    ÒÁÚÎÙÈ ÐÒÏÇÒÁÍÍÉÓÔÏ×, ÒÁÂÏÔÁ×ÛÉÈ ÐÏÄ ÒÕËÏ×ÏÄÓÔ×ÏÍ ÐÒÏÆÅÓÓÏÒÁ
-    íÁÊËÌÁ óÔÏÕÎÂÒÅÊËÅÒÁ (Michael Stonebraker) × ëÁÌÉÆÏÒÎÉÊÓËÏÍ ÕÎÉ×ÅÒÓÉÔÅÔÅ,
-    âÅÒËÌÉ.</P>
+    <P>PostgreSQL - ÜÔÏ ÏÂßÅËÔÎÏ-ÒÅÌÑÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÕÐÒÁ×ÌÅÎÉÑ ÂÁÚÁÍÉ
+    ÄÁÎÎÙÈ (óõâä), ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÏÍÍÅÒÞÅÓËÉÈ 
+    <small>óõâä</small> Ó ÒÁÓÛÉÒÅÎÉÑÍÉ, ËÏÔÏÒÙÅ ÅÓÔØ × <small>óõâä</small> 
+    ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ. PostgreSQL - ÜÔÏ Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ
+    ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.</P>
 
-    <P>ðÅÒ×ÏÎÁÞÁÌØÎÏÅ ÉÍÑ, ÄÁÎÎÏÅ × âÅÒËÌÉ, ÂÙÌÏ Postgres. ëÏÇÄÁ
-    × 1995 ÇÏÄÕ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ <SMALL>SQL</SMALL>,
-    ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ ÎÁ Postgres95. îÏ É ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ
-    × ËÏÎÃÅ 1996 ÎÁ PostgreSQL.</P>
+    <P>òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÚÂÒÏÓÁÎÎÁÑ
+    ÐÏ ×ÓÅÍÕ ÍÉÒÕ É Ó×ÑÚÁÎÎÁÑ ÞÅÒÅÚ éÎÔÅÒÎÅÔ. òÁÚÒÁÂÏÔËÁ Ñ×ÌÑÅÔÓÑ
+    ÏÂÝÅÓÔ×ÅÎÎÙÍ ÐÒÏÅËÔÏÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ.
+    ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×,
+    <A href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">
+    http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html</A>
+    </P>
+
+    <H3><A name="1.2">1.2</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?</H3>
 
-    <H4><A name="1.2">1.2</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?</H4>
+    <P>PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ
+    ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
+    ÉÓÈÏÄÎÙÊ ËÏÄ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ É Õ ÎÁÓ ÎÅÔ ÎÁÍÅÒÅÎÉʠţ
+    ÍÅÎÑÔØ.</P>
 
-    <P>PostgreSQL ÐÏÐÁÄÁÅÔ ÐÏÄ ÄÅÊÓÔ×ÉÅ ÓÌÅÄÕÀÝÅÇÏ COPYRIGHT:</P>
+    <P>÷ÏÔ ÜÔÁ ÌÉÃÅÎÚÉÑ BSD, ËÏÔÏÒÕÀ ÍÙ ÉÓÐÏÌØÚÕÅÍ:</P>
 
     <P>óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL</P>
 
-    <P>Portions copyright (c) 1996-2004, PostgreSQL Global Development
-    Group Portions Copyright (c) 1994-6 Regents of the University of
+    <P>Portions copyright (c) 1996-2005, PostgreSQL Global Development
+    Group Portions Copyright (c) 1994-1996 Regents of the University of
     California</P>
 
     <P>ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ
     "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø
     óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.</P>
 
-    <P>÷ÙÛÅÉÚÌÏÖÅÎÎÏÅ Ñ×ÌÑÅÔÓÑ BSD ÌÉÃÅÎÚÉÅÊ, ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÅÊ
-    ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ Ó ÏÔËÒÙÔÙÍ ËÏÄÏÍ. üÔÁ ÌÉÃÅÎÚÉÑ ÎÅ ÎÁËÌÁÄÙ×ÁÅÔ
-    ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ
-    É ÍÙ ÎÅ ÓÏÂÉÒÁÅÍÓѠţ ÍÅÎÑÔØ.</P>
-
-    <H4><A name="1.3">1.3</A>) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?</H4>
+    <H3><A name="1.3">1.3</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?</H3>
 
     <P>ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ
     ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË
     ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL
     Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.</P>
 
-    <H4><A name="1.4">1.4</A>) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÅÒÅÎÅÓÅÎÎÙÅ ÎÅ ÎÁ Unix
-    ÓÉÓÔÅÍÙ?</H4>
-
-    <P>îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 8.0, PostgreSQL ÂÅÚ ×ÓÑËÉÈ ÕÈÉÝÒÅÎÉÊ ÒÁÂÏÔÁÅÔ ÎÁ
-    ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË
-    Win2000, WinXP É Win2003. ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅΠÐÏ ÁÄÒÅÓÕ
+    <P>PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÎÁ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft
+    Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË Win2000, WinXP É Win2003.
+    ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅΠÐÏ ÁÄÒÅÓÕ
     <A href="http://pgfoundry.org/projects/pginstaller">
     http://pgfoundry.org/projects/pginstaller</A>. ÷ÅÒÓÉÉ Windows,
     ÏÓÎÏ×ÁÎÎÙÅ ÎÁ MS-DOS (Win95, Win98, WinMe) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ
     PostgreSQL Ó ÐÏÍÏÝØÀ Cygwin.</P>
     
     <P>ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÅÒÓÉÑ ÓÐÏÒÔÉÒÏ×ÁÎÎÁÑ ÐÏÄ Novell Netware 6 ÎÁ
-    <a href="http://forge.novell.com/">http://forge.novell.com</a>.</P>
+    <A href="http://forge.novell.com/">http://forge.novell.com</A>,
+    É ×ÅÒÓÉÑ ÄÌÑ OS/2 (eComStation) ÎÁ
+    <A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;button=Search&amp;key=postgreSQL&amp;stype=all&amp;sort=type&amp;dir=%2F">
+    http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;button=Search&amp;key=postgreSQL&amp;stype=all&amp;sort=type&amp;dir=%2F</A>.</P>
 
-    <H4><A name="1.5">1.5</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?</H4>
+    <H3><A name="1.4">1.4</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?</H3>
 
-    <P>îÁÐÒÉÍÅÒ, ×ÏÓÐÏÌØÚÏ×Á×ÛÉÓØ ÁÎÏÎÉÍÎÙÍ ÄÏÓÔÕÐÏÍ ÎÁ ftp ÓÁÊÔ
-    PostgreSQL <A href=
-    "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>.
-    óÐÉÓÏË ÚÅÒËÁÌ ×Ù ÎÁÊÄÅÔÅ ÎÁ ÎÁÛÅÍ ÏÓÎÏ×ÎÏÍ ÓÁÊÔÅ.</P>
+    <P>þÅÒÅÚ ÂÒÁÕÚÅÒ, ÉÓÐÏÌØÚÕÑ <a href="http://www.postgresql.org/ftp/">
+    http://www.postgresql.org/ftp/</a> É ÞÅÒÅÚ ftp, ÉÓÐÏÌØÚÕÑ
+    <A href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A>.</P>
 
-    <H4><A name="1.6">1.6</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?</H4>
+    <H3><A name="1.5">1.5</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?</H3>
 
-    <P>ïÓÎÏ×ÎÏÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ: <A href=
-    "mailto:[email protected]">[email protected]</A>.
-    ÷ ÎÅÍ ÍÏÖÎÏ ÏÂÓÕÖÄÁÔØ ÌÀÂÙÅ ÔÅÍÙ, ËÁÓÁÀÝÉÅÓÑ PostgreSQL. þÔÏÂÙ
-    ÐÏÄÐÉÓÁÔØÓÑ, ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ, × ËÏÔÏÒÏÍ ×
-    ÔÅÌÅ ÐÉÓØÍÁ (ÎÅ × ÔÅÍÅ) ÎÁÐÉÛÉÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ:</P>
-<PRE>
-    subscribe
-    end
-</PRE>
-
-    <P>ÎÁ ÁÄÒÅÓ <A href=
-    "mailto:[email protected]">[email protected]</A>.</P>
-
-    <P>óÕÝÅÓÔ×ÕÅÔ ÄÁÊÖÅÓÔ ÓÐÉÓÏË. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÎÅÇÏ, ÏÔÐÒÁרÔÅ
-    ÐÉÓØÍÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÎÁ ÁÄÒÅÓ: <A href=
-    É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:</P>
-<PRE>
-    subscribe
-    end
-</PRE>
-    äÁÊÖÅÓÔÙ ÏÔÐÒÁ×ÌÑÀÔÓÑ ÐÏÄÐÉÓÞÉËÁÍ, ËÏÇÄÁ × ÏÓÎÏ×ÎÏÍ ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ
-    ÎÁËÏÐÉÔÓÑ ÏËÏÌÏ 30 ËÉÌÏÂÁÊÔ ÓÏÏÂÝÅÎÉÊ.
-
-    <P>äÏÓÔÕÐÅΠɠÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÓÏÏÂÝÅÎÉÊ Ï ÏÛÉÂËÁÈ. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÜÔÏÔ
-    ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ ÁÄÒÅÓ <A href=
-    É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:</P>
-<PRE>
-    subscribe
-    end
-</PRE>
-    ôÁËÖÅ ÉÍÅÅÔÓÑ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ Ó ÄÉÓËÕÓÓÉÑÍÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ
-    ÎÁ ÜÔÏÔ ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ ÁÄÒÅÓ
-     <A href=
-    É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:
-<PRE>
-    subscribe
-    end
-</PRE>
-
-    <P>äÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÉÎÆÏÍÁÃÉÀ Ï PostgreSQL ÍÏÖÎÏ ÎÁÊÔÉ
-    ÎÁ ÄÏÍÁÛÎÅÊ ÓÔÒÁÎÉÞËÅ PostgreSQL ÐÏ ÁÄÒÅÓÕ:</P>
-
-    <BLOCKQUOTE>
-      <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
-    </BLOCKQUOTE>
+    <P>óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
+    ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ
+    E-mail ÜÔÏ: <A href="http://www.postgresql.org/community/lists/">
+    http://www.postgresql.org/community/lists/</A>. èÏÒÏÛÉÍ ÍÅÓÔÏÍ ÄÌÑ
+    ÔÏÇÏ, ÞÔÏÂÙ ÎÁÞÁÔØ ÚÁÄÁ×ÁÔØ ×ÏÐÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÓÐÉÓËÉ <i>general</i>
+    (ÏÂÝÉÅ ×ÏÐÒÏÓÙ) ÉÌÉ <i>bugs</i> (ÏÛÉÂËÉ).</P>
 
     <P>çÌÁ×ÎÙÍ IRC ËÁÎÁÌÏÍ Ñ×ÌÑÅÔÓÑ <I>#postgreql</I>,
     ÒÁÓÐÏÌÏÖÅÎÎÙÊ ÎÁ ÓÅÒ×ÅÒÅ Freenode (<I>irc.freenode.net</I>). þÔÏÂÙ
-    ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ Unix
+    ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × Unix ×ÙÚÏ× ÐÒÏÇÒÁÍÍÙ
     <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ÉÌÉ
     ÌÀÂÏÊ ÄÒÕÇÏÊ IRC ËÌÉÅÎÔ. îÁ ÜÔÏÍ ÖÅ ÓÅÒ×ÅÒÅ ÓÕÝÅÓÔ×ÕÀÔ ËÁÎÁÌÙ ÎÁ
     ÉÓÐÁÎÓËÏÍ (<I>#postgresql-es</I>) É ÆÒÁÎÃÕÚÓËÏÍ (<I>#postgresqlfr</I>)
     ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ ÐÏ PostgreSQL ÎÁ ÓÅÒ×ÅÒÅ EFNet.</P>
 
     <P>óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅΠÎÁ
-    <A href="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
+    <A href="http://techdocs.postgresql.org/companies.php">
+    http://techdocs.postgresql.org/companies.php</A>.</P>
 
-    <H4><A name="1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?</H4>
 
-    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 7.4.6</P>
+    <H3><A name="1.6">1.6</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?</H3>
+    
+    <P>ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ ×
+    PostgreSQL ÐÏ ÁÄÒÅÓÕ:
+    <A HREF="http://www.postgresql.org/support/submitbug">
+    http://www.postgresql.org/support/submitbug</A>.</P>
+    
+    <P>ôÁËÖÅ ÐÒÏ×ÅÒØÔÅ ÎÁÌÉÞÉÅ ÂÏÌÅÅ Ó×ÅÖÅÊ ×ÅÒÓÉÉ PostgreSQL ÎÁ ÎÁÛÅÍ
+    FTP ÓÁÊÔÅ <A href="ftp://ftp.postgresql.org/pub/">
+    ftp://ftp.PostgreSQL.org/pub/</A>.
+    
 
-    <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ 6-8 ÍÅÓÑÃÅ×.</P>
+    <H3><A name="1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?</H3>
 
-    <H4><A name="1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?</H4>
+    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.3</P>
 
-    <P>÷ ÄÉÓÔÒÉÂÕÔÉ× ×ËÌÀÞÁÀÔÓÑ ÒÁÚÌÉÞÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á, ÓÔÒÁÎÉÃÙ
-    ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ ÐÒÉÍÅÒÙ.
-    óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ <I>/doc</I>. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ
-    ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ
-    <A href="http://www.postgresql.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
+    <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ,
+    Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.</P>
 
-    <P>óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ <A href=
-    "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
-     É <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
-     óÐÉÓÏË ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ ÄÏÓÔÕÐÅΠÐÏ ÁÄÒÅÓÕ
-     <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>.
-     ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a>
-     ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.</p>
+    <H3><A name="1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?</H3>
 
+    <P>PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï,
+    ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ
+    ÐÒÉÍÅÒÙ. óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ <I>/doc</I>. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ
+    ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ <A href="http://www.postgresql.org/docs">
+    http://www.PostgreSQL.org/docs</A>.</P>
 
-    <P><I>psql</I> ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ÐÒÅËÒÁÓÎÙÈ ËÏÍÁÎÄ \d ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ
-    ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä.</P>
+    <P>óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ <A href=
+    "http://www.PostgreSQL.org/docs/books/awbook.html">http://www.PostgreSQL.org/docs/books/awbook.html</A>
+    É <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
+    åÓÔØ ÎÅÓËÏÌØËÏ ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ.
+    ïÄÎÕ ÉÚ ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÈ ÎÁÐÉÓÁÌ ëÏÒÒÉ äÕÇÌÁÓ (Korry Douglas).
+    óÐÉÓÏË ÏÂÚÏÒÏ× ÐÏ ÜÔÉÍ ËÎÉÇÁÍ ÄÏÓÔÕÐÅΠÐÏ ÁÄÒÅÓÕ
+    <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>.
+    ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a>
+    ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.</P>
+
+    <P>ëÌÉÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ <I>psql</I> ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ \d ÄÌÑ
+    ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä. -
+    ÉÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ÄÏÓÔÕÐÎÙÈ ËÏÍÁÎÄ.</P>
 
     <P>îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.</P>
 
-    <H4><A name="1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ
-    ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?</H4>
+    <H3><A name="1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ
+    ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?</H3>
 
     <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ <SMALL>SQL</SMALL>-92.
-    óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË <A href="http://developer.postgresql.org/todo.php">TODO</A>
+    óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
     ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ É ÂÕÄÕÝÉÈ
     ÐÌÁÎÏ×.</P>
 
-    <H4><A name="1.10">1.10</A>) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?</H4>
-
-    <P>ëÎÉÇÁ ÐÏ PostgreSQL ÎÁ <A href=
-    "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
-    ÎÁÕÞÉÔ <SMALL>SQL</SMALL>. óÕÝÅÓÔ×ÕÅÔ ÄÒÕÇÁÑ ËÎÉÇÁ ÐÏ PostgreSQL ÎÁ
-    <A href="http://www.commandprompt.com/ppbook/">
-    http://www.commandprompt.com/ppbook.</A>
-    åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ <A href=
-    "http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm,</A>
-    ÎÁ <A href=
-    "http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">
-    http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,</A>
-    É ÎÁ <A href=
-    "http://sqlcourse.com/">http://sqlcourse.com.</A></P>
-
-    <P>åÝÅ ÏÄÉΠÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days, Second Edition"
-    (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ)
-    ÎÁ <A href=
-    "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A></P>
+    <H3><A name="1.10">1.10</A>) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?</H3>
 
-    <P>íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ
+    <P>÷Ï-ÐÅÒ×ÙÈ, ×ÏÚØÍÉÔÅ ÏÄÎÕ ÉÚ ËÎÉÇ ÐÏ PostgreSQL, Ï ËÏÔÏÒÙÈ ÇÏ×ÏÒÉÌÏÓØ
+    ×ÙÛÅ. åÝÅ ÏÄÉΠÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days,
+    Second Edition" (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ)
+    ÎÁ <A href="http://members.tripod.com/er4ebus/sql/index.htm">
+    http://members.tripod.com/er4ebus/sql/index.htm</A>.
+    íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ
     <I>The Practical SQL Handbook</I>,
     Bowman, Judith S., et al., Addison-Wesley. äÒÕÇÉÍ ÎÒÁ×ÉÔÓÑ <I>The
     Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P>
 
-    <H4><A name="1.11">1.11</A>) òÅÛÅÎÁ ÌÉ × PostgreSQL ÐÒÏÂÌÅÍÁ 2000-ÇÏ ÇÏÄÁ (Y2K)?</H4>
-
-    <P>äÁ, ÍÙ ÌÅÇËÏ ÒÁÂÏÔÁÅÍ Ó ÄÁÔÁÍÉ ÐÏÓÌÅ 2000 ÇÏÄÁ É ÐÅÒÅÄ 2000 ÇÏÄÏÍ.</P>
-
-    <H4><A name="1.12">1.12</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?</H4>
-
-    <P>äÌÑ ÎÁÞÁÌÁ, ÓËÁÞÁÊÔÅ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× É ÐÒÏÞÔÉÔÅ
-    ÄÏËÕÍÅÎÔÁÃÉÀ ÒÁÚÒÁÂÏÔÞÉËÏ× PostgreSQL ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ ÉÌÉ × ÄÉÓÔÒÉÂÕÔÉ×Å.
-    úÁÔÅÍ, ÐÏÄÐÉÛÉÔÅÓØ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ <I>pgsql-hackers</I> É
-    <I>pgsql-patches</I>. äÁÌÅÅ, ÏÔÐÒÁ×ÌÑÊÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ (patches) ×ÙÓÏËÏÇÏ
-    ËÁÞÅÓÔ×Á × ÓÐÉÓÏË pgsql-patches.</P>
-
-    <P>óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÎÙÊ ÓÐÉÓÏË ÌÀÄÅÊ, ËÏÔÏÒÙÊ ÉÍÅÀÔ ÐÒÉ×ÅÌÅÇÉÀ
-    ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ × <SMALL>CVS</SMALL> ÁÒÈÉ× PostgreSQL. ëÁÖÄÙÊ
-    ÉÚ ÜÔÉÈ ÌÀÄÅÊ × Ó×ÏÅ ×ÒÅÍÑ ÏÔÐÒÁ×ÉÌ ÔÁË ÍÎÏÇÏ ×ÙÓÏËÏËÁÞÅÓÔ×ÅÎÎÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ,
-    ÞÔÏ ÉÈ ÂÙÌÏ ÎÅ×ÏÚÍÏÖÎÏ ÏÓÔÁ×ÉÔØ ÂÅÚ ×ÎÉÍÁÎÉÑ É ÏÎÉ ÂÙÌÉ ÕÄÏÓÔÏÅÎÙ
-    ÐÒÅ×ÉÌÅÇÉÉ ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ, É ÍÙ Õ×ÅÒÅÎÙ, ÞÔÏ ÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ, ËÏÔÏÒÙÅ
-    ÏÎÉ ×ÎÅÓÕÔ ÂÕÄÕÔ ×ÙÓÏËÏÇÏ ËÁÞÅÓÔ×Á.</P>
+    åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ <A href=
+    "http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm,</A>
+    ÎÁ <A href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">
+    http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,</A>
+    É ÎÁ <A href="http://sqlcourse.com/">http://sqlcourse.com.</A></P>
 
-    <H4><A name="1.13">1.13</A>) ëÁË ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ??</H4>
 
-    <P>úÁÐÏÌÎÉÔÅ ÆÏÒÍÕ Ï ÏÛÉÂËÅ × PostgreSQL, ËÏÔÏÒÁÑ ÒÁÓÐÏÌÏÖÅÎÁ ÎÁ 
-    <A href="http://www.postgresql.org/bugform.html">http://www.postgresql.org/bugform.html</A>.</P>
+    <H3><A name="1.11">1.11</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?</H3>
 
-    <P>ôÁËÖÅ ÎÅ ÚÁÂÕÄØÔÅ ÐÏÓÍÏÔÒÅÔØ ÎÁ <A href=
-    "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>
-    ÎÁ ÐÒÅÄÍÅÔ ÂÏÌÅÅ Ó×ÅÖÉÈ ×ÅÒÓÉÊ PostgreSQL ÉÌÉ ÚÁÐÌÁÔ.</P>
+    <P>óÍÏÔÒÉÔÅ <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
+    FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</A>.</P>
 
-    <H4><A name="1.14">1.14</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
-    <SMALL>óõâä</SMALL>?</H4>
+    
+    <H3><A name="1.12">1.12</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
+    <SMALL>óõâä</SMALL>?</H3>
 
     <P>
     óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ:
 
       <DT><B>ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ</B></DT>
 
-      <DD>PostgreSQL ÉÍÅÅÔ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÓÈÏÄÎÕÀ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ
-      óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ, × ËÁËÉÈ-ÔÏ ÁÓÐÅËÔÁÈ ÒÁÂÏÔÁÑ
-      ÂÙÓÔÒÅÅ ÞÅÍ ÏÎÉ, × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÅÅ. ÷ ÓÒÁ×ÎÅÎÉÉ Ó MySQL ÉÌÉ ÏÂÙÄÅÎÎÅÅ
-      óõâä, ÍÙ ÂÙÓÔÒÅÅ, ËÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÍÎÏÇÏ, Á ÔÁËÖÅ ÎÁ ËÏÍÐÌÅËÓÎÙÈ
-      ÚÁÐÒÏÓÁÈ É ÞÔÅÎÉÉ/ÚÁÐÉÓÉ ÚÁÇÒÕÚËÉ ÚÁÐÒÏÓÁ. MySQL ÂÙÓÔÒÅÅ ÄÌÑ ÐÒÏÓÔÙÈ
-      SELECT ÚÁÐÒÏÓÏ×, ×ÙÐÏÌÎÑÅÍÙÈ ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ.
-      é ÒÁÚÕÍÅÅÔÓÑ, MySQL ÎÅ ÉÍÅÅÔ ËÁËÉÈ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÅÊ ÉÚ
-      ÐÅÒÅÞÉÓÌÅÎÙÈ ×ÙÛÅ, × ÓÅËÃÉÉ <I>÷ÏÚÍÏÖÎÏÓÔÉ</I>. 
-      íÙ ÄÅÌÁÅÍ ÕÐÏÒ ÎÁ ÎÁÄÅÖÎÏÓÔØ É ÒÁÓÛÉÒÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÎÏ ÍÙ ÔÁËÖÅ
-      ÐÒÏÄÏÌÖÁÅÍ Õ×ÅÌÉÞÉ×ÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ Ó ËÁÖÄÙÍ ×ÙÐÕÓËÏÍ. óÕÝÅÓÔ×ÕÅÔ
-      ÉÎÔÅÒÅÓÎÁÑ ÓÔÒÁÎÉÞËÁ × éÎÔÅÒÎÅÔ, ÓÒÁ×ÎÉ×ÁÀÝÁÑ PostgreSQL É MySQL ÎÁ
-      <A href="http://openacs.org/philosophy/why-not-mysql.html">
-      http://openacs.org/philosophy/why-not-mysql.html</A>. ôÁËÖÅ, MySQL -
-      ÜÔÏ ËÏÍÐÁÎÉÑ, ËÏÔÏÒÁÑ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔ Ó×ÏÊ ÐÒÏÄÕËÔ ÞÅÒÅÚ ÏÔËÒÙÔÙÅ
-      ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ É ÔÒÅÂÕÅÔ ËÏÍÍÅÒÞÅÓËÕÀ ÌÉÃÅÎÚÉÀ ÎÁ ÚÁËÒÙÔÏÅ
-      ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ, Á ÎÅ ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔÞÉËÏ× Ó ÏÔËÒÙÔÙÍÉ
-      ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ, ËÁË PostgreSQL.<BR>
-
+      <DD>ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ
+      óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ,
+      × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ
+      ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä.
       <BR>
       </DD>
 
       ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÒÕËÏ×ÏÄÓÔ×ÁÍ É ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ ÞÁÓÔÏ ÄÅÌÁÀÔ ÐÏÄÄÅÒÖËÕ
       PostgreSQL ÐÒÅ×ÏÓÈÏÄÑÝÅÊ ÄÒÕÇÉÅ <SMALL>óõâä</SMALL>. óÕÝÅÓÔ×ÕÅÔ
       ËÏÍÍÅÒÞÅÓËÁÑ ÐÏÄÄÅÒÖËÁ ÐÏ ÒÅÚÕÌØÔÁÍ ×ÏÚÎÉËÛÉÈ ÉÎÃÉÄÅÎÔÏ×, ËÏÔÏÒÁÑ
-      ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ <A href="#1.6">óÅËÃÉÀ 1.6</A>.)<BR>
+      ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ <A href="#1.5">óÅËÃÉÀ 1.5</A>.)<BR>
       <BR>
       </DD>
 
       </DD>
     </DL>
 
-    <H4><A name="1.15">1.15</A>) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ
-    PostgreSQL?</H4>
-
-    <P>PostgreSQL ÉÍÅÅÔ ÏÄÎÏÒÁÎÇÏ×ÕÀ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ Ó ÔÏÇÏ ÓÁÍÏÇÏ ×ÒÅÍÅÎÉ
-    ËÁË ÍÙ ÎÁÞÁÌÉ ÒÁÚÒÁÂÏÔËÕ × 1996 ÇÏÄÕ. íÙ ÄÏÌÖÎÙ ÂÌÁÇÏÄÁÒÉÔØ ÚÁ
-    ÜÔÏ íÁÒËÁ æÕÒÎØÅ (Marc Fournier), ËÏÔÏÒÙÊ ÓÏÚÄÁÌ ÜÔÕ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ É
-    ÕÐÒÁ×ÌÑÅÔ ÅÊ ÎÁ ÐÒÏÔÑÖÅÎÉÉ ÜÔÉÈ ÌÅÔ.</P>
-
-    <P>ëÁÞÅÓÔ×ÅÎÎÁÑ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÏÞÅÎØ ×ÁÖÎÁ ÄÌÑ ÐÒÏÅËÔÏ× Ó ÏÔËÒÙÔÙÍ
-    ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ïÎÁ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÒÁÓËÏÌÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÓÉÌØÎÏ
-    ÚÁÄÅÒÖÁÔØ ÐÏÓÔÕÐÁÔÅÌØÎÏÅ Ä×ÉÖÅÎÉÅ ÐÒÏÅËÔÁ.</P>
-
-    <P>òÁÚÕÍÅÅÔÓÑ, ÜÔÁ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÄÅÛÅ×ÏÊ. óÕÝÅÓÔ×ÕÅÔ
-    ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÅÖÅÍÅÓÑÞÎÙÈ É ÏÄÎÏÒÁÚÏ×ÙÈ ÒÁÓÈÏÄÏ×, ËÏÔÏÒÙÅ
-    ÔÒÅÂÕÀÔ ÄÅÎÅÇ. åÓÌÉ ×Ù ÉÌÉ ×ÁÛÁ ËÏÍÐÁÎÉÑ ÉÍÅÅÔ ÄÅÎØÇÉ, ËÏÔÏÒÙÅ
-    ÍÏÖÎÏ ÐÅÒÅÄÁÔØ × ÐÏÍÏÝØ ÎÁÛÉÍ ÕÓÉÌÉÑÍ, ÐÏÖÁÌÕÊÓÔÁ ÐÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ
-    <A href="https://store.pgsql.com/shopping/"> 
-    https://store.pgsql.com/shopping/</A>
-    É ÓÄÅÌÁÊÔÅ Ó×ÏÊ ×ËÌÁÄ.</P>
-
-    <P>èÏÔÑ ÎÁ ÓÔÒÁÎÉÞËÅ ÇÏ×ÏÒÉÔÓÑ Ï PostgreSQL, Inc, ÐÕÎËÔ
-    "contributions" ÐÒÅÄÎÁÚÎÁÞÅΠÉÓËÌÀÞÉÔÅÌØÎÏ ÄÌÑ ÐÏÄÄÅÒÖËÉ ÐÒÏÅËÔÁ
-    PostgreSQL É ÎÅ ÐÅÒÅÄÁÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÎËÒÅÔÎÏÊ ËÏÍÐÁÎÉÉ.
-    åÓÌÉ ÈÏÔÉÔÅ, ÔÏ ÍÏÖÅÔÅ ÜÔÏ ÐÒÏ×ÅÒÉÔØ, ÎÁÐÉÓÁ× ÐÉÓØÍÏ ÎÁ ËÏÎÔÁËÔÎÙÊ ÁÄÒÅÓ.</P>
-    <HR>
-    <p>åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÉÓÔÏÒÉÉ ÐÏ ÕÓÐÅÛÎÏÍÕ ÐÒÉÍÅÎÅÎÉÀ PostgreSQL, ÐÏÖÁÌÕÊÓÔÁ,
-    ÐÒÉÓÙÌÁÊÔÅ ÉÈ ÎÁ ÎÁÛ ÓÁÊÔ ÐÒÏÐÁÇÁÎÄÙ <a href="http://advocacy.postgresql.org/">
-    http://advocacy.postgresql.org</a>.</p>
-
-    <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
+    <H3><A name="1.13">1.13</A>) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?</H3>
+    
+    <P>åÓÌÉ ×Ù ÉÝÉÔÅ ËÁËÏÇÏ-ÔÏ ÏÓÏÂÅÎÎÏÇÏ ÞÅÌÏ×ÅËÁ, ÃÅÎÔÒÁÌØÎÙÊ
+    ËÏÍÉÔÅÔ ÉÌÉ ÕÐÒÁ×ÌÑÀÝÕÀ ËÏÍÐÁÎÉÀ, ÔÏ ÎÁÐÒÁÓÎÏ --- ÉÈ ÎÅÔ.
+    õ ÎÁÓ ÅÓÔØ ÑÄÒÏ ËÏÍÉÔÅÔÁ É ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÂÏÔÁÀÝÉÈ Ó CVS,
+    ÎÏ ÜÔÉ ÇÒÕÐÐÙ ÓÌÕÖÁÔ ÂÏÌØÛÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÃÅÌÅÊ, ÞÅÍ
+    ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ.  ðÒÏÅËÔ ÎÁÐÒÑÍÕÀ ÆÕÎËÃÉÏÎÉÒÕÅÔ Ó ÐÏÍÏÝØÀ
+    ÓÏÏÂÝÅÓÔ×Á ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, Ë ËÏÔÏÒÏÍÕ ÍÏÖÅÔ
+    ÐÒÉÓÏÅÄÉÎÉÔÓÑ ËÁÖÄÙÊ.  ÷Ó£ ÞÔÏ ÎÕÖÎÏ -- ÜÔÏ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ
+    ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÄÉÓËÕÓÓÉÑÈ.  (ðÏÄÒÏÂÎÏÓÔÉ Ï
+    ÔÏÍ ËÁË ×ËÌÀÞÉÔØÓÑ × ÒÁÚÒÁÂÏÔËÕ PostgreSQL ÓÍÏÔÒÉÔÅ ×
+    <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
+    FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</A>.)</P>
 
-    <H4><A name="2.1">2.1</A>) óÕÝÅÓÔ×ÕÀÔ ÌÉ <SMALL>ODBC</SMALL> ÄÒÁÊ×ÅÒÁ
-    ÄÌÑ PostgreSQL?</H4>
+    <HR>
 
-    <P>óÕÝÅÓÔ×ÕÅÔ Ä×Á <SMALL>ODBC</SMALL> ÄÒÁÊ×ÅÒÁ, PsqlODBC
-    É OpenLink <SMALL>ODBC</SMALL>.</P>
+    <H3 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H3>
 
-    <P>÷Ù ÍÏÖÅÔÅ ÓËÁÞÁÔØ PsqlODBC Ó <A href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">
-    http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>.</P>
+    <H3><A name="2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?</H3>
 
-    <P>OpenLink <SMALL>ODBC</SMALL> ÍÏÖÎÏ ×ÚÑÔØ ÎÁ <A href=
-    "http://www.openlinksw.com/">http://www.openlinksw.com</A>. üÔÏÔ
-    ÄÒÁÊ×ÅÒ ÒÁÂÏÔÁÅÔ Ó ÉÈ ÓÔÁÎÄÁÒÔÎÙÍ ËÌÉÅÎÔÓËÉÍ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ,
-    ÉÓÐÏÌØÚÕÀÝÉÍ <SMALL>ODBC</SMALL>, É ÔÁËÉÍ ÏÂÒÁÚÏÍ, <SMALL>ODBC</SMALL>
-    ÄÒÁÊ×ÅÒÙ ÄÌÑ PostgreSQL ÄÏÓÔÕÐÎÙ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÉÍÉ
-    ÐÌÁÔÆÏÒÍ (Win, Mac, Unix, VMS).</P>
+    <P>õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ <small>C</small> É ×ÓÔÒÏÅÎÎÙÊ
+    (embedded) <small>C</small> ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ
+    Ñ×ÌÑÀÔÓÑ ÎÅÚÁ×ÉÓÉÍÙÍÉ ÐÒÏÅËÔÁÍÉ É ÚÁÇÒÕÖÁÀÔÓÑ ÏÔÄÅÌØÎÏ; ÓÁÍÏÓÔÏÑÔÅÌØÎÏÓÔØ
+    ÐÒÏÅËÔÏ× ÐÏÚ×ÏÌÑÅÔ ÉÍ ÏÒÇÁÎÉÚÏ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÏÅ ÒÁÓÐÉÓÁÎÉÅ ×ÙÐÕÓËÏ×
+    ÎÏ×ÙÈ ×ÅÒÓÉÊ É ÉÍÅÔØ ÓÏÂÓÔ×ÅÎÎÕÀ ËÏÍÁÎÄÕ ÒÁÚÒÁÂÏÔÞÉËÏ×.</P>
+    
+    <P>îÅËÏÔÏÒÙÅ ÑÚÙËÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÔÁËÉÅ ËÁË <small>PHP</small>
+    ×ËÌÀÞÁÀÔ × ÓÅÂÑ ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL. éÎÔÅÒÆÅÊÓÙ ÄÌÑ ÔÁËÉÈ ÑÚÙËÏ×
+    ËÁË Perl, <small>TCL</small>, Python É ÍÎÏÇÉÈ ÄÒÕÇÉÈ, ÄÏÓÔÕÐÎÙ ÎÁ
+    <A href="http://gborg.postgresql.org">http://gborg.postgresql.org</A>
+    × ÓÅËÃÉÉ <i>Drivers/Interfaces</I>, Á ÔÁËÖÅ ÞÅÒÅÚ ÐÏÉÓË × éÎÔÅÒÎÅÔ.</P>
 
-    <P>÷ÏÚÍÏÖÎÏ ÏÎÉ ÂÕÄÕÔ ÐÒÏÄÁ×ÁÔØ Ó×ÏÊ ÐÒÏÄÕËÔ ÔÅÍ ËÏÍÕ ÎÕÖÎÁ ËÏÍÍÅÒÞÅÓËÁÑ
-    ÐÏÄÄÅÒÖËÁ, ÎÏ ÂÅÓÐÌÁÔÎÁÑ ×ÅÒÓÉÑ ×ÓÅÇÄÁ ÂÕÄÅÔ ÄÏÓÔÕÐÎÁ. ðÏÖÁÌÕÊÓÔÁ,
-    ÎÁÐÒÁ×ÌÑÊÔÅ ×ÏÐÒÏÓÙ ÎÁ ÁÄÒÅÓ <A href=
-    "mailto:[email protected]">[email protected]</A>.</P>
 
-    <H4><A name="2.2">2.2</A>) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
-    PostgreSQL ÞÅÒÅÚ Web?</H4>
+    <H3><A name="2.2">2.2</A>) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
+    PostgreSQL ÞÅÒÅÚ Web?</H3>
 
     <P>ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ:
     <A href="http://www.webreview.com">http://www.webreview.com</A></P>
 
-    <P>äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, ÏÄÎÉÍ ÉÚ ÐÒÅ×ÏÓÈÏÄÎÙÈ ÉÎÓÔÒÕÍÅÎÔÏ× Ñ×ÌÑÅÔÓÑ PHP.
-    äÏÍÁÛÎÑÑ ÓÔÁÎÉÞËÁ <A href="http://www.php.net">http://www.php.net</A>.</P>
-
-    <P>äÌÑ ËÏÍÐÌÅËÓÎÙÈ ÒÅÛÅÎÉÊ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl ÉÎÔÅÒÆÅÊÓÏÍ É CGI.pm ÉÌÉ mod_perl.</P>
-
-    <H4><A name="2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
-    ÐÏÌØÚÏ×ÁÔÅÌÑ?</H4>
-
-    <P>äÁ, ÓÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ PostgreSQL.
-    üÔÏ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>),
-    PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
-    RHDB Admin (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>),
-    TORA (<A href="http://www.globecom.net/tora/">http://www.globecom.net/tora/
-    (ÞÁÓÔÉÞÎÏ ËÏÍÍÅÒÞÅÓËÏÅ ðï)</A>
-    É Rekall (<A href="http://www.thekompany.com/products/rekall/">
-    http://www.thekompany.com/products/rekall/</A>, ËÏÍÍÅÒÞÅÓËÉÊ). ôÁËÖÅ ÅÓÔØ
-    PhpPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
-    http://phppgadmin.sourceforge.net/</A>) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL, ÏÓÎÏ×ÁÎÎÙÊ
-    ÎÁ Web.</P>
-
-    <H4><A name="2.4">2.4</A>) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó PostgreSQL?</H4>
-
-    <P>ëÁËÉÅ-ÌÉÂÏ ÉÎÔÅÒÆÅÊÓÙ ÄÌÑ PostgreSQL ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÂÏÌØÛÉÎÓÔ×Á
-    ÐÏÐÕÌÑÒÎÙÈ ÑÚÙËÏ× ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ. ðÏÓÍÏÔÒÉÔÅ ÓÐÉÓÏË ÍÏÄÕÌÅÊ ÒÁÓÛÉÒÅÎÉÑ
-    ÄÌÑ ÔÅÈ ÑÚÙËÏ× ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ËÏÔÏÒÙÍÉ ×Ù ÐÏÌØÚÕÅÔÅÓØ.</P>
-    <P>óÌÅÄÕÀÝÉÅ ÉÎÔÅÒÆÅÊÓÙ ×ËÌÀÞÁÀÔÓÑ × ÄÉÓÔÒÉÂÕÔÉ× PostgreSQL:</P>
-    <UL>
-      <LI>C (libpq)</LI>
-
-      <LI>Embedded C (ecpg)</LI>
+    <P>äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, PHP <A href="http://www.php.net">
+    http://www.php.net</A> Ñ×ÌÑÅÔÓÑ ÎÅÐÌÏÈÉÍ ÉÎÔÅÒÆÅÊÓÏÍ.</P>
 
-      <LI>Java (jdbc)</LI>
+    <P>÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm
+    ÉÌÉ mod_perl.</P>
 
-      <LI>Python (PyGreSQL)</LI>
+    <H3><A name="2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
+    ÐÏÌØÚÏ×ÁÔÅÌÑ?</H3>
 
-      <LI>TCL (libpgtcl)</LI>
+    <P>äÁ, ÐÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × <a href="http://techdocs.postgresql.org/guides/GUITools">
+    http://techdocs.postgresql.org/guides/GUITools</A>.</P>
 
-    </UL>
-    <P>äÏÐÏÌÎÉÔÅÌØÎÙÅ ÉÎÔÅÒÆÅÊÓÙ ÄÏÓÔÕÐÎÙ ÐÏ ÁÄÒÅÓÕ
-    <A href="http://gborg.postgresql.org/">http://gborg.PostgreSQL.org</a>
-    × ÓÅËÃÉÉ <i>Drivers/Interfaces</i>.
-    </P>
     <HR>
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ</H2>
 
-    <H4><A name="3.1">3.1</A>) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ
-    ÏÔ <I>/usr/local/pgsql</I>?</H4>
+    <H3><A name="3.1">3.1</A>) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ
+    ÏÔ <I>/usr/local/pgsql</I>?</H3>
 
     <P>úÁÄÁÊÔÅ ÏÐÃÉÀ <I>--prefix</I> ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ <I>configure</I>.</P>
 
-    <H4><A name="3.2">3.2</A>) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ <I>postmaster</I>, Ñ ÐÏÌÕÞÁÀ
-     ÓÏÏÂÝÅÎÉÅ <I>Bad System Call</I> ÉÌÉ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?</H4>
-
-    <P>üÔÏ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÏ ÒÁÚÎÙÍÉ ÐÒÏÂÌÅÍÁÍÉ, ÎÏ ÐÅÒ×ÏÅ, ÞÔÏ
-    ÎÕÖÎÏ ÓÄÅÌÁÔØ - ÜÔÏ ÕÂÅÄÉÔØÓÑ × ÔÏÍ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ÕÓÔÁÎÏ×ÌÅÎÏ
-    ÒÁÓÛÉÒÅÎÉÅ System V. PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÑÄÒÏ ÐÏÄÄÅÒÖÉ×ÁÌÏ
-    ÒÁÚÄÅÌÑÅÍÕÀ ÐÁÍÑÔØ É ÓÅÍÁÆÏÒÙ.</P>
-
-    <H4><A name="3.3">3.3</A>) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ <I>postmaster</I>, Ñ
-    ÐÏÌÕÞÁÀ ÏÛÉÂËÉ <I>IpcMemoryCreate</I>. ðÏÞÅÍÕ?</H4>
-
-    <P>ìÉÂÏ Õ ×ÁÓ × ÑÄÒÅ ÎÅÐÒÁ×ÉÌØÎÙÅ ÎÁÓÔÒÏÊËÉ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ÌÉÂÏ
-    ×ÁÛÅÍÕ ÑÄÒÕ ÎÕÖÎÏ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÓÔÕÐÎÏÊ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ.
-    ôÅ ËÏÎËÒÅÔÎÙÅ ÄÅÊÓÔ×ÉÑ, ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÏ ÐÒÏÉÚ×ÅÓÔÉ ÚÁ×ÉÓÑÔ ÏÔ
-    ÁÒÈÉÔÅËÔÕÒÙ ×ÁÛÅÊ ÍÁÛÉÎÙ É ÏÔ ÔÏÇÏ ËÁË ÍÎÏÇÏ ÂÕÆÅÒÏ× É backend
-    ÐÒÏÃÅÓÓÏ× ×Ù ÎÁÓÔÒÏÉÌÉ ÄÌÑ <I>postmaster</I>. äÌÑ ÂÏÌØÛÉÎÓÔ×Á ÓÉÓÔÅÍ,
-    Ó ËÏÌÉÞÅÓÔ×ÏÍ ÂÕÆÅÒÏ× É ÐÒÏÃÅÓÓÏ× ÐÏ ÕÍÏÌÞÁÎÉÀ, ÎÅÏÂÈÏÄÉÍÙÊ ÍÉÎÉÍÕÍ -
-    ÜÔÏ ÏËÏÌÏ 1 ÍÅÇÁÂÁÊÔÁ. ðÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ
-    ÓÍÏÔÒÉÔÅ × <A href=
-    "http://www.postgresql.org/docs/current/static/kernel-resources.html">òÕËÏ×ÏÄÓÔ×Å
-    ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL.</A>.</P>
-
-    <H4><A name="3.4">3.4</A>) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ <I>postmaster</I>, Ñ
-    ÐÏÌÕÞÁÀ ÏÛÉÂËÉ <I>IpcSemaphoreCreate</I>. ðÏÞÅÍÕ?</H4>
-
-    <P>åÓÌÉ ÜÔÏ ÓÏÏÂÝÅÎÉÅ <I>IpcSemaphoreCreate: semget failed (No
-    space left on device)</I> ÔÏ ÎÁÓÔÒÏÊËÉ ×ÁÛÅÇÏ ÑÄÒÁ ÔÁËÏ×Ù, ÞÔÏ ÅÍÕ ÎÅ
-    È×ÁÔÁÅÔ ÓÅÍÁÆÏÒÏ×. Postgres ÔÒÅÂÕÅÔ ÏÄÉΠÓÅÍÁÆÏÒ ÎÁ ÐÏÔÅÎÃÉÁÌØÎÙÊ
-    backend ÐÒÏÃÅÓÓ. ÷ÒÅÍÅÎÎÙÍ ÒÅÛÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÓË <I>postmaster</I>
-    Ó ÎÁÓÔÒÏÊËÁÍÉ ÎÁ ÍÅÛØÛÅÅ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ×. éÓÐÏÌØÚÕÊÔÅ
-    <I>-N</I> Ó ÚÎÁÞÅÎÉÅÍ ÍÅÎØÛÉÍ ÞÅÍ 32, ËÏÔÏÒÏÅ ÐÒÉÎÑÔÏ ÐÏ ÕÍÏÌÞÁÎÉÀ.
-    âÏÌÅÅ ÐÒÁ×ÉÌØÎÏÅ ÒÅÛÅÎÉÅ - ÜÔÏ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÑ <SMALL>SEMMNS</SMALL>
-    É <SMALL>SEMMNI</SMALL> × ÎÁÓÔÒÊËÁÈ ÑÄÒÁ.</P>
-
-    <P>îÅÉÓÐÒÁ×ÎÙÅ ÓÅÍÁÆÏÒÙ ÔÁËÖÅ ÍÏÇÕÔ ÐÒÉ×ÅÓÔÉ Ë ÐÁÄÅÎÉÀ óõâä ×Ï ×ÒÅÍÑ
-    ÄÏÓÔÕÐÁ Ë ÂÁÚÅ ÄÁÎÎÙÈ.</P>
-
-    <P>åÓÌÉ ×Ù ÐÏÌÕÞÉÌÉ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ, ÔÏ ×ÐÏÌÎÅ
-    ×ÏÚÍÏÖÎÏ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ×ÏÏÂÝÅ ÎÅ ÎÁÓÔÒÏÅÎÁ ÐÏÄÄÅÒÖËÁ ÓÅÍÁÆÏÒÏ×.
-    óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ × òÕËÏ×ÏÄÓÔ×Å
-    áÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL.</P>
-
-    <H4><A name="3.5">3.5</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
-    ËÏÍÐØÀÔÅÒÏ×?</H4>
+    <H3><A name="3.2">3.2</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
+    ËÏÍÐØÀÔÅÒÏ×?</H3>
 
     <P>ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ
-    ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÒÕÇÉÅ ÍÁÛÉÎÙ
-    ÎÅ ÓÍÏÇÕÔ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ÐÏËÁ ×Ù ÎÅ ÉÚÍÅÎÉÔÅ listen_addresses ×
-    postgresql.conf <B>É</B> ÐÏËÁ ÎÅ ÂÕÄÅÔ ÒÁÚÒÅÛÅÎÁ host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ
-    <I>$PGDATA/pg_hba.conf</I>.</P>
-
-    <H4><A name="3.6">3.6</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
-     ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H4>
-
-    <P>îÅÓÏÍÎÅÎÎÏ, ÉÎÄÅËÓÙ ÍÏÇÕÔ Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ×. ëÏÍÁÎÄÁ
-    <SMALL>EXPLAIN ANALYZE</SMALL> ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÓÍÏÔÒÅÔØ ËÁË PostgreSQL
-    ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ×ÁÛ ÚÁÐÒÏÓ É ËÁËÉÅ ÉÎÄÅËÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ.</P>
-
-    <P>åÓÌÉ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÍÎÏÇÏ ÏÐÅÒÁÔÏÒÏ× <SMALL>INSERT</SMALL>,
-    ÒÁÓÓÍÏÔÒÉÔÅ ×ÏÚÍÏÖÎÏÓÔØ ×ÙÐÏÌÎÑÔØ ÉÈ × ÂÏÌØÛÏÊ ÐÁÞËÅ, ÉÓÐÏÌØÚÕÑ
-    ËÏÍÁÎÄÕ <SMALL>COPY</SMALL>. üÔÏ ÚÎÁÞÉÔÅÌØÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÏÔÄÅÌØÎÙÅ
-    <SMALL>INSERT</SMALL>. ÷Ï-×ÔÏÒÙÈ, ÏÐÅÒÁÔÏÒÙ ×ÎÅ ÂÌÏËÁ ÔÒÁÎÚÁËÃÉÉ
-    <SMALL>BEGIN WORK/COMMIT</SMALL> ÓÁÍÉ ×ÙÐÏÌÎÑÀÔ ÔÒÁÎÚÁËÃÉÀ. ðÏÄÕÍÁÊÔÅ
-    ÎÁÄ ×ÙÐÏÌÎÅÎÉÅÍ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÏÄÎÏÍ ÂÌÏËÅ ÔÒÁÎÚÁËÃÉÉ.
-    üÔÏ ÕÍÅÎØÛÉÔ ËÏÌÉÞÅÓÔ×Ï ÔÒÁÎÚÁËÃÉÊ. ôÁËÖÅ, ÚÁÄÕÍÁÊÔÅÓØ ÎÁÄ ÕÄÁÌÅÎÉÅÍ
-    É ÐÅÒÅÓÏÚÄÁÎÉÅÍ ÉÎÄÅËÓÏ×, ËÏÇÄÁ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ
-    ÄÁÎÎÙÈ.</P>
-
-    <P>óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÏÐÃÉÊ ÎÁÓÔÒÏÊËÉ × 
-    <A href="http://www.postgresql.org/docs/current/static/runtime.html">
-    òÕËÏ×ÏÄÓÔ×Å áÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL</A>. ÷Ù ÍÏÖÅÔÅ ÚÁÐÒÅÔÉÔØ
-    <I>fsync()</I> ÐÒÉ ÓÔÁÒÔÅ <I>postmaster</I> Ó ÏÐÃÉÅÊ <I>-o -F</I>.
-    üÔÏ ÐÒÅÄÏÔ×ÒÁÔÉÔ ×ÙÚÏ×Ù <I>fsync()</I>, ËÏÔÏÒÙÅ ÐÒÉ×ÏÄÑÔ Ë ÓÂÒÏÓÕ
-    ÄÁÎÎÙÈ ÎÁ ÄÉÓË ÐÏÓÌÅ ËÁÖÄÏÊ ÔÒÁÎÚÁËÃÉÉ.</P>
-
-    <P>÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ <I>shared_buffers</I> <I>-B</I>
-    ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ ËÏÌÉÞÅÓÔ×Á ÂÕÆÅÒÏ× ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ËÏÔÏÒÁÑ
-    ÉÓÐÏÌØÚÕÅÔÓÑ backend ÐÒÏÃÅÓÓÁÍÉ. åÓÌÉ ×Ù ÓÄÅÌÁÅÔÅ ÚÎÁÞÅÎÉÅ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ
-    ÓÌÉÛËÏÍ ÂÏÌØÛÉÍ, ÔÏ <I>postmaster</I> ÍÏÖÅÔ ÎÅ ÚÁÐÕÓÔÉÔÓÑ ÐÏÔÏÍÕ ÞÔÏ
-    ×Ù ÉÓÞÅÒÐÁÅÔÅ ÏÇÒÁÎÉÞÅÎÉÅ ÑÄÒÁ ÎÁ ÏÂßÅÍ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. ëÁÖÄÙÊ
-    ÂÕÆÅÒ ÉÍÅÅÔ ÒÁÚÍÅÒ × 8 ËÉÌÏÂÁÊÔ É ÐÏ ÕÍÏÌÞÁÎÉÀ ×ÙÄÅÌÑÅÔÓÑ 1000 ÂÕÆÅÒÏ×.</P>
-
-    <P>÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ backend ÏÐÃÉÉ <I>sort_mem</I> É
-    <I>work_mem</I> ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ ÍÁËÓÉÍÁÌØÎÏÇÏ ËÏÌÉÞÅÓÔ×Á ÐÁÍÑÔÉ, ËÏÔÏÒÏÅ
-    ÉÓÐÏÌØÚÕÅÔÓÑ backend ÐÒÏÃÅÓÓÏÍ ÄÌÑ ×ÒÅÍÅÎÎÙÈ ÓÏÒÔÉÒÏ×ÏË. úÎÁÞÅÎÉÅ ÐÏ
-    ÕÍÏÌÞÁÎÉÀ ÓÏÓÔÁ×ÌÑÅÔ 1024 (Ô.Å. 1MB).</P>
-
-    <P>÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ <SMALL>CLUSTER</SMALL> ÄÌÑ
-    ÇÒÕÐÐÉÒÏ×ËÉ ÄÁÎÎÙÈ × ÔÁÂÌÉÃÁÈ ÎÁ ÓÏ×ÐÁÄÁÀÝÉÊ ÉÎÄÅËÓ. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ
-    ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ ËÏÍÁÎÄÅ <SMALL>CLUSTER</SMALL>.</P>
-
-    <H4><A name="3.7">3.7</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ ×
-    ÎÁÌÉÞÉÉ?</H4>
-
-    <P>PostgreSQL ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÐÏÚ×ÏÌÑÀÝÉÅ ÐÏÌÕÞÉÔØ
-    ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ × ÏÔÌÁÄÏÞÎÙÈ
-    ÃÅÌÑÈ.</P>
-
-    <P>÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ <I>configure</I> Ó ÏÐÃÉÅÊ --enable-cassert,
-    ÍÎÏÇÉÅ ×ÙÚÏ×Ù <I>assert()</I> ÐÏÚ×ÏÌÑÀÔ ÏÔÓÌÅÖÉ×ÁÔØ ÒÁÂÏÔÕ backend
-    ÐÒÏÃÅÓÓÁ É ÏÓÔÁÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ ÐÒÉ ×ÏÚÎÉËÎÏ×ÅÎÉÉ ËÁËÉÈ-ÌÉÂÏ
-    ÎÅÏÖÉÄÁÎÎÏÓÔÅÊ.</P>
-
-    <P>é <I>postmaster</I>, É <I>postgres</I> ÉÍÅÀÔ ÎÅÓËÏÌØËÏ ÏÔÌÁÄÏÞÎÙÈ
-    ÏÐÃÉÊ. ÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ <I>postmaster</I>, ÕÂÅÄÉÔÅÓØ, ÞÔÏ
-    ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ É ×Ù×ÏÄ ÏÛÉÂÏË ÏÓÕÝÅÓÔ×ÌÑÀÔÓÑ × ÆÁÊÌ ÖÕÒÎÁÌÁ:</P>
-<PRE>
-    cd /usr/local/pgsql
-    ./bin/postmaster &gt;server.log 2&gt;&amp;1 &amp;
-</PRE>
+    ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ
+    ÄÒÕÇÉÅ ÍÁÛÉÎÙ ÓÍÏÇÌÉ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ×Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ
+    <I>listen_addresses</I> × <I>postgresql.conf</I>, ÒÁÚÒÅÛÉÔØ
+    host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ <I>$PGDATA/pg_hba.conf</I> É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ
+    ÓÅÒ×ÅÒ.</P>
+
+    <H3><A name="3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
+     ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H3>
+
+    <P>óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ
+    Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:</P>
+    
+    <DL>
+    <DT><B>éÚÍÅÎÅÎÉÅ ÚÁÐÒÏÓÁ</B></DT>
+    <DD>üÔÏ ÏÚÎÁÞÁÅÔ ÍÏÄÉÆÉËÁÃÉÀ ÚÁÐÒÏÓÏ× ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÌÕÞÛÅÊ
+    ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ:
+    <UL>
+    <LI>óÏÚÄÁÎÉÅ ÉÎÄÅËÓÏ×, ×ËÌÀÞÁÑ ÉÎÄÅËÓÙ ×ÙÒÁÖÅÎÉÊ É ÞÁÓÔÉÞÎÙÅ ÉÎÄÅËÓÙ</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ COPY ×ÍÅÓÔÏ ÍÎÏÖÅÓÔ×Á <small>INSERT</small></LI>
+    <LI>çÒÕÐÐÉÒÏ×ËÁ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÅÄÉÎÕÀ ÔÒÁÎÚÁËÃÉÀ ÄÌÑ
+    ÕÍÅÎØÛÅÎÉÑ ÎÁÇÒÕÚËÉ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÚÁ×ÅÒÛÅÎÉÑ ÔÒÁÎÚÁËÃÉÉ</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>CLUSTER</small>, ËÏÇÄÁ ÉÚ ÉÎÄÅËÓÁ ÂÅÒ£ÔÓÑ
+    ÍÎÏÖÅÓÔ×Ï ÓÔÒÏË</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>LIMIT</small> ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÏÚ×ÒÁÝÁÌÁÓØ
+    ÔÏÌØËÏ ÞÁÓÔØ ×Ù×ÏÄÁ ÏÔ ÚÁÐÒÏÓÁ</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ ðÏÄÇÏÔÏ×ÌÅÎÎÙÈ (Prepared) ÚÁÐÒÏÓÏ×</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>ANALYZE</small> ÄÌÑ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÓÔÁÔÉÓÔÉËÉ
+    ÏÐÔÉÍÉÚÁÔÏÒÁ</LI>
+    <LI>òÅÇÕÌÑÒÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ <small>VACUUM</small> ÉÌÉ <I>pg_autovacuum</I></LI>
+    <LI>õÄÁÌÅÎÉÅ ÉÎÄÅËÓÏ× ×Ï ×ÒÅÍÑ ÂÏÌØÛÉÈ ÉÚÍÅÎÅÎÉÊ ÄÁÎÎÙÈ</LI>
+    </UL>
+    <BR><BR>
+    </DD>
 
-    <P>üÔÏ ÐÒÉ×ÅÄÅÔ Ë ÐÏÑ×ÌÅÎÉÀ ÆÁÊÌÁ server.log × ÇÌÁ×ÎÏÍ ËÁÔÁÌÏÇÅ
-    PostgreSQL. üÔÏÔ ÆÁÊÌ ÓÏÄÅÒÖÉÔ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÒÏÂÌÅÍÁÈ ÉÌÉ
-    ÏÛÉÂËÁÈ, ×ÏÚÎÉËÛÉÈ ÎÁ ÓÅÒ×ÅÒÅ. <I>Postmaster</I> ÉÍÅÅÔ ÏÐÃÉÀ <I>-d</I>,
-    ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÁÔØ ÐÒÉ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÉ ÂÏÌÅÅ ÄÅÔÁÌØÎÕÀ
-    ÉÎÆÒÍÁÃÉÀ. äÌÑ ÏÐÃÉÉ <I>-d</I> ÕËÁÚÙ×ÁÅÔÓÑ ÞÉÓÌÏ, ËÏÔÏÒÏÅ ÚÁÄÁÅÔ ÕÒÏ×ÅÎØ
-    ÏÔÌÁÄËÉ. âÕÄØÔÅ ÏÓÔÏÒÏÖÎÙ, ÔÁË ËÁË ×ÙÓÏËÉÊ ÕÒÏ×ÅÎØ ÏÔÌÁÄËÉ ÐÒÉ×ÏÄÉÔ
-    Ë ÇÅÎÅÒÁÃÉÉ ÆÁÊÌÏ× ÖÕÒÎÁÌÁ ÂÏÌØÛÏÇÏ ÒÁÚÍÅÒÁ.</P>
-
-    <P>åÓÌÉ <I>postmaster</I> ÎÅ ÚÁÐÕÝÅÎ, ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ
-    <I>postgres</I> backend ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ××ÅÓÔÉ ×ÁÛ ÏÐÅÒÁÔÏÒ
-    <SMALL>SQL</SMALL> ÎÁÐÒÑÍÕÀ. üÔÏ ÒÅËÏÍÅÎÄÕÅÔÓÑ <B>ÔÏÌØËÏ</B> ÄÌÑ
-    ÃÅÌÅÊ ÏÔÌÁÄËÉ. úÁÍÅÔÉÍ, ÞÔÏ × ÜÔÏÍ ÒÅÖÉÍÅ, ÚÁÐÒÏÓ ÚÁ×ÅÒÛÁÅÔÓÑ ÓÉÍ×ÏÌÏÍ
-    ÎÏ×ÏÊ ÓÔÒÏËÉ, Á ÎÅ ÔÏÞËÏÊ Ó ÚÁÐÑÔÏÊ. åÓÌÉ ×Ù ÐÒÏÉÚ×ÏÄÉÌÉ ËÏÍÐÉÌÑÃÉÀ
-    Ó ÏÔÌÁÄÏÞÎÙÍÉ ÓÉÍ×ÏÌÏÁÍÉ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÌÀÂÏÊ ÏÔÌÁÄÞÉË, ÞÔÏÂÙ
-    ÐÏÓÍÏÔÒÅÔØ, ÞÔÏ ÓÌÕÞÉÌÏÓØ. ðÏÓËÏÌØËÕ backend ÚÁÐÕÓËÁÅÔÓÑ ÎÅ ÉÚ
-    <I>postmaster</I>, ÏΠÎÅ ÚÁÐÕÓËÁÅÔÓÑ × ÉÄÅÎÔÉÞÎÏÍ ÏËÒÕÖÅÎÉÉ É ÚÎÁÞÉÔ
-    ÐÒÏÂÌÅÍÙ ÉÔÅÒÁÃÉÊ ÂÌÏËÉÒÏ×ÏË/backend ÎÅ ÍÏÇÕÔ ÂÙÔØ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÙ.</P>
-
-    <P>åÓÌÉ <I>postmaster</I> ÚÁÐÕÝÅÎ, ÚÁÐÕÓÔÉÔÅ <I>psql</I> × ÏÄÎÏÍ
-    ÏËÎÅ, ÚÁÔÅÍ ÎÁÊÄÉÔÅ <SMALL>PID</SMALL> ÐÒÏÃÅÓÓÁ <I>postgres</I>,
-    ÉÓÐÏÌØÚÕÅÍÙÊ <I>psql</I>, ÉÓÐÏÌØÚÕÑ </P>
+    <DT><B>îÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ</B></DT>
+    
+    <DD>îÅËÏÔÏÒÙÅ ÕÓÔÁÎÏ×ËÉ × <I>postgresql.conf</I> ×ÌÉÑÀÔ ÎÁ
+    ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ. ðÏÄÒÏÂÎÙÊ ÐÏÌÎÙÊ ÓÐÉÓÏË ÕÓÔÁÎÏ×ÏË ÓÍ. ×
+    <A href="http://www.postgresql.org/docs/current/static/runtime.html">
+    Administration Guide/Server Run-time Environment/Run-time Configuration</A>,
+    Á ËÏÍÍÅÎÔÁÒÉÉ ÓÍ. × <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">
+    http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</A>
+    É <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">
+    http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</A>.
+    <BR><BR>
+    </DD>
     
-    <PRE>
-       SELECT pg_backend_pid()
-    </PRE>
+    <DT><B>÷ÙÂÏÒ "ÖÅÌÅÚÁ" - ÁÐÐÁÒÁÔÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ</B></DT>
     
-    <P>éÓÐÏÌØÚÕÊÔÅ ÏÔÄÁÄÞÉË ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë <I>postgres</I> <SMALL>PID</SMALL>.
-    ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ × ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ
-    ÉÚ <I>psql</I>. åÓÌÉ
-    ×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ ÚÁÐÕÓËÁ <I>postgres</I>, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ
-    PGOPTIONS="-W n", É ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ <I>psql</I>. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ
-    Ë ÚÁÄÅÒÖËÅ ÐÒÏÃÅÓÓÁ ÚÁÐÕÓËÁ ÎÁ <I>n</I> ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ
-    ×Ù ÍÏÖÅÔÅ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÃÅÓÓÕ ÏÔÌÁÄÞÉË, ÕÓÔÁÎÏ×ÉÔØ ÌÀÂÙÅ ÔÏÞËÉ
-    ÐÒÅÒÙ×ÁÎÉÑ É ÐÒÏÄÏÌÖÉÔØ ÚÁÐÕÓË.</P>
-
-    <P>ðÒÏÇÒÁÍÍÁ <I>postgres</I> ÉÍÅÅÔ ÏÐÃÉÉ <I>-s, -A</I>, É <I>-t</I>
-    ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÏÞÅÎØ ÐÏÌÅÚÎÙÍÉ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ
-    ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
-
-    <P>÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ
-    ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ.
-    æÁÊÌÙ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ
-    <I>pgsql/data/base/dbname</I>. æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ
-    ÂÕÄÅÔ ÐÏÍÅÝÅΠנÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ
-    ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó <I>-DLINUX_PROFILE</I>.</P>
-
-    <H4><A name="3.8">3.8</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
-    many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H4>
-
-    <P>÷ÁÍ ÎÕÖÎÏ Õ×ÅÌÉÞÉÔØ ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ËÏÌÉÞÅÓÔ×Ï ËÏÎËÕÒÅÔÎÙÈ
-    backend ÐÒÏÃÅÓÓÏ× ÐÒÉ ÚÁÐÕÓËÅ <I>postmaster</I>.</P>
-
-    <P>ðÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÏ×ÌÅΠÌÉÍÉÔ ÎÁ 32 ÐÒÏÃÅÓÓÁ. ÷Ù ÍÏÖÅÔÅ
-    Õ×ÅÌÉÞÉÔØ ÜÔÏÔ ÌÉÍÉÔ ÐÅÒÅÚÁÐÕÓÔÉ× <I>postmaster</I> Ó ÎÕÖÎÙÍ
-    ÚÎÁÞÅÎÉÅÍ ÐÒÏÃÅÓÓÏ×, ËÏÔÏÒÏÅ ÕËÁÚÙ×ÁÅÔÓÑ × ÏÐÃÉÉ  <I>-N</I> ÉÌÉ
-    ÉÚÍÅÎÉ× ÆÁÊÌ <I>postgresql.conf</I>.</P>
-
-    <P>úÁÍÅÔÉÍ, ÞÔÏ ÅÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ × ÏÐÃÉÉ <I>-N</I> ÚÎÁÞÅÎÉÅ ÂÏÌØÛÅ
-    32, ÔÏ ×Ù ÔÁËÖÅ ÄÏÌÖÎÙ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÅ × ÏÐÃÉÉ <I>-B</I> ËÏÔÏÒÏÅ
-    ÐÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÏ×ÌÅÎÏ × 64; úÎÁÞÅÎÉÅ ÏÐÃÉÉ <I>-B</I> ÄÏÌÖÎÏ ÂÙÔØ
-    ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ×Ä×ÏÅ ÂÏÌØÛÅ ÚÎÁÞÅÎÉÑ ÏÐÃÉÉ <I>-N</I>, É ×ÏÚÍÏÖÎÏ
-    ÅÝ£ ÂÏÌØÛÅ ÄÌÑ ÌÕÞÛÅÊ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ. äÌÑ ÂÏÌØÛÅÇÏ ËÏÌÉÞÅÓÔ×Á
-    backend ÐÒÏÃÅÓÓÏ×, ×ÁÍ ÔÁËÖÅ ÎÅÐÌÏÈÏ ÂÙÌÏ ÂÙ Õ×ÅÌÉÞÉÔØ ÎÅËÏÔÏÒÙÅ
-    ÐÁÒÁÍÅÔÒÙ ÑÄÒÁ Unix. üÔÏ ÔÁËÉÅ ÐÁÒÁÍÅÔÒÙ, ËÁË ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï
-    ÂÌÏËÏ× ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, <SMALL>SHMMAX;</SMALL> ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï
-    ÓÅÍÁÆÏÒÏ×, <SMALL>SEMMNS</SMALL> É <SMALL>SEMMNI;</SMALL> ÍÁËÓÉÍÁÌØÎÏÅ
-    ËÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, <SMALL>NPROC;</SMALL> ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï
-    ÐÒÏÃÅÓÓÏ× ÎÁ ÐÏÌØÚÏ×ÁÔÅÌÑ, <SMALL>MAXUPRC;</SMALL> É ÍÁËÓÉÍÁÌØÎÏÅ
-    ËÏÌÉÞÅÓÔ×Ï ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×, <SMALL>NFILE</SMALL> É <SMALL>NINODE</SMALL>.
-    ðÒÉÞÉÎÁ ÓÏÚÄÁÎÉÑ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ× ËÁË
-    ÒÁÚ É ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏÂÙ ×ÁÛÅÊ ÓÉÓÔÅÍÅ È×ÁÔÉÌÏ ÒÅÓÕÒÓÏ×.</P>
-
-    <H4><A name="3.9">3.9</A>) þÔÏ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÅ <I>pgsql_tmp</I>?</H4>
-
-    <P>äÁÎÎÙÊ ËÁÔÁÌÏÇ ÓÏÄÅÒÖÉÔ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ, ÇÅÎÅÒÉÒÕÅÍÙÅ ÏÂÒÁÂÏÔÞÉËÏÍ
-    ÚÁÐÒÏÓÁ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ <small>ORDER BY</small> ÎÕÖÎÁ
-    ÓÏÒÔÉÒÏ×ËÁ É ÜÔÁ ÓÏÒÔÉÒÏ×ËÁ ÔÒÅÂÕÅÔ ÐÁÍÑÔÉ ÂÏÌØÛÅ, ÞÅÍ ÄÏÐÕÓËÁÅÔ ÐÁÒÁÍÅÔÒ <i>-S</i>
-    Õ backend'Á, ÔÏ ÄÌÑ ÈÒÁÎÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÁÎÎÙÈ ÓÏÚÄÁÀÔÓÑ ×ÒÅÍÅÎÎÙÅ
-    ÆÁÊÌÙ.</P>
+    <DD>÷ÌÉÑÎÉÅ "ÖÅÌÅÚÁ" ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÏ ×
+    <A href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html">
+    http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</A> É
+    <A href="http://www.powerpostgresql.com/PerfList/">
+    http://www.powerpostgresql.com/PerfList/</A>.
+    <BR><BR>
+    </DD>
+    </DL>
+
+    <H3><A name="3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ ×
+    ÎÁÌÉÞÉÉ?</H3>
+
+    <P>åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ
+    ÎÁ <code>log_*</code>, ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ
+    É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ
+    É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
     
-    <P>üÔÉ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÄÏÌÖÎÙ ÕÄÁÌÑÔØÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ÜÔÏÇÏ ÍÏÖÅÔ ÎÅ
-    ÐÒÏÉÚÏÊÔÉ, ÅÓÌÉ backend ÒÕÈÎÕÌ ×Ï ×ÒÅÍÑ ÓÏÒÔÉÒÏ×ËÉ. ïÓÔÁÎÏ× É ÚÁÐÕÓË
-    ÓÅÒ×ÅÒÎÏÇÏ ÐÒÏÃÅÓÓÁ ÏÂÅÓÐÅÞÉÔ ÉÈ ÕÄÁÌÅÎÉÅ ÉÚ ËÁÔÁÌÏÇÁ.</P>
 
-    <H4><A name="3.10">3.10</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
-    ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?</H4>
+    <H3><A name="3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
+    many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H3>
+
+    <P>÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ 100 ÓÅÓÓÉÊ
+    ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÄÌÑ
+    <I>postmaster</I> ÌÉÍÉÔ ÎÁ ËÏÌÉÞÅÓÔ×Ï ËÏÎËÕÒÅÎÔÎÙÈ backend ÐÒÏÃÅÓÓÏ×,
+    ÉÚÍÅÎÉ× ÚÎÁÞÅÎÉÅ <I>max_connections</I> × ÆÁÊÌÅ <I>postgresql.conf</I>
+    É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ <I>postmaster</I>.</P>
+     
+
+    <H3><A name="3.6">3.6</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
+    ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?</H3>
     
     <P>òÁÚÒÁÂÏÔÞÉËÉ PostgreSQL ÄÅÌÁÀÔ ÔÏÌØËÏ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÍÅÖÄÕ
-    ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.2 ÄÏ 7.2.1 ÎÅ ÔÒÅÂÕÅÔ
+    ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4.0 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ
     ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ
-    (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.2 ÎÁ 7.3) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ
+    (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.3 ÎÁ 7.4) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ
     ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉàɠÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ
     ËÏÍÐÌÅËÓÎÙÊ ÈÁÒÁËÔÅÒ, ÔÁË ÞÔÏ ÎÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÅÓÐÅÞÉÔØ ÏÂÒÁÔÎÕÀ
     ÓÏ×ÍÅÓÔÉÍÏÓÔØ ÆÁÊÌÏ× ÄÁÎÎÙÈ. ÷ÙÐÏÌÅÎÉÅ dump ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ
     ÉÓÐÏÌØÚÏ×ÁÎÉÑ dump/restore. ëÏÍÍÅÎÔÁÒÉÉ Ë ×ÙÐÕÓËÕ ÇÏ×ÏÒÉÔ ËÏÇÄÁ ÍÏÖÎÏ
     ÉÓÐÏÌØÚÏ×ÁÔØ <i>pg_upgrade</i> ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.</P>
 
-    <H4><A name="3.11">3.11</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
-    ÉÓÐÏÌØÚÏ×ÁÔØ?</H4>
+
+    <H3><A name="3.7">3.7</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
+    ÉÓÐÏÌØÚÏ×ÁÔØ?</H3>
+    
     <P>ðÏÓËÏÌØËÕ "ÖÅÌÅÚÏ" ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ× Ñ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ
     ÓÏ×ÍÅÓÔÉÍÙÍ, ÌÀÄÉ ÓËÌÏÎÎÙ ×ÅÒÉÔØ, ÞÔÏ ÔÁËÏÅ "ÖÅÌÅÚÏ" ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ
     ËÁÞÅÓÔ×Ï. üÔÏ ÎÅ ÔÁË. ðÁÍÑÔØ ECC, SCSI É ËÁÞÅÓÔ×ÅÎÎÙÅ ÍÁÔÅÒÉÎÓËÉÅ ÐÌÁÔÙ
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ</H2>
 
-    <H4><A name="4.1">4.1</A>) ÷ ÞÅÍ ÏÔÌÉÞÉÅ ÍÅÖÄÕ ÂÉÎÁÒÎÙÍ É ÎÏÒÍÁÌØÎÙÍ
-    ËÕÒÓÏÒÏÍ?</H4>
-
-    <P>óÍÏÔÒÉÔÅ ÏÐÉÓÁÎÉÅ ÎÁ ÓÔÒÁÎÉÃÁÈ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÙÍ
-    <SMALL>DECLARE</SMALL>.</P>
-
-    <H4><A name="4.2">4.2</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
-     ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?</H4>
+    <H3><A name="4.1">4.1</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
+    ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?</H3>
 
-    <P>óÍÏÔÒÉÔÅ ÓÔÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ <SMALL>FETCH</SMALL>
-    ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ <SMALL>SELECT</SMALL> ... <SMALL>LIMIT</SMALL>....</P>
+    <P>äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï
+    ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL> ÉÓÐÏÌØÚÕÊÔÅ <SMALL>LIMIT</SMALL>.</P>
+    åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó <SMALL>ORDER BY</SMALL>,
+    ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅΠɠÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ
+    ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL>,
+    ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É <SMALL>FETCH</SMALL>.</P>
 
-    <P>äÁÖÅ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÌÕÞÉÔØ ÔÏÌØËÏ ÐÅÒ×ÙÅ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ,
-    ÂÕÄÅÔ ×ÙÐÏÌÎÅΠ×ÅÓØ ÚÁÐÒÏÓ. òÁÓÓÍÏÔÒÉÍ ÚÁÐÒÏÓ, ËÏÔÏÒÙÊ ÉÍÅÅÔ
-    <SMALL>ORDER BY.</SMALL> åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ
-    ÓÏ×ÐÁÄÁÅÔ Ó <SMALL>ORDER BY</SMALL>, PostgreSQL ÍÏÖÅÔ
-    ×ÙÄÁÔØ ÔÏÌØËÏ ÎÅÓËÏÌØËÏ ÐÅÒ×ÙÈ ÚÁÐÒÏÛÅÎÎÙÈ ÚÁÐÉÓÅÊ ÉÌÉ ÍÏÖÅÔ
-    ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓ ÐÏËÁ ÎÅ ÂÕÄÕÔ ×ÙÄÁÎÙ ÖÅÌÁÅÍÙÅ ÚÁÐÉÓÉ.</P>
-
-    <p>To <small>SELECT</small> a random row, use:
-</p><pre>    SELECT col
+    <P>To <small>SELECT</small> a random row, use:</P>
+<PRE>    SELECT col
     FROM tab
     ORDER BY random()
     LIMIT 1;
-</pre>
-</p>
+</PRE>
 
-    <H4><A name="4.3">4.3</A>) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉàÉÌÉ ÄÒÕÇÉÈ
-     ËÏÍÐÏÎÅÎÔÏ× × <I>psql</I>?</H4>
+
+    <H3><A name="4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
+    ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ,
+    ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?</H3>
 
     <P>þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × <I>psql</I>, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt.
     ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × <I>psql</I> ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?.
     ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ
     <I>psql</I> Ó ÏÐÃÉÅÊ <I>-E</I> ÔÁË, ÞÔÏÂÙ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ
     ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÎÎÙÈ ×ÁÍÉ
-    ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ <SMALL>SQLi</SMALL>
+    ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ <SMALL>SQL</SMALL>
     ÓÏ×ÍÅÓÔÉÍÙÊ Ó INFORMATION SCHEMA ÉÎÔÅÒÆÅÊÓ, Ó ÐÏÍÏÝØÀ ËÏÔÏÒÏÇÏ, ×Ù
     ÍÏÖÅÔÅ ÓÆÏÒÍÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÂÁÚÅ ÄÁÎÎÙÈ.</P>
+    
+    <P>ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó <I>pg_</I>.</P>
+    
+    <P>éÓÐÏÌØÚÕÊÔÅ <I>psql -l</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.</P>
 
-    <H4><A name="4.4">4.4</A>) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ ÉÌÉ
-    ÉÚÍÅÎÉÔØ Å£ ÔÉРÄÁÎÎÙÈ?</H4>
+    <P>ôÁËÖÅ ÐÏÓÍÏÔÒÉÔÅ ÆÁÊÌ <I>pgsql/src/tutorial/syscat.source</I>.
+    ïΠÐÏËÁÚÙ×ÁÅÔ ÍÎÏÇÉÅ ÉÚ ÏÐÅÒÁÔÏÒÏ× <SMALL>SELECT</SMALL> ÎÅÏÂÈÏÄÉÍÙÈ
+    ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉàÂÁÚÙ ÄÁÎÎÙÈ.</P>
 
-    <P><small>DROP COLUMN</small> ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ × ×ÙÐÕÓË
-    7.3 Ó ÏÐÅÒÁÔÏÒÏÍ <small>ALTER TABLE DROP COLUMN</small>. ÷ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ,
-    ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:</P>
-<PRE>
-    BEGIN;
-    LOCK TABLE old_table;
-    SELECT ...  -- ×ÙÂÏÒËÁ ×ÓÅÈ ËÏÌÏÎÏË ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÊ, ËÏÔÏÒÕÀ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ
-    INTO TABLE new_table
-    FROM old_table;
-    DROP TABLE old_table;
-    ALTER TABLE new_table RENAME TO old_table;
-    COMMIT;
-</PRE>
 
-    <P>äÌÑ ÉÚÍÅÎÅÎÉÑ ÔÉÐÁ ÄÁÎÎÙÈ ËÏÌÏÎËÉ, ÓÄÅÌÁÊÔÅ ÔÁË:</P>
+    <H3><A name="4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉРÄÁÎÎÙÈ ËÏÌÏÎËÉ?</H3>
+
+    <P>÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ
+    ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P>
+
+    <P>÷ ÂÏÌÅÅ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ ÓÄÅÌÁÊÔÅ ÔÁË:</P>
 <PRE>
     BEGIN;
     ALTER TABLE tab ADD COLUMN new_col <i>new_data_type</i>;
     COMMIT;
 </PRE>
 
-    <H4><A name="4.5">4.5</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ,
-    ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?</H4>
+    <H3><A name="4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
+    ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?</H3>
 
     <P>óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:</P>
-<PRE>
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?                    ÎÅÏÇÒÁÎÉÞÅΠ(ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?                 32 TB
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÚÁÐÉÓÉ?                  1.6 TB
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?                    1 GB
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ?   ÎÅÏÇÒÁÎÉÞÅÎÏ
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?   250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁ
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?  ÎÅÏÇÒÁÎÉÞÅÎÏ
-</PRE>
-
-    òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ
+<BLOCKQUOTE>
+<TABLE>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?</TD>
+  <TD>ÎÅÏÇÒÁÎÉÞÅΠ(ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?</TD>
+  <TD>32 TB</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ?</TD>
+  <TD>1.6 TB</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?</TD>
+  <TD>1 GB</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË × ÔÁÂÌÉÃÅ?</TD>
+  <TD>ÎÅÏÇÒÁÎÉÞÅÎÏ</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?</TD>
+  <TD>250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁ</TD>
+</TR>
+<TR>
+  <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?</TD>
+  <TD>ÎÅÏÇÒÁÎÉÞÅÎÏ</TD>
+</TR>
+</TABLE>
+</BLOCKQUOTE>
+<BR>
+    <P>òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ
     ÄÏÓÔÕÐÎÙÍ ÄÉÓËÏ×ÙÍ ÐÒÏÓÔÒÁÎÉÓÔ×ÏÍ É ÒÁÚÍÅÒÁÍÉ ÐÁÍÑÔÉ/Ó×ÏÐÐÉÎÇÁ.
     ëÏÇÄÁ ÚÎÁÞÅÎÉÑ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ×ÙÛÅ ÎÅÏÐÒÁ×ÄÁÎÏ ÂÏÌØÛÉÅ, ÍÏÖÅÔ
-    ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.
+    ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.</P>
 
     <P>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ × 32 TB ÎÅ ÔÒÅÂÕÅÔ ÞÔÏÂÙ ÏÐÅÒÁÃÉÏÎÎÁÑ
     ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÌÁ ÆÁÊÌÙ ÂÏÌØÛÉÈ ÒÁÚÍÅÒÏ×. âÏÌØÛÉÅ ÔÁÂÌÉÃÙ ÈÒÁÎÑÔÓÑ
     <P>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË
     ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ
     Õ×ÅÌÉÞÅΠÄÏ 32k.</P>
+    
+    <P>óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÉÅ, ÐÏ ËÏÔÏÒÏÍÕ ÉÎÄÅËÓÙ ÎÅ ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØÓÑ ÄÌÑ
+    ËÏÌÏÎÏË ÄÌÉÎÎÅÅ ÞÅÍ 2,000 ÓÉÍ×ÏÌÏ×. ë ÓÞÁÓÔØÀ ÔÁËÉÅ ÉÎÄÅËÓÙ ×ÒÑÄ ÌÉ
+    ÄÅÊÓÔ×ÉÔÅÌØÎÏ ËÏÍÕ-ÔÏ ÎÕÖÎÙ. õÎÉËÁÌØÎÏÓÔØ ÇÁÒÁÎÔÉÒÕÅÔÓÑ ÎÁÉÌÕÞÉÍ ÏÂÒÁÚÏÍ,
+    Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÏÎÁÌØÎÏÇÏ ÉÎÄÅËÓÁ ÉÚ ÈÜÛÁ MD5 ÄÌÉÎÎÏÊ ËÏÌÏÎËÉ, Á
+    ÐÏÌÎÏÔÅËÓÔÏ×ÏÅ ÉÎÄÅËÓÉÒÏ×ÁÎÉÅ ÐÏÚ×ÏÌÑÅÔ ÉÓËÁÔØ ÓÌÏ×Á ×ÎÕÔÒÉ ËÏÌÏÎËÉ.</P>
 
-    <H4><A name="4.6">4.6</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
-     ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?</H4>
+    <H3><A name="4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
+     ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?</H3>
 
     <P>óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ
     ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.</P>
     òÁÚÍÅÒ ÂÁÚÙ PostgreSQL, ÓÏÄÅÒÖÁÝÅÊ ÜÔÉ ÖÅ ÄÁÎÎÙÅ ÓÏÓÔÁ×ÉÔ ÐÒÉÂÌÉÚÉÔÅÌØÎÏ
     6.4 MB ÉÚ ËÏÔÏÒÙÈ:</P>
 <PRE>
-    32 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÚÁÐÉÓÉ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
+    28 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
   + 24 ÂÁÊÔÁ: ÏÄÎÏ ÐÏÌÅ Ó ÃÅÌÏÞÉÓÌÅÎÎÙÍ ÔÉÐÏÍ É ÏÄÎÏ ÔÅËÓÔÏ×ÏÅ ÐÏÌÅ
-  +  4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÚÁÐÉÓÉ
+  +  4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÔÁÂÌÉÞÎÏÊ ÓÔÒÏËÉ
    ----------------------------------------
-    60 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+    56 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
 
    òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ ÄÁÎÎÙÈ × PostgreSQL ÓÏÓÔÁ×ÌÑÅÔ 8192 ÂÁÊÔ (8 KB), ÔÁË ÞÔÏ:
 
    8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ
-   ---------------------   =  136 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ âä (ÏËÒÕÇÌ£ÎÎÏ)
-     60 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+   ---------------------   =  146 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ âä (ÏËÒÕÇÌ£ÎÎÏ)
+     56 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
 
      100000 ÓÔÒÏË ÄÁÎÎÙÈ
-   ----------------------- =  735 ÓÔÒÁÎÉàנâä (ÏËÒÕÇÌ£ÎÎÏ)
-   128 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ
+   ----------------------- =  685 ÓÔÒÁÎÉàנâä (ÏËÒÕÇÌ£ÎÎÏ)
+   146 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ
 
-   735 ÓÔÒÁÎÉàâä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 6,021,120 ÂÁÊÔ (6 MB)
+   685 ÓÔÒÁÎÉàâä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 5,611,520 ÂÁÊÔ (5.6 MB)
 </PRE>
 
     <P>éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ
     ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ.
     </P>
 
-    <H4><A name="4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ
-     ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?</H4>
-
-    <P><I>psql</I> ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ
-    ÞÅÒÔÙ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ. éÓÐÏÌØÚÕÊÔÅ
-    \? ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ
-    ÔÁÂÌÉÃÙ, ÉÍÑ ËÏÔÏÒÙÈ ÎÁÞÉÎÁÅÔÓÑ ÎÁ <i>pg_</i> É × ËÏÔÏÒÙÈ ÔÁËÖÅ ÓÏÄÅÒÖÉÔÓÑ
-    ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ. åÝ£, <i>psql -l</i> ÐÏËÁÖÅÔ ÓÐÉÓÏË ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.</P>
+    <H3><A name="4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
+     ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?</H3>
 
-    <P>ôÁËÖÅ ÓÍÏÔÒÉÔÅ ÆÁÊÌ <I>pgsql/src/tutorial/syscat.source</I>. ÷ ÎÅÍ
-    ÐÒÅÄÓÔÁ×ÌÅÎÙ ÍÎÏÇÉÅ ÏÐÅÒÁÔÏÒÙ <SMALL>SELECT</SMALL> ËÏÔÏÒÙÅ ÎÕÖÎÙ
-    ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉàÂÁÚÙ ÄÁÎÎÙÈ.</P>
-
-    <H4><A name="4.8">4.8</A>) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ
-     ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?</H4>
-
-    <P>éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉ. ïÎÉ
+    <P>éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ
     ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ
-    ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ,
+    ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ,
     ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕРˠÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ
     ÉÎÄÅËÓÏ× ÍÏÖÅÔ ÂÙÔØ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÐÒÏÓÔÏÅ ÞÔÅÎÉÅ ÔÁÂÌÉÃÙ ÉÌÉ ÅÅ
     ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ.</P>
     ÔÁÂÌÉÃÙ, PostgreSQL ÄÏÌÖÅΠÉÍÅÔØ ÓÔÁÔÉÓÔÉËÕ ÐÏ ÜÔÏÊ ÔÁÂÌÉÃÅ. üÔÁ
     ÓÔÁÔÉÓÔÉËÁ ÓÏÂÉÒÁÅÔÓÑ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ <SMALL>VACUUM ANALYZE</SMALL>
     ÉÌÉ ÐÒÏÓÔÏ <SMALL>ANALYZE</SMALL>. éÓÐÏÌØÚÕÑ ÓÔÁÔÉÓÔÉËÕ, ÏÐÔÉÍÉÚÁÔÏÒ
-    ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏΠÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØ
+    ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏΠÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØ
     ÉÎÄÅËÓÙ, ÔÏ ÏΠÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ. óÔÁÔÉÓÔÉËÁ ÔÁËÖÅ
     ×ÌÉÑÅÔ ÎÁ ÏÐÒÅÄÅÌÅÎÉÅ ÏÐÔÉÍÁÌØÎÏÇÏ ÐÏÒÑÄËÁ Ó×ÑÚÙ×ÁÎÉÑ É ÍÅÔÏÄÁ Ó×ÑÚÙ×ÁÎÉÑ.
-    óÂÏÒ ÓÔÁÔÉÓÔÉËÉ ÄÏÌÖÅΠÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ
-    ÔÁÂÌÉÃÙ.</P>
+    ðÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ ÔÁÂÌÉÃÙ ÄÏÌÖÅΠÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ
+    ÓÂÏÒ ÓÔÁÔÉÓÔÉËÉ.</P>
     
     <P>ïÂÙÞÎÏ ÉÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ <SMALL>ORDER BY</SMALL> ÉÌÉ ÄÌÑ
     ×ÙÐÏÌÎÅÎÉÑ Ó×ÑÚÙ×ÁÎÉÊ. ðÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÓÌÅÄÕÀÝÉÊ ÚÁ Ñ×ÎÏÊ
     ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ. æÁËÔÉÞÅÓËÉ MAX() É MIN() ÎÅ
     ÉÓÐÏÌØÚÕÀÔ ÉÎÄÅËÓÙ, ÎÏ ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÚÁÐÒÏÓÏ× Ó
     <SMALL>ORDER BY</SMALL> É <SMALL>LIMIT</SMALL>:
-<pre>
+<PRE>
     SELECT col
     FROM tab
     ORDER BY col [ DESC ]
     LIMIT 1;
-</pre>
+</PRE>
 
     <P>åÓÌÉ ×ÁÍ ËÁÖÅÔÓÑ, ÞÔÏ ÏÐÔÉÍÉÚÁÔÏÒ ÎÅËÏÒÒÅËÔÎÏ ×ÙÂÉÒÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ
     ÐÅÒÅÂÏÒ, ÉÓÐÏÌØÚÕÊÔÅ <CODE>SET enable_seqscan TO 'off'</CODE> É
-    ÚÁÐÕÓÔÉÔÅ ÔÅÓÔÙ, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÎÅ ÓÔÁÌÏ-ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ.
+    ÚÁÐÕÓÔÉÔÅ ÚÁÐÒÏÓ ÓÎÏ×Á, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ
+    ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ.
     </P>
 
     <P>ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ <SMALL>LIKE</SMALL>
     </UL></LI>
     <LI>óÔÒÏËÁ ÐÏÉÓËÁ ÎÅ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ Ó ÓÉÍ×ÏÌÁ ËÌÁÓÓÁ, Ô.Å. [a-e].</LI>
     <LI>ðÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ, ÔÁËÏÊ ËÁË <small>ILIKE</small> É
-    <i>~*</i> ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ
-    ÉÎÄÅËÓÙ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ <A href="#4.12">4.12</A>.</LI>
+    <i>~*</i> ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÉÎÄÅËÓÙ
+    ×ÙÒÁÖÅÎÉÊ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ <A href="#4.8">4.8</A>.</LI>
     <LI>÷Ï ×ÒÅÍÑ <i>initdb</i> ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÌÏËÁÌØ ÐÏ ÕÍÏÌÞÁÎÉÀ
-    <i>C</i>, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ next-greater
+    <i>C</i>, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ ÓÌÅÄÕÀÝÉÊ ÎÁÉÂÏÌØÛÉÊ
     ÓÉÍ×ÏÌ ÄÌÑ ÎÅ-C ÌÏËÁÌÉ. ÷Ù ÍÏÖÅÔÅ ÄÌÑ ÔÁËÉÈ ÓÌÕÞÁÅ× ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÊ
-    ÉÎÄÅËÓ
-    <PRE>
-       text_pattern_ops
-    </PRE>
-    ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ
-    <PRE>
-       LIKE
-    </PRE>
-    ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ.</LI>
+    ÉÎÄÅËÓ <CODE>text_pattern_ops</CODE> ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ
+    <SMALL>LIKE</SMALL> ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ.</LI>
     </UL>
-    </P>
     
     <P>÷ ×ÙÐÕÓËÁÈ ÄÏ ×ÅÒÓÉÉ 8.0, ÉÎÄÅËÓÙ ÞÁÓÔÏ ÎÅÌØÚÑ ÂÙÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ,
     ÅÓÌÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÏÞÎÏ ÎÅ ÓÏ×ÐÁÄÁÌÉ Ó ÉÎÄÅËÓÎÙÍÉ ÔÉÐÁÍÉ ËÏÌÏÎÏË. üÔÏ
     ÏÓÏÂÅÎÎÏ ËÁÓÁÌÏÓØ int2, int8 É numeric ÉÎÄÅËÓÏ× ËÏÌÏÎÏË.</P>
 
-    <H4><A name="4.9">4.9</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
-     ÍÏÊ ÚÁÐÒÏÓ?</H4>
+    <H3><A name="4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
+     ÍÏÊ ÚÁÐÒÏÓ?</H3>
 
     <P>óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ <SMALL>EXPLAIN</SMALL>.</P>
 
-    <H4><A name="4.10">4.10</A>) þÔÏ ÔÁËÏÅ R-tree ÉÎÄÅËÓ?</H4>
-
-    <P>R-tree ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÙÈ ÄÁÎÎÙÈ.
-    éÎÄÅËÓ ÈÜÛÁ ÎÅ ÍÏÖÅÔ ÕÐÒÁ×ÌÑÔØ ÐÏÉÓËÁÍÉ ÄÉÁÐÁÚÏÎÁ. B-tree ÉÎÄÅËÓ
-    ÕÐÒÁ×ÌÑÅÔ ÔÏÌØËÏ ÐÏÉÓËÁÍÉ ÄÉÁÐÁÚÏÎÁ × ÏÄÎÏÍ ÉÚÍÅÒÅÎÉÉ. R-tree ÉÎÄÅËÓ
-    ÍÏÖÅÔ ÕÐÒÁ×ÌÑÔØ ÍÎÏÇÏÒÁÚÍÅÒÎÙÍÉ ÄÁÎÎÙÍÉ. îÁÐÒÉÍÅÒ, ÅÓÌÉ R-tree ÉÎÄÅËÓ
-    ÍÏÖÅÔ ÂÙÔØ ×ÓÔÒÏÅΠנÁÔÒÉÂÕÔ ÔÉÐÁ <I>point</I>, ÔÏ ÓÉÓÔÅÍÁ ÍÏÖÅÔ
-    ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÏ ÏÔ×ÅÔÉÔØ ÎÁ ÚÁÐÒÏÓ ÔÉÐÁ "×ÙÂÒÁÔØ ×ÓÅ ÔÏÞËÉ ×ÎÕÔÒÉ
-    ÚÁÄÁÎÎÏÇÏ ÞÅÔÙÒÅÈÕÇÏÌØÎÉËÁ."</P>
-
-    <P>ëÁÎÏÎÉÞÅÓËÉÊ ÉÓÔÏÞÎÉË, ÏÐÉÓÙ×ÁÀÝÉÊ ÐÅÒ×ÏÎÁÞÁÌØÎÏÅ ÓÏÚÄÁÎÉÅ R-tree
-    ÜÔÏ:</P>
-
-    <P>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.</P>
-
-    <P>÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÜÔÏÔ ÄÏËÕÍÅÎÔ × ËÎÉÇÅ óÔÏÕÎÂÒÅÊËÅÒÁ "Readings in
-    Database Systems".</P>
 
-    <P>÷ÓÔÒÏÅÎÎÎÙÅ R-tree ÍÏÇÕÔ ÕÐÒÁ×ÌÑÔØ ÐÏÌÉÇÏÎÁÍÉ É ÂÏËÓÁÍÉ. ÷ ÔÅÏÒÉÉ,
-    R-tree ÍÏÇÕÔ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ
-    ÉÚÍÅÒÅÎÉÊ. îÁ ÐÒÁËÔÉËÅ, ÒÁÓÛÉÒÅÎÉÅ R-tree ÔÒÅÂÕÅÔ ÎÅËÏÔÏÒÙÈ ÕÓÉÌÉÊ É
-    Õ ÎÁÓ, × ÄÁÎÎÙÊ ÍÏÍÅÎÔ, ÎÅÔ ËÁËÏÊ-ÌÉÂÏ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ÔÏÍ, ËÁË ÜÔÏ
-    ÓÄÅÌÁÔØ.</P>
-
-    <H4><A name="4.11">4.11</A>) þÔÏ ÔÁËÏÅ Genetic Query
-    Optimizer?</H4>
-
-    <P>íÏÄÕÌØ <SMALL>GEQO</SMALL> ÐÒÏÉÚ×ÏÄÉÔ ÂÙÓÔÒÕÀ ÏÐÔÉÍÉÚÁÃÉÀ ÚÁÐÒÏÓÁ,
-    ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ Ó×ÑÚÙ×ÁÎÉÅ ÍÎÏÇÉÈ ÔÁÂÌÉàÞÅÒÅÚ Genetic Algorithm (GA).
-    üÔÏ ÐÏÚ×ÏÌÑÅÔ ÕÐÒÁ×ÌÑÔØ ÂÏÌØÛÉÍÉ ÚÁÐÒÏÓÁÍÉ ÎÁ Ó×ÑÚÙ×ÁÎÉÅ ÞÅÒÅÚ
-    ÎÅÉÓÔÏÝÁÀÝÉÊ ÐÏÉÓË.</P>
-
-    <H4><A name="4.12">4.12</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
+    <H3><A name="4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
      É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
-     ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?</H4>
+     ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?</H3>
 
     <P>ïÐÅÒÁÔÏÒ <I>~</I> ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ
     <I>~*</I> ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ
 </PRE>
 
     üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
-    ×Ù ÓÏÚÄÁÄÉÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÊ ÉÎÄÅËÓ, ÏΠÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
+    ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏΠÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
 <PRE>
     CREATE INDEX tabindex ON tab (lower(col));
 </PRE>
+    <P>åÓÌÉ ×ÙÛÅÕËÁÚÁÎÎÙÊ ÉÎÄÅËÓ ÓÏÚÄÁ£ÔÓÑ ËÁË <SMALL>UNIQUE</SMALL>, ÔÏ
+    ËÏÌÏÎËÁ, ÄÌÑ ËÏÔÏÒÏÊ ÏΠÓÏÚÄÁ£ÔÓÑ ÍÏÖÅÔ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ É × ×ÅÒÈÎÅÍ,
+    É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÉÎÄÅÓ ÎÅ ÍÏÖÅÔ ÉÍÅÔØ ÉÄÅÎÔÉÞÎÙÈ ÚÎÁÞÅÎÉÊ, ËÏÔÏÒÙÅ
+    ÏÔÌÉÞÁÀÔÓÑ ÔÏÌØËÏ ÒÅÇÉÓÔÒÏÍ. þÔÏÂÙ × ËÏÌÏÎËÅ ÍÏÖÎÏ ÂÙÌÏ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ
+    ÔÏÌØËÏ × ÏÐÒÅÄÅÌ£ÎÎÏÍ ÒÅÇÉÓÔÒÅ, ÉÓÐÏÌØÚÕÊÔÅ ÏÇÒÁÎÉÞÅÎÉÅ
+    <SMALL>CHECK</SMALL> ÉÌÉ ÐÒÏ×ÅÒËÕ ÞÅÒÅÚ ÔÒÉÇÇÅÒ.</P>
 
-    <H4><A name="4.13">4.13</A>) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ
-    ÒÁ×ÎÏ <SMALL>NULL</SMALL> × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?</H4>
+    <H3><A name="4.9">4.9</A>) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ
+    <SMALL>NULL</SMALL> × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ
+    <SMALL>NULL</SMALL> ÉÌÉ ÎÅÔ?</H3>
 
     <P>÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó <SMALL>IS NULL</SMALL> É
-    <SMALL>IS NOT NULL</SMALL>.</P>
-
-    <H4><A name="4.14">4.14</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
-     ÔÉÐÁÍÉ?</H4>
+    <SMALL>IS NOT NULL</SMALL>, ËÁË ÚÄÅÓØ:</P>
 <PRE>
-ôÉР           ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ   úÁÍÅÞÁÎÉÑ
---------------------------------------------------
-VARCHAR(n)      varchar         ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ
-CHAR(n)         bpchar          ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
-TEXT            text            ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ
-BYTEA           bytea           ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)
-"char"          char            ÏÄÉΠÓÉÍ×ÏÌ
+   SELECT *
+   FROM tab
+   WHERE col IS NULL;
 </PRE>
 
+   <P>þÔÏÂÙ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÄÁÎÎÙÅ ÐÏ ÚÎÁÞÅÎÉÀ <NULL> ÉÓÐÏÌØÚÕÊÔÅ ÍÏÄÉÆÉËÁÔÏÒÙ
+   <SMALL>IS NULL</SMALL> É <SMALL>IS NOT NULL</SMALL> × ×ÙÒÁÖÅÎÉÉ
+   <SMALL>ORDER BY</SMALL>.  ëÏÇÄÁ ÏÎÉ ÂÕÄÕÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÚÎÁÞÅÎÉÑ
+   <I>ÉÓÔÉÎÁ</I>, ÔÏ ÐÒÉ ÓÏÒÔÉÒÏ×ËÅ ÏÎÉ ÂÕÄÕÔ ×ÙÛÅ, ÞÅÍ ÚÎÁÞÅÎÉÑ
+   <I>ÌÏÖØ</I>, ÔÁË ÞÔÏ ÚÁÐÉÓÉ Ó NULL ÂÕÄÕÔ × ÏÔÓÏÒÔÉÒÏ×ÁÎÎÏÍ ÓÐÉÓËÅ Ó×ÅÒÈÕ:</P>
+
+<PRE>
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL);
+</PRE>   
+
+    <H3><A name="4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
+     ÔÉÐÁÍÉ?</H3>
+<BLOCKQUOTE>
+<TABLE>
+<TR>
+  <TH>ôÉÐ</TH>
+  <TH>÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ</TH>
+  <TH>úÁÍÅÞÁÎÉÑ</TH>
+</TR>
+<TR>
+  <TD>VARCHAR(n)</TD>
+  <TD>varchar</TD>
+  <TD>ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ</TD>
+</TR>
+<TR>
+  <TD>CHAR(n)</TD>
+  <TD>bpchar</TD>
+  <TD>ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ</TD>
+</TR>
+<TR>
+  <TD>TEXT</TD>
+  <TD>text</TD>
+  <TD>ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ</TD>
+</TR>
+<TR>
+  <TD>BYTEA</TD>
+  <TD>bytea</TD>
+  <TD>ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)</TD>
+</TR>
+<TR>
+  <TD>"char"</TD>
+  <TD>char</TD>
+  <TD>ÏÄÉΠÓÉÍ×ÏÌ</TD>
+</TR>
+</TABLE>
+</BLOCKQUOTE>
+
     <P>÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ ×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ, ËÏÇÄÁ ÓÍÏÔÒÉÔÅ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ
     É × ÎÅËÏÔÏÒÙÈ ÓÏÏÂÝÅÎÉÑÈ Ï ÏÛÉÂËÁÈ.</P>
 
     <P>ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ
     ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ).
     ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ
-    ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÜÔÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÁËÖÅ ÐÏÄÄÁÀÔÓÑ ÓÖÁÔÉÀ
-    ÉÌÉ ÍÏÇÕÔ ÂÙÔØ ÓÏÈÒÁÎÅÎÙ ÎÅ × ÓÔÒÏËÏÍ ×ÉÄÅ ÞÅÒÅÚ <SMALL>TOAST</SMALL>,
+    ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ,
     ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ,
     ÞÅÍ ÏÖÉÄÁÌÏÓØ.</P>
 
@@ -1147,8 +882,8 @@ BYTEA           bytea           
     ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ <SMALL>NULL</SMALL> ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ
     ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
 
-    <H4><A name="4.15.1">4.15.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ
-    serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?</H4>
+    <H3><A name="4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ
+    serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?</H3>
 
     <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉРÄÁÎÎÙÈ <SMALL>SERIAL</SMALL>. ïÎ
     Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:</P>
@@ -1169,20 +904,15 @@ BYTEA           bytea           
 </PRE>
 
     óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á
-    ÐÏÓ×ÑÝÅÎÎÏÊ <I>create_sequence</I>. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ
-    ËÁÖÄÏÅ ÐÏÌÅ <I>OID</I> × ÚÁÐÉÓÉ ËÁË ÕÎÉËÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ. ïÄÎÁËÏ,
-    ÅÓÌÉ ×ÁÍ ÎÕÖÅΠÄÁÍРɠÐÅÒÅÚÁÇÒÕÚËÁ ÂÁÚÙ ÄÁÎÎÙÈ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ
-    ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ <I>pg_dump</I> Ó ÏÐÃÉÅÊ <I>-o</I> ÉÌÉ ÏÐÃÉÀ
-    <SMALL>COPY WITH OIDS</SMALL> ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ ÐÏÌÑ
-    <SMALL>OID</SMALL>.
+    ÐÏÓ×ÑÝÅÎÎÏÊ <I>create_sequence</I>. 
 
-    <H4><A name="4.15.2">4.15.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
-    <SMALL>SERIAL</SMALL>?</H4>
+    <H3><A name="4.11.2">4.11.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
+    <SMALL>SERIAL</SMALL>?</H3>
 
     <P>ïÄÉΠÉÚ ÓÐÏÓÏÂÏ× ÓÏÓÔÏÉÔ × ÐÏÌÕÞÅÎÉÉ ÓÌÅÄÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ
     <SMALL>SERIAL</SMALL> ÉÚ ÏÂßÅËÔÁ sequence Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ
     <I>nextval()</I> <I>ÐÅÒÅÄ</I> ×ÓÔÁ×ËÏÊ É ÚÁÔÅÍ ×ÓÔÁ×ÌÑÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ
-    Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ × <A href="#4.15.1">4.15.1</A>, ÐÒÉÍÅÒ
+    Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ × <A href="#4.11.1">4.11.1</A>, ÐÒÉÍÅÒ
     × ÐÓÅ×ÄÏÑÚÙËÅ ÐÏËÁÖÅÔ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ:</P>
 <PRE>
     new_id = execute("SELECT nextval('person_id_seq')");
@@ -1205,25 +935,17 @@ BYTEA           bytea           
     new_id = execute("SELECT currval('person_id_seq')");
 </PRE>
 
-    é ÎÁËÏÎÅÃ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÎÁÞÅÎÉÅ
-    <A href="#4.16"><SMALL>OID</SMALL></A>, ×ÏÚÒÁÝÁÅÍÏÅ ÉÚ ÏÐÅÒÔÏÒÁ
-    <SMALL>INSERT</SMALL> ÞÔÏÂÙ Õ×ÉÄÅÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÞÔÏ
-    ÐÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Ñ×ÌÑÅÔÓÑ ÎÁÉÍÅÎÅÅ ÐÅÒÅÎÏÓÉÍÙÍ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ
-    ÒÅÛÅÎÉÅÍ, Ë ÔÏÍÕ ÖÅ ÚÎÁÞÅÎÉÅ oid ÂÕÄÅÔ ÕÒÅÚÁÔØÓÑ, ËÏÇÄÁ ÏÎÏ ÄÏÓÔÉÇÎÅÔ
-    4 ÍÉÌÌÉÁÒÄÏ×. ÷ Perl, ÉÓÐÏÌØÚÕÑ DBI Ó ÍÏÄÕÌÅÍ Edmund Mergl'Ñ DBD::Pg,
-    ÚÎÁÞÅÎÉÅ oid ÓÔÁÎÏ×ÉÔÓÑ ÄÏÓÔÕÐÎÙÍ ÞÅÒÅÚ <I>$sth-&gt;{pg_oid_status}</I>
-    ÐÏÓÌÅ <I>$sth-&gt;execute()</I>. 
 
-    <H4><A name="4.15.3">4.15.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
+    <H3><A name="4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
     ÉÓÐÏÌØÚÏ×ÁÎÉÅ <I>currval()</I> É <I>nextval()</I> ÐÒÉ×ÅÄÅÔ Ë
-    ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?</H4>
+    ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?</H3>
 
-    <P>îÅÔ. <i>currval()</i> ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÍ
-    backend'ÏÍ, Á ÎÅ ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ.</P>
+    <P>îÅÔ. <i>currval()</i> ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ
+    ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.</P>
 
-    <H4><A name="4.15.4">4.15.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
+    <H3><A name="4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
     ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
-    ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?</H4>
+    ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?</H3>
 
     <P>äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ
     ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ
@@ -1231,79 +953,33 @@ BYTEA           bytea           
     ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.</P>
 
 
-    <H4><A name="4.16">4.16</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
-    <SMALL>TID</SMALL>?</H4>
-
-    <P>ðÏÌÑ <SMALL>OID</SMALL> ÓÌÕÖÁÔ ÕÎÉËÁÌØÎÙÍÉ ÉÄÅÔÉÆÉËÁÔÏÒÁÍÉ ÚÁÐÉÓÅÊ
-    × PostgreSQL. ëÁÖÄÁÑ ÚÁÐÉÓØ, ËÏÔÏÒÁÑ ÓÏÚÄÁ£ÔÓÑ × PostgreSQL ÐÏÌÕÞÁÅÔ
-    ÕÎÉËÁÌØÎÙÊ <SMALL>OID</SMALL>. ÷ÓÅ ÚÎÁÞÅÎÉÑ <SMALL>OID</SMALL>
-    ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ <I>initdb</I> ÉÍÅÀÔ ÚÎÁÞÅÎÉÑ ÍÅÎØÛÅ 16384 (ÉÚ
-    <I>include/access/transam.h</I>). ÷ÓÅ ÓÏÚÄÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ
-    <SMALL>OID</SMALL> ÉÍÅÀÔ ÂïÌØÛÉÅ ÚÎÁÞÅÎÉÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, ×ÓÅ ÜÔÉ
-    <SMALL>OID</SMALL> Ñ×ÌÑÀÔÓÑ ÕÎÉËÁÌØÎÙÍÉ ÎÅ ÔÏÌØËÏ ×ÎÕÔÒÉ ËÁËÏÊ-ÌÉÂÏ
-    ÔÁÂÌÉÃÙ ÉÌÉ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÏ É ×ÎÕÔÒÉ ×ÓÅÊ óõâä PostgreSQL.</P>
-
-    <P>PostgreSQL ÉÓÐÏÌØÚÕÅÔ <SMALL>OID</SMALL> × Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÓÉÓÔÅÍÎÙÈ
-    ÔÁÂÌÉÃÁÈ ÄÌÑ Ó×ÑÚÉ ÚÁÐÉÓÅÊ É ÔÁÂÌÉÃ. úÎÁÞÅÎÉÑ <SMALL>OID</SMALL> ÍÏÇÕÔ
-    ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÚÁÄÁÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÚÁÐÉÓÅÊ,
-    Á ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÒÉ Ó×ÑÚÙ×ÁÎÉÑÈ. òÅËÏÍÅÎÄÕÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ
-    ÔÉРËÏÌÏÎËÉ <SMALL>OID</SMALL> ÄÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ <SMALL>OID</SMALL>
-    ÷Ù ÍÏÖÅÔÅ ÓÏÚÄÁÔØ ÉÎÄÅËÓ ÎÁ ÐÏÌÅ <SMALL>OID</SMALL> ÄÌÑ ÂÏÌÅÅ ÂÙÓÔÒÏÇÏ
-    ÄÏÓÔÕÐÁ.</P>
-
-    <P>úÎÁÞÅÎÉÑ <SMALL>OID</SMALL> ÎÁÚÎÁÞÁÀÔÓÑ ÄÌÑ ×ÓÅÈ ÎÏ×ÙÈ ÚÁÐÉÓÅÊ ÉÚ
-    ÃÅÎÔÒÁÌØÎÏÊ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ×ÓÅÍÉ ×ÓÅÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ.
-    åÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ <SMALL>OID</SMALL> ÎÁ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ
-    ÚÎÁÞÅÎÉÅ ÉÌÉ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÓÏÚÄÁÔØ ËÏÐÉÀ ÔÁÂÌÉÃÙ Ó ÔÁËÉÍÉÖÅ
-    <SMALL>OID</SMALL>, ÔÏ ÜÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:</P>
-<PRE>
-        CREATE TABLE new_table(mycol int);
-        SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
-        COPY tmp_table TO '/tmp/pgtable';
-        COPY new_table WITH OIDS FROM '/tmp/pgtable';
-       DROP TABLE tmp_table;
-</PRE>
-    <P>O<SMALL>ID</SMALL> ÈÒÁÎÉÔÓÑ ËÁË 4-È ÂÁÊÔÎÏÅ ÃÅÌÏÅ É ÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ
-    ÚÎÁÞÅÎÉÅ × 4 ÍÉÌÌÉÁÒÄÁ. ïÄÎÁËÏ, ÅÝÅ ÎÉËÔÏ ÎÅ ÓÏÏÂÝÉÌ Ï ÔÏÍ, ÞÔÏ ÔÁËÏÅ
-    ÐÒÏÉÚÏÛÌÏ, ÎÏ ÍÙ ÐÌÁÎÉÒÕÅÍ ÄÏ ÔÏÇÏ ËÁË ÜÔÏ ÓÌÕÞÉÔØÓÑ ÉÚÂÁ×ÉÔÓÑ ÏÔ
-    ÜÔÏÇÏ ÏÇÒÁÎÉÞÅÎÉÑ.</P>
-
-    <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ
-    ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. T<SMALL>ID</SMALL>
-    ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÚÁÐÉÓÉ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ.
-    <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å
-    ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.</P>
-
-    <H4><A name="4.17">4.17</A>) þÔÏ ÏÚÎÁÞÁÀÔ ÎÅËÏÔÏÒÙÅ ÔÅÒÍÉÎÙ ÉÓÐÏÌØÚÕÅÍÙÅ ×
-    PostgreSQL?</H4>
-
-    <P>îÅËÏÔÏÒÙÊ ÉÓÈÏÄÎÙÊ ËÏÄ É ÓÔÁÒÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÓÐÏÌØÚÕÀÔ
-    ÏÂÝÅÕÐÏÔÒÅÂÉÔÅÌØÎÙÅ ÔÅÒÍÉÎÙ. ÷ÏÔ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ:</P>
-
-    <UL>
-      <LI>table, relation, class</LI>
-
-      <LI>row, record, tuple</LI>
-
-      <LI>column, field, attribute</LI>
-
-      <LI>retrieve, select</LI>
-
-      <LI>replace, update</LI>
-
-      <LI>append, insert</LI>
+    <H3><A name="4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
+    <SMALL>CTID</SMALL>?</H3>
 
-      <LI><SMALL>OID</SMALL>, serial value</LI>
+    <P>ëÁÖÄÁÑ, ÓÏÚÄÁ×ÁÅÍÁÑ × PostgreSQL ÔÁÂÌÉÞÎÁÑ ÓÔÒÏËÁ, ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ
+    ÉÎÄÅÎÔÉÆÉËÁÔÏÒ <SMALL>OID</SMALL> ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÌÕÞÁÑ ËÏÇÄÁ
+    ÉÓÐÏÌØÚÏ×ÁÌÏÓØ <SMALL>WITHOUT OIDS</SMALL>. O<SMALL>ID</SMALL> - ÜÔÏ
+    Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁÚÎÁÞÁÅÍÏÅ ÕÎÉËÁÌØÎÏÅ 4-È ÂÁÊÔÏ×ÏÅ ÃÅÌÏÅ ÞÉÓÌÏ.
+    ïÄÎÁËÏ, ÐÏÓÌÅ ÔÏÇÏ ËÁË ÅÇÏ ÚÎÁÞÅÎÉÅ ÐÒÅ×ÙÓÉÔ 4 ÍÉÌÌÉÁÒÄÁ, ÚÎÁÞÅÎÉÑ
+    O<SMALL>ID</SMALL> ÎÁÞÉÎÁÀÔ ÄÕÂÌÉÒÏ×ÁÔØÓÑ. PostgreSQL ÉÓÐÏÌØÚÕÅÔ
+    <SMALL>OID</SMALL> ÄÌÑ Ó×ÑÚÙ×ÁÎÉÑ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ.</P>
 
-      <LI>portal, cursor</LI>
+    <P>äÌÑ ÕÎÉËÁÌØÎÙÈ ÚÎÁÞÅÎÉÊ × ËÏÌÏÎËÁÈ ÔÁÂÌÉÃÙ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÌÕÞÛÉÍ
+    ÓÐÏÓÏÂÏÍ Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ <SMALL>SERIAL</SMALL> ×ÍÅÓÔÏ
+    O<SMALL>ID</SMALL>, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ <SMALL>SERIAL</SMALL>
+    ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ
+    ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
+    ÄÏÓÔÕÐÅΠÔÉР<SMALL>SERIAL8</SMALL>.
 
-      <LI>range variable, table name, table alias</LI>
-    </UL>
+    <P>C<SMALL>TID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ
+    ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. C<SMALL>TID</SMALL>
+    ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ.
+    <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å
+    ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.</P>
 
-    <P>óÐÉÓÏË ÏÂÝÉÈ ÔÅÒÍÉÎÏ× ÐÏ ÂÁÚÁÍ ÄÁÎÎÙÈ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A></P>
 
-    <H4><A name="4.18">4.18</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
-    exhausted in AllocSetAlloc()"</I>?</H4>
+    <H3><A name="4.13">4.13</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
+    exhausted in AllocSetAlloc()"</I>?</H3>
 
     <P>ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ
     ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ.
@@ -1322,69 +998,21 @@ BYTEA           bytea           
     ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ,
     ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ.
 
-    <H4><A name="4.19">4.19</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
-    ÚÁÐÕÝÅÎÁ?</H4>
+    <H3><A name="4.14">4.14</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
+    ÚÁÐÕÝÅÎÁ?</H3>
 
     <P>éÚ <I>psql</I>, ÎÁÂÅÒÉÔÅ <CODE>SELECT version();</CODE></P>
 
-    <H4><A name="4.20">4.20</A>) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ
-     Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"invalid large obj descriptor"</I>?</H4>
-
-    <P>÷ÁÍ ÎÕÖÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÂÏÌØÛÏÇÏ ÏÂßÅËÔÁ ÐÏÍÅÓÔÉÔØ × ÎÁÞÁÌÅ
-    <CODE>BEGIN WORK</CODE> É × ËÏÎÃÅ <CODE>COMMIT</CODE>, Á ×ÎÕÔÒÉ
-    ÐÏÌÕÞÉ×ÛÅÇÏÓÑ ÂÌÏËÁ <CODE>lo_open</CODE> ... <CODE>lo_close.</CODE></P>
-
-    <P>÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÐÒÉ ÚÁËÒÙÔÉÉ ÂÏÌØÛÏÇÏ
-    ÏÂßÅËÔÁ ÐÒÏÉÓÈÏÄÉÌÏ ×ÙÐÏÌÎÅÎÉÅ ÔÒÁÎÚÁËÃÉÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÅÒ×ÁÑ ÖÅ
-    ÐÏÐÙÔËÁ ÓÄÅÌÁÔØ ÞÔÏ-ÌÉÂÏ Ó ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ, ÎÅ ÓÏÂÌÀÄÁÑ ÄÁÎÎÏÇÏ ÐÒÁ×ÉÌÁ
-    ÐÒÉ×ÅÄÅÔ Ë ÓÏÏÂÝÅÎÉÀ <I>invalid large obj descriptor</I>, ÔÁË ËÁË
-    ËÏÄ ×ÙÐÏÌÎÑÀÝÉÊ ÒÁÂÏÔÕ ÎÁÄ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ×
-    ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ) ÂÕÄÅÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÅÓÌÉ ×Ù ÎÅ
-    ÉÓÐÏÌØÚÕÅÔÅ ÔÒÁÎÚÁËÃÉÀ.</P>
 
-    <P>åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÁËÏÊ ÉÎÔÅÒÆÅÊÓ ËÌÉÅÎÔÁ ËÁË <SMALL>ODBC</SMALL>,
-    ×ÁÍ ×ÏÚÍÏÖÎÏ ÐÏÎÁÄÏÂÉÔÓÑ ÕÓÔÁÎÏ×ÉÔØ <CODE>auto-commit off.</CODE></P>
-
-    <H4><A name="4.21">4.21</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
-     ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?</H4>
+    <H3><A name="4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
+     ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?</H3>
 
     <P>éÓÐÏÌØÚÕÊÔÅ <I>CURRENT_TIMESTAMP</I>:</P>
 <PRE>
-<CODE>CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-</CODE>
-</PRE>
-
-    <H4><A name="4.22">4.22</A>) ðÏÞÅÍÕ ÍÏÉ ÐÏÄÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ
-    <CODE><SMALL>IN</SMALL></CODE> ÔÁË ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÅÀÔ?</H4>
-
-    <P>÷ ×ÅÒÓÉÑÈ ÄÏ 7.4, ÐÏÄÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÌÉÓØ Ó ÒÏÄÉÔÅÌØÓËÉÍÉ ÚÁÐÒÏÓÁÍÉ
-    ÞÅÒÅÚ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÒÅÚÕÌØÔÁÔÏ× ÐÏÚÁÐÒÏÓÁ ÄÌÑ ËÁÖÄÏÊ
-    ÚÁÐÉÓÉ ÒÏÄÉÔÅÌØÓËÏÇÏ ÚÁÐÒÏÓÁ. åÓÌÉ ÐÏÄÚÁÐÒÏÓ ×ÏÚ×ÒÁÝÁÅÔ ÔÏÌØËÏ ÎÅÓËÏÌØËÏ
-    ÚÁÐÉÓÅÊ, Á ÒÏÄÉÔÅÌØÓËÉÊ ÚÁÐÒÏÓ ×ÏÚ×ÒÁÝÁÅÔ ÍÎÏÇÏ ÚÁÐÉÓÅÊ,
-    <CODE><SMALL>IN</SMALL></CODE> ÒÁÂÏÔÁÅÔ ÎÁÉÂÏÌÅÅ ÂÙÓÔÒÏ. þÔÏÂÙ
-    Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ × ÄÒÕÇÉÈ ÚÁÐÒÏÓÁÈ, ÚÁÍÅÎÉÔÅ <CODE>IN</CODE> ÎÁ
-    <CODE>EXISTS</CODE>:</P>
-<PRE>
-    SELECT *
-    FROM tab
-    WHERE col IN (SELECT subcol FROM subtab);
-</PRE>
-
-    ÎÁ: 
-<PRE>
-    SELECT *
-    FROM tab
-    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 </PRE>
 
-    þÔÏÂÙ ÔÁËÁÑ ËÏÎÓÔÒÕËÃÉÑ ÒÁÂÏÔÁÌÁ ÂÙÓÔÒÏ, ËÏÌÏÎËÁ <CODE>subcol</CODE>
-    ÄÏÌÖÎÁ ÂÙÔØ ÐÒÏÉÎÄÅËÓÉÒÏ×ÁÎÁ.
-
-    <P>÷ ×ÅÒÓÉÉ 7.4 É ×ÙÛÅ, <CODE>IN</CODE> ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÔ ÔÁËÏÊ ÖÅ
-    ÍÅÈÁÎÉÚÍ Ó×ÑÚÙ×ÁÎÉÑ ËÁË É ÏÂÙÞÎÙÅ ÚÁÐÒÏÓÙ, ÐÏÜÔÏÍÕ ÐÒÅÄÐÏÞÔÉÔÅÌØÎÙÍ
-    Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ <CODE>EXISTS</CODE></P>.
-
-    <H4><A name="4.23">4.23</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?</H4>
+    <H3><A name="4.16">4.16</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?</H3>
 
     <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ,
     ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:</P>
@@ -1400,53 +1028,37 @@ BYTEA           bytea           
 </PRE>
 
     <P>üÔÏ ÉÄÅÎÔÉÞÎÙÅ ÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÎÉÑ t1.col É t2.col, ÔÁËÖÅ ×ÏÚ×ÒÁÝÁÀÔ
-    ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2). 
-    <SMALL>RIGHT</SMALL> Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ
+    ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2). 
+    <SMALL>RIGHT</SMALL> Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ
     t2. <SMALL>FULL</SMALL> Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ×ÏÚ×ÒÁÔÉÔØ ÓÏ×ÐÁ×ÛÉÅ
-    ÚÁÐÉÓÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ ÉÚ t1 É t2. óÌÏ×Ï <SMALL>OUTER</SMALL>
+    ÓÔÒÏËÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ ÉÚ t1 É t2. óÌÏ×Ï <SMALL>OUTER</SMALL>
     Ñ×ÌÑÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÍ É ÎÁÚÎÁÞÁÅÔÓÑ × <SMALL>LEFT</SMALL>,
     <SMALL>RIGHT</SMALL> É <SMALL>FULL</SMALL> Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ
     Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ <SMALL>INNER</SMALL> Ó×ÑÚÙ×ÁÎÉÑ.</P>
 
-    <P>÷ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÑÈ, ×ÎÅÛÎÉÅ Ó×ÑÚÙ×ÁÎÉÑ ÍÏÇÌÉ ÂÙÔØ ÜÍÕÌÉÒÏ×ÁÎÙ
-    ÉÓÐÏÌØÚÕÑ <SMALL>UNION</SMALL> É <SMALL>NOT IN</SMALL>. îÁÐÒÉÍÅÒ,
-    ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ Ó×ÑÚÙ×ÁÎÉÅ <I>tab1</I> É <I>tab2</I>, ÓÌÅÄÕÀÝÉÊ
-    ÚÁÐÒÏÓ ×ÙÐÏÌÎÑÅÔ <I>×ÎÅÛÎÅÅ</I> Ó×ÑÚÙ×ÁÎÉÅ Ä×ÕÈ ÔÁÂÌÉÃ:<BR>
-    <BR>
-    </P>
-<PRE>
-    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
-</PRE>
-
-    <H4><A name="4.24">4.24</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
-     ÂÁÚ ÄÁÎÎÙÈ?</H4>
+    <H3><A name="4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
+     ÂÁÚ ÄÁÎÎÙÈ?</H3>
 
     <P>îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ.
     ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ
     ÄÁÎÎÙÈ, ÎÅÐÏÎÑÔÎÏ ÄÁÖÅ, ËÁË ÄÏÌÖÅΠÓÅÂÑ ×ÅÓÔÉ ÔÁËÏÊ ÍÅÖÂÁÚÏ×ÙÊ ÚÁÐÒÏÓ.</P>
 
     <P><I>contrib/dblink</I> ÐÏÚ×ÏÌÑÅÔ ÚÁÐÒÏÓÙ ÍÅÖÄÕ ÂÁÚÁÍÉ, ÉÓÐÏÌØÚÕÑ
-    ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ
+    ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ
     ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ
     ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.</P>
 
-    <H4><A name="4.25">4.25</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?</H4>
+    <H3><A name="4.18">4.18</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?</H3>
 
-    <P>÷ ×ÅÒÓÉÉ 7.3, ×Ù ÍÏÖÅÔÅ ÌÅÇËÏ ×ÅÒÎÕÔØ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ ÉÌÉ ËÏÌÏÎÏË ÉÚ
-     ËÁËÏÊ-ÌÉÂÏ ÆÕÎËÃÉÉ,
-     <href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
-     http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P>
+    <P>÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË,
+     <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
+     http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P>
 
-    <H4><A name="4.26">4.26</A>) ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÎÁÄÅÖÎÏ ÓÏÚÄÁ×ÁÔØ/ÕÄÁÌÑÔØ
-    ×ÒÅÍÅÎÎÙÅ ÔÁÂÌÉÃÙ × ÆÕÎËÃÉÑÈ PL/PgSQL?</H4>
-    <P>PL/PgSQL ËÜÛÉÒÕÅÔ ÓÏÄÅÒÖÉÍÏÅ ÆÕÎËÃÉÉ É ÏÄÉΠÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ
+
+    <H3><A name="4.19">4.19</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID ####
+     ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?</H3>
+     
+    <P>PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉΠÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ
     ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ
     É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ
     ÓÎÏ×Á, ÔÏ ÅÅ ×ÙÚÏ× ÐÒÉ×ÅÄÅÔ Ë ÏÛÉÂËÅ, ÐÏÔÏÍÕ ÞÔÏ ÓËÜÛÉÒÏ×ÁÎÎÏÅ ÓÏÄÅÒÖÉÍÏÅ
@@ -1455,54 +1067,44 @@ BYTEA           bytea           
     ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ
     ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.</P>
 
-    <h4><a name="4.27">4.27</a>) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ?
-    </h4>
-    <ul>
-    <li><i>contrib/pgcrypto</i> ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÆÕÎËÃÉÊ ÛÉÆÒÏ×ÁÎÉÑ ÄÌÑ
-    ÉÓÐÏÌØÚÏ×ÁÎÉÑ × <small>SQL</small> ÚÁÐÒÏÓÁÈ.</li>
-    <li>äÌÑ ÛÉÆÒÏ×ÁÎÉÑ ÐÅÒÅÄÁ×ÁÅÍÙÈ ÄÁÎÎÙÈ ÏÔ ËÌÉÅÎÔÁ Ë ÓÅÒ×ÅÒÕ, ÎÁ ÓÅÒ×ÅÒÅ
-    × ÆÁÊÌÅ <i>postgresql.conf</i>, ÏÐÃÉÑ <i>ssl</i> ÄÏÌÖÎÁ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÁ
-    × <i>true</i>, × ÆÁÊÌÅ <i>pg_hba.conf</i> ÄÏÌÖÎÁ ÂÙÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÁÑ
-    ÚÁÐÉÓØ <i>host</i> ÉÌÉ <i>hostssl</i> É ÎÁ ÓÔÏÒÏÎÅ ËÌÉÅÎÔÁ <i>sslmode</i>
-    ÎÅ ÄÏÌÖÅΠÂÙÔØ ÚÁÐÒÅݣΠÞÅÒÅÚ <i>disable</i>. (úÁÍÅÔÉÍ, ÞÔÏ ÔÁËÖÅ
-    ×ÏÚÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅÚÁ×ÉÓÉÍÙÈ ×ÎÅÛÎÉÈ ÛÉÆÒÕÀÝÉÈ ÔÒÁÎÓÐÏÒÔÏ×, ÔÁËÉÈ
-    ËÁË stunnel ÉÌÉ ssh, ×ÍÅÓÔÏ ÓÏÂÓÔ×ÅÎÎÙÈ SSL ÓÏÅÄÉÎÅÎÉÊ PostgreSQL).</li>
-    <li>ðÁÒÏÌÉ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Ë ÂÁÚÅ ÄÁÎÎÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ ÛÉÆÒÕÀÔÓÑ, ÐÒÉ
-    ÓÏÈÒÁÎÅÎÉÉ × ×ÅÒÓÉÉ 7.3. ÷ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÑÈ, ×Ù ÄÏÌÖÎÙ ÒÁÚÒÅÛÉÔØ
-    ÏÐÃÉÀ <i>PASSWORD_ENCRYPTION</i> × <i>postgresql.conf</i>.</li>
-    <li>óÅÒ×ÅÒ ÍÏÖÎÏ ÚÁÐÕÓÔÉÔØ, ÉÓÐÏÌØÚÕÑ ÛÉÆÒÏ×ÁÎÎÕÀ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ.</li>
-    </ul>
-    <HR>
-
-    <H2 align="center">òÁÓÛÉÒÅÎÉÑ PostgreSQL</H2>
-
-    <H4><A name="5.1">5.1</A>) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ.
-    ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × <I>psql</I>, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?</H4>
-
-    <P>ðÒÏÂÌÅÍÁ ÍÏÖÅÔ ÚÁËÌÀÞÁÔØÓÑ × ÎÅÓËÏÌØËÉÈ ×ÅÝÁÈ. ðÏÐÙÔÁÊÔÅÓØ ÓÐÅÒ×Á
-    ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ×ÁÛÕ ÆÕÎËÃÉÀ × ÏÔÄÅÌØÎÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ.</P>
-
-    <H4><A name="5.2">5.2</A>) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ
-     ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?</H4>
 
-    <P>ïÔÐÒÁרÔÅ ×ÁÛÉ ÒÁÓÛÉÒÅÎÉÑ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <I>pgsql-hackers</I>
-    É ÏÎÉ ÐÏ ×ÏÚÍÏÖÎÏÓÔÉ ÂÕÄÕÔ ÐÏÍÅÝÅÎÙ × ÐÏÄËÁÔÁÌÏÇ <I>contrib/</I>.</P>
+    <H3><A name="4.20">4.20</a>) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?</H3>
 
-    <H4><A name="5.3">5.3</A>) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ
-    ÚÁÐÉÓØ?</H4>
-
-    <P>÷ ×ÅÒÓÉÑÈ PostgreSQL, ÎÁÞÉÎÁÑ Ó 7.3, ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÔÁÂÌÉÃÙ
-    ÐÏÌÎÏÓÔØÀ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ × C, PL/PgSQL É SQL. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ ×
-    òÕËÏ×ÏÄÓÔ×Å ðÒÏÇÒÁÍÍÉÓÔÁ. ðÒÉÍÅÒ ×ÏÚ×ÒÁÝÁÀÝÅÊ ÔÁÂÌÉÃÕ ÆÕÎËÃÉÉ,
-    ÎÁÐÉÓÁÎÎÏÊ ÎÁ C, ÍÏÖÎÏ ÎÁÊÔÉ × <i>contrib/tablefunc</i>.</P>
-
-    <H4><A name="5.4">5.4</A>) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ
-     ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?</H4>
-
-    <P>æÁÊÌÙ <I>Makefile</I> ÎÅ ÉÍÅÀÔ ÐÒÁ×ÉÌØÎÙÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÄÌÑ include
-    ÆÁÊÌÏ×. ÷Ù ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ <I>make clean</I> É ÚÁÔÅÍ <I>make</I>. 
-    åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ <SMALL>GCC</SMALL> ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ
-    <I>--enable-depend</I> × <I>configure</I> ÞÔÏÂÙ ÐÏÒÕÞÉÔØ ËÏÍÐÉÌÑÔÏÒÕ
-    Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ.</P>
+    <P>èÏÔÑ "ÒÅÐÌÉËÁÃÉÑ" -- ÜÔÏ ÅÄÉÎÙÊ ÔÅÒÍÉÎ, ÅÓÔØ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÅÈÎÏÌÏÇÉÊ
+    ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÐÌÉËÁÃÉÊ Ó ÒÁÚÎÙÍÉ ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÄÌÑ ËÁÖÄÏÊ.</P>
+    
+    <P>òÅÐÌÉËÁÃÉÑ Master/slave ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÏÄÉΠÇÌÁ×ÎÙÊ (master) ÓÅÒ×ÅÒ
+    ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ× ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, × ÔÏ ×ÒÅÍÑ ËÁË ÐÏÄÞÉΣÎÎÙÅ
+    (slave) ÓÅÒ×ÅÒÁ ÍÏÇÕÔ ÐÒÏÉÚ×ÏÄÉÔØ ÔÏÌØËÏ ÚÁÐÒÏÓÙ
+    ÞÔÅÎÉÑ/<SMALL>SELECT</SMALL>.  îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ
+    master-slave × PostgreSQL Ñ×ÌÑÅÔÓÑ
+    <A href="http://gborg.postgresql.org/project/slony1/projdisplay.php">
+    Slony-I</A>.</P>
+    
+    <P>òÅÐÌÉËÁÃÉÑ Multi-master ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ
+    ÎÁ ÎÅÓËÏÌØËÉÈ, ÒÅÐÌÉÃÉÒÕÅÍÙÈ ÄÒÕÇ Ó ÄÒÕÇÏÍ ËÏÍÐØÀÅÔÒÁÈ.  üÔÁ ÏÓÏÂÅÎÎÏÓÔØ
+    ÔÁËÖÅ ÐÒÉ×ÏÄÉÔ Ë ÐÏÔÅÒÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ, ÐÏÔÏÍÕ ÞÔÏ ÎÅÏÂÈÏÄÉÍÁ
+    ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÉÚÍÅÎÅÎÉÊ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÓÅÒ×ÅÒÁÍÉ.  îÁÉÂÏÌÅÅ
+    ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÔÁËÏÊ ÒÅÐÌÉËÁÃÉÉ × PostgreSQL Ñ×ÌÑÅÔÓÑ
+    <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</A>.
+    
+    <H3><A name="4.21">4.21</A>) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ
+    ÒÁÓÐÏÚÎÁÀÔÓÑ × × Íϣ͠ÚÁÐÒÏÓÅ?</H3>
+    
+    <P>îÁÉÂÏÌÅÅ ÞÁÓÔÏ ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ÉÚ-ÚÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ×
+    ÉÍÅÎÉ ÔÁÂÌÉÃÙ ÉÌÉ ËÏÌÏÎËÉ ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃÙ. ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Ä×ÏÊÎÙÈ
+    ËÁ×ÙÞÅË, ÉÍÑ ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ (ËÏÔÏÒÙÅ ÎÁÚÙ×ÁÀÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÁÍÉ)
+    ÓÏÈÒÁÎÑÀÔÓÑ × <A href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
+    ÒÅÇÉÓÔÒÏ-ÚÁ×ÉÓÉÍÏÍ ×ÉÄÅ</A>; ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ
+    Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ, ËÏÇÄÁ ÕËÁÚÙ×ÁÅÔÅ ÜÔÉ ÉÍÅÎÁ × ÚÁÐÒÏÓÅ. îÅËÏÔÏÒÙÅ
+    ÉÎÔÅÒÆÅÊÓÙ, ÔÁËÉÅ ËÁË pgAdmin, ×Ï ×ÒÅÍÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃÙ ÄÏÂÁ×ÌÑÀÔ
+    Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ Á×ÔÏÍÁÔÉÞÅÓËÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ
+    ÒÁÓÐÏÚÎÁ×ÁÌÉÓØ ×Ù ÄÏÌÖÎÙ ÓÌÅÄÏ×ÁÔØ ÏÄÎÏÍÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÐÒÁ×ÉÌ:
+    <UL>
+    <LI>éÚÂÅÇÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃ</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÔØ × ÉÄÅÎÔÉÆÉËÁÔÏÒÁÈ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ ÎÉÖÎÅÇÏ ÒÅÇÉÓÔÒÁ</LI>
+    <LI>éÓÐÏÌØÚÏ×ÁÔØ Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× × ÚÁÐÒÏÓÁÈ</LI>
+    </UL>
+    
   </BODY>
 </HTML>