New Czech FAQ.
authorBruce Momjian <bruce@momjian.us>
Mon, 12 Jul 2004 00:22:51 +0000 (00:22 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 12 Jul 2004 00:22:51 +0000 (00:22 +0000)
Pavel Stehule

doc/src/FAQ/FAQ_czech.html

index 9d2c43b5ff35d4215dcd5f96d471b78f6619b051..59806e7487415e0fdfdffd052f95a983547657b7 100644 (file)
-<html><head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
-    <meta http-equiv="Content-language" content="cs">
-    <meta name="robots" content="index,FOLLOW">
-    <meta name="description" lang="en" content="Czech translation of FAQ for PostgreSQL"> 
-    <meta name="description" lang="cs" content="Èeský pøeklad FAQ PostgreSQL"><title>PostgreSQL FAQ cz</title> 
-  
-    
-    <style type="text/css">
-      A {font-family:helvetica,arial,sans-serif; font-weight:normal; color:#0201FF; text-decoration:none;}
-      A:active {color:#0201FF;;}
-      A:visited {color:#0F0169;}
-      A:hover{text-decoration:underline; color:#020169;}
-      body {font-family:helvetica,arial,sans-serif; font-weight:normal;}
-    </style></head>
-  <body leftmargin="10" topmargin="10" marginwidth="10" marginheight="10" bgcolor="white">
-
-
-<h1>Èasto kladené dotazy (FAQ) PostgreSQL</h1>
-
-<h2>Obecné otázky</h2>
-<a href="#1.1">1.1</a> Co je PostgreSQL? Jak se vyslovuje?<br>
-<a href="#1.2">1.2</a> Jaká je licence na PostgreSQL?<br>
-<a href="#1.3">1.3</a> Na kterých Unixex lze spustit PostgreSQL?<br>
-<a href="#1.4">1.4</a> Které ne-unixové platformy jsou podporované?<br>
-<a href="#1.5">1.5</a> Kde mohu získat PostgreSQL?<br>
-<a href="#1.6">1.6</a> Kde mohu získat podporu?<br>
-<a href="#1.7">1.7</a> Kde je poslední verze?<br>
-<a href="#1.8">1.8</a> Jaká je dostupná dokumentace?<br>
-<a href="#1.9">1.9</a> Kde najdu seznam známých chyb nebo nepodporovaných vlastností?<br>
-<a href="#1.10">1.10</a> Jak se mohu nauèit SQL?<br>
-<a href="#1.11">1.11</a> Nemá PostgreSQL problémy s rokem 2000?<br>
-<a href="#1.12">1.12</a> Jak se pøipojit k vývojáøskému týmu?<br>
-<a href="#1.13">1.13</a> Kam podat report o chybì?<br>
-<a href="#1.14">1.14</a> Jak je na tom PostgreSQL v porovnání s jinými databázemi?<br>
-<a href="#1.15">1.15</a> Jak lze finanènì pomoci PostgreSQL?<br>
-
-<h2>User client dotazy</h2>
-
-<a href="#2.1">2.1</a> Kde naleznu ODBC ovladaèe pro PostgreSQL?<br>
-<a href="#2.2">2.2</a> Jaké nástroje lze pou¾ít pro PostgreSQL a web?<br>
-<a href="#2.3">2.3</a> Existuje grafické rozhraní pro PostgreSQL?<br>
-<a href="#2.4">2.4</a> Které programovací jazyky mají podporu pro PostgreSQL?<br>
-
-<h2>Administrativní dotazy</h2>
-<a href="#3.1">3.1</a> Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?<br>
-<a href="#3.2">3.2</a> Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo
-core dump. Proè?<br>
-<a href="#3.3">3.3</a> Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. Proè?<br>
-<a href="#3.4">3.4</a> Pøi startu postmastera dostanu hlá¹ení o chybì
-IpcSemaphoreCreate. Proè?<br>
-<a href="#3.5">3.5</a> Jak povolit nebo zakázat pøístup z jiných stanic?<br>
-<a href="#3.6">3.6</a> Jak ladit databázový stroj na lep¹í výkon?<br>
-<a href="#3.7">3.7</a> Jaké jsou mo¾nosti ladìní?<br>
-<a href="#3.8">3.8</a> Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?<br>
-<a href="#3.9">3.9</a> K èemu slou¾í adresáø pgsql_tmp?<br>
-<a href="#3.10">3.10</a> Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade
-mezi velkými verzemi PostgreSQL?<br>
-<h2>Provozní dotazy</h2>
-<a href="#4.1">4.1</a> Èím se li¹í binární a normální kurzor?<br>
-<a href="#4.2">4.2</a> Jak získat pouze první øádek dotazu? Náhodný øádek?<br>
-<a href="#4.3">4.3</a> Jak získám seznam tabulek nebo jinak jak jej získá psql?<br>
-<a href="#4.4">4.4</a> Jak odstraním sloupec tabulky, jak zmìním jeho typ?<br>
-<a href="#4.5">4.5</a> Jaká je maximální velikost øádku, tabulky a databáze?<br>
-<a href="#4.6">4.6</a> Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
-textového souboru? <br>
-<a href="#4.7">4.7</a> Jak získám seznam vytvoøených tabulek, indexù, databází?<br>
-<a href="#4.8">4.8</a> Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?<br>
-<a href="#4.9">4.9</a> Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?<br>
-<a href="#4.10">4.10</a> Co to je R-tree index?<br>
-<a href="#4.11">4.11</a> Co je Genetic Query Optimizer?<br>
-<a href="#4.12">4.12</a> Jak provést vyhledávání regulárního výrazu case sensitiv,
-insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?<br>
-<a href="#4.13">4.13</a> Jak v dotazu detekovat, ¾e polo¾ka je NULL?<br>
-<a href="#4.14">4.14</a> Jaké jsou rozdíly mezi rùznými znakovými typy?<br>
-<a href="#4.15.1">4.15.1</a> Jak vytvoøit serial/auto-increment pole?<br>
-<a href="#4.15.2">4.15.2</a> Jak získat hodnotu SERIAL po vlo¾ení øádku?<br>
-<a href="#4.15.3">4.15.3</a> Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s jinými u¾ivateli?<br>
-<a href="#4.15.4">4.15.4</a> Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení
-transakce? Proè vznikají díry v èíslování vlastní sekvencí/SERIAL
-sloupce?<br>
-<a href="#4.16">4.16</a> Co to je OID? Co je to TID?<br>
-<a href="#4.17">4.17</a> Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?<br>
-<a href="#4.18">4.18</a> Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
-AllocSetAlloc()"?<br>
-<a href="#4.19">4.19</a> Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?<br>
-<a href="#4.20">4.20</a> Proè operace s velkými objekty konèí "invalid large obj descriptor"?<br>
-<a href="#4.21">4.21</a> Jak vytvoøit sloupec obsahující implicitnì aktuální datum?<br>
-<a href="#4.22">4.22</a> Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?<br>
-<a href="#4.23">4.23</a> Jak provést vnìj¹í spojení (outer join)?<br>
-<a href="#4.24">4.24</a> Jak provést dotaz napøíè nìkolika databázemi?<br>
-<a href="#4.25">4.25</a> Mù¾e funkce vrátit více øádkù nebo sloupcù?<br>
-<a href="#4.26">4.26</a> Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v
-PL/pgSQL funkcích?<br>
-<a href="#4.27">4.27</a> Jaké jsou mo¾nosti replikace databází?<br>
-<a href="#4.28">4.28</a> Jaké jsou mo¾nosti ¹ifrování databází?<br>
-<h2>Roz¹iøování PostgreSQL</h2>
-<a href="#5.1">5.1</a> Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?<br>
-<a href="#5.2">5.2</a> Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi
-do PostgreSQL?<br>
-<a href="#5.3">5.3</a> Jak napsat funkci v C vracející ntici?<br>
-<a href="#5.4">5.4</a> Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi
-rekompilaci vzata v potaz. Proè?<br>
-
-
-
-
-<hr>
-<h2>Obecné otázky</h2>
-
-<h3><a name="1.1">1.1</a> Co je PostgreSQL? Jak se vyslovuje?</h3>
-
-<p>PostgreSQL se vyslovuje Post-Gres-Q-L.</p>
-
-<p></p>PostgreSQL vychází z databáze POSTGRES - výzkumného prototypu DBMS
-nové generace. Z postgresu byl pøevzat silný datový model a bohatý
-soubor datových typù a jeho dotazovací jazyk PostQuel byl nahrazen
-roz¹íøenou podmno¾inou jazyka SQL. PostgreSQL lze pou¾ívat bez
-omezení a jeho zdrojové kódy jsou volnì k dispozici.<p></p>
-
-<p>PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference
-PostgreSQL. Souèasným koordinátorem je Marc G. Fournier. (Odpovìï
-1.6. - jak se zapojit). Tento tým je zodpovìdný za ve¹kerý vývoj
-PostgreSQL.</p>
-
-<p>Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly
-Chen. Do portace, testování, ladìní a
-roz¹iøování kódu se zapojilo mnoho dal¹ích vývojáøù . Pùvodni kód Postgresu, ze kterého PostgreSQL
-vychází, je výsledkem úsilí mnoha studentù a programátorù pracujících
-pod vedením prof. Michaela Stonebrakera na University of California v
-Berkley.</p>
-
-<p>Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka SQL
-se název zmìnil na Postgres95. Koncem roku 1996 byl RDBMS 
-pøejmenován na PostgreSQL.</p>
-
-<h3><a name="1.2">1.2</a> Jaká je licence na PostgreSQL?</h3>
-
- <p>PostgreSQL je pøedmìtem následujících autorských práv:</p>
-
- <p>Dílèí copyright (c) 1996-2002, PostgreSQL Global Development Group</p>
-
- <p>Dílèí copyright (c) 1994-6, Regents of the University of California</p>
-
-
- <p>Udìluje se oprávnìní k u¾ití, rozmno¾ování, provádìní úprav a
- roz¹iøování tohoto softwaru a dokumentace k nìmu, pro jakékoli úèely,
- bez licenèního poplatku a bez písemné licenèní smlouvy, za podmínky, ¾e
- na v¹ech jeho kopiích je uvedeno oznámení o vý¹e uvedených právech,
- jako¾ i obsah tohoto a dvou následujících odstavcù.</p>
-
-
- <p>THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
- PØÍPADÌ ODPOVÌDNA ®ÁDNÉ TØETÍ OSOBÌ ZA PØÍMOU, NEPØÍMOU, ZVLÁ©TNÍ,
- NAHODILOU NEBO VýSLEDNOU ©KODU, VÈETNÌ U©LÉHO ZISKU, ZPùSOBENOU U®ITÍM
- TOHOTO SOFTWARU A DOKUMENTACE K NÌMU, A TO I V PØÍPADÌ, ®E THE
- UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ ©KODY.</p>
-
-
-  <p>THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
- NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE SPECIFICKýM
- ÚÈELùM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A LE®Í" A THE
- UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO ÚDR®BU, PODPORU,
- AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.</p>
-
- <p>Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde
- ¾ádné omezení ohlednì u¾ití kódu zdroje. Jsme s tím spokojeni a nemáme v
- úmyslu na této skuteènosti cokoli mìnit.</p>
-
-
-<h3><a name="1.3">1.3</a> Na kterých Unixex lze spustit PostgreSQL?</h3>
-
-<p>PostgreSQL bì¾í na v¹ech moderních unixových platformách. V instalaèních
-instrukcích naleznete aktuální seznam v¹ech platforem na kterých byla
-testováním ovìøena funkcionalita PostgreSQL.</p>
-
-<h3><a name="1.4">1.4</a> Které ne-unixové platformy jsou podporované?</h3>
-
-<h4>Klient</h4>
-
-<p>Knihovna libpq, psql a nìkteré dal¹í moduly byly pøelo¾eny pro 
-MS Windows. Klienta lze provozovat na MS Windows, ten prostøednictvím
-TCP/IP protokolu komunikuje se serverem bì¾ícím na nìkteré z podporovaných
-Unixových platforem. K pøekladu lze pou¾ít win32.mak a
-Win32 knihovny libpq a psql. K databázi PostgerSQL lze pøistupovat skrze
-rozhraní ODBC.</p>
-
-<h4>Server</h4>
-<p>Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou Cygwin,
-Cygnus Unix/NT porting library. Na nativním portu pro MS Win NT/2000/XP
-se pracuje. Existující port pro Novell Netware 6 naleznete na 
-<a href="http://forge.novell.com/">http://forge.novell.com</a>. </p>
-
-<h3><a name="1.5">1.5</a> Kde mohu získat PostgreSQL?</h3>
-
-<p>Primárním anonymním ftp serverem pro PostgreSQL je
-<a href="ftp://ftp.postgresql.org/pub">ftp://ftp.PostgreSQL.org/pub</a>
-. Seznam zrcadel naleznete na na¹ich
-webových stránkách.</p><p>
-
-</p><h3><a name="1.6">1.6</a> Kde mohu získat podporu?</h3>
-
-<p>Hlavním mailová konference je pgsql-general@PostgreSQL.org. Slou¾í
-k diskuzím ohlednì PostgreSQL. Pøihlásíte se zasláním mailu 
-obsahující následující øádky v tìle dopisu (nikoliv v záhlaví - subjectu)</p>
-<pre>subscribe
-end
-</pre>
-na adresu <a href="mailto:pgsql-general-request@PostgreSQL.org">mailto:pgsql-general-request@PostgreSQL.org</a>.<p></p>
-
-<p>Mù¾ete si vy¾ádat denní pøehled (diggest), který má zhruba 30K dennì zpráv.
-
-</p><p>Konference psql-bugs je urèena k zasílání zpráv o chybách. Pro pøihlá¹ení 
-po¹lete mail se stejným obsahem jako v pøedchozím pøípadì na adresu 
-<href ="mailto:pgsql-bugs-request@PostgreSQL.org">mailto:pgsql-bugs-request@PostgreSQL.org.</href></p>
-
-<p>Do vývojáøské konference se pøihlásíte odesláním dopisu s 
-ji¾ zmiòovaným obsahem na <a href="mailto:pgsql-hackers-request@PostgreSQL.org">mailto:pgsql-hackers-request@PostgreSQL.org</a>.</p>
-
-<p>Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL 
-<a href="http://www.postgresql.org/">http://www.postgresql.org</a></p>
-
-<h3><a name="1.7">1.7</a> Kde je poslední verze?</h3>
-
-<p>Poslední verzí je PostgreSQL 7.4.. Plánujeme uvolnit velkou verzi
-ka¾dých ¹est a¾ osm mìsícù.</p>
-
-<h3><a name="1.8">1.8</a> Jaká je dostupná dokumentace?</h3>
-
-<p>Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù
-jsou souèásti distribuce. Podívejte se do adresáøe /doc. Manuály jsou
-pøístupné online na <a href="http://www.postgresql.org/docs">http://www.PostgreSQL.org/docs</a>.</p>
-
-<p>Na adresách <a href="http://www.postgresql.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a> a
-<a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a> naleznezte dvì online knihy o
-PostgreSQL. Seznam dostupné literatury je na
-<a href="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</a>. Soubor
-technických èlánkù s tematikou PostgresQL najdete na
-<a href="http://techdocs.postgresql.org/">http://techdocs.PostgreSQL.org/</a>.</p> 
-
-<p>psql má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací
-o typech, operátorech, funkcí, agregaèních funkcí atd.</p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+  <HEAD>
+    <META name="generator" content="HTML Tidy, see www.w3.org">
+    <META http-equiv="Content-Type" content="text/html; charset="iso-8859-2">
+    <META http-equiv="Content-language" content="cs">
+    <META name="description" lang="en" content="Czech translation of FAQ for PostgreSQL"> 
+    <META name="description" lang="cs" content="Èeský pøeklad FAQ PostgreSQL">
+
+    <TITLE>PostgreSQL FAQ</TITLE>
+  </HEAD>
+
+  <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000"
+  alink="#0000ff">
+
+
+   <H1>Èasto kladené dotazy (FAQ) PostgreSQL</H1>
+
+   <P>Poslední aktualizace: Støeda 23. èervna 21:10:00 EST 2004</P>
+
+   <P>Souèasný správce: Bruce Momjian (<A href=
+   "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)</P>
+
+   <P>Pøelo¾il: Pavel Stìhule (<A href=
+   "mailto:stehule@kix.fsv.cvut.cz">stehule@kix.fsv.cvut.cz</A>)</P>
+
+   <P>Aktuální verzi tohoto dokumentu naleznete na adrese: <A href=
+   "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>. 
+   Èeský pøeklad na adrese: <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html">
+   http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html</A>.</P>
+
+   <P>Odpovìdi na dotazy relevantní ke konkrétním platformám
+   lze nalézt na adrese: <A href="http://www.PostgreSQL.org/docs/index.html">
+   http://www.PostgreSQL.org/docs/index.html</A>.</P>
+   <HR>
+   <H2 align="center">Obecné otázky</H2>
+
+   <A href="#1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?<BR>
+   <A href="#1.2">1.2</A>) Jaká je licence na PostgreSQL?<BR>
+   <A href="#1.3">1.3</A>) Na kterých Unixex lze spustit PostgreSQL?<BR>
+   <A href="#1.4">1.4</A>) Které ne-unixové platformy jsou podporované?<BR>
+   <A href="#1.5">1.5</A>) Kde mohu získat PostgreSQL?<BR>
+   <A href="#1.6">1.6</A>) Kde mohu získat podporu?<BR>
+   <A href="#1.7">1.7</A>) Kde je poslední verze?<BR>
+   <A href="#1.8">1.8</A>) Jaká je dostupná dokumentace?<BR>
+   <A href="#1.9">1.9</A>) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?<BR>
+   <A href="#1.10">1.10</A>) Jak se mohu nauèit SQL?<BR>
+   <A href="#1.11">1.11</A>) Nemá PostgreSQL problémy s rokem 2000?<BR>
+   <A href="#1.12">1.12</A>) Jak se pøipojit k vývojáøskému týmu?<BR>
+   <A href="#1.13">1.13</A>) Kam podat report o chybì?<BR>
+   <A href="#1.14">1.14</A>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?<BR>
+   <A href="#1.15">1.15</A>) Jak lze finanènì pomoci PostgreSQL?<BR>
+
+   <H2 align="center">User client dotazy</H2>
+
+   <A href="#2.1">2.1</A>) Kde naleznu ODBC ovladaèe pro PostgreSQL?<BR>
+   <A href="#2.2">2.2</A>) Jaké nástroje lze pou¾ít pro PostgreSQL a web?<BR>
+   <A href="#2.3">2.3</A>) Existuje grafické rozhraní pro PostgreSQL?<BR>
+   <A href="#2.4">2.4</A>) Které programovací jazyky mají podporu pro PostgreSQL?<BR>
+
+   <H2 align="center">Administrativní dotazy</H2>
+   <A href="#3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?<BR>
+   <A href="#3.2">3.2</A>) Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo
+   core dump. Proè?<BR>
+   <A href="#3.3">3.3</A>) Pøi startu postmastera dostanu hlá¹ení o chybì
+   IpcMemoryCreate. Proè?<BR>
+   <A href="#3.4">3.4</A>) Pøi startu postmastera dostanu hlá¹ení o chybì IpcSemaphoreCreate. 
+   Proè?<BR>
+   <A href="#3.5">3.5</A>) Jak povolit nebo zakázat pøístup z jiných stanic?<BR>
+   <A href="#3.6">3.6</A>) Jak ladit databázový stroj na lep¹í výkon?<BR>
+   <A href="#3.7">3.7</A>) Jaké jsou mo¾nosti ladìní?<BR>
+   <A href="#3.8">3.8</A>) Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?<BR>
+   <A href="#3.9">3.9</A>) K èemu slou¾í adresáø pgsql_tmp?<BR>
+   <A href="#3.10">3.10</A>) Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade
+   mezi velkými verzemi PostgreSQL?<BR>
+
+   <H2 align="center">Provozní dotazy</H2>
+
+   <A href="#4.1">4.1</A>) Èím se li¹í binární a normální kurzor?<BR>
+   <A href="#4.2">4.2</A>) Jak získat pouze první øádek dotazu? Náhodný øádek?<BR>
+   <A href="#4.3">4.3</A>) Jak získám seznam tabulek nebo jinak jak jej získá psql?<BR>
+   <A href="#4.4">4.4</A>) Jak odstraním sloupec tabulky, jak zmìním jeho typ?<BR>
+   <A href="#4.5">4.5</A>) Jaká je maximální velikost øádku, tabulky a databáze?<BR>
+   <A href="#4.6">4.6</A>) Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
+   textového souboru?<BR>
+   <A href="#4.7">4.7</A>) Jak získám seznam vytvoøených tabulek, indexù,
+   databází?<BR>
+   <A href="#4.8">4.8</A>) Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?<BR>
+   <A href="#4.9">4.9</A>) Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?<BR>
+   <A href="#4.10">4.10</A>) Co to je R-tree index?<BR>
+   <A href="#4.11">4.11</A>) Co je Genetic Query Optimizer?<BR>
+   <A href="#4.12">4.12</A>) Jak provést vyhledávání regulárního výrazu case sensitiv,
+   insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?<BR>
+   <A href="#4.13">4.13</A>) Jak v dotazu detekovat, ¾e polo¾ka je NULL?<BR>
+   <A href="#4.14">4.14</A>) Jaké jsou rozdíly mezi rùznými znakovými typy?<BR>
+   <A href="#4.15.1">4.15.1</A>) Jak vytvoøit serial/auto-increment pole?<BR>
+   <A href="#4.15.2">4.15.2</A>) Jak získat hodnotu SERIAL po vlo¾ení øádku?<BR>
+   <A href="#4.15.3">4.15.3</A>) Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s
+   jinými u¾ivateli?<BR>
+   <A href="#4.15.4">4.15.4</A>) Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce?
+   Proè vznikají díry v èíslování vlastní sekvencí/SERIAL sloupce?<BR>
+   <A href="#4.16">4.16</A>) Co to je OID? Co je to TID?<BR>
+   <A href="#4.17">4.17</A>) Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?<BR>
+   <A href="#4.18">4.18</A>) Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
+   AllocSetAlloc()"?<BR>
+   <A href="#4.19">4.19</A>) Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?<BR>
+   <A href="#4.20">4.20</A>) Proè operace s velkými objekty konèí "invalid large obj descriptor"?<BR>
+   <A href="#4.21">4.21</A>) Jak vytvoøit sloupec obsahující implicitnì aktuální datum?<BR>
+   <A href="#4.22">4.22</A>) Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?<BR>
+   <A href="#4.23">4.23</A>) Jak provést vnìj¹í spojení (outer join)?<BR>
+   <A href="#4.24">4.24</A>) Jak provést dotaz napøíè nìkolika databázemi?<BR>
+   <A href="#4.25">4.25</A>) Mù¾e funkce vrátit více øádkù nebo sloupcù?<BR>
+   <A href="#4.26">4.26</A>) Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky 
+   v PL/pgSQL funkcích?<BR>
+   <A href="#4.27">4.27</A>) Jaké jsou mo¾nosti replikace databází?<BR>
+   <A href="#4.28">4.28</A>) Jaké jsou mo¾nosti ¹ifrování databází?<BR>
+
+   <H2 align="center">Roz¹iøování PostgreSQL</H2>
+
+   <A href="#5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?<BR>
+   <A href="#5.2">5.2</A>) Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do
+   PostgreSQL?<BR>
+   <A href="#5.3">5.3</A>) Jak napsat funkci v C vracející ntici?<BR>
+   <A href="#5.4">5.4</A>) Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi rekompilaci
+   vzata v potaz. Proè?<BR>
+
+   <HR>
+   <H2 align="center">Obecné otázky</H2>
+
+   <H4><A name="1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?</H2>
+
+   <P>PostgreSQL se vyslovuje <I>Post-Gres-Q-L</I>. Zvukový záznam je 
+   dostupný na adrese <A href="http://www.postgresql.org/postgresql.mp3"></A>.</P>
+
+   <P>PostgreSQL vychází z databáze POSTGRES (a stále je nìkdy oznaèován
+   zjednodu¹enì jako Postgres) - výzkumného prototypu <SMALL>DBMS</SMALL> nové
+   generace. Z postgresu byl pøevzat silný datový model a bohatý soubor
+   datových typù a jeho dotazovací jazyk PostQuel byl nahrazen roz¹íøenou
+   podmno¾inou jazyka <SMALL>SQL</SMALL>. PostgreSQL lze pou¾ívat bez omezení a jeho
+   zdrojové kódy jsou volnì k dispozici.</P>
+
+   <P>PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference
+   PostgreSQL. Souèasným koordinátorem je Marc G. Fournier (<A href=
+   "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). 
+   (viz <A href="#1.6">1.6</A> - jak se zapojit). Tento tým je zodpovìdný za ve¹kerý vývoj 
+   PostgreSQL. Jedná se o veøejný projekt, který není øízen ¾ádnou firmou.
+   Pokud se chcete zapojit, pøeètìte si  developer's FAQ na adrese <A href=
+   "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A></P>
+
+   <P>Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
+   portace, testování, ladìní a roz¹iøování kódu se zapojilo mnoho dal¹ích
+   vývojáøù . Pùvodni kód Postgresu, ze kterého PostgreSQL vychází, je
+   výsledkem úsilí mnoha studentù a programátorù pracujících pod vedením
+   prof. Michaela Stonebrakera na University of California v Berkley.</P>
+
+   <P>Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka <SMALL>SQL</SMALL> se
+   název zmìnil na Postgres95. Koncem roku 1996 byl RDBMS pøejmenován na
+   PostgreSQL.</P>
+
+   <H4><A name="1.2">1.2</A>) Jaká je licence na PostgreSQL?</H4>
+
+   <P>PostgreSQL je pøedmìtem následujících autorských práv:</P>
+
+   <P>Dílèí copyright (c) 1996-2004, PostgreSQL Global Development Group
+   Dílèí copyright (c) 1994-6, Regents of the University of California</P>
+
+   <P>Udìluje se oprávnìní k u¾ití, rozmno¾ování, provádìní úprav a
+   roz¹iøování tohoto softwaru a dokumentace k nìmu, pro jakékoli úèely,
+   bez licenèního poplatku a bez písemné licenèní smlouvy, za podmínky, ¾e
+   na v¹ech jeho kopiích je uvedeno oznámení o vý¹e uvedených právech,
+   jako¾ i obsah tohoto a dvou následujících odstavcù.</P>
+
+   <P>THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
+   PØÍPADÌ ODPOVÌDNA ®ÁDNÉ TØETÍ OSOBÌ ZA PØÍMOU, NEPØÍMOU, ZVLÁ©TNÍ,
+   NAHODILOU NEBO VÝSLEDNOU ©KODU, VÈETNÌ U©LÉHO ZISKU, ZPùSOBENOU U®ITÍM
+   TOHOTO SOFTWARU A DOKUMENTACE K NÌMU, A TO I V PØÍPADÌ, ®E THE
+   UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ
+   ©KODY.</P>
+
+   <P>HE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
+   NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE SPECIFICKýM
+   ÚÈELùM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A LE®Í" A THE
+   UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO ÚDR®BU, PODPORU,
+   AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.</P>
+
+   <P>Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde
+   ¾ádné omezení ohlednì u¾ití kódu zdroje. Jsme s tím spokojeni a nemáme v
+   úmyslu na této skuteènosti cokoli mìnit.</P>
+
+   <H4><A name="1.3">1.3</A>) Na kterých Unixex lze spustit PostgreSQL?</H4>
+
+   <P>PostgreSQL bì¾í na v¹ech moderních unixových platformách. V instalaèních
+   instrukcích naleznete aktuální seznam v¹ech platforem na kterých byla
+   testováním ovìøena funkcionalita PostgreSQL.</P>
+
+   <H4><A name="1.4">1.4</A>) Které ne-unixové platformy jsou podporované?</H4>
+
+   <P><STRONG>Klient</STRONG></P>
+
+   <P>Knihovna <I>libpq</I>, psql a nìkteré dal¹í moduly byly pøelo¾eny pro MS
+   Windows. Klienta lze provozovat na MS Windows, ten prostøednictvím
+   TCP/IP protokolu komunikuje se serverem bì¾ícím na nìkteré z
+   podporovaných Unixových platforem. K pøekladu lze pou¾ít <I>win32.mak</I> a
+   Win32 knihovny <I>libpq</I> a <I>psql</I>. K databázi PostgerSQL lze pøistupovat skrze
+   rozhraní <SMALL>ODBC</SMALL>.</P>
+
+   <P><STRONG>Server</STRONG><P>
+
+   <P>Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou
+   Cygwin, Cygnus Unix/NT porting library. Více <I>pgsql/doc/FAQ_MSWIN</I> v
+   distribuci nebo MS Windows FAQ na adrese
+   <A href="http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.
+
+   <P>Na nativním portu pro MS Win NT/2000/XP se pracuje. Dal¹í informace
+   o aktuálním stavu PostgreSQL pro Windows naleznet na adrese
+   <A href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> a
+   <A href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">
+   http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.
+
+   <P>Existující port pro Novell Netware 6 naleznete na
+   <A href="http://forge.novell.com">http://forge.novell.com</A>.</P>
+
+   <H4><A name="1.5">1.5</A>) Kde mohu získat PostgreSQL?</H4>
 
-<p>Více dokumentace naleznete na na¹ich webových stránkách.</p>
+   <P>Primárním anonymním ftp serverem pro PostgreSQL je
+   <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>. 
+   Seznam zrcadel naleznete na na¹ich webových stránkách.</P>
 
-<h3><a name="1.9">1.9</a> Kde najdu seznam známých chyb nebo nepodporovaných vlastností?</h3>
-
-<p>PostgreSQL podporuje roz¹íøenou podmno¾inu SQL-92. V na¹em <a href="http://developer.postgresql.org/todo.php">TODO</a> najdete
-seznam známých chyb, chybìjících vlastností a seznam vlastností,
-které budou do systému implementovány v budoucnu (vèetnì priorit).</p>
-
-<h3><a name="1.10">1.10</a> Jak se mohu nauèit SQL?</h3>
-
-<p>V knize The PostgreSQL book na <a href="http://www.postgresql.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a>
-je vysvìtlen jazyk SQL (vy¹la èesky). Dal¹í dostupnou knihou je
-<a href="http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook</a>. Kvalitní návody naleznete na
-<a href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>, na
-<a href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://www.intermedia.net/support/sql/sqltut.shtm</a>,
-a na <a href="http://sqlcourse.com/">http://sqlcourse.com</a>.</p>
-
-<p>Dal¹í je Teach Yourself SQL in 21 days, Second Edition na
-<a href="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a>.</p>
-
-<p>Mnoho u¾ivatelù doporuèuje The Practical SQL Handbook, Bowman, Judith
-S., et al., Addison-Wesley. Jiní preferují The Complete Reference SQL,
-Groff et al., McGraw-Hill.</p>
-
-<h3><a name="1.11">1.11</a> Nemá PostgreSQL problémy s rokem 2000?</h3>
-
-<p>Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed
-rokem 2000 pø.n.l. </p>
-
-<h3><a name="1.12">1.12</a> Jak se pøipojit k vývojáøskému týmu?</h3>
-
-<p>Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou
-dokumentaci na na¹em webu nebo v distribuci. Pak se pøihla¹te do
-konferencí pgsql-hackers a pgsql-patches. Kvalitní záplaty
-posílejte do pgsql-patches.</p>
-
-<p>Právo commit má v cvs archivu asi tøinácti lidí. Ka¾dý z nich
-poslal mnoho kvalitních záplat, tak¾e tehdej¹í commiters mìli
-jistotu, ¾e budou pøedkládat jenom kvalitní záplaty a mohli jim
-pøedìlit vìt¹í práva.</p>
-
-<h3><a name="1.13">1.13</a> Kam podat report o chybì?</h3>
-
-<p>Nav¹tivte na¹i PostgreSQL BugTool stránku na
-<a href="http://www.postgresql.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</a>, která obsahuje návod a
-smìrnice jak podat chybový report. </p>
-
-<p>Ovìøte si na na¹em ftp serveru <a href="ftp://ftp.postgresql.org/pub">ftp://ftp.PostgreSQL.org/pub</a>, zda-li
-máte nejnovìj¹í verzi PostgreSQL a zda-li k ní neexistují nìjaké záplaty.</p>
-
-<h3><a name="1.14">1.14</a> Jak je na tom PostgreSQL v porovnání s jinými databázemi?</h3>
-
-<p>Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon,
-spolehlivost, podpora a cena.</p>
-
-<h4>Vlastnosti</h4>
-       <p>PostgreSQL má hodnì spoleèných vlastností s velkými komerèními
-       DBMS, napø. transakce, vnoøené dotazy, spou¹tì, pohledy,
-       kontrolu referenèní integrity a sofistikované
-       zamykání. Podporuje nìkteré vlastnosti, které tyto systémy
-       nemají, u¾ivatelem definované typy, dìdiènost, pravidla, MVCC
-       redukující zamykání.</p>
-
-<h4>Výkon</h4>
-       <p>Výkonnostnì je na tom PostgreSQL podobnì jako dal¹í komerèní
-       ale i open source databáze, v nìèem je rychlej¹í, jindy
-       pomalej¹í. V porovnání s MySQL a podobnými databázovými
-       systémy je PostgreSQL rychlej¹í pøi víceu¾ivatelském
-       pøístupu, slo¾itìj¹ích dotazech a zatí¾ení read/write dotazy. MySQL
-       je rychlej¹í v jednodu¹¹ích dotazech s malým poètem
-       u¾ivatelù. Navíc, MySQL nepodporuje mnohé vlatnosti zmínìné v
-       sekci vlastnosti. Zapracovali jsme na spolehlivosti a podporovaných
-       vlastnostech, a výkon zvy¹ujeme v ka¾dé
-       verzi. Zajímavou stránku porovnávající PostgreSQL a MySQL
-       naleznete na
-       <a href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</a>. Za vývojem MySQL 
-       není Open Source komunita, ale komerèní spoleènost, pøesto¾e 
-       svoje produkty distribuuje jako Open Source.</p>
-
-<h4>Spolehlivost</h4>
-       <p>Jsme si vìdomi, ¾e databáze musí být spolehlivá, jinak je
-       nepou¾itelná. Sna¾íme se zveøejòovat dobøe otestovaný, stabilní kód s
-       minimem chyb. Ka¾dá verze je více ne¾ mìsíc v beta testování,
-       a na¹e historie verzí ukazuje, ¾e mù¾eme nabídnout stabilní,
-       solidní verze, které jsou pøipraveny pro reálné nasazení. V
-       této oblasti jsme srovnatelní s dal¹ími databázemi. </p>
-
-<h4>Podpora</h4>
-       <p>Na na¹í mailové konferenci mù¾ete kontaktovat velkou skupinu
+   <H4><A name="1.6">1.6</A>) Kde mohu získat podporu?</H4>
+
+   <P>Hlavní mailová konference je: <A href="mailto:pgsql-general@PostgreSQL.org">
+   pgsql-general@PostgreSQL.org</A>. Slou¾í k
+   diskuzím ohlednì PostgreSQL. Pøihlásíte se zasláním mailu obsahující
+   následující øádky v tìle dopisu (nikoliv v záhlaví - subjectu):</P>
+<PRE>
+    subscribe
+    end
+</PRE>
+   na adresu <A href="mailto:pgsql-general-request@PostgreSQL.org">
+   pgsql-general-request@PostgreSQL.org</A>.</P>
+
+   <P>Mù¾ete si vy¾ádat denní pøehled (diggest), který má zhruba 30K dennì
+   zpráv.</P>
+
+   <P>Konference psql-bugs je urèena k zasílání zpráv o chybách. Pro
+   pøihlá¹ení po¹lete mail se stejným obsahem jako v pøedchozím pøípadì na
+   adresu <A href="mailto:pgsql-bugs-request@PostgreSQL.org">
+   pgsql-bugs-request@PostgreSQL.org</A>.</P>
+
+   <P>Do vývojáøské konference se pøihlásíte odesláním dopisu s ji¾ zmiòovaným
+   obsahem na mailto:pgsql-hackers-request@PostgreSQL.org.</P>
+
+   <P>Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL:</P>
+   <BLOCKQUOTE>
+   <A href="http://www.postgresql.org">http://www.postgresql.org</A>
+   </BLOCKQUOTE>
+   <H4><A name="1.7">1.7</A>) Jaká je poslední verze?</H4>
+
+   <P>Poslední verze PostgreSQL je 7.4.3. Plánujeme uvolnit významnou verzi
+   ka¾dých ¹est a¾ osm mìsícù.</P>
+
+   <H4><A name="1.8">1.8</A>) Jaká je dostupná dokumentace?</H4>
+
+   <P>Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù
+   jsou souèásti distribuce. Podívejte se do adresáøe <I>/doc</I>. Manuály jsou
+   pøístupné online na <A href="http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
+
+   <P>Na adresách <A href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> a
+   <A href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A> 
+   naleznezte dvì online knihy o PostgreSQL. Seznam dostupné literatury je na
+   <A href="http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
+   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. Soubor
+   technických èlánkù s tematikou PostgresQL najdete na <A href=
+   "http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</A>.</P>
+
+   <P><I>psql</I> má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací o typech,
+   operátorech, funkcí, agregaèních funkcí atd.</P>
+
+   <P>Více dokumentace naleznete na na¹ich webových stránkách.</P>
+
+   <H4><A name="1.9">1.9</A>) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?</H4>
+
+   <P>PostgreSQL podporuje roz¹íøenou podmno¾inu <SMALL>SQL-92</SMALL>. V na¹em 
+   <A href="http://developer.PostgreSQL.org/todo.php">TODO</A>
+   najdete seznam známých chyb, chybìjících vlastností a seznam vlastností,
+   které budou do systému implementovány v budoucnu (vèetnì priorit).</P>
+
+   <H4><A name="1.10">1.10</A>) Jak se mohu nauèit SQL?</H4>
+
+   <P>V knize The PostgreSQL book na <A href=
+   "http://www.PostgreSQL.org/docs/awbook.html">
+   http://www.PostgreSQL.org/docs/awbook.html</A> je vysvìtlen jazyk SQL (vy¹la
+   èesky). Dal¹í dostupnou knihou je <A href=
+   "http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook</A>.
+   Kvalitní návody naleznete na <A href=
+   "http://www.intermedia.net/support/sql/sqltut.shtm"> 
+   http://www.intermedia.net/support/sql/sqltut.shtm</A>, a na
+   <A href="http://sqlcourse.com">http://sqlcourse.com</A>.</P>
+
+   <P>Dal¹í je Teach Yourself SQL in 21 days, Second Edition na <A href=
+   "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A>.</P>
+
+   <P>Mnoho u¾ivatelù doporuèuje <I>The Practical SQL Handbook</I>, Bowman, Judith
+   S., et al., Addison-Wesley. Jiní preferují <I>The Complete Reference SQL</I>,
+   Groff et al., McGraw-Hill.</P>
+
+   <H4><A name="1.11">1.11</A>) Nemá PostgreSQL problémy s rokem 2000?</H4>
+
+   <P>Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed
+   rokem 2000 pø.n.l.</P>
+
+   <H4><A name="1.12">1.12</A>) Jak se pøipojit k vývojáøskému týmu?</H4>
+
+   <P>Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou
+   dokumentaci na na¹em webu nebo v distribuci. Pak se pøihla¹te do
+   konferencí <I>pgsql-hackers</I> a <P>pgsql-patches</I>. Kvalitní záplaty posílejte do
+   pgsql-patches.</P>
+
+   <P>Právo commit má v <SMALL>CVS</SMALL> archivu asi tøinácti lidí. Ka¾dý z nich poslal
+   mnoho kvalitních záplat, tak¾e tehdej¹í commiters mìli jistotu, ¾e budou
+   pøedkládat jenom kvalitní záplaty a mohli jim pøedìlit vìt¹í práva.</P>
+
+   <H4><A name="1.13">1.13</A>) Kam podat report o chybì?</H4>
+
+   <P>Nav¹tivte na¹i PostgreSQL BugTool stránku na <A href=
+   "http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>, 
+   která obsahuje návod a smìrnice jak podat chybový report.</P>
+
+   <P>Ovìøte si na na¹em ftp serveru <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>, 
+   zda-li máte nejnovìj¹í verzi PostgreSQL a zda-li k ní neexistují nìjaké záplaty.</P>
+
+   <H4><A name="1.14">1.14</A>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?</H4>
+
+   <P>Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon,
+   spolehlivost, podpora a cena.</P>
+   <DL>
+   <DT><B>Vlastnosti</B></DT>
+       <DD>PostgreSQL má hodnì spoleèných vlastností s velkými komerèními 
+       <SMALL>DBMS</SMALL>, napø. transakce, vnoøené dotazy, spou¹tì, pohledy, kontrolu 
+       referenèní integrity a sofistikované zamykání. Podporuje nìkteré 
+       vlastnosti, které tyto systémy nemají, u¾ivatelem definované typy, 
+       dìdiènost, pravidla, MVCC redukující zamykání.</BR></BR></DD>
+
+   <DT><B>Výkon</B></DT>
+       <DD>Výkonnostnì je na tom PostgreSQL podobnì jako dal¹í komerèní ale 
+       i open source databáze, v nìèem je rychlej¹í, jindy pomalej¹í. 
+       V porovnání s MySQL a podobnými databázovými systémy je PostgreSQL 
+       rychlej¹í pøi víceu¾ivatelském pøístupu, slo¾itìj¹ích dotazech 
+       a zatí¾ení read/write dotazy. MySQL je rychlej¹í v jednodu¹¹ích 
+       dotazech s malým poètem u¾ivatelù. Navíc, MySQL nepodporuje mnohé 
+       vlatnosti zmínìné v sekci <I>vlastnosti</I>. Zapracovali jsme na 
+       spolehlivosti a podporovaných vlastnostech, a výkon zvy¹ujeme 
+       v ka¾dé verzi. Zajímavou stránku porovnávající PostgreSQL a MySQL 
+       naleznete na <A href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>. 
+       Za vývojem MySQL není Open Source komunita, ale komerèní spoleènost,
+       pøesto¾e svoje produkty distribuuje jako Open Source.<BR><BR></DD>
+
+   <DT><B>Spolehlivost</B></DT>
+       <DD>Jsme si vìdomi, ¾e databáze musí být spolehlivá, jinak je 
+       nepou¾itelná. Sna¾íme se zveøejòovat dobøe otestovaný, stabilní 
+       kód s minimem chyb. Ka¾dá verze je více ne¾ mìsíc v beta testování, 
+       a na¹e historie verzí ukazuje, ¾e mù¾eme nabídnout stabilní, solidní 
+       verze, které jsou pøipraveny pro reálné nasazení. V této oblasti 
+       jsme srovnatelní s dal¹ími databázemi.</BR></BR></DD>
+
+   <DT><B>Podpora</B></DT>
+       <DD>Na na¹í mailové konferenci mù¾ete kontaktovat velkou skupinu 
        vývojáøù a u¾ivatelù.problémù. Nemù¾eme garantovat opravu, 
-       nicménì komerèní databáze také ne v¾dy nabídnou opravu. Podle ohlasù
-       je na¹e podpora hodnocena lépe ne¾ u jiných DBMS a to díky
-       pøímému kontaktu s vývojáøi, velkou komunitou u¾ivatelù, 
+       nicménì komerèní databáze také ne v¾dy nabídnou opravu. Podle 
+       ohlasù je na¹e podpora hodnocena lépe ne¾ u jiných <SMALL>DBMS</SMALL> a to 
+       díky pøímému kontaktu s vývojáøi, velkou komunitou u¾ivatelù, 
        kvalitními manuály a pøístupným zdrojovým kódem. Pro u¾ivatele, 
-       kteøí vy¾adují podporu ke konkrétním pøípadùm, existuje placená podpora
-       (FAQ sekce 1.6).</p>
+       kteøí vy¾adují podporu ke konkrétním pøípadùm, existuje placená 
+       podpora (<A href="#1.6">FAQ sekce 1.6</A>).<BR><BR></DD>
 
-<h4>Cena</h4>
-       <p>PosgreSQL lze volnì pou¾ívat pro nekomerèní i komerèní
-       pou¾ití. Mù¾ete do svých produktù pøidat ná¹ kód bez omezení,
-       respektive v souladu s podmínkami na¹í licenèní smlouvy (v duchu BSD
-       licence).</p>
+   <DT><B>Cena</B><DT>
+       <DD>PosgreSQL lze volnì pou¾ívat pro nekomerèní i komerèní pou¾ití. 
+       Mù¾ete do svých produktù pøidat ná¹ kód bez omezení, respektive 
+       v souladu s podmínkami na¹í licenèní smlouvy (v duchu BSD licence).<BR>
+        <BR></DD>
+   </DL>
 
-<h3><a name="1.15">1.15</a> Jak lze finanènì pomoci PostgreSQL?</h3>
+   <H4><A name="1.15">1.15</A>) Jak lze finanènì pomoci PostgreSQL?</H4>
 
-<p>PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce
-1996. Vdìèíme za to Marku Fournierovi, který zalo¾il a spravoval tuto
-infrastrukturu nìkolik let.</p>
+   <P>PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce 1996.
+   Vdìèíme za to Marku Fournierovi, který zalo¾il a spravoval tuto
+   infrastrukturu nìkolik let.</P>
 
-<p>Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source
-projekt. Pøedchází nedorozumìním, která velice zdr¾ují pokrok v projektu.</p>
+   <P>Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source
+   projekt. Pøedchází nedorozumìním, která velice zdr¾ují pokrok v
+   projektu.</P>
 
-<p>Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále hradit urèité
-mìsíèní a jednorázové èástky. Pokud máte Vy nebo Va¹e spoleènost
-peníze, které nám mù¾ete darovat, obra»e se na <a href="http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</a> a darujte je.</p>
+   <P>Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále
+   hradit urèité mìsíèní a jednorázové èástky. Pokud máte Vy nebo Va¹e
+   spoleènost peníze, které nám mù¾ete darovat, obra»e se na <A href=
+   "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> a darujte je.</P>
 
-<p>Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny
-pouze k podpoøe projektu PostgreSQL a nepodporují ¾ádnou existující
-spoleènost. Pokud to vy¾adujete, mù¾ete poslat kontrolu na na¹i kontaktní
-adresu.</p> 
+   <P>Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny pouze
+   k podpoøe projektu PostgreSQL a nepodporují ¾ádnou existující
+   spoleènost. Pokud to vy¾adujete, mù¾ete poslat kontrolu na na¹i
+   kontaktní adresu.</P>
+   <HR>
 
-<p>Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹
-advocacy site na  <a href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>.</p>
-<hr>
+   <P>Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹
+   advocacy site na <A href="http://advocacy.postgresql.org">http://advocacy.postgresql.org</A>.</P>
 
-<h2>User client dotazy</h2>
+   <H2 align="center">User client dotazy</H2>
 
-<h3><a name="2.1">2.1</a> Kde naleznu ODBC ovladaèe pro PostgreSQL?</h3>
+   <H4><A name="2.1">2.1</A>) Kde naleznu <SMALL>ODBC</SMALL> ovladaèe pro PostgreSQL?</H4>
 
-<p>Pro PostgreSQL existují dva ODBC ovladaèe - PsqlODBC a OpenLink ODBC.</p>
+   <P>Pro PostgreSQL existují dva <SMALL>ODBC</SMALL> ovladaèe - PsqlODBC a OpenLink ODBC.</P>
 
-<p>PsqlODBC je ke sta¾ení na <a href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</a>.</p> 
+   <P>PsqlODBC je ke sta¾ení na <A href=
+   "http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">
+   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>.</P>
 
-<p>OpenLink mù¾ete získat na <a href="http://www.openlinksw.com/">http://www.openlinksw.com</a>. Spolupracuje 
-s jejich klientským programovým vybavením a je dostupný pro v¹echny jimi 
-podporované platformy (Win, Mac, Unix, VMS).</p> 
+   <P>OpenLink mù¾ete získat na <A href="http://www.openlinksw.com">http://www.openlinksw.com</A>. 
+   Spolupracuje s jejich klientským programovým vybavením a je dostupný pro v¹echny jimi
+   podporované platformy (Win, Mac, Unix, VMS).</P>
 
-<p>Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní kvality,
-nicménì freeware verze je dostupná a funkèní. Dotazy zasílejte
-na postgres95@openlink.co.uk.</p>
+   <P>Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní kvality,
+   nicménì freeware verze je dostupná a funkèní. Dotazy zasílejte na <A href=
+   "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P>
 
-<h3><a name="2.2">2.2</a> Jaké nástroje lze pou¾ít pro PostgreSQL a web?</h3>
+   <H4><A name="2.2">2.2</A>) Jaké nástroje lze pou¾ít pro PostgreSQL a web?</H4>
 
-<p>Pìkný úvod do databázových technologií zabezpeèujících chod
-webových stránek najdete na <a href="http://www.webreview.com/">http://www.webreview.com</a>.</p>
+   <P>Pìkný úvod do databázových technologií zabezpeèujících chod webových
+   stránek najdete na <A href="http://www.webreview.com">http://www.webreview.com</A>.</P>
 
-<p>Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
-<a href="http://www.php.net/">http://www.php.net</a>.</p> 
+   <P>Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
+   <A href="http://www.php.net">http://www.php.net</A>.</P>
 
-<p>Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.</p>
+   <P>Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.</P>
 
-<h3><a name="2.3">2.3</a> Existuje grafické rozhraní pro PostgreSQL?</h3>
+   <H4><A name="2.3">2.3</A>) Existuje grafické rozhraní pro PostgreSQL?</H4>
 
-<p>Pro PostgreSQL existuje nìkolik grafických rozhraní: 
-PgAccess (<a href="http://www.php.net/">http://www.php.net</a>), PgAdmin (<a href="http://www.php.net/">http://www.php.net</a>), RHDB
-Admin (<a href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</a>) a Rekall
-(<a href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</a>). Dále existuje
-PHPPgAdmin (<a href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</a>) rozhraní
-PostgreSQL zalo¾ené na web technologii.</p>
+   <P>Pro PostgreSQL existuje nìkolik grafických rozhraní: PgAccess
+   (<A href="http://www.php.net">http://www.php.net</A>), PgAdmin III 
+   (<A href="http://www.php.net">http://www.php.net</A>), RHDB Admin
+   (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>) a Rekall (
+   <A href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</A>). 
+   Dále je¹tì PhpPgAdmin
+   (<A href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</A>) co¾ je rozhraní PostgreSQL 
+   zalo¾ené na web technologii.</P>
 
-<p>Úplnìj¹í seznam najdete na <a href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</a>.</p>
+   <P>Úplnìj¹í seznam najdete na <A href=
+   "http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.</P>
 
-<h3><a name="2.4">2.4</a> Které programovací jazyky mají podporu pro PostgreSQL?</h3>
+   <H4><A name="2.4">2.4</A>) Které programovací jazyky mají podporu pro PostgreSQL?</H4>
 
-<p>Vìt¹ina programovacích jazykù obsahuje rozhraní pro
-PostgreSQL. Podívejte se do roz¹iøujících modulù Va¹eho programovacího
-jazyka.</p>
+   <P>Vìt¹ina programovacích jazykù obsahuje rozhraní pro PostgreSQL.
+   Podívejte se do roz¹iøujících modulù Va¹eho programovacího jazyka.</P>
 
-<p>Distribuce PostgreSQL obsahuje tato rozhraní:
-  </p><ul>
-  <li> C (libpq)
-  </li><li> Embbedded C (ecpg)
-  </li><li> Java (jdbc)
-  </li><li> Python (PyGreSQL)
-  </li><li> TCL (libpgtcl)
-</li></ul>
-<p>Dal¹í rozhraní jsou dostupná na <a href="http://gborg.postgresql.org/">http://gborg.postgresql.org</a> v sekci
-Drivers/Interfaces. </p>
-<hr>
+   <P>Distribuce PostgreSQL obsahuje tato rozhraní:</P>
+   <UL>
+      <LI>C (libpq)</LI>
+      <LI>Embbedded C (ecpg)</LI>
+      <LI>Java (jdbc)</LI>
+      <LI>Python (PyGreSQL)</LI>
+      <LI>TCL (libpgtcl)</LI>
+   </UL>
+   <P>Dal¹í rozhraní jsou dostupná na <A href="http://gborg.postgresql.org">http://gborg.postgresql.org</A> 
+   v sekci <I>Drivers/Interfaces</I>.</P>
+  <HR>
 
-<h2>Administrativní dotazy</h2>
+  <H2 align="center">Administrativní dotazy</H2>
 
-<h3><a name="3.1">3.1</a> Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?</h3>
+   <H4><A name="3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?</H4>
 
-<p>Pou¾ijte volbu --prefix pøi spu¹tìní configure</p>
+   <P>Pou¾ijte volbu <I>--prefix</I> pøi spu¹tìní configure.</P>
 
-<h3><a name="3.2">3.2</a> Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo
-core dump. Proè?</h3>
+   <H4><A name="3.2">3.2</A>) Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call 
+    nebo core dump. Proè?</H4>
+
+   <P>Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém
+   podporuje System V extensions. PostgreSQL vy¾aduje v jádøe podporu
+   sdílené pamìti a semaforù.</P>
+
+   <H4><A name="3.3">3.3</A>) Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. Proè?</H4>
 
-<p>Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém
-podporuje System V extensions. PostgreSQL vy¾aduje v jádøe podporu
-sdílené pamìti a semaforù.</p>
+   <P>Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo musite
+   zvìt¹it její velikost. Potøebná velikost je závislá na architektuøe a na
+   tom, kolik pamì»ových bufferù a backendù máte povoleno pro postmastera.
+   Pro vìt¹inu systémù s pøeddefinovaným poètem backendù a pamì»ových
+   bufferù je minimum zhruba 1MB. V PostgreSQL Administrator's Guide
+   naleznete podrobnìj¹í informace o sdílené pamìti a semaforech.</P>
 
-<h3><a name="3.3">3.3</a> Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. Proè?</h3>
+   <H4><A name="3.4">3.4</A>) Pøi startu postmastera dostanu hlá¹ení o chybì IpcSemaphoreCreate. 
+    Proè?</H4>
 
-<p>Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo
-musite zvìt¹it její velikost. Potøebná velikost je závislá na
-architektuøe a na tom, kolik pamì»ových bufferù a backendù máte povoleno 
-pro postmastera. Pro vìt¹inu systémù s 
-pøeddefinovaným poètem backendù a pamì»ových bufferù je
-minimum zhruba 1MB. V <a href="http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide">http://www.postgresql.org/docs/view.php?version=current&amp;idoc=1&amp;file=kernel-resources.html</a>
-naleznete podrobnìj¹í informace o sdílené pamìti a semaforech.</p> 
+   <P>Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
+   space left on device), pak va¹e jádro nemá dost volných semaforù.
+   PostgreSQL vy¾aduje jeden semafor pro ka¾dý backend v pozadí. Doèasným
+   øe¹ením je start <I>postmaster</I> s limitem backendù. Pou¾ijte pøepínaè <I>-N</I> s
+   hodnotou men¹í ne¾ 32. Úplným øe¹ením je zvý¹ení hodnot <SMALL>SEMMNS</SMALL> 
+   a <SMALL>SEMMNI</SMALL> jadra.</P>
 
-<h3><a name="3.4">3.4</a> Pøi startu postmastera dostanu hlá¹ení o chybì
-IpcSemaphoreCreate. Proè?</h3>
+   <P>Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových
+   operací.</P>
+
+   <P>Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec
+   nakonfigurovány semafory ve va¹em jádøe. V PostgreSQL Administrator's
+   Guide najdete podrobnìj¹í popis po¾adavkù na sdílenou pamìt a semafory.</P>
+
+   <H4><A name="3.5">3.5</A>) Jak povolit nebo zakázat pøístup z jiných stanic?</H4>
 
-<p>Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
-space left on device), pak va¹e jádro nemá dost volných  semaforù. PostgreSQL
-vy¾aduje jeden semafor pro ka¾dý backend v pozadí. Doèasným
-øe¹ením je start postmastera s limitem backendù. Pou¾ijte
-pøepínaè -N s hodnotou men¹í ne¾ 32. Úplným øe¹ením je zvý¹ení hodnot
-SEMMNS a SEMMNI jadra.</p>
-
-<p>Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových
-operací.</p>
-
-<p>Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec
-nakonfigurovány semafory ve va¹em jádøe. V PostgreSQL
-Administrator's Guide najdete podrobnìj¹í popis po¾adavkù na sdílenou
-pamìt a semafory.</p>
-
-<h3><a name="3.5">3.5</a> Jak povolit nebo zakázat pøístup z jiných stanic?</h3>
-
-<p>Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾
-lokální s pou¾itím UDP. Databáze se zpøístupní jiným stanicím
-nastavením pøepínaèe -i postmastera a povolením stanice a urèením
-re¾imu autentifikace v $PGDATA/pg_hba.conf. Tím se povolí TCP/IP
-spojení. ZASTARALÉ</p>
-
-<h3><a name="3.6">3.6</a> Jak ladit databázový stroj na lep¹í výkon?</h3>
-
-<p>Urèitì pomohou indexy. Pøíkaz EXPLAIN zobrazí zpùsob interpretace
-Va¹eho dotazu a pou¾ití indexù.</p>
-
-<p>Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem COPY. Ten je
-mnohem rychlej¹í ne¾li samotný INSERT. Ka¾dý pøíkaz mimo blok
-BEGIN WORK/COMMIT se provádí ve vlastní transakci. Zva¾te, zda-li by
-se nedalo nìkolik pøíkazù spojit do jedné transakce. Tím se sní¾í
-re¾ie na transakce. Pøed provedením rozsáhlých zmìn zru¹te indexy, 
-které po dokonèení zmìn opìt vytvoøte.</p>
-
-<p>Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat fsyn()
-pøi startu postmastera pøepínaèi -o -F. Tyto pøepínaèe zabrání
-fsync(), tj. zápisu na disk po ka¾dé transakci.</p>
-
-<p>Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy
-tj. parametr -B postmasteru. Pokud ale tato hodnota bude pøíli¹
-velká, tak mo¾ná nespustíte postmastera jeliko¾ dosáhnete limitu
-sdílené pamìti. Ka¾dý buffer má 8K a implicitnì je 64 bufferù.</p>
-
-<p>Dále mù¾ete pou¾ít pøepínaè -S k zvý¹ení limitu pamìti pro backendy
-na doèasné tøídìní. Hodnota je mínìna v kilobytech a výchozí
-nastavení je 512, tj. 512K. </p>
-
-<p>Mù¾ete pou¾ít pøíkaz CLUSTER, který uspoøádá fyzicky data v
-tabulkách podle indexu. Více na manuálových stránkách pøíkazu
-CLUSTER.</p>
-
-<h3><a name="3.7">3.7</a> Jaké jsou mo¾nosti ladìní?</h3>
-
-<p>Máte nìkolik mo¾ností jak se dostat k u¾iteèným stavovým informacím.</p>
-
-<p>Zaprvé, pøi pøekladu pou¾ijte pøepínaè --enable-cassert, tím se zapne
-monitorování a následné zastavení aplikace, kdy¾ se proces v backendu
-dostane do neoèekávaného stavu.</p>
-
-<p>Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících
-ladìní. Postmaster nastartujte tak, abyste si byli jisti, ¾e je
-standartní výstup a standartní chybový výstup pøesmìrován do souboru
-logu, napøíklad:</p>
-<pre>cd /usr/local/pgsql
-./bin/postmaster &gt; server.log 2&gt;&amp;1 &amp;
-</pre>
-<p>Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje
-u¾iteèné informace o problémech a chybách vyskytlých se na
-serveru. Postmaster má pøepínaè -d urèující, jak podrobné mají být
-reportované informace, tj. debug level. Pozor, pøi velké hodnotì debug
-levelu rychle roste velikost souboru logu.</p>
-
-<p>Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové
-øádky a napsat svùj SQL dotaz pøímo v backendu (doporuèeno pouze pro
-ladìní). Dotaz je v tomto pøípadì ukonèen novou øádkou, nikoliv
-støedníkem. Pokud máte aplikaci pøelo¾enou s ladícími symboly, mù¾ete
-pou¾ít debbuger k monitorování procesu. Pokud není backend spu¹tìn 
-postmasterem, pak nebì¾í ve svém obvyklém prostøedí a tudí¾ nìkteré problémy
-dané interakcí mezi backendy nemohou být nasimulovány.</p>
-
-<p>Pokud bì¾í postmaster, spus»e psql v jednom oknì a pak si zjistìte PID
-procesu postgres pou¾itého psql. V debuggeru sepøipojte k postgresql
-PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v
-psql. Pokud ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a
-spus»e psql. Tento pøepínaè zpùsobí pauzu n sekund, tak¾e budete mít
-èas se pøipojit k procesu, a nastavit breakpointy a pokraèovat v
-startup posloupnosti.</p>
-
-<p>Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe -s, -A a -t
-programu postgres (backend).</p>
-
-<p>Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu
-zabírají jednotlivé funkce. Soubory s profily backendù jsou ulo¾eny v
-adresáøi pgsql/data/base/dbname. Profil klienta pak v jeho aktuálním
-adresáøi. Korektní profilace v prostøedí Linux po¾aduje konfiguraci 
-systému s parametrem -DLINUX_PROFILE.</p>
-
-<h3><a name="3.8">3.8</a> Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?</h3>
-
-<p>Zvy¹te limit postmastera na maximální poèet souèasnì spu¹tìných backendù.</p>
-
-<p>Výchozí hodnota je 32 backendù. Tuto hodnotu zvý¹íte zastavením a 
-opìtovným spu¹tìním postmastera s parametrem -N nebo úpravou postgresql.conf.</p>
-
-<p>Pøi zvý¹ení hodnoty -N nad 32 musíte zvý¹it hodnotu -B nad výchozí 64,
--B musí být minimálnì dvakrát vìt¹í, nebo je¹tì lépe více. Pravdìpodobnì
-zjistíte, ¾e pro velký poèet procesù backendu je nutné zvý¹it nìkteré 
-parametry jádra. Jsou to pøedev¹ím maximální velikost sdílené pamìti SHMMAX, 
-maximální poèet semafórù SEMMNS a SEMMNI, maximální poèet procesù NPROC, 
-maximální poèet procesù u¾ivatele MAXUPRC a maximální poèet otevøených souborù
-NFILE a NINODE. Dùvod pro omezení maximálního poètu backendù je fakt,
-¾e by mohlo dojít k vyèerpání zdrojù Va¹eho systému.</p>
-
-<h3><a name="3.9">3.9</a> K èemu slou¾í adresáø pgsql_tmp?</h3>
-
-<p>Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem
-dotazù. Napøíklad, kdy¾ je nutné tøídìní k zaji¹tìní ORDER BY a
-tøídìní má vìt¹í nároky na prostor ne¾ povoluje parametr -S
-backendu, pak je vytvoøen doèasný soubor k ulo¾ení extra údajù.</p>
-
-<p>Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e
-bìhem tøídìní server spadne. Zastavení a dal¹í start postmastera zajistí
-odstranìní souborù s tìchto adresáøù.</p>
-
-<h3><a name="3.10">3.10</a> Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade
-mezi velkými verzemi PostgreSQL?</h3>
-
-<p>PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi upgrade z
-7.2 na 7.2.1 není nutné dump a load databáze. Ale velké verze èasto mìní
-interní formát systémových tabulek a datových souborù. Tyto zmìny jsou
-natolik rozsáhlé, ¾e nelze zajistit zpìtnou kompatibilitu pro datové
-soubory. Dump ulo¾í data v obecném formátu, tak¾e mohou být naètena a
-pou¾ívána v novém interním formátu.</p>
-<hr>
-
-<h2>Provozní dotazy</h2>
-
-<h3><a name="4.1">4.1</a> Èím se li¹í binární a normální kurzor?</h3>
-
-<p>Popis najdete v manuálové stránce DECLARE</p>
-
-<h3><a name="4.2">4.2</a> Jak získat pouze první øádek dotazu? Náhodný øádek?</h3>
-
-<p>Podívejte se do man. stránky pøíkazu FETCH, nebo pou¾ijte SELECT ...
-LIMIT ... </p>
-
-<p>Není nutné zpracovávat celý dotaz, kdy¾ potøebujete pouze nìkolik prvních
-øádkù. Pokud existuje index ORDER BY, PostgreSQL je schopen pøeru¹it
-zpracování dotazu po získání po¾adovaného poètu øádkù.</p>
-
-<p>K získání náhodného øádku pou¾ijte:</p>
-<pre>SELECT col FROM tab
-  ORDER BY random() LIMIT 1;
-</pre>
-<h3><a name="4.3">4.3</a> Jak získám seznam tabulek nebo jinak jak jej získá psql?</h3>
-
-<p>Podívejte se do zdrojových kódù psql do souboru
-pgsql/src/bin/psql/describe.c. Ten obsahuje SQL pøíkazy, které se
-pou¾ívají v psql metapøíkazech. Dále mù¾ete spustit psql s pøepínaèem
--E, který zpùsobí zobrazení ka¾dého dotazu, které zpracování
-metapøíkazu vyvolá.</p>
-
-<h3><a name="4.4">4.4</a> Jak odstraním sloupec tabulky, jak zmìním jeho typ?</h3>
-
-<p>Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz ALTER TABLE DROP COLUMN. Ve
-star¹ích verzích mù¾ete pou¾ít následující postup:</p>
-<pre>BEGIN;
-LOCK TABLE old_table;
-SELECT ... -- mimo sloupec, který chceme odstranit
-  INTO TABLE new_table;
-DROP TABLE old_table;
-ALTER TABLE new_table RENAME TO old_table;
-COMMIT;
-</pre>
-<p>Pro zmìnu typu sloupce je tøeba provést:</p>
-<pre>BEGIN;
-ALTER TABLE tab ADD COLUMN new_col new_data_type;
-UPDATE tab SET new_col = CAST(old_col AS new_data_type;
-ALTER TABLE tab DROP COLUMN old_col;
-COMMIT;
-</pre>
-<p>Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
-nyní ji¾ neplatnými øádky.</p>
-
-<h3><a name="4.5">4.5</a> Jaká je maximální velikost øádku, tabulky a databáze?</h3>
-
-<p>PostgreSQL má tato omezení:</p>
-<table>
-<tbody><tr><td>Maximální velikost databáze:</td><td>   neomezena (existují 32TB db)
-</td></tr><tr><td>Maximálné velikost tabulky:</td><td>         32 TB
-</td></tr><tr><td>Maximální velikost øádky:</td><td>           1.6 TB
-</td></tr><tr><td>Maximální velikost polo¾ky</td><td>          1 GB
-</td></tr><tr><td>Maximální poèet øádkù v tabulce:</td><td>    neomezeno
-</td></tr><tr><td>Maximální poèet sloupcù v tabulce:</td><td>  250-1600 podle typù
-</td></tr><tr><td>Maximální poèet indexù na tabulce:</td><td>  neomezeno
-</td></tr></tbody></table>
-<p>Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková
-pamì» nebo velikost operaèní pamìti. Pokud máte nìkterou z tìchto
-hodnot neobvykle velkou, mù¾e dojít ke sní¾ení výkonu.</p>
-
-<p>Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých souborù
-operaèním systémem. Velké tabulky se ukládají do nìkolika 1 GB souborù
-tak¾e limity souborového systému nejsou podstatné.</p>
-
-<p>Maximální velikost tabulky a maximální poèet sloupcù mù¾eme
-zeètyønásobit nastavením velikosti bloku na 32K.</p>
-
-<h3><a name="4.6">4.6</a> Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
-textového souboru? </h3>
-
-<p>PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z
-textového souboru.</p>
-
-<p>Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé
-øádce celé èíslo a textový popis. Text je v prùmìru dvacet bytù
-dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost 
-databáze obsahující odpovídající data bude zhruba 6.4 MB.</p>
-<pre> 36 bytù: hlavièka øádku (pøibli¾nì)
- 24 bytù: jedna celoèíselná polo¾ka a jedna textová
-  4 byty: ukazatel na stránku k ntici
-------------------------------------------------------
- 64 bytù na øádek
-</pre>
-<p>Velikost datové stránky PostgreSQL je 8KB</p>
-<pre> 8192 bytù na stránce
----------------------- = 128 øádek na stránku
-  64 bytù za øádek
-
-100000 øádek
--------------------- = 782 stránek (zaokrouhleno nahoru)
-128 øádek na stránce
-
-782 * 8192 = 6, 406, 144 bytù (6.4 MB)
-</pre>
-<p>Indexy nemají tak velkou re¾ii, ale mohou být také velké, 
-proto¾e obsahují indexovaná data.</p>
-
-<p>Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo
-diskového prostoru.</p>
-
-<h3><a name="4.7">4.7</a> Jak získám seznam vytvoøených tabulek, indexù, databází?</h3>
-
-<p>psql má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam
-získáte pøíkazem \?. Dále se mù¾ete podívat na obsah systémových
-tabulek zaèínajících pg_. Spu¹tìní psql s parametrem -l provede
-výpis názvù v¹ech databází.</p>
-
-<p>Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy pøistupující
-k systémovým tabulkámm.</p>
-
-<h3><a name="4.8">4.8</a> Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?</h3>
-
-<p>Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije tehdy,
-kdy¾ je tabulka vìt¹í ne¾ urèitá minimální velikost, a dotaz vybírá
-pouze procentuálnì malou èást øádkù tabulky. To proto, ¾e náhodný
-pøístup k disku daný ètením indexu mù¾e být pomalej¹í ne¾ lineární
-ètení tabulky nebo sekvenèní ètení,</p>
-
-<p>PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k
-tabulce. Tyto statistiky se shroma¾ïují pøíkazy VACUUM ANALYZE nebo
-ANALYZE. Díky statistikám má optimizer informaci o poètu øádek v
-tabulce a mù¾e lépe rozhodnout o pou¾ití indexù. Statistiky se uplatní
-pøi urèení optimálního poøadí a metody spojení tabulek. Statistiky by 
-se mìli aktualizovat opakovanì, tak jak se mìní obsah tabulek.</p>
-
-<p>Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení
-tabulek. Sekvenèní zpracování následované explicitním tøídìním je
-obyèejnì rychlej¹í ne¾ indexní ètení na velké tabulce.</p>
-
-<p>Jinak je tomu v pøípadì pou¾ití LIMIT a ORDER BY, pøi kterém se
-vìt¹inou index pou¾ije, výsledkem je pouze malá èást tabulky. Funkce
-MAX() a MIN() nepou¾ívají indexy, ale je mo¾né tuté¾ hodnotu získat </p>
-<pre>SELECT col FROM tab
-  ORDER BY col [ DESC ] LIMIT 1;
-</pre>
-<p>Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání
-tabulky, pou¾ijte pøíkaz SET enable_seqscan TO 'off' a zkuste zda je
-indexní prohledávání rychlej¹í.</p>
-
-<p>Pøi vyhledávání na základì vzoru jako je napø. operátor LIKE nebo ~ se
-indexy pou¾íjí pouze za urèitých skuteèností:</p>
-<ul>
-  <li> zaèátek hledaného vzoru musí být ukotven k zaèátku, tj.
-    <ul>
-     <li>vzor LIKE nesmí zaèínat %
-     </li><li>regulární výraz musí zaèínat ^
-    </li></ul>
-  </li><li>vzor nesmí zaèínat intervalem, napø. [a-e]
-  </li><li>vyhledávaní, které není Case sensitiv nepou¾ívá indexy. Mù¾ete ale
-     pou¾ít funkcionální indexy, které jsou posány v sekci 4.12 
-  </li><li>pøi inicializaci databáze (initdb) musí být pou¾ito C locale
-     (pozn. pøekladatele - tudí¾ v na¹ich podmínkách nepou¾itelné,
-     nepracovalo by èeské tøídìní). 
-</li></ul>
-
-<h3><a name="4.9">4.9</a> Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?</h3>
-
-<p>Podívejte se do manuálové stránky pøíkazu EXPLAIN.</p>
-
-<h3><a name="4.10">4.10</a> Co to je R-tree index?</h3>
-
-<p>R-tree index se pou¾ívá pro indexování prostorových dat. Hash index
-nemù¾e obslou¾it prohledávání oblastí. B-tree index mù¾e øídit
-vyhledání oblastí v jedné dimenzi. R-tree index mù¾e podporovat hledání v
-multidimenzionálních datech. Pou¾ijeme-li napøíklad R-tree index na
-atributy typu point, pak systém mù¾e efektivnì odpovìdìt na dotaz -
-vyber v¹echny body uvnitø obdélníkù.</p>
-
-<p>Pùvodní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index
-Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD
-Int'l Conf on Mgmt of Data, 45-57</p>
-
-<p>Tyto materiály naleznete v  Stonebraker's "Readings in Database Systems".</p>
-
-<p>Vestavìné R-tree mù¾e slou¾it k indexaci polygonù a
-oblastí. Teoreticky mù¾eme R-tree pou¾ít i pro více dimenzí (jiné ne¾ 3D).
-Ve skuteènosti ale takové roz¹íøení R-tree vy¾aduje trochu práce a 
-ve souèastnosti chybí dokumentace jak na to.</p>
-
-<h3><a name="4.11">4.11</a> Co je Genetic Query Optimizer?</h3>
-
-<p>GEQO modul urychluje optimalizaci dotazù pøi spojování mno¾ství
-tabulek metodou Genetických algoritmù (GA). To umo¾òuje získat
-velkého mno¾ství variant spojení pøi neúplném prohledáváním.</p>
-
-<h3><a name="4.12">4.12</a> Jak provést vyhledávání regulárního výrazu case sensitiv,
-insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?</h3>
-
-<p>Operátor ~ slou¾í k porování s regulárním výrazem, jeho modifikace *~
-pøedstavuje case insensitive vyhledávání. Jedná se o obdobu LIKE a
-ILIKE.</p>
-
-<p>Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme</p>
-<pre>SELECT * FROM tab
-  WHERE lower(col) = 'abc';
-</pre>
-<p>V tomto pøípadì se nepou¾ije standardní index. Nicménì, pou¾ije se
-funkcionální index, pokud jej vytvoøíte </p>
-<pre>CREATE INDEX tabindex ON tab (lower(col));
-</pre>
-<h3><a name="4.13">4.13</a> Jak v dotazu detekovat, ¾e polo¾ka je NULL?</h3>
-
-<p>Urèíte pomocí IS NULL nebo IS NOT NULL</p>
-
-<h3><a name="4.14">4.14</a> Jaké jsou rozdíly mezi rùznými znakovými typy?</h3>
-<pre>Typ         Interní název       Poznámka
+   <P>Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾
+   lokální s pou¾itím UDP. Pøístup z jiných strojù není mo¾ný dokud
+   jej nepovolíte nastavením tcpip_socket v postgresql.conf <B>a</B> urèením
+   zpùsobu autentifikace v <I>$PGDATA/pg_hba.conf</I>.</P> 
+
+   <H4><A name="3.6">3.6</A>) Jak ladit databázový stroj na lep¹í výkon?</H4>
+
+   <P>Urèitì pomohou indexy. Pøíkaz <SMALL>EXPLAIN ANALYZE</SMALL> Vám umo¾ní sledovat
+   jak PostgreSQL interpretuje Vá¹ dotaz a které indexy pou¾ívá.</P>
+
+   <P>Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem <SMALL>COPY</SMALL>. Ten je mnohem
+   rychlej¹í ne¾li samotný <SMALL>INSERT</SMALL>. Ka¾dý pøíkaz mimo blok <SMALL>BEGIN WORK/COMMIT</SMALL>
+   se provádí ve vlastní transakci. Zva¾te, zda-li by se nedalo nìkolik
+   pøíkazù spojit do jedné transakce. Tím se sní¾í re¾ie na transakce. Pøed
+   provedením rozsáhlých zmìn zru¹te indexy, které po dokonèení zmìn opìt
+   vytvoøte.</P>
+
+   <P>Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat <I>fsyn()</I>
+   pøi startu postmastera pøepínaèi <I>-o -F</I>. Tyto pøepínaèe zabrání <I>fsync()</I>,
+   tj. zápisu na disk po ka¾dé transakci.</P>
+
+   <P>Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy tj.
+   parametr <I>-B</I> postmasteru. Pokud ale tato hodnota bude pøíli¹ velká, tak
+   mo¾ná nespustíte postmastera jeliko¾ dosáhnete limitu sdílené pamìti.
+   Ka¾dý buffer má 8K a implicitnì je 64 bufferù.</P>
+
+   <P>Dále mù¾ete pou¾ít pøepínaè <I>-S</I> k zvý¹ení limitu pamìti pro backendy na
+   doèasné tøídìní. Hodnota je mínìna v kilobytech a výchozí nastavení je
+   512, tj. 512K.</P>
+
+   <P>Mù¾ete pou¾ít pøíkaz <SMALL>CLUSTER</SMALL>, který uspoøádá fyzicky data v tabulkách
+   podle indexu. Více na manuálových stránkách pøíkazu <SMALL>CLUSTER</SMALL>.</P>
+
+   <H4><A name="3.7">3.7</A>) Jaké jsou mo¾nosti ladìní?</H4>
+
+   <P>Máte nìkolik mo¾ností jak se dostat k u¾iteèným stavovým informacím.</P>
+
+   <P>Zaprvé, pøi pøekladu pou¾ijte pøepínaè <I>--enable-cassert</I>, tím se zapne
+   monitorování a následné zastavení aplikace, kdy¾ se proces v backendu
+   dostane do neoèekávaného stavu.</P>
+
+   <P>Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících ladìní.
+   Postmaster nastartujte tak, abyste si byli jisti, ¾e je standartní
+   výstup a standartní chybový výstup pøesmìrován do souboru logu,
+   napøíklad:</P>
+<PRE>
+    cd /usr/local/pgsql
+    ./bin/postmaster > server.log 2>&1 &
+</PRE>
+   <P>Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje u¾iteèné
+   informace o problémech a chybách vyskytlých se na serveru. Postmaster má
+   pøepínaè <I>-d</I> urèující, jak podrobné mají být reportované informace, tj.
+   debug level. Pozor, pøi velké hodnotì debug levelu rychle roste velikost
+   souboru logu.</P>
+
+   <P>Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové
+   øádky a napsat svùj <SMALL>SQL</SMALL> dotaz pøímo v backendu (doporuèeno <B>pouze</B> pro
+   ladìní). Dotaz je v tomto pøípadì ukonèen novou øádkou, nikoliv
+   støedníkem. Pokud máte aplikaci pøelo¾enou s ladícími symboly, mù¾ete
+   pou¾ít debbuger k monitorování procesu. Pokud není backend spu¹tìn
+   postmasterem, pak nebì¾í ve svém obvyklém prostøedí a tudí¾ nìkteré
+   problémy dané interakcí mezi backendy nemohou být nasimulovány.</P>
+
+   <P>Pokud bì¾í <I>postmaster</I>, spus»e <I>psql</I> v jednom oknì a pak si zjistìte <SMALL>PID</SMALL>
+   procesu postgres pou¾itého psql. V debuggeru sepøipojte k postgresql
+   <SMALL>PID</SMALL>. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud
+   ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a spus»e <I>psql</I>.
+   Tento pøepínaè zpùsobí pauzu n sekund, tak¾e budete mít èas se pøipojit
+   k procesu, a nastavit breakpointy a pokraèovat v startup posloupnosti.</P>
+
+   <P>Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe <I>-s, -A</I> a <I>-t</I>
+   programu postgres (backend).</P>
+
+   <P>Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu
+   zabírají jednotlivé funkce. Soubory s profily backendù jsou ulo¾eny v
+   adresáøi <I>pgsql/data/base/dbname</I>. Profil klienta pak v jeho aktuálním
+   adresáøi. Korektní profilace v prostøedí Linux po¾aduje konfiguraci
+   systému s parametrem <I>-DLINUX_PROFILE</I>.</P>
+
+   <H4><A name="3.8">3.8</A>) Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?</H4>
+
+   <P>Zvy¹te limit postmastera na maximální poèet souèasnì spu¹tìných
+   backendù.</P>
+
+   <P>Výchozí hodnota je 32 backendù. Tuto hodnotu zvý¹íte zastavením a
+   opìtovným spu¹tìním postmastera s parametrem <I>-N</I> nebo úpravou
+   <I>postgresql.conf</I>.</P>
+
+   <P>Pøi zvý¹ení hodnoty <I>-N</I> nad 32 musíte zvý¹it hodnotu <I>-B</I> nad výchozí 64,
+   <I>-B</I> musí být minimálnì dvakrát vìt¹í, nebo je¹tì lépe více. Pravdìpodobnì
+   zjistíte, ¾e pro velký poèet procesù backendu je nutné zvý¹it nìkteré
+   parametry jádra. Jsou to pøedev¹ím maximální velikost sdílené pamìti
+   <SMALL>SHMMAX</SMALL>, maximální poèet semafórù <SMALL>SEMMNS</SMALL> a <SMALL>SEMMNI</SMALL>, maximální poèet
+   procesù <SMALL>NPROC</SMALL>, maximální poèet procesù u¾ivatele <SMALL>MAXUPRC</SMALL> a maximální
+   poèet otevøených souborù <SMALL>NFILE</SMALL> a <SMALL>NINODE</SMALL>. Dùvod pro omezení maximálního
+   poètu backendù je fakt, ¾e by mohlo dojít k vyèerpání zdrojù Va¹eho
+   systému.</P>
+
+   <H4><A name="3.9">3.9</A>) K èemu slou¾í adresáø pgsql_tmp?</H4>
+
+   <P>Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem dotazù.
+   Napøíklad, kdy¾ je nutné tøídìní k zaji¹tìní <SMALL>ORDER BY</SMALL> a tøídìní má vìt¹í
+   nároky na prostor ne¾ povoluje parametr <I>-S</I> backendu, pak je vytvoøen
+   doèasný soubor k ulo¾ení extra údajù.</P>
+
+   <P>Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e
+   bìhem tøídìní server spadne. Zastavení a dal¹í start postmastera zajistí
+   odstranìní souborù s tìchto adresáøù.</P>
+
+   <H4><A name="3.10">3.10</A>) Proè je po¾adováno dump a obnovení (load) databáze bìhem 
+    upgrade mezi velkými verzemi PostgreSQL?</H4>
+
+   <P>PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi upgrade
+   z 7.2 na 7.2.1 není nutné dump a load databáze. Ale výynamné verze èasto
+   mìní interní formát systémových tabulek a datových souborù. Tyto zmìny
+   jsou natolik rozsáhlé, ¾e nelze zajistit zpìtnou kompatibilitu pro
+   datové soubory. Dump ulo¾í data v obecném formátu, tak¾e mohou být
+   naètena a pou¾ívána v novém interním formátu.</P>
+
+   <HR>
+
+   <H2 align="center">Provozní dotazy</H2>
+
+   <H4><A name="4.1">4.1</A>) Èím se li¹í binární a normální kurzor?</H4>
+
+   <P>Popis najdete v manuálové stránce <SMALL>DECLARE</SMALL></P>
+
+   <H4><A name="4.2">4.2</A>) Jak získat pouze první øádek dotazu? Náhodný øádek?</H4>
+
+   <P>Podívejte se do man. stránky pøíkazu <SMALL>FETCH</SMALL>, nebo pou¾ijte <SMALL>SELECT</SMALL> ...
+   <SMALL>LIMIT</SMALL> ...</P>
+
+   <P>I kdy¾ potøebujete získat pouze prvních nìkolik øádkù, je tøeba
+   zpracovat v¹echna data, napø. pokud dotaz má <SMALL>ORDER BY</SMALL>. Pokud v¹ak
+   existuje index, který odpovídá <SMALL>ORDER BY</SMALL>, PostgreSQL mù¾e získat
+   pouze prvních n øádkù a ukonèit zpracování dotazu.</P>
+
+   <P>K získání náhodného øádku pou¾ijte:</P>
+<PRE>
+    SELECT col 
+    FROM tab
+    ORDER BY random() 
+    LIMIT 1;
+</PRE>
+   <H4><A name="4.3">4.3</A>) Jak získám seznam tabulek nebo jinak jak jej získá psql?</H4>
+
+   <P>Pøíkaz \dt v psql zobrazí seznam tabulek. Úplný seznam pøíkazù <I>psql</I>
+   dostanete pøíkazem \?. Také se mù¾ete podívat do zdrojových kódù <I>psql</I> 
+   do souboru <I>pgsql/src/bin/psql/describe.c</I>. Ten obsahuje <SMALL>SQL</SMALL> pøíkazy, 
+   které se pou¾ívají v psql metapøíkazech. Dále mù¾ete spustit <I>psql</I>
+   s pøepínaèem <I>-E</I>, který zpùsobí zobrazení ka¾dého dotazu, které 
+   zpracování metapøíkazu vyvolá. PostgreSQL nabízí SQLi INFORMATION 
+   SCHEMA s tabulkami obsahující informace o databázi.</P>
+
+   <H4><A name="4.4">4.4</A>) Jak odstraním sloupec tabulky, jak zmìním jeho typ?</H4>
+
+   <P>Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz <SMALL>ALTER TABLE DROP COLUMN</SMALL>. Ve
+   star¹ích verzích mù¾ete pou¾ít následující postup:</P>
+<PRE>
+    BEGIN;
+    LOCK TABLE old_table;
+    SELECT ... -- mimo sloupec, který chceme odstranit
+    INTO TABLE new_table;
+    DROP TABLE old_table;
+    ALTER TABLE new_table RENAME TO old_table;
+    COMMIT;
+</PRE>
+   <P>Pro zmìnu typu sloupce je tøeba provést:</P>
+<PRE>
+    BEGIN;
+    ALTER TABLE tab ADD COLUMN new_col new_data_type;
+    UPDATE tab SET new_col = CAST(old_col AS new_data_type;
+    ALTER TABLE tab DROP COLUMN old_col;
+    COMMIT;
+</PRE>
+   Poté proveïte <I>VACUUM FULL tab</I> - uvolníte tím diskový prostor zabraný
+   nyní ji¾ neplatnými øádky.
+
+   <H4><A name="4.5">4.5</A>) Jaká je maximální velikost øádku, tabulky a databáze?</H4>
+
+   <P>PostgreSQL má tato omezení:</P>
+<PRE>
+    Maximální velikost databáze:           neomezena (existují 32TB db)
+    Maximálné velikost tabulky:            32 TB
+    Maximální velikost øádky:              1.6 TB
+    Maximální velikost polo¾ky             1 GB
+    Maximální poèet øádkù v tabulce:       neomezeno
+    Maximální poèet sloupcù v tabulce:     250-1600 podle typù
+    Maximální poèet indexù na tabulce:     neomezeno
+</PRE>
+   <P>Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková
+   pamì» nebo velikost operaèní pamìti. Pokud máte nìkterou z tìchto hodnot
+   neobvykle velkou, mù¾e dojít ke sní¾ení výkonu.</P>
+
+   <P>Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých souborù
+   operaèním systémem. Velké tabulky se ukládají do nìkolika 1 GB souborù
+   tak¾e limity souborového systému nejsou podstatné.</P>
+
+   <P>Maximální velikost tabulky a maximální poèet sloupcù mù¾eme
+   zeètyønásobit nastavením velikosti bloku na 32K.</P>
+
+   <H4><A name="4.6">4.6</A>) Kolik diskového prostoru je potøeba k ulo¾ení dat z </H4>
+    normálního textového souboru?
+
+   <P>PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z
+   textového souboru.</P>
+
+   <P>Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé øádce
+   celé èíslo a textový popis. Text je v prùmìru dvacet bytù dlouhý.
+   Textový soubor bude 2.8 MB dlouhý. Velikost databáze obsahující
+   odpovídající data bude zhruba 6.4 MB.</P>
+<PRE>
+    36 bytù: hlavièka øádku (pøibli¾nì)
+    24 bytù: jedna celoèíselná polo¾ka a jedna textová
+   + 4 byty: ukazatel na stránku k ntici
+   ------------------------------------------------------
+    64 bytù na øádek
+
+   Velikost datové stránky PostgreSQL je 8KB
+
+    8192 bytù na stránce
+    ---------------------- = 128 øádek na stránku
+      64 bytù za øádek
+
+    100000 øádek
+    -------------------- = 782 stránek (zaokrouhleno nahoru)
+       128 øádek na stránce
+
+    782 * 8192 = 6, 406, 144 bytù (6.4 MB)
+</PRE>
+   <P>Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e
+   obsahují indexovaná data.</P>
+
+   <P>Hodnoty <SMALL>NULL</SMALL> jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo
+   diskového prostoru.</P>
+
+   <H4><A name="4.7">4.7</A>) Jak získám seznam vytvoøených tabulek, indexù, databází?</H4>
+
+   <P><I>psql</I> má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam
+   získáte pøíkazem \?. Dále se mù¾ete podívat na obsah systémových tabulek
+   zaèínajících <I>pg_</I>. Spu¹tìní <I>psql</I> s parametrem <I>-l</I> provede výpis názvù
+   v¹ech databází.</P>
+
+   <P>Soubor <I>pgsql/src/tutorial/syscat.source</I> obsahuje <SMALL>SELECT</SMALL>y pøistupující k
+   systémovým tabulkámm.</P>
+
+   <H4><A name="4.8">4.8</A>) Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?</H4>
+
+   <P>Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije
+   tehdy, kdy¾ je tabulka vìt¹í ne¾ urèitá minimální velikost, a dotaz
+   vybírá pouze procentuálnì malou èást øádkù tabulky. To proto, ¾e náhodný
+   pøístup k disku daný ètením indexu mù¾e být pomalej¹í ne¾ lineární ètení
+   tabulky nebo sekvenèní ètení.</P>
+
+   <P>PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k
+   tabulce. Tyto statistiky se shroma¾ïují pøíkazy <SMALL>VACUUM ANALYZE</SMALL> nebo
+   <SMALL>ANALYZE</SMALL>. Díky statistikám má optimizer informaci o poètu øádek v tabulce
+   a mù¾e lépe rozhodnout o pou¾ití indexù. Statistiky se uplatní pøi
+   urèení optimálního poøadí a metody spojení tabulek. Statistiky by se
+   mìli aktualizovat opakovanì, tak jak se mìní obsah tabulek.</P>
+
+   <P>Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení tabulek.
+   Sekvenèní zpracování následované explicitním tøídìním je obyèejnì
+   rychlej¹í ne¾ indexní ètení na velké tabulce.</P>
+
+   <P>Jinak je tomu v pøípadì pou¾ití <SMALL>LIMIT</SMALL> a <SMALL>ORDER BY</SMALL>, pøi kterém se vìt¹inou
+   index pou¾ije, výsledkem je pouze malá èást tabulky. Funkce MAX() a
+   MIN() nepou¾ívají indexy, ale je mo¾né tuté¾ hodnotu získat:
+<PRE>
+    SELECT col 
+    FROM tab
+    ORDER BY col [ DESC ] 
+    LIMIT 1;
+</PRE>
+   <P>Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání
+   tabulky, pou¾ijte pøíkaz <CODE>SET enable_seqscan TO 'off'</CODE> a zkuste zda je
+   indexní prohledávání rychlej¹í.</P>
+
+   <P>Pøi vyhledávání na základì vzoru jako je napø. operátor <SMALL>LIKE</SMALL> nebo <I>~</I> se
+   indexy pou¾íjí pouze za urèitých skuteèností:</P>
+   <UL>
+    <LI>zaèátek hledaného vzoru musí být ukotven k zaèátku, tj.
+      <UL>
+        <LI>vzor <SMALL>LIKE</SMALL> nesmí zaèínat <I>%</I></LI>
+        <LI><I>~</I> regulární výraz musí zaèínat <I>^</I></LI>
+      </UL>
+    <LI>vzor nesmí zaèínat intervalem, napø. [a-e]</LI>
+    <LI>vyhledávaní, které není Case sensitiv jako je <SMALL>ILIKE</SMALL> nebo <I>~*</I> 
+      nepou¾ívá indexy. Mù¾ete ale pou¾ít funkcionální indexy, které jsou 
+      posány v sekci <A href="#4.12">4.12</A></LI>
+    <LI>pøi inicializaci databáze (<I>initdb</I>) musí být pou¾ito C locale
+      (pozn. pøekladatele - tudí¾ v na¹ich podmínkách nepou¾itelné,
+      nepracovalo by èeské tøídìní).</LI>
+   </UL>
+   <H4><A name="4.9">4.9</A>) Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?</H4>
+
+   Podívejte se do manuálové stránky pøíkazu <SMALL>EXPLAIN</SMALL>.
+
+   <H4><A name="4.10">4.10</A>) Co to je R-tree index?</H4>
+
+   <P>R-tree index se pou¾ívá pro indexování prostorových dat. Hash index
+   nemù¾e obslou¾it prohledávání oblastí. B-tree index mù¾e øídit vyhledání
+   oblastí v jedné dimenzi. R-tree index mù¾e podporovat hledání v
+   multidimenzionálních datech. Pou¾ijeme-li napøíklad R-tree index na
+   atributy typu <I>point</I>, pak systém mù¾e efektivnì odpovìdìt na dotaz -
+   vyber v¹echny body uvnitø obdélníkù.</P>
+   
+   <P>Pùvodní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index Structure
+   for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on
+   Mgmt of Data, 45-57</P>
+
+   <P>Tyto materiály naleznete v Stonebraker's "Readings in Database Systems".</P>
+
+   <P>Vestavìné R-tree mù¾e slou¾it k indexaci polygonù a oblastí. Teoreticky
+   mù¾eme R-tree pou¾ít i pro více dimenzí (jiné ne¾ 3D). Ve skuteènosti
+   ale takové roz¹íøení R-tree vy¾aduje trochu práce a ve souèastnosti
+   chybí dokumentace jak na to.</P>
+
+   <H4><A name="4.11">4.11</A>) Co je Genetic Query Optimizer?</H4>
+
+   <P><SMALL>GEQO</SMALL> modul urychluje optimalizaci dotazù pøi spojování mno¾ství tabulek
+   metodou Genetických algoritmù (GA). To umo¾òuje získat velkého mno¾ství
+   variant spojení pøi neúplném prohledáváním.</P>
+
+   <H4><A name="4.12">4.12</A>) Jak provést vyhledávání regulárního výrazu case sensitiv,
+    insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?</H4>
+
+   <P>Operátor <I>~</I> slou¾í k porování s regulárním výrazem, jeho modifikace <I>*~</I>
+   pøedstavuje case insensitive vyhledávání. Jedná se o obdobu <SMALL>LIKE</SMALL> a
+   <SMALL>ILIKE</SMALL>.</P>
+
+   <P>Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme:</P>
+<PRE>
+    SELECT * 
+    FROM tab
+    WHERE lower(col) = 'abc';
+</PRE>
+   V tomto pøípadì se nepou¾ije standardní index. Nicménì, pou¾ije se
+   funkcionální index, pokud jej vytvoøíte:
+<PRE>
+    CREATE INDEX tabindex ON tab (lower(col));
+</PRE>
+   <H4><A name="4.13">4.13</A>) Jak v dotazu detekovat, ¾e polo¾ka je NULL?</H4>
+
+   <P>Urèíte pomocí <SMALL>IS NULL</SMALL> nebo <SMALL>IS NOT NULL</SMALL></P>
+
+ <H4><A name="4.14">4.14</A>) Jaké jsou rozdíly mezi rùznými znakovými typy?</H4>
+<PRE>
+Typ         Interní název       Poznámka
 --------------------------------------------------------------------------
-VARCHAR(n)  varchar            omezeno maximální délkou, bez doplnìní mezerami
-CHAR(n)            bpchar              øetìzec je doplnìn mezerami do dané délky
-TEXT       text                bez horního limitu na délku 
-BYTEA      bytea               pole bytù (bezpeènì lze ulo¾it i znak NULL)
-"char"     char                jeden znak
-</pre>
-<p>S interními názvy se setkáte v systémovém katalogu a v nìkterých
-chybových hlá¹eních.</p>
-
-<p>První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty
-na disku nesou údaj o délce, následují samotná data). Proto skuteèný
-pou¾itý prostor je v¾dy o nìco málo vìt¹í ne¾ deklarovaná délka. Naopak, 
-tyto datové typy jsou komprimovánty TOASTem, tak¾e prostor na disku
-mù¾e být ni¾¹í ne¾ je oèekáváno.</p>
-
-<p>VARCHAR(n) je vhodný pro ukládání textù prommìné délky s pevnì
-stanovenou maximální délkou. TEXT je pro øetìzce bez omezení délky s
-maximem jeden gigabajt.</p>
-
-<p>CHAR(n) slou¾í k ukládání øetìzcù stejné délky. CHAR(n) doplní prázdné
-znaky do specifikované délky, zatímco VARCHAR(n) ulo¾í pouze pøedané
-znaky. BYTEA je urèeno pro ukládání binárních dat, vèetnì NULL
-byte. V¹echny zde popsané typy mají podobné výkonnostní
-charakteristiky.</p>
-
-<h3><a name="4.15.1">4.15.1</a> Jak vytvoøit serial/auto-increment pole?</h3>
-
-<p>PostgreSQL podporuje typ SERIAL. Pøi jeho pou¾ití se automaticky
-vytvoøí SEQUENCE a index na sloupci (Pro vy¹¹í verze to neplatí
-OVÌØIT). Napøíklad:</p>
-<pre>CREATE TABLE person (
-  id SERIAL,
-  name TEXT
-);
-</pre>
-je automaticky pøevedeno do
-<pre>CREATE SEQUENCE person_id_seq;
-CREATE TABLE person (
-  id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
-  name TEXT
-);
-CREATE UNIQUE INDEX person_id_key ON person(id);
-</pre>
-<p>Viz dokumentace create_sequence v manuálových stránkách. Dále mù¾ete pou¾ít
-unikátní hodnotu OID ka¾dého øádku. Potom ale musíte spou¹tìt pg_dump
-s pøepínaèem -o, tak aby zùstaly zachovány hodnoty OID (u pøíkazu
-copy COPY WITH OIDS).</p>
-
-<h3><a name="4.15.2">4.15.2</a> Jak získat hodnotu SERIAL po vlo¾ení øádku?</h3>
-
-<p>Jednou z mo¾ností je získat budoucí hodnotu SERIAL funkcí nextval pøed
-samotným vlo¾ením a pak ji vlo¾it explicitnì. Napøíklad v jakémsi
-pseudojazyku</p>
-<pre>newid = execute("SELECT nextval('person_id_seq')");
-execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-</pre>
-<p>Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako
-hodnotu cizího klíèe. Název automaticky vytvoøené sekvence je
-tabulka_sloupec_seq.</p>
-
-<p>Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí
-currval() po vlo¾ení</p>
-<pre>execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-new_id = execute("SELECT currval('person_id_seq')");
-</pre>
-<p>Koneènì mù¾ete pou¾ít OID hodnotu vrácenou pøíkazem INSERT, ale to je
-pravdìpodobnì nejménì pøenositelné øe¹ení. V Perlu pøi pou¾ití DBI
-modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme
-$sth-&gt;{pg_oid_status} po ka¾dém $sth-&gt;execute().</p>
-
-<h3><a name="4.15.3">4.15.3</a> Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s jinými u¾ivateli?</h3>
-
-<p>Nikoliv, currval() vrací hodnotu naposledy generovanou ve va¹em
-backendu, a ta tudí¾ není spoleèná v¹em u¾ivatelùm.</p>
-
-<h3><a name="4.15.4">4.15.4</a> Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení
-transakce? Proè vznikají díry v èíslování vlastní sekvencí/SERIAL
-sloupce?</h3>
-
-<p>K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o nì
-po¾ádá, a sekvence není zamèena do ukonèení transakce. To zpùsobuje
-díry v èíslování ze zru¹ených transakcí.</p>
-
-<h3><a name="4.16">4.16</a> Co to je OID? Co je to TID?</h3>
-
-<p>Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné OID. V¹echna OID
-generovaná bìhem inicializace databáze jsou men¹í ne¾ 16384
-(include/access/transam.h). V¹echna OID generovaná na po¾adavek
-u¾ivatele jsou rovna nebo vy¹¹í této hodnotì. Normálnì, v¹echna OID
-jsou jedineèná nejen uvnitø tabulky nebo databáze, ale v rámci celé
-instalace PostgreSQL</p>
-
-<p>PostgreSQL pou¾ívá OID ve svém interním systému tabulek k vytvoøení
-relací. Tato OID mohou být pou¾ita k identifikaci konkrétního
-u¾ivatele a pou¾ita v spojení. Pro OID hodnoty je doporuèen typ
-OID. Nad tímto sloupcem mù¾ete vytvoøit index pro urychlení pøístupu.</p>
-
-<p>OID jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé
-databázi. Pokud potøebujete zmìnit OID, nebo chcete zkopírovat tabulku
-s pùvodními OID, lze pou¾ít</p>
-<pre>CREATE TABLE new_table(old_oid oid, mycol int);
-SELECT old_oid, mycol INTO new FROM old;
-COPY new TO '/tmp/pgtable';
-DELETE FROM new;
-COPY new WITH OIDS FROM '/tmp/pgtable';
-</pre>
-<p>OID jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech
-miliardách. Nebylo hlá¹eno, ¾e by se tak nìkdy stalo, pøesto ale plánujeme
-odstranit tento limit døív ne¾ se tak stane.</p>
-
-<p>TID se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a
-offsetu. TIDs se mìní modifikací øádkù (pou¾ívá se jako ukazatel
-indexu fyzického øádku).</p>
-
-<h3><a name="4.17">4.17</a> Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?</h3>
-
-<p>V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat
-s následujícími výrazy, které mají ¹ir¹í význam. Zde je pøíklad
-nekterých:</p>
-<ul>
-<li>tabulka, relace, tøída (table, relation, class)
-</li><li>øádek, záznam, ntice (row, record, tuple)
-</li><li>sloupec, polo¾ka, atribut (column, field, attribute)
-</li><li>vyhledání, výbìr (retrieve, select)
-</li><li>náhrada, úprava (replace, update)
-</li><li>pøidání, vkládání (append, insert)
-</li><li>OID, serial value (OID, serial value)
-</li><li>portal, kurzor (portal, cursor)
-</li><li>range variable, jméno tabulky, alias tabulky (range variable, table name, table alias)
-</li></ul>
-<p>seznam tìchto výrazù mù¾ete nalézt na
-<a href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</a>.</p>
-
-<h3><a name="4.18">4.18</a> Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
-AllocSetAlloc()"?</h3>
-
-<p>Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému, nebo
-jádro má nízký limit pro urèité zdroje. Vyzkou¹ejte pøed startem
-posmatera</p>
-<pre>ulimit -d 262144
-limit datasize 256m
-</pre>
-<p>Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it
-limit datového segmentu pro Va¹e procesy a umo¾nit tak dokonèení
-dotazu. Tyto pøíkazy se aplikují na aktuální proces a v¹echny synovské
-procesy vytvoøené po provedení pøíkazu. Pokud máte problémy s SQL
-klientem proto¾e backend vrací pøíli¹ mnoho dat, zkuste zvý¹it limity 
-pøed startem klienta.</p>
-
-<h3><a name="4.19">4.19</a> Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?</h3>
-
-<p>V psql spus»te</p>
-<pre>SELECT version();
-</pre>
-<h3><a name="4.20">4.20</a> Proè operace s velkými objekty konèí "invalid large obj descriptor"?</h3>
-
-<p>V¹echny operace s velkými objekty - lo_open, lo_close, ... musíte
-spou¹tìt v transakci, tj. mezi pøíkazy BEGIN WORK a COMMIT.</p>
-
-<p>PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce. Pokud
-budete pracovat s velkými objekty mimo transakci, pravdìpodobnì dostanete
-toto chybové hlá¹ení, proto¾e handle ji¾ budou neplatné.</p>
-
-<p>Pokud pou¾íváte interface podobné ODBC musíte nastavit set auto_commit off</p>
-
-<h3><a name="4.21">4.21</a> Jak vytvoøit sloupec obsahující implicitnì aktuální datum?</h3>
-
-<p>Pou¾ijte CURRENT_TIMESTAMP</p>
-<pre>CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-</pre>
-<h3><a name="4.22">4.22</a> Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?</h3>
-
-<p>Aktuálnì spojujeme tabulky se sekvenèním skenováním výsledku pro ka¾dý
-øádek vnìj¹ího dotazu. Pokud vnoøený dotaz má pouze nìkolik øádkù a
-vnìj¹í dotaz vrací hodnì øádek, IN je rychlé. V jiných pøípadech
-nahraïte IN EXISTS:</p>
-<pre>SELECT * FROM tab
-  WHERE col IN (SELECT subcol FROM subtab);
-</pre>
-takto
-<pre>SELECT * FROM tab
-  WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-</pre>
-<p>Pro urychlení vytvoøete index pro subcol. Tento výkonnostní problém
-byl odstranìn ve verzi 7.4.</p>
-
-<h3><a name="4.23">4.23</a> Jak provést vnìj¹í spojení (outer join)?</h3>
-
-<p>PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL
-pøíkazy. Zde jsou dva pøíklady:</p>
-<pre>SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-</pre>
-nebo
-<pre>SELECT * FROM t1 LEFT OUTER JOIN USING (col);
-</pre>
-<p>Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá
-nepøipojené øádky z t1 (které nemají obdoby v t2). Pravé spojení
-(RIGHT JOIN) pøidá nepøipojené øádky z t2. FULL JOIN vrátí v¹echny
-øádky, vèetnì nepøipojených z tbulek t1 a t2. Klíèové slovo OUTER je
-nepovinné a vá¾e se na LEFT, RIGHT a FULL join. Bì¾né spojení se
-nazývá INNER JOIN.</p>
-
-<p>V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí
-UNION a NOT IN. Napøíklad pro spojení tabulek tab1 a tab2, je
-následující dotaz ekvivalentní k vnìj¹ímu spojení dvou tabulek:</p>
-<pre>SELECT tab1.col2, tab2.col2 FROM tab1, tab2
-  WHERE tab1.col1 = tab2.col1
-UNION ALL
-SELECT tab1.col2, NULL FROM tab1
-  WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
-ORDER BY col1;
-</pre>
-<h3><a name="4.24">4.24</a> Jak provést dotaz napøíè nìkolika databázemi?</h3>
-
-<p>PostgreSQL nenabízí ¾ádný zpùsob, jak se dotázat do jiné databáze ne¾
-do aktuální. Doplnìk contrib/dblink umo¾òuje dotaz do cizí databáze
-prostøednictvím funkce. Na stranì klienta není problém si otevøít více
-simultálních pøístupù do rùzných databází a spojovat výsledek na
-stranì klienta.</p>
-
-<h3><a name="4.25">4.25</a> Mù¾e funkce vrátit více øádkù nebo sloupcù?</h3>
-
-<p>V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z
-funkce, viz:
-<a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</p> 
-
-<h3><a name="4.26">4.26</a> Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v
-PL/pgSQL funkcích?</h3>
-
-Pøelo¾ený kód PL/pgSQL funkce je ulo¾en ve vyrovnávací pamìti, tj. funkce 
-je pøekládána pouze pøi zmìnì kódu, nikoliv pøed ka¾dým voláním funkce.
-Nechtìným vedlej¹ím efektem je, ¾e volání funkce sel¾e, kdy¾ se funkce 
-odkazuje na doèasnou tabulku, pokud tato tabulka byla od pøekladu funkce 
-zru¹ena (aèkoliv ji¾ byla znovu vytvoøena a existuje). 
-Jediným øe¹ením problému je pøístup k doèasné tabulce pomocí
-EXECUTE, tj. dynamické provádìní dotazu. Tento pøíkaz zajistí opakovaný 
-pøeklad dotazu pøi ka¾dém volání funkce.<p></p>
-
-<h3><a name="4.27">4.27</a> Jaké jsou mo¾nosti replikace databází?</h3>
-
-<p>Existuje nìkolik dostupných øe¹ení master/slave replikací. Ty povolují
-modifikace master databáze a slave databázím umo¾òují pouze ètení. Na
-konci  <a href="http://gborg.postgresql.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</a>
-najdete jejich seznam. Na øe¹ení multi-master replikaci se pracuje na
-<a href="http://gborg.postgresql.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</a>.</p> 
-
-<h3><a name="4.28">4.28</a> Jaké jsou mo¾nosti ¹ifrování databází?</h3>
-<ul>
-<li><p>contrib/pgcrypto obsahuje ¹ifrovací funkce pou¾itelné v SQL
-dotazech.</p>
-
-</li><li><p>K ¹ifrování pøenosu dat z klienta na server, musí být
-server pøelo¾en s podporou ssl a pøepínaè sslv postgresql.conf musí
-být nastaven na hodnotu true. Klient musí mít vytvoøen záznam
-hostssl v pg_hba.conf a také mít povolen re¾im ssl. Lze pou¾ít i jiné
-prostøedky, nejen nativní podporu ssl v PostgreSQL, napø. stunel a ssh.</p>
-
-</li><li><p>Hesla u¾ivatelù databáze jsou za¹ifrována poèínaje verzí 7.3. Ve
-star¹ích verzích toto chování muselo být vynuceno volbou 
-PASSWORD_ENCRYPTION v postgresql.conf</p>
-
-</li><li><p>Server mù¾e bì¾et na ¹ifrovaném souborovém systému.</p>
-</li></ul>
-<hr>
-<h2>Roz¹iøování PostgreSQL</h2>
-
-<h3><a name="5.1">5.1</a> Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?</h3>
-
-<p>Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji
-funkci nejdøíve v nìjaké jednoduché aplikaci.</p>
-
-<h3><a name="5.2">5.2</a> Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi
-do PostgreSQL?</h3>
-
-<p>Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná
-skonèí v podadresáøi contrib.</p>
-
-<h3><a name="5.3">5.3</a> Jak napsat funkci v C vracející ntici?</h3>
-
-<p>Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro
-jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's
-Guide. Pøíklady tìchto funkcí pro C naleznete v contrib/tablefunc.</p>
-
-<h3><a name="5.4">5.4</a> Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi
-rekompilaci vzata v potaz. Proè?</h3>
-
-<p>Makefile nemá informace o závislostech mezi hlavièkovými soubory. Musíte
-provést make clean a pak make. Pokud pou¾íváte gcc, mù¾ete pou¾ít
-pøepínaè --enable-depend pøíkazu configure k automatickému øe¹ení
-závislostí pøekladaèem.</p>
-</body></html>
\ No newline at end of file
+VARCHAR(n)  varchar             omezeno maximální délkou, bez doplnìní mezerami
+CHAR(n)     bpchar              øetìzec je doplnìn mezerami do dané délky
+TEXT        text                bez horního limitu na délku
+BYTEA       bytea               pole bytù (bezpeènì lze ulo¾it i znak NULL)
+"char"      char                jeden znak
+</PRE>
+   <P>S interními názvy se setkáte v systémovém katalogu a v nìkterých
+   chybových hlá¹eních.</P>
+
+   <P>První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty na
+   disku nesou údaj o délce, následují samotná data). Proto skuteèný
+   pou¾itý prostor je v¾dy o nìco málo vìt¹í ne¾ deklarovaná délka. Naopak,
+   tyto datové typy jsou komprimovánty <SMALL>TOAST</SMALL>em, tak¾e prostor na disku mù¾e
+   být ni¾¹í ne¾ je oèekáváno.</P>
+
+   <P><SMALL>VARCHAR(n)</SMALL> je vhodný pro ukládání textù prommìné délky s pevnì
+   stanovenou maximální délkou. <SMALL>TEXT</SMALL> je pro øetìzce bez omezení délky s
+   maximem jeden gigabajt.</P>
+
+   <P><SMALL>CHAR(n)</SMALL> slou¾í k ukládání øetìzcù stejné délky. <SMALL>CHAR(n)</SMALL> doplní prázdné
+   znaky do specifikované délky, zatímco VARCHAR(n) ulo¾í pouze pøedané
+   znaky. <SMALL>BYTEA</SMALL> je urèeno pro ukládání binárních dat, vèetnì <SMALL>NULL</SMALL> byte.
+   V¹echny zde popsané typy mají podobné výkonnostní charakteristiky.</P>
+
+   <H4><A name="4.15.1">4.15.1</A>) Jak vytvoøit serial/auto-increment pole?</H4>
+
+   <P>PostgreSQL podporuje typ <SMALL>SERIAL</SMALL>. Pøi jeho pou¾ití se automaticky vytvoøí
+   SEQUENCE. Napøíklad:</P>
+<PRE>
+    CREATE TABLE person (
+        id   SERIAL,
+        name TEXT
+    );
+</PRE>
+   je automaticky pøevedeno do
+<PRE>
+    CREATE SEQUENCE person_id_seq;
+    CREATE TABLE person (
+        id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+        name TEXT
+    );
+    CREATE UNIQUE INDEX person_id_key ON person(id);
+</PRE>
+   Viz dokumentace <I>create_sequence</I> v manuálových stránkách. Dále mù¾ete
+   pou¾ít unikátní hodnotu <I>OID</I> ka¾dého øádku. Potom ale musíte spou¹tìt
+   <I>pg_dump</I> s pøepínaèem <I>-o</I>, tak aby zùstaly zachovány hodnoty <SMALL>OID</SMALL> (u
+   pøíkazu copy <SMALL>COPY WITH OIDS</SMALL>).
+
+   <H4><A name="4.15.2">4.15.2</A>) Jak získat hodnotu <SMALL>SERIAL</SMALL> po vlo¾ení øádku?</H4>
+
+   <P>Jednou z mo¾ností je získat budoucí hodnotu <SMALL>SERIAL</SMALL> funkcí <I>nextval()</I> pøed
+   samotným vlo¾ením a pak ji vlo¾it explicitnì. Napøíklad v jakémsi
+   pseudojazyku:</P>
+<PRE>
+    newid = execute("SELECT nextval('person_id_seq')");
+    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+</PRE>
+   <P>Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako
+   hodnotu cizího klíèe. Název automaticky vytvoøené sekvence je
+   <I>tabulka_sloupec_seq</I>.</P>
+
+   <P>Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí
+   <I>currval()</I> po vlo¾ení:</P>
+<PRE>
+    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+    new_id = execute("SELECT currval('person_id_seq')");
+</PRE>
+   <P>Koneènì mù¾ete pou¾ít <SMALL>OID</SMALL> hodnotu vrácenou pøíkazem <SMALL>INSERT</SMALL>, ale to je
+   pravdìpodobnì nejménì pøenositelné øe¹ení. V Perlu pøi pou¾ití DBI
+   modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme <I>$sth->{pg_oid_status}</I>
+   po ka¾dém <I>$sth->execute()</I>.
+
+   <H4><A name="4.15.3">4.15.3</A>) Nepovede <I>currval()</I> a <I>nextval()</I> k rozhození 
+     podmínek pøi soubìhu s jinými u¾ivateli?</H4>
+
+   <P>Nikoliv, <I>currval()</I> vrací hodnotu naposledy generovanou ve va¹em
+   backendu, a ta tudí¾ není spoleèná v¹em u¾ivatelùm.</P>
+
+   <H4><A name="4.15.4">4.15.4</A>) Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce? 
+   Proè vznikají díry v èíslování vlastní sekvencí/SERIAL sloupce?</H4>
+
+   <P>K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o
+   nì po¾ádá, a sekvence není zamèena do ukonèení transakce. To zpùsobuje
+   díry v èíslování ze zru¹ených transakcí.</P>
+
+   <H4><A name="4.16">4.16</A>) Co to je <SMALL>OID</SMALL>? Co je to <SMALL>TID</SMALL>?</H4>
+
+   <P>Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné <SMALL>OID</SMALL>. V¹echna <SMALL>OID</SMALL>
+   generovaná bìhem inicializace databáze jsou men¹í ne¾ 16384
+   (include/access/transam.h). V¹echna <SMALL>OID</SMALL> generovaná na po¾adavek
+   u¾ivatele jsou rovna nebo vy¹¹í této hodnotì. Normálnì, v¹echna <SMALL>OID</SMALL> jsou
+   jedineèná nejen uvnitø tabulky nebo databáze, ale v rámci celé instalace
+   PostgreSQL</P>
+
+   <P>PostgreSQL pou¾ívá <SMALL>OID</SMALL> ve svém interním systému tabulek k vytvoøení
+   relací. Tato <SMALL>OID</SMALL> mohou být pou¾ita k identifikaci konkrétního u¾ivatele
+   a pou¾ita v spojení. Pro <SMALL>OID</SMALL> hodnoty je doporuèen typ <SMALL>OID</SMALL>. Nad tímto
+   sloupcem mù¾ete vytvoøit index pro urychlení pøístupu.</P>
+
+   <P><SMALL>OID</SMALL> jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé
+   databázi. Pokud potøebujete zmìnit <SMALL>OID</SMALL>, nebo chcete zkopírovat tabulku s
+   pùvodními <SMALL>OID</SMALL>, lze pou¾ít:</P>
+<PRE>
+        CREATE TABLE new_table(old_oid oid, mycol int);
+        SELECT old_oid, mycol INTO new FROM old;
+        COPY new TO '/tmp/pgtable';
+        DELETE FROM new;
+        COPY new WITH OIDS FROM '/tmp/pgtable';
+</PRE>
+   <P><SMALL>OID</SMALL> jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech miliardách.
+   Nebylo hlá¹eno, ¾e by se tak nìkdy stalo, pøesto ale plánujeme odstranit
+   tento limit døív ne¾ se tak stane.</P>
+    
+   <P><SMALL>TID</SMALL> se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a
+   offsetu. TIDs se mìní modifikací øádkù (pou¾ívá se jako ukazatel indexu
+   fyzického øádku).</P>
+
+   <H4><A name="4.17">4.17</A>) Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?</H4>
+
+   <P>V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat s
+   následujícími výrazy, které mají ¹ir¹í význam. Zde je pøíklad nekterých:</P>
+   <UL>
+      <LI> tabulka, relace, tøída (table, relation, class)</LI>
+      <LI> øádek, záznam, ntice (row, record, tuple)</LI>
+      <LI> sloupec, polo¾ka, atribut (column, field, attribute)</LI>
+      <LI> vyhledání, výbìr (retrieve, select)</LI>
+      <LI> náhrada, úprava (replace, update)</LI>
+      <LI> pøidání, vkládání (append, insert)</LI>
+      <LI> OID, serial value (OID, serial value)</LI>
+      <LI> portal, kurzor (portal, cursor)</LI>
+      <LI> range variable, jméno tabulky, alias tabulky (range</LI>
+        variable, table name, table alias)</LI>
+   </UL>
+
+   <P>seznam tìchto výrazù mù¾ete nalézt na
+   <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>.</P>
+
+   <H4><A name="4.18">4.18</A>) Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in AllocSetAlloc()"?</H4>
+
+   <P>Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému, nebo
+   jádro má nízký limit pro urèité zdroje. Vyzkou¹ejte pøed startem
+   posmatera</P>
+<PRE>
+    ulimit -d 262144
+    limit datasize 256m
+</PRE>
+   <P>Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it
+   limit datového segmentu pro Va¹e procesy a umo¾nit tak dokonèení dotazu.
+   Tyto pøíkazy se aplikují na aktuální proces a v¹echny synovské procesy
+   vytvoøené po provedení pøíkazu. Pokud máte problémy s SQL klientem
+   proto¾e backend vrací pøíli¹ mnoho dat, zkuste zvý¹it limity pøed
+   startem klienta.</P>
+
+   <H4><A name="4.19">4.19</A>) Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?</H4>
+
+   <P>V psql spus»te <CODE>SELECT version();</CODE></P>
+
+   <H4><A name="4.20">4.20</A>) Proè operace s velkými objekty konèí "invalid large obj descriptor"?</H4>
+
+   <P>V¹echny operace s velkými objekty - <CODE>lo_open</CODE>, <CODE>lo_close</CODE>, ... musíte
+   spou¹tìt v transakci, tj. mezi pøíkazy <CODE>BEGIN WORK</CODE> a <CODE>COMMIT</CODE>.</P>
+
+   <P>PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce. Pokud
+   budete pracovat s velkými objekty mimo transakci, pravdìpodobnì
+   dostanete toto chybové hlá¹ení, proto¾e handle ji¾ budou neplatné.</P>
+
+   Pokud pou¾íváte interface podobné <SMALL>ODBC</SMALL> musíte nastavit <CODE>set 
+   auto_commit off</CODE>.
+
+   <H4><A name="4.21">4.21</A>) Jak vytvoøit sloupec obsahující implicitnì aktuální datum?</H4>
+
+   <P>Pou¾ijte <I>CURRENT_TIMESTAMP</I>:</P>
+<PRE>
+<CODE>
+CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
+</CODE>
+</PRE>
+   <H4><A name="4.22">4.22</A>) Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?</H4>
+
+   <P>Døívìj¹í verze (pøed 7.4) spojovali vnoøené dotazy k vnìj¹ím sekvenèním
+   ètením výsledku poddotazu pro ka¾dý øádek vnìj¹ího dotazu. Pokud poddotaz
+   vrátil nìkolik málo øádkù <SMALL>IN</SMALL> bylo rychlé. Pro ostatní pøípady je vhodné
+   nahradit <SMALL>IN</SMALL> <SMALL>EXISTS</SMALL>:
+<PRE>
+    SELECT * 
+    FROM tab
+    WHERE col IN (SELECT subcol FROM subtab);
+</PRE>
+  na:
+<PRE>
+   SELECT * 
+   FROM tab
+   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+</PRE>
+   <P>Pro urychlení vytvoøete index pro subcol. </P>
+
+   <P>Ve verzi 7.4 a pozdìj¹ích, <SMALL>IN</SMALL> pou¾ívá stejnì sofistikovanou techniku
+   spojování tabulek jako ostatní dotazy a je preferovaný pøed <SMALL>EXISTS</SMALL>.</P>
+
+   <H4><A name="4.23">4.23</A>) Jak provést vnìj¹í spojení (outer join)?</H4>
+
+   <P>PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL pøíkazy.
+   Zde jsou dva pøíklady:</P>
+<PRE>
+    SELECT * 
+    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+</PRE>
+   nebo
+<PRE>
+    SELECT * 
+    FROM t1 LEFT OUTER JOIN USING (col);
+</PRE>
+   <P>Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá nepøipojené
+   øádky z t1 (které nemají obdoby v t2). Pravé spojení (<SMALL>RIGHT JOIN</SMALL>) pøidá
+   nepøipojené øádky z t2. <SMALL>FULL JOIN</SMALL> vrátí v¹echny øádky, vèetnì
+   nepøipojených z tbulek t1 a t2. Klíèové slovo <SMALL>OUTER</SMALL> je nepovinné a vá¾e
+   se na <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> a <SMALL>FULL</SMALL> join. Bì¾né 
+   spojení se nazývá <SMALL>INNER JOIN</SMALL>.</P>
+
+   <P>V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí
+   <SMALL>UNION</SMALL> a <SMALL>NOT IN</SMALL>. Napøíklad pro spojení tabulek tab1 a tab2, je
+   následující dotaz ekvivalentní k vnìj¹ímu spojení dvou tabulek:</P>
+<PRE>
+    SELECT tab1.col2, tab2.col2 
+    FROM tab1, tab2
+    WHERE tab1.col1 = tab2.col1
+    UNION ALL
+    SELECT tab1.col2, NULL 
+    FROM tab1
+    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
+    ORDER BY col1;
+</PRE>
+
+   <H4><A name="4.24">4.24</A>) Jak provést dotaz z více databází?</H4>
+
+   <P>PostgreSQL nepodporuje dotazy do jiné ne¾ aktuální databáze.</P>
+
+   <P><I>contrib/dblink</I> nabízí funkce umo¾òující provedení dotazu v jiné 
+   databázi. Klient si mù¾e otevøít simultální pøipojení do rùzných
+   db bez omezení.</P>
+
+   <H4><A name="4.25">4.25</A>) Mù¾e funkce vrátit více øádkù nebo sloupcù?</H4>
+
+   <P>V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z
+   funkce, viz:
+   <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.
+
+   <H4><A name="4.26">4.26</A>) Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v PL/pgSQL funkcích?</H4>
+
+   <P>Pøelo¾ený kód PL/pgSQL funkce je ulo¾en ve vyrovnávací pamìti, tj.
+   funkce je pøekládána pouze pøi zmìnì kódu, nikoliv pøed ka¾dým voláním
+   funkce. Nechtìným vedlej¹ím efektem je, ¾e volání funkce sel¾e, kdy¾ se
+   funkce odkazuje na doèasnou tabulku, pokud tato tabulka byla od pøekladu
+   funkce zru¹ena (aèkoliv ji¾ byla znovu vytvoøena a existuje). Jediným
+   øe¹ením problému je pøístup k doèasné tabulce pomocí <SMALL>EXECUTE</SMALL>, tj.
+   dynamické provádìní dotazu. Tento pøíkaz zajistí opakovaný pøeklad
+   dotazu pøi ka¾dém volání funkce.</P>
+
+   <H4><A name="4.27">4.27</A>) Jaké jsou mo¾nosti replikace databází?</H4>
+
+   <P>Existuje nìkolik dostupných øe¹ení master/slave replikací, tj umo¾òují
+   modifikace master databáze a slave databázím umo¾òují pouze ètení. Na
+   konci <A href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> najdete
+   jejich seznam. Na øe¹ení multi-master replikaci se pracuje na
+   <A href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</P>
+
+   <H4><A name="4.28">4.28</A>) Jaké jsou mo¾nosti ¹ifrování databází?</H4>
+     <UL>
+     <LI><I>contrib/pgcrypto</I> obsahuje ¹ifrovací funkce pou¾itelné v SQL
+       dotazech.</LI>
+     <LI>K ¹ifrování pøenosu dat z klienta na server, musí být server
+       pøelo¾en s podporou <I>ssl</I> a pøepínaè <I>ssl</I> v <I>postgresql.conf</I> musí být
+       nastaven na hodnotu true. Klient musí mít vytvoøen záznam hostssl v
+       <I>pg_hba.conf</I> a také mít povolen re¾im <I>ssl</I>. Lze pou¾ít i jiné
+       prostøedky, nejen nativní podporu ssl v PostgreSQL, napø. stunel a
+       ssh.</LI>
+     <LI>Hesla u¾ivatelù databáze jsou za¹ifrována poèínaje verzí 7.3. Ve
+       star¹ích verzích toto chování muselo být vynuceno volbou
+       <I>PASSWORD_ENCRYPTION</I> v <I>postgresql.conf</I></LI>
+     <LI> Server mù¾e bì¾et na ¹ifrovaném souborovém systému.</LI>
+    </UL>
+   <HR>
+
+   <H2 align="center">Roz¹iøování PostgreSQL</H2>
+
+   <H4><A name="5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?</H4>
+   <P>Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji funkci
+   nejdøíve v nìjaké jednoduché aplikaci.</P>
+
+   <H4><A name="5.2">5.2</A>) Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do PostgreSQL?</H4>
+
+   <P>Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná
+   skonèí v podadresáøi contrib.</P>
+
+   <H4><A name="5.3">5.3</A>) Jak napsat funkci v C vracející ntici?</H4>
+
+   <P>Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro
+   jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's Guide.
+   Pøíklady tìchto funkcí pro C naleznete v <I>contrib/tablefunc</I>.</P>
+
+   <H4><A name="5.4">5.4</A>) Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi rekompilaci vzata v potaz. Proè?</H4>
+
+   <P><I>Makefile</I> nemá informace o závislostech mezi hlavièkovými soubory. Musíte
+   provést <I>make clean</I> a pak <I>make</I>. Pokud pou¾íváte <SMALL>gcc</SMALL>, mù¾ete pou¾ít
+   pøepínaè <I>--enable-depend</I> pøíkazu <I>configure</I> k automatickému øe¹ení
+   závislostí pøekladaèem.</P>
+ </BODY>
+</HTML>
\ No newline at end of file