]> granicus.if.org Git - postgresql/commitdiff
Update Russian FAQ.
authorBruce Momjian <bruce@momjian.us>
Fri, 3 Jun 2005 18:17:07 +0000 (18:17 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 3 Jun 2005 18:17:07 +0000 (18:17 +0000)
Viktor Vislobokov

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

index 6089d60613751a2af714e9992005e44edaeaff36..f2fd1ccd7b63b062c0ced1b6a100392699d79acc 100644 (file)
@@ -1,12 +1,12 @@
 
                Otvety na chasto zadavaemye voprosy po PostgreSQL
                                        
-   Data poslednego obnovleniya: Ponedel'nik 14 fevralya 23:35:09 EST 2005
+   Data poslednego obnovleniya: Ponedel'nik 30 maya 09:11:03 EDT 2005
    
    Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
    (pgman@candle.pha.pa.us)
    
-   Perevel na russkij: Viktor Vislobokov (corochoone@perm.ru)
+   Pereviol na russkij: Viktor Vislobokov (corochoone@perm.ru)
    
    Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
    http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
@@ -30,6 +30,7 @@
    1.10) Kak nauchit'sya SQL?
    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
                                       
@@ -70,8 +71,8 @@
    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.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
-   kakom-libo zaprose?
+   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.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.12) CHto takoe OID? CHto takoe TID?
+   4.12) CHto takoe OID? CHto takoe CTID?
    4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
    AllocSetAlloc()"?
    4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
-   4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
-   "invalid large obj descriptor"?
-   4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
+   4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
    tekuschee vremya?
-   4.17) Kak vypolnit' vneshnee svyazyvanie?
-   4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
-   4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
-   4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts'
-   k vremennym tablicam v funkciyah PL/PgSQL?
-   4.21) 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 stroku tablicy?
-   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?
      _________________________________________________________________
    
                               Obschie voprosy
                                       
-    1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
-    
+  1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
+  
    PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
    chasto govoryat prosto Postgres.
    
    Podrobnosti smotrite v FAQ dlya razrabotchikov,
    http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html
    
-    1.2) Kakovy avtorskie prava na PostgreSQL?
-    
+  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
    Sistema Upravleniya Bazami Dannyh PostgreSQL
    
    Portions copyright (c) 1996-2005, PostgreSQL Global Development Group
-   Portions Copyright (c) 1994-6 Regents of the University of California
+   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.
    
-    1.3) Na kakih 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.
    
-   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.
    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?
-    
-   Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL
-   ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem
-   osnovnom sajte.
+  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?
-    
+  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/.
    Spisok kommercheskoj podderzhki kompanij dostupen na
    http://techdocs.postgresql.org/companies.php.
    
-    1.6) Kak mne soobschit' ob oshibke?
-    
+  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.
    
    Takzhe prover'te nalichie bolee svezhej versii PostgreSQL na nashem
-   FTP sajte ftp://ftp.PostgreSQL.org/pub.
+   FTP sajte ftp://ftp.PostgreSQL.org/pub/.
    
-    1.7) Kakaya poslednyaya versiya?
-    
-   Poslednij vypusk PostgreSQL - `eto versiya 8.0.1
+  1.7) Kakaya poslednyaya versiya?
+  
+   Poslednij vypusk PostgreSQL - `eto versiya 8.0.2
    
-   My planiruem vypuskat' novye versii kazhdye 10-12 mesyacev.
+   My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
+   versii kazhdye neskol'ko mesyacev.
    
-    1.8) Kakaya dokumentaciya imeetsya v nalichii?
-    
+  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
    
    Suschestvuet dve knigi po PostgreSQL dostupnye po adresam
    http://www.PostgreSQL.org/docs/books/awbook.html i
-   http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL,
-   kotorye mozhno kupit' dostupen po adresu
+   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.
    
    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/books/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) Kak prisoedinitsya k komande razrabotchikov?
-    
-   Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i
-   prochtite FAQ i dokumentaciyu dlya 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.12) 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.
    
    Proizvoditel'nost'
           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. V sravnenii s MySQL ili linejnoj
-          SUBD, my bystree, kogda pol'zovatelej mnogo, a takzhe na
-          slozhnyh zaprosah i pri 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.
+          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
           opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena
           vyshe.
           
+  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.)
+     _________________________________________________________________
+   
                  Voprosy pol'zovatelej po klientskoj chasti
                                       
-    2.1) Kakie interfejsy est' dlya PostgreSQL?
-    
+  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
    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?
-    
+  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, PHP http://www.php.net yavlyaetsya neplohim
    interfejsom.
    
-   V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i CGI.pm ili mod_perl.
-   
-    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
-    
-   Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
-   Oni vklyuchayut PgAdmin III (http://www.pgadmin.org), PgAccess
-   (http://www.pgaccess.org), RHDB Admin
-   (http://sources.redhat.com/rhdb/), TORA (http://www.globecom.net/tora/
-   chastichno kommercheskoe PO) i Rekall (
-   http://www.rekallrevealed.org/). Takzhe est' PhpPgAdmin (
-   http://phppgadmin.sourceforge.net/) - interfejs k PostgreSQL,
-   osnovannyj na Web.
+   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) 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. 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?
-    
+  3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti?
+  
    Suschestvuet tri glavnyh oblasti, kotorye potencial'no mogut
    uvelichit' proizvoditel'nost':
    
           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?
-    
+  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.
    
-   Dlya predostavleniya bolee detal'noj informacii razrabotchikam servera
-   pri otladke kakoj-libo problemy dolzhny pol'zovat'sya sleduyuschie
-   instrukcii.
-   
-   Takim zhe obrazom mozhno proizvodit' i otladku severa, esli on
-   rabotaet nepravil'no. 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.
-   
-   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 simvolami,
-   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 otladchik 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.
-   
-   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.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
-    pytayus' podklyuchit'sya k baze?
-    
+  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?
-    
+  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.4 do 7.4.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.3 na 7.4) chasto menyaetsya
    vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya
    bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda
    mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska.
    
-    3.7) 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) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
-    Proizvol'noj stroki?
-    
+  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.
+   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.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.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
    mnogie iz operatorov SELECT neobhodimyh dlya polucheniya informacii iz
    sistemnyh tablic bazy dannyh.
    
-    4.3) Kak izmenit' tip dannyh kolonki?
-    
+  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.
    
     ALTER TABLE tab DROP COLUMN old_col;
     COMMIT;
 
-    4.4) Kakovy maksimal'nye razmery dlya strok v tablice, 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 bazy na 32 TB)
    byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
    uvelichen do 32k.
    
-    4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
-    dannyh iz obychnogo tekstovogo fajla?
-    
+  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.
    
    Znacheniya NULL hranyatsya kak bitovye karty i po`etomu oni zanimayut
    ochen' malo mesta.
    
-    4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi
-    indeksy?
-    
-   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 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.
+  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
 
    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:
    esli tipy dannyh tochno ne sovpadali s indeksnymi tipami kolonok. `Eto
    osobenno kasalos' int2, int8 i numeric indeksov kolonok.
    
-    4.7) 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.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.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.
    esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
     CREATE INDEX tabindex ON tab (lower(col));
 
-    4.9) 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.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
-    
+  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
    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
    znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye
    zdes', imeyut shodnye harakteristiki proizvoditel'nosti.
    
-    4.11.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 (
    Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva
    posvyaschennoj create_sequence.
    
-    4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
-    
+  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
     execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
     new_id = execute("SELECT currval('person_id_seq')");
 
-    4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
-    nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
-    
+  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?
-    
+  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.12) CHto takoe OID? CHto takoe TID?
-    
+  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
    obrazom men'she podverzheny perepolneniyu. Dlya hraneniya znachenij
    8-mi bajtnoj posledovatel'nosti dostupen tip SERIAL8.
    
-   TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
-   blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak
-   stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya
-   indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi.
+   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.13) 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:
    klientom, potomu chto backend vozvraschaet slishkom bol'shoj ob"em
    dannyh, popytajtes' vypolnit' `etu komandu pered zapuskom klienta.
    
-    4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
-    
+  4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
+  
    Iz psql, naberite SELECT version();
    
-    4.15) 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.16) 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 );
 
-    4.17) 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 *
@@ -888,8 +822,8 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
    neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah.
    Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya.
    
-    4.18) 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
@@ -900,14 +834,14 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
    soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat'
    informaciyu iz nih.
    
-    4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
-    
+  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.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts' k
-    vremennym tablicam v funkciyah PL/PgSQL?
-    
+  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,
@@ -917,50 +851,21 @@ 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.21) 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 sistemnyh tablicah.
-     * 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 stroku tablicy?
-    
-   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.
index 768271eb848a00e0dbcd5536097d8d26845c7cde..a4fd9ffb4c223c4058f40de5b662a38d75680f12 100644 (file)
   <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
     <H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
 
-    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÏÎÅÄÅÌØÎÉË 14 ÆÅ×ÒÁÌÑ 23:35:09 EST 2005</P>
+    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÏÎÅÄÅÌØÎÉË 30 ÍÁÑ 09:11:03 EDT 2005</P>
 
     <P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑΠ(Bruce Momjian) (<A href=
     "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
     </P>
-    <P>ðÅÒÅ×ÅÌ ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (<A href=
+    <P>ðÅÒÅף̠ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (<A href=
     "mailto:corochoone@perm.ru">corochoone@perm.ru</A>)<BR>
     </P>
 
@@ -43,6 +43,7 @@
      <A href="#1.11">1.11</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?<BR>
      <A href="#1.12">1.12</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
     <SMALL>óõâä</SMALL>?<BR>
+     <A href="#1.13">1.13</A>) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?<BR>
     
 
     <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
@@ -87,8 +88,9 @@
      <A href="#4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
      É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
      ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?<BR>
-     <A href="#4.9">4.9</A>) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ
-     <SMALL>NULL</SMALL> × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?<BR>
+     <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.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?<BR>
     ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
     ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?<BR>
      <A href="#4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
-    <SMALL>TID</SMALL>?<BR>
+    <SMALL>CTID</SMALL>?<BR>
      <A href="#4.13">4.13</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
     exhausted in AllocSetAlloc()"</I>?<BR>
      <A href="#4.14">4.14</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
     ÚÁÐÕÝÅÎÁ?<BR>
-     <A href="#4.15">4.15</A>) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ
-     Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"invalid large obj descriptor"</I>?<BR>
-     <A href="#4.16">4.16</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
+     <A href="#4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
      ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?<BR>
-     <A href="#4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?<BR>
-     <A href="#4.18">4.18</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
+     <A href="#4.16">4.16</A>) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?<BR>
+     <A href="#4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
      ÂÁÚ ÄÁÎÎÙÈ?<BR>
-     <A href="#4.19">4.19</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?<BR>
-     <A href="#4.20">4.20</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "missing oid",
-     ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?<BR>
-     <A href="#4.21">4.21</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>
+
     <HR>
 
     <H2 align="center">ïÂÝÉÅ ×ÏÐÒÏÓÙ</H2>
 
-    <H4><A name="1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?</H4>
+    <H3><A name="1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?</H3>
 
     <P>PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ <I>Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ)</I>,
     ÔÁËÖÅ ÞÁÓÔÏ ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ <I>Postgres</I>.</P>
     http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html</A>
     </P>
 
-    <H4><A name="1.2">1.2</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?</H4>
+    <H3><A name="1.2">1.2</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?</H3>
 
     <P>PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ
     ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
     <P>óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL</P>
 
     <P>Portions copyright (c) 1996-2005, PostgreSQL Global Development
-    Group Portions Copyright (c) 1994-6 Regents of the University of
+    Group Portions Copyright (c) 1994-1996 Regents of the University of
     California</P>
 
     <P>ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ
     "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø
     óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.</P>
 
-    <H4><A name="1.3">1.3</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?</H4>
+    <H3><A name="1.3">1.3</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?</H3>
 
     <P>ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ
     ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË
     ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL
     Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.</P>
 
-    <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) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ
     <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.4">1.4</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.5">1.5</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?</H4>
+    <H3><A name="1.5">1.5</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?</H3>
 
     <P>óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
     ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ
     ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ ÐÏ 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.6">1.6</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?</H4>
+    <H3><A name="1.6">1.6</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?</H3>
     
     <P>ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ ×
     PostgreSQL ÐÏ ÁÄÒÅÓÕ:
-    <A href="http://www.postgresql.org/support/submitbug">
+    <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>
+    FTP ÓÁÊÔÅ <A href="ftp://ftp.postgresql.org/pub/">
+    ftp://ftp.PostgreSQL.org/pub/</A>.
     
 
-    <H4><A name="1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?</H4>
+    <H3><A name="1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?</H3>
 
-    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.1</P>
+    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.2</P>
 
-    <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ 10-12 ÍÅÓÑÃÅ×.</P>
+    <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ,
+    Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.</P>
 
-    <H4><A name="1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?</H4>
+    <H3><A name="1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?</H3>
 
     <P>PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï,
     ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ
 
     <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, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ ÄÏÓÔÕÐÅΠÐÏ ÁÄÒÅÓÕ
-     <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>
+    É <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>
 
-    <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://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/books/awbook.html">http://www.PostgreSQL.org/docs/books/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>
+    <H3><A name="1.10">1.10</A>) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?</H3>
 
-    <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>
-
-    <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>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?</H4>
+    åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ <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>äÌÑ ÎÁÞÁÌÁ, ÓËÁÞÁÊÔÅ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× É ÐÒÏÞÔÉÔÅ
-    FAQ É ÄÏËÕÍÅÎÔÁÃÉÀ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ× PostgreSQL ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ ÉÌÉ ×
-    ÄÉÓÔÒÉÂÕÔÉ×Å. úÁÔÅÍ, ÐÏÄÐÉÛÉÔÅÓØ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ <I>pgsql-hackers</I> É
-    <I>pgsql-patches</I>. äÁÌÅÅ, ÏÔÐÒÁ×ÌÑÊÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ (patches) ×ÙÓÏËÏÇÏ
-    ËÁÞÅÓÔ×Á × ÓÐÉÓÏË pgsql-patches.</P>
+    <H3><A name="1.11">1.11</A>) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?</H3>
 
-    <P>óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÎÙÊ ÓÐÉÓÏË ÌÀÄÅÊ, ËÏÔÏÒÙÊ ÉÍÅÀÔ ÐÒÉ×ÅÌÅÇÉÀ
-    ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ × <SMALL>CVS</SMALL> ÁÒÈÉ× PostgreSQL. ëÁÖÄÙÊ
-    ÉÚ ÜÔÉÈ ÌÀÄÅÊ × Ó×ÏÅ ×ÒÅÍÑ ÏÔÐÒÁ×ÉÌ ÔÁË ÍÎÏÇÏ ×ÙÓÏËÏËÁÞÅÓÔ×ÅÎÎÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ,
-    ÞÔÏ ÉÈ ÂÙÌÏ ÎÅ×ÏÚÍÏÖÎÏ ÏÓÔÁ×ÉÔØ ÂÅÚ ×ÎÉÍÁÎÉÑ É ÏÎÉ ÂÙÌÉ ÕÄÏÓÔÏÅÎÙ
-    ÐÒÅ×ÉÌÅÇÉÉ ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ, É ÍÙ Õ×ÅÒÅÎÙ, ÞÔÏ ÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ, ËÏÔÏÒÙÅ
-    ÏÎÉ ×ÎÅÓÕÔ ÂÕÄÕÔ ×ÙÓÏËÏÇÏ ËÁÞÅÓÔ×Á.</P>
+    <P>óÍÏÔÒÉÔÅ <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
+    FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</A>.</P>
 
-    <H4><A name="1.12">1.12</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
-    <SMALL>óõâä</SMALL>?</H4>
+    
+    <H3><A name="1.12">1.12</A>) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
+    <SMALL>óõâä</SMALL>?</H3>
 
     <P>
     óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ:
 
       <DD>ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ
       óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ,
-      × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. ÷ ÓÒÁ×ÎÅÎÉÉ Ó MySQL ÉÌÉ ÌÉÎÅÊÎÏÊ
-      óõâä, ÍÙ ÂÙÓÔÒÅÅ, ËÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÍÎÏÇÏ, Á ÔÁËÖÅ ÎÁ ÓÌÏÖÎÙÈ
-      ÚÁÐÒÏÓÁÈ É ÐÒÉ ÞÔÅÎÉÉ/ÚÁÐÉÓÉ ÚÁÇÒÕÚËÉ ÚÁÐÒÏÓÁ. MySQL ÂÙÓÔÒÅÅ ÄÌÑ ÐÒÏÓÔÙÈ
-      SELECT ÚÁÐÒÏÓÏ×, ×ÙÐÏÌÎÑÅÍÙÈ ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ.
-      é ÒÁÚÕÍÅÅÔÓÑ, MySQL ÎÅ ÉÍÅÅÔ ËÁËÉÈ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÅÊ ÉÚ
-      ÐÅÒÅÞÉÓÌÅÎÙÈ ×ÙÛÅ, × ÓÅËÃÉÉ <I>÷ÏÚÍÏÖÎÏÓÔÉ</I>. 
-      íÙ ÄÅÌÁÅÍ ÕÐÏÒ ÎÁ ÎÁÄÅÖÎÏÓÔØ É ÒÁÓÛÉÒÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÎÏ ÍÙ ÔÁËÖÅ
-      ÐÒÏÄÏÌÖÁÅÍ Õ×ÅÌÉÞÉ×ÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ Ó ËÁÖÄÙÍ ×ÙÐÕÓËÏÍ. <BR>
+      × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ
+      ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä.
       <BR>
       </DD>
 
       </DD>
     </DL>
 
+    <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>
 
-    <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
+    <HR>
 
-    <H4><A name="2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?</H4>
+    <H3 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H3>
+
+    <H3><A name="2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?</H3>
 
     <P>õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ <small>C</small> É ×ÓÔÒÏÅÎÎÙÊ
     (embedded) <small>C</small> ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ
     × ÓÅËÃÉÉ <i>Drivers/Interfaces</I>, Á ÔÁËÖÅ ÞÅÒÅÚ ÐÏÉÓË × éÎÔÅÒÎÅÔ.</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.
-    ïÎÉ ×ËÌÀÞÁÀÔ PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
-    PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.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.rekallrevealed.org/">
-    http://www.rekallrevealed.org/</A>). ôÁËÖÅ ÅÓÔØ
-    PhpPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
-    http://phppgadmin.sourceforge.net/</A>) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL,
-    ÏÓÎÏ×ÁÎÎÙÊ ÎÁ Web.</P>
+    <P>÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm
+    ÉÌÉ mod_perl.</P>
+
+    <H3><A name="2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
+    ÐÏÌØÚÏ×ÁÔÅÌÑ?</H3>
+
+    <P>äÁ, ÐÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × <a href="http://techdocs.postgresql.org/guides/GUITools">
+    http://techdocs.postgresql.org/guides/GUITools</A>.</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>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
-    ËÏÍÐØÀÔÅÒÏ×?</H4>
+    <H3><A name="3.2">3.2</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ
+    ËÏÍÐØÀÔÅÒÏ×?</H3>
 
     <P>ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ
     ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ
     host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ <I>$PGDATA/pg_hba.conf</I> É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ
     ÓÅÒ×ÅÒ.</P>
 
-    <H4><A name="3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
-     ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H4>
+    <H3><A name="3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
+     ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H3>
 
     <P>óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ
     Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:</P>
     </DD>
     </DL>
 
-    <H4><A name="3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ ×
-    ÎÁÌÉÞÉÉ?</H4>
+    <H3><A name="3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ ×
+    ÎÁÌÉÞÉÉ?</H3>
 
     <P>åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ
     ÎÁ <code>log_*</code>, ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ
     É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ
     É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
     
-    <P><B>äÌÑ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÂÏÌÅÅ ÄÅÔÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÒÁÚÒÁÂÏÔÞÉËÁÍ
-    ÓÅÒ×ÅÒÁ ÐÒÉ ÏÔÌÁÄËÅ ËÁËÏÊ-ÌÉÂÏ ÐÒÏÂÌÅÍÙ ÄÏÌÖÎÙ ÐÏÌØÚÏ×ÁÔØÓÑ
-    ÓÌÅÄÕÀÝÉÅ ÉÎÓÔÒÕËÃÉÉ.</B></P>
-    
-    <P>ôÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ ÍÏÖÎÏ ÐÒÏÉÚ×ÏÄÉÔØ É ÏÔÌÁÄËÕ ÓÅ×ÅÒÁ, ÅÓÌÉ ÏÎ
-    ÒÁÂÏÔÁÅÔ ÎÅÐÒÁ×ÉÌØÎÏ. ÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ <I>configure</I> Ó
-    ÏÐÃÉÅÊ --enable-cassert, ÍÎÏÇÉÅ ×ÙÚÏ×Ù <I>assert()</I> ÐÏÚ×ÏÌÑÀÔ
-    ÏÔÓÌÅÖÉ×ÁÔØ ÒÁÂÏÔÕ backend ÐÒÏÃÅÓÓÁ É ÏÓÔÁÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ ÐÒÉ
-    ×ÏÚÎÉËÎÏ×ÅÎÉÉ ËÁËÉÈ-ÌÉÂÏ ÎÅÏÖÉÄÁÎÎÏÓÔÅÊ.</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>, ÉÓÐÏÌØÚÕÑ <CODE>SELECT pg_backend_pid()</CODE>.
-    éÓÐÏÌØÚÕÊÔÅ ÏÔÌÁÄÞÉË ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë <I>postgres</I> <SMALL>PID</SMALL>.
-    ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ × ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ
-    ÉÚ <I>psql</I>. åÓÌÉ
-    ×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ ÚÁÐÕÓËÁ <I>postgres</I>, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ
-    PGOPTIONS="-W n", É ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ <I>psql</I>. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ
-    Ë ÚÁÄÅÒÖËÅ ÐÒÏÃÅÓÓÁ ÚÁÐÕÓËÁ ÎÁ <I>n</I> ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ
-    ×Ù ÍÏÖÅÔÅ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÃÅÓÓÕ ÏÔÌÁÄÞÉË, ÕÓÔÁÎÏ×ÉÔØ ÌÀÂÙÅ ÔÏÞËÉ
-    ÐÒÅÒÙ×ÁÎÉÑ É ÐÒÏÄÏÌÖÉÔØ ÚÁÐÕÓË.</P>
-
-    <P>÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ
-    ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ.
-    æÁÊÌÙ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ
-    <I>pgsql/data/base/dbname</I>. æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ
-    ÂÕÄÅÔ ÐÏÍÅÝÅΠנÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ
-    ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó <I>-DLINUX_PROFILE</I>.</P>
-
-    <H4><A name="3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
-    many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H4>
+
+    <H3><A name="3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
+    many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H3>
 
     <P>÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ 100 ÓÅÓÓÉÊ
     ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÄÌÑ
     É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ <I>postmaster</I>.</P>
      
 
-    <H4><A name="3.6">3.6</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
-    ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?</H4>
+    <H3><A name="3.6">3.6</A>) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
+    ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?</H3>
     
     <P>òÁÚÒÁÂÏÔÞÉËÉ PostgreSQL ÄÅÌÁÀÔ ÔÏÌØËÏ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÍÅÖÄÕ
-    ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ
+    ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4.0 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ
     ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ
     (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.3 ÎÁ 7.4) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ
     ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉàɠÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ
     ÉÓÐÏÌØÚÏ×ÁÎÉÑ dump/restore. ëÏÍÍÅÎÔÁÒÉÉ Ë ×ÙÐÕÓËÕ ÇÏ×ÏÒÉÔ ËÏÇÄÁ ÍÏÖÎÏ
     ÉÓÐÏÌØÚÏ×ÁÔØ <i>pg_upgrade</i> ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.</P>
 
-    <H4><A name="3.7">3.7</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>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
-     ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?</H4>
+    <H3><A name="4.1">4.1</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
+    ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?</H3>
 
     <P>äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï
-    ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL> ÉÓÐÏÌØÚÕÊÔÅ <SMALL>LIMIT</SMALL>.
+    ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL> ÉÓÐÏÌØÚÕÊÔÅ <SMALL>LIMIT</SMALL>.</P>
     åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó <SMALL>ORDER BY</SMALL>,
     ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅΠɠÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ
     ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL>,
     ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É <SMALL>FETCH</SMALL>.</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>
+</PRE>
 
-    <H4><A name="4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
+
+    <H3><A name="4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
     ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ,
-    ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?</H4>
+    ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?</H3>
 
     <P>þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × <I>psql</I>, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt.
     ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × <I>psql</I> ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?.
     ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉàÂÁÚÙ ÄÁÎÎÙÈ.</P>
 
 
-    <H4><A name="4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉРÄÁÎÎÙÈ ËÏÌÏÎËÉ?</H4>
+    <H3><A name="4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉРÄÁÎÎÙÈ ËÏÌÏÎËÉ?</H3>
 
     <P>÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ
     ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P>
     COMMIT;
 </PRE>
 
-    <H4><A name="4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
-    ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?</H4>
+    <H3><A name="4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
+    ÔÁÂÌÉàɠÂÁÚÙ ÄÁÎÎÙÈ?</H3>
 
     <P>óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:</P>
 <BLOCKQUOTE>
 <TABLE>
-<TBODY>
 <TR>
   <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?</TD>
   <TD>ÎÅÏÇÒÁÎÉÞÅΠ(ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)</TD>
   <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?</TD>
   <TD>ÎÅÏÇÒÁÎÉÞÅÎÏ</TD>
 </TR>
-</TBODY>
 </TABLE>
 </BLOCKQUOTE>
 <BR>
     ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ
     Õ×ÅÌÉÞÅΠÄÏ 32k.</P>
 
-    <H4><A name="4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
-     ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?</H4>
+    <H3><A name="4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
+     ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?</H3>
 
     <P>óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ
     ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.</P>
     ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ.
     </P>
 
-    <H4><A name="4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
-     ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?</H4>
+    <H3><A name="4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
+     ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?</H3>
 
-    <P>éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉ. ïÎÉ
+    <P>éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ
     ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ
     ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ,
     ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕРˠÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ
     É × ÜÔÏÍ ÓÌÕÞÁÅ ÉÎÄÅËÓ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ
     ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ. æÁËÔÉÞÅÓËÉ MAX() É MIN() ÎÅ
     ÉÓÐÏÌØÚÕÀÔ ÉÎÄÅËÓÙ, ÎÏ ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÚÁÐÒÏÓÏ× Ó
-    <SMALL>ORDER BY</SMALL> É <SMALL>LIMIT</SMALL>:</P>
-<pre>
+    <SMALL>ORDER BY</SMALL> É <SMALL>LIMIT</SMALL>:
+<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>
     ÅÓÌÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÏÞÎÏ ÎÅ ÓÏ×ÐÁÄÁÌÉ Ó ÉÎÄÅËÓÎÙÍÉ ÔÉÐÁÍÉ ËÏÌÏÎÏË. üÔÏ
     ÏÓÏÂÅÎÎÏ ËÁÓÁÌÏÓØ int2, int8 É numeric ÉÎÄÅËÓÏ× ËÏÌÏÎÏË.</P>
 
-    <H4><A name="4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
-     ÍÏÊ ÚÁÐÒÏÓ?</H4>
+    <H3><A name="4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
+     ÍÏÊ ÚÁÐÒÏÓ?</H3>
 
     <P>óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ <SMALL>EXPLAIN</SMALL>.</P>
 
 
-    <H4><A name="4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
+    <H3><A name="4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
      É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
-     ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?</H4>
+     ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?</H3>
 
     <P>ïÐÅÒÁÔÏÒ <I>~</I> ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ
     <I>~*</I> ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ
     WHERE lower(col) = 'abc';
 </PRE>
 
-<P>    üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
-    ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏΠÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:</P>
+    üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
+    ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏΠÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
 <PRE>
     CREATE INDEX tabindex ON tab (lower(col));
 </PRE>
 
-    <H4><A name="4.9">4.9</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>
+    <SMALL>IS NOT NULL</SMALL>, ËÁË ÚÄÅÓØ:</P>
+<PRE>
+   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>
 
-    <H4><A name="4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
-     ÔÉÐÁÍÉ?</H4>
+<PRE>
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL);
+</PRE>   
+
+    <H3><A name="4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
+     ÔÉÐÁÍÉ?</H3>
 <BLOCKQUOTE>
 <TABLE>
-<TBODY>
 <TR>
   <TH>ôÉÐ</TH>
   <TH>÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ</TH>
   <TD>char</TD>
   <TD>ÏÄÉΠÓÉÍ×ÏÌ</TD>
 </TR>
-</TBODY>
 </TABLE>
 </BLOCKQUOTE>
 
     <P>ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ
     ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ).
     ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ
-    ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÜÔÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÁËÖÅ ÐÏÄÄÁÀÔÓÑ ÓÖÁÔÉÀ
-    ÉÌÉ ÍÏÇÕÔ ÂÙÔØ ÓÏÈÒÁÎÅÎÙ ÎÅ × ÓÔÒÏËÏÍ ×ÉÄÅ ÞÅÒÅÚ <SMALL>TOAST</SMALL>,
+    ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ,
     ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ,
     ÞÅÍ ÏÖÉÄÁÌÏÓØ.</P>
 
     ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ <SMALL>NULL</SMALL> ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ
     ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
 
-    <H4><A name="4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ
-    serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?</H4>
+    <H3><A name="4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ
+    serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?</H3>
 
     <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉРÄÁÎÎÙÈ <SMALL>SERIAL</SMALL>. ïÎ
     Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:</P>
     );
 </PRE>
 
-<P>    Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×: </P>
+    Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×: 
 <PRE>
     CREATE SEQUENCE person_id_seq;
     CREATE TABLE person ( 
     óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á
     ÐÏÓ×ÑÝÅÎÎÏÊ <I>create_sequence</I>. 
 
-    <H4><A name="4.11.2">4.11.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 Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ
 </PRE>
 
 
-    <H4><A name="4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
+    <H3><A name="4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
     ÉÓÐÏÌØÚÏ×ÁÎÉÅ <I>currval()</I> É <I>nextval()</I> ÐÒÉ×ÅÄÅÔ Ë
-    ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?</H4>
+    ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?</H3>
 
     <P>îÅÔ. <i>currval()</i> ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ
     ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.</P>
 
-    <H4><A name="4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
+    <H3><A name="4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
     ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
-    ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?</H4>
+    ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?</H3>
 
     <P>äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ
     ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ
     ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.</P>
 
 
-    <H4><A name="4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
-    <SMALL>TID</SMALL>?</H4>
+    <H3><A name="4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
+    <SMALL>CTID</SMALL>?</H3>
 
     <P>ëÁÖÄÁÑ, ÓÏÚÄÁ×ÁÅÍÁÑ × PostgreSQL ÔÁÂÌÉÞÎÁÑ ÓÔÒÏËÁ, ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ
     ÉÎÄÅÎÔÉÆÉËÁÔÏÒ <SMALL>OID</SMALL> ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÌÕÞÁÑ ËÏÇÄÁ
     O<SMALL>ID</SMALL>, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ <SMALL>SERIAL</SMALL>
     ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ
     ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
-    ÄÏÓÔÕÐÅΠÔÉР<SMALL>SERIAL8</SMALL>.</P>
+    ÄÏÓÔÕÐÅΠÔÉР<SMALL>SERIAL8</SMALL>.
 
-    <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ
-    ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. T<SMALL>ID</SMALL>
+    <P>C<SMALL>TID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ
+    ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. C<SMALL>TID</SMALL>
     ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ.
-    T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å
+    <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å
     ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.</P>
 
 
-    <H4><A name="4.13">4.13</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>ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ
     ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ.
     ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ,
     ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ.
 
-    <H4><A name="4.14">4.14</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.15">4.15</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.16">4.16</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
-     ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?</H4>
+    <H3><A name="4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
+     ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?</H3>
 
     <P>éÓÐÏÌØÚÕÊÔÅ <I>CURRENT_TIMESTAMP</I>:</P>
 <PRE>
 CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 </PRE>
 
-    <H4><A name="4.17">4.17</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?</H4>
+    <H3><A name="4.16">4.16</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?</H3>
 
     <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ,
     ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:</P>
@@ -1077,8 +1019,8 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
     <SMALL>RIGHT</SMALL> É <SMALL>FULL</SMALL> Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ
     Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ <SMALL>INNER</SMALL> Ó×ÑÚÙ×ÁÎÉÑ.</P>
 
-    <H4><A name="4.18">4.18</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
-     ÂÁÚ ÄÁÎÎÙÈ?</H4>
+    <H3><A name="4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
+     ÂÁÚ ÄÁÎÎÙÈ?</H3>
 
     <P>îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ.
     ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ
@@ -1089,14 +1031,16 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
     ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ
     ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.</P>
 
-    <H4><A name="4.19">4.19</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?</H4>
+    <H3><A name="4.18">4.18</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?</H3>
 
     <P>÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË,
      <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
      http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P>
 
-    <H4><A name="4.20">4.20</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "missing oid",
-     ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?</H4>
+
+    <H3><A name="4.19">4.19</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID ####
+     ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?</H3>
+     
     <P>PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉΠÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ
     ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ
     É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ
@@ -1106,53 +1050,26 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
     ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ
     ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.</P>
 
-    <h4><a name="4.21">4.21</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>ðÁÒÏÌÉ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Ë ÂÁÚÅ ÄÁÎÎÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ ÛÉÆÒÕÀÔÓÑ, ÐÒÉ
-    ÓÏÈÒÁÎÅÎÉÉ × ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃÁÈ.</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>.
+    
   </BODY>
 </HTML>