Polish and Turkish FAQ also needed converting to UTF8
authorMagnus Hagander
Mon, 15 Sep 2008 08:50:09 +0000 (08:50 +0000)
committerMagnus Hagander
Mon, 15 Sep 2008 08:50:09 +0000 (08:50 +0000)
doc/src/FAQ/FAQ_polish.html
doc/src/FAQ/FAQ_turkish.html

index 2fdc4a69915f765993d4d070c877098d3247589b..b93d4ddaa5a3690f0ae8d612aff75d3130e1f1a7 100644 (file)
@@ -6,7 +6,7 @@
 
   
     
-    iso-8859-2">
+    utf8">
     PostgreSQL FAQ
   
 
 
     

Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004

 
-    

Ostatnia aktualizacja t³umaczenia: Pi±tek Marzec 5 19:31:12 EST 2004

+    

Ostatnia aktualizacja tłumaczenia: Piątek Marzec 5 19:31:12 EST 2004

 
     

Obecny maintainer: Bruce Momjian (

     

-    

T³umaczenie: Marcin Mazurek (

+    

Tłumaczenie: Marcin Mazurek (

     

 
-    

Najbardziej aktualn± wersjê tego dokumentu mo¿na znale¼æ pod

+    

Najbardziej aktualną wersję tego dokumentu można znaleźć pod

     adresem:
     
     "http://www.Postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html.

 
-    

Odpowiedzi na pytania dotycz±ce konkretnych systemów operacyjnych

-    mo¿na znale¼æ pod adresem: 
+    

Odpowiedzi na pytania dotyczące konkretnych systemów operacyjnych

+    można znaleźć pod adresem: 
     
     "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html.

     
 
-    Pytania ogólne
-    1.1) Co to jest PostgreSQL? Jak to wymawiaæ?
-     1.2) Jak± licencj± chroniony jest PostgreSQL?
-     1.3) Na jakich systemach Unixowych dzia³a
+    Pytania ogólne
+    1.1) Co to jest PostgreSQL? Jak to wymawiać?
+     1.2) Jaką licencją chroniony jest PostgreSQL?
+     1.3) Na jakich systemach Unixowych działa
      PostreSQL?
-     1.4) Na jakich nie-Unixowych systemach dzia³a
+     1.4) Na jakich nie-Unixowych systemach działa
      PostgreSQL?
-     1.5) Sk±d mogê ¶ci±gn±æ PostgreSQL?
-     1.6) Gdzie mo¿na szukaæ wsparcia technicznego?
-     1.7) Jaka jest ostatnia dostêpna wersja?
-     1.8) Jaka dokumentacja jest dostêpna?
-     1.9) Gdzie mogê znale¼æ informacjê o znanych
-     b³êdach czy brakuj±cych rozwi±zanich?
-     1.10) Jak mogê siê nauczyæ SQL?
-     1.11) Czy PostgreSQL ma rozwi±zany problem Y2K?
-     1.12) Jak mogê siê przy³±czyæ do grupy osób
-     bezpo¶rednio pracuj±cych nad rozwojem PostgreSQL?
-     1.13) Jak mogê zg³aszaæ b³êdy?
-     1.14) Jak mo¿na porównaæ PostgreSQL w stosunku
+     1.5) Skąd mogę ściągnąć PostgreSQL?
+     1.6) Gdzie można szukać wsparcia technicznego?
+     1.7) Jaka jest ostatnia dostępna wersja?
+     1.8) Jaka dokumentacja jest dostępna?
+     1.9) Gdzie mogę znaleźć informację o znanych
+     błędach czy brakujących rozwiązanich?
+     1.10) Jak mogę się nauczyć SQL?
+     1.11) Czy PostgreSQL ma rozwiązany problem Y2K?
+     1.12) Jak mogę się przyłączyć do grupy osób
+     bezpośrednio pracujących nad rozwojem PostgreSQL?
+     1.13) Jak mogę zgłaszać błędy?
+     1.14) Jak można porównać PostgreSQL w stosunku
      do innych DBMS?
-     1.15) W jaki sposób mogê wesprzeæ finansowo
+     1.15) W jaki sposób mogę wesprzeć finansowo
     PostgreSQL?
     
-    Pytania u¿ytkowników
-    2.1) Czy s± jakie¶ driwery ODBC dla
+    Pytania użytkowników
+    2.1) Czy są jakieś driwery ODBC dla
     PostgreSQL?
-     2.2) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do
+     2.2) Jakie istnieją narzędzia pozwalające na dostęp do
      PostgreSQL przez www?
-     2.3) Czy istnieje jakie GUI dla PostgreSQL?
-     2.4) Za pomoc± jakich jêzyków programowania mo¿na
-     siê komunikowaæ z PostgreSQL?
+     2.3) Czy istnieje jakieś GUI dla PostgreSQL?
+     2.4) Za pomocą jakich języków programowania można
+     się komunikować z PostgreSQL?
      
 
-    Pytania dotycz±ce administracji
-    3.1) Jak mogê zainstalowaæ PostgreSQL w innej 
-           lokalizacji ni¿ /usr/local/pgsql?
+    Pytania dotyczące administracji
+    3.1) Jak mogę zainstalować PostgreSQL w innej 
+           lokalizacji niż /usr/local/pgsql?
      3.2) Podczas startu postmaster'a,
-     otrzymujê komunikat:
+     otrzymuję komunikat:
     Bad System Call lub "core dumped". Dlaczego?
      3.3) Podczas startu postmaster'a
-     otrzymujê komunikat o b³êdzie: IpcMemoryCreate. Dlaczego?
+     otrzymuję komunikat o błędzie: IpcMemoryCreate. Dlaczego?
      3.4) Podczas startu postmaster'a,
-     otrzymujê komunikat o b³êdzie: IpcSemaphoreCreate. Dlaczego?
-     3.5) W jaki sposób mogê kontrolowaæ po³±czenia z
-     innych hostów?
-     3.6) Jak powinienem skonfigurowaæ system baz
-     danych aby uzyskaæ lepsz± wydajno¶æ?
-     3.7) Jakie s± mo¿liwo¶ci wyszukiwania b³êdów?
-     3.8) Sk±d siê bierze komunikat: "Sorry, too many
-    clients" podczas próby po³±czenia siê z baz± danych?
-     3.9) Jakie pliki znajduj± siê w pg_temp?
+     otrzymuję komunikat o błędzie: IpcSemaphoreCreate. Dlaczego?
+     3.5) W jaki sposób mogę kontrolować połączenia z
+     innych hostów?
+     3.6) Jak powinienem skonfigurować system baz
+     danych aby uzyskać lepszą wydajność?
+     3.7) Jakie są możliwości wyszukiwania błędów?
+     3.8) Skąd się bierze komunikat: "Sorry, too many
+    clients" podczas próby połączenia się z bazą danych?
+     3.9) Jakie pliki znajdują się w pg_temp?
      3.10) Dlaczego konieczne jest przy upgradzie
-     PostgreSQL korzystanie ze skryptów dump i restore?
-
-    Pytania dotycz±ce u¿ytkowania
-    4.1) Jaka jest ró¿nica pomiêdzy kursorami
-    binarnymi (binary cursors) i zwyk³ymi kursorami (normal cursors)?
-     4.2) Jak mogê pobraæ za pomoc± SELECT
-     jedynie kilka pierwszych wyników zapytania?
-     4.3) Jak mogê uzyskaæ listê wszystkich tabel czy
+     PostgreSQL korzystanie ze skryptów dump i restore?
+
+    Pytania dotyczące użytkowania
+    4.1) Jaka jest różnica pomiędzy kursorami
+    binarnymi (binary cursors) i zwykłymi kursorami (normal cursors)?
+     4.2) Jak mogę pobrać za pomocą SELECT
+     jedynie kilka pierwszych wyników zapytania?
+     4.3) Jak mogę uzyskać listę wszystkich tabel czy
      innych rzeczy pod psql?
-     4.4) Jak usun±æ kolumnê z tabeli lub zmieniæ jej
+     4.4) Jak usunąć kolumnę z tabeli lub zmienić jej
      typ?
-     4.5) Jaki jest maksymalny rozmiar dla rzêdu,
+     4.5) Jaki jest maksymalny rozmiar dla rzędu,
      tabeli i bazy danych?
-     4.6) Jak du¿o miejsca w bazie danych jest
-     potrzebne aby przechowaæ dane ze zwyczajnego pliku tekstowego?
-     4.7) Jak mogê sprawdziæ jakie tabele, klucze,
-     bazy danych i u¿ytkownicy s± utworzeni?
-     4.8) Moje zapytania s± wolne lub nie u¿ywaj±
+     4.6) Jak dużo miejsca w bazie danych jest
+     potrzebne aby przechować dane ze zwyczajnego pliku tekstowego?
+     4.7) Jak mogę sprawdzić jakie tabele, klucze,
+     bazy danych i użytkownicy są utworzeni?
+     4.8) Moje zapytania są wolne lub nie używają
      kluczy. Dlaczego?
-     4.9) Jak mogê sprawdziæ w jakis sposób "query
+     4.9) Jak mogę sprawdzić w jakis sposób "query
      optimizer" wykonuje moje zapytanie?
      4.10) Co to jest "R-tree index"?
      4.11) Co to jest "Genetic Query Optimizer"?
-     4.12) Jak mogê u¿ywaæ wyra¿eñ regularnych w
-     zapytaniach i zapytañ case-insensitive w wyra¿eniach regularnych?
-     Jak korzystaæ z indeksów dla zapytañ case-insensitive?
-     4.13) Jak sprawdziæ w zapytaniu czy pole ma
-     warto¶æ NULL?
-     4.14) Jaka jest ró¿nica pomiêdzy ró¿nymi typami
+     4.12) Jak mogę używać wyrażeń regularnych w
+     zapytaniach i zapytań case-insensitive w wyrażeniach regularnych?
+     Jak korzystać z indeksów dla zapytań case-insensitive?
+     4.13) Jak sprawdzić w zapytaniu czy pole ma
+     wartość NULL?
+     4.14) Jaka jest różnica pomiędzy różnymi typami
      tekstowymi (character types)?
-     4.15.1) Jak mogê utworzyæ pole typu int, które samo
-     zwiêksza swoj± warto¶æ?
-     4.15.2) Jak pobraæ warto¶æ pola typu 
+     4.15.1) Jak mogę utworzyć pole typu int, które samo
+     zwiększa swoją wartość?
+     4.15.2) Jak pobrać wartość pola typu 
     SERIAL po wykonaniu insert'u?
-     4.15.3) Czy u¿ycie currval() i
+     4.15.3) Czy użycie currval() i
     nextval() nie doprowadzi do "race condition" z innymi
-    u¿ytkownikami?
-     4.15.4) Dlaczego numery sekwencji nie s±
-     ponownie u¿ywane przy przerwaniu transakcji?
-    Sk±d siê bior± luki w numerowaniu kolumny tabeli sekwencjami/SERIALem?
+    użytkownikami?
+     4.15.4) Dlaczego numery sekwencji nie są
+     ponownie używane przy przerwaniu transakcji?
+    Skąd się biorą luki w numerowaniu kolumny tabeli sekwencjami/SERIALem?
      4.16) Co to jest OID? Co to jest
     TID?
-     4.17) Jakie jest znaczenie niektórych terminów w 
+     4.17) Jakie jest znaczenie niektórych terminów w 
     PostgreSQL?
-     4.18) Sk±d bierze siê ten b³±d: "ERROR: Memory
+     4.18) Skąd bierze się ten błąd: "ERROR: Memory
     exhausted in AllocSetAlloc()"?
-     4.19) Jak sprawdziæ jakiej wersji PostgreSQL
-    u¿ywam?
-     4.20) Dlaczego operacje, które wykonujê na
-     du¿ych obiektach "large-object" zwracaj± komunikat:
+     4.19) Jak sprawdzić jakiej wersji PostgreSQL
+    używam?
+     4.20) Dlaczego operacje, które wykonuję na
+     dużych obiektach "large-object" zwracają komunikat:
     "invalid large obj descriptor"?
-     4.21) Jak stworzyæ kolumnê której domy¶ln±
-     warto¶ci± bêdzie bie¿±cy czas?
-     4.22) Dlaczego zapytania u¿ywaj±ce
-    IN s± takie wolne?
-     4.23) Jak wykonaæ "outer join"?
-     4.24) Jak wykonywaæ zapytanie u¿ywaj±ce kilku
-     baz danych jednoczenie?
-     4.25) Jak zwróciæ w funkcji wiele rzêdów lub
+     4.21) Jak stworzyć kolumnę której domyślną
+     wartością będzie bieżący czas?
+     4.22) Dlaczego zapytania używające
+    IN są takie wolne?
+     4.23) Jak wykonać "outer join"?
+     4.24) Jak wykonywać zapytanie używające kilku
+     baz danych jednocześnie?
+     4.25) Jak zwrócić w funkcji wiele rzędów lub
      kolumn?
-     4.26) Dlaczego nie mogê w sposób pewny
-     tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?
-     4.27) Jakie s± mo¿liwo¶ci replikacji w
+     4.26) Dlaczego nie mogę w sposób pewny
+     tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?
+     4.27) Jakie są możliwości replikacji w
      PostgreSQL?
-     4.28) Jakie mo¿liwo¶ci szyfrowania oferuje
+     4.28) Jakie możliwości szyfrowania oferuje
      PostgreSQL?
     
     Rozwijanie PostgreSQL
-    5.1) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej w
-    psql, program zrzuca pamiêæ (dump core)?
-     5.2) Jak mogê dodaæ/zg³osiæ nowe typy czy funkcje
+    5.1) Napisałem własną funkcję. Kiedy użyję jej w
+    psql, program zrzuca pamięć (dump core)?
+     5.2) Jak mogę dodać/zgłosić nowe typy czy funkcje
      do PostgreSQL?
-     5.3) Jak napisaæ funkcjê C zwracaj±c± krotkê
+     5.3) Jak napisać funkcję C zwracającą krotkę
      (tuple)?
-     5.4) Zmieni³em plik ¼ród³owy. Dlaczego po
-     rekompilacji nie widaæ zmiany?
+     5.4) Zmieniłem plik źródłowy. Dlaczego po
+     rekompilacji nie widać zmiany?
      
     
 
-    Pytania ogólne
+    Pytania ogólne
 
-    

1.1) Co to jest PostgreSQL? Jak to wymawiaæ?

+    

1.1) Co to jest PostgreSQL? Jak to wymawiać?

 
-    

PostgreSQL wymawia siê Post-Gres-kju-el. Czêsto podczas

-    rozmów u¿ywany jest termin "Postgres"

+    

PostgreSQL wymawia się Post-Gres-kju-el. Często podczas

+    rozmów używany jest termin "Postgres"

 
-    

PostgreSQL jest rozszerzeniem systemu zarz±dzania bazami danych -

-    POSTGRES, kolejn± generacj± rozwojowego prototypu DBMS.
-    Mimo, ¿e PostgreSQL zachowa³ bardzo dobrze zbudowany model danych
-    (data model) i bogaty zestaw typów danych POSTGRES'a, zast±pi³
-    PostQuel'owy jêzyk zapytañ z rozbudowanym podzbiorem jêzyka 
+    

PostgreSQL jest rozszerzeniem systemu zarządzania bazami danych -

+    POSTGRES, kolejną generacją rozwojowego prototypu DBMS.
+    Mimo, że PostgreSQL zachował bardzo dobrze zbudowany model danych
+    (data model) i bogaty zestaw typów danych POSTGRES'a, zastąpił
+    PostQuel'owy język zapytań z rozbudowanym podzbiorem języka 
     SQL. PostgreSQL jest oprogramowaniem darmowym 
-    z dostêpnymi ca³ymi ¼ród³ami.
+    z dostępnymi całymi źródłami.
     

 
-    

Rozwój PostgreSQL jest prowadzony przez grupê ludzi z Internetu,

-    komunikuj±cych siê poprzez mailowe listy dyskusyjne PostgreSQL.
+    

Rozwój PostgreSQL jest prowadzony przez grupę ludzi z Internetu,

+    komunikujących się poprzez mailowe listy dyskusyjne PostgreSQL.
     Obecnym koordynatorem jest Marc G. Fournier (
     "mailto:[email protected]">[email protected]). (Zobacz
-    pytanie 1.6 jak siê przy³±czyæ). Ta grupa ludzi jest 
-    odpowiedzialna za ca³y rozwój PostgreSQL. PostgreSQL jest projektem
-    nie kontrolowanym przez ¿adn± firmê, aby wzi±æ udzia³ w jego rozwoju
-    sprawd¼
+    pytanie 1.6 jak się przyłączyć). Ta grupa ludzi jest 
+    odpowiedzialna za cały rozwój PostgreSQL. PostgreSQL jest projektem
+    nie kontrolowanym przez żadną firmę, aby wziąć udział w jego rozwoju
+    sprawdź
     http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html

 
     

Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen.

-    Wiele innych osób pomog³o przy portowaniu, testowaniu, debugowaniu i
-    rozwijaniu kodu. Oryginalny kod Postgresa, na którym zosta³ oparty
-    PostgreSQL, by³ wysi³kiem studentów oraz pracowników pracuj±cych pod
+    Wiele innych osób pomogło przy portowaniu, testowaniu, debugowaniu i
+    rozwijaniu kodu. Oryginalny kod Postgresa, na którym został oparty
+    PostgreSQL, był wysiłkiem studentów oraz pracowników pracujących pod
     kierownictwem profesora Michael'a Stonebraker'a z University of
     California w Berkeley.

 
-    

Oryginaln± nazw± oprogramowania w Berkeley by³ Postgres.  Po

-    dodaniu obs³ugi SQL w 1995, nazwa zosta³a zmieniona
-    na Postgres95. Pod koniec roku 1996 nazwa zosta³a zmieniona na
+    

Oryginalną nazwą oprogramowania w Berkeley był Postgres.  Po

+    dodaniu obsługi SQL w 1995, nazwa została zmieniona
+    na Postgres95. Pod koniec roku 1996 nazwa została zmieniona na
     PostgreSQL.

 
-    

1.2) Jak± licencj± chroniony jest

+    

1.2) Jaką licencją chroniony jest

     PostgreSQL?
 
-    

PostgreSQL objêty jest nastêpuj±c± licencj±:

+    

PostgreSQL objęty jest następującą licencją:

 
     

PostgreSQL Data Base Management System

 
     UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
     SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

 
-    

Tekst powy¿ej, jest klasyczn± licencj± BSD.

-    Nie posiada ona ¿adnych restrykcji co do u¿ywania kodu ¼ród³owego.
-    Podoba nam siê i nie zamierzamy jej zmieniaæ.

+    

Tekst powyżej, jest klasyczną licencją BSD.

+    Nie posiada ona żadnych restrykcji co do używania kodu źródłowego.
+    Podoba nam się i nie zamierzamy jej zmieniać.

 
-    

1.3) Na jakich systemach Unixowych dzia³a

+    

1.3) Na jakich systemach Unixowych działa

          PostreSQL?
 
-    

PostgreSQL powinien dzia³aæ na wszystkich nowych Unix-podobnych

-    systemach. Platformy, które zosta³y szczegó³owo przetestowane podczas
-    publikowania PostgreSQL s± wymienione w dokumentacji opisuj±cej
-    instalacjê.

+    

PostgreSQL powinien działać na wszystkich nowych Unix-podobnych

+    systemach. Platformy, które zostały szczegółowo przetestowane podczas
+    publikowania PostgreSQL są wymienione w dokumentacji opisującej
+    instalację.

 
-    

1.4) Na jakich nie-Unixowych systemach dzia³a

+    

1.4) Na jakich nie-Unixowych systemach działa

          PostgreSQL?
 
     

Klient

 
-    

Mo¿liwa jest kompilacja bibliteki C libpq, psql oraz

-    innych interfejsów i uruchamianie ich na platformie MS Windows. W tym
-    wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje siê
-    poprzez TCP/IP. Serwer mo¿e dzia³aæ na dowolnej wspieranej platformie 
-    Unixowej. Plik win32.mak jest do³±czony
-    do ¼róde³, aby mo¿na by³o stworzyæ bibliotekê libpq oraz
-    program psql dzia³aj±ce w ¶rodowisku Win32. PostgreSQL mo¿e siê 
-    tak¿e komunikowaæ z klientami ODBC.

+    

Możliwa jest kompilacja bibliteki C libpq, psql oraz

+    innych interfejsów i uruchamianie ich na platformie MS Windows. W tym
+    wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje się
+    poprzez TCP/IP. Serwer może działać na dowolnej wspieranej platformie 
+    Unixowej. Plik win32.mak jest dołączony
+    do źródeł, aby można było stworzyć bibliotekę libpq oraz
+    program psql działające w środowisku Win32. PostgreSQL może się 
+    także komunikować z klientami ODBC.

 
     

Serwer

 
-    

Serwer mo¿e byæ uruchamiany na Windows NT i Win2k u¿ywaj±c

+    

Serwer może być uruchamiany na Windows NT i Win2k używając

     bibliotek Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN
-    znajduj±cym siê w ¼ród³ach lub pod adresem: 
+    znajdującym się w źródłach lub pod adresem: 
     "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych stronach.

-    Obecnie prowadzone s± prace nad stworzeniem wersji dla MS Win
-    NT/200/XP. Je¶li chcesz siê dowiedzieæ o obecnym statusie tych prac
+    Obecnie prowadzone są prace nad stworzeniem wersji dla MS Win
+    NT/200/XP. Jeśli chcesz się dowiedzieć o obecnym statusie tych prac
     zobacz 
     href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows and
     
     href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html.
     

     

-    Istnieje tak¿e port pod Novell Netware 6 dostêpny pod adresem 
+    Istnieje także port pod Novell Netware 6 dostępny pod adresem 
     href="http://forge.novell.com">http://forge.novell.com.
     

 
-    

1.5) Sk±d mo¿na ¶ci±gn±æ PostgreSQL?

+    

1.5) Skąd można ściągnąć PostgreSQL?

 
-    

G³ówny serwer ftp z dostêpem "anonymous" dla PostgreSQL znajduje

-    siê ftp://ftp.PostgreSQL.org/pub.
-    je¶li szukasz mirrorów sprawd¼ nasz± g³ówn± stronê www.

+    

Główny serwer ftp z dostępem "anonymous" dla PostgreSQL znajduje

+    się ftp://ftp.PostgreSQL.org/pub.
+    jeśli szukasz mirrorów sprawdź naszą główną stronę www.

 
-    

1.6) Gdzie mo¿na szukaæ wsparcia technicznego?

+    

1.6) Gdzie można szukać wsparcia technicznego?

 
-    

Adres g³ównej listy mailowej: 

+    

Adres głównej listy mailowej: 

-    Jest ona przeznaczona dyskusjom dotycz±cym spraw zwi±zanych z PostgreSQL.
-    ¯eby zapisac siê na listê, wy¶lij email z nastêpuj±cymi liniami w
-    treci maila (nie w temacie):

+    Jest ona przeznaczona dyskusjom dotyczącym spraw związanych z PostgreSQL.
+    Żeby zapisac się na listę, wyślij email z następującymi liniami w
+    treści maila (nie w temacie):

 
     subscribe
     end
     

na adres: 

 
-    

Dostêpna jest tak¿e lista wysy³aj±ca digesty. Aby zapisaæ siê na

-    ni±, wy¶lij email na adres:
+    

Dostępna jest także lista wysyłająca digesty. Aby zapisać się na

+    nią, wyślij email na adres:
     
-    z tre¶ci± maila zawieraj±c±:

+    z treścią maila zawierającą:

 
     subscribe
     end
 
-   Digesty s± wysy³ane do cz³onków listy, kiedy na g³ówn± listê dotrze ok
-   30k wiadomoci.
+   Digesty są wysyłane do członków listy, kiedy na główną listę dotrze ok
+   30k wiadomości.
 
-    

Dostêpna jest tak¿e lista po¶wiêcona b³êdom znalezionym w

-    PostgreSQL. Aby zapisaæ siê na ni± wy¶lij email na adres:
+    

Dostępna jest także lista poświęcona błędom znalezionym w

+    PostgreSQL. Aby zapisać się na nią wyślij email na adres:
     
-    z tre¶ci± maila zawieraj±c±:

+    z treścią maila zawierającą:

 
     subscribe
     end
 
-    Lista po¶wiêcona dyskusjom developerów jest dostêpna pod adresem:
+    Lista poświęcona dyskusjom developerów jest dostępna pod adresem:
     
-    Aby siê na ni± zapisaæ wy¶lij na jej adres mail z tre¶ci±:
+    Aby się na nią zapisać wyślij na jej adres mail z treścią:
 
     subscribe
     end
 
 
-    

Dodatkowe informacje o listach mailowych dotycz±cych PostgreSQL

-    mo¿na znale¼æ na stronach WWW PostgreSQL pod adresem:

+    

Dodatkowe informacje o listach mailowych dotyczących PostgreSQL

+    można znaleźć na stronach WWW PostgreSQL pod adresem:

 
     
       

http://www.PostgreSQL.org

     
 
-    

W sieci EFNet istnieje kana³ IRC #PostgreSQL. Ja, do

-    po³±czenia siê z kana³em u¿ywam Unixowego polecenia irc -c
+    

W sieci EFNet istnieje kanał IRC #PostgreSQL. Ja, do

+    połączenia się z kanałem używam Unixowego polecenia irc -c
     '#PostgreSQL' "$USER" irc.phoenix.net.

 
-    

Lista firm oferuj±cych wsparcie na zasadach komercyjnych znajduje

-    siê pod adresem: http://techdocs.postgresql.org/companies.php.

+    

Lista firm oferujących wsparcie na zasadach komercyjnych znajduje

+    się pod adresem: http://techdocs.postgresql.org/companies.php.

 
-    

1.7) Jaka jest ostatnia dostêpna wersja?

+    

1.7) Jaka jest ostatnia dostępna wersja?

 
-    

Ostatnia dostêpna wersja PostgreSQL to 7.4.1.

+    

Ostatnia dostępna wersja PostgreSQL to 7.4.1.

 
-    

Planujemy publikowanie kolejnych wersji co sze¶æ do o¶miu miesiêcy.

+    

Planujemy publikowanie kolejnych wersji co sześć do ośmiu miesięcy.

 
-    

1.8) Jaka dokumentacja jest dostêpna?

+    

1.8) Jaka dokumentacja jest dostępna?

 
-    

Kilka manuali, stron podêcznika man, oraz kilka przyk³adów do

-    testowania s± za³±czone w samej dystrybucji. Znajduj± siê one w
-    katalogu /doc. Manual mo¿e byæ tak¿e przegl±dany poprzez
+    

Kilka manuali, stron podęcznika man, oraz kilka przykładów do

+    testowania są załączone w samej dystrybucji. Znajdują się one w
+    katalogu /doc. Manual może być także przeglądany poprzez
     strony www pod adresem 
     "http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs.

    
-    

Istniej± tak¿e dwie ksi±¿ki dostêpne online pod adresami

+    

Istnieją także dwie książki dostępne online pod adresami

     
     "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html
     i 
     "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/.
-    Lista ksi±¿ek o PostgreSQL, które mo¿na kupiæ znajduje siê pod adresem
+    Lista książek o PostgreSQL, które można kupić znajduje się pod adresem
     
     "http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
     http://techdocs.PostgreSQL.org/techdocs/bookreviews.php.
-    Zbiór technicznych artyku³ów o PostgreSQL znajduje siê pod adresem 
+    Zbiór technicznych artykułów o PostgreSQL znajduje się pod adresem 
     href=
     "http://techdocs.PostgreSQL.org">http://techdocs.postgresql.org/.

 
-    

psql posiada kilka wbudowanych poleceñ \d, za pomoca których

-    mo¿na sprawdziæ informacje dotycz±ce typów, operatorów, funkcji,
-    agregatów itd.

+    

psql posiada kilka wbudowanych poleceń \d, za pomoca których

+    można sprawdzić informacje dotyczące typów, operatorów, funkcji,
+    agregatów itd.

 
-    

Na naszej stronie mo¿na znale¼æ du¿o wiêcej dokumentacji.

+    

Na naszej stronie można znaleźć dużo więcej dokumentacji.

 
-    

1.9) Gdzie mo¿na znale¼æ informacjê o znanych

-         b³êdach czy brakuj±cych rozwi±zanich?
+    

1.9) Gdzie można znaleźć informację o znanych

+         błędach czy brakujących rozwiązanich?
 
-    

PostgreSQL wspiera rozszerzony podzbiór standardu SQL-92.

-    Sprawd¼ nasz± listê TODO
-    aby znale¼æ informacjê o znanych problemach, brakuj±cych
-    rozwi±zaniach czy przysz³ych planach.

+    

PostgreSQL wspiera rozszerzony podzbiór standardu SQL-92.

+    Sprawdź naszą listę TODO
+    aby znaleźć informację o znanych problemach, brakujących
+    rozwiązaniach czy przyszłych planach.

 
-    

1.10) Jak mogê siê nauczyæ

+    

1.10) Jak mogę się nauczyć

     SQL?
 
-    

Ksi±¿ka o PostgreSQL 

+    

Książka o PostgreSQL 

     "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html
-    uczy SQL. Jest jeszcze inna ksi±zka o PostgreSQL
-    dostêpna pod adresem: 
+    uczy SQL. Jest jeszcze inna ksiązka o PostgreSQL
+    dostępna pod adresem: 
     "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook.
-    Dobry tutorial mo¿esz znale¼æ pod adresem: 
+    Dobry tutorial możesz znaleźć pod adresem: 
     "http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm,
     oraz 
     "http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">
     pod adresem: 
     "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm

 
-    

Wielu z naszych u¿ytkowników poleca The Practical SQL Handbook,

-    Bowman, Judith S., et al., Addison-Wesley. Inni polecaj± The
+    

Wielu z naszych użytkowników poleca The Practical SQL Handbook,

+    Bowman, Judith S., et al., Addison-Wesley. Inni polecają The
     Complete Reference SQL, Groff et al., McGraw-Hill.

 
-    

1.11) Czy PostgreSQL ma rozwi±zany problem Y2K?

+    

1.11) Czy PostgreSQL ma rozwiązany problem Y2K?

 
     

Tak, bez problemu radzimy sobie z datami po roku 2000 AD, oraz

     przed rokiem 2000 BC.

 
-    

1.12) Jak mogê siê przy³±czyæ do grupy osób

-         bezpo¶rednio pracuj±cych nad rozwojem PostgreSQL?
+    

1.12) Jak mogę się przyłączyć do grupy osób

+         bezpośrednio pracujących nad rozwojem PostgreSQL?
 
-    

Przede wszystkim ¶ci±gnij ostatnie dostêpne ¼ród³a i przeczytaj

-    dokumentacjê przeznaczon± dla developerów na naszej stronie www lub
-    dostêpn± tak¿e w ¼ród³ach PostgreSQL. Nastêpnie zapisz siê na listy
+    

Przede wszystkim ściągnij ostatnie dostępne źródła i przeczytaj

+    dokumentację przeznaczoną dla developerów na naszej stronie www lub
+    dostępną także w źródłach PostgreSQL. Następnie zapisz się na listy
     mailowe pgsql-hackers i
-    pgsql-patches. I na koniec, wysy³aj nam wysokiej jako¶ci
-    patch'e na listê pgsql-patches.

+    pgsql-patches. I na koniec, wysyłaj nam wysokiej jakości
+    patch'e na listę pgsql-patches.

 
-    

Jest oko³o 12 osób, które maj± uprawnienia do commit'owania w

-    CVS PostgreSQL'a. Ka¿dy z nich submitowa³ tak wiele
-    wysokiej jako¶ci patchy, ¿e sta³o siê niemo¿liwe dla obecnych
-    commiterów byæ z nimi na bie¿±co, wiêc musieli¶my im ufaæ i mieæ
-    pewno¶æ, ¿e ich poprawki s± wysokiej jako¶ci.

+    

Jest około 12 osób, które mają uprawnienia do commit'owania w

+    CVS PostgreSQL'a. Każdy z nich submitował tak wiele
+    wysokiej jakości patchy, że stało się niemożliwe dla obecnych
+    commiterów być z nimi na bieżąco, więc musieliśmy im ufać i mieć
+    pewność, że ich poprawki są wysokiej jakości.

 
-    

1.13) Jak mogê zg³aszaæ b³êdy?

+    

1.13) Jak mogę zgłaszać błędy?

 
-    

Zajrzyj na stronê 

+    

Zajrzyj na stronę 

     "http://www.postgresql.org/bugs/bugs.php">PostgreSQL BugTool, na
-    której opisane s± wskazówki jak zg³aszaæ informacje o b³êdach.

+    której opisane są wskazówki jak zgłaszać informacje o błędach.

 
-    

Zajrzyj tak¿e na nasz ftp 

+    

Zajrzyj także na nasz ftp 

     "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub, aby
-    sprawdziæ czy nie ma nowszych wersji PostgreSQL czy patchy.

+    sprawdzić czy nie ma nowszych wersji PostgreSQL czy patchy.

 
-    

1.14) Jak mo¿na porównaæ PostgreSQL w stosunku

+    

1.14) Jak można porównać PostgreSQL w stosunku

          do innych DBMS?
 
-    

Jest kilka sposobów oceny softwaru: mo¿liwo¶ci,

-    wydajno¶æ, stabilno¶æ, wsparcie i cena.

+    

Jest kilka sposobów oceny softwaru: możliwości,

+    wydajność, stabilność, wsparcie i cena.

 
     
-      
Mo¿liwo¶ci
+      
Możliwości
 
-      
PostgreSQL posiada mo¿liwo¶ci dostêpne w du¿ych, komercyjnych
+      
PostgreSQL posiada możliwości dostępne w dużych, komercyjnych
        systemach DBMS, takie jak transakcje, podzapytania
        (subselects), triggery, widoki, klucze obce, referential integrity,
-       oraz wyrafinowany system blokowania. Mamy tak¿e w³a¶ciow¶ci których
-       inni nie posiadaj±, jak typy definiowane przez u¿ytkownika,
-       dziedziczenie, rules, multi-version concurrency control, która
+       oraz wyrafinowany system blokowania. Mamy także właściowści których
+       inni nie posiadają, jak typy definiowane przez użytkownika,
+       dziedziczenie, rules, multi-version concurrency control, która
        redukuje problemy z blokowaniem (lock contention).
       
       
 
-      
Wydajno¶æ
-
-      
Wydajno¶æ PostgreSQL jest podobna do innych komercyjnych i open
-       source baz danych. W niektórych sytuacjach jest szybszy w
-       niektórych wolniejszy. W porównianiu do MySQL lub mniejszych baz
-       danych jeste¶my szybsi przy wielu u¿ytkownikach, skomplikowaych
-       zapytaniach i du¿ym obci±¿eniu podczas. MySQL jest szybszy dla
-       prostych SELECTów wykonywanych przez niewielu u¿ytkowników.
-       Spowodowane jest to narzutem, który siê pojawia przy transakcjach.
-       Oczywi¶cie MySQL nie ma wiêkszo¶ci z rozwi±zañ opisanych powy¿ej
-       w sekcji  Mo¿liwo¶ci . PostgreSQL zosta³ stworzony z my¶l± o
-       stabilno¶ci, oraz szerokiej gamie mo¿liwo¶ci, ale mimo to staramy
-       siê w ka¿dej wersji poprawiaæ jego wydajno¶æ.
-       Ciekawe porównanie PostgreSQL i MySQL mo¿na znale¼æ pod adresem 
+      
Wydajność
+
+      
Wydajność PostgreSQL jest podobna do innych komercyjnych i open
+       source baz danych. W niektórych sytuacjach jest szybszy w
+       niektórych wolniejszy. W porównianiu do MySQL lub mniejszych baz
+       danych jesteśmy szybsi przy wielu użytkownikach, skomplikowaych
+       zapytaniach i dużym obciążeniu podczas. MySQL jest szybszy dla
+       prostych SELECTów wykonywanych przez niewielu użytkowników.
+       Spowodowane jest to narzutem, który się pojawia przy transakcjach.
+       Oczywiście MySQL nie ma większości z rozwiązań opisanych powyżej
+       w sekcji  Możliwości . PostgreSQL został stworzony z myślą o
+       stabilności, oraz szerokiej gamie możliwości, ale mimo to staramy
+       się w każdej wersji poprawiać jego wydajność.
+       Ciekawe porównanie PostgreSQL i MySQL można znaleźć pod adresem 
       "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html
-       Dodatkowo, MySQL jest firm±, która dystrybuuje jej produkty poprzez
-       zasadê Open Source i wymaga wykupienia licencji w przypadku
+       Dodatkowo, MySQL jest firmą, która dystrybuuje jej produkty poprzez
+       zasadę Open Source i wymaga wykupienia licencji w przypadku
        tworzenia close-source software, co ie ma miejsca w przypadku
        PostgreSQL.
       
       
-      
Stabilno¶æ
-
-      
Zdajemy sobie sprawê, ¿e DBMS musi byæ stabilny,
-       w przeciwnym wypadku jest bez warto¶ci. Staramy siê publikowaæ kod
-       stabilny, dobrze przetestowany, z minimum mo¿liwych b³êdów. Ka¿de
-       wydanie poprzedza co najmniej miesi±c testów wersji beta. Patrz±c na
-       historiê wydañ PostgreSQL widaæ, ¿e dostarczamy stabilne, dobrze
-       sprawdzone wersje, które s± gotowe do u¿ycia w ¶rodowisku
-       produkcyjnym. My¶limy, ¿e proces publikowania kolejnych wersji
-       opracowany przez nas jest jednym z lepszych w¶ród innych twórców
+      
Stabilność
+
+      
Zdajemy sobie sprawę, że DBMS musi być stabilny,
+       w przeciwnym wypadku jest bez wartości. Staramy się publikować kod
+       stabilny, dobrze przetestowany, z minimum możliwych błędów. Każde
+       wydanie poprzedza co najmniej miesiąc testów wersji beta. Patrząc na
+       historię wydań PostgreSQL widać, że dostarczamy stabilne, dobrze
+       sprawdzone wersje, które są gotowe do użycia w środowisku
+       produkcyjnym. Myślimy, że proces publikowania kolejnych wersji
+       opracowany przez nas jest jednym z lepszych wśród innych twórców
        oprogramowania bazodanowego.
       
       
 
       
Wsparcie
 
-      
Dziêki naszym listom mailowym masz dostêp do du¿ej liczby
-       programistów i u¿ytkowników, którzy pomagaj± rozwi±zaæ ka¿dy
-       napotkany problem. Chocia¿ nie mo¿emy gwarantowaæ znalezienia
-       rozwi±zania danego problemu, nie ró¿nimy siê w tym od innych
-       komercyjnych systemów DBMS. Bezpo¶redni kontakt z
-       programistami, u¿ytkownikami, dokumentacj± i kodem ¼ród³owym
-       sprawiaj±, ¿e wsparcie oferowane PostgreSQL niejednokrotnie jest
-       lepsze ni¿ w innych systemach DBMS. Istnieje tak¿e
-       mo¿liwo¶æ skorzystania z komercyjnego wsparcia dla tych, których
-       takiego rozwi±zania potrzebuj±.
-      (Sprawd¼ ten punkt FAQ.)
+      
Dzięki naszym listom mailowym masz dostęp do dużej liczby
+       programistów i użytkowników, którzy pomagają rozwiązać każdy
+       napotkany problem. Chociaż nie możemy gwarantować znalezienia
+       rozwiązania danego problemu, nie różnimy się w tym od innych
+       komercyjnych systemów DBMS. Bezpośredni kontakt z
+       programistami, użytkownikami, dokumentacją i kodem źródłowym
+       sprawiają, że wsparcie oferowane PostgreSQL niejednokrotnie jest
+       lepsze niż w innych systemach DBMS. Istnieje także
+       możliwość skorzystania z komercyjnego wsparcia dla tych, których
+       takiego rozwiązania potrzebują.
+      (Sprawdź ten punkt FAQ.)
       
       
 
       
Cena
 
-      
Korzystanie z PostgreSQL jest darmowe, zarówno w przypadku
-       komercyjnym jak i niekomercyjnym. Mo¿esz korzystaæ z naszego kodu
-       ¼ród³owego w Twoim produkcie bez ¿adnych ograniczeñ, poza tymi
-       wymienionymi w licencji BSD przytoczonej powy¿ej.
+      
Korzystanie z PostgreSQL jest darmowe, zarówno w przypadku
+       komercyjnym jak i niekomercyjnym. Możesz korzystać z naszego kodu
+       źródłowego w Twoim produkcie bez żadnych ograniczeń, poza tymi
+       wymienionymi w licencji BSD przytoczonej powyżej.
       
       
     
 
-    

1.15) W jaki sposób mogê wesprzeæ finansowo

+    

1.15) W jaki sposób mogę wesprzeć finansowo

         PostgreSQL?
 
-    

PostgreSQL korzysta z najlepszej infrastruktury od samego pocz±tku

-    istnienia projektu, czyli roku 1996 kiedy rozpoczeli¶my pracê. Wszystko 
-    to zawdziêczamy Marc'owi Fournier'owi, który stworzy³ t± infrastrukturê 
-    i zarz±dza ni± od lat.

+    

PostgreSQL korzysta z najlepszej infrastruktury od samego początku

+    istnienia projektu, czyli roku 1996 kiedy rozpoczeliśmy pracę. Wszystko 
+    to zawdzięczamy Marc'owi Fournier'owi, który stworzył tą infrastrukturę 
+    i zarządza nią od lat.

 
-    

Wysokiej jako¶ci infrastruktura jest bardzo wa¿na dla ka¿dego

+    

Wysokiej jakości infrastruktura jest bardzo ważna dla każdego

     projektu open-source. Zapobiega przerwom w rozwoju projektu i
     jakimkolwiek przestojom.

 
-    

Oczywi¶cie korzystanie z wysokiej jako¶ci infrastruktury nie jest

-    tanie. Istnieje wiele ró¿nych miesiêcznych, czy jednorazowych
-    wydatków, które trzeba ponosiæ aby wszystko dzia³a³o jak nale¿y.
-    Je¶li Ty, b±d¼ Twoja firma mo¿e wspomóc finansowo rozwój PostgreSQL
-    odwied¼ adres: 
+    

Oczywiście korzystanie z wysokiej jakości infrastruktury nie jest

+    tanie. Istnieje wiele różnych miesięcznych, czy jednorazowych
+    wydatków, które trzeba ponosić aby wszystko działało jak należy.
+    Jeśli Ty, bądź Twoja firma może wspomóc finansowo rozwój PostgreSQL
+    odwiedź adres: 
     "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/
-    gdzie opisane jest jak to zrobiæ.

+    gdzie opisane jest jak to zrobić.

 
-    

Chocia¿ na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"

-    s± przeznaczone jedynie na rozwój projektu PostgreSQL i nie s±
-    przeznaczane na finansowanie jakiejkolwiek firmy. Jeli wolisz, 
-    mo¿esz wys³aæ czek na adres kontaktowy.

+    

Chociaż na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"

+    są przeznaczone jedynie na rozwój projektu PostgreSQL i nie są
+    przeznaczane na finansowanie jakiejkolwiek firmy. Jeśli wolisz, 
+    możesz wysłać czek na adres kontaktowy.

     
-    Je¶li mo¿esz siê pochwaliæ udanymi wdro¿eniami PostgreSQL, prosimy
-    aby¶ zg³osi³ nam to na stronie: 
+    Jeśli możesz się pochwalić udanymi wdrożeniami PostgreSQL, prosimy
+    abyś zgłosił nam to na stronie: 
     href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org.
 
     User Client Questions
 
-    

2.1) Czy s± jakie¶ driwery ODBC dla

+    

2.1) Czy są jakieś driwery ODBC dla

         PostgreSQL?
 
-    

Dostêpne s± dwa driwery ODBC: PsqlODBC

+    

Dostępne są dwa driwery ODBC: PsqlODBC

     i OpenLink ODBC.

 
-    

Mo¿esz pobraæ PsqlODBC z adresu 

+    

Możesz pobrać PsqlODBC z adresu 

     href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
     

     
-    

OpenLink ODBC mo¿e byæ pobrany z adresu: 

+    

OpenLink ODBC może być pobrany z adresu: 

     "http://www.openlinksw.com/">http://www.openlinksw.com.
-    Wspó³pracuje ze standardowym oprogramowaniem klienckim ODBC
-    wiêc w ten sposób mo¿esz korzystaæ z PostgreSQL ODBC
-    dostêpnego na ka¿dej pltaformie któr± wspiera (Win, Mac, Unix, VMS).

+    Współpracuje ze standardowym oprogramowaniem klienckim ODBC
+    więc w ten sposób możesz korzystać z PostgreSQL ODBC
+    dostępnego na każdej pltaformie którą wspiera (Win, Mac, Unix, VMS).

 
-    

Autorzy bêd± prawdopodobnie sprzedawaæ ten produkt osobom które

-    wymagaj± komercyjnego wsparcia, ale wersja darmowa bêdzie zawsze
-    dostêpna. Wszystkie pytania mo¿esz wysy³aæ na adres: 
+    

Autorzy będą prawdopodobnie sprzedawać ten produkt osobom które

+    wymagają komercyjnego wsparcia, ale wersja darmowa będzie zawsze
+    dostępna. Wszystkie pytania możesz wysyłać na adres: 
 
-    

2.2) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do

+    

2.2) Jakie istnieją narzędzia pozwalające na dostęp do

          PostgreSQL przez www?
 
-    

Dobry podrêcznik dla pocz±tkuj±cych o dostêpie do bazy danych

-    przez www mo¿esz znale¼æ pod adresem:
+    

Dobry podręcznik dla początkujących o dostępie do bazy danych

+    przez www możesz znaleźć pod adresem:
     http://www.webreview.com

 
-    

Do integracji z www, ¶wietnym rozwi±zaniem jest PHP. Mo¿esz

-    znale¼æ wiêcej informacji na ten temat pod adresem
+    

Do integracji z www, świetnym rozwiązaniem jest PHP. Możesz

+    znaleźć więcej informacji na ten temat pod adresem
     http://www.php.net.

 
-    

Wiele osób w przypadku skomplikowanych rozwi±zañ uzywa Perl'a i

-    modu³u CGI.pl lub mod_perl.

+    

Wiele osób w przypadku skomplikowanych rozwiązań uzywa Perl'a i

+    modułu CGI.pl lub mod_perl.

 
-    

2.3)  Czy istnieje jakie GUI dla PostgreSQL?

+    

2.3)  Czy istnieje jakieś GUI dla PostgreSQL?

 
-    

Tak, istnieje kilka interfejsów graficznych dla PostgreSQL.

-    W¶ród nich PgAccess (
+    

Tak, istnieje kilka interfejsów graficznych dla PostgreSQL.

+    Wśród nich PgAccess (
     http://www.pgaccess.org), PgAdmin III (
     href="http://www.pgadmin.org">http://www.pgadmin.org), 
     RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall (
    http://www.thekompany.com/products/rekall/, komercyjny). Istnieje
-   tak¿e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
+   także PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
    interfejs dla PostgreSQL.
    

    

-   Wiêcej informacji na ten temat znajduje siê pod adresem See
+   Więcej informacji na ten temat znajduje się pod adresem See
    http://techdocs.postgresql.org/guides/GUITools.

     
-    

2.4) Za pomoc± jakich jêzyków programowania

-    mo¿na siê komunikowaæ z PostgreSQL?
+    

2.4) Za pomocą jakich języków programowania

+    można się komunikować z PostgreSQL?
     
-    

Najbardziej popularne jêzyki posiiadaj± w³asny interfejs dla

-    PostgreSQL. Sprawd¼ listê rozszerzeñ dla intersuj±cego Ciebie jêzyka
+    

Najbardziej popularne języki posiiadają własny interfejs dla

+    PostgreSQL. Sprawdź listę rozszerzeń dla intersującego Ciebie języka
     programowania.

     
-    

Ze ¼ród³ami PostreSQL dystrubuowane s± interfejsy dla

-    nastêpuj±cych jêzyków programowania:

+    

Ze źródłami PostreSQL dystrubuowane są interfejsy dla

+    następujących języków programowania:

 
 
     
     
           
  • TCL (libpgtcl)
  •      
    -   Inne interfejsy s± dostêpne pod adresem: 
    +   Inne interfejsy są dostępne pod adresem: 
         http://gborg.postgresql.org w
        sekcji Drivers/Interfaces.
         
     
    -    Pytania dotycz±ce administracji
    +    Pytania dotyczące administracji
     
    -    

    3.1) Jak mogê zainstalowaæ PostgreSQL w innej

    -             lokalizacji ni¿ /usr/local/pgsql?
    +    

    3.1) Jak mogę zainstalować PostgreSQL w innej

    +             lokalizacji niż /usr/local/pgsql?
     
    -    

    U¿yj opcji --prefix podczas uruchamiania skryptu

    +    

    Użyj opcji --prefix podczas uruchamiania skryptu

         configure.

     
         

    3.2) Podczas startu postmaster'a,

    -         otrzymujê komunikat o b³êdzie: Bad System Call lub "core dumped".
    +         otrzymuję komunikat o błędzie: Bad System Call lub "core dumped".
                Dlaczego?
     
     
    -    

    Ten b³±d mo¿e byæ wynikiem wielu problemów, ale na pocz±tek

    -    sprawd¼ czy masz zainstalowane rozszerzenia systemu V w j±drze
    -    systemu. PostgreSQL wymaga do pracy zainstalowanej obs³ugi pamiêci
    -    dzielonej i semaforów.

    +    

    Ten błąd może być wynikiem wielu problemów, ale na początek

    +    sprawdź czy masz zainstalowane rozszerzenia systemu V w jądrze
    +    systemu. PostgreSQL wymaga do pracy zainstalowanej obsługi pamięci
    +    dzielonej i semaforów.

     
         

    3.3) Podczas startu postmaster'a,

    -         otrzymujê komunikat o b³êdzie: IpcMemoryCreate.
    +         otrzymuję komunikat o błędzie: IpcMemoryCreate.
                Dlaczego?
     
    -    

    Albo nie masz poprawnie skonfigurowanej obs³ugi pamiêci dzielonej

    -    w j±drze systemu, albo musisz zwiêkszyæ jej dostêpny rozmiar.
    -    Dok³adna ilo¶æ jak± potrzebujesz jest zale¿na od architektury systemu
    -    na jakim pracujesz, jak du¿o buforów oraz jak du¿o procesów backendu
    -    skonfigurowa³e¶ dla postmaster'a. Dla wiêkszo¶ci systemów, z
    -    domy¶ln± liczb± buforów i procesów potrzebujesz minimum w
    -    przybli¿eniu 1MB. Zobacz  
    +    

    Albo nie masz poprawnie skonfigurowanej obsługi pamięci dzielonej

    +    w jądrze systemu, albo musisz zwiększyć jej dostępny rozmiar.
    +    Dokładna ilość jaką potrzebujesz jest zależna od architektury systemu
    +    na jakim pracujesz, jak dużo buforów oraz jak dużo procesów backendu
    +    skonfigurowałeś dla postmaster'a. Dla większości systemów, z
    +    domyślną liczbą buforów i procesów potrzebujesz minimum w
    +    przybliżeniu 1MB. Zobacz  
         "http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL
    -    Administrator's Guide gdzie szczegó³owo zosta³o opisane
    -    wykorzystanie pamiêci dzielonej i semaforów.

    +    Administrator's Guide gdzie szczegółowo zostało opisane
    +    wykorzystanie pamięci dzielonej i semaforów.

     
         

    3.4) Podczas startu postmaster'a,

    -         otrzymujê komunikat o b³êdzie: IpcSemaphoreCreate.
    +         otrzymuję komunikat o błędzie: IpcSemaphoreCreate.
                Dlaczego?
                
    -    

    Je¶li tre¶æ b³êdu brzmi: IpcSemaphoreCreate: semget failed

    -    (No space left on device) oznacza to, ¿e j±dro systemu nie jest
    -    skonfigurowane do obs³ugi wystarczaj±cej liczby semaforów.
    +    

    Jeśli treść błędu brzmi: IpcSemaphoreCreate: semget failed

    +    (No space left on device) oznacza to, że jądro systemu nie jest
    +    skonfigurowane do obsługi wystarczającej liczby semaforów.
         Postgres wymaga jednego semafor'a na potencjalny jeden proces backend.
    -    Tymczasowym rozwi±zaniem jest uruchomienie programu postmaster
    -    z mniejsz±  maksymaln± liczb± procesów backend.
    -    U¿yj opcji -N z parameterem mniejszym od domy¶lnego - 32.   
    -    Bardziej trwa³ym rozwi±zaniem jest zwiêkszenie parametrów
    -    SEMMNS i SEMMNI j±dra twojego systemu.

    +    Tymczasowym rozwiązaniem jest uruchomienie programu postmaster
    +    z mniejszą  maksymalną liczbą procesów backend.
    +    Użyj opcji -N z parameterem mniejszym od domyślnego - 32.   
    +    Bardziej trwałym rozwiązaniem jest zwiększenie parametrów
    +    SEMMNS i SEMMNI jądra twojego systemu.

     
    -    

    Niedzia³aj±ce semafory mog± spowodowaæ niepoprawne zamkniêcie

    +    

    Niedziałające semafory mogą spowodować niepoprawne zamknięcie

         systemu w czasie intensywnego korzystania z bazy.

         
    -    

    Je¶li tre¶æ b³êdu jest inna, mo¿e to oznaczaæ, ¿e obs³uga semaforó

    -    nie zosta³a w³±czona do j±dra wcale. Zobacz PostgreSQL 
    -    Administrator's Guide po bardziej szczegó³owe informacje o pamiêci 
    +    

    Jeśli treść błędu jest inna, może to oznaczać, że obsługa semaforó

    +    nie została włączona do jądra wcale. Zobacz PostgreSQL 
    +    Administrator's Guide po bardziej szczegółowe informacje o pamięci 
         dzielonej i semaforach.

     
    -    

    3.5) W jaki sposób mogê kontrolowaæ po³±czenia

    -    z innych hostów?
    +    

    3.5) W jaki sposób mogę kontrolować połączenia

    +    z innych hostów?
     
    -    

    Domy¶lnie PostgreSQL pozwala jedynie na po³±czenia za pomoc±

    -    socketów Unixowych z lokalnego hosta. Inne hosty nie bêd±  mog³y siê
    -    po³±czyæ z serwerem dopóki nie zostanie dodana opcja -i do
    +    

    Domyślnie PostgreSQL pozwala jedynie na połączenia za pomocą

    +    socketów Unixowych z lokalnego hosta. Inne hosty nie będą  mogły się
    +    połączyć z serwerem dopóki nie zostanie dodana opcja -i do
         postmaster'a,
    -    oraz nie umo¿liwi siê autoryzacji na podstawie adresu hostów
    -    modyfikuj±c odpowiednio plik
    -    $PGDATA/pg_hba.conf. To zmiany pozwol± na po³±czenia TCP/IP.

    +    oraz nie umożliwi się autoryzacji na podstawie adresu hostów
    +    modyfikując odpowiednio plik
    +    $PGDATA/pg_hba.conf. To zmiany pozwolą na połączenia TCP/IP.

     
    -    

    3.6) Jak powinienem skonfigurowaæ system baz

    -         danych aby uzyskaæ lepsz± wydajno¶æ?
    +    

    3.6) Jak powinienem skonfigurować system baz

    +         danych aby uzyskać lepszą wydajność?
     
    -    

    Indeksy bez w±tpienia mog± przyspieszyæ wykonywanie zapytañ.

    -    Polecenie EXPLAIN pozwala zobaczyæ jak PostgreSQL
    -    interpretuje Twoje zapytanie i które indeksy s± u¿ywane.

    +    

    Indeksy bez wątpienia mogą przyspieszyć wykonywanie zapytań.

    +    Polecenie EXPLAIN pozwala zobaczyć jak PostgreSQL
    +    interpretuje Twoje zapytanie i które indeksy są używane.

     
    -    

    Je¶li wykonujesz bardzo du¿o INSERTów, mo¿e warto

    -    je wykonaæ za pomoc± jednego du¿ego pliku u¿ywaj±c polecenia
    -   COPY. Jest to du¿o szybsze ni¿ pojedyncze
    +    

    Jeśli wykonujesz bardzo dużo INSERTów, może warto

    +    je wykonać za pomocą jednego dużego pliku używając polecenia
    +   COPY. Jest to dużo szybsze niż pojedyncze
         INSERTy. Po drugie polecenia SQL nie zawarte w bloku
    -    okre¶laj±cym transakcjê - BEGIN WORK/COMMIT, s±
    -    traktowane jako pojedyncza transakcja. Rozwa¿ wykonanie kilku
    -    poleceñ/zdañ SQL w jednym bloku transakcji. To redukuje narzut
    -    nak³adany przez transakcjê. Przy du¿ych zmianach w danych, warto
    -    usun±æ i stworzyæ na nowo indeksy.

    -
    -    

    Jest kilka opcji pozwalaj±cych na poprawienie wydajno¶ci.

    -    Mo¿esz wy³±czyæ fsync() poprzez uruchomienie postmaster'a
    -    z opcjami -o -F. To spowoduje, ¿e
    -    fsync() nie bêdzie zrzuca³ danych na dysk po ka¿dej
    +    określającym transakcję - BEGIN WORK/COMMIT, są
    +    traktowane jako pojedyncza transakcja. Rozważ wykonanie kilku
    +    poleceń/zdań SQL w jednym bloku transakcji. To redukuje narzut
    +    nakładany przez transakcję. Przy dużych zmianach w danych, warto
    +    usunąć i stworzyć na nowo indeksy.

    +
    +    

    Jest kilka opcji pozwalających na poprawienie wydajności.

    +    Możesz wyłączyć fsync() poprzez uruchomienie postmaster'a
    +    z opcjami -o -F. To spowoduje, że
    +    fsync() nie będzie zrzucał danych na dysk po każdej
         transakcji.

     
    -    

    Mo¿esz tak¿e uruchomiæ postmaster'a z opcj± -B

    -    aby zwiêkszyæ wielko¶æ pamiêci dzielonej u¿ywanej przez procesy
    -    backendów. Je¶li ustawisz t± warto¶æ zbyt wysoko i przekroczysz limity
    -    ustawione przez kernel na pamiêæ dzielon±, postmaster  mo¿e siê
    -    nie uruchomiæ. Ka¿dy bufor zajmuje 8K a domy¶lna ilo¶æ buforów to 64.

    +    

    Możesz także uruchomić postmaster'a z opcją -B

    +    aby zwiększyć wielkość pamięci dzielonej używanej przez procesy
    +    backendów. Jeśli ustawisz tą wartość zbyt wysoko i przekroczysz limity
    +    ustawione przez kernel na pamięć dzieloną, postmaster  może się
    +    nie uruchomić. Każdy bufor zajmuje 8K a domyślna ilość buforów to 64.

     
    -    

    Mo¿esz tak¿e u¿yæ opcji -S dla backendu aby zwiêkszyæ

    -    maksymaln± warto¶æ pamiêci u¿ywan± przez proces backendu podczas
    -    sortowania. Opcja -S jest ustawiana warto¶ci± podawan± w
    -    kilobajtach, domy¶lna warto¶æ to 512K.

    +    

    Możesz także użyć opcji -S dla backendu aby zwiększyć

    +    maksymalną wartość pamięci używaną przez proces backendu podczas
    +    sortowania. Opcja -S jest ustawiana wartością podawaną w
    +    kilobajtach, domyślna wartość to 512K.

     
    -    

    Mo¿esz tak¿e u¿yæ polecenia CLUSTER aby pogrupowaæ

    +    

    Możesz także użyć polecenia CLUSTER aby pogrupować

         dane w tabelach wg indeksu. Zobacz opis polecenia CLUSTER
    -    w manualu ¿eby dowiedzieæ siê wiêcej.

    +    w manualu żeby dowiedzieć się więcej.

     
    -    

    3.7) Jakie s± mo¿liwo¶ci wyszukiwania

    -    b³êdów?
    +    

    3.7) Jakie są możliwości wyszukiwania

    +    błędów?
     
    -    

    PostgreSQL ma kilka mo¿liwo¶ci na raportowanie informacji o

    -    jego statusie, które mog± byæ przydatne przy debugowaniu procesu.

    +    

    PostgreSQL ma kilka możliwości na raportowanie informacji o

    +    jego statusie, które mogą być przydatne przy debugowaniu procesu.

     
    -    

    Przede wszystkim uruchom skrypt configure z opcj±

    -    --enable-cassert, wiele funkcji assert() monitoruj± postêp
    -    procesu backend i zatrzymuj± program kiedy wydarzy siê co¶
    +    

    Przede wszystkim uruchom skrypt configure z opcją

    +    --enable-cassert, wiele funkcji assert() monitorują postęp
    +    procesu backend i zatrzymują program kiedy wydarzy się coś
         nieoczekiwanego.

     
    -    

    Zarówno postmaster jak i postgres maj± kilka opcji

    -    do debugowania. Za ka¿dym razem kiedy uruchamiasz postmaster'a,
    -    upewnij siê, ¿e wysy³asz standardowe wyj¶cie i error do pliku z
    -    logami, np. w ten sposób:

    +    

    Zarówno postmaster jak i postgres mają kilka opcji

    +    do debugowania. Za każdym razem kiedy uruchamiasz postmaster'a,
    +    upewnij się, że wysyłasz standardowe wyjście i error do pliku z
    +    logami, np. w ten sposób:

     
         cd /usr/local/pgsql
         ./bin/postmaster >server.log 2>&1 &
     
     
    -    

    To utworzy plik server.log w g³ównym katalogu PostgreSQL.

    -    Ten plik zawiera po¿yteczne informacje o problemach i b³êdach, które
    -    wydarzy³y siê podczas pracy serwera. Postmaster posiada opcjê
    -    -d, która pozwala na raportowanie bardzo szczególowych
    -    informacji. Do opcji -d podajemy liczbê, która okre¶la
    -    szczegó³owo¶æ wysy³anych informacji. Musisz mieæ ¶wiadomo¶æ, ¿e
    -    wysoki poziom logowania bêdzie powodowa³ tworzenie bardzo duzych
    -    plików z logami.

    -
    -    

    Je¶li postmaster nie zosta³ uruchomiony, mo¿esz uruchomiæ

    -    postgres'owy backend z linii poleceñ, i uruchomiæ Twoje
    -    polecenie SQL bezporednio na nim.
    -    Taki sposób jest polecany jedynie w przypadku debugowania.
    -    Zwróæ uwagê, ¿e w tym wypadku zapytanie koñczy znak nowej linii a nie
    -    ¶rednik. Je¶li skompilowa³e¶ z opcjami debugowania mozesz u¿yæ
    -    debuggera aby sprawdziæ co siê dzieje. Poniew¿ backend nie zosta³
    -    uruchomiony przez postmaster'a, nie dzia³a w identycznym
    -    ¶rodowisku, co oznacza ¿e powtórzenie warunków w jakich wyst±pi³y
    -    problemy moze byæ problemem.

    -
    -    

    Je¶li postmaster dzia³a, uruchom psql w jednym z

    -    okien, nastêpnie znajd¼ PID procesu postgres
    -    u¿ywanego przez psql. U¿yj debuggera aby do
    -    PID'u postgres'a. Mo¿esz ustawiaæ pu³apki
    -    (breakpoints) w debuggerze i wykonywaæ zapytania z psql
    -    Je¶li debugujesz uruchamianie postgres'a, mo¿esz ustawiæ zmienn±
    -    PGOPTIONS="-W n", nastêpnie uruchomiæ psql
    -    Opcja ta pozwoli spowolniæ uruchomienie na  
    -    n sekund aby¶ móg³ siê po³±czyæ z procesem za pomoc±
    -    debugera, ustawiæ jakiekolwiek pu³apki i kontynuowaæ proces
    +    

    To utworzy plik server.log w głównym katalogu PostgreSQL.

    +    Ten plik zawiera pożyteczne informacje o problemach i błędach, które
    +    wydarzyły się podczas pracy serwera. Postmaster posiada opcję
    +    -d, która pozwala na raportowanie bardzo szczególowych
    +    informacji. Do opcji -d podajemy liczbę, która określa
    +    szczegółowość wysyłanych informacji. Musisz mieć świadomość, że
    +    wysoki poziom logowania będzie powodował tworzenie bardzo duzych
    +    plików z logami.

    +
    +    

    Jeśli postmaster nie został uruchomiony, możesz uruchomić

    +    postgres'owy backend z linii poleceń, i uruchomić Twoje
    +    polecenie SQL bezpośrednio na nim.
    +    Taki sposób jest polecany jedynie w przypadku debugowania.
    +    Zwróć uwagę, że w tym wypadku zapytanie kończy znak nowej linii a nie
    +    średnik. Jeśli skompilowałeś z opcjami debugowania mozesz użyć
    +    debuggera aby sprawdzić co się dzieje. Poniewż backend nie został
    +    uruchomiony przez postmaster'a, nie działa w identycznym
    +    środowisku, co oznacza że powtórzenie warunków w jakich wystąpiły
    +    problemy moze być problemem.

    +
    +    

    Jeśli postmaster działa, uruchom psql w jednym z

    +    okien, następnie znajdź PID procesu postgres
    +    używanego przez psql. Użyj debuggera aby do
    +    PID'u postgres'a. Możesz ustawiać pułapki
    +    (breakpoints) w debuggerze i wykonywać zapytania z psql
    +    Jeśli debugujesz uruchamianie postgres'a, możesz ustawić zmienną
    +    PGOPTIONS="-W n", następnie uruchomić psql
    +    Opcja ta pozwoli spowolnić uruchomienie na     
    +    n sekund abyś mógł się połączyć z procesem za pomocą
    +    debugera, ustawić jakiekolwiek pułapki i kontynuować proces
         uruchamiania.

     
    -    

    postgres mo¿e byæ uruchamiany z opcjami -s, -A i

    -    -t, które mog± byæ bardzo przydatne przy debuggowaniu i ocenie
    -    wydajnoci.

    +    

    postgres może być uruchamiany z opcjami -s, -A i

    +    -t, które mogą być bardzo przydatne przy debuggowaniu i ocenie
    +    wydajności.

     
    -    

    Mo¿esz tak¿e skompilowaæ z profilingiem aby zobaczyæ jakie funkcje

    -    ile czasu wykonuj± siê. Pliki profilowane dla backendu zostan±
    +    

    Możesz także skompilować z profilingiem aby zobaczyć jakie funkcje

    +    ile czasu wykonują się. Pliki profilowane dla backendu zostaną
         umieszczone w katalogu
    -    pgsql/data/base/dbname. Pliki profilu klienta zostan±
    -    umieszczone w bie¿±cym katalogu klienta. Linux wymaga aby kompilowaæ
    -    z opcj± -DLINUX_PROFILE aby profilowanie odbywa³o siê
    +    pgsql/data/base/dbname. Pliki profilu klienta zostaną
    +    umieszczone w bieżącym katalogu klienta. Linux wymaga aby kompilować
    +    z opcją -DLINUX_PROFILE aby profilowanie odbywało się
         poprawnie.

     
    -    

    3.8) Sk±d siê bierze komunikat: "Sorry, too

    -    many clients" podczas próby po³±czenia siê z baz± danych?
    +    

    3.8) Skąd się bierze komunikat: "Sorry, too

    +    many clients" podczas próby połączenia się z bazą danych?
     
    -    

    Musisz zwiêkszyæ limit ilo¶ci jednoczesnych procesów bacekendu

    +    

    Musisz zwiększyć limit ilości jednoczesnych procesów bacekendu

         dla procesu postmaster'a.

     
    -    

    Domy¶lny limit to 32 procesy. Mo¿esz go zwiêkszyæ przez restart

    -    postmaster z odpowiedni± warto¶ci± ustawian± opcjê -N w
    +    

    Domyślny limit to 32 procesy. Możesz go zwiększyć przez restart

    +    postmaster z odpowiednią wartością ustawianą opcję -N w
         pliku postgresql.conf.

     
    -    

    We¼ pod uwagê, ¿e je¶li zwiêkszysz warto¶æ podan± w opcji

    -    -N na wiêcej ni¿ 32 musisz tak¿e zwiêkszyæ warto¶æ w opcji
    -    -B ponad jej domy¶ln± warto¶æ 64; warto¶æ -B musi byæ
    -    co najmniej dwa razy wiêksza od warto¶ci podanej w opcji 
    -    -N, a prawdopodobnie powinna byæ w rzeczywisto¶ci jeszcze
    -    wiêksza dla optymalnej wydajno¶ci.
    -    Dla du¿ej liczby procesów backendu na pewno zauwa¿ysz, ¿e trzeba
    -    zwiêkszyæ ró¿ne parametry j±dra Unixa. Rzeczy, które powniene¶
    -    sprawdziæ to maksymalna liczba bloków pamiêci dzielonej, 
    -    SHMMAX; maksymalna liczba semaforów, SEMMNS
    +    

    Weź pod uwagę, że jeśli zwiększysz wartość podaną w opcji

    +    -N na więcej niż 32 musisz także zwiększyć wartość w opcji
    +    -B ponad jej domyślną wartość 64; wartość -B musi być
    +    co najmniej dwa razy większa od wartości podanej w opcji 
    +    -N, a prawdopodobnie powinna być w rzeczywistości jeszcze
    +    większa dla optymalnej wydajności.
    +    Dla dużej liczby procesów backendu na pewno zauważysz, że trzeba
    +    zwiększyć różne parametry jądra Unixa. Rzeczy, które pownieneś
    +    sprawdzić to maksymalna liczba bloków pamięci dzielonej, 
    +    SHMMAX; maksymalna liczba semaforów, SEMMNS
         oraz SEMMNI; 
    -    maksymalna liczba procesów, NPROC; maksymalna liczba
    -    procesów na jednego u¿ytkownika, MAXUPRC; i maksymalna
    -    liczba otwartych plików, NFILE oraz
    -    NINODE. Powód dla którego PostgreSQL ma limit na
    -    maksymaln± liczbê procesów backendu to obawa o wyczerpanie zasobów
    +    maksymalna liczba procesów, NPROC; maksymalna liczba
    +    procesów na jednego użytkownika, MAXUPRC; i maksymalna
    +    liczba otwartych plików, NFILE oraz
    +    NINODE. Powód dla którego PostgreSQL ma limit na
    +    maksymalną liczbę procesów backendu to obawa o wyczerpanie zasobów
         systemu.

     
    -    

    3.9)  Jakie pliki znajduj± siê w pg_temp?

    +    

    3.9)  Jakie pliki znajdują się w pg_temp?

     
         

    Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla 

    -    przyk³adu, je¶li jaka¶ operacja sortowania jest wymagana do wykonania
    -    ORDER BY, a samo sortowanie wymaga wiêcej  miejsca ni¿
    +    przykładu, jeśli jakaś operacja sortowania jest wymagana do wykonania
    +    ORDER BY, a samo sortowanie wymaga więcej  miejsca niż
         parametr backendu
    -    -S ustawi³ do wykorzystania, wtedy tymczasowe pliki s± u¿ywane
    +    -S ustawił do wykorzystania, wtedy tymczasowe pliki są używane
         do przechowywania tych danych.

     
    -    

    Pliki tymczasowe powinny byæ usuniête automatycznie, ale mog³o siê

    -    to nie staæ je¶li proces backendu w miêdzyczasie nie zakoñczy³ siê
    -    poprawnie podczas operacji sortowania. Jeli w danym momencie nie
    -    dzia³aj± ¿adne procesy backendów mozesz spokojnie usun±æ pliki
    +    

    Pliki tymczasowe powinny być usunięte automatycznie, ale mogło się

    +    to nie stać jeśli proces backendu w międzyczasie nie zakończył się
    +    poprawnie podczas operacji sortowania. Jeśli w danym momencie nie
    +    działają żadne procesy backendów mozesz spokojnie usunąć pliki
         pg_tempNNN.NN.

     
         

    3.9) Dlaczego konieczne jest przy upgradzie

    -         PostgreSQL korzystanie ze skryptów dump i restore?
    +         PostgreSQL korzystanie ze skryptów dump i restore?
         

    -    Twórcy PostgreSQL dokonuj± jedynie ma³ych zmian pomiêdzy ma³ymi
    +    Twórcy PostgreSQL dokonują jedynie małych zmian pomiędzy małymi
         upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
    -    korzystania z dump i restore. Przy wiêkszych zmianach, np. z wersji
    -    7.2 do 7.3, czêsto zmianymaj± wp³yw na format przechowywanych danych.
    -    Zmiany te s± na tyle skomplikowane, ¿e nie utrzymujemy zgodo¶ci z
    +    korzystania z dump i restore. Przy większych zmianach, np. z wersji
    +    7.2 do 7.3, często zmianymają wpływ na format przechowywanych danych.
    +    Zmiany te są na tyle skomplikowane, że nie utrzymujemy zgodości z
         poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
    -    takiej postaci, w której ³atwe jest ich zaimportowanie do nowszych
    -    wersji bez k³opotu.
    +    takiej postaci, w której łatwe jest ich zaimportowanie do nowszych
    +    wersji bez kłopotu.
         

         

    -    W wydaniach gdzie zmiany nie dotycz± formatu danych na dysku, mo¿na
    -    wykorzystaæ skryptu pg_upgrade, do upgradu bez u¿ycia dump/restore.
    -    Dokumentacja do danego wydania zawiera informacjê czy mo¿liwe jest
    -    u¿ycie pg_upgrade.
    +    W wydaniach gdzie zmiany nie dotyczą formatu danych na dysku, można
    +    wykorzystać skryptu pg_upgrade, do upgradu bez użycia dump/restore.
    +    Dokumentacja do danego wydania zawiera informację czy możliwe jest
    +    użycie pg_upgrade.
         

         
     
    -    Pytania dotycz±ce u¿ywania
    +    Pytania dotyczące używania
     
    -    

    4.1) Jaka jest ró¿nica pomiêdzy kursorami

    -        binarnymi (binary cursors) i zwyk³ymi kursorami (normal
    +    

    4.1) Jaka jest różnica pomiędzy kursorami

    +        binarnymi (binary cursors) i zwykłymi kursorami (normal
              cursors)?
     
         

    Zobacz w manualu opis polecenia DECLARE.

     
    -    

    4.2) Jak mogê pobraæ za pomoc±

    -    SELECT jedynie kilka pierwszych wyników
    +    

    4.2) Jak mogę pobrać za pomocą

    +    SELECT jedynie kilka pierwszych wyników
         zapytania?
         
    -    

    Zobacz w manualu opis polecenia FETCH lub u¿yj

    +    

    Zobacz w manualu opis polecenia FETCH lub użyj

         polecenia SELECT ... LIMIT....

     
    -    

    Nawet je¶li chesz pobraæ kilka pierwszych rzêdów z wyniku

    -    zapytania, ca³e zapytanie musi zostaæ wykonane. Byc mo¿e powiniene¶
    -    skorzystaæ z polecenia ORDER BY.
    -    Je¶li istnieje indeks który odpowiada polom okre¶lonym przez
    -    ORDER BY, PostgreSQL mo¿e wykorzystaæ jedynie kilka
    -    pierwszych rzêdów, byæ mo¿e bêdzie konieczno¶æ wykonania zapytania do
    -    momentu a¿ zostan± znalezione po¿±dane wyniki.

    +    

    Nawet jeśli chesz pobrać kilka pierwszych rzędów z wyniku

    +    zapytania, całe zapytanie musi zostać wykonane. Byc może powinieneś
    +    skorzystać z polecenia ORDER BY.
    +    Jeśli istnieje indeks który odpowiada polom określonym przez
    +    ORDER BY, PostgreSQL może wykorzystać jedynie kilka
    +    pierwszych rzędów, być może będzie konieczność wykonania zapytania do
    +    momentu aż zostaną znalezione pożądane wyniki.

         

    -    Aby otrzymaæ losowy rz±d, u¿yj:

    +    Aby otrzymać losowy rząd, użyj:

         
         SELECT col
         FROM tab
         LIMIT 1;
         
     
    -    

    4.3) Jak mogê uzyskaæ listê wszystkich tabel

    +    

    4.3) Jak mogę uzyskać listę wszystkich tabel

         czy  innych rzeczy pod psql?
         
    -    

    Mo¿esz sprawdziæ zawarto¶æ ¼róde³ psql, a konkretnie plik

    +    

    Możesz sprawdzić zawartość źródeł psql, a konkretnie plik

         pgsql/src/bin/psql/describe.c. Zawiera on polecenia
    -    SQL które generuja wyniki komend z backslashem.
    -    Mo¿esz tak¿e uruchomiæ psql z opcj±
    -    -E wtedy po wykonaniu polecenia z backslashem wywietlane
    -    bêdzie zapytanie, które w rzeczywisto¶ci jest wykonywane.

    +    SQL które generuja wyniki komend z backslashem.
    +    Możesz także uruchomić psql z opcją
    +    -E wtedy po wykonaniu polecenia z backslashem wyświetlane
    +    będzie zapytanie, które w rzeczywistości jest wykonywane.

     
    -    

    4.4) Jak usun±æ kolumnê z tabeli lub zmieniæ

    +    

    4.4) Jak usunąć kolumnę z tabeli lub zmienić

         jej typ?
     
    -    

    DROP COLUMNT zosta³o dodane w wersji 7.3 przy poleceniu ALTER

    -    TABLE DROP COLUMN. We wcze¶ñiejszych wersjach mo¿esz zrobiæ tak:
    +    

    DROP COLUMNT zostało dodane w wersji 7.3 przy poleceniu ALTER

    +    TABLE DROP COLUMN. We wcześńiejszych wersjach możesz zrobić tak:
         

     
         BEGIN;
         LOCAL TABLE old_table;
    -    SELECT ...  -- wybierz wszystkie kolumny poza t± jedn± której chcesz siê pozbyæ
    +    SELECT ...  -- wybierz wszystkie kolumny poza tą jedną której chcesz się pozbyć
         INTO TABLE new_table
         FROM old_table;
         DROP TABLE old_table;
         ALTER TABLE new_table RENAME TO old_table;
     
        

    -   Aby zmieniæ typ danych kolumny mo¿esz zrobiæ tak:
    +   Aby zmienić typ danych kolumny możesz zrobić tak:
        

        
        BEGIN;
        COMMIT;
        
     
    -    

    4.5) Jaki jest maksymalny rozmiar dla rzêdu,

    +    

    4.5) Jaki jest maksymalny rozmiar dla rzędu,

              tabeli i bazy danych?
         
         

    Oto wszystkie ograniczenia:

     
    -    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istniej±
    -    bazy danych o wielkoci 32 TB databases )
    +    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istnieją
    +    bazy danych o wielkości 32 TB databases )
         Maksymalny rozmiar dla tabeli?           32 TB
    -    Maksymalny rozmiar dla rzêdu?            1.6 TB
    +    Maksymalny rozmiar dla rzędu?            1.6 TB
         Maksymalny rozmiar pola?                 1 GB
    -    Maksymalna liczba rzêdów w tabeli?       nieograniczona
    -    Maksymalna liczba kolumn w tabeli?       250-1600 w zale¿ono¶ci od typów kolumn
    -    Makasymalna liczba indeksów na tabeli?   nieograniczona
    +    Maksymalna liczba rzędów w tabeli?       nieograniczona
    +    Maksymalna liczba kolumn w tabeli?       250-1600 w zależoności od typów kolumn
    +    Makasymalna liczba indeksów na tabeli?   nieograniczona
     
     
    -   Oczywi¶cie "nieograniczony" nie jest prawd± tak do koñca, istniej±
    -   ograniczenia wynikaj±ce z dostêpnego miejsca na dysku, pamiêci/swapa.
    -   Kiedy wielko¶ci te bêd± bardzo du¿e mo¿e odbiæ siê to na wydajno¶ci.
    +   Oczywiście "nieograniczony" nie jest prawdą tak do końca, istnieją
    +   ograniczenia wynikające z dostępnego miejsca na dysku, pamięci/swapa.
    +   Kiedy wielkości te będą bardzo duże może odbić się to na wydajności.
     
         

    Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu

    -    operacyjnego wsparcia dla du¿ych plików. Du¿e tabele s± przechowywane
    -    jako pliki o rozmiarze 1 GB, wiêc ograniczenia co do wielko¶ci plików
    -    narzucone przez system plików nie s± istotne.

    +    operacyjnego wsparcia dla dużych plików. Duże tabele są przechowywane
    +    jako pliki o rozmiarze 1 GB, więc ograniczenia co do wielkości plików
    +    narzucone przez system plików nie są istotne.

     
    -    

    Masymalny rozmiar tabeli i maksymalna liczba kolumn mo¿e byæ

    -    zwiêkszona je¶li zwiêkszymy domy¶lny rozmiar bloku (block size) do
    +    

    Masymalny rozmiar tabeli i maksymalna liczba kolumn może być

    +    zwiększona jeśli zwiększymy domyślny rozmiar bloku (block size) do
         32k.

     
    -    

    4.6) Jak du¿o miejsca w bazie danych jest

    -         konieczne aby przechowywaæ dane ze zwyczajnego pliku
    +    

    4.6) Jak dużo miejsca w bazie danych jest

    +         konieczne aby przechowywać dane ze zwyczajnego pliku
                tekstowego?
     
    -    

    Baza danych PostgreSQL mo¿e potrzebowaæ do piêciu razy wiêcej

    -    miejsca na przechowywanie danych z plików tekstowych ni¿ ich
    -    objêto¶æ.

    +    

    Baza danych PostgreSQL może potrzebować do pięciu razy więcej

    +    miejsca na przechowywanie danych z plików tekstowych niż ich
    +    objętość.

     
    -    

    Jako przyk³ad mo¿emy rozwa¿yæ plik sk³adaj±cy siê z 100,000 linii

    -    zbudowanych z liczby ca³kowitej oraz opisu tekstowego w ka¿dej.
    -    Za³ó¿my, ¿e ¶rednio ka¿dy ³añcuch tekstu w linii zajmuje 20
    -    bajtów. Ca³y plik powinien zajmowaæ ok. 2.8 MB. Rozmiar pliku bazy danych w
    -    PostgreSQL zawieraj±cego te dane mozna oszacowaæ na oko³o 6.4MB:

    +    

    Jako przykład możemy rozważyć plik składający się z 100,000 linii

    +    zbudowanych z liczby całkowitej oraz opisu tekstowego w każdej.
    +    Załóżmy, że średnio każdy łańcuch tekstu w linii zajmuje 20
    +    bajtów. Cały plik powinien zajmować ok. 2.8 MB. Rozmiar pliku bazy danych w
    +    PostgreSQL zawierającego te dane mozna oszacować na około 6.4MB:

     
     
    -    36 bajtów: nag³ówek ka¿dego rzêdu w przybli¿eniu)
    +    36 bajtów: nagłówek każdego rzędu w przybliżeniu)
         24 bajty:  jedno pole int i jedno pole typu text
    -   + 4 bajty:  wka¼nik na stronie do krotki
    +   + 4 bajty:  wkaźnik na stronie do krotki
        --------------------------------------------------
    -    64 bajty w jednym rzêdzie
    +    64 bajty w jednym rzędzie
     
    -   Strona danych w PostgreSQL zajmuje 8192 bajtów (8 KB), wiêc:
    +   Strona danych w PostgreSQL zajmuje 8192 bajtów (8 KB), więc:
     
    -   8192 bajtów na stronê
    -   ---------------------   =  128 rzêdów na jedn± strone w bazie (zaokr±glone w dó³)
    -     64 bajtów na rz±d
    +   8192 bajtów na stronę
    +   ---------------------   =  128 rzędów na jedną strone w bazie (zaokrąglone w dół)
    +     64 bajtów na rząd
     
    -   100000 rzêdów danych
    -   -----------------------  =  782 stron w bazie danych (zaokr±glone w górê)
    -      128 rzêdów na stronê
    +   100000 rzędów danych
    +   -----------------------  =  782 stron w bazie danych (zaokrąglone w górę)
    +      128 rzędów na stronę
     
    -782 stron w bazie * 8192 bajtów na stronê  =  6,406,144 bajtów (6.4 MB)
    +782 stron w bazie * 8192 bajtów na stronę  =  6,406,144 bajtów (6.4 MB)
     
     
    -    

    Indeksy nie powoduj± du¿ego narzutu na zajmowane miejsce, 

    -    ale zawieraj± pewne dane,
    -    wiêc w pewnych przypadkach moga byæ ca³kiem du¿e.

    -    

     NULLe s± przechowywane jako mapy bitowe, wiêc u¿ywaj± bardzo ma³o

    +    

    Indeksy nie powodują dużego narzutu na zajmowane miejsce, 

    +    ale zawierają pewne dane,
    +    więc w pewnych przypadkach moga być całkiem duże.

    +    

     NULLe są przechowywane jako mapy bitowe, więc używają bardzo mało

         miejsca.
         

     
    -    

    4.7) Jak mogê sprawdziæ jakie tabele, klucze,

    -         bazy danych i u¿ytkownicy s± utworzeni?
    +    

    4.7) Jak mogę sprawdzić jakie tabele, klucze,

    +         bazy danych i użytkownicy są utworzeni?
         
    -    

    psql ma ca³kiem du¿± ilo¶æ poleceñ z backslashem aby

    -    wydobyæ takie informacje. Wprowad¼ \? aby zobaczyæ ich spis. Istniej±
    -    tak¿e tablice systemowe rozpoczynaj±ce siê od pg_, zawieraj±ce
    -    interesuj±ce Ciebie informacje. Wykonanie psql -l poka¿e spis
    +    

    psql ma całkiem dużą ilość poleceń z backslashem aby

    +    wydobyć takie informacje. Wprowadź \? aby zobaczyć ich spis. Istnieją
    +    także tablice systemowe rozpoczynające się od pg_, zawierające
    +    interesujące Ciebie informacje. Wykonanie psql -l pokaże spis
         wszystkich baz danych.

     
    -    

    Obejrzyj tak¿e plik pgsql/src/tutorial/syscat.source.

    -    Zawiera on wiele z zapytañ typu SELECT, które s±
    -    potrzebne aby wydobyæ informacje z tablic systemowych.

    +    

    Obejrzyj także plik pgsql/src/tutorial/syscat.source.

    +    Zawiera on wiele z zapytań typu SELECT, które są
    +    potrzebne aby wydobyć informacje z tablic systemowych.

     
    -    

    4.8) Moje zapytania s± wolne lub nie u¿ywaj±

    +    

    4.8) Moje zapytania są wolne lub nie używają

              kluczy. Dlaczego?
                
    -   Indeksy nie s± u¿ywane automatycznie przez k±¿de z zapytañ. Ideksy s±
    -   u¿ywane jedynie gdy tabela jest odpowiedniego rozmiaru, wiêkszego ni¿
    -   wymagany minimalny, a zapytanie wybiera jedynie ma³y procent
    -   zawarto¶ci tabeli. Wynika to z tego, ¿e losowy dostep do dysku
    -   powodowany przez ideksowane poszukiwanie jest czasami wolniejsze ni¿
    -   poszukiwanie sekwencyjne bez u¿ycia kluczy.
    +   Indeksy nie są używane automatycznie przez kążde z zapytań. Ideksy są
    +   używane jedynie gdy tabela jest odpowiedniego rozmiaru, większego niż
    +   wymagany minimalny, a zapytanie wybiera jedynie mały procent
    +   zawartości tabeli. Wynika to z tego, że losowy dostep do dysku
    +   powodowany przez ideksowane poszukiwanie jest czasami wolniejsze niż
    +   poszukiwanie sekwencyjne bez użycia kluczy.
        
    -    

    ¯eby zdecydowaæ czy indeks powinien byc u¿ywany, PostgreSQL musi

    -    mieæ statystyki dotycz±ce danej tabeli. S± one gromadzone przez
    -    u¿ycie polecenia VACUUM ANALYZE, lub poprostu
    -    ANALYZE. u¿ywaj±c statystyk, optymalizator wie ile
    -    rzêdów jest w tabeli i mo¿e lepiej okre¶liæ czy indeksy powinny byæ
    -    u¿yte. Statystyki mog± byæ tak¿e pomocne w okre¶leniu najlepszej
    -    kolejno¶ci wykonania z³±czenia (join) i jego sposobu. Gromadzenie
    -    statystyk powinno siê odbywaæ w okre¶lonych interwa³ach czasu
    -    poniewa¿ dane w tabelach zmieniaj± siê.

    -
    -    

    Indeksy nie s± zazwyczaj u¿ywane przez ORDER BY lub

    -    przy wykonywaniu z³±czeñ (join). Sekwencyjne przeszukiwanie po którym
    -    nastêpuje sortowanie jest zazwyczaj szybsze niê wyszukiwanie za
    -    pomoc± indeksu na du¿ej tabeli.

    -    

    Jakkolwiek LIMIT w po³±czeniu z ORDER BY

    -   czêsto bêdzie wykorzystywa³ indeksy poniewa¿ jedynie ma³a czê¶æ z
    -   tabeli jest zwracana. W rzeczywisto¶ci, chocia¿ MAX() i MIN() nie
    -   u¿ywaj± indeksów, mo¿liwe jest aby zwróciæ te warto¶ci u¿ywaj±c
    -   indeksów poprzez u¿ycie ORDER BY i LIMIT.
    +    

    Żeby zdecydować czy indeks powinien byc używany, PostgreSQL musi

    +    mieć statystyki dotyczące danej tabeli. Są one gromadzone przez
    +    użycie polecenia VACUUM ANALYZE, lub poprostu
    +    ANALYZE. używając statystyk, optymalizator wie ile
    +    rzędów jest w tabeli i może lepiej określić czy indeksy powinny być
    +    użyte. Statystyki mogą być także pomocne w określeniu najlepszej
    +    kolejności wykonania złączenia (join) i jego sposobu. Gromadzenie
    +    statystyk powinno się odbywać w określonych interwałach czasu
    +    ponieważ dane w tabelach zmieniają się.

    +
    +    

    Indeksy nie są zazwyczaj używane przez ORDER BY lub

    +    przy wykonywaniu złączeń (join). Sekwencyjne przeszukiwanie po którym
    +    następuje sortowanie jest zazwyczaj szybsze nię wyszukiwanie za
    +    pomocą indeksu na dużej tabeli.

    +    

    Jakkolwiek LIMIT w połączeniu z ORDER BY

    +   często będzie wykorzystywał indeksy ponieważ jedynie mała część z
    +   tabeli jest zwracana. W rzeczywistości, chociaż MAX() i MIN() nie
    +   używają indeksów, możliwe jest aby zwrócić te wartości używając
    +   indeksów poprzez użycie ORDER BY i LIMIT.
        

        
         SELECT col
         LIMIT 1;                    
        
        

    -   Je¶li uwa¿asz, ¿e optimizer myli siê wybieraj±c sequential scan, u¿yj
    -   SET enable_seqscan TO 'off' i uruchom testy aby sprawdziæ czy wtym
    -   wypadku zapytanie bêdzie szybciej wykonywane.

    +   Jeśli uważasz, że optimizer myli się wybierając sequential scan, użyj
    +   SET enable_seqscan TO 'off' i uruchom testy aby sprawdzić czy wtym
    +   wypadku zapytanie będzie szybciej wykonywane.

     
    -    

    Kiedy u¿ywa siê operatorów dopasuj±cych takich jak

    -    LIKE lub ~, indeksy bêd± u¿ywane jedynie w
    +    

    Kiedy używa się operatorów dopasujących takich jak

    +    LIKE lub ~, indeksy będą używane jedynie w
         pewnych wypadkach:

         
      -    
    • Pocz±tek wyszukiwania jest oparty na pocz±tku ³añcucha tekstu.
    • +    
    • Początek wyszukiwania jest oparty na początku łańcucha tekstu.
    •      
        -       
      • wzorce LIKE nie mog± siê zaczynaæ %
      • +       
      • wzorce LIKE nie mogą się zaczynać %
      •         
      • dopasowania operatorem ~ (dopasowania regularne)
      • -       musz± siê zaczynaæ znakiem specjalnym ^.
        +       muszą się zaczynać znakiem specjalnym ^.
             
        -    
      • Pocz±tek wyszukiwania nie mo¿e siê zaczynaæ od klas znaków, np.
      • +    
      • Początek wyszukiwania nie może się zaczynać od klas znaków, np.
      •      [a-e].
             
      • Case-insensitive searches such as ILIKE and ~* do not utilise
      •      indexes. Instead, use functional indexes, which are described in
             section 4.12.
        -    
      • Standardowe locale C musi byæ uzyte przy wykonywaniu initdb
      • +    
      • Standardowe locale C musi być uzyte przy wykonywaniu initdb
      •      
        -    

        4.9) Jak mogê sprawdziæ w jakis sposób "query

        +    

        4.9) Jak mogę sprawdzić w jakis sposób "query

             optimizer" wykonuje moje zapytanie?
         
             

        Zobacz manual dla polecenia EXPLAIN.

         
             

        4.10) Co to jest "R-tree index"?

         
        -    

        Indeks R-tree jest u¿ywany do indeksowania danych przestrzennych.

        -    Indeks hasuuj±cy nie nadaje siê do wyszukiwania odleg³o¶ci.
        -    Natomiast indeks typu B-tree mo¿e wyszukiwaæ odleglo¶ci jedynie w
        +    

        Indeks R-tree jest używany do indeksowania danych przestrzennych.

        +    Indeks hasuujący nie nadaje się do wyszukiwania odległości.
        +    Natomiast indeks typu B-tree może wyszukiwać odleglości jedynie w
             jednowymiarowych przestrzeniach. R-tree indeks radzi sobie z
        -    przestrzeniami wielo-wymiarowymi. Dla przyk³adu, je¶li zostanie
        -    za³o¿ony indeks typu R-tree na polu typu point, system mo¿e
        -    bardziej wydajnie odpowiadaæ na zapytania typu
        +    przestrzeniami wielo-wymiarowymi. Dla przykładu, jeśli zostanie
        +    założony indeks typu R-tree na polu typu point, system może
        +    bardziej wydajnie odpowiadać na zapytania typu
             "select all points within a bounding rectangle."

         
        -    

        ¬ród³owym dokumentem opisuj±cym oryginalnie projektowanie R-tree

        -    indeksów jest:

        +    

        Źródłowym dokumentem opisującym oryginalnie projektowanie R-tree

        +    indeksów jest:

         
             

        Guttman, A. "R-trees: A Dynamic Index Structure for Spatial

             Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt
             of Data, 45-57.

         
        -    

        Ten dokument mo¿esz znale¼æ tak¿e w pracy Stonebraker'a "Readings in

        +    

        Ten dokument możesz znaleźć także w pracy Stonebraker'a "Readings in

             Database Systems".

         
        -    

        Wbudowane indeksy R-trees radz± sobie w wielobokami i boxes.

        -    Teoretycznie, indeksy R-tree mog± byæ rozszerzone o mo¿liwo¶ci
        -    indeksowania w wiêcej wymiarowych przestrzeniach. W praktyce,
        -    rozbudowa indeksów R-tree wymaga trochê pracy, a w tej chwili nie
        -    dysponujemy jak±kolwiek dokumentacj± jak to zrobiæ.

        +    

        Wbudowane indeksy R-trees radzą sobie w wielobokami i boxes.

        +    Teoretycznie, indeksy R-tree mogą być rozszerzone o możliwości
        +    indeksowania w więcej wymiarowych przestrzeniach. W praktyce,
        +    rozbudowa indeksów R-tree wymaga trochę pracy, a w tej chwili nie
        +    dysponujemy jakąkolwiek dokumentacją jak to zrobić.

         
             

        4.11) Co to jest "Genetic Query

             Optimizer"?
         
        -    

        Modu³ GEQO ma za zadanie przyspieszenie

        -    optymalizacji zapytañ ³±cz±c wiele tabel za pomoc± algorytmów
        -    genetycznych (Genetic Algorithm (GA)). Pozwala na u¿ywanie du¿ych
        -    zapytañ ³±cz±cych tabele (join queries) bez wykorzystywania
        -    zasobo¿ernego wyszukiwania.

        +    

        Moduł GEQO ma za zadanie przyspieszenie

        +    optymalizacji zapytań łącząc wiele tabel za pomocą algorytmów
        +    genetycznych (Genetic Algorithm (GA)). Pozwala na używanie dużych
        +    zapytań łączących tabele (join queries) bez wykorzystywania
        +    zasobożernego wyszukiwania.

         
        -    

        4.12) Jak mogê u¿ywaæ wyra¿eñ regularnych w

        -         zapytaniach i zapytañ case-insensitive w wyra¿eniach
        +    

        4.12) Jak mogę używać wyrażeń regularnych w

        +         zapytaniach i zapytań case-insensitive w wyrażeniach
                    regularnych?
        -                Jak korzystaæ z indeksów dla zapytañ case-insensitive?
        +                Jak korzystać z indeksów dla zapytań case-insensitive?
         
        -    

        Operator ~ moze byæ wykorzystywany do wyszukiwania za

        -    pomoc± wyra¿eñ regularnych, a 
        -    ~* do wyszukiwania case-insensitive z wyra¿eniami
        +    

        Operator ~ moze być wykorzystywany do wyszukiwania za

        +    pomocą wyrażeń regularnych, a 
        +    ~* do wyszukiwania case-insensitive z wyrażeniami
             regularnymi. 
        -    Wariant case-insensitive dla LIKE zosta³ nazwany
        +    Wariant case-insensitive dla LIKE został nazwany
             ILIKE.

         
        -    

        Porównania case-insensitive s± zazwyczaj wykonywane w nastêpuj±cy

        -    sposób:

        +    

        Porównania case-insensitive są zazwyczaj wykonywane w następujący

        +    sposób:

         
             SELECT *
             FROM tab
             WHERE lower(col) = 'abc'
            
         
        -   W tym wypadku standardowe indeksy nie bêd± u¿ywane. Mo¿esz utworzyæ
        +   W tym wypadku standardowe indeksy nie będą używane. Możesz utworzyć
            indeks funkcyjny, poprzez:
         
             CREATE INDEX tabindex on tab (lower(col));
            
         
         
        -    

        4.13) Jak sprawdziæ w zapytaniu czy pole ma

        -         warto¶æ NULL?
        +    

        4.13) Jak sprawdzić w zapytaniu czy pole ma

        +         wartość NULL?
         
        -    

        Mo¿esz to sprawdziæ, testuj±c warto¶æ kolumny warunkiem 

        +    

        Możesz to sprawdzić, testując wartość kolumny warunkiem 

             IS NULL albo IS NOT NULL.

         
        -    

        4.14) Jaka jest ró¿nica pomiêdzy ró¿nymi

        +    

        4.14) Jaka jest różnica pomiędzy różnymi

             typami tekstowymi (character types)?
         
        -Type            Nazwa wewnêtrzna   Uwagi
        +Type            Nazwa wewnętrzna   Uwagi
         --------------------------------------------------
        -VARCHAR(n)      varchar            rozmiar okre¶la maksymaln± d³ugo¶æ, nie ma tutaj wype³niania
        -CHAR(n)         bpchar             wype³niane pustymi znakami do podanej d³ugo¶ci
        -TEXT            text               bez limitu na d³ugo¶æ ³añcucha
        -BYTEA           bytea              zmiennej d³ugo¶ci tablica bajtów (null-byte safe)
        +VARCHAR(n)      varchar            rozmiar określa maksymalną długość, nie ma tutaj wypełniania
        +CHAR(n)         bpchar             wypełniane pustymi znakami do podanej długości
        +TEXT            text               bez limitu na długość łańcucha
        +BYTEA           bytea              zmiennej długości tablica bajtów (null-byte safe)
         "char"          char                 1 znak
         
         
        -    

        Je¶li bêdziesz przegl±daæ katalogi systemowe lub komunikaty o

        -    b³êdach czêsto spotkasz siê z podanymi powy¿ej nazwami
        -    wewnêtrznymi.

        +    

        Jeśli będziesz przeglądać katalogi systemowe lub komunikaty o

        +    błędach często spotkasz się z podanymi powyżej nazwami
        +    wewnętrznymi.

         
        -    

        Pierwsze cztery typy powy¿ej to tzw typy "varlena" (np. pierwsze

        -    cztery bajty na dysku to d³ugo¶æ, po których jest data). Dlatego
        -    faktyczna d³ugo¶c takiego ³añcucha jest trochê wiêksza ni¿
        -    zadeklarowany rozmiar. Te typy tak¿e podlegaj± kompresji lub mog± byæ
        -    przechowywane out-of-line jako TOAST, wiêc faktyczne
        -    zu¿ycie miejsca na dysku mo¿e byæ mniejsze ni¿ oczekiwane.

        +    

        Pierwsze cztery typy powyżej to tzw typy "varlena" (np. pierwsze

        +    cztery bajty na dysku to długość, po których jest data). Dlatego
        +    faktyczna długośc takiego łańcucha jest trochę większa niż
        +    zadeklarowany rozmiar. Te typy także podlegają kompresji lub mogą być
        +    przechowywane out-of-line jako TOAST, więc faktyczne
        +    zużycie miejsca na dysku może być mniejsze niż oczekiwane.

         
            

         VARCHAR(n) jest

        -    najodpowiedniejszy do przechowywania ³añcuchów o ró¿nej d³ugo¶ci
        -    ale okre¶la on maksymaln± jego d³ugo¶æ
        +    najodpowiedniejszy do przechowywania łańcuchów o różnej długości
        +    ale określa on maksymalną jego długość
             
        -    TEXT jest najlepszy dla ³añcuchów o dowolnej d³ugo¶ci,
        -    nie przekraczaj±cej 1GB.

        +    TEXT jest najlepszy dla łańcuchów o dowolnej długości,
        +    nie przekraczającej 1GB.

         
            

            CHAR(n) jast najlepszym typem do przechowywania
        -    ³añcuchów o tej samej d³ugo¶ci. CHAR(n) wype³nia dane do ¿adanej
        -    d³ugo¶ci, podczas gdy VARCHAR(n) przechowuje jedynie dane
        +    łańcuchów o tej samej długości. CHAR(n) wypełnia dane do żadanej
        +    długości, podczas gdy VARCHAR(n) przechowuje jedynie dane
             dostarczone.
            
        -   BYTEA s³u¿y do przechowywania danych binarnych,
        -    w szczególno¶ci dla danych zawieraj±cych NULL bajty.
        -    Wszystkie typy opisane tutaj maja podobne charakterystyki jeli
        -    chodzi o wydajno¶æ.

        +   BYTEA służy do przechowywania danych binarnych,
        +    w szczególności dla danych zawierających NULL bajty.
        +    Wszystkie typy opisane tutaj maja podobne charakterystyki jeśli
        +    chodzi o wydajność.

         
        -    

        4.15.1) Jak mogê utworzyæ pole które samo

        -         zwiêksza swoj± warto¶æ?
        +    

        4.15.1) Jak mogę utworzyć pole które samo

        +         zwiększa swoją wartość?
         
             

        PostgreSQL ma zaimplementowany typ SERIAL.

        -    Automatycznie tworzy sekwencjê i indeks na tej kolumnie. Dla
        +    Automatycznie tworzy sekwencję i indeks na tej kolumnie. Dla
             przykladu:

         
             CREATE TABLE person ( 
        @@ -1193,7 +1193,7 @@ BYTEA           bytea              zmiennej d
                 name TEXT 
             );
         
        -    zostanie automatycznie przt³umaczone na:
        +    zostanie automatycznie prztłumaczone na:
         
             CREATE SEQUENCE person_id_seq;
             CREATE TABLE person ( 
        @@ -1202,95 +1202,95 @@ BYTEA           bytea              zmiennej d
             );
             CREATE UNIQUE INDEX person_id_key ON person ( id );
         
        -    Wiêcej informacji o sekwencjach znajdziesz w manualu o
        -    create_sequence. Mo¿esz tak¿e u¿yæ  pola OID jako
        -    unikalnej warto¶ci dla ka¿dego rzêdu danych. Je¶li bêdziesz
        -    potrzebowa³ z backupowaæ dane robi±c dump bazy i odtworzyæ j±, musisz
        -    u¿yc pg_dump z opcj± -o lub polecenia COPY
        -        WITH OIDS aby zachowaæ OIDy.
        +    Więcej informacji o sekwencjach znajdziesz w manualu o
        +    create_sequence. Możesz także użyć  pola OID jako
        +    unikalnej wartości dla każdego rzędu danych. Jeśli będziesz
        +    potrzebował z backupować dane robiąc dump bazy i odtworzyć ją, musisz
        +    użyc pg_dump z opcją -o lub polecenia COPY
        +        WITH OIDS aby zachować OIDy.
             
        -    

        4.15.2) Jak pobraæ warto¶æ pola typu

        +    

        4.15.2) Jak pobrać wartość pola typu

                 SERIAL po wykonaniu insert'u?
         
        -    

        Jednym z podej¶æ jest pobranie kolejnej warto¶ci typu 

        -    SERIAL z sekwencji za pomoc± funkcji nextval()
        -    zanim zostanie wstawiona, a pó¼niej nale¿y jej u¿yæ. U¿ywaj±c
        -    przyk³adu z tabeli z punktu 4.15.1, mo¿e to
        -    wygl±daæ w Perlu na przyk³ad w ten sposób:

        +    

        Jednym z podejść jest pobranie kolejnej wartości typu 

        +    SERIAL z sekwencji za pomocą funkcji nextval()
        +    zanim zostanie wstawiona, a później należy jej użyć. Używając
        +    przykładu z tabeli z punktu 4.15.1, może to
        +    wyglądać w Perlu na przykład w ten sposób:

         
         
             new_id = output of "SELECT nextval('person_id_seq')"
             INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');
         
        -   Bêdziesz mia³ wtedy t± warto¶æ przechowan± w zmiennej 
        -    new_id do u¿ytku w innych zapytaniach (np. jako klucz
        -    obcy do tabeli person). Warto zwróciæ uwagê, ¿e nazwa
        +   Będziesz miał wtedy tą wartość przechowaną w zmiennej 
        +    new_id do użytku w innych zapytaniach (np. jako klucz
        +    obcy do tabeli person). Warto zwrócić uwagę, że nazwa
             automatycznie utworzonej sekwencji
        -    SEQUENCE bêdzie nastêpuj±ca:
        +    SEQUENCE będzie następująca:
             <tabela>_<kolumnatypuserial>_seq,
             gdzie 
        -    tabela i kolumnatypuserial s± nazwami Twojej tabeli i
        +    tabela i kolumnatypuserial są nazwami Twojej tabeli i
             Twojej kolumny typu SERIAL
         
        -    

        Inne rozwi±zanie to u¿ycie funkcji currval() na pola typu

        -    SERIAL po dodaniu nowej warto¶ci do rzêdu zawieraj±cego
        -    kolumnê typu SERIAL z wstawion± domy¶lnie warto¶ci±,
        +    

        Inne rozwiązanie to użycie funkcji currval() na pola typu

        +    SERIAL po dodaniu nowej wartości do rzędu zawierającego
        +    kolumnę typu SERIAL z wstawioną domyślnie wartością,
             np.

         
             INSERT INTO person (name) VALUES ('Blaise Pascal');
             new_id = output of "SELECT currval('person_id_seq')";
         
        -   Ostatecznie mo¿esz u¿yæ OID
        -   zwracanej po wykonaniu INSERT, chocia¿ to jest najmniej
        -   przeno¶ne rozwi±zanie.
        -   W Perlu, wykorzystuj±c bibliotekê DBI z modu³em Edmunda Mergla
        -   DBD::Pg, oid jest dostêpny poprzez $sth->{pg_oid_status} po
        +   Ostatecznie możesz użyć OID
        +   zwracanej po wykonaniu INSERT, chociaż to jest najmniej
        +   przenośne rozwiązanie.
        +   W Perlu, wykorzystując bibliotekę DBI z modułem Edmunda Mergla
        +   DBD::Pg, oid jest dostępny poprzez $sth->{pg_oid_status} po
            wykonaniu $sth->execute()
         
        -    

        4.15.3) Czy u¿ycie currval() i

        +    

        4.15.3) Czy użycie currval() i

                 nextval() nie doprowadzi do race condition z innymi
        -             u¿ytkownikami?
        +             użytkownikami?
         
        -    

        Nie. currval() zwraca bie¿±c± warto¶æ przypisan± przez Twój

        -    backend, a nie przez wszystkich u¿ytkowników.

        +    

        Nie. currval() zwraca bieżącą wartość przypisaną przez Twój

        +    backend, a nie przez wszystkich użytkowników.

         
        -    

        4.15.4) Dlaczego numery sekwencji nie s±

        -         ponownie u¿ywane przy przerwaniu transakcji?
        -       Sk±d siê bior± luki w numerowaniu kolumny tabeli
        +    

        4.15.4) Dlaczego numery sekwencji nie są

        +         ponownie używane przy przerwaniu transakcji?
        +       Skąd się biorą luki w numerowaniu kolumny tabeli
                             sekwancjami/SERIALem?
         
        -    

        Aby poprawiæ zbie¿no¶æ (concurrency), warto¶ci sekwencji s±

        -    podawane dzia³aj±cym transakcjom kiedy tego potrzebuj± i nie s±
        -    blokowane dopóki transakcja siê nie zakoñczy. To spowoduje przerwy w
        +    

        Aby poprawić zbieżność (concurrency), wartości sekwencji są

        +    podawane działającym transakcjom kiedy tego potrzebują i nie są
        +    blokowane dopóki transakcja się nie zakończy. To spowoduje przerwy w
             numerowaniu z przerwanych transakcji.

         
             

        4.16) Co to jest OID? Co to

             jest TID?
         
        -    

        OID s± PostgreSQL'owym rozwi±zaniem problemu

        -    unikalnych numerów rzêdów. Ka¿dy rz±d tworzony przez PostgreSQL
        +    

        OID są PostgreSQL'owym rozwiązaniem problemu

        +    unikalnych numerów rzędów. Każdy rząd tworzony przez PostgreSQL
             otrzymuje unikalny OID. Wszystkie OIDy
             generowane podczas procesu uruchamianego przez skrypt
        -    initdb maj± mniejsz± warto¶æ ni¿ 16384 (na podstawie pliku
        +    initdb mają mniejszą wartość niż 16384 (na podstawie pliku
             backend/access/transam.h). Wszystkie 
        -    OIDy tworzone przez u¿ytkownika sa równe lub wiêksze
        -    podanej wcze¶niej warto¶ci. Domy¶lnie
        -    wszystkie OIDy s± unikalne nie tylko w pojedyñczej
        -    tabeli czy bazie danych ale w ca³ej instalacji PostgreSQL.

        -
        -    

        PostgreSQL u¿ywa OIDów w swoim wewnêtrznym systemie

        -    tabel, aby mo¿na by³o je ³±czyæ.
        -    Te OIDy mog± byc u¿ywane aby identyfikowac rzêdy w
        -    tabelach i wykorzystywaæ je w z³±czeniach tych tabel. Zaleca siê aby¶
        -    u¿ywa³ typu OID aby przechowywaæ warto¶ci
        -    OID. Mo¿esz utworzyæ indeks na polu 
        -    OID aby dostêp do niego by³ szybszy.

        -
        -    

        OID s± przypisane do wszystkich rzêdów z jednego

        -    g³ównego miejsca i u¿ywane sa przez wszystkie bazy danych. Je¶li
        -    chcia³by¶ zmieniæ OID na co¶ innego, lub je¶li
        -    chcia³by¶ zrobiæ kopiê tabeli, z orginalnymi OIDami
        -    nie ma ¿adnego przeciwwskazania aby¶ to zrobi³:

        +    OIDy tworzone przez użytkownika sa równe lub większe
        +    podanej wcześniej wartości. Domyślnie
        +    wszystkie OIDy są unikalne nie tylko w pojedyńczej
        +    tabeli czy bazie danych ale w całej instalacji PostgreSQL.

        +
        +    

        PostgreSQL używa OIDów w swoim wewnętrznym systemie

        +    tabel, aby można było je łączyć.
        +    Te OIDy mogą byc używane aby identyfikowac rzędy w
        +    tabelach i wykorzystywać je w złączeniach tych tabel. Zaleca się abyś
        +    używał typu OID aby przechowywać wartości
        +    OID. Możesz utworzyć indeks na polu 
        +    OID aby dostęp do niego był szybszy.

        +
        +    

        OID są przypisane do wszystkich rzędów z jednego

        +    głównego miejsca i używane sa przez wszystkie bazy danych. Jeśli
        +    chciałbyś zmienić OID na coś innego, lub jeśli
        +    chciałbyś zrobić kopię tabeli, z orginalnymi OIDami
        +    nie ma żadnego przeciwwskazania abyś to zrobił:

             
         
                 CREATE TABLE new_table(old_oid oid, mycol int);
        @@ -1304,21 +1304,21 @@ BYTEA           bytea              zmiennej d
         -->
         
         
        -    

        OIDy s± przechowywane jako cztero-bajtowe liczby

        -    ca³kowite i skoñcz± siê po osi±gniêciu czterech miliardów. Nikt jak
        -    dot±d nie zg³osi³ aby co¶ takiego siê stalo, ale mamy zamiar pozbyæ
        -    siê tego ograniczenia zanim kto¶ to zg³osi.

        +    

        OIDy są przechowywane jako cztero-bajtowe liczby

        +    całkowite i skończą się po osiągnięciu czterech miliardów. Nikt jak
        +    dotąd nie zgłosił aby coś takiego się stalo, ale mamy zamiar pozbyć
        +    się tego ograniczenia zanim ktoś to zgłosi.

         
        -    

        TID s± u¿ywane aby zidentyfikowaæ konkretne rzêdy z

        -    blokami i warto¶ci± ofsetów. TIDy zmieniaj± siê wraz
        -    ze zmianami rzêdów. Sa u¿ywane przez indeksy, aby wskazywaæ do
        -    fizycznych rzêdów.

        +    

        TID są używane aby zidentyfikować konkretne rzędy z

        +    blokami i wartością ofsetów. TIDy zmieniają się wraz
        +    ze zmianami rzędów. Sa używane przez indeksy, aby wskazywać do
        +    fizycznych rzędów.

         
        -    

        4.17) Jakie jest znaczenie niektórych terminów

        +    

        4.17) Jakie jest znaczenie niektórych terminów

             w PostgreSQL?
         
        -    

        W czê¶ci kodu ¼ród³owego i starszej dokumentacji u¿ywamy terminów,

        -    które maj± bardziej ogólne znaczenie. Oto niektóre z nich:

        +    

        W części kodu źródłowego i starszej dokumentacji używamy terminów,

        +    które mają bardziej ogólne znaczenie. Oto niektóre z nich:

         
             
                 
        • table, relation, class
        • @@ -1340,70 +1340,70 @@ BYTEA           bytea              zmiennej d
                 
        • range variable, table name, table alias
        •      
           
          -    

          Listê terminów zwi±zanych z bazami danych mo¿esz znale¼æ pod tym

          +    

          Listę terminów związanych z bazami danych możesz znaleźć pod tym

               adresem:
               href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html.

           
          -    

          4.18) Sk±d bierze siê ten b³±"ERROR:

          +    

          4.18) Skąd bierze się ten błą"ERROR:

               Memory exhausted in AllocSetAlloc()"?
           
               

          -    Prawdopodobnie wyczerpa³a Ci siê pamiêæ wirtualna (virtual memory) 
          -    w systemie lub Twój kernel ma zbyt nisko
          -    ustawione limity dla pewnych zasobów. Spróbuj wykonaæ nastêpuj±ce
          +    Prawdopodobnie wyczerpała Ci się pamięć wirtualna (virtual memory) 
          +    w systemie lub Twój kernel ma zbyt nisko
          +    ustawione limity dla pewnych zasobów. Spróbuj wykonać następujące
               polecenia zanim uruchomisz postmaster'a:

           
               ulimit -d 262144
               limit datasize 256m
           
          -   W zale¿no¶ci od shell'a jakiego u¿ywasz jedno z tych poleceñ mo¿e nie
          -   zadzia³aæ, ale to ustawienie pozwoli ustawiæ segment danych dla
          -   procesu znacznie wiêkszy i byæ mo¿e pozwoli wykonaæ zapytanie.
          -   To polecenie zadzia³a dla bie¿±cego procesu oraz wszytkich podprocesów
          -   utworzonych po wykonaniu polecenia. Je¶li ten problem wystêpuje z
          -   klientem SQL, poniewa¿ backend zwraca zbyt du¿o danych,
          -   spróbuj wykonaæ to polecenie przed uruchomieniem klienta.
          +   W zależności od shell'a jakiego używasz jedno z tych poleceń może nie
          +   zadziałać, ale to ustawienie pozwoli ustawić segment danych dla
          +   procesu znacznie większy i być może pozwoli wykonać zapytanie.
          +   To polecenie zadziała dla bieżącego procesu oraz wszytkich podprocesów
          +   utworzonych po wykonaniu polecenia. Jeśli ten problem występuje z
          +   klientem SQL, ponieważ backend zwraca zbyt dużo danych,
          +   spróbuj wykonać to polecenie przed uruchomieniem klienta.
           
          -    

          4.19) Jak sprawdziæ jakiej wersji PostgreSQL

          -        u¿ywam?
          +    

          4.19) Jak sprawdzić jakiej wersji PostgreSQL

          +        używam?
           
               

          psql, wpisz select version();

           
          -    

          4.20) Dlaczego operacje, które wykonujê na

          -         du¿ych obiektach "large-object" zwracaj± komunikat:
          +    

          4.20) Dlaczego operacje, które wykonuję na

          +         dużych obiektach "large-object" zwracają komunikat:
                          "invalid large obj descriptor"?
           
          -    

          Musisz u¿yæ BEGIN WORK i COMMIT

          -    przed i po u¿yciu uchwytu do du¿ego obiektu, tzn. musisz nimi otoczyæ
          +    

          Musisz użyć BEGIN WORK i COMMIT

          +    przed i po użyciu uchwytu do dużego obiektu, tzn. musisz nimi otoczyć
               funkcje lo_open ... lo_close.

           
          -    

          Obecnie PostgreSQL u¿ywj±c "rule" zamyka uchwyt do du¿ego obiektu

          -    przy ka¿dym wywo³aniu "commit". Wiêc pierwsze próba zrobienia
          +    

          Obecnie PostgreSQL używjąc "rule" zamyka uchwyt do dużego obiektu

          +    przy każdym wywołaniu "commit". Więc pierwsze próba zrobienia
               czegokolwiek z uchwytem spowoduje wypisanie: invalid large obj 
          -    descriptor. Kod, który do tej pory dzia³a³ (przynajmniej
          -    wiêkszo¶æ razy) bêdzie teraz generowa³ informacjê o b³êdzie je¶li nie
          -    bêdziesz korzysta³ z transakcji.

          +    descriptor. Kod, który do tej pory działał (przynajmniej
          +    większość razy) będzie teraz generował informację o błędzie jeśli nie
          +    będziesz korzystał z transakcji.

           
          -    

          Je¶li u¿ywasz interfejsu klienta jak ODBC  byæ mo¿e

          -    bêdziesz musia³ ustawiæ auto-commit off.

          +    

          Jeśli używasz interfejsu klienta jak ODBC  być może

          +    będziesz musiał ustawić auto-commit off.

           
          -    

          4.21) Jak stworzyæ kolumnê której domy¶ln±

          -         warto¶ci± bêdzie bie¿±cy czas?
          +    

          4.21) Jak stworzyć kolumnę której domyślną

          +         wartością będzie bieżący czas?
           
          -    

          U¿yj CURRENT_TIMESTAMP:

          +    

          Użyj CURRENT_TIMESTAMP:

           
           CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
           
           
           
          -    

          4.22) Dlaczego zapytania u¿ywaj±ce

          +    

          4.22) Dlaczego zapytania używające

                   IN sa takie wolne?
           
          -    

          W wersjach wcze¶niejszych ni¿ 7.4 ³±czymy podzapytania w outer queries 

          -    poprzez sekwencyjne przeszukiwanie wyników podzapytania dla ka¿dego rzêdu 
          -    z outer query. Je¶li podzapytanie zwraca jedynie kilka rzêdów a
          -    zewnêtrzne zapytanie zwraca ich wiele, IN jest najszybsze.
          -    Aby przyspieszyæ inne zapytania mo¿na zast±piæ IN przez 
          +    

          W wersjach wcześniejszych niż 7.4 łączymy podzapytania w outer queries 

          +    poprzez sekwencyjne przeszukiwanie wyników podzapytania dla każdego rzędu 
          +    z outer query. Jeśli podzapytanie zwraca jedynie kilka rzędów a
          +    zewnętrzne zapytanie zwraca ich wiele, IN jest najszybsze.
          +    Aby przyspieszyć inne zapytania można zastąpić IN przez 
               EXISTS:

           
           SELECT *
          @@ -1419,18 +1419,18 @@ BYTEA           bytea              zmiennej d
           
           
              

          -   Aby to rozwi±zanie by³o szybkie, subcol powinna byæ kolumn±
          -   indeksowan±.
          +   Aby to rozwiązanie było szybkie, subcol powinna być kolumną
          +   indeksowaną.
              

              

          -   W wersji 7.4 i pó¼niejszych, IN w rzeczywisto¶ci u¿ywa tej samej
          -   wyrafinowanej techniki ³±czenia jak normalne zapytania i jest
          -   preferowane nad u¿ywaniem EXISTS.
          +   W wersji 7.4 i późniejszych, IN w rzeczywistości używa tej samej
          +   wyrafinowanej techniki łączenia jak normalne zapytania i jest
          +   preferowane nad używaniem EXISTS.
              

          -    

          4.23) Jak wykonaæ "outer join"?

          +    

          4.23) Jak wykonać "outer join"?

           
               

          PostgreSQL ma zaimplementowane outer join

          -    wykorzystuj±c standardow± sk³adniê SQL. Poni¿ej dwa przyk³ady:

          +    wykorzystując standardową składnię SQL. Poniżej dwa przykłady:

               
           
               SELECT *
          @@ -1442,19 +1442,19 @@ BYTEA           bytea              zmiennej d
               FROM t1 LEFT OUTER JOIN t2 USING (col);
           
           
          -    

          Te dwa identyczne zapytania ³±cz± kolumnê t1.col z kolumn± t2.col,

          -    ale tak¿e zwróc± niepo³±czone rzêdy w t1 (te, które nie pasuj± w t2).
          -    RIGHT join doda³by niepo³±czone rzêdy z tabeli t2.
          -    FULL join zwróci³by rzêdy plus dodatkowo wszystkie
          -    rzêdy z tabel t1 i t2. S³owo OUTER jest opcjonalne i
          -    jest dodawane domylnie przy
          +    

          Te dwa identyczne zapytania łączą kolumnę t1.col z kolumną t2.col,

          +    ale także zwrócą niepołączone rzędy w t1 (te, które nie pasują w t2).
          +    RIGHT join dodałby niepołączone rzędy z tabeli t2.
          +    FULL join zwróciłby rzędy plus dodatkowo wszystkie
          +    rzędy z tabel t1 i t2. Słowo OUTER jest opcjonalne i
          +    jest dodawane domyślnie przy
               LEFTRIGHT, i FULL
          -    join'ach. Zwyk³e join'y s± nazywane INNER joins.

          +    join'ach. Zwykłe join'y są nazywane INNER joins.

           
          -    

          W poprzednich wersjach "outer joins" mog± byæ zasymulowane poprzez

          -    u¿ycie slowa kluczowego
          -    UNION i NOT IN. Dla przyk³adu, ³±cz±c
          -    tabele tab1 i tab2, nastêpuj±ce zapytanie wykonuje
          +    

          W poprzednich wersjach "outer joins" mogą być zasymulowane poprzez

          +    użycie slowa kluczowego
          +    UNION i NOT IN. Dla przykładu, łącząc
          +    tabele tab1 i tab2, następujące zapytanie wykonuje
               outer join:
               
               

          @@ -1469,103 +1469,103 @@ BYTEA           bytea              zmiennej d
               ORDER BY col1
           
           
          -    

          4.24) Jak wykonywaæ zapytanie u¿ywaj±ce kilku

          -         baz danych jednoczenie?
          +    

          4.24) Jak wykonywać zapytanie używające kilku

          +         baz danych jednocześnie?
           
          -    

          Nie ma takiej mo¿liwo¶ci aby w zapytaniu odpytawaæ inn± baze danych

          -    poza bie¿±c±. Poniewa¿ PostgreSQL ³aduje specyficzne dla bazy danych
          -    katalogi systemowe, nie jest do koñca jasne jak zapytanie pomiêdzy
          -    ró¿nymi bazami danych powinno siê zachowywaæ.

          +    

          Nie ma takiej możliwości aby w zapytaniu odpytawać inną baze danych

          +    poza bieżącą. Ponieważ PostgreSQL ładuje specyficzne dla bazy danych
          +    katalogi systemowe, nie jest do końca jasne jak zapytanie pomiędzy
          +    różnymi bazami danych powinno się zachowywać.

               
          -    

          contrib/dblink pozwala na wykonywanie zapytañ poprzez ró¿ne

          -    bazy danych wywo³uj±c odpowiednie funkcje. Oczywi¶cie klient mo¿e ³±czyæ 
          -    siê z ró¿nymi bazami danych i ³±czyæ informacjê w ten sposób uzyskan±
          +    

          contrib/dblink pozwala na wykonywanie zapytań poprzez różne

          +    bazy danych wywołując odpowiednie funkcje. Oczywiście klient może łączyć 
          +    się z różnymi bazami danych i łączyć informację w ten sposób uzyskaną
               po stronie klienta.

           
          -    

          4.25) Jak zwróciæ w funkcji wiele rzêdów lub

          +    

          4.25) Jak zwrócić w funkcji wiele rzędów lub

                    kolumn?
           
          -     

          Mo¿esz w ³atwy sposób zwracaæ wiele rzêdów lub kolumn u¿ywaj±c

          +     

          Możesz w łatwy sposób zwracać wiele rzędów lub kolumn używając

                funkcji z: http://techdocs.postgresql.org/guides/SetReturningFunctions.

                
          -   

          4.26) Dlaczego nie mogê w sposób pewny

          -        tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?
          +   

          4.26) Dlaczego nie mogę w sposób pewny

          +        tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?
              

          -   PL/PgSQL przechowuje w cache zawarto¶æ funkcji, niepo¿±danym efektem tego
          -   jest to, ¿e gdy taka funkcja korzysta z tabel tymczasowych, które s±
          -   pó¼niej kasowane i odtwarzane, a funkcja wywo³ywana jest ponownie,jej
          -   wywo³anie nie powiedzie siê poniewa¿ cachowana funkcja wci±¿ bêdzie
          -   wskazywaæ na stara tablicê tymczasow±. Rozwi±zaniem tego problemu jest
          -   u¿ywanie EXECUTE aby korzystaæ z tabel tymczasowych w PL/PgSQL. To
          -   spowoduje, ¿e zapytanie bêdzie parsowane przy ka¿dym wywo³aniu
          +   PL/PgSQL przechowuje w cache zawartość funkcji, niepożądanym efektem tego
          +   jest to, że gdy taka funkcja korzysta z tabel tymczasowych, które są
          +   później kasowane i odtwarzane, a funkcja wywoływana jest ponownie,jej
          +   wywołanie nie powiedzie się ponieważ cachowana funkcja wciąż będzie
          +   wskazywać na stara tablicę tymczasową. Rozwiązaniem tego problemu jest
          +   używanie EXECUTE aby korzystać z tabel tymczasowych w PL/PgSQL. To
          +   spowoduje, że zapytanie będzie parsowane przy każdym wywołaniu
              funkcji.
              

              
          -   

          4.27) Jakie s± mo¿liwo¶ci replikacji w PostgreSQL?

          +   

          4.27) Jakie są możliwości replikacji w PostgreSQL?

              

          -   Jest kilka opcji aby stosowaæ replikacjê typu master/slave. Ten typ
          +   Jest kilka opcji aby stosować replikację typu master/slave. Ten typ
              pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
          -   slave mo¿e jedynie te zmiany odczytywaæ. Na stronie 
          +   slave może jedynie te zmiany odczytywać. Na stronie 
              
              href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research
          -   znajduje siê ich lista. Replikacja typu multi-master jest w trakcie
          -   prac, opis projektu znajduje siê pod adresem: 
          +   znajduje się ich lista. Replikacja typu multi-master jest w trakcie
          +   prac, opis projektu znajduje się pod adresem: 
              href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
           http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
              

           
          -   

          4.28) Jakie mo¿liwo¶ci szyfrowania oferuje

          +   

          4.28) Jakie możliwości szyfrowania oferuje

              PostgreSQL?
              
            -   
          • contrib/pgcrypto zawiera wiele funkcji za pomoc±, których mo¿emy u¿ywaæ
          • +   
          • contrib/pgcrypto zawiera wiele funkcji za pomocą, których możemy używać
          •     kryptografii w zapytaniach SQL.
            -   
          • Aby szyfrowaæ transmisjê od klienta do serwera, ten musi mieæ
          • -   ustawion± opcjê ssl na true w pliku postgresql.conf, odpowiedni
            -   wpis host lub hostssl musi wystêpowaæ w pliku pg_hba.conf, oraz
            -   sslmode nie mo¿e byæ wy³±czone w kliencie. (Warto zwróciæ uwagê, ¿e
            -   mo¿liwe jest tak¿e u¿ywanie transportów szyfruj±ców przez strony
            +   
          • Aby szyfrować transmisję od klienta do serwera, ten musi mieć
          • +   ustawioną opcję ssl na true w pliku postgresql.conf, odpowiedni
            +   wpis host lub hostssl musi występować w pliku pg_hba.conf, oraz
            +   sslmode nie może być wyłączone w kliencie. (Warto zwrócić uwagę, że
            +   możliwe jest także używanie transportów szyfrująców przez strony
                trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
                przez PostgreSQL).
            -   
          • Has³a u¿ytkowników bazy danych s± automatycznie szyfrowane od
          • -   wersji 7.3. W poprzednich wersjach, nale¿y t± funkcjonalno¶æ poprzez
            -   w³±czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. 
            -   
          • Serwer mo¿e dzia³aæ u¿ywaj±c szyfrowanego systemu plików.
          • +   
          • Hasła użytkowników bazy danych są automatycznie szyfrowane od
          • +   wersji 7.3. W poprzednich wersjach, należy tą funkcjonalność poprzez
            +   włączenie opcji PASSWORD_ENCRYPTION w postgresql.conf. 
            +   
          • Serwer może działać używając szyfrowanego systemu plików.
          •     
             
                 Rozwijanie PostgreSQL
             
            -    

            5.1) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej

            -    w psql, program zrzuca pamiêæ (dump core)?
            +    

            5.1) Napisałem własną funkcję. Kiedy użyję jej

            +    w psql, program zrzuca pamięć (dump core)?
             
            -    

            Problem mo¿e byæ spowodowany przez bardzo wiele rzeczy. Spróbuj

            -    najpierw przetestowaæ Twoj± funkcjê w samodzielnie dzia³aj±cym programie.
            +    

            Problem może być spowodowany przez bardzo wiele rzeczy. Spróbuj

            +    najpierw przetestować Twoją funkcję w samodzielnie działającym programie.
                 

             
            -    

            5.2) Jak mogê dodaæ/zg³osiæ nowe typy czy

            +    

            5.2) Jak mogę dodać/zgłosić nowe typy czy

                 funkcje do PostgreSQL?
             
            -    

            Wy¶lij Twoje propozycje na listê mailow± pgsql-hackers,

            -    wtedy prawdopodobnie Twój kod znajdzie siê w katalogu contrib/.

            +    

            Wyślij Twoje propozycje na listę mailową pgsql-hackers,

            +    wtedy prawdopodobnie Twój kod znajdzie się w katalogu contrib/.

             
            -    

            5.3) Jak napisaæ funkcjê C zwracaj±c± krotkê

            +    

            5.3) Jak napisać funkcję C zwracającą krotkę

                      (tuple)?
             
                

            -   W wersjach PostgreSQL od numeru 7.3, funckje zwracaj±ce tabele s± w
            -   pêlni wspierane w C, PL/PgSQL i SQL. Sprawd¼ w Programmer's Guide aby
            -   uzyskaæ wiêcej informacji. Przyk³ad funkcji napisanej w C zwracaj±cej
            -   tabelê zosta³ umieszczony w contrib/tablefunc.
            +   W wersjach PostgreSQL od numeru 7.3, funckje zwracające tabele są w
            +   pęlni wspierane w C, PL/PgSQL i SQL. Sprawdź w Programmer's Guide aby
            +   uzyskać więcej informacji. Przykład funkcji napisanej w C zwracającej
            +   tabelę został umieszczony w contrib/tablefunc.
                

             
            -    

            5.4)  Zmieni³em plik ¼ród³owy. Dlaczego po

            -         rekompilacji nie widaæ zmiany?
            +    

            5.4)  Zmieniłem plik źródłowy. Dlaczego po

            +         rekompilacji nie widać zmiany?
             
            -    

            Pliki Makefiles nie maj± dorzuconych odpowiednich

            -    zale¿no¶ci dla plików nag³ówkowych (include files). Wykonaj najpierw
            -    make clean, a nastêpnie ponownie make.
            -    Je¶li u¿ywasz GCC mo¿esz u¿yæ opcji
            +    

            Pliki Makefiles nie mają dorzuconych odpowiednich

            +    zależności dla plików nagłówkowych (include files). Wykonaj najpierw
            +    make clean, a następnie ponownie make.
            +    Jeśli używasz GCC możesz użyć opcji
                 --enable-depend przy wykonywaniu configure aby
            -    kompilator móg³ okre¶liæ zale¿no¶ci samodzielnie.
            +    kompilator mógł określić zależności samodzielnie.
                 

               
             
            index 20f970ab8d160e4994796de54a92a813d8710ec6..13c6f7fd43ed8a471820f854126a305923ee9272 100644 (file)
            @@ -1,8 +1,8 @@
             
             
             
            -   iso8859-9">
            -   PostgreSQL S<span class="marked">ýkça Sorulan Sorular - Türkç</span>e
            +   utf8">
            +   PostgreSQL S<span class="marked">ıkça Sorulan Sorular - Türkç</span>e