diff --git a/doc/FAQ_russian b/doc/FAQ_russian index ba7517250807dae315ef63107a34a1be9fbb0dad..a361767ccc57d3c6a85e617305cfd07a0f68aa26 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -1,23 +1,27 @@ Otvety na chasto zadavaemye voprosy po PostgreSQL - Data poslednego obnovleniya: Voskresen'e 18 iyunya 15:33:25 EDT 2006 + Data poslednego obnovleniya: Sreda 25 iyunya 23:54:14 EDT 2008 Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian) - (pgman@candle.pha.pa.us) + (bruce@monjian.us) - Pereviol na russkij: Viktor Vislobokov (admin@linuxshare.ru) + Pereviol na russkij: Viktor Vislobokov (admin@postgresql.ru.net) Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na - http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html. + http://www.postgresql.org/files/documentation/faqs/FAQ.html. + + Samuyu svezhuyu russkuyu versiyu dokumenta mozhno najti na + http://postgresql.ru.net/docs/FAQ_russian.html. Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti - na http://www.PostgreSQL.org/docs/faq/. + na http://www.postgresql.org/docs/faq/. _________________________________________________________________ Obschie voprosy - 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? CHto + takoe Postgres? 1.2) Kto upravlyaet PostgreSQL? 1.3) Kakovy avtorskie prava na PostgreSQL? 1.4) Na kakih platformah rabotaet PostgreSQL? @@ -31,7 +35,12 @@ 1.11) Kak nauchit'sya SQL? 1.12) Kak mne otpravit' ispravlenie ili prisoedinitsya k komande razrabotchikov? - 1.13) Kak sravnit' PostgreSQL s drugimi SUBD? + 1.13) Kak sravnit' PostgreSQL s drugimi SUBD? Mozhet li PostgreSQL + byt' vstroennoj? + 1.14) Budet li PostgreSQL rabotat' s poslednimi izmeneniyami, v raznyh + stranyh, kasayuschimisya dnevnogo vremeni? + 1.15) Kak mne otpisat'sya ot spiskov rassylki PostgreSQL? Kak + izbezhat' polucheniya dubliruyuschihsya soobschenij? Voprosy pol'zovatelej po klientskoj chasti @@ -71,8 +80,9 @@ 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 mne opredelit', chto znachenie polya ravno NULL v kakom-libo - zaprose? Mogu ya otsortirovat' polya NULL ili net? + 4.9) Kak mne opredelit', chto znachenie polya v kakom-libo zaprose + ravno NULL? Kak mne soedinit' vozmozhnye NULL? Mogu ya sortirovat' + 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? @@ -95,16 +105,17 @@ PL/PgSQL? 4.20) Kakie est' resheniya dlya replikacii? 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom - zaprose? + zaprose? Pochemu ne sohranyayutsya zaglavnye bukvy? _________________________________________________________________ Obschie voprosy - 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? CHto takoe + Postgres? - 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 proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). (Dlya + osobo lyubopytstvuyuschih kak proiznosit' "PostgreSQL", suschestvuet + audio-fajl). PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih @@ -116,7 +127,13 @@ 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 + http://www.postgresql.org/docs/faqs.FAQ_DEV.html + + Postgres -- `eto shiroko ispol'zuemoe sokraschenie dlya PostgreSQL. + Pervonachal'nym imenem proekta v Berkli bylo Postgres i `etot nik + teper' naibolee populyaren v razgovorah o PostgreSQL po sravneniyu s + drugimi. Esli vam trudno polnost'yu progovarivat' 'PostgreSQL', mozhno + prosto govorit' 'Postgres'. 1.2) Kto upravlyaet PostgreSQL? @@ -139,7 +156,7 @@ Sistema Upravleniya Bazami Dannyh PostgreSQL - Portions copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions copyright (c) 1996-2008, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California @@ -173,25 +190,26 @@ momentu vyhoda dannoj versii. PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows, - osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket + osnovannyh na NT, takih kak Win2000 SP4, WinXP i Win2003. Paket installyatora dostupen po adresu - http://pgfoundry.org/projects/pginstaller. Versii Windows, osnovannye + http://www.postgresql.org/download/windows. 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, i versiya dlya OS/2 (eComStation) na + http://developer.novell.com/wiki/index.php/Postgresql, 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.5) Gde mozhno vzyat' PostgreSQL? CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez - ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/. + ftp, ispol'zuya ftp://ftp.postgresql.org/pub/. 1.6) Kakaya versiya naibolee svezhaya? - Poslednij vypusk PostgreSQL - `eto versiya 8.1.4 + Poslednij vypusk PostgreSQL - `eto versiya 8.3.3 My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie versii kazhdye neskol'ko mesyacev. @@ -208,19 +226,19 @@ Freenode (irc.freenode.net). CHtoby podklyuchit'sya, vy mozhete 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 - servere EFNet. + suschestvuyut kanaly na ispanskom (#postgresql-es), francuzskom + (#postgresqlfr) i brazil'skom (#postgresql-br) yazykah. Takzhe + suschestvuet kanal po PostgreSQL na servere EFNet. Spisok kommercheskoj podderzhki kompanij dostupen na - http://techdocs.postgresql.org/companies.php. + http://www.postgresql.org/support/professional_support. 1.8) 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/. Na oshibki, uvedomlenie o kotoryh byli sdelany cherez special'nuyu formu ili otpravlennye v kakoj-libo spisok rassylki PostgreSQL, @@ -277,17 +295,18 @@ 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. + http://www.postgresql.org/docs. Suschestvuet dve knigi po PostgreSQL dostupnye po adresam 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. + dostupen po adresu http://www.postgresql.org/docs/books/. Krome togo, + po adresu + http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides + %2C_and_Documentation vy mozhete najti kollekciyu tehnicheskih statej, + posveschennyh PostgreSQL. Klient komandnoj stroki psql imeet neskol'ko komand \d dlya otobrazheniya informacii po tipam, operatoram, funkciyam, agregatam i @@ -298,12 +317,10 @@ 1.11) 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. + vyshe. Mnogim iz nashih pol'zovatelej takzhe nravitsya kniga The + Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. + Drugim nravitsya The Complete Reference SQL, Groff et al., + McGraw-Hill. Suschestvuet takzhe mnozhestvo prekrasnyh uchebnikov dostupnyh v online: @@ -317,7 +334,8 @@ Smotrite FAQ dlya razrabotchikov. - 1.13) Kak sravnit' PostgreSQL s drugimi SUBD? + 1.13) Kak sravnit' PostgreSQL s drugimi SUBD? Mozhet li PostgreSQL byt' + vstroennym? Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya: vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena. @@ -367,6 +385,44 @@ nash produkt bez ogranichenij, za isklyucheniem teh, chto opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena vyshe. + + PostgreSQL razrabatyvaetsya po arhitekture klient/server, kotoraya + trebuet otdel'nyh processov dlya kazhdogo klienta i servera, a takzhe + neskol'ko vspomogatel'nyh processov. Mnogie vstraivaemye arhitektury + mogut sootvetstvovat' takim trebovaniyam. Odnako, esli vasha + vstraivaemaya arhitektura trebuet server baz dannyh dlya zapuska + vnutri prikladnogo processa, vy ne mozhete ispol'zovat' Postgres i vam + luchshe by vybrat' dlya bazy dannyh kakoe-libo drugoe oblegchennoe + reshenie. + + 1.14) Budet li PostgreSQL rabotat' s poslednimi izmeneniyami, v raznyh + stranyh, kasayuschimisya dnevnogo vremeni? + + Izmeneniya v sohranenii dnevnogo vremeni v SSHA vklyucheny v + PostgreSQL versii 8.0.[4+] i vo vse sleduyuschie vypuski, naprimer v + 8.1. Izmeneniya po Kanade i Zapadnoj Avstralii vklyucheny v 8.0.[10+], + 8.1.[6+] i vse sleduyuschie vypuski. Vypuski PostgreSQL do 8.0 + ispol'zuyut informaciyu o sohranenii dnevnogo vremeni iz bazy dannyh + vremennyh zon v operacionnoj sisteme. + _________________________________________________________________ + + 1.15) Kak mne otpisat'sya ot spiskov rassylki PostgreSQL? Kak izbezhat' + polucheniya dubliruyuschih soobschenij? + + Stranica Majordomo na sajte PostgreSQL pozvolyaet podpisat'sya ili + otpisat'sya ot lyubogo iz spiskov rassylki PostgreSQL. (Vam mozhet + ponadobitsya vash parol' dlya Majordomo, kotoryj otpravlyaetsya na + vash E-mail, chtoby vojti v upravlenie vashimi podpiskami.) + + Vse spiski rassylki PostgreSQL nastarivayutsya tak, chtoby gruppovoj + otvet uhodil na adres spiska i na adres avtora soobscheniya. Tak + sdelano, chtoby pol'zovateli poluchali otvety na E-mail kak mozhno + bystree. Esli vy ne hotite poluchat' dubliruyuschie E-mail + soobscheniya iz spiska, v sluchayah kogda vy uzhe poluchili `eti + soobscheniya napryamuyu, ustanovite flazhok eliminatecc na stranice + Change Settings v Majordomo. Vy takzhe mozhete izbezhat' polucheniya + kopij svoih soobschenij dlya samogo sebya, esli snimite flazhok + selfcopy. _________________________________________________________________ Voprosy pol'zovatelej po klientskoj chasti @@ -381,8 +437,7 @@ 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. + Python i mnogih drugih, dostupny na http://pgfoundry.org. 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez Web? @@ -400,7 +455,8 @@ Dlya PostgreSQL suschestvuet bol'shoe kolichestvo instrumentov s graficheskim interfejsom kak kommercheskih, tak i otkrytyh. - Podrobnosti mozhno najti v Dokumentacii soobschestva PostgreSQL + Podrobnosti mozhno najti v Dokumentacii soobschestva dlya GUI + istrumentov PostgreSQL _________________________________________________________________ Voprosy administrirovaniya @@ -415,7 +471,8 @@ 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. + host-avtorizaciya v fajle $PGDATA/pg_hba.conf i perestartovat' server + SUBD. 3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti? @@ -452,45 +509,34 @@ 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/. + http://www.powerpostgresql.com/PerfList/ i + http://momjian.us/main/writings/pgsql/hw_performance/index.html + . 3.4) Kakie vozmozhnosti dlya otladki est' v nalichii? Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na - log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty + log_* na + http://www.postgresql.org/docs/current/interactive/runtime-config-logg + ing.html, 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, + Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya v 100 sessij + podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' limit na + kolichestvo konkurentnyh backend processov dlya vashego servera BD, izmeniv znachenie max_connections v fajle postgresql.conf i - perestartovat' postmaster. + perestartovat' server BD. 3.6) Kak vypolnit' obnovlenie PostgreSQL? - Mezhdu podvypuskami, razrabotchiki PostgreSQL delayut tol'ko - ispravleniya oshibok. Takim obrazom obnovlenie s versii 7.4.8 do 7.4.9 - ne trebuet vypolneniya dump i restore; dostatochno ostanovit' server, - ustanovit' obnovlionnye fajly SUBD i zapustit' server. - - Vse pol'zovateli dolzhny by obnovlyat'sya na naibolee svezhuyu - podversiyu kak tol'ko ona budet dostupna. V to vremya kak kazhdoe - obnovlenie podrazumevaet nekotoryj risk, podversii PostgreSQL - razrabytyvayutsya tol'ko dlya ispravleniya obschih oshibok s - minimal'nym riskom. Takim obrazom, vash risk svyazan tol'ko s samim - obnovleniem. - - 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 chasto nosyat slozhnyj harakter, tak chto my - ne obsluzhivaem obratnuyu sovmestimost' dlya fajlov dannyh. V `etih - sluchayah dlya obnovleniya bazy dannyh trebuetsya vypolnit' - dump/restore. + Sm. informaciyu ob obnovlenii v + http://www.postgresql.org/support/versioning i special'nye instrukcii + v + http://www.postgresql.org/docs/current/static/install-upgrading.html. 3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'? @@ -602,8 +648,8 @@ kotoryh celoe chislo i tekstovoe opisanie. Pri `etom dlina teksta, v srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB. Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit - priblizitel'no 5.6 MB iz kotoryh: - 28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no) + priblizitel'no 5.2 MB iz kotoryh: + 24 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 tablichnoj stroki ---------------------------------------- @@ -612,14 +658,14 @@ Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto: 8192 bajt na stranicu - --------------------- = 146 strok v tablice na stranicu BD (okruglionno) - 56 bajt na stroku v tablice + --------------------- = 158 strok v tablice na stranicu BD (okruglionno) + 52 bajt na stroku v tablice 100000 strok dannyh - ----------------------- = 685 stranic v BD (okruglionno) - 146 strok v tablice na stranicu + ----------------------- = 633 stranic v BD (okruglionno) + 158 strok v tablice na stranicu - 685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB) + 633 stranic BD * 8192 bajt na stranicu = 5,185,536 bajt (5.2 MB) Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki. @@ -674,12 +720,9 @@ 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. + rabotaet tol'ko dlya LIKE indeksirovaniya. Dlya poiska slov takzhe + mozhno ispol'zovat' polnotekstovyj indeks. - 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.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros? Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN. @@ -708,14 +751,20 @@ 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? + 4.9) Kak mne opredelit', chto znachenie polya v kakom-libo zaprose ravno + NULL? Kak mne soedinit' vozmozhnye NULL? Mogu ya sortirovat' 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 soedinit' s vozmozhnymi znacheniyami NULL, ispol'zujte + COALESCE() kak zdes': + SELECT COALESCE(col1, '') || COALESCE(col2, '') + FROM tab + 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 @@ -771,31 +820,22 @@ name TEXT ); - Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva + Avtomaticheski sozdannaya posledovatel'nost' imeet imya vida + <tablica>_<kolonka_serial>_seq, gde tablica i kolonka_serial - `eto + sootvetstvenno imena tablicy i kolonki s tipom SERIAL. Smotrite + podrobnosti o posledovatel'nostyah na stranice rukovodstva 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.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')"); - - Zatem vy dolzhny takzhe sohranit' novoe znachenie v peremennoj new_id - dlya ego ispol'zovaniya v drugih zaprosah (naprimer takih kak vneshnij - klyuch dlya tablicy person). Zametim, chto imya avtomaticheski - sozdannogo ob"ekta SEQUENCE budet <table>_<serialcolumn>_seq, gde - table i serialcolumn yavlyayutsya sootvetstvenno imenami vashej - tablicy i vashej kolonki SERIAL. - - V kachestve al'ternativy, vy mozhete poluchit' naznachennoe znachenie - SERIAL s pomosch'yu funkcii currval() posle provedeniya obychnoj - operacii vstavki, naprimer - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); + Prostejshij sposob poluchit' naznachennoe znachenie SERIAL `eto + ispol'zovat' RETURNING. Ispol'zuya dlya primera tablicu v 4.11.1, `eto + mozhet vyglyadet' tak: + INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id; + Vy takzhe mozhete vyzvat' nextval() i ispol'zovat' `eto znachenie v + INSERT ili vyzvat' currval() posle INSERT. + 4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? @@ -813,15 +853,14 @@ 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. + Esli tablica sozdana s WITH OIDS, to kazhdaya stroka poluchaet + unikal'nyj indentifikator OID. OID - `eto avtomaticheski naznachaemoe + unikal'noe 4-h bajtovoe celoe chislo, kotoroe unikal'no dlya vsej + ustanovlennoj SUBD. 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 + Dlya unikal'nogo znacheniya v strokah 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 @@ -839,7 +878,7 @@ 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: + pered zapuskom servera BD vypolnit' sleduyuschie komandy: ulimit -d 262144 limit datasize 256m @@ -895,19 +934,23 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 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. + http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_ + PL/pgSQL_functions. 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, - potomu chto sk`eshirovannoe soderzhimoe funkcii soderzhit ukazatel' na - staruyu vremennuyu tablicu. CHtoby reshit' `etu problemu, ispol'zujte - EXECUTE dlya dostupa k vremennym tablicam v PL/PgSQL. Ispol'zovanie - `etogo operatora zastavit zapros peregenerirovat'sya kazhdyj raz. + V PostgreSQL do versii 8.3, 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, potomu chto sk`eshirovannoe soderzhimoe + funkcii soderzhit ukazatel' na staruyu vremennuyu tablicu. CHtoby + reshit' `etu problemu, ispol'zujte EXECUTE dlya dostupa k vremennym + tablicam v PL/PgSQL. Ispol'zovanie `etogo operatora zastavit zapros + peregenerirovat'sya kazhdyj raz. + + V PostgreSQL 8.3 i pozdnee, `etoj problemy net. 4.20) Kakie est' resheniya dlya replikacii? @@ -926,15 +969,16 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 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. + yavlyaetsya PGcluster. 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose? + Pochemu ne sohranyayutsya zaglavnye bukvy? - 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 + Naibolee chasto imena neraspoznayutsya 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 diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 0f9841c43739c6e70a08942b0eebf4c2787acd85..7c9db560d5ca54047d8f0dedcb0b93b1e7fdedb2 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,24 +12,27 @@ <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> - <P>Дата последнего обновления: Пятница 26 октября 14:59:45 EDT 2007</P> + <P>Дата последнего обновления: Среда 25 июня 23:54:14 EDT 2008</P> <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= - "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> + "mailto:bruce@momjian.us">bruce@monjian.us</A>) </P> <P>Перевёл на русский: Виктор Вислобоков (<A href= - "mailto:admin@linuxshare.ru">admin@linuxshare.ru</A>)<BR> + "mailto:admin@postgresql.ru.net">admin@postgresql.ru.net</A>)<BR> </P> <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://postgresql.ru.net/docs/FAQ_russian.html">http://postgresql.ru.net/docs/FAQ_russian.html</A>.</P> + <P>Ответы на вопросы специфичные для конкретных платформ можно найти на <A href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P> <HR> <H2 align="center">Общие вопросы</H2> - <A href="#item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?<BR> + <A href="#item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?<BR> <A href="#item1.2">1.2</A>) Кто управляет PostgreSQL?<BR> <A href="#item1.3">1.3</A>) Каковы авторские права на PostgreSQL?<BR> <A href="#item1.4">1.4</A>) На каких платформах работает PostgreSQL?<BR> @@ -43,9 +46,11 @@ <A href="#item1.11">1.11</A>) Как научиться <SMALL>SQL</SMALL>?<BR> <A href="#item1.12">1.12</A>) Как мне отправить исправление или присоединится к команде разработчиков?<BR> <A href="#item1.13">1.13</A>) Как сравнить PostgreSQL с другими - <SMALL>СУБД</SMALL>?<BR> + <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенной?<BR> <A href="#item1.14">1.14</A>) Будет ли PostgreSQL работать с последними изменениями, в разных страных, касающимися дневного времени?<BR> + <A href="#item1.15">1.15</A>) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующихся сообщений?<BR> <H2 align="center">Вопросы пользователей по клиентской части</H2> <A href="#item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR> @@ -124,10 +129,9 @@ <H2 align="center">Общие вопросы</H2> - <H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> + <H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?</H3> - <P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>, - также говорят и просто <I>Postgres</I>, особенно при разговоре. + <P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>. (Для особо любопытствующих как произносить "PostgreSQL", существует <A href="http://www.postgresql.org/files/postgresql.mp3">аудио-файл</A>). </P> @@ -146,6 +150,12 @@ http://www.postgresql.org/docs/faqs.FAQ_DEV.html</A> </P> + <P>Postgres — это широко используемое сокращение для PostgreSQL. + Первоначальным именем проекта в Беркли было Postgres и этот ник теперь + наиболее популярен в разговорах о PostgreSQL по сравнению с другими. + Если вам трудно полностью проговаривать 'PostgreSQL', можно просто + говорить 'Postgres'.</P> + <H3><A name="item1.2">1.2</A>) Кто управляет PostgreSQL?</H3> <P>Если вы ищите какого-то особенного человека, центральный @@ -169,7 +179,7 @@ <P>Система Управления Базами Данных PostgreSQL</P> - <P>Portions copyright (c) 1996-2007, PostgreSQL Global Development + <P>Portions copyright (c) 1996-2008, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</P> @@ -204,13 +214,13 @@ <P>PostgreSQL также работает на операционных системах Microsoft Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003. Пакет инсталлятора доступен по адресу - <A href="http://pgfoundry.org/projects/pginstaller"> - http://pgfoundry.org/projects/pginstaller</A>. Версии Windows, + <A href="http://www.postgresql.org/download/windows"> + http://www.postgresql.org/download/windows</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>, + <A href="http://developer.novell.com/wiki/index.php/Postgresql">http://developer.novell.com/wiki/index.php/Postgresql</A>, и версия для OS/2 (eComStation) на <A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</A>.</P> @@ -224,7 +234,7 @@ <H3><A name="item1.6">1.6</A>) Какая версия наиболее свежая?</H3> - <P>Последний выпуск PostgreSQL - это версия 8.2.5</P> + <P>Последний выпуск PostgreSQL - это версия 8.3.3</P> <P>Мы планируем выпускать новые старшие версии каждый год, а младшие версии каждые несколько месяцев.</P> @@ -348,7 +358,7 @@ Одну из наиболее популярных написал Корри Дуглас (Korry Douglas). Список обзоров по этим книгам доступен по адресу <a href="http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</a>. - Кроме того, по адресу <a href="http://www.postgresql.org/docs/techdocs">http://www.postgresql.org/docs/techdocs</a> + Кроме того, по адресу <a href="http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation">http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation</a> вы можете найти коллекцию технических статей, посвещенных PostgreSQL.</P> <P>Клиент командной строки <I>psql</I> имеет несколько команд \d для @@ -386,7 +396,7 @@ <H3><A name="item1.13">1.13</A>) Как сравнить PostgreSQL с другими - <SMALL>СУБД</SMALL>?</H3> + <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенным?</H3> <P> Существует несколько методов сравнения программного обеспечения: @@ -450,6 +460,14 @@ <BR> </DD> </DL> + + <P>PostgreSQL разрабатывается по архитектуре клиент/сервер, которая + требует отдельных процессов для каждого клиента и сервера, а также + несколько вспомогательных процессов. Многие встраиваемые архитектуры + могут соответствовать таким требованиям. Однако, если ваша встраиваемая + архитектура требует сервер баз данных для запуска внутри прикладного + процесса, вы не можете использовать Postgres и вам лучше бы выбрать + для базы данных какое-либо другое облегченное решение.</P> <H3><A name="item1.14">1.14</A>) Будет ли PostgreSQL работать с последними изменениями, в разных страных, касающимися дневного времени?</H3> @@ -461,7 +479,26 @@ дневного времени из базы данных временных зон в операционной системе.</p> <HR> - <H3 align="center">Вопросы пользователей по клиентской части</H3> + <H3 id="item1.15">1.15) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующих сообщений?</H3> + + <P>Страница <a + href="http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?user=&passw=&func=login">Majordomo</a> + на сайте PostgreSQL позволяет подписаться или отписаться от любого из списков + рассылки PostgreSQL. (Вам может понадобится ваш пароль для Majordomo, который + отправляется на ваш E-mail, чтобы войти в управление вашими подписками.)</P> + + <P>Все списки рассылки PostgreSQL настариваются так, чтобы групповой ответ уходил + на адрес списка <I>и</I> на адрес автора сообщения. Так сделано, чтобы пользователи + получали ответы на E-mail как можно быстрее. Если вы не хотите получать дублирующие + E-mail сообщения из списка, в случаях когда вы уже получили эти сообщения напрямую, + установите флажок <I>eliminatecc</I> на странице <I>Change Settings</I> в + Majordomo. Вы также можете избежать получения копий своих сообщений для самого себя, + если снимите флажок <I>selfcopy</I>.</P> + + <HR> + + <H2 align="center">Вопросы пользователей по клиентской части</H2> <H3><A name="item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?</H3> @@ -474,9 +511,7 @@ <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> - + <a href="http://pgfoundry.org">http://pgfoundry.org</A>.</P> <H3><A name="item2.2">2.2</A>) Какие инструменты существуют для использования PostgreSQL через Web?</H3> @@ -495,8 +530,8 @@ <P>Для PostgreSQL существует большое количество инструментов с графическим интерфейсом как коммерческих, так и открытых. Подробности - можно найти в <a href="http://www.postgresql.org/docs/techdocs.54"> - Документации сообщества PostgreSQL</A></P> + можно найти в <A href="http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools"> + Документации сообщества для GUI иструментов PostgreSQL</A></P> <HR> @@ -515,7 +550,7 @@ другие машины смогли подключиться к базе вы должны изменить <I>listen_addresses</I> в <I>postgresql.conf</I>, разрешить host-авторизация в файле <I>$PGDATA/pg_hba.conf</I> и перестартовать - сервер.</P> + сервер СУБД.</P> <H3><A name="item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения производительности?</H3> @@ -574,9 +609,10 @@ наличии?</H3> <P>Есть множество установок в настройках сервера, начинающихся - на <code>log_*</code>, позволяющих протоколировать запросы - и статистику работы процесса, которая очень полезна для отладки - и измерения производительности.</P> + на <code>log_*</code> на <a + href="http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html">http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html</a>, + позволяющих протоколировать запросы и статистику работы процесса, + которая очень полезна для отладки и измерения производительности.</P> <H3><A name="item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too @@ -1101,9 +1137,8 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); <H3><A name="item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?</H3> <P>Вы можете легко использовать функции, возвращающие список, - <A href="http://www.postgresql.org/docs/techdocs.17"> - http://www.postgresql.org/docs/techdocs.17</A>.</P> - + <a href="http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions"> + http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions</a>.</P> <H3><A name="item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?</H3>