diff options
-rw-r--r-- | doc/FAQ | 5 | ||||
-rw-r--r-- | doc/FAQ_DEV | 14 | ||||
-rw-r--r-- | doc/FAQ_brazilian | 77 | ||||
-rw-r--r-- | doc/FAQ_czech | 2282 | ||||
-rw-r--r-- | doc/FAQ_farsi | 2408 | ||||
-rw-r--r-- | doc/FAQ_french | 32 | ||||
-rw-r--r-- | doc/FAQ_german | 14 | ||||
-rw-r--r-- | doc/FAQ_japanese | 2311 | ||||
-rw-r--r-- | doc/FAQ_polish | 67 | ||||
-rw-r--r-- | doc/FAQ_russian | 16 | ||||
-rw-r--r-- | doc/FAQ_turkish | 1933 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ.html | 24 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_DEV.html | 10 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_MINGW.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_brazilian.html | 42 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_czech.html | 38 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_french.html | 13 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_german.html | 18 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_japanese.html | 345 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_polish.html | 54 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_russian.html | 31 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_turkish.html | 20 |
22 files changed, 5447 insertions, 4309 deletions
@@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Thu Feb 24 23:18:31 EST 2005 + Last updated: Fri Mar 11 16:42:06 EST 2005 Current maintainer: Bruce Momjian ([email protected]) @@ -819,7 +819,8 @@ 4.19) How do I return multiple rows or columns from a function? It is easy using set-returning functions, - http://techdocs.postgresql.org/guides/SetReturningFunctions. + http://techdocs.postgresql.org/guides/SetReturningFunctions + . 4.20) Why do I get "relation with OID ##### does not exist" errors when accessing temporary tables in PL/PgSQL functions? diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV index 688cf2819da..f3a9835cfff 100644 --- a/doc/FAQ_DEV +++ b/doc/FAQ_DEV @@ -1,7 +1,7 @@ Developer's Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Fri Mar 11 08:09:23 EST 2005 + Last updated: Fri Mar 11 16:43:05 EST 2005 Current maintainer: Bruce Momjian ([email protected]) @@ -9,8 +9,8 @@ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html. _________________________________________________________________ - General Questions - +General Questions + 1.1) How do I get involved in PostgreSQL development? 1.2) What development environment is required to develop code? 1.3) What areas need work? @@ -31,8 +31,8 @@ 1.17) Where can I get technical assistance? 1.18) How do I get involved in PostgreSQL web site development? - Technical Questions - +Technical Questions + 2.1) How do I efficiently access information in tables from the backend code? 2.2) Why are table, column, type, function, view names sometimes @@ -564,8 +564,8 @@ contribute to that. A temporary todo list for current website development issues is available at http://xzilla.postgresql.org/todo - Technical Questions - +Technical Questions + 2.1) How do I efficiently access information in tables from the backend code? You first need to find the tuples(rows) you are interested in. There diff --git a/doc/FAQ_brazilian b/doc/FAQ_brazilian index a44ed10c200..45297e30592 100644 --- a/doc/FAQ_brazilian +++ b/doc/FAQ_brazilian @@ -603,22 +603,17 @@ Se o postmaster est� sendo executado, inicie o psql em uma janela, e ent�o encontre o PID do processo postgres utilizado pelo psql - utilizando -SELECT pg_backend_pid() - - . Utilize um depurador para anexar ao PID do postgres. Voc� pode - definir pontos de parada (breakpoints) no depurador e digitar - consultas no psql. Se voc� est� depurando a inicializa��o do postgres, - voc� pode definir PGOPTIONS="-W n" e ent�o iniciar o psql. Isto - retardar� a inicializa��o por n segundos ent�o voc� pode anexar o - depurador ao processo, definir quaisquer pontos de parada e continuar - pela sequ�ncia de inicializa��o. - - H� v�rias vari�veis de configura��o do servidor -log_* - - que habilitam a exibi��o de estat�sticas que podem ser muito �teis - para depura��o e medidas de performance. + utilizando SELECT pg_backend_pid(). Utilize um depurador para anexar + ao PID do postgres. Voc� pode definir pontos de parada (breakpoints) + no depurador e digitar consultas no psql. Se voc� est� depurando a + inicializa��o do postgres, voc� pode definir PGOPTIONS="-W n" e ent�o + iniciar o psql. Isto retardar� a inicializa��o por n segundos ent�o + voc� pode anexar o depurador ao processo, definir quaisquer pontos de + parada e continuar pela sequ�ncia de inicializa��o. + + H� v�rias vari�veis de configura��o do servidor log_* que habilitam a + exibi��o de estat�sticas que podem ser muito �teis para depura��o e + medidas de performance. Voc� tamb�m pode compilar com perfil para ver que fun��es est�o demandando tempo de execu��o. Os arquivo de perfil do n�cleo (backend) @@ -680,13 +675,13 @@ log_* 3.11) Que tipo de hardware eu devo usar? Por causa do hardware de PC ser em sua maioria compat�vel, pessoas - tendem a acreditar que todos os hardwares de PC s�o de mesma - qualidade. N�o � verdade. ECC RAM, SCSI e placas m�e de qualidade s�o - mais confi�veis e t�m uma melhor performance do que hardwares mais - baratos. O PostgreSQL executar� em quase todo hardware, mas se a - confiabilidade e a performance forem importantes � prudente pesquisar - sobre as op��es de hardware. Nossas listas de discuss�o podem ser - usadas para discutir op��es de hardware e dilemas. + tendem a acreditar que todos os hardwares de PC satilde;o de mesma + qualidade. Natilde;o � verdade. ECC RAM, SCSI e placas m�e de + qualidade s�o mais confi�veis e t�m uma melhor performance do que + hardwares mais baratos. O PostgreSQL executar� em quase todo hardware, + mas se a confiabilidade e a performance forem importantes � prudente + pesquisar sobre as op��es de hardware. Nossas listas de discuss�o + podem ser usadas para discutir op��es de hardware e dilemas. _________________________________________________________________ Perguntas Operacionais @@ -753,14 +748,12 @@ log_* dados? Estes s�o os limites: -Tamanho m�ximo de um banco de dados? ilimitado (existem bancos de dad -os de 32 TB) +Tamanho m�ximo de um banco de dados? ilimitado (existem bancos de dados de 32 TB) Tamanho m�ximo de uma tabela? 32 TB Tamanho m�ximo de um registro? 1.6TB Tamanho m�ximo de um campo? 1 GB N�mero m�ximo de registros em uma tabela? ilimitado -N�mero m�ximo de colunas em uma tabela? 250-1600 dependendo dos tipos da -s colunas +N�mero m�ximo de colunas em uma tabela? 250-1600 dependendo dos tipos das colunas N�mero m�ximo de �ndices em uma tabela? ilimitado � claro, que eles n�o s�o ilimitados, mas limitados ao espa�o em disco @@ -795,17 +788,14 @@ N�mero m�ximo de �ndices em uma tabela? ilimitado O tamanho de uma p�gina de dados no PostgreSQL � 8192 bytes (8 KB), ent�o: 8192 bytes por p�gina - ------------------------ = 136 registros por p�gina do banco de dados (ar -redondado para baixo) + ------------------------ = 136 registros por p�gina do banco de dados (arredondado para baixo) 60 bytes por registro 100000 registros de dados - ---------------------------- = 735 p�ginas do banco de dados (arredondado -para cima) + ---------------------------- = 735 p�ginas do banco de dados (arredondadopara cima) 128 registros por p�gina -735 p�ginas do banco de dados * 8192 bytes por p�gina = 6,021,120 bytes (6 MB -) +735 p�ginas do banco de dados * 8192 bytes por p�gina = 6,021,120 bytes (6 MB) �ndices n�o requerem muito espa�o, mas cont�m dados que foram indexados, ent�o eles podem ocupar algum espa�o. @@ -874,10 +864,8 @@ para cima) * A localidade padr�o C deve ser utilizada durante o initdb porque n�o � poss�vel saber o pr�ximo/maior caracter em uma localidade que n�o seja a C. Voc� pode criar um �ndice especial -text_pattern_ops - para tais casos que funcionam somente para indexa��o utilizando -LIKE - . + text_pattern_ops para tais casos que funcionam somente para + indexa��o utilizando LIKE. Em vers�es anteriores a 8.0, �ndices frequentemente n�o podiam ser usados a menos que os tipos de dados correspodessem aos tipos da @@ -948,14 +936,10 @@ LIKE Tipo Nome Interno Notas -------------------------------------------------- -VARCHAR(n) varchar tamanho especifica o comprimento m�ximo, sem pr -eenchimento -CHAR(n) bpchar preenchimento em branco para comprimento fixo e -spec�fico -TEXT text nenhum limite superior espec�fico no compriment -o -BYTEA bytea vetor de bytes de comprimento vari�vel (null-by -te safe) +VARCHAR(n) varchar tamanho especifica o comprimento m�ximo, sem preenchimento +CHAR(n) bpchar preenchimento em branco para comprimento fixo espec�fico +TEXT text nenhum limite superior espec�fico no comprimento +BYTEA bytea vetor de bytes de comprimento vari�vel (null-byte safe) "char" char um caracter Voc� ver� o nome interno quando examinar o cat�logo do sistema e em @@ -1063,8 +1047,7 @@ te safe) de alguma coisa, ou se voc� quer fazer uma c�pia da tabela, com os OIDs, n�o h� raz�o para que voc� n�o possa faz�-la: CREATE TABLE nova_tabela(minha_coluna int); - SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_anti -ga; + SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_antiga; COPY tabela_tmp TO '/tmp/pgtable'; DROP TABLE tabela_tmp; COPY nova_tabela WITH OIDS FROM '/tmp/pgtable'; diff --git a/doc/FAQ_czech b/doc/FAQ_czech index 1fd6627b8a5..1a2b33cb687 100644 --- a/doc/FAQ_czech +++ b/doc/FAQ_czech @@ -1,855 +1,823 @@ -�asto kladen� dotazy (FAQ) PostgreSQL -===================================== - -Obecn� ot�zky -============= -1.1 Co je PostgreSQL? Jak se vyslovuje? -1.2 Jak� je licence na PostgreSQL? -1.3 Na kter�ch Unixex lze spustit PostgreSQL? -1.4 Kter� ne-unixov� platformy jsou podporovan�? -1.5 Kde mohu z�skat PostgreSQL? -1.6 Kde mohu z�skat podporu? -1.7 Kde je posledn� verze? -1.8 Jak� je dostupn� dokumentace? -1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? -1.10 Jak se mohu nau�it SQL? - -1.11 Nem� PostgreSQL probl�my s rokem 2000? -1.12 Jak se p�ipojit k v�voj��sk�mu t�mu? -1.13 Kam podat report o chyb�? -1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? -1.15 Jak lze finan�n� pomoci PostgreSQL? - -User client dotazy -================== -2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL? -2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web? -2.3 Existuje grafick� rozhran� pro PostgreSQL? -2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL? - -Administrativn� dotazy -====================== -3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? -3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo -core dump. Pro�? 3.3 P�i startu postmastera dostanu hl�en� o chyb� -IpcMemoryCreate. Pro�? 3.4 P�i startu postmastera dostanu hl�en� o -chyb� IpcSemaphoreCreate. Pro�? 3.5 Jak povolit nebo zak�zat p��stup z -jin�ch stanic? 3.6 Jak ladit datab�zov� stroj na lep�� v�kon? - -3.7 Jak� jsou mo�nosti lad�n�? -3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? -3.9 K �emu slou�� adres�� pgsql_tmp? - -3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade -mezi velk�mi verzemi PostgreSQL? - -Provozn� dotazy -=============== -4.1 ��m se li�� bin�rn� a norm�ln� kurzor? -4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? -4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? -4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? -4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? -4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho -textov�ho souboru? 4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�, -datab�z�? 4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? -4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? - -4.10 Co to je R-tree index? -4.11 Co je Genetic Query Optimizer? -4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, -insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? 4.13 Jak -v dotazu detekovat, �e polo�ka je NULL? 4.14 Jak� jsou rozd�ly mezi -r�zn�mi znakov�mi typy? 4.15.1 Jak vytvo�it serial/auto-increment pole? -4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku? - -4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s -jin�mi u�ivateli? 4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i -p�eru�en� transakce? Pro� vznikaj� d�ry v ��slov�n� vlastn� -sekvenc�/SERIAL sloupce? 4.16 Co to je OID? Co je to TID? - -4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? -4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in -AllocSetAlloc()"? 4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? -4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj -descriptor"? 4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� -datum? 4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? -4.23 Jak prov�st vn�j�� spojen� (outer join)? - -4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi? -4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�? -4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL -funkc�ch? 4.27 Jak� jsou mo�nosti replikace datab�z�? - -4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�? - -Roz�i�ov�n� PostgreSQL -====================== -5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? -5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do -PostgreSQL? 5.3 Jak napsat funkci v C vracej�c� ntici? - -5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci -vzata v potaz. Pro�? ------------------------------------------------------------------------- - -Obecn� ot�zky -============= - -1.1 Co je PostgreSQL? Jak se vyslovuje? ---------------------------------------- - -PostgreSQL se vyslovuje Post-Gres-Q-L. - -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. - -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. - -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�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. - -1.2 Jak� je licence na PostgreSQL? ----------------------------------- - -PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v: - -D�l�� copyright (c) 1996-2002, PostgreSQL Global Development Group - -D�l�� copyright (c) 1994-6, Regents of the University of California - -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�. - -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. - -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. - -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. - -1.3 Na kter�ch Unixex lze spustit PostgreSQL? ---------------------------------------------- - -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. - -1.4 Kter� ne-unixov� platformy jsou podporovan�? ------------------------------------------------- - -Klient ------- - -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. - -Server ------- - -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 -http://forge.novell.com. - -1.5 Kde mohu z�skat PostgreSQL? -------------------------------- - -Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je -ftp://ftp.PostgreSQL.org/pub . Seznam zrcadel naleznete na na�ich -webov�ch str�nk�ch. - -1.6 Kde mohu z�skat podporu? ----------------------------- - -Hlavn�m mailov� konference je [email protected]. 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) - -subscribe -end - -na adresu mailto:[email protected]. - -M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn� -zpr�v. - -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 mailto:[email protected]. - -Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji� zmi�ovan�m -obsahem na mailto:[email protected]. - -Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL -http://www.postgresql.org - -1.7 Kde je posledn� verze? --------------------------- - -Posledn� verz� je PostgreSQL 7.4.. Pl�nujeme uvolnit velkou verzi -ka�d�ch �est a� osm m�s�c�. - -1.8 Jak� je dostupn� dokumentace? ---------------------------------- - -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 http://www.PostgreSQL.org/docs. - -Na adres�ch http://www.PostgreSQL.org/docs/awbook.html a -http://www.commandprompt.com/ppbook/ naleznezte dv� online knihy o -PostgreSQL. Seznam dostupn� literatury je na -http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor -technick�ch �l�nk� s tematikou PostgresQL najdete na -http://techdocs.PostgreSQL.org/. - -psql m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o typech, -oper�torech, funkc�, agrega�n�ch funkc� atd. - -V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch. - -1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? ------------------------------------------------------------------- - -PostgreSQL podporuje roz���enou podmno�inu SQL-92. V na�em TODO [1] -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). - -1.10 Jak se mohu nau�it SQL? ----------------------------- - -V knize The PostgreSQL book na -http://www.PostgreSQL.org/docs/awbook.html je vysv�tlen jazyk SQL (vy�la -�esky). Dal�� dostupnou knihou je http://www.commandprompt.com/ppbook. -Kvalitn� n�vody naleznete na -http://www.intermedia.net/support/sql/sqltut.shtm, na -http://www.intermedia.net/support/sql/sqltut.shtm [2] , a na -http://sqlcourse.com. - -Dal�� je Teach Yourself SQL in 21 days, Second Edition na -http://members.tripod.com/er4ebus/sql/index.htm. - -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. - -1.11 Nem� PostgreSQL probl�my s rokem 2000? -------------------------------------------- - -Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed -rokem 2000 p�.n.l. - -1.12 Jak se p�ipojit k v�voj��sk�mu t�mu? ------------------------------------------ - -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. - -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. - -1.13 Kam podat report o chyb�? ------------------------------- - -Nav�tivte na�i PostgreSQL BugTool str�nku na -http://www.PostgreSQL.org/bugs/bugs.php, kter� obsahuje n�vod a sm�rnice -jak podat chybov� report. - -Ov��te si na na�em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li m�te -nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak� z�platy. - -1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? --------------------------------------------------------------- - -Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon, -spolehlivost, podpora a cena. - -Vlastnosti ----------- - -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�. - -V�kon ------ - -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 -http://openacs.org/philosophy/why-not-mysql.html. Za v�vojem MySQL nen� -Open Source komunita, ale komer�n� spole�nost, p�esto�e svoje produkty -distribuuje jako Open Source. - -Spolehlivost ------------- - -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. - -Podpora -------- - -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�, 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). - -Cena ----- - -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). - -1.15 Jak lze finan�n� pomoci PostgreSQL? ----------------------------------------- - -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. - -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. - -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 -http://store.pgsql.com/shopping/ a darujte je. - -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. - -Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n� -advocacy site na http://advocacy.postgresql.org. - ------------------------------------------------------------------------- - -User client dotazy -================== - -2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL? ---------------------------------------------- - -Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC. - -PsqlODBC je ke sta�en� na -http://gborg.postgresql.org/project/psqlodbc/projdisplay.php. - -OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s -jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi -podporovan� platformy (Win, Mac, Unix, VMS). - -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 - -2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web? --------------------------------------------------- - -P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch -str�nek najdete na http://www.webreview.com. - -Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na -http://www.php.net. - -Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl. - -2.3 Existuje grafick� rozhran� pro PostgreSQL? ----------------------------------------------- - -Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess -(http://www.php.net), PgAdmin (http://www.php.net), RHDB Admin -(http://sources.redhat.com/rhdb/) a Rekall ( -http://www.thekompany.com/products/rekall/). D�le existuje PHPPgAdmin -(http://phppgadmin.sourceforge.net/) rozhran� PostgreSQL zalo�en� na web -technologii. - -�pln�j�� seznam najdete na -http://techdocs.postgresql.org/guides/GUITools. - -2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL? ----------------------------------------------------------- - -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. - -Distribuce PostgreSQL obsahuje tato rozhran�: - - - C (libpq) - - Embbedded C (ecpg) - - Java (jdbc) - - Python (PyGreSQL) - - TCL (libpgtcl) - -Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci -Drivers/Interfaces. - ------------------------------------------------------------------------- - -Administrativn� dotazy -====================== - -3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? --------------------------------------------------------------- - -Pou�ijte volbu --prefix p�i spu�t�n� configure - -3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo core dump. Pro�? ----------------------------------------------------------------------------------------- - -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�. - -3.3 P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�? -------------------------------------------------------------------------- - -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 -http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kern -el-resources.html [3] naleznete podrobn�j�� informace o sd�len� pam�ti a -semaforech. - -3.4 P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate. Pro�? ----------------------------------------------------------------------------- - -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. - -Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch -operac�. - -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. - -3.5 Jak povolit nebo zak�zat p��stup z jin�ch stanic? ------------------------------------------------------ - -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� - -3.6 Jak ladit datab�zov� stroj na lep�� v�kon? ----------------------------------------------- - -Ur�it� pomohou indexy. P��kaz EXPLAIN zobraz� zp�sob interpretace Va�eho -dotazu a pou�it� index�. - -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. - -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. - -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�. - -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. - -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. - -3.7 Jak� jsou mo�nosti lad�n�? ------------------------------- - -M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m. - -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. - -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: - -cd /usr/local/pgsql -./bin/postmaster > server.log 2>&1 & - -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. - -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. - -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. - -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). - -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. - -3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? ---------------------------------------------------------------------- - -Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch -backend�. - -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�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. - -3.9 K �emu slou�� adres�� pgsql_tmp? ------------------------------------- - -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�. - -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���. - -3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi velk�mi verzemi PostgreSQL? ------------------------------------------------------------------------------------------------------- - -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. - ------------------------------------------------------------------------- - -Provozn� dotazy -=============== - -4.1 ��m se li�� bin�rn� a norm�ln� kurzor? ------------------------------------------- - -Popis najdete v manu�lov� str�nce DECLARE - -4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? -------------------------------------------------------- - -Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ... -LIMIT ... - -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�. - -K z�sk�n� n�hodn�ho ��dku pou�ijte: - -SELECT col FROM tab - ORDER BY random() LIMIT 1; - -4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? ------------------------------------------------------------- - -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�. - -4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? -------------------------------------------------------- - -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: - -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; - -Pro zm�nu typu sloupce je t�eba prov�st: - -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; - -Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran� -nyn� ji� neplatn�mi ��dky. - -4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? ---------------------------------------------------------- - -PostgreSQL m� tato omezen�: - - 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 - -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. - -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�. - -Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme -ze�ty�n�sobit nastaven�m velikosti bloku na 32K. - -4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho textov�ho souboru? -------------------------------------------------------------------------------------- - -PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z -textov�ho souboru. - -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. - - 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) - -Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e -obsahuj� indexovan� data. - -Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo -diskov�ho prostoru. - -4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? ------------------------------------------------------------- - -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�. - -Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c� k -syst�mov�m tabulk�mm. - -4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? ------------------------------------------------------------ - -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�, - -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. - -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. - -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 - -SELECT col FROM tab - ORDER BY col [ DESC ] LIMIT 1; - -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�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�: - - - za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj. - - * vzor LIKE nesm� za��nat % - * regul�rn� v�raz mus� za��nat ^ - - - vzor nesm� za��nat intervalem, nap�. [a-e] - - - 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 - - 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�). - -4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? ------------------------------------------------------------- - -Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN. - -4.10 Co to je R-tree index? ---------------------------- - -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�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 - -Tyto materi�ly naleznete v Stonebraker's "Readings in Database Systems". - -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. - -4.11 Co je Genetic Query Optimizer? ------------------------------------ - -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. - -4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, -insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? - -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. - -Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme - -SELECT * FROM tab - WHERE lower(col) = 'abc'; - -V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se -funkcion�ln� index, pokud jej vytvo��te - -CREATE INDEX tabindex ON tab (lower(col)); - -4.13 Jak v dotazu detekovat, �e polo�ka je NULL? ------------------------------------------------- - -Ur��te pomoc� IS NULL nebo IS NOT NULL - -4.14 Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? ---------------------------------------------------- + �asto kladen� dotazy (FAQ) PostgreSQL + + Posledn� aktualizace: St�eda 23. �ervna 21:10:00 EST 2004 + + Sou�asn� spr�vce: Bruce Momjian ([email protected]) + + P�elo�il: Pavel St�hule ([email protected]) + + Aktu�ln� verzi tohoto dokumentu naleznete na adrese: + http://www.PostgreSQL.org/docs/faqs/FAQ.html. �esk� p�eklad na adrese: + http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html. + + Odpov�di na dotazy relevantn� ke konkr�tn�m platform�m lze nal�zt na + adrese: http://www.PostgreSQL.org/docs/index.html. + _________________________________________________________________ + + Obecn� ot�zky + + 1.1) Co je PostgreSQL? Jak se vyslovuje? + 1.2) Jak� je licence na PostgreSQL? + 1.3) Na kter�ch Unixex lze spustit PostgreSQL? + 1.4) Kter� ne-unixov� platformy jsou podporovan�? + 1.5) Kde mohu z�skat PostgreSQL? + 1.6) Kde mohu z�skat podporu? + 1.7) Kde je posledn� verze? + 1.8) Jak� je dostupn� dokumentace? + 1.9) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? + 1.10) Jak se mohu nau�it SQL? + 1.11) Nem� PostgreSQL probl�my s rokem 2000? + 1.12) Jak se p�ipojit k v�voj��sk�mu t�mu? + 1.13) Kam podat report o chyb�? + 1.14) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? + 1.15) Jak lze finan�n� pomoci PostgreSQL? + + User client dotazy + + 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL? + 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web? + 2.3) Existuje grafick� rozhran� pro PostgreSQL? + 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL? + + Administrativn� dotazy + + 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? + 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call + nebo core dump. Pro�? + 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. + Pro�? + 3.4) P�i startu postmastera dostanu hl�en� o chyb� + IpcSemaphoreCreate. Pro�? + 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic? + 3.6) Jak ladit datab�zov� stroj na lep�� v�kon? + 3.7) Jak� jsou mo�nosti lad�n�? + 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? + 3.9) K �emu slou�� adres�� pgsql_tmp? + 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade + mezi velk�mi verzemi PostgreSQL? + + Provozn� dotazy + + 4.1) ��m se li�� bin�rn� a norm�ln� kurzor? + 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? + 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? + 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? + 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? + 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho + textov�ho souboru? + 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? + 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? + 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? + 4.10) Co to je R-tree index? + 4.11) Co je Genetic Query Optimizer? + 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, + insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? + 4.13) Jak v dotazu detekovat, �e polo�ka je NULL? + 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? + 4.15.1) Jak vytvo�it serial/auto-increment pole? + 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku? + 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i + soub�hu s jin�mi u�ivateli? + 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? + Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? + 4.16) Co to je OID? Co je to TID? + 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? + 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in + AllocSetAlloc()"? + 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? + 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj + descriptor"? + 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? + 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? + 4.23) Jak prov�st vn�j�� spojen� (outer join)? + 4.24) Jak prov�st dotaz nap��� n�kolika datab�zemi? + 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�? + 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v + PL/pgSQL funkc�ch? + 4.27) Jak� jsou mo�nosti replikace datab�z�? + 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�? + + Roz�i�ov�n� PostgreSQL + + 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? + 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do + PostgreSQL? + 5.3) Jak napsat funkci v C vracej�c� ntici? + 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i + rekompilaci vzata v potaz. Pro�? + _________________________________________________________________ + + Obecn� ot�zky + + 1.1) Co je PostgreSQL? Jak se vyslovuje? + + PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukov� z�znam je dostupn� na + adrese . + + PostgreSQL vych�z� z datab�ze POSTGRES (a st�le je n�kdy ozna�ov�n + zjednodu�en� jako 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. + + 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 + ([email protected]). (viz 1.6 - 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 + http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html + + 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�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. + + 1.2) Jak� je licence na PostgreSQL? + + PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v: + + D�l�� Copyright (c) 1996-2005, PostgreSQL Global Development Group + D�l�� Copyright (c) 1994-6, Regents of the University of California + + 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�. + + 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. + + 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. + + 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. + + 1.3) Na kter�ch Unixex lze spustit PostgreSQL? + + 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. + + 1.4) Kter� ne-unixov� platformy jsou podporovan�? + + Klient + + 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. + + Server + + Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou + Cygwin, Cygnus Unix/NT porting library. V�ce pgsql/doc/FAQ_MSWIN v + distribuci nebo MS Windows FAQ na adrese + http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN. + + 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 + http://techdocs.postgresql.org/guides/Windows a + http://momjian.postgresql.org/main/writings/pgsql/win32.html. + + Existuj�c� port pro Novell Netware 6 naleznete na + http://forge.novell.com. + + 1.5) Kde mohu z�skat PostgreSQL? + + Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je + ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na na�ich + webov�ch str�nk�ch. + + 1.6) Kde mohu z�skat podporu? + + Hlavn� mailov� konference je: [email protected]. 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): + subscribe + end + + na adresu [email protected]. + + M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn� + zpr�v. + + 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 [email protected]. + + Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji� + zmi�ovan�m obsahem na mailto:[email protected]. + + Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL: + + http://www.postgresql.org + + 1.7) Jak� je posledn� verze? + + Posledn� verze PostgreSQL je 7.4.3. Pl�nujeme uvolnit v�znamnou verzi + ka�d�ch �est a� osm m�s�c�. + + 1.8) Jak� je dostupn� dokumentace? + + 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 http://www.PostgreSQL.org/docs. + + Na adres�ch http://www.PostgreSQL.org/docs/awbook.html a + http://www.commandprompt.com/ppbook/ naleznezte dv� online knihy o + PostgreSQL. Seznam dostupn� literatury je na + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor + technick�ch �l�nk� s tematikou PostgresQL najdete na + http://techdocs.PostgreSQL.org/. + + psql m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o + typech, oper�torech, funkc�, agrega�n�ch funkc� atd. + + V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch. + + 1.9) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? + + PostgreSQL podporuje roz���enou podmno�inu SQL-92. V na�em TODO + 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). + + 1.10) Jak se mohu nau�it SQL? + + V knize The PostgreSQL book na + http://www.PostgreSQL.org/docs/awbook.html je vysv�tlen jazyk SQL + (vy�la �esky). Dal�� dostupnou knihou je + http://www.commandprompt.com/ppbook. Kvalitn� n�vody naleznete na + http://www.intermedia.net/support/sql/sqltut.shtm, a na + http://sqlcourse.com. + + Dal�� je Teach Yourself SQL in 21 days, Second Edition na + http://members.tripod.com/er4ebus/sql/index.htm. + + 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. + + 1.11) Nem� PostgreSQL probl�my s rokem 2000? + + Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed + rokem 2000 p�.n.l. + + 1.12) Jak se p�ipojit k v�voj��sk�mu t�mu? + + 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. + + 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. + + 1.13) Kam podat report o chyb�? + + Nav�tivte na�i PostgreSQL BugTool str�nku na + http://www.PostgreSQL.org/bugs/bugs.php, kter� obsahuje n�vod a + sm�rnice jak podat chybov� report. + + Ov��te si na na�em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li + m�te nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak� + z�platy. + + 1.14) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? + + Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon, + spolehlivost, podpora a cena. + + Vlastnosti + 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�. + + V�kon + 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 + http://openacs.org/philosophy/why-not-mysql.html. Za v�vojem + MySQL nen� Open Source komunita, ale komer�n� spole�nost, + p�esto�e svoje produkty distribuuje jako Open Source. + + Spolehlivost + 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. + + Podpora + 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�, + 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). + + Cena + 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). + + 1.15) Jak lze finan�n� pomoci PostgreSQL? + + 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. + + 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. + + 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 + http://store.pgsql.com/shopping/ a darujte je. + + 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. + _________________________________________________________________ + + Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n� + advocacy site na http://advocacy.postgresql.org. + + User client dotazy + + 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL? + + Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC. + + PsqlODBC je ke sta�en� na + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php. + + OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s + jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi + podporovan� platformy (Win, Mac, Unix, VMS). + + 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 [email protected]. + + 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web? + + P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch + str�nek najdete na http://www.webreview.com. + + Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na + http://www.php.net. + + Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl. + + 2.3) Existuje grafick� rozhran� pro PostgreSQL? + + Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess + (http://www.php.net), PgAdmin III (http://www.php.net), RHDB Admin + (http://sources.redhat.com/rhdb/) a Rekall ( + http://www.thekompany.com/products/rekall/). D�le je�t� PhpPgAdmin + (http://phppgadmin.sourceforge.net/) co� je rozhran� PostgreSQL + zalo�en� na web technologii. + + �pln�j�� seznam najdete na + http://techdocs.postgresql.org/guides/GUITools. + + 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL? + + 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. + + Distribuce PostgreSQL obsahuje tato rozhran�: + * C (libpq) + * Embbedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci + Drivers/Interfaces. + _________________________________________________________________ + + Administrativn� dotazy + + 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? + + Pou�ijte volbu --prefix p�i spu�t�n� configure. + + 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo + core dump. Pro�? + + 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�. + + 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�? + + 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. + + 3.4) P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate. + Pro�? + + 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 postmaster 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. + + Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch + operac�. + + 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. + + 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic? + + 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 a ur�en�m zp�sobu + autentifikace v $PGDATA/pg_hba.conf. + + 3.6) Jak ladit datab�zov� stroj na lep�� v�kon? + + Ur�it� pomohou indexy. P��kaz EXPLAIN ANALYZE V�m umo�n� sledovat jak + PostgreSQL interpretuje V� dotaz a kter� indexy pou��v�. + + 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. + + 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. + + 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�. + + 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. + + 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. + + 3.7) Jak� jsou mo�nosti lad�n�? + + M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m. + + 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. + + 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: + cd /usr/local/pgsql + ./bin/postmaster > server.log 2>&1 & + + 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. + + 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. + + 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. + + 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). + + 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. + + 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? + + Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch + backend�. + + 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�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. + + 3.9) K �emu slou�� adres�� pgsql_tmp? + + 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�. + + 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���. + + 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi + velk�mi verzemi PostgreSQL? + + 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. + _________________________________________________________________ + + Provozn� dotazy + + 4.1) ��m se li�� bin�rn� a norm�ln� kurzor? + + Popis najdete v manu�lov� str�nce DECLARE + + 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? + + Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ... + LIMIT ... + + I kdy� pot�ebujete z�skat pouze prvn�ch n�kolik ��dk�, je t�eba + zpracovat v�echna data, nap�. pokud dotaz m� ORDER BY. Pokud v�ak + existuje index, kter� odpov�d� ORDER BY, PostgreSQL m��e z�skat pouze + prvn�ch n ��dk� a ukon�it zpracov�n� dotazu. + + K z�sk�n� n�hodn�ho ��dku pou�ijte: + SELECT col + FROM tab + ORDER BY random() + LIMIT 1; + + 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? + + P��kaz \dt v psql zobraz� seznam tabulek. �pln� seznam p��kaz� psql + dostanete p��kazem \?. Tak� se m��ete pod�vat 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�. PostgreSQL nab�z� SQLi INFORMATION + SCHEMA s tabulkami obsahuj�c� informace o datab�zi. + + 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? + + 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: + 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; + + Pro zm�nu typu sloupce je t�eba prov�st: + 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; + + Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran� + nyn� ji� neplatn�mi ��dky. + + 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? + + PostgreSQL m� tato omezen�: + 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 + + 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. + + 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�. + + Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme + ze�ty�n�sobit nastaven�m velikosti bloku na 32K. + + 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z + + norm�ln�ho textov�ho souboru? + + PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z + textov�ho souboru. + + 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. + 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) + + Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e + obsahuj� indexovan� data. + + Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo + diskov�ho prostoru. + + 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? + + 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�. + + Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c� + k syst�mov�m tabulk�mm. + + 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? + + 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�. + + 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. + + 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. + + 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: + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + + 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�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�: + * za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj. + + vzor LIKE nesm� za��nat % + + ~ regul�rn� v�raz mus� za��nat ^ + * vzor nesm� za��nat intervalem, nap�. [a-e] + * vyhled�van�, kter� nen� Case sensitiv jako je ILIKE nebo ~* + nepou��v� indexy. M��ete ale pou��t funkcion�ln� indexy, kter� + jsou pos�ny v sekci 4.12 + * 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�). + + 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? + + Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN. + + 4.10) Co to je R-tree index? + + 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�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 + + Tyto materi�ly naleznete v Stonebraker's "Readings in Database + Systems". + + 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. + + 4.11) Co je Genetic Query Optimizer? + + 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. + + 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, insensitiv? + Jak pou��t index pro case insensitive vyhled�v�n�? + + 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. + + Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme: + SELECT * + FROM tab + WHERE lower(col) = 'abc'; + + V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se + funkcion�ln� index, pokud jej vytvo��te: + CREATE INDEX tabindex ON tab (lower(col)); + + 4.13) Jak v dotazu detekovat, �e polo�ka je NULL? + + Ur��te pomoc� IS NULL nebo IS NOT NULL + + 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? + Typ Intern� n�zev Pozn�mka -------------------------------------------------------------------------- VARCHAR(n) varchar omezeno maxim�ln� d�lkou, bez dopln�n� mezerami @@ -858,332 +826,292 @@ 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 -S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch -chybov�ch hl�en�ch. - -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. - -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. - -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. - -4.15.1 Jak vytvo�it serial/auto-increment pole? ------------------------------------------------ - -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: - -CREATE TABLE person ( - id SERIAL, - name TEXT -); - -je automaticky p�evedeno do - -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); - -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). - -4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku? --------------------------------------------------- - -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 - -newid = execute("SELECT nextval('person_id_seq')"); -execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - -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. - -Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc� -currval() po vlo�en� - -execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); -new_id = execute("SELECT currval('person_id_seq')"); - -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->{pg_oid_status} -po ka�d�m $sth->execute(). - -4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s jin�mi u�ivateli? ------------------------------------------------------------------------------------------- - -Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em -backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m. - -4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? -Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? - -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�. - -4.16 Co to je OID? Co je to TID? --------------------------------- - -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 - -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. - -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 - -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'; - -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. - -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). - -4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? ------------------------------------------------------------- - -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: - - - tabulka, relace, t��da (table, relation, class) - - ��dek, z�znam, ntice (row, record, tuple) - - sloupec, polo�ka, atribut (column, field, attribute) - - vyhled�n�, v�b�r (retrieve, select) - - - n�hrada, �prava (replace, update) - - p�id�n�, vkl�d�n� (append, insert) - - OID, serial value (OID, serial value) - - portal, kurzor (portal, cursor) - - range variable, jm�no tabulky, alias tabulky (range - variable, table name, table alias) - -seznam t�chto v�raz� m��ete nal�zt na -http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/g -lossary.html. - -4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in AllocSetAlloc()"? ------------------------------------------------------------------------------------ - -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 - -ulimit -d 262144 -limit datasize 256m - -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. - -4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? ------------------------------------------------------ - -V psql spus�te - -SELECT version(); - -4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"? -------------------------------------------------------------------------- - -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. - -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�. - -Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit -off - -4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? ---------------------------------------------------------------- - -Pou�ijte CURRENT_TIMESTAMP + S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch + chybov�ch hl�en�ch. + + 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. + + 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. + + 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. + + 4.15.1) Jak vytvo�it serial/auto-increment pole? + + PostgreSQL podporuje typ SERIAL. P�i jeho pou�it� se automaticky + vytvo�� SEQUENCE. Nap��klad: + CREATE TABLE person ( + id SERIAL, + name TEXT + ); + + je automaticky p�evedeno do + 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); + + 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). + + 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku? + + 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: + newid = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); + + 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. + + Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc� + currval() po vlo�en�: + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + + 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->{pg_oid_status} po ka�d�m $sth->execute(). + + 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s + jin�mi u�ivateli? + + Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em + backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m. + + 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? Pro� + vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? + + 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�. + + 4.16) Co to je OID? Co je to TID? + + 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 + + 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. + + 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: + 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'; + + 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. + + 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). + + 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? + + 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: + * tabulka, relace, t��da (table, relation, class) + * ��dek, z�znam, ntice (row, record, tuple) + * sloupec, polo�ka, atribut (column, field, attribute) + * vyhled�n�, v�b�r (retrieve, select) + * n�hrada, �prava (replace, update) + * p�id�n�, vkl�d�n� (append, insert) + * OID, serial value (OID, serial value) + * portal, kurzor (portal, cursor) + * range variable, jm�no tabulky, alias tabulky (range variable, + table name, table alias) + + seznam t�chto v�raz� m��ete nal�zt na + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.html. + + 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in + AllocSetAlloc()"? + + 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 + ulimit -d 262144 + limit datasize 256m + + 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. + + 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? + + V psql spus�te SELECT version(); + + 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"? + + 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. + + 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�. + Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit + off. + + 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? + + Pou�ijte CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); -4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? -------------------------------------------------------------- - -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: - -SELECT * FROM tab - WHERE col IN (SELECT subcol FROM subtab); - -takto - -SELECT * FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); - -Pro urychlen� vytvo�ete index pro subcol. Tento v�konnostn� probl�m byl -odstran�n ve verzi 7.4. - -4.23 Jak prov�st vn�j�� spojen� (outer join)? ---------------------------------------------- - -PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy. -Zde jsou dva p��klady: - -SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - -nebo - -SELECT * FROM t1 LEFT OUTER JOIN USING (col); - -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. - -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: - -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; - -4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi? --------------------------------------------------- - -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. - -4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�? ------------------------------------------------- - -V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z -funkce, viz: -http://techdocs.postgresql.org/guides/SetReturningFunctions. - -4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL funkc�ch? --------------------------------------------------------------------------------- - -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. - -4.27 Jak� jsou mo�nosti replikace datab�z�? -------------------------------------------- - -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 http://gborg.PostgreSQL.org/genpage?replication_research najdete -jejich seznam. Na �e�en� multi-master replikaci se pracuje na -http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. - -4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�? -------------------------------------------- - - - - contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL - dotazech. - - - - - 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. - - - - - 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 - - - - - Server m��e b�et na �ifrovan�m souborov�m syst�mu. - ------------------------------------------------------------------------- - -Roz�i�ov�n� PostgreSQL -====================== - -5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? ------------------------------------------------------------- - -Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji funkci -nejd��ve v n�jak� jednoduch� aplikaci. - -5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do PostgreSQL? -------------------------------------------------------------------------------- - -Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n� -skon�� v podadres��i contrib. - -5.3 Jak napsat funkci v C vracej�c� ntici? ------------------------------------------- - -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. - -5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci vzata v potaz. Pro�? ---------------------------------------------------------------------------------------------- - -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. - - -[1] http://developer.postgresql.org/todo.php -[2] http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM -[3] http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide - + 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? + + 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� IN bylo rychl�. Pro ostatn� + p��pady je vhodn� nahradit IN EXISTS: + SELECT * + FROM tab + WHERE col IN (SELECT subcol FROM subtab); + + na: + SELECT * + FROM tab + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); + + Pro urychlen� vytvo�ete index pro subcol. + + Ve verzi 7.4 a pozd�j��ch, IN pou��v� stejn� sofistikovanou techniku + spojov�n� tabulek jako ostatn� dotazy a je preferovan� p�ed EXISTS. + + 4.23) Jak prov�st vn�j�� spojen� (outer join)? + + PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy. + Zde jsou dva p��klady: + SELECT * + FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + nebo + SELECT * + FROM t1 LEFT OUTER JOIN USING (col); + + 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. + + 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: + 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; + + 4.24) Jak prov�st dotaz z v�ce datab�z�? + + PostgreSQL nepodporuje dotazy do jin� ne� aktu�ln� datab�ze. + + contrib/dblink 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�. + + 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�? + + V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z + funkce, viz: + http://techdocs.postgresql.org/guides/SetReturningFunctions. + + 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL + funkc�ch? + + 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. + + 4.27) Jak� jsou mo�nosti replikace datab�z�? + + 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 http://gborg.PostgreSQL.org/genpage?replication_research najdete + jejich seznam. Na �e�en� multi-master replikaci se pracuje na + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + + 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�? + + * contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL + dotazech. + * K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server + p�elo�en s podporou ssl a p�ep�na� ssl v 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. + * 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 + * Server m��e b�et na �ifrovan�m souborov�m syst�mu. + _________________________________________________________________ + + Roz�i�ov�n� PostgreSQL + + 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? + + Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji + funkci nejd��ve v n�jak� jednoduch� aplikaci. + + 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do + PostgreSQL? + + Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n� + skon�� v podadres��i contrib. + + 5.3) Jak napsat funkci v C vracej�c� ntici? + + 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. + + 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci + vzata v potaz. Pro�? + + 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. diff --git a/doc/FAQ_farsi b/doc/FAQ_farsi index c8ff95967cd..b7cbb205750 100644 --- a/doc/FAQ_farsi +++ b/doc/FAQ_farsi @@ -1,816 +1,1566 @@ -PostgreSQL FAQسوالاتي كه اغلب در مورد PostgreSQL پرسيده مي شوند -تاريخ آخرين اصلاح اين فايل: 28 شهریور 1383 هجری شمسی -نگهدارنده اصلي فايل (زبان انگليسي)در حال حاضر : Bruce Momjian -نگهدارنده فايل به زبان فارسي: [email protected] محمود تقيزاده مهرجردی -آخرين نسخه اين فايل را ميتوانيد از اين آدرس بگيريد -http://www.PostgreSQL.org/docs/faqs/FAQ.html -سوالاتي كه در مورد يك سکوی(پلتفرم) خاص است در اين آدرس جواب داده شده اند -http://www.PostgreSQL.org/docs/index.html - - - -سوالات عمومي -1.1) PostgreSQL چيست و چگونه بايد آن را تلفظ كرد؟ -1.2) قانون كپي رايت (حقوق معنوي) در مورد PostgreSQL به چه صورت است؟ -1.3) PostgreSQL روي چه نوع يونيكسهايي اجرا ميشود؟ -1.4) روي چه محيطهاي غير يونيكسي ميتوان آن را اجرا كرد؟ -1.5) PostgreSQL را از كجا ميتوانم بگيرم؟ -1.6) از كجا خدمات پشتيباني بگيرم؟ -1.7) آخرين نسخه اعلام شده چيست؟ -1.8) چه مستندات و راهنمائيهايي وجود دارند؟ -1.9) چگونه ميتوانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده -وجود ندارد مطلع شوم؟ -1.10) چگونه ميتوانم زبان SQL را ياد بگيرم؟ -1.11) آيا PostgreSQL مشكل Y2K دارد يا خير؟ -1.12) چگونه ميتوانم به تيم برنامه نويس PostgreSQL ملحق شوم؟ -1.13) چگونه ميتوانم يك اشكال را به گروه برنامه نويس اعلام كنم؟ -1.14) وضعيت PostgreSQL در مقايسه با ساير DBMSها به چه صورت است؟ -1.15) من چگونه ميتوانم از نظر مالي به PostgreSQL كمك كنم؟ - -سوالات مربوط به استفاده از پايگاه داده -2.1) آيا هيچ درايور ODBC براي PostgreSQL وجود دارد؟ -2.2) چه ابزارهايي براي استفاده از PostgreSQL با صفحات وب وجود دارد؟ -2.3) آيا PostgreSQL يك واسط كاربري گرافيكي دارد؟ -2.4) با چه زبانهاي برنامهنويسي ميتوان با PostgreSQL ارتباط برقرار كرد؟ - -سوالات مربوط به راهبري -3.1) چگونه ميتوانم PostgreSQL را در شاخهاي غير از /usr/local/pgsql/ نصب كنم؟ -3.2) چرا موقعي كه من برنامه postmaster را اجرا مي كنم پيام Bad system call و -يا core dump ميگيرم؟ -3.3) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي -IpcMemoryCreate ميگيرم؟ -3.4) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي -IpcSemaphoreCreate ميگيرم؟ -3.5) چگونه ميتوانم اتصالات ساير ماشينها را كنترل كنم؟ -3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟ -3.7) چه امكاناتي براي پيدا كردن اشكال وجود دارد؟ -3.8) چرا موقعي كه من ميخواهم به پايگاه داده وصل شوم پيام "Sorry, too many -clients" ميگيرم؟ -3.9) در شاخه pgsql_tmp چه چيزي قرار دارد؟ -3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump و مجدداً -restore كنم؟ -3.11) از چه سخت افزاري بايد استفاده كنم؟ - -سوالات عملياتي -4.1) تفاوت بين binary cursors و Normal cursors چيست؟ -4.2) من چگونه ميتوانم فقط روي چند رديف اول يا يك رديف تصادفي درخواست SELECT -بزنم؟ -4.3) من چگونه ميتوانم ليستي از جداول يا ساير چيزهايي كه در psql وجود دارد را -ببينم؟ -4.4) چگونه يك ستون جدول را حذف ميكنيد؟ چگونه نوع داده آن را عوض كنيم؟ -4.5) حداكثر اندازه يك رديف، جدول و خود پايگاه داده چقدر است؟ -4.6) چقدر فضاي ديسك سخت براي ذخيره كردن دادههاي يك فايل متني مورد نياز است؟ -4.7) چگونه ميتوانم بفهمم كه چه كاربران، پايگاه داده، نمايه و جداولي در سيستم -تعريف شده است؟ -4.8) چرا درخواستهاي من كند اجرا ميشوند يا چرا از نمايه ها استفاده نميكنند؟ -4.9) چگونه ميتوانم نحوه بررسي درخواست را توسط بهينهساز درخواستها مشاهده كنم؟ -4.10) نمايه R-tree چيست؟ -4.11) بهينه ساز تكويني درخواست چيست؟ (Genetic Query Optimizer) -4.12) چگونه از عبارات منظم براي جستجو استفاده كنم؟ چگونه جستجويي انجام دهم كه -حساس به متن نباشد؟ چگونه براي يك جستجوي غير حساس به متن از نمايه استفاده كنم؟ -4.13) چگونه ميتوانم در يك درخواست تشخيص دهم كه يك فيلد NULL است؟ -4.14) تفاوت بين گونههاي مختلف character چيست؟ -4.15.1) چگونه ميتوانم يك فيلد سريال يا افزايشي ايجاد كنم؟ -4.15.2) چگونه ميتوانم مقدار يك درج سريالي را بدانم؟ -4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر -کاربران می شوند؟ -4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟ -چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟ -4.16) OID و TID چه هستند؟ -4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL استفاده ميشود چيست؟ -4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" ميگيرم؟ -4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده ميكنم چيست؟ -4.20) چرا در حین اجرای عملیات روی large-objectها خطای "invalid large obj -descriptor"به وجود می آید؟ -4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيشفرض داشته -باشد؟ -4.22) چرا زير درخواستهايي كه از IN استفاده ميكنند كند هستند؟ -4.23) چگونه ميتوانم يك الحاق خارجي (outer join) انجام دهم؟ -4.24) چگونه ميتوان درخواستهايي از چند پايگاه داده توليد كرد؟ -4.25) چگونه خروجي يك تابع ميتواند چند رديف يا ستون باشد؟ -4.26) در توابع PL/PgSQL چرا نميتوان با اطمينان جداول موقت را ايجاد يا حذف كرد؟ -4.27) چه گزينههايي براي تكرار (replication) وجود دارد؟ -4.28) چه گزينههايي براي رمزنگاري وجود دارد؟ - -توسعه PostgreSQL -5.1) من يك تابع نوشتهام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core -dump ميگيرم؟ -5.2) چگونه ميتوانم در توليد نوعها و توابع جديد و جالب براي PostgreSQL همكاري -و مشاركت داشته باشم. -5.3) چگونه ميتوانم يك تابع به زبان C بنويسم كه خروجي آن يك tuple (چند تايي) -باشد؟ -5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن تغيير ديده -نميشود؟ - - - - -سوالات عمومي -1.1) PostgreSQL چيست و چگونه آن را بايد تلفظ كرد؟ -PostgreSQL به صورت Post-Gres-Q-L تلفظ ميشود. يك فايل صوتي در آدرس -http://www.postfresql.org/postgresql.mp3 براي كساني كه مايلند تلفظ صحيح را -بشنوند وجود دارد. -PostgreSQL از روي سيستم مديريت پايگاه داده POSTGRES توسعه داده شده است (هنوز هم -بعضي مواقع براي سادگي به آن Postgres گفته ميشود) كه يك نمونه تحقيقاتي از پايگاه -دادههاي نسل بعد است. PostgreSQL همان الگوي داده قوي و انواع داده را حفظ كرده -است ولي زبان PostQuel را با يك زيرمجموعه پيشرفته از SQL جايگزين كرده است. -PostgreSQL متن باز بوده و متن كامل آن در دسترس است. -PostgreSQL توسط يك تيم برنامهنويس كه همگي در گروه پست الكترونيك برنامهنويسان -PostgreSQL عضو هستند، انجام ميشود. هماهنگ كننده اصلي در حال حاضر Marc G. -Fournier به آدرس [email protected] ميباشد. (براي ديدن نحوه ملحق شدن به -اين تيم قسمت 1.6 را ببينيد). اين تيم در حاضر مسئوليت تمام مسائل مربوط به -برنامهنويسي PostgreSQL را بر عهده دارد. اين يك پروژه گروهي است و تحت كنترل هيچ -شركتي نيست. براي اطلاعات بيشتر در مورد اين تيم به آدرس -http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html مراجعه كنيد. -اولين نسخه PostgreSQL توسط Andrew Yu and Jolly Chen به وجود آمد. افراد بسياري -در توسعه و رفع اشكال و انتقال آن شركت كردهاند. متن اصلي Postgres كه PostgreSQL -از روي آن نوشته شده است، توسط تعداد زيادي دانشجوي كارشناسي ارشدو دانشجوي -كارشناسي و تيم برنامهنويسي كه تحت نظر پروفسور Michael Stonebrake در دانشگاه -بركلي،كاليفرنيا كار ميكردهاند نوشته شده است. -نام اصلي نرم افزار در دانشگاه بركلي Postgres بود. در سال 1995 بعد از اضافه شدن -SQL نام آن به Postgres95 تغيير داده شد. در سال 1996 نام آن به PostgreSQL تغيير -داده شد. -1.2) قوانين كپي رايت در مورد PostgreSQL به چه صورت است؟ -PostgreSQL تحت قانون كپي رايت زير قرار دارد: -PostgreSQL Data Base Management System -Portions copyright (c) 1996-2004, PostgreSQL Global Development Group Portions -Copyright (c) 1994-6 Regents of the University of California -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose, without fee, and without a written agreement is -hereby granted, provided that the above copyright notice and this paragraph and -the following two paragraphs appear in all copies. -IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST -PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF -THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND -THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, -UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -قانون بالا ليسانس BSD كه يك ليسانس كلاسيك براي متنهاي باز است ميباشد. هيچ -محدوديتي در مورد نحوه استفاده از متن در آن ديده نميشود. ما آن را دوست داريم و -هيچ قصدي براي تغيير آن نداريم. -1.3) PostgreSQL روي چه نوع يونيكسهايي اجرا ميشود؟ -در حالت كلي PostgreSQL روي هر پلتفرم (سكوي) سازگار با يونيكس اجرا ميشود. ليست -پلتفرمهايي كه تاكنون PostgreSQL روي آنها نصب و تست شده است درقسمت دستورالعملهاي -نصب آمده است. -1.4) روي چه محيطهاي غير يونيكسي ميتوان آن را اجرا كرد؟ -Client -ميتوان psql, كتابخانه libpq و ساير واسطها و برنامههاي كاربردي را طوري كامپيل -كرد كه روي محيطهاي ويندوز نيز اجرا شوند. در اين حالت Client روي ويندوز اجرا -ميشود و از طربق شبكه و پروتكل TCP/IP با يك سرور كه روي يك پلتفرم لينوكس در حال -اجراست ارتباط برقرار ميكند.يك فايل win32.mak همراه با كدهاي PostgreSQL وجود -دارد كه براي كامپيل كردن كتابخانه libpq و برنامه psql ميباشد. PostgreSQL -همچنين امكان ارتباط به صورت ODBC را نيز دارد. -Server -با استفاده از Cygwin و كتابخانه Cygnus ميتوان پايگاه داده را روي ويندوز NT و -يا Win2K اجرا كرد.براي ديدن اطلاعات بيشتر فايل pgsql/doc/FAQ_MSWIN را كه بهمراه -توزبعهاي PostgreSQL آمده است ببينيد و يا اينكه به اين صفحه -http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN مراجعه كنيد. -در حال حاضر يك عمليات انتقال PostgreSQL به روي سكوهاي Win NT/2000/XP در جريان -است. براي ديدن وضعيت اين پروژه به سايتهاي -http://momjian.postgresql.org/main/writings/pgsql/win32.htm و -http://techdocs.postgresql.org/guides/Windows مراجعه كنيد. -همچنين يك عمليات انتقال بر روي Novell Netware 6 نيز در حال انجام است كه در سايت -http://forge.novell.com ميتوانيد اطلاعات بيشتر را ببينيد. -1.5) PostgreSQL را از كجا ميتوانم بگيرم؟ -PostgreSQL را از سايت اصلي آن ftp://ftp.PostgreSQL.org/pub ميتوانيد بگيريد. -در صفحه اصلي سايت ليست ساير آدرسهايي كه ميتوانيد PostgreSQL را از آنها بگيريد -آمده است. -1.6) از كجا خدمات پشتيباني بگيرم؟ -گروه پستي اصلي [email protected] ميباشد. اين گروه براي بحث در مورد -موضوعات مختلف در زمينه PostgreSQL است. براي عضو شدن در اين گروه پستي يك نامه -الكترونيكي به آدرس گروه با محتوياتی كه در ادامه آمده است ارسال كنيد. در قسمت -Subject چيزي ننويسيد. +s+w+a+l+a+t+y+ k+h+ a+i+l+b+ d+r+ m+w+r+d+ PostgreSQL p+r+s+y+d+h+ m+y+ snw+n+d + + + t+a+r+y+x+ aMx+r+y+n+ a+c+l+a+hk a+y+n+ f+a+y+l+: 28 snh+r+یw+r+ + 1383 h+g+r+ی snm+s+ی + + n+gfh+d+a+r+n+d+h+ a+c+l+y+ f+a+y+l+ (z+b+a+n+ a+n+gfl+y+s+y+)d+r+ + hka+l+ hka+ddr+ : Bruce Momjian [email protected] + + n+gfh+d+a+r+n+d+h+ f+a+y+l+ b+h+ z+b+a+n+ f+a+r+s+y+: + [email protected] m+hkm+w+d+ t+q+y+z+a+d+h+ + m+h+r+g+r+d+ی + + aMx+r+y+n+ n+s+x+h+ a+y+n+ f+a+y+l+ r+a+ m+y+t+w+a+n+y+d+ a+z+ a+y+n+ + aMd+r+s+ b+gfy+r+y+d+ http://www.PostgreSQL.org/docs/faqs/FAQ.html + + s+w+a+l+a+t+y+ k+h+ d+r+ m+w+r+d+ y+k+ + s+کw+ی(p+l+t+f+r+m+) x+a+c+ a+s+t+ d+r+ a+y+n+ aMd+r+s+ + g+w+a+b+ d+a+d+h+ snd+h+ a+n+d+ + http://www.PostgreSQL.org/docs/index.html + _________________________________________________________________ + + s+w+a+l+a+t+ e+m+w+m+y+ + + 1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ b+a+y+d+ aMn+ r+a+ t+l+f+zH + k+r+d+?+ + 1.2) q+a+n+w+n+ k+p+y+ r+a+y+t+ (hkq+w+q+ m+e+n+w+y+) d+r+ m+w+r+d+ + PostgreSQL b+h+ tch+ c+w+r+t+ a+s+t+?+ + 1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+ + snw+d+?+ + 1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+ + aMn+ r+a+ a+g+r+a+ k+r+d+?+ + 1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+ + 1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+ + 1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+ + 1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+ + d+a+r+n+d+?+ + 1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+ + w+ y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+ + w+g+w+d+ n+d+a+r+d+ m+tjl+e+ snw+m+?+ + 1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+ + 1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+ + 1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+ + PostgreSQL m+l+hkq+ snw+m+?+ + 1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+snk+a+l+ r+a+ b+h+ gfr+w+h+ + b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+ + 1.14) w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+ + b+h+ tch+ c+w+r+t+ a+s+t+?+ + 1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+ + PostgreSQL k+m+k+ k+n+m+?+ + + s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+ + + 2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+ + d+a+r+d+?+ + 2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL + b+a+ c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+ + 2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+ + d+a+r+d+?+ + 2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+ + PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+ + + s+w+a+l+a+t+ m+r+b+w+tj b+h+ r+a+h+b+r+y+ + + 3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+ + i+y+r+ a+z+ /usr/local/pgsql/ n+c+b+ k+n+m+?+ + 3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+ + m+y+ k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+ + 3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ + postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate m+y+ + gfy+r+m+?+ + 3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ + postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcSemaphoreCreate m+y+ + gfy+r+m+?+ + 3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+ + r+a+ k+n+t+r+l+ k+n+m+?+ + 3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+ + d+a+d+h+ m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+ + 3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+ + w+g+w+d+ d+a+r+d+?+ + 3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+ + d+a+d+h+ w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+ + gfy+r+m+?+ + 3.9) d+r+ sna+x+h+ pgsql_tmp tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+ + 3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+ + d+a+d+h+ m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+ + restore k+n+m+?+ + 3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+ + + s+w+a+l+a+t+ e+m+l+y+a+t+y+ + + 4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+ + 4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+ + a+w+l+ y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT + b+z+n+m+?+ + 4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+ + s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+ + b+b+y+n+m+?+ + 4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+ + tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+ + 4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+ + p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+ + 4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+ + d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+ + 4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+ + p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+ + t+e+r+y+f+ snd+h+ a+s+t+?+ + 4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+ + y+a+ tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+ + 4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+ + t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+ + 4.10) n+m+a+y+h+ R-tree tcy+s+t+?+ + 4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+ + (Genetic Query Optimizer) + 4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+ + a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+ + k+h+ hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+ + g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+ + a+s+t+f+a+d+h+ k+n+m+?+ + 4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+ + d+h+m+ k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+ + 4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+ + 4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+ + a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+ + 4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+ + r+a+ b+d+a+n+m+?+ + 4.15.3) aMیa+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+ + a+یg+a+d+ snr+a+یtj race b+r+a+ی s+a+یr+ + کa+r+b+r+a+n+ m+ی snw+n+d+?+ + 4.15.4) tcr+a+ a+e+d+a+d+ s+r+یa+l+ی m+r+b+w+tj b+h+ + t+r+a+کn+snh+a+ی abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+ + n+m+ی snw+d+?+ tcr+a+ b+یn+ a+e+d+a+d+ + s+r+یa+l+ی یک f+a+c+l+h+ x+a+l+ی + a+یg+a+d+ m+ی snw+d+?+ + 4.16) OID w+ TID tch+ h+s+t+n+d+?+ + 4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+ + PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+ + 4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc" + m+y+gfy+r+m+?+ + 4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+ + PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+ + 4.20) tcr+a+ d+r+ hkیn+ a+g+r+a+ی e+m+l+یa+t+ + r+w+ی large-objecth+a+ x+tja+ی "invalid large obj + descriptor"b+h+ w+g+w+d+ m+ی aMیd+?+ + 4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+ + z+m+a+n+ g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd + d+a+snt+h+ b+a+snd+?+ + 4.22) tcr+a+ z+y+r+ d+r+x+w+a+s+t+h+a+y+y+ k+h+ a+z+ IN a+s+t+f+a+d+h+ + m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+ + 4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer + join) a+n+g+a+m+ d+h+m+?+ + 4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+ + p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+ + 4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+ tcn+d+ + r+d+y+f+ y+a+ s+t+w+n+ b+a+snd+?+ + 4.26) d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+ + a+tjm+y+n+a+n+ g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+ + k+r+d+?+ + 4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication) + w+g+w+d+ d+a+r+d+?+ + 4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+ + d+a+r+d+?+ + + t+w+s+e+h+ PostgreSQL + + 5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql + a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+ + 5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+ + t+w+a+b+e+ g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+ + m+sna+r+k+t+ d+a+snt+h+ b+a+snm+. + 5.3) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C + b+n+w+y+s+m+ k+h+ x+r+w+g+y+ aMn+ y+k+ tuple (tcn+d+ t+a+y+y+) + b+a+snd+?+ + 5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+ + e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+ t+i+y+y+r+ d+y+d+h+ n+m+y+ + snw+d+?+ + _________________________________________________________________ + + s+w+a+l+a+t+ e+m+w+m+y+ + + 1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ aMn+ r+a+ b+a+y+d+ t+l+f+zH k+r+d+?+ + + PostgreSQL b+h+ c+w+r+t+ Post-Gres-Q-L t+l+f+zH m+y+snw+d+. y+k+ + f+a+y+l+ c+w+t+y+ d+r+ aMd+r+s+ + http://www.postfresql.org/postgresql.mp3 b+r+a+y+ k+s+a+n+y+ k+h+ + m+a+y+l+n+d+ t+l+f+zH c+hky+hk r+a+ b+snn+w+n+d+ w+g+w+d+ d+a+r+d+. + + PostgreSQL a+z+ r+w+y+ s+y+s+t+m+ m+d+y+r+y+t+ p+a+y+gfa+h+ d+a+d+h+ + POSTGRES t+w+s+e+h+ d+a+d+h+ snd+h+ a+s+t+ (h+n+w+z+ h+m+ b+e+ddy+ + m+w+a+q+e+ b+r+a+y+ s+a+d+gfy+ b+h+ aMn+ Postgres gff+t+h+ m+y+snw+d+) + k+h+ y+k+ n+m+w+n+h+ t+hkq+y+q+a+t+y+ a+z+ p+a+y+gfa+h+ d+a+d+h+h+a+y+ + n+s+l+ b+e+d+ a+s+t+. PostgreSQL h+m+a+n+ a+l+gfw+y+ d+a+d+h+ q+w+y+ + w+ a+n+w+a+e+ d+a+d+h+ r+a+ hkf+zH k+r+d+h+ a+s+t+ w+l+y+ z+b+a+n+ + PostQuel r+a+ b+a+ y+k+ z+y+r+m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL + g+a+y+gfz+y+n+ k+r+d+h+ a+s+t+. PostgreSQL m+t+n+ b+a+z+ b+w+d+h+ w+ + m+t+n+ k+a+m+l+ aMn+ d+r+ d+s+t+r+s+ a+s+t+. + + PostgreSQL t+w+s+tj y+k+ t+y+m+ b+r+n+a+m+h+n+w+y+s+ k+h+ h+m+gfy+ + d+r+ gfr+w+h+ p+s+t+ a+l+k+t+r+w+n+y+k+ b+r+n+a+m+h+n+w+y+s+a+n+ + PostgreSQL e+ddw+ h+s+t+n+d+,+ a+n+g+a+m+ m+y+snw+d+. h+m+a+h+n+gf + k+n+n+d+h+ a+c+l+y+ d+r+ hka+l+ hka+ddr+ Marc G. Fournier b+h+ + aMd+r+s+ [email protected] m+y+b+a+snd+. (b+r+a+y+ d+y+d+n+ + n+hkw+h+ m+l+hkq+ snd+n+ b+h+ a+y+n+ t+y+m+ q+s+m+t+ 1.6 r+a+ + b+b+y+n+y+d+). a+y+n+ t+y+m+ d+r+ hka+ddr+ m+s+yHw+l+y+t+ t+m+a+m+ + m+s+a+yHl+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+ b+r+ + e+h+d+h+ d+a+r+d+. a+y+n+ y+k+ p+r+w+zjh+ gfr+w+h+y+ a+s+t+ w+ t+hkt+ + k+n+t+r+l+ h+y+tc snr+k+t+y+ n+y+s+t+. b+r+a+y+ a+tjl+a+e+a+t+ + b+y+snt+r+ d+r+ m+w+r+d+ a+y+n+ t+y+m+ b+h+ aMd+r+s+ + http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html m+r+a+g+e+h+ + k+n+y+d+. + + a+w+l+y+n+ n+s+x+h+ PostgreSQL t+w+s+tj Andrew Yu and Jolly Chen b+h+ + w+g+w+d+ aMm+d+. a+f+r+a+d+ b+s+y+a+r+y+ d+r+ t+w+s+e+h+ w+ r+f+e+ + a+snk+a+l+ w+ a+n+t+q+a+l+ aMn+ snr+k+t+ k+r+d+h+a+n+d+. m+t+n+ + a+c+l+y+ Postgres k+h+ PostgreSQL a+z+ r+w+y+ aMn+ n+w+snt+h+ snd+h+ + a+s+t+,+ t+w+s+tj t+e+d+a+d+ z+y+a+d+y+ d+a+n+sng+w+y+ + k+a+r+snn+a+s+y+ a+r+snd+w+ d+a+n+sng+w+y+ k+a+r+snn+a+s+y+ w+ t+y+m+ + b+r+n+a+m+h+n+w+y+s+y+ k+h+ t+hkt+ n+zHr+ p+r+w+f+s+w+r+ Michael + Stonebrake d+r+ d+a+n+sngfa+h+ b+r+k+l+y+,+k+a+l+y+f+r+n+y+a+ k+a+r+ + m+y+k+r+d+h+a+n+d+ n+w+snt+h+ snd+h+ a+s+t+. + + n+a+m+ a+c+l+y+ n+r+m+ a+f+z+a+r+ d+r+ d+a+n+sngfa+h+ b+r+k+l+y+ + Postgres b+w+d+. d+r+ s+a+l+ 1995 b+e+d+ a+z+ a+dda+f+h+ snd+n+ SQL + n+a+m+ aMn+ b+h+ Postgres95 t+i+y+y+r+ d+a+d+h+ snd+. d+r+ s+a+l+ 1996 + n+a+m+ aMn+ b+h+ PostgreSQL t+i+y+y+r+ d+a+d+h+ snd+. + + 1.2) q+w+a+n+y+n+ k+p+y+ r+a+y+t+ d+r+ m+w+r+d+ PostgreSQL b+h+ tch+ + c+w+r+t+ a+s+t+?+ + + PostgreSQL t+hkt+ q+a+n+w+n+ k+p+y+ r+a+y+t+ z+y+r+ q+r+a+r+ d+a+r+d+: + + PostgreSQL Data Base Management System + + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of California + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose, without fee, and without a written + agreement is hereby granted, provided that the above copyright notice + and this paragraph and the following two paragraphs appear in all + copies. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, + INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND + ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, + UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + + q+a+n+w+n+ b+a+l+a+ l+y+s+a+n+s+ BSD k+h+ y+k+ l+y+s+a+n+s+ + k+l+a+s+y+k+ b+r+a+y+ m+t+n+h+a+y+ b+a+z+ a+s+t+ m+y+b+a+snd+. h+y+tc + m+hkd+w+d+y+t+y+ d+r+ m+w+r+d+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+ m+t+n+ + d+r+ aMn+ d+y+d+h+ n+m+y+snw+d+. m+a+ aMn+ r+a+ d+w+s+t+ d+a+r+y+m+ w+ + h+y+tc q+c+d+y+ b+r+a+y+ t+i+y+y+r+ aMn+ n+d+a+r+y+m+. + + 1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+ + snw+d+?+ + + d+r+ hka+l+t+ k+l+y+ PostgreSQL r+w+y+ h+r+ p+l+t+f+r+m+ (s+k+w+y+) + s+a+z+gfa+r+ b+a+ y+w+n+y+k+s+ a+g+r+a+ m+y+snw+d+. l+y+s+t+ + p+l+t+f+r+m+h+a+y+y+ k+h+ t+a+k+n+w+n+ PostgreSQL r+w+y+ aMn+h+a+ + n+c+b+ w+ t+s+t+ snd+h+ a+s+t+ d+r+q+s+m+t+ d+s+t+w+r+a+l+e+m+l+h+a+y+ + n+c+b+ aMm+d+h+ a+s+t+. + + 1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+ aMn+ + r+a+ a+g+r+a+ k+r+d+?+ + + Client + + m+y+t+w+a+n+ psql, k+t+a+b+x+a+n+h+ libpq w+ s+a+y+r+ w+a+s+tjh+a+ w+ + b+r+n+a+m+h+h+a+y+ k+a+r+b+r+d+y+ r+a+ tjw+r+y+ k+a+m+p+y+l+ k+r+d+ + k+h+ r+w+y+ m+hky+tjh+a+y+ w+y+n+d+w+z+ n+y+z+ a+g+r+a+ snw+n+d+. d+r+ + a+y+n+ hka+l+t+ Client r+w+y+ w+y+n+d+w+z+ a+g+r+a+ m+y+snw+d+ w+ a+z+ + tjr+b+q+ snb+k+h+ w+ p+r+w+t+k+l+ TCP/IP b+a+ y+k+ s+r+w+r+ k+h+ + r+w+y+ y+k+ p+l+t+f+r+m+ l+y+n+w+k+s+ d+r+ hka+l+ a+g+r+a+s+t+ + a+r+t+b+a+tj b+r+q+r+a+r+ m+y+k+n+d+.y+k+ f+a+y+l+ win32.mak + h+m+r+a+h+ b+a+ k+d+h+a+y+ PostgreSQL w+g+w+d+ d+a+r+d+ k+h+ b+r+a+y+ + k+a+m+p+y+l+ k+r+d+n+ k+t+a+b+x+a+n+h+ libpq w+ b+r+n+a+m+h+ psql m+y+ + b+a+snd+. PostgreSQL h+m+tcn+y+n+ a+m+k+a+n+ a+r+t+b+a+tj b+h+ + c+w+r+t+ ODBC r+a+ n+y+z+ d+a+r+d+. + + Server + + b+a+ a+s+t+f+a+d+h+ a+z+ Cygwin w+ k+t+a+b+x+a+n+h+ Cygnus m+y+ + t+w+a+n+ p+a+y+gfa+h+ d+a+d+h+ r+a+ r+w+y+ w+y+n+d+w+z+ NT w+ y+a+ + Win2K a+g+r+a+ k+r+d+.b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ + f+a+y+l+ pgsql/doc/FAQ_MSWIN r+a+ k+h+ b+h+m+r+a+h+ t+w+z+b+e+h+a+y+ + PostgreSQL aMm+d+h+ a+s+t+ b+b+y+n+y+d+ w+ y+a+ a+y+n+k+h+ b+h+ a+y+n+ + c+f+hkh+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN + m+r+a+g+e+h+ k+n+y+d+. + + d+r+ hka+l+ hka+ddr+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ PostgreSQL b+h+ + r+w+y+ s+k+w+h+a+y+ Win NT/2000/XP d+r+ g+r+y+a+n+ a+s+t+. b+r+a+y+ + d+y+d+n+ w+dde+y+t+ a+y+n+ p+r+w+zjh+ b+h+ s+a+y+t+h+a+y+ + http://momjian.postgresql.org/main/writings/pgsql/win32.htm w+ + http://techdocs.postgresql.org/guides/Windows m+r+a+g+e+h+ k+n+y+d+. + + h+m+tcn+y+n+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ b+r+ r+w+y+ Novell Netware + 6 n+y+z+ d+r+ hka+l+ a+n+g+a+m+ a+s+t+ k+h+ d+r+ s+a+y+t+ + http://forge.novell.com m+y+t+w+a+n+y+d+ a+tjl+a+e+a+t+ b+y+snt+r+ + r+a+ b+b+y+n+y+d+. + + 1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+ + + PostgreSQL r+a+ a+z+ s+a+y+t+ a+c+l+y+ aMn+ + ftp://ftp.PostgreSQL.org/pub m+y+t+w+a+n+y+d+ b+gfy+r+y+d+. d+r+ + c+f+hkh+ a+c+l+y+ s+a+y+t+ l+y+s+t+ s+a+y+r+ aMd+r+s+h+a+y+y+ k+h+ + m+y+t+w+a+n+y+d+ PostgreSQL r+a+ a+z+ aMn+h+a+ b+gfy+r+y+d+ aMm+d+h+ + a+s+t+. + + 1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+ + + gfr+w+h+ p+s+t+y+ a+c+l+y+ [email protected] m+y+b+a+snd+. + a+y+n+ gfr+w+h+ b+r+a+y+ b+hktk d+r+ m+w+r+d+ m+w+ddw+e+a+t+ + m+x+t+l+f+ d+r+ z+m+y+n+h+ PostgreSQL a+s+t+. b+r+a+y+ e+ddw+ snd+n+ + d+r+ a+y+n+ gfr+w+h+ p+s+t+y+ y+k+ n+a+m+h+ a+l+k+t+r+w+n+y+k+y+ b+h+ + aMd+r+s+ gfr+w+h+ b+a+ m+hkt+w+y+a+t+ی k+h+ d+r+ a+d+a+m+h+ + aMm+d+h+ a+s+t+ a+r+s+a+l+ k+n+y+d+. d+r+ q+s+m+t+ Subject tcy+z+y+ + n+n+w+y+s+y+d+. + subscribe end -آدرس گروه: [email protected] -همچنين يك گروه پستي هم به صورت ارسال چكيده پيامها وجود دارد. براي عضو شدن در اين -گروه يك نامه با محتويات زير به این آدرس ارسال كنيد. + + aMd+r+s+ gfr+w+h+: [email protected] + + h+m+tcn+y+n+ y+k+ gfr+w+h+ p+s+t+y+ h+m+ b+h+ c+w+r+t+ a+r+s+a+l+ + tck+y+d+h+ p+y+a+m+h+a+ w+g+w+d+ d+a+r+d+. b+r+a+y+ e+ddw+ snd+n+ d+r+ + a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+ m+hkt+w+y+a+t+ z+y+r+ b+h+ + a+یn+ aMd+r+s+ a+r+s+a+l+ k+n+y+d+. + subscribe end -در اين گروه هر موقع حجم نامهها به 30 كيلوبايت رسيد براي تمام اعضاء ارسال -ميشود. -گروه پستي بررسي اِشكالات هم وجود دارد. براي عضو شدن در اين گروه يك نامه با -محتويات زير به [email protected] ارسال كنيد. + + d+r+ a+y+n+ gfr+w+h+ h+r+ m+w+q+e+ hkg+m+ n+a+m+h+h+a+ b+h+ 30 + k+y+l+w+b+a+y+t+ r+s+y+d+ b+r+a+y+ t+m+a+m+ a+e+dda+H' a+r+s+a+l+ m+y+ + snw+d+. + + gfr+w+h+ p+s+t+y+ b+r+r+s+y+ a+1+snk+a+l+a+t+ h+m+ w+g+w+d+ d+a+r+d+. + b+r+a+y+ e+ddw+ snd+n+ d+r+ a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+ + m+hkt+w+y+a+t+ z+y+r+ b+h+ [email protected] + a+r+s+a+l+ k+n+y+d+. + subscribe end -گروه پستي مخصوص توسعه دهندگان (برنامهنويسان) نيز وجوددارد. براي عضويت در اين -گروه يك نامه به آدرس زير با محتويات مشخص شده ارسال كنيد. + + gfr+w+h+ p+s+t+y+ m+x+c+w+c+ t+w+s+e+h+ d+h+n+d+gfa+n+ (b+r+n+a+m+h+ + n+w+y+s+a+n+) n+y+z+ w+g+w+d+d+a+r+d+. b+r+a+y+ e+ddw+y+t+ d+r+ a+y+n+ + gfr+w+h+ y+k+ n+a+m+h+ b+h+ aMd+r+s+ z+y+r+ b+a+ m+hkt+w+y+a+t+ + m+snx+c+ snd+h+ a+r+s+a+l+ k+n+y+d+. + subscribe end -گروههاي پستي ديگري نيز در زمينه PostgreSQL وجود دارد كه ميتوانيد در سايت -http://www.postgresql.org ببينيد. -همچنين يك كانال IRC روي Freenode و EFNet بنام PostgreSQL# وجود دارد. شما -ميتوانيد از فرمان يونيكسي irc -c '#PostgreSQL' "$USER" irc.phoenix.net. يا irc --c '#PostgreSQL' "$USER" irc.freenode.net استفاده كنيد. -ليست شركتهايي كه از طريق آنها ميتوانيد خدمات پشتيباني تجاري در زمينه PostgreSQL -دريافت كنيد در اين آدرس http://techdocs.postgresql.org/companies.php موجود است. -1.7) آخرين نسخه اعلام شده چيست؟ -آخرين نسخه PostgreSQL كه وجود دارد 7.4.3 است. -هدف ما آن است كه هر 6 ماه تا 8 ماه يك نسخه جديد ارائه شود. -1.8) چه مستندات و راهنمائيهايي وجود دارند؟ -چندين كتابچه و صفحات راهنما و مثالهاي كوچك همراه با متن اصلي PostgreSQL در شاخه -doc وجود دارد. براي ديدن صفحات راهنما ميتوانيد به سايت -http://www.PostgreSQL.org/docs نيز مراجعه نماييد. -دو كتاب در زمينه PostgreSQL در آدرسهاي -http://www.PostgreSQL.org/docs/awbook.htm و http://www.commandprompt.com/ppbook -وجود دارد. ليستي از كتابهايي كه قابل خريد است در آدرس -http://techdocs.PostgreSQL.org/techdocs/bookreviews.php وجود دارد. همچنين ليستي -از مقالات فني در مورد PostgreSQL در آدرس http://techdocs.PostgreSQL.org وجود -دارد. -برنامه psql يك دستور d\ دارد كه اطلاعاتي در مورد انواع دادههاي قابل تعريف و -عملگرها و توابع و ... به ما نشان ميدهد. در سايت اصلي ما اطلاعات بيشتري را -ميتوانيد پيدا كنيد. -1.9) چگونه ميتوانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده -وجود ندارد مطلع شوم؟ -PostgreSQL يك زير مجموعه پيشرفته از SQL-92 را پشتيباني ميكند. در ليست TODO -اِشكالات شناخته شده يا امكاناتي كه وجود ندارد و يا برنامههاي آينده آمده است. -1.10) چگونه ميتوانم زبان SQL را ياد بگيرم؟ -كتاب PostgreSQL در آدرس SQL http://www.PostgreSQL.org/docs/awbook.html را آموزش -ميدهد. همچنين يك كتاب در آدرس http://www.commandprompt.com/ppbook وجود دارد. يك -راهنماي خيلي خوب هم در سايتهاي -http://www.intermedia.net/support/sql/sqltut.shtm و -http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM و -http://sqlcourse.com در مورد SQL وجود دارد. -كتاب ديگري كه ميتوان براي يادگيري SQL از آن استفاده كرد كتاب "SQL را در 21 روز -ياد بگيريد، ويرايش دوم" در سايت http://members.tripod.com/er4ebus/sql/index.htm -ميباشد. -تعداد زيادي از كاربران كتاب The Practical SQL را ترجيح ميدهند. كتاب ديگر The -Complete Refrence SQL انتشارات McGraw-Hill ميباشد. -1.11) آيا PostgreSQL مشكل Y2K دارد يا خير؟ -خير،PostgreSQL با تاريخهاي قبل و بعد از 2000 مشكلي ندارد. -1.12) چگونه ميتوانم به تيم برنامه نويس PostgreSQL ملحق شوم؟ -ابتدا،آخرين سورس را دونلود كرده و مستندات مربوط به برنامهنويسي PostgreSQL را -در سايت مطالعه كنيد. سپس به گروههاي پستي pgsql-patches و pgsql-hackers عضو -شويد. در مرحله آخر وصلههاي با كيفيت بالا را به pgsql-patches ارسال كنيد. -تعداد زيادي از برنامهنويسان وجود دارند كه امتياز انجام تغييرات در cvs را -دارند. هر كدام از آنها تعداد زيادي وصله با كيفيت بالا به گروه ارسال كردهاند -كه اعتماد گردانندگان PostgreSQL را به دست آوردهاند. -1.13) چگونه ميتوانم يك اِشكال را به گروه برنامه نويس اعلام كنم؟ -لطفاً صفحه مربوط به اِشكالات PostgreSQL را در سايت -http://www.PostgreSQL.org/bugs/bugs.php مشاهده كنيد. در اين سايت نحوه گزارش و -ارسال يك اشكال توضيح داده شده است. - همچنين براي ديدن نسخههاي جديدتر PostgreSQL و يا وجود يك وصله جديد از سايت -ftp://ftp.PostgreSQL.org/pub بازديد كنيد. -1.14) وضعيت PostgreSQL در مقايسه با ساير DBMSها به چه صورت است؟ -راههاي مختلفي براي اندازهگيري و مقايسه نرمافزارها وجود دارد كه عبارتند از -امكانات، كارايي، قابليت اعتماد، پشتيباني و قيمت - امكانات - PostgreSQL بيشتر امكانات موجود در سيستمهاي پايگاه داده تجاري بزرگ نظير - transactions, subselets, triggers, views, foreign key referential integrity - و sophisticated locking را دارد. در PostgreSQL امكاناتي وجود دارد كه - پايگاههاي داده ديگر آن را ندارند نظير user-defined typesو Inheritanceو - rulesو multi-version concurrency control - - كارايي - كارايي PostgreSQL در حد بقيه سيستمهاي تجاري و متن باز است. در بعضي - موارد سريعتر و در بعضي موارد از آنها كندتر است. در مقايسه با MySQL براي - كاربران بيشتر و درخواستهاي پيچيده و بار زياد خواندن/نوشتن سريعتر است. در - درخواستهاي ساده SELECT از MySQL كندتر است. البته MySQL خيلي از امكانات - PostgreSQL كه در بالا به آن اشاره شد را ندارد. هدف اصلي ما امكانات و قابليت - اعتماد بالاست در ضمن آنكه تلاش ميكنيم تا كارايي آن نيز بهبود يابد. در آدرس - http://openacs.org/philosophy/why-not-mysql.html يك مقايسه جالب بين MySQL و - PostgreSQL وجود دارد. از طرف ديگر MySQL يك شركت است كه محصول خود را به صورت - متن باز ارائه ميكند ولي براي نرمافزار غير متن باز خود احتياج به ليسانس تجاري - دارد بر خلاف PostgreSQL كه يك گروه كاملاً متن باز هستند. - - قابليت اطمينان - ما فكر ميكنيم كه يك سيستم پايگاه دادهاي كه مطمئن نباشد ارزشي ندارد. ما - تمام تلاشمان را براي ارائه كدهاي پايداري كه به خوبي تست شده باشند و كمترين - اِشكالات را داشته باشند ميكنيم. هر نسخه جديدي كه ارائه ميشود حداقل يك ماه - را در مرحله تست بتا ميگذراند. ما بر اين باور هستيم كه قابليت اطمينان - PostgreSQL در مقايسه با ساير سيستمهاي پايگاه داده قابل توجه است و - نسخههايي كه تاكنون ارائه شده است نشان ميدهد كه ما توانايي ارائه يك سيستم - قوي و محكم و مطمئن را كه آماده بهرهبرداري است داريم. - پشتيباني - گروههاي پستي ما امكان ارتباط و تماس به گروه بزرگي از برنامه نويسان و كاربران - را ميدهد كه ميتوانند در حل مشكلات به ديگران كمك كنند. دسترسي مستقيم به - برنامهنويسان و گروههاي كاربران و راهنماها و كداصلي باعث ميشود كه پشتيباني - PostgreSQL نسبت به ساير پايگاههاي داده به نحو بهتري انجام شود. همچنين امكان - ارائه خدمات پشتيباني به صورت تجاري نيز وجود دارد. براي ديدن اطلاعات بيشتر به - FAQ section 1.6 مراجعه كنيد. - قيمت - هم براي استفاده تجاري و هم غير تجاري هيچ هزينهاي نبايد پرداخت شود. هيچ - محدوديتي براي انجام تغييرات در PostgreSQL توسط استفاده كنندگان وجود ندارد به - جز مواردي كه در ليسانس BSD به آن اشاره شده است. -1.15) من چگونه ميتوانم از نظر مالي به PostgreSQL كمك كنم؟ -PostgreSQL داراي يك ساختار تشكيلاتي درجه اول است كه آن را مديون Marc Fournier -است كه اين ساختار را ايجاد كرده است. -كيفيت يك ساختار براي يك پروژه متن باز بسيار اهميت دارد. يك ساختار خوب ميتواند -مانع از حوادثي شود كه در حركت روبهجلوي پروژه خللي وارد ميكنند. -البته اين ساختار تشكيلاتي ارزان نيست. هزينههاي ثابت ماهانه و روزمره براي -نگهداري و حفظ اين ساختار مورد نياز است. اگر شما يا شركت شما مايل است كه از نظر -مالي به اين حركت كمك كند لطفاً به سايت http://store.pgsql.com/shopping مراجعه -كرده و كمك خود را اهدا كنيد. -هر چند در صفحه اصلي عبارت PostgreSQL,Inc ذكر شده است ولي مشاركت عمدتاً براي -پشتيباني از پروژه PostgreSQL مي باشد و نه براي يك شركت مشخص. اگر ترجيح ميدهيد -ميتوانيد يك چك به آدرس مشخص شده ارسال كنيد. -اگر يك استفاده موفق از PostgreSQL سراغ داريد لطفاً آن را به سايت -http://advocacy.postgresql.org گزارش دهيد. - - -سوالات مربوط به استفاده از پايگاه داده -2.1) آيا هيچ درايور ODBC براي PostgreSQL وجود دارد؟ -دو درايور ODBC بنامهاي psqlODBC و OpenLink براي PostgreSQL وجود دارد. -براي گرفتن psqlODBC به سايت -http://gborg.postgresql.org/project/psqlodbc/projdisplay.php مراجعه كنيد. -OpenLlink را از اين سايت http://www.openlinksw.com ميتوانيد بگيريد. اين درايور -با نرمافزارهاي مختلف ODBC كار ميكند بنابراين شما قادر خواهيد بود با استفاده از -OpenLink روي اكثر سكوهايي كه نرمافزارODBCدارند بدون مشكل به PostgreSQL نيز -متصل شويد. -اين محصول به كساني كه احتياج به خدمات پشتيباني تجاري دارند فروخته ميشود. ولي -نسخه آزاد اين نرمافزار هميشه در درسترس ميباشد. براي كسب اطلاعات بيشتر سوالات -خود را به آدرس [email protected] ارسال نماييد. -2.2) چه ابزارهايي براي استفاده از PostgreSQL با صفحات وب وجود دارد؟ -در سايت http://www.webreview.com براي استفاده از PostgreSQL در صفحات وب -راهنماييهاي خوبي وجود دارد. -براي تركيب و استفاده در صفحات وب زبان PHP يك واسط بسيار مناسب است. اطلاعات -بيشتر راجع به PHPدر سايت http://www.php.net وجود دارد. -مثالهايي نيز با استفاده از Perl و CGI.pm و mod_perl وجود دارد. -2.3) آيا PostgreSQL يك واسط كاربري گرافيكي دارد؟ -چند نرم افزار گرافيكي براي PostgreSQL وجود دارد كه شامل pgAccess درسايت -http://www.pgaccess.org و pgAdmin III در سايت http://www.pgadmin.org و RHDB -Admin در سايت http://sources.redhat.com/rhdb و Rekall در سايت -http://www.thekompany.com/products/rekall ميباشد. همچنين يك phpPgAdmin هم در -سايت http://phppgadmin.sourceforge.net وجود دارد كه يك واسط وبي براي مديريت -PostgreSQL ميباشد. -براي ديدن اطلاعات بيشتر راجع به نرمافزارهاي گرافيكي براي PostgreSQL به آدرس -http://techdocs.postgresql.org/guides/GUITools مراجعه كنيد. -2.4) با چه زبانهاي برنامهنويسي ميتوان با PostgreSQL ارتباط برقرار كرد؟ -بيشتر زبانهاي برنامهنويسي ميتوانند با PostgreSQL ارتباط برقرار كنند. به همراه - سورس PostgreSQL تعدادي از واسطهاي مورد نياز براي ارتباط با پايگاه داده از طريق -زبانهاي مختلف آمده است كه در زير ليست آنها را مشاهده ميكنيد. - C (libpq) - Embedded C (ecpg) - Java (jdbc) - Python (PyGreSQL) - TCL (libpgtcl) -واسطهاي ديگر در سايت http://gborg.postgresql.org در قسمت Drivers/Interfaces وجود -دارد. - - - -سوالات مديريتي -3.1) چگونه ميتوانم PostgreSQL را در شاخهاي غير از /usr/local/pgsql/ نصب كنم؟ -موقع اجراي دستور configure از گزينه prefix-- استفاده كنيد. -3.2) چرا موقعي كه من برنامه postmaster را اجرا مي كنم پيام Bad system call و -يا core dump ميگيرم؟ -به دلايل مختلف ممكن است اين اتفاق بيفتد. اما در قدم اول شما مطمئن شويد كه كه -امكانات اضافه System V در كرنل شما نصب شده باشد. PostgreSQL براي اجرا شدن نياز -به استفاده از امكانات حافظه مشترك و سمافورها دارد. -3.3) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي -IpcMemoryCreate ميگيرم؟ -احتمالاً قسمت ايجاد حافظه مشترك در كرنل به درستي تنظيم نشده است و يا اينكه بايد -فضاي حافظه اشتراكي در كرنل را زياد كرد. ميزان دقيق حافظه مشترك مورد نياز بسته به -معماري و نحوه استفاده از بافرها توسط برنامه postmaster دارد. براي بيشتر سيستمها -كه با تنظيمات پيشفرض كار ميكنند مقدار اين حافظه حدود 1 مگابايت است. براي ديدن -اطلاعات بيشتر راجع به حافظه مشترك و سمافور به PostgreSQL Administrator's Guide -مراجعه كنيد. -3.4) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي -IpcSemaphoreCreate ميگيرم؟ -اگر پيغام خطا (pcSemaphoreCreate: semget failed (No space left on device باشد -به اين معني است كه تعداد سمافورهاي تنظيم شده در كرنل كافي نيست. PostgreSQL براي -هر فرايندي كه در backend اجرا ميشود به يك سمافور نياز دارد. يك راه حل موقت براي -اين مسئله آن است كه postmaster را با اعمال محدوديت روي تعداد فرايندهايي كه -ميتواند ايجاد كند اجرا كنيم. براي اينكار از گزينه N- و يك عدد كمتر از 32 -استفاده كنيد. راه حل دائمي اين مشكل آن است كه پارامترهاي SEMMNS, SEMMNI كرنل را -افزايش دهيم. -در زمان دسترسي خيلي زياد به پايگاه داده، سمافورهاي نامعتبر ميتوانند باعث -crash كردن سيستم شوند. -اگر پيغام خطا چيز ديگري باشد احتمالاً به دليل آن است كه كرنل از سمافورها -پشتيباني نميكند. براي ديدن اطلاعات بيشتر راهنماي مديريتي PostgreSQL را مطالعه -كنيد. -3.5) چگونه ميتوانم اتصالات ساير ماشينها را كنترل كنم؟ -به صورت پيش فرض فقط از ماشيني كه PostgreSQL روي آن در حال اجراست ميتوان با -استفاده از سوكتهاي يونيكسي به آن متصل شد. ساير ماشينها قادر نيستند به -PostgreSQL متصل شوند مگر آنكه گزينه tcp_sockets در فايل postgresql.conf فعال شده -و همچنين با اصلاح فايل PGDATA/ph_hba.conf هويتشناسي مبتني بر ميزبان نيز فعال -شود. با اين كار ميتوان اتصالات TCP/IP به PostgreSQL ايجاد كرد. -3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟ -به طور حتم استفاده از انديسها باعث بالا رفتن سرعت پاسخگويي به درخواستها خواهد -شد. دستور EXPLAIN ANALYZE به شما امكان ديدن نحوه پردازش يك دستور توسط PostgreSQL -را ميدهد. -اگر شما تعداد زيادي INSERT داريد سعي كنيد آنها را با قرار دادن در يك فايل با -دستور COPY اجرا كنيد. اين دستور به مراتب از INSERT سريعتر است. حتيالامكان سعي -كنيد از تراكنشها استفاده نكنيد. تراكنشها مجموعه دستوراتي هستند كه بيند BEGIN و -COMMIT ميآيند. اگر يك دستور به صورت عادي اجرا شود PostgreSQL خود آن دستور را -به صورت يك تراكنش مستقل نگاه كرده و اجرا ميكند. موقعی كه تغييرات زيادي در -پايگاه داده انجام ميشود انديسهاي قبلي را حذف و مجدداً ايجاد كنيد. -استفاده از گزينه o -F- در فرمان postmaster باعث غير فعال كردن ()fsync ميشود. -اين دستور بعد از هر تراكنش اطلاعات را روي هاردديسك منتقل ميكند. -براي افزايش تعداد بافرهاي حافظه اشتراكي از گزينه B- به همراه فرمان postmaster -استفاده كنيد. توجه كنيد كه اگر اين عدد خيلي بزرگ باشد ممكن است postmaster اصلاً -اجرا نشود. هر بافر 8 كيلو بايت حافظه نياز دارد و تعداد بافرها به طور پيش فرض 64 -است. -همچنين ميتوان با گزينه S- ميزان حافظهاي كه براي مرتبسازيهاي موقت توسط -PostgreSQL استفاده ميشود را افزايش داد. مقدار پيش فرض 512 كيلو بايت است. -استفاده از دستور CLUSTER نيز براي بالا بردن كارايي موثر ا ست. دستور راهنماي -CLUSTER اطلاعات بيشتري در اين زمينه به شما ميدهد. -3.7) چه امكاناتي براي پيدا كردن اشكال وجود دارد؟ -PostgerSQL امكانات مختلفي براي گزارش دادن وضعيت خود دارد كه براي اشكال زدايي -ميتوان از آنها استفاده كرد. -با استفاده از گزينه enable-assert-- تعداد زيادي ()assert براي مونيتور كردن و -توقف برنامه در صورت بروز خطاهاي ناخواسته فعال ميشود. -هم Postmaster و هم postgres گزينههاي زيادي براي اشكال زدايي دارند. موقعي كه -postmaster را اجرا ميكنيد خروجي استاندارد و خطا را سمت فايل log ارسال كنيد. + gfr+w+h+h+a+y+ p+s+t+y+ d+y+gfr+y+ n+y+z+ d+r+ z+m+y+n+h+ PostgreSQL + w+g+w+d+ d+a+r+d+ k+h+ m+y+t+w+a+n+y+d+ d+r+ s+a+y+t+ + http://www.postgresql.org b+b+y+n+y+d+. + + h+m+tcn+y+n+ y+k+ k+a+n+a+l+ IRC r+w+y+ Freenode w+ EFNet b+n+a+m+ + PostgreSQL# w+g+w+d+ d+a+r+d+. snm+a+ m+y+t+w+a+n+y+d+ a+z+ f+r+m+a+n+ + y+w+n+y+k+s+y+ irc -c '#PostgreSQL' "$USER" irc.phoenix.net. y+a+ irc + -c '#PostgreSQL' "$USER" irc.freenode.net a+s+t+f+a+d+h+ k+n+y+d+. + + l+y+s+t+ snr+k+t+h+a+y+y+ k+h+ a+z+ tjr+y+q+ aMn+h+a+ m+y+t+w+a+n+y+d+ + x+d+m+a+t+ p+snt+y+b+a+n+y+ t+g+a+r+y+ d+r+ z+m+y+n+h+ PostgreSQL + d+r+y+a+f+t+ k+n+y+d+ d+r+ a+y+n+ aMd+r+s+ + http://techdocs.postgresql.org/companies.php m+w+g+w+d+ a+s+t+. + + 1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+ + + aMx+r+y+n+ n+s+x+h+ PostgreSQL k+h+ w+g+w+d+ d+a+r+d+ 7.4.3 a+s+t+. + + h+d+f+ m+a+ aMn+ a+s+t+ k+h+ h+r+ 6 m+a+h+ t+a+ 8 m+a+h+ y+k+ n+s+x+h+ + g+d+y+d+ a+r+a+yHh+ snw+d+. + + 1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+ d+a+r+n+d+?+ + + tcn+d+y+n+ k+t+a+b+tch+ w+ c+f+hka+t+ r+a+h+n+m+a+ w+ m+tka+l+h+a+y+ + k+w+tck+ h+m+r+a+h+ b+a+ m+t+n+ a+c+l+y+ PostgreSQL d+r+ sna+x+h+ doc + w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+ c+f+hka+t+ r+a+h+n+m+a+ m+y+ + t+w+a+n+y+d+ b+h+ s+a+y+t+ http://www.PostgreSQL.org/docs n+y+z+ + m+r+a+g+e+h+ n+m+a+y+y+d+. + + d+w+ k+t+a+b+ d+r+ z+m+y+n+h+ PostgreSQL d+r+ aMd+r+s+h+a+y+ + http://www.PostgreSQL.org/docs/awbook.htm w+ + http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. l+y+s+t+y+ a+z+ + k+t+a+b+h+a+y+y+ k+h+ q+a+b+l+ x+r+y+d+ a+s+t+ d+r+ aMd+r+s+ + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php w+g+w+d+ + d+a+r+d+. h+m+tcn+y+n+ l+y+s+t+y+ a+z+ m+q+a+l+a+t+ f+n+y+ d+r+ + m+w+r+d+ PostgreSQL d+r+ aMd+r+s+ http://techdocs.PostgreSQL.org + w+g+w+d+ d+a+r+d+. + + b+r+n+a+m+h+ psql y+k+ d+s+t+w+r+ d\ d+a+r+d+ k+h+ a+tjl+a+e+a+t+y+ + d+r+ m+w+r+d+ a+n+w+a+e+ d+a+d+h+h+a+y+ q+a+b+l+ t+e+r+y+f+ w+ + e+m+l+gfr+h+a+ w+ t+w+a+b+e+ w+ ... b+h+ m+a+ n+sna+n+ m+y+d+h+d+. + d+r+ s+a+y+t+ a+c+l+y+ m+a+ a+tjl+a+e+a+t+ b+y+snt+r+y+ r+a+ m+y+ + t+w+a+n+y+d+ p+y+d+a+ k+n+y+d+. + + 1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+ w+ + y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+ w+g+w+d+ + n+d+a+r+d+ m+tjl+e+ snw+m+?+ + + PostgreSQL y+k+ z+y+r+ m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL-92 r+a+ + p+snt+y+b+a+n+y+ m+y+k+n+d+. d+r+ l+y+s+t+ TODO a+1+snk+a+l+a+t+ + snn+a+x+t+h+ snd+h+ y+a+ a+m+k+a+n+a+t+y+ k+h+ w+g+w+d+ n+d+a+r+d+ w+ + y+a+ b+r+n+a+m+h+h+a+y+ aMy+n+d+h+ aMm+d+h+ a+s+t+. + + 1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+ + + k+t+a+b+ PostgreSQL d+r+ aMd+r+s+ SQL + http://www.PostgreSQL.org/docs/awbook.html r+a+ aMm+w+z+sn m+y+d+h+d+. + h+m+tcn+y+n+ y+k+ k+t+a+b+ d+r+ aMd+r+s+ + http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. y+k+ + r+a+h+n+m+a+y+ x+y+l+y+ x+w+b+ h+m+ d+r+ s+a+y+t+h+a+y+ + http://www.intermedia.net/support/sql/sqltut.shtm w+ + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM + w+ http://sqlcourse.com d+r+ m+w+r+d+ SQL w+g+w+d+ d+a+r+d+. + + k+t+a+b+ d+y+gfr+y+ k+h+ m+y+t+w+a+n+ b+r+a+y+ y+a+d+gfy+r+y+ SQL a+z+ + aMn+ a+s+t+f+a+d+h+ k+r+d+ k+t+a+b+ "SQL r+a+ d+r+ 21 r+w+z+ y+a+d+ + b+gfy+r+y+d+,+ w+y+r+a+y+sn d+w+m+" d+r+ s+a+y+t+ + http://members.tripod.com/er4ebus/sql/index.htm m+y+b+a+snd+. + + t+e+d+a+d+ z+y+a+d+y+ a+z+ k+a+r+b+r+a+n+ k+t+a+b+ The Practical SQL + r+a+ t+r+g+y+hk m+y+d+h+n+d+. k+t+a+b+ d+y+gfr+ The Complete Refrence + SQL a+n+t+sna+r+a+t+ McGraw-Hill m+y+b+a+snd+. + + 1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+ + + x+y+r+,+PostgreSQL b+a+ t+a+r+y+x+h+a+y+ q+b+l+ w+ b+e+d+ a+z+ 2000 + m+snk+l+y+ n+d+a+r+d+. + + 1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+ + PostgreSQL m+l+hkq+ snw+m+?+ + + a+b+t+d+a+,+aMx+r+y+n+ s+w+r+s+ r+a+ d+w+n+l+w+d+ k+r+d+h+ w+ + m+s+t+n+d+a+t+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+ + d+r+ s+a+y+t+ m+tja+l+e+h+ k+n+y+d+. s+p+s+ b+h+ gfr+w+h+h+a+y+ + p+s+t+y+ pgsql-patches w+ pgsql-hackers e+ddw+ snw+y+d+. d+r+ + m+r+hkl+h+ aMx+r+ w+c+l+h+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ r+a+ b+h+ + pgsql-patches a+r+s+a+l+ k+n+y+d+. + + t+e+d+a+d+ z+y+a+d+y+ a+z+ b+r+n+a+m+h+n+w+y+s+a+n+ w+g+w+d+ + d+a+r+n+d+ k+h+ a+m+t+y+a+z+ a+n+g+a+m+ t+i+y+y+r+a+t+ d+r+ cvs r+a+ + d+a+r+n+d+. h+r+ k+d+a+m+ a+z+ aMn+h+a+ t+e+d+a+d+ z+y+a+d+y+ w+c+l+h+ + b+a+ k+y+f+y+t+ b+a+l+a+ b+h+ gfr+w+h+ a+r+s+a+l+ k+r+d+h+a+n+d+ k+h+ + a+e+t+m+a+d+ gfr+d+a+n+n+d+gfa+n+ PostgreSQL r+a+ b+h+ d+s+t+ + aMw+r+d+h+a+n+d+. + + 1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+1+snk+a+l+ r+a+ b+h+ gfr+w+h+ + b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+ + + l+tjf+a+:+ c+f+hkh+ m+r+b+w+tj b+h+ a+1+snk+a+l+a+t+ PostgreSQL r+a+ + d+r+ s+a+y+t+ http://www.PostgreSQL.org/bugs/bugs.php m+sna+h+d+h+ + k+n+y+d+. d+r+ a+y+n+ s+a+y+t+ n+hkw+h+ gfz+a+r+sn w+ a+r+s+a+l+ y+k+ + a+snk+a+l+ t+w+ddy+hk d+a+d+h+ snd+h+ a+s+t+. + + h+m+tcn+y+n+ b+r+a+y+ d+y+d+n+ n+s+x+h+h+a+y+ g+d+y+d+t+r+ PostgreSQL + w+ y+a+ w+g+w+d+ y+k+ w+c+l+h+ g+d+y+d+ a+z+ s+a+y+t+ + ftp://ftp.PostgreSQL.org/pub b+a+z+d+y+d+ k+n+y+d+. + + 1.14) w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+ b+h+ + tch+ c+w+r+t+ a+s+t+?+ + + r+a+h+h+a+y+ m+x+t+l+f+y+ b+r+a+y+ a+n+d+a+z+h+gfy+r+y+ w+ + m+q+a+y+s+h+ n+r+m+a+f+z+a+r+h+a+ w+g+w+d+ d+a+r+d+ k+h+ + e+b+a+r+t+n+d+ a+z+ a+m+k+a+n+a+t+,+ k+a+r+a+y+y+,+ q+a+b+l+y+t+ + a+e+t+m+a+d+,+ p+snt+y+b+a+n+y+ w+ q+y+m+t+ + + a+m+k+a+n+a+t+ + PostgreSQL b+y+snt+r+ a+m+k+a+n+a+t+ m+w+g+w+d+ d+r+ + s+y+s+t+m+h+a+y+ p+a+y+gfa+h+ d+a+d+h+ t+g+a+r+y+ + b+z+r+gf n+zHy+r+ transactions, subselets, triggers, + views, foreign key referential integrity w+ sophisticated + locking r+a+ d+a+r+d+. d+r+ PostgreSQL a+m+k+a+n+a+t+y+ + w+g+w+d+ d+a+r+d+ k+h+ p+a+y+gfa+h+h+a+y+ d+a+d+h+ + d+y+gfr+ aMn+ r+a+ n+d+a+r+n+d+ n+zHy+r+ user-defined + typesw+ Inheritancew+ rulesw+ multi-version concurrency + control + + + + k+a+r+a+y+y+ + + k+a+r+a+y+y+ PostgreSQL d+r+ hkd+ b+q+y+h+ s+y+s+t+m+ + h+a+y+ t+g+a+r+y+ w+ m+t+n+ b+a+z+ a+s+t+. d+r+ b+e+ddy+ + m+w+a+r+d+ s+r+y+e+t+r+ w+ d+r+ b+e+ddy+ m+w+a+r+d+ a+z+ + aMn+h+a+ k+n+d+t+r+ a+s+t+. d+r+ m+q+a+y+s+h+ b+a+ MySQL + b+r+a+y+ k+a+r+b+r+a+n+ b+y+snt+r+ w+ d+r+x+w+a+s+t+h+a+y+ + p+y+tcy+d+h+ w+ b+a+r+ z+y+a+d+ x+w+a+n+d+n+/n+w+snt+n+ + s+r+y+e+t+r+ a+s+t+. d+r+ d+r+x+w+a+s+t+h+a+y+ s+a+d+h+ SELECT + a+z+ MySQL k+n+d+t+r+ a+s+t+. a+l+b+t+h+ MySQL x+y+l+y+ a+z+ + a+m+k+a+n+a+t+ PostgreSQL k+h+ d+r+ b+a+l+a+ b+h+ aMn+ + a+sna+r+h+ snd+ r+a+ n+d+a+r+d+. h+d+f+ a+c+l+y+ m+a+ + a+m+k+a+n+a+t+ w+ q+a+b+l+y+t+ a+e+t+m+a+d+ b+a+l+a+s+t+ d+r+ + ddm+n+ aMn+k+h+ t+l+a+sn m+y+k+n+y+m+ t+a+ k+a+r+a+y+y+ aMn+ + n+y+z+ b+h+b+w+d+ y+a+b+d+. d+r+ aMd+r+s+ + http://openacs.org/philosophy/why-not-mysql.html y+k+ + m+q+a+y+s+h+ g+a+l+b+ b+y+n+ MySQL w+ PostgreSQL w+g+w+d+ + d+a+r+d+. a+z+ tjr+f+ d+y+gfr+ MySQL y+k+ snr+k+t+ a+s+t+ k+h+ + m+hkc+w+l+ x+w+d+ r+a+ b+h+ c+w+r+t+ m+t+n+ b+a+z+ a+r+a+yHh+ + m+y+k+n+d+ w+l+y+ b+r+a+y+ n+r+m+a+f+z+a+r+ i+y+r+ m+t+n+ + b+a+z+ x+w+d+ a+hkt+y+a+g+ b+h+ l+y+s+a+n+s+ t+g+a+r+y+ + d+a+r+d+ b+r+ x+l+a+f+ PostgreSQL k+h+ y+k+ gfr+w+h+ + k+a+m+l+a+:+ m+t+n+ b+a+z+ h+s+t+n+d+. + + + + q+a+b+l+y+t+ a+tjm+y+n+a+n+ + m+a+ f+k+r+ m+y+k+n+y+m+ k+h+ y+k+ s+y+s+t+m+ + p+a+y+gfa+h+ d+a+d+h+a+y+ k+h+ m+tjm+yHn+ n+b+a+snd+ + a+r+z+sny+ n+d+a+r+d+. m+a+ t+m+a+m+ t+l+a+snm+a+n+ r+a+ + b+r+a+y+ a+r+a+yHh+ k+d+h+a+y+ p+a+y+d+a+r+y+ k+h+ b+h+ + x+w+b+y+ t+s+t+ snd+h+ b+a+snn+d+ w+ k+m+t+r+y+n+ + a+1+snk+a+l+a+t+ r+a+ d+a+snt+h+ b+a+snn+d+ m+y+k+n+y+m+. + h+r+ n+s+x+h+ g+d+y+d+y+ k+h+ a+r+a+yHh+ m+y+snw+d+ + hkd+a+q+l+ y+k+ m+a+h+ r+a+ d+r+ m+r+hkl+h+ t+s+t+ b+t+a+ + m+y+gfdkr+a+n+d+. m+a+ b+r+ a+y+n+ b+a+w+r+ h+s+t+y+m+ + k+h+ q+a+b+l+y+t+ a+tjm+y+n+a+n+ PostgreSQL d+r+ + m+q+a+y+s+h+ b+a+ s+a+y+r+ s+y+s+t+m+h+a+y+ p+a+y+gfa+h+ + d+a+d+h+ q+a+b+l+ t+w+g+h+ a+s+t+ w+ n+s+x+h+h+a+y+y+ + k+h+ t+a+k+n+w+n+ a+r+a+yHh+ snd+h+ a+s+t+ n+sna+n+ m+y+ + d+h+d+ k+h+ m+a+ t+w+a+n+a+y+y+ a+r+a+yHh+ y+k+ + s+y+s+t+m+ q+w+y+ w+ m+hkk+m+ w+ m+tjm+yHn+ r+a+ k+h+ + aMm+a+d+h+ b+h+r+h+b+r+d+a+r+y+ a+s+t+ d+a+r+y+m+. + + p+snt+y+b+a+n+y+ + gfr+w+h+h+a+y+ p+s+t+y+ m+a+ a+m+k+a+n+ a+r+t+b+a+tj w+ + t+m+a+s+ b+h+ gfr+w+h+ b+z+r+gfy+ a+z+ b+r+n+a+m+h+ + n+w+y+s+a+n+ w+ k+a+r+b+r+a+n+ r+a+ m+y+d+h+d+ k+h+ m+y+ + t+w+a+n+n+d+ d+r+ hkl+ m+snk+l+a+t+ b+h+ d+y+gfr+a+n+ + k+m+k+ k+n+n+d+. d+s+t+r+s+y+ m+s+t+q+y+m+ b+h+ + b+r+n+a+m+h+n+w+y+s+a+n+ w+ gfr+w+h+h+a+y+ k+a+r+b+r+a+n+ + w+ r+a+h+n+m+a+h+a+ w+ k+d+a+c+l+y+ b+a+e+tk m+y+snw+d+ + k+h+ p+snt+y+b+a+n+y+ PostgreSQL n+s+b+t+ b+h+ s+a+y+r+ + p+a+y+gfa+h+h+a+y+ d+a+d+h+ b+h+ n+hkw+ b+h+t+r+y+ + a+n+g+a+m+ snw+d+. h+m+tcn+y+n+ a+m+k+a+n+ a+r+a+yHh+ + x+d+m+a+t+ p+snt+y+b+a+n+y+ b+h+ c+w+r+t+ t+g+a+r+y+ + n+y+z+ w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+ + a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ FAQ section 1.6 + m+r+a+g+e+h+ k+n+y+d+. + + q+y+m+t+ + h+m+ b+r+a+y+ a+s+t+f+a+d+h+ t+g+a+r+y+ w+ h+m+ i+y+r+ + t+g+a+r+y+ h+y+tc h+z+y+n+h+a+y+ n+b+a+y+d+ p+r+d+a+x+t+ + snw+d+. h+y+tc m+hkd+w+d+y+t+y+ b+r+a+y+ a+n+g+a+m+ + t+i+y+y+r+a+t+ d+r+ PostgreSQL t+w+s+tj a+s+t+f+a+d+h+ + k+n+n+d+gfa+n+ w+g+w+d+ n+d+a+r+d+ b+h+ g+z+ m+w+a+r+d+y+ + k+h+ d+r+ l+y+s+a+n+s+ BSD b+h+ aMn+ a+sna+r+h+ snd+h+ + a+s+t+. + + 1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+ PostgreSQL + k+m+k+ k+n+m+?+ + + PostgreSQL d+a+r+a+y+ y+k+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ d+r+g+h+ + a+w+l+ a+s+t+ k+h+ aMn+ r+a+ m+d+y+w+n+ Marc Fournier a+s+t+ k+h+ + a+y+n+ s+a+x+t+a+r+ r+a+ a+y+g+a+d+ k+r+d+h+ a+s+t+. + + k+y+f+y+t+ y+k+ s+a+x+t+a+r+ b+r+a+y+ y+k+ p+r+w+zjh+ m+t+n+ b+a+z+ + b+s+y+a+r+ a+h+m+y+t+ d+a+r+d+. y+k+ s+a+x+t+a+r+ x+w+b+ m+y+ + t+w+a+n+d+ m+a+n+e+ a+z+ hkw+a+d+tky+ snw+d+ k+h+ d+r+ hkr+k+t+ + r+w+b+h+g+l+w+y+ p+r+w+zjh+ x+l+l+y+ w+a+r+d+ m+y+k+n+n+d+. + + a+l+b+t+h+ a+y+n+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ a+r+z+a+n+ n+y+s+t+. + h+z+y+n+h+h+a+y+ tka+b+t+ m+a+h+a+n+h+ w+ r+w+z+m+r+h+ b+r+a+y+ + n+gfh+d+a+r+y+ w+ hkf+zH a+y+n+ s+a+x+t+a+r+ m+w+r+d+ n+y+a+z+ a+s+t+. + a+gfr+ snm+a+ y+a+ snr+k+t+ snm+a+ m+a+y+l+ a+s+t+ k+h+ a+z+ n+zHr+ + m+a+l+y+ b+h+ a+y+n+ hkr+k+t+ k+m+k+ k+n+d+ l+tjf+a+:+ b+h+ s+a+y+t+ + http://store.pgsql.com/shopping m+r+a+g+e+h+ k+r+d+h+ w+ k+m+k+ x+w+d+ + r+a+ a+h+d+a+ k+n+y+d+. + + h+r+ tcn+d+ d+r+ c+f+hkh+ a+c+l+y+ e+b+a+r+t+ PostgreSQL,Inc dkk+r+ + snd+h+ a+s+t+ w+l+y+ m+sna+r+k+t+ e+m+d+t+a+:+ b+r+a+y+ + p+snt+y+b+a+n+y+ a+z+ p+r+w+zjh+ PostgreSQL m+y+ b+a+snd+ w+ n+h+ + b+r+a+y+ y+k+ snr+k+t+ m+snx+c+. a+gfr+ t+r+g+y+hk m+y+d+h+y+d+ m+y+ + t+w+a+n+y+d+ y+k+ tck+ b+h+ aMd+r+s+ m+snx+c+ snd+h+ a+r+s+a+l+ + k+n+y+d+. + + a+gfr+ y+k+ a+s+t+f+a+d+h+ m+w+f+q+ a+z+ PostgreSQL s+r+a+i+ + d+a+r+y+d+ l+tjf+a+:+ aMn+ r+a+ b+h+ s+a+y+t+ + http://advocacy.postgresql.org gfz+a+r+sn d+h+y+d+. + _________________________________________________________________ + + s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+ + + 2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+ + d+a+r+d+?+ + + d+w+ d+r+a+y+w+r+ ODBC b+n+a+m+h+a+y+ psqlODBC w+ OpenLink b+r+a+y+ + PostgreSQL w+g+w+d+ d+a+r+d+. + + b+r+a+y+ gfr+f+t+n+ psqlODBC b+h+ s+a+y+t+ + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php + m+r+a+g+e+h+ k+n+y+d+. + + OpenLlink r+a+ a+z+ a+y+n+ s+a+y+t+ http://www.openlinksw.com m+y+ + t+w+a+n+y+d+ b+gfy+r+y+d+. a+y+n+ d+r+a+y+w+r+ b+a+ n+r+m+ + a+f+z+a+r+h+a+y+ m+x+t+l+f+ ODBC k+a+r+ m+y+k+n+d+ b+n+a+b+r+a+y+n+ + snm+a+ q+a+d+r+ x+w+a+h+y+d+ b+w+d+ b+a+ a+s+t+f+a+d+h+ a+z+ OpenLink + r+w+y+ a+k+tkr+ s+k+w+h+a+y+y+ k+h+ n+r+m+a+f+z+a+r+ODBCd+a+r+n+d+ + b+d+w+n+ m+snk+l+ b+h+ PostgreSQL n+y+z+ m+t+c+l+ snw+y+d+. + + a+y+n+ m+hkc+w+l+ b+h+ k+s+a+n+y+ k+h+ a+hkt+y+a+g+ b+h+ x+d+m+a+t+ + p+snt+y+b+a+n+y+ t+g+a+r+y+ d+a+r+n+d+ f+r+w+x+t+h+ m+y+snw+d+. w+l+y+ + n+s+x+h+ aMz+a+d+ a+y+n+ n+r+m+a+f+z+a+r+ h+m+y+snh+ d+r+ d+r+s+t+r+s+ + m+y+b+a+snd+. b+r+a+y+ k+s+b+ a+tjl+a+e+a+t+ b+y+snt+r+ s+w+a+l+a+t+ + x+w+d+ r+a+ b+h+ aMd+r+s+ [email protected] a+r+s+a+l+ + n+m+a+y+y+d+. + + 2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL b+a+ + c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+ + + d+r+ s+a+y+t+ http://www.webreview.com b+r+a+y+ a+s+t+f+a+d+h+ a+z+ + PostgreSQL d+r+ c+f+hka+t+ w+b+ r+a+h+n+m+a+y+y+h+a+y+ x+w+b+y+ + w+g+w+d+ d+a+r+d+. + + b+r+a+y+ t+r+k+y+b+ w+ a+s+t+f+a+d+h+ d+r+ c+f+hka+t+ w+b+ z+b+a+n+ + PHP y+k+ w+a+s+tj b+s+y+a+r+ m+n+a+s+b+ a+s+t+. a+tjl+a+e+a+t+ + b+y+snt+r+ r+a+g+e+ b+h+ PHPd+r+ s+a+y+t+ http://www.php.net w+g+w+d+ + d+a+r+d+. + + m+tka+l+h+a+y+y+ n+y+z+ b+a+ a+s+t+f+a+d+h+ a+z+ Perl w+ CGI.pm w+ + mod_perl w+g+w+d+ d+a+r+d+. + + 2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+ d+a+r+d+?+ + + tcn+d+ n+r+m+ a+f+z+a+r+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL w+g+w+d+ + d+a+r+d+ k+h+ sna+m+l+ pgAccess d+r+s+a+y+t+ http://www.pgaccess.org + w+ pgAdmin III d+r+ s+a+y+t+ http://www.pgadmin.org w+ RHDB Admin d+r+ + s+a+y+t+ http://sources.redhat.com/rhdb w+ Rekall d+r+ s+a+y+t+ + http://www.thekompany.com/products/rekall m+y+b+a+snd+. h+m+tcn+y+n+ + y+k+ phpPgAdmin h+m+ d+r+ s+a+y+t+ http://phppgadmin.sourceforge.net + w+g+w+d+ d+a+r+d+ k+h+ y+k+ w+a+s+tj w+b+y+ b+r+a+y+ m+d+y+r+y+t+ + PostgreSQL m+y+b+a+snd+. + + b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+ n+r+m+ + a+f+z+a+r+h+a+y+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL b+h+ aMd+r+s+ + http://techdocs.postgresql.org/guides/GUITools m+r+a+g+e+h+ k+n+y+d+. + + 2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+ + PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+ + + b+y+snt+r+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+n+d+ b+a+ + PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+n+n+d+. b+h+ h+m+r+a+h+ + s+w+r+s+ PostgreSQL t+e+d+a+d+y+ a+z+ w+a+s+tjh+a+y+ m+w+r+d+ n+y+a+z+ + b+r+a+y+ a+r+t+b+a+tj b+a+ p+a+y+gfa+h+ d+a+d+h+ a+z+ tjr+y+q+ + z+b+a+n+h+a+y+ m+x+t+l+f+ aMm+d+h+ a+s+t+ k+h+ d+r+ z+y+r+ l+y+s+t+ + aMn+h+a+ r+a+ m+sna+h+d+h+ m+y+k+n+y+d+. + * C (libpq) + * Embedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + w+a+s+tjh+a+y+ d+y+gfr+ d+r+ s+a+y+t+ http://gborg.postgresql.org d+r+ + q+s+m+t+ Drivers/Interfaces w+g+w+d+ d+a+r+d+. + _________________________________________________________________ + + s+w+a+l+a+t+ m+d+y+r+y+t+y+ + + 3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+ i+y+r+ + a+z+ /usr/local/pgsql/ n+c+b+ k+n+m+?+ + + m+w+q+e+ a+g+r+a+y+ d+s+t+w+r+ configure a+z+ gfz+y+n+h+ prefix-- + a+s+t+f+a+d+h+ k+n+y+d+. + + 3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+ m+y+ + k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+ + + b+h+ d+l+a+y+l+ m+x+t+l+f+ m+m+k+n+ a+s+t+ a+y+n+ a+t+f+a+q+ + b+y+f+t+d+. a+m+a+ d+r+ q+d+m+ a+w+l+ snm+a+ m+tjm+yHn+ snw+y+d+ k+h+ + k+h+ a+m+k+a+n+a+t+ a+dda+f+h+ System V d+r+ k+r+n+l+ snm+a+ n+c+b+ + snd+h+ b+a+snd+. PostgreSQL b+r+a+y+ a+g+r+a+ snd+n+ n+y+a+z+ b+h+ + a+s+t+f+a+d+h+ a+z+ a+m+k+a+n+a+t+ hka+f+zHh+ m+snt+r+k+ w+ + s+m+a+f+w+r+h+a+ d+a+r+d+. + + 3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster + r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate m+y+gfy+r+m+?+ + + a+hkt+m+a+l+a+:+ q+s+m+t+ a+y+g+a+d+ hka+f+zHh+ m+snt+r+k+ d+r+ + k+r+n+l+ b+h+ d+r+s+t+y+ t+n+zHy+m+ n+snd+h+ a+s+t+ w+ y+a+ a+y+n+k+h+ + b+a+y+d+ f+dda+y+ hka+f+zHh+ a+snt+r+a+k+y+ d+r+ k+r+n+l+ r+a+ + z+y+a+d+ k+r+d+. m+y+z+a+n+ d+q+y+q+ hka+f+zHh+ m+snt+r+k+ m+w+r+d+ + n+y+a+z+ b+s+t+h+ b+h+ m+e+m+a+r+y+ w+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+ + b+a+f+r+h+a+ t+w+s+tj b+r+n+a+m+h+ postmaster d+a+r+d+. b+r+a+y+ + b+y+snt+r+ s+y+s+t+m+h+a+ k+h+ b+a+ t+n+zHy+m+a+t+ p+y+snf+r+dd k+a+r+ + m+y+k+n+n+d+ m+q+d+a+r+ a+y+n+ hka+f+zHh+ hkd+w+d+ 1 m+gfa+b+a+y+t+ + a+s+t+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+ + hka+f+zHh+ m+snt+r+k+ w+ s+m+a+f+w+r+ b+h+ PostgreSQL Administrator's + Guide m+r+a+g+e+h+ k+n+y+d+. + + 3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster + r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcSemaphoreCreate m+y+gfy+r+m+?+ + + a+gfr+ p+y+i+a+m+ x+tja+ (pcSemaphoreCreate: semget failed (No space + left on device b+a+snd+ b+h+ a+y+n+ m+e+n+y+ a+s+t+ k+h+ t+e+d+a+d+ + s+m+a+f+w+r+h+a+y+ t+n+zHy+m+ snd+h+ d+r+ k+r+n+l+ k+a+f+y+ n+y+s+t+. + PostgreSQL b+r+a+y+ h+r+ f+r+a+y+n+d+y+ k+h+ d+r+ backend a+g+r+a+ + m+y+snw+d+ b+h+ y+k+ s+m+a+f+w+r+ n+y+a+z+ d+a+r+d+. y+k+ r+a+h+ hkl+ + m+w+q+t+ b+r+a+y+ a+y+n+ m+s+yHl+h+ aMn+ a+s+t+ k+h+ postmaster r+a+ + b+a+ a+e+m+a+l+ m+hkd+w+d+y+t+ r+w+y+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+y+ + k+h+ m+y+t+w+a+n+d+ a+y+g+a+d+ k+n+d+ a+g+r+a+ k+n+y+m+. b+r+a+y+ + a+y+n+k+a+r+ a+z+ gfz+y+n+h+ N- w+ y+k+ e+d+d+ k+m+t+r+ a+z+ 32 + a+s+t+f+a+d+h+ k+n+y+d+. r+a+h+ hkl+ d+a+yHm+y+ a+y+n+ m+snk+l+ aMn+ + a+s+t+ k+h+ p+a+r+a+m+t+r+h+a+y+ SEMMNS, SEMMNI k+r+n+l+ r+a+ + a+f+z+a+y+sn d+h+y+m+. + + d+r+ z+m+a+n+ d+s+t+r+s+y+ x+y+l+y+ z+y+a+d+ b+h+ p+a+y+gfa+h+ + d+a+d+h+,+ s+m+a+f+w+r+h+a+y+ n+a+m+e+t+b+r+ m+y+t+w+a+n+n+d+ b+a+e+tk + crash k+r+d+n+ s+y+s+t+m+ snw+n+d+. + + a+gfr+ p+y+i+a+m+ x+tja+ tcy+z+ d+y+gfr+y+ b+a+snd+ a+hkt+m+a+l+a+:+ + b+h+ d+l+y+l+ aMn+ a+s+t+ k+h+ k+r+n+l+ a+z+ s+m+a+f+w+r+h+a+ + p+snt+y+b+a+n+y+ n+m+y+k+n+d+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ + b+y+snt+r+ r+a+h+n+m+a+y+ m+d+y+r+y+t+y+ PostgreSQL r+a+ m+tja+l+e+h+ + k+n+y+d+. + + 3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+ r+a+ + k+n+t+r+l+ k+n+m+?+ + + b+h+ c+w+r+t+ p+y+sn f+r+dd f+q+tj a+z+ m+a+sny+n+y+ k+h+ PostgreSQL + r+w+y+ aMn+ d+r+ hka+l+ a+g+r+a+s+t+ m+y+t+w+a+n+ b+a+ a+s+t+f+a+d+h+ + a+z+ s+w+k+t+h+a+y+ y+w+n+y+k+s+y+ b+h+ aMn+ m+t+c+l+ snd+. s+a+y+r+ + m+a+sny+n+h+a+ q+a+d+r+ n+y+s+t+n+d+ b+h+ PostgreSQL m+t+c+l+ snw+n+d+ + m+gfr+ aMn+k+h+ gfz+y+n+h+ tcp_sockets d+r+ f+a+y+l+ postgresql.conf + f+e+a+l+ snd+h+ w+ h+m+tcn+y+n+ b+a+ a+c+l+a+hk f+a+y+l+ + PGDATA/ph_hba.conf h+w+y+t+snn+a+s+y+ m+b+t+n+y+ b+r+ m+y+z+b+a+n+ + n+y+z+ f+e+a+l+ snw+d+. b+a+ a+y+n+ k+a+r+ m+y+t+w+a+n+ a+t+c+a+l+a+t+ + TCP/IP b+h+ PostgreSQL a+y+g+a+d+ k+r+d+. + + 3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+ d+a+d+h+ + m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+ + + b+h+ tjw+r+ hkt+m+ a+s+t+f+a+d+h+ a+z+ a+n+d+y+s+h+a+ b+a+e+tk + b+a+l+a+ r+f+t+n+ s+r+e+t+ p+a+s+x+gfw+y+y+ b+h+ d+r+x+w+a+s+t+h+a+ + x+w+a+h+d+ snd+. d+s+t+w+r+ EXPLAIN ANALYZE b+h+ snm+a+ a+m+k+a+n+ + d+y+d+n+ n+hkw+h+ p+r+d+a+z+sn y+k+ d+s+t+w+r+ t+w+s+tj PostgreSQL + r+a+ m+y+d+h+d+. + + a+gfr+ snm+a+ t+e+d+a+d+ z+y+a+d+y+ INSERT d+a+r+y+d+ s+e+y+ k+n+y+d+ + aMn+h+a+ r+a+ b+a+ q+r+a+r+ d+a+d+n+ d+r+ y+k+ f+a+y+l+ b+a+ + d+s+t+w+r+ COPY a+g+r+a+ k+n+y+d+. a+y+n+ d+s+t+w+r+ b+h+ m+r+a+t+b+ + a+z+ INSERT s+r+y+e+t+r+ a+s+t+. hkt+y+a+l+a+m+k+a+n+ s+e+y+ k+n+y+d+ + a+z+ t+r+a+k+n+snh+a+ a+s+t+f+a+d+h+ n+k+n+y+d+. t+r+a+k+n+snh+a+ + m+g+m+w+e+h+ d+s+t+w+r+a+t+y+ h+s+t+n+d+ k+h+ b+y+n+d+ BEGIN w+ COMMIT + m+y+aMy+n+d+. a+gfr+ y+k+ d+s+t+w+r+ b+h+ c+w+r+t+ e+a+d+y+ a+g+r+a+ + snw+d+ PostgreSQL x+w+d+ aMn+ d+s+t+w+r+ r+a+ b+h+ c+w+r+t+ y+k+ + t+r+a+k+n+sn m+s+t+q+l+ n+gfa+h+ k+r+d+h+ w+ a+g+r+a+ m+y+k+n+d+. + m+w+q+e+ی k+h+ t+i+y+y+r+a+t+ z+y+a+d+y+ d+r+ p+a+y+gfa+h+ + d+a+d+h+ a+n+g+a+m+ m+y+snw+d+ a+n+d+y+s+h+a+y+ q+b+l+y+ r+a+ hkdkf+ + w+ m+g+d+d+a+:+ a+y+g+a+d+ k+n+y+d+. + + a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ o -F- d+r+ f+r+m+a+n+ postmaster + b+a+e+tk i+y+r+ f+e+a+l+ k+r+d+n+ ()fsync m+y+snw+d+. a+y+n+ + d+s+t+w+r+ b+e+d+ a+z+ h+r+ t+r+a+k+n+sn a+tjl+a+e+a+t+ r+a+ r+w+y+ + h+a+r+d+d+y+s+k+ m+n+t+q+l+ m+y+k+n+d+. + + b+r+a+y+ a+f+z+a+y+sn t+e+d+a+d+ b+a+f+r+h+a+y+ hka+f+zHh+ + a+snt+r+a+k+y+ a+z+ gfz+y+n+h+ B- b+h+ h+m+r+a+h+ f+r+m+a+n+ + postmaster a+s+t+f+a+d+h+ k+n+y+d+. t+w+g+h+ k+n+y+d+ k+h+ a+gfr+ + a+y+n+ e+d+d+ x+y+l+y+ b+z+r+gf b+a+snd+ m+m+k+n+ a+s+t+ postmaster + a+c+l+a+:+ a+g+r+a+ n+snw+d+. h+r+ b+a+f+r+ 8 k+y+l+w+ b+a+y+t+ + hka+f+zHh+ n+y+a+z+ d+a+r+d+ w+ t+e+d+a+d+ b+a+f+r+h+a+ b+h+ tjw+r+ + p+y+sn f+r+dd 64 a+s+t+. + + h+m+tcn+y+n+ m+y+t+w+a+n+ b+a+ gfz+y+n+h+ S- m+y+z+a+n+ hka+f+zHh+ + a+y+ k+h+ b+r+a+y+ m+r+t+b+s+a+z+y+h+a+y+ m+w+q+t+ t+w+s+tj PostgreSQL + a+s+t+f+a+d+h+ m+y+snw+d+ r+a+ a+f+z+a+y+sn d+a+d+. m+q+d+a+r+ p+y+sn + f+r+dd 512 k+y+l+w+ b+a+y+t+ a+s+t+. + + a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ CLUSTER n+y+z+ b+r+a+y+ b+a+l+a+ + b+r+d+n+ k+a+r+a+y+y+ m+w+tkr+ a+ s+t+. d+s+t+w+r+ r+a+h+n+m+a+y+ + CLUSTER a+tjl+a+e+a+t+ b+y+snt+r+y+ d+r+ a+y+n+ z+m+y+n+h+ b+h+ snm+a+ + m+y+d+h+d+. + + 3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+ w+g+w+d+ + d+a+r+d+?+ + + PostgerSQL a+m+k+a+n+a+t+ m+x+t+l+f+y+ b+r+a+y+ gfz+a+r+sn d+a+d+n+ + w+dde+y+t+ x+w+d+ d+a+r+d+ k+h+ b+r+a+y+ a+snk+a+l+ z+d+a+y+y+ m+y+ + t+w+a+n+ a+z+ aMn+h+a+ a+s+t+f+a+d+h+ k+r+d+. + + b+a+ a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ enable-assert-- t+e+d+a+d+ + z+y+a+d+y+ ()assert b+r+a+y+ m+w+n+y+t+w+r+ k+r+d+n+ w+ t+w+q+f+ + b+r+n+a+m+h+ d+r+ c+w+r+t+ b+r+w+z+ x+tja+h+a+y+ n+a+x+w+a+s+t+h+ + f+e+a+l+ m+y+snw+d+. + + h+m+ Postmaster w+ h+m+ postgres gfz+y+n+h+h+a+y+ z+y+a+d+y+ b+r+a+y+ + a+snk+a+l+ z+d+a+y+y+ d+a+r+n+d+. m+w+q+e+y+ k+h+ postmaster r+a+ + a+g+r+a+ m+y+k+n+y+d+ x+r+w+g+y+ a+s+t+a+n+d+a+r+d+ w+ x+tja+ r+a+ + s+m+t+ f+a+y+l+ log a+r+s+a+l+ k+n+y+d+. + cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & -اين كار يك فايل log در بالاترين شاخه PostgreSQL ايجاد ميكند. اين فايل حاوي -اطلاعات مفيدي در مورد مسائل و خطاهايي است كه براي سرور اتفاق افتاده است. براي -ديدن جزئيات بيشتر ميتوان از d- به همراه فرمان postmaster استفاده كرد. گزينه -d- همچنين يك عدد ميگيرد كه نشان دهنده سطح جزئياتي است كه در Logفايل نوشته -ميشود. با بالابردن اين عدد حجم اطلاعات توليد شده در Logفايل نيز افزايش مييابد. -اگر postmaster در حال اجرا نباشد، ميتوانيم postgres را به طور مستقيم از خط -فرمان اجرا كرده و دستورات SQL را به آن بدهيم. اين كار فقط براي اشكاليابي توصيه -ميشود. توجه كنيد كه در اين حالت يك دستور با كاراكتر newline خاتمه پيدا ميكند و -نه با ;. اگر postmaster را با امكانات اشكاليابي كامپيل كرده باشيد ميتوانيد با -استفاده از يك برنامه اشكالياب اجراي برنامه را مونيتور كنيد. -اگر postmaster در حال اجرا باشد با دستور psql ميتوان به postgres متصل شد. با -پيدا كردن PID فرايند postgres كه psql به آن متصل شده است ميتوان آن را مونيتور -كرد. براي اينكار بايد يك برنامه اشكالياب را به آن pid متصل كرد. اگر بخواهيم -بالا آمدن postgres را مونيتور كنيم كافي است "PGOPTIONS="-W n و psql را اجرا -كنيم. اين كار باعث ميشود كه postgres با n ثانيه تاخير اجرا شود و در اين فاصله -شما ميتوانيد برنامه اشكالياب را به آن متصل كرده و با قرار دادن يك نقطه توقف -روند اجراي آن را مونيتور كنيد. -postgres گزينههاي s- و A- و t- دارد كه براي پيدا كردن اشكالات بسيار مناسب -هستند. -شما ميتوانيد postgreSQL را با امكانات profiling كامپيل كنيد. اين كار باعث -ميشود كه زمان اجراي دقيق هر تابع در برنامه مشخص شود. خروجيهاي توليد شده در اين -حالت در فايل DLINUX_PROFILE. ريخته ميشود. -3.8) چرا موقعي كه من ميخواهم به پايگاه داده وصل شوم پيام "Sorry, too many -clients" ميگيرم؟ -شما بايد حداكثر تعداد فرايندهاي همزمان postmaster را افزايش دهيد. مقدار پيش فرض -32 است. براي افزايش آن ميتوان از گزينه N- استفاده كرد و يا فايل postgresql.conf -را اصلاح نمود -توجه كنيد كه اگر N- مقداري بيشتر از 32 داشته باشد بايد مقدار B- را نيز افزايش -دهيم. اين مقدار بايد حداقل دو برابر مقدار N- باشد. براي اعداد خيلي بالا بايد -بعضي از پارامترهاي كرنل را نيز اصلاح كرد. پارامترهايي نظير حداكثر اندازه حافظه -اشتراكي SHMMAX ، حداكثر تعداد سمافورها SEMMNI و SEMMNS ، حداكثر تعداد فرايندها -NPROC، حداكثر فرايندهاي يك كاربر MAXUPRC و حداكثر فايلهاي باز NFILE و NINODE. -يكي از دلايلي كه تعداد اتصالات همزمان postgreSQL محدود است آن است كه نيازهاي -PostgreSQL بيش از منابع موجود سيستم نباشد. -3.9) در شاخه pgsql_tmp چه چيزي قرار دارد؟ -دراين شاخه فايلهاي موقتي قرار دارد كه با اجراي درخواستها به وجود آمده است. به -عنوان مثال اگر براي اجراي دستور order by نياز به انجام مرتب سازي باشد و در صورتي -كه حافظه مشخص شده با گزينه S- براي اينكار كافي نباشد سيستم يك فايل موقت در اين -شاخه ايجاد ميكند تا عمل مرتب سازي را انجام دهد. -فايلهاي موقت معمولاً به صورت اتوماتيك پاك ميشود اما اگر postgreSQL در حين مرتب -سازي crash كند آن فايلها باقي ميمانند. با stop و start كردن برنامه postmaster -اين فايلها پاك ميشوند. -3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump و مجدداً -restore كنم؟ -تيم برنامه نويس postgreSQL در نسخههاي ارائه شده كه فقط minor آنها متفاوت است -فقط تغييرات كوچكي اعمال ميكنند؛ بنابراين براي به روز كردن از نسخه 7.2به 7.2.1 -نيازي به dump و restore نيست. اما در نسخههايي كه major آنها تغيير ميكند غالباً -ساختار داخلي جداول و فايلهاي داده تغيير ميكند. اين تغييرات معمولاً پيچيده -هستند. براي انتقال دادههاي موجود در پايگاه داده در اين حالت بايد از dump و -restore استفاده كرد. -در نسخههايي كه ساختار روي ديسك تغييري نميكند مي توان از برنامه pg_upgrade براي -به روز كردن پايگاه داده استفاده كرد بدون اينكه نيازي به استفاده از dump و -restore باشد. در يادداشتي كه به همراه هر توزيع ميآيد ذكر شده است كه آيا برنامه -pg_upgrade براي اين توزيع وجود دارد يا خير. -3.11) از چه سخت افزاري بايد استفاده كنم؟ - -چون اكثر سختافزارهاي PC سازگار هستند مردم فكر ميكنند كه كيفيت آنها نيز يكسان -است. در حاليكه اينطور نيست. استفاده از هاردهاي SCSI و حافظههاي ECC و مادربردهاي -با كيفيت بالا نسبت به سخت افزارهاي ارزانتر نتايج بهتري از نظر كارايي و پايداري -سيستم بهمراه خواهد داشت. PostgreSQL روي بيشتر سخت افزارها اجرا ميشود اما اگر -كارايي و اطمينان فاكتورهاي مهمي هستند بايد سخت افزار مناسب استفاده شود. در -گروههاي پستي در مورد سخت افزار مناسب و انتخاب آن بحث شده است. - - -سوالات عملياتي -4.1) تفاوت بين binary cursors و Normal cursors چيست؟ -راهنماي دستور DECLARE را مطالعه كنيد. -4.2) من چگونه ميتوانم فقط روي چند رديف اول يا يك رديف تصادفي درخواست SELECT -بزنم؟ -راهنماي دستور FETCH يا SELECT...LIMIT را ببينيد. -در واقع كل درخواست بايد بررسي و ارزيابي شود حتي اگر شما فقط چند رديف اول را -بخواهيد. براي مثال درخواست ORDER BY را در نظر بگيريد. اگر انديس يا نمايهاي براي -ORDER BY وجود داشته باشد،postgreSQL ممكن است بتواند فقط چند سطر اول درخواستي -را ارزيابي كند و يا اينكه كل درخواست پردازش شود تا تعداد رديفهاي درخواستي توليد -شود. -براي انتخاب يك سطر تصادفي به روش زير عمل ميكنيم: + a+y+n+ k+a+r+ y+k+ f+a+y+l+ log d+r+ b+a+l+a+t+r+y+n+ sna+x+h+ + PostgreSQL a+y+g+a+d+ m+y+k+n+d+. a+y+n+ f+a+y+l+ hka+w+y+ + a+tjl+a+e+a+t+ m+f+y+d+y+ d+r+ m+w+r+d+ m+s+a+yHl+ w+ x+tja+h+a+y+y+ + a+s+t+ k+h+ b+r+a+y+ s+r+w+r+ a+t+f+a+q+ a+f+t+a+d+h+ a+s+t+. b+r+a+y+ + d+y+d+n+ g+z+yHy+a+t+ b+y+snt+r+ m+y+t+w+a+n+ a+z+ d- b+h+ h+m+r+a+h+ + f+r+m+a+n+ postmaster a+s+t+f+a+d+h+ k+r+d+. gfz+y+n+h+ d- + h+m+tcn+y+n+ y+k+ e+d+d+ m+y+gfy+r+d+ k+h+ n+sna+n+ d+h+n+d+h+ s+tjhk + g+z+yHy+a+t+y+ a+s+t+ k+h+ d+r+ Logf+a+y+l+ n+w+snt+h+ m+y+snw+d+. + b+a+ b+a+l+a+b+r+d+n+ a+y+n+ e+d+d+ hkg+m+ a+tjl+a+e+a+t+ t+w+l+y+d+ + snd+h+ d+r+ Logf+a+y+l+ n+y+z+ a+f+z+a+y+sn m+y+y+a+b+d+. + + a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ n+b+a+snd+,+ m+y+t+w+a+n+y+m+ + postgres r+a+ b+h+ tjw+r+ m+s+t+q+y+m+ a+z+ x+tj f+r+m+a+n+ a+g+r+a+ + k+r+d+h+ w+ d+s+t+w+r+a+t+ SQL r+a+ b+h+ aMn+ b+d+h+y+m+. a+y+n+ + k+a+r+ f+q+tj b+r+a+y+ a+snk+a+l+y+a+b+y+ t+w+c+y+h+ m+y+snw+d+. + t+w+g+h+ k+n+y+d+ k+h+ d+r+ a+y+n+ hka+l+t+ y+k+ d+s+t+w+r+ b+a+ + k+a+r+a+k+t+r+ newline x+a+t+m+h+ p+y+d+a+ m+y+k+n+d+ w+ n+h+ b+a+ ;. + a+gfr+ postmaster r+a+ b+a+ a+m+k+a+n+a+t+ a+snk+a+l+y+a+b+y+ + k+a+m+p+y+l+ k+r+d+h+ b+a+sny+d+ m+y+t+w+a+n+y+d+ b+a+ a+s+t+f+a+d+h+ + a+z+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ a+g+r+a+y+ b+r+n+a+m+h+ r+a+ + m+w+n+y+t+w+r+ k+n+y+d+. + + a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ b+a+snd+ b+a+ d+s+t+w+r+ psql + m+y+t+w+a+n+ b+h+ postgres m+t+c+l+ snd+. b+a+ p+y+d+a+ k+r+d+n+ PID + f+r+a+y+n+d+ postgres k+h+ psql b+h+ aMn+ m+t+c+l+ snd+h+ a+s+t+ m+y+ + t+w+a+n+ aMn+ r+a+ m+w+n+y+t+w+r+ k+r+d+. b+r+a+y+ a+y+n+k+a+r+ + b+a+y+d+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+ pid + m+t+c+l+ k+r+d+. a+gfr+ b+x+w+a+h+y+m+ b+a+l+a+ aMm+d+n+ postgres r+a+ + m+w+n+y+t+w+r+ k+n+y+m+ k+a+f+y+ a+s+t+ "PGOPTIONS="-W n w+ psql r+a+ + a+g+r+a+ k+n+y+m+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ postgres + b+a+ n tka+n+y+h+ t+a+x+y+r+ a+g+r+a+ snw+d+ w+ d+r+ a+y+n+ f+a+c+l+h+ + snm+a+ m+y+t+w+a+n+y+d+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+ + m+t+c+l+ k+r+d+h+ w+ b+a+ q+r+a+r+ d+a+d+n+ y+k+ n+q+tjh+ t+w+q+f+ + r+w+n+d+ a+g+r+a+y+ aMn+ r+a+ m+w+n+y+t+w+r+ k+n+y+d+. + + postgres gfz+y+n+h+h+a+y+ s- w+ A- w+ t- d+a+r+d+ k+h+ b+r+a+y+ + p+y+d+a+ k+r+d+n+ a+snk+a+l+a+t+ b+s+y+a+r+ m+n+a+s+b+ h+s+t+n+d+. + + snm+a+ m+y+t+w+a+n+y+d+ postgreSQL r+a+ b+a+ a+m+k+a+n+a+t+ profiling + k+a+m+p+y+l+ k+n+y+d+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ z+m+a+n+ + a+g+r+a+y+ d+q+y+q+ h+r+ t+a+b+e+ d+r+ b+r+n+a+m+h+ m+snx+c+ snw+d+. + x+r+w+g+y+h+a+y+ t+w+l+y+d+ snd+h+ d+r+ a+y+n+ hka+l+t+ d+r+ f+a+y+l+ + DLINUX_PROFILE. r+y+x+t+h+ m+y+snw+d+. + + 3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+ d+a+d+h+ + w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+gfy+r+m+?+ + + snm+a+ b+a+y+d+ hkd+a+k+tkr+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+ + h+m+z+m+a+n+ postmaster r+a+ a+f+z+a+y+sn d+h+y+d+. m+q+d+a+r+ p+y+sn + f+r+dd 32 a+s+t+. b+r+a+y+ a+f+z+a+y+sn aMn+ m+y+t+w+a+n+ a+z+ + gfz+y+n+h+ N- a+s+t+f+a+d+h+ k+r+d+ w+ y+a+ f+a+y+l+ postgresql.conf + r+a+ a+c+l+a+hk n+m+w+d+ + + t+w+g+h+ k+n+y+d+ k+h+ a+gfr+ N- m+q+d+a+r+y+ b+y+snt+r+ a+z+ 32 + d+a+snt+h+ b+a+snd+ b+a+y+d+ m+q+d+a+r+ B- r+a+ n+y+z+ a+f+z+a+y+sn + d+h+y+m+. a+y+n+ m+q+d+a+r+ b+a+y+d+ hkd+a+q+l+ d+w+ b+r+a+b+r+ + m+q+d+a+r+ N- b+a+snd+. b+r+a+y+ a+e+d+a+d+ x+y+l+y+ b+a+l+a+ b+a+y+d+ + b+e+ddy+ a+z+ p+a+r+a+m+t+r+h+a+y+ k+r+n+l+ r+a+ n+y+z+ a+c+l+a+hk + k+r+d+. p+a+r+a+m+t+r+h+a+y+y+ n+zHy+r+ hkd+a+k+tkr+ a+n+d+a+z+h+ + hka+f+zHh+ a+snt+r+a+k+y+ SHMMAX ,+ hkd+a+k+tkr+ t+e+d+a+d+ + s+m+a+f+w+r+h+a+ SEMMNI w+ SEMMNS ,+ hkd+a+k+tkr+ t+e+d+a+d+ + f+r+a+y+n+d+h+a+ NPROC,+ hkd+a+k+tkr+ f+r+a+y+n+d+h+a+y+ y+k+ + k+a+r+b+r+ MAXUPRC w+ hkd+a+k+tkr+ f+a+y+l+h+a+y+ b+a+z+ NFILE w+ + NINODE. y+k+y+ a+z+ d+l+a+y+l+y+ k+h+ t+e+d+a+d+ a+t+c+a+l+a+t+ + h+m+z+m+a+n+ postgreSQL m+hkd+w+d+ a+s+t+ aMn+ a+s+t+ k+h+ + n+y+a+z+h+a+y+ PostgreSQL b+y+sn a+z+ m+n+a+b+e+ m+w+g+w+d+ s+y+s+t+m+ + n+b+a+snd+. + + 3.9) d+r+ sna+x+h+ pgsql_tmp tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+ + + d+r+a+y+n+ sna+x+h+ f+a+y+l+h+a+y+ m+w+q+t+y+ q+r+a+r+ d+a+r+d+ k+h+ + b+a+ a+g+r+a+y+ d+r+x+w+a+s+t+h+a+ b+h+ w+g+w+d+ aMm+d+h+ a+s+t+. b+h+ + e+n+w+a+n+ m+tka+l+ a+gfr+ b+r+a+y+ a+g+r+a+y+ d+s+t+w+r+ order by + n+y+a+z+ b+h+ a+n+g+a+m+ m+r+t+b+ s+a+z+y+ b+a+snd+ w+ d+r+ c+w+r+t+y+ + k+h+ hka+f+zHh+ m+snx+c+ snd+h+ b+a+ gfz+y+n+h+ S- b+r+a+y+ + a+y+n+k+a+r+ k+a+f+y+ n+b+a+snd+ s+y+s+t+m+ y+k+ f+a+y+l+ m+w+q+t+ + d+r+ a+y+n+ sna+x+h+ a+y+g+a+d+ m+y+k+n+d+ t+a+ e+m+l+ m+r+t+b+ + s+a+z+y+ r+a+ a+n+g+a+m+ d+h+d+. + + f+a+y+l+h+a+y+ m+w+q+t+ m+e+m+w+l+a+:+ b+h+ c+w+r+t+ a+t+w+m+a+t+y+k+ + p+a+k+ m+y+snw+d+ a+m+a+ a+gfr+ postgreSQL d+r+ hky+n+ m+r+t+b+ + s+a+z+y+ crash k+n+d+ aMn+ f+a+y+l+h+a+ b+a+q+y+ m+y+m+a+n+n+d+. b+a+ + stop w+ start k+r+d+n+ b+r+n+a+m+h+ postmaster a+y+n+ f+a+y+l+h+a+ + p+a+k+ m+y+snw+n+d+. + + 3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+ d+a+d+h+ + m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+ restore k+n+m+?+ + + t+y+m+ b+r+n+a+m+h+ n+w+y+s+ postgreSQL d+r+ n+s+x+h+h+a+y+ a+r+a+yHh+ + snd+h+ k+h+ f+q+tj minor aMn+h+a+ m+t+f+a+w+t+ a+s+t+ f+q+tj + t+i+y+y+r+a+t+ k+w+tck+y+ a+e+m+a+l+ m+y+k+n+n+d+;+ b+n+a+b+r+a+y+n+ + b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ a+z+ n+s+x+h+ 7.2b+h+ 7.2.1 n+y+a+z+y+ + b+h+ dump w+ restore n+y+s+t+. a+m+a+ d+r+ n+s+x+h+h+a+y+y+ k+h+ major + aMn+h+a+ t+i+y+y+r+ m+y+k+n+d+ i+a+l+b+a+:+ s+a+x+t+a+r+ d+a+x+l+y+ + g+d+a+w+l+ w+ f+a+y+l+h+a+y+ d+a+d+h+ t+i+y+y+r+ m+y+k+n+d+. a+y+n+ + t+i+y+y+r+a+t+ m+e+m+w+l+a+:+ p+y+tcy+d+h+ h+s+t+n+d+. b+r+a+y+ + a+n+t+q+a+l+ d+a+d+h+h+a+y+ m+w+g+w+d+ d+r+ p+a+y+gfa+h+ d+a+d+h+ d+r+ + a+y+n+ hka+l+t+ b+a+y+d+ a+z+ dump w+ restore a+s+t+f+a+d+h+ k+r+d+. + + d+r+ n+s+x+h+h+a+y+y+ k+h+ s+a+x+t+a+r+ r+w+y+ d+y+s+k+ t+i+y+y+r+y+ + n+m+y+k+n+d+ m+y+ t+w+a+n+ a+z+ b+r+n+a+m+h+ pg_upgrade b+r+a+y+ b+h+ + r+w+z+ k+r+d+n+ p+a+y+gfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ k+r+d+ b+d+w+n+ + a+y+n+k+h+ n+y+a+z+y+ b+h+ a+s+t+f+a+d+h+ a+z+ dump w+ restore + b+a+snd+. d+r+ y+a+d+d+a+snt+y+ k+h+ b+h+ h+m+r+a+h+ h+r+ t+w+z+y+e+ + m+y+aMy+d+ dkk+r+ snd+h+ a+s+t+ k+h+ aMy+a+ b+r+n+a+m+h+ pg_upgrade + b+r+a+y+ a+y+n+ t+w+z+y+e+ w+g+w+d+ d+a+r+d+ y+a+ x+y+r+. + + 3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+ + + tcw+n+ a+k+tkr+ s+x+t+a+f+z+a+r+h+a+y+ PC s+a+z+gfa+r+ h+s+t+n+d+ + m+r+d+m+ f+k+r+ m+y+k+n+n+d+ k+h+ k+y+f+y+t+ aMn+h+a+ n+y+z+ + y+k+s+a+n+ a+s+t+. d+r+ hka+l+y+k+h+ a+y+n+tjw+r+ n+y+s+t+. + a+s+t+f+a+d+h+ a+z+ h+a+r+d+h+a+y+ SCSI w+ hka+f+zHh+h+a+y+ ECC w+ + m+a+d+r+b+r+d+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ n+s+b+t+ b+h+ s+x+t+ + a+f+z+a+r+h+a+y+ a+r+z+a+n+t+r+ n+t+a+y+g+ b+h+t+r+y+ a+z+ n+zHr+ + k+a+r+a+y+y+ w+ p+a+y+d+a+r+y+ s+y+s+t+m+ b+h+m+r+a+h+ x+w+a+h+d+ + d+a+snt+. PostgreSQL r+w+y+ b+y+snt+r+ s+x+t+ a+f+z+a+r+h+a+ a+g+r+a+ + m+y+snw+d+ a+m+a+ a+gfr+ k+a+r+a+y+y+ w+ a+tjm+y+n+a+n+ + f+a+k+t+w+r+h+a+y+ m+h+m+y+ h+s+t+n+d+ b+a+y+d+ s+x+t+ a+f+z+a+r+ + m+n+a+s+b+ a+s+t+f+a+d+h+ snw+d+. d+r+ gfr+w+h+h+a+y+ p+s+t+y+ d+r+ + m+w+r+d+ s+x+t+ a+f+z+a+r+ m+n+a+s+b+ w+ a+n+t+x+a+b+ aMn+ b+hktk + snd+h+ a+s+t+. + _________________________________________________________________ + + s+w+a+l+a+t+ e+m+l+y+a+t+y+ + + 4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+ + + r+a+h+n+m+a+y+ d+s+t+w+r+ DECLARE r+a+ m+tja+l+e+h+ k+n+y+d+. + + 4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+ a+w+l+ + y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT b+z+n+m+?+ + + r+a+h+n+m+a+y+ d+s+t+w+r+ FETCH y+a+ SELECT...LIMIT r+a+ + b+b+y+n+y+d+. + + d+r+ w+a+q+e+ k+l+ d+r+x+w+a+s+t+ b+a+y+d+ b+r+r+s+y+ w+ + a+r+z+y+a+b+y+ snw+d+ hkt+y+ a+gfr+ snm+a+ f+q+tj tcn+d+ r+d+y+f+ + a+w+l+ r+a+ b+x+w+a+h+y+d+. b+r+a+y+ m+tka+l+ d+r+x+w+a+s+t+ ORDER BY + r+a+ d+r+ n+zHr+ b+gfy+r+y+d+. a+gfr+ a+n+d+y+s+ y+a+ n+m+a+y+h+a+y+ + b+r+a+y+ ORDER BY w+g+w+d+ d+a+snt+h+ b+a+snd+,+postgreSQL m+m+k+n+ + a+s+t+ b+t+w+a+n+d+ f+q+tj tcn+d+ s+tjr+ a+w+l+ d+r+x+w+a+s+t+y+ r+a+ + a+r+z+y+a+b+y+ k+n+d+ w+ y+a+ a+y+n+k+h+ k+l+ d+r+x+w+a+s+t+ + p+r+d+a+z+sn snw+d+ t+a+ t+e+d+a+d+ r+d+y+f+h+a+y+ d+r+x+w+a+s+t+y+ + t+w+l+y+d+ snw+d+. + + b+r+a+y+ a+n+t+x+a+b+ y+k+ s+tjr+ t+c+a+d+f+y+ b+h+ r+w+sn z+y+r+ + e+m+l+ m+y+k+n+y+m+: + SELECT col FROM tab ORDER BY random() LIMIT 1; -4.3) من چگونه ميتوانم ليستي از جداول يا ساير چيزهايي كه در psql وجود دارد را -ببينم؟ -براي ديدن ليست جداول دستور dt\ را در برنامه psql استفاده كنيد. براي ديدن ليست -كامل فرمانها ?\ را اجرا كنيد. راه ديگر خواندن متن برنامه psql است كه در شاخه -pgsql/src/bin/psql/describe.c قرار دارد. اين فايل حاوي فرامين SQLيي است كه -خروجي را براي دستوراتي كه با \در psql شروع ميشوند توليد ميكنند. راه ديگر -اجراي psql با گزينه E-است. اينكار باعث ميشود كه psql قبل از اجرا هر دستور -SQLمتناظر آن را نشان دهد. PostgreSQLهمچنين يك برنامه SQLi دارد كه ميتوان با -استفاده از آن اطلاعات داخلي پايگاه داده را استخراج كرد. -4.4) چگونه يك ستون جدول را حذف ميكنيد؟ چگونه نوع داده آن را عوض كنيم؟ -حذف يك ستون در توزيع 7.3 با استفاده از دستور ALTER TABLE DROP COLUMN اضافه شده -است. در نسخههاي قبلي به روش زير عمل كنيد: + + 4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+ + s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+ b+b+y+n+m+?+ + + b+r+a+y+ d+y+d+n+ l+y+s+t+ g+d+a+w+l+ d+s+t+w+r+ dt\ r+a+ d+r+ + b+r+n+a+m+h+ psql a+s+t+f+a+d+h+ k+n+y+d+. b+r+a+y+ d+y+d+n+ l+y+s+t+ + k+a+m+l+ f+r+m+a+n+h+a+ ?\ r+a+ a+g+r+a+ k+n+y+d+. r+a+h+ d+y+gfr+ + x+w+a+n+d+n+ m+t+n+ b+r+n+a+m+h+ psql a+s+t+ k+h+ d+r+ sna+x+h+ + pgsql/src/bin/psql/describe.c q+r+a+r+ d+a+r+d+. a+y+n+ f+a+y+l+ + hka+w+y+ f+r+a+m+y+n+ SQLy+y+ a+s+t+ k+h+ x+r+w+g+y+ r+a+ b+r+a+y+ + d+s+t+w+r+a+t+y+ k+h+ b+a+ \d+r+ psql snr+w+e+ m+y+snw+n+d+ t+w+l+y+d+ + m+y+k+n+n+d+. r+a+h+ d+y+gfr+ a+g+r+a+y+ psql b+a+ gfz+y+n+h+ E- + a+s+t+. a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ psql q+b+l+ a+z+ + a+g+r+a+ h+r+ d+s+t+w+r+ SQLm+t+n+a+zHr+ aMn+ r+a+ n+sna+n+ d+h+d+. + PostgreSQLh+m+tcn+y+n+ y+k+ b+r+n+a+m+h+ SQLi d+a+r+d+ k+h+ m+y+ + t+w+a+n+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+ a+tjl+a+e+a+t+ d+a+x+l+y+ + p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+ k+r+d+. + + 4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+ + tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+ + + hkdkf+ y+k+ s+t+w+n+ d+r+ t+w+z+y+e+ 7.3 b+a+ a+s+t+f+a+d+h+ a+z+ + d+s+t+w+r+ ALTER TABLE DROP COLUMN a+dda+f+h+ snd+h+ a+s+t+. d+r+ + n+s+x+h+h+a+y+ q+b+l+y+ b+h+ r+w+sn z+y+r+ e+m+l+ k+n+y+d+: + BEGIN; LOCK TABLE old_table; - SELECT ... -- تمام ستونها غير از ستوني كه ميخواهيد آن را حذف كنيد را در اينجا بياوريد + SELECT ... -- t+m+a+m+ s+t+w+n+h+a+ i+y+r+ a+z+ s+t+w+n+y+ k+h+ m+y+x+w+a+h+y+d+ aMn+ r+a+ hkdkf+ k+n+y+d+ r+a+ d+r+ a+y+n+g+a+ b+y+a+w+r+y+d+ INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; COMMIT; -براي عوض كردن نوع داده يك ستون به روش زير عمل كنيد: + + b+r+a+y+ e+w+dd k+r+d+n+ n+w+e+ d+a+d+h+ y+k+ s+t+w+n+ b+h+ r+w+sn + z+y+r+ e+m+l+ k+n+y+d+: + BEGIN; ALTER TABLE tab ADD COLUMN new_col new_data_type; UPDATE tab SET new_col = CAST(old_col AS new_data_type); ALTER TABLE tab DROP COLUMN old_col; COMMIT; -4.5) حداكثر اندازه يك رديف، جدول و خود پايگاه داده چقدر است؟ -محدوديتها عبارتند از: - حداكثر اندازه پايگاه داده نامحدود (تا 32 ترابايت وجود دارد) - حداكثر اندازه يك جدول 32 ترابايت - حداكثر ا ندازه يك رديف 1.6 ترابايت - حداكثر اندازه يك فيلد 1 گيگا بايت - حداكثر اندازه رديفهاي يك جدول نا محدود - حداكثر ستونهاي يك جدول بسته به نوع جدول بين 250 تا 6000 - حداكثر انديسهاي يك جدول نا محدود -البته در حالت نامحدود نيز ما محدود به حجم هاردديسك و فضاي حافظه خواهيم بود. در -صورتي که مقادير مشخص شده به عنوان نامحدود به صورت غير معمولي بزرك شوند كارايي -سيستم كاهش خواهد يافت. -براي ذخيره كردن جداول با اندازه خيلي بزرگ نيازي نيست كه سيستم عامل امكان ايجاد -فايلهاي بزرگ را داشته باشد. بلكه جداول خيلي بزرگ به صورت فايلهايي به حجم يك گيگا -بايت نگاهداري ميشوند. -اگر اندازه بلوكهاي داده را برابر 32 كيلو بايت قرار دهيم حداكثر اندازه جدول و -حداكثر تعداد ستونها 4 برابر خواهد شد. -4.6) چقدر فضاي ديسك سخت براي ذخيره كردن دادههاي يك فايل متني مورد نياز است؟ -يك پايگاه داده PostgreSQL تا 5 برابر فضايي روي هاردديسك براي نگاهداري يك فايل -متني نياز دارد. -به عنوان مثال يك فايل با 100000 خط را در نظر بگيريد كه در هر خط يك عدد صحيح و يك -توضيح متني آمده است. فرض كنيد كه رشته متني به طور متوسط 20 بايت باشد. اندازه -فايل برابر 2.8 مگا بايت خواهد بود ولي PostgreSQL براي نگاهداري اين فايل به 6.4 -مگا بايت اطلاعات نياز خواهد داشت. - 32 bytes: اندازه سرايند هر خط به طور تقريبي - 24 bytes: يك عدد صحيح و يك رشته 24 بايتي - + 4 bytes: اشاره گر روي صفحه به يك چندتايي + + 4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+ + p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+ + + m+hkd+w+d+y+t+h+a+ e+b+a+r+t+n+d+ a+z+: + + hkd+a+k+tkr+ a+n+d+a+z+h+ p+a+y+gfa+h+ d+a+d+h+ n+a+m+hkd+w+d+(t+a+ 32 t+r+a+b+a+y+t+ w+g+w+d+ d+a+r+d+) + hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ g+d+w+l+ 32 t+r+a+b+a+y+t+ + hkd+a+k+tkr+ a+ n+d+a+z+h+ y+k+ r+d+y+f+ 1.6 t+r+a+b+a+y+t+ + hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ f+y+l+d+ 1 gfy+gfa+ b+a+y+t+ + hkd+a+k+tkr+ a+n+d+a+z+h+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+ n+a+ m+hkd+w+d+ + hkd+a+k+tkr+ s+t+w+n+h+a+y+ y+k+ g+d+w+l+ b+s+t+h+ b+h+ n+w+e+ g+d+w+l+ b+y+n+ 250 t+a+ 6000 + hkd+a+k+tkr+ a+n+d+y+s+h+a+y+ y+k+ g+d+w+l+ n+a+ m+hkd+w+d+ + + a+l+b+t+h+ d+r+ hka+l+t+ n+a+m+hkd+w+d+ n+y+z+ m+a+ m+hkd+w+d+ b+h+ + hkg+m+ h+a+r+d+d+y+s+k+ w+ f+dda+y+ hka+f+zHh+ x+w+a+h+y+m+ b+w+d+. + d+r+ c+w+r+t+y+ کh+ m+q+a+d+y+r+ m+snx+c+ snd+h+ b+h+ e+n+w+a+n+ + n+a+m+hkd+w+d+ b+h+ c+w+r+t+ i+y+r+ m+e+m+w+l+y+ b+z+r+k+ snw+n+d+ + k+a+r+a+y+y+ s+y+s+t+m+ k+a+h+sn x+w+a+h+d+ y+a+f+t+. + + b+r+a+y+ dkx+y+r+h+ k+r+d+n+ g+d+a+w+l+ b+a+ a+n+d+a+z+h+ x+y+l+y+ + b+z+r+gf n+y+a+z+y+ n+y+s+t+ k+h+ s+y+s+t+m+ e+a+m+l+ a+m+k+a+n+ + a+y+g+a+d+ f+a+y+l+h+a+y+ b+z+r+gf r+a+ d+a+snt+h+ b+a+snd+. b+l+k+h+ + g+d+a+w+l+ x+y+l+y+ b+z+r+gf b+h+ c+w+r+t+ f+a+y+l+h+a+y+y+ b+h+ + hkg+m+ y+k+ gfy+gfa+ b+a+y+t+ n+gfa+h+d+a+r+y+ m+y+snw+n+d+. + + a+gfr+ a+n+d+a+z+h+ b+l+w+k+h+a+y+ d+a+d+h+ r+a+ b+r+a+b+r+ 32 + k+y+l+w+ b+a+y+t+ q+r+a+r+ d+h+y+m+ hkd+a+k+tkr+ a+n+d+a+z+h+ g+d+w+l+ + w+ hkd+a+k+tkr+ t+e+d+a+d+ s+t+w+n+h+a+ 4 b+r+a+b+r+ x+w+a+h+d+ snd+. + + 4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+ + d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+ + + y+k+ p+a+y+gfa+h+ d+a+d+h+ PostgreSQL t+a+ 5 b+r+a+b+r+ f+dda+y+y+ + r+w+y+ h+a+r+d+d+y+s+k+ b+r+a+y+ n+gfa+h+d+a+r+y+ y+k+ f+a+y+l+ + m+t+n+y+ n+y+a+z+ d+a+r+d+. + + b+h+ e+n+w+a+n+ m+tka+l+ y+k+ f+a+y+l+ b+a+ 100000 x+tj r+a+ d+r+ + n+zHr+ b+gfy+r+y+d+ k+h+ d+r+ h+r+ x+tj y+k+ e+d+d+ c+hky+hk w+ y+k+ + t+w+ddy+hk m+t+n+y+ aMm+d+h+ a+s+t+. f+r+dd k+n+y+d+ k+h+ r+snt+h+ + m+t+n+y+ b+h+ tjw+r+ m+t+w+s+tj 20 b+a+y+t+ b+a+snd+. a+n+d+a+z+h+ + f+a+y+l+ b+r+a+b+r+ 2.8 m+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+ w+l+y+ + PostgreSQL b+r+a+y+ n+gfa+h+d+a+r+y+ a+y+n+ f+a+y+l+ b+h+ 6.4 m+gfa+ + b+a+y+t+ a+tjl+a+e+a+t+ n+y+a+z+ x+w+a+h+d+ d+a+snt+. + + 32 bytes: a+n+d+a+z+h+ s+r+a+y+n+d+ h+r+ x+tj b+h+ tjw+r+ t+q+r+y+b+y+ + 24 bytes: y+k+ e+d+d+ c+hky+hk w+ y+k+ r+snt+h+ 24 b+a+y+t+y+ + + 4 bytes: a+sna+r+h+ gfr+ r+w+y+ c+f+hkh+ b+h+ y+k+ tcn+d+t+a+y+y+ ---------------------------------------- - 60 bytes در هر رديف + 60 bytes d+r+ h+r+ r+d+y+f+ -اندازه صفحات داده در PostgreSQL برابر با 8 كيلو بايت است - 8192 تعداد بايتها در هر صفحه - ------------------- = 136 تعداد رديفها در يك صفحه پايگاه داده - 60 تعداد بايتهاي هر رديف +a+n+d+a+z+h+ c+f+hka+t+ d+a+d+h+ d+r+ PostgreSQL b+r+a+b+r+ b+a+ 8 k+y+l+w+ b+a+y+t+ a+s+t+ + 8192 t+e+d+a+d+ b+a+y+t+h+a+ d+r+ h+r+ c+f+hkh+ + ------------------- = 136 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ y+k+ c+f+hkh+ p+a+y+gfa+h+ d+a+d+h+ + 60 t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ r+d+y+f+ - 100000 تعداد رديفها - -------------------- = تعدادصفحات پايگاه داده - 128 تعداد رديفها در هر صفحه + 100000 t+e+d+a+d+ r+d+y+f+h+a+ + -------------------- = t+e+d+a+d+c+f+hka+t+ p+a+y+gfa+h+ d+a+d+h+ + 128 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ h+r+ c+f+hkh+ -735 تعداد صفحات * 8192 تعداد بايتهاي هر صفحه = 6,021,120 مگا بايت -سربار انديسها يا نمايهها از اين مقدار كمتر است ولي چون شامل خود دادهها هم هست -ممکن است اندازه آنها هم بزرگ شود. -NULLها به صورت bitmap ذخيره ميشوند و از اينرو فضاي بسيار كمي را اشغال ميكنند. -4.7) چگونه ميتوانم بفهمم كه چه كاربران، پايگاه داده، نمايه و جداولي در سيستم -تعريف شده است؟ -psql تعداد زيادي دستور دارد كه با \ شروع ميشوند و اين اطلاعات را در اختيار ما -قرار ميدهند. براي ديدن آنها دستور ?\ را اجرا كنيد. همچنين جداول سيستمي كه نام -آنها با pg_ شروع ميشود نيز اين اطلاعات را در خود دارند. اجراي برنامه psql با -گزينه l- نيز باعث نشان دادن ليست تمام پايگاههاي داده ميشود. -همچنين فايل pgsql/src/tutorial/syscat.source نيز فرمانهاي SELECT كه با استفاده -از آن ميتوان اطلاعات پايگاه داده را استخراج كرد شرح داده است. -4.8) چرا درخواستهاي من كند اجرا ميشوند يا چرا از نمايه ها استفاده نميكنند؟ -به طور معمول براي درخواستها از نمايهها استفاده نميشود. تنها در صورتي از -نمايهها استفاده ميشود كه اندازه جدول از يك اندازه حداقل بزرگتر باشد و درخواست -هم فقط قسمتي از رديفهاي جدول را انتخاب كرده باشد. دليل اين كار آن است كه -دسترسيهاي تصادفي به هاردديسك كه به خاطر نمايهها ايجاد ميشود ممكن است از -خواندن مستقيم جدول يا خواندن ترتيبي ركوردها كندتر باشد. -براي تعيين اينكه از نمايه استفاده شود يا خير، PostgreSQL بايد اطلاعات آماري را -در مورد يك جدول بداند. اين اطلاعات توسط دستور ANALYZE و VACUUM ANALYZE به دست -ميآيد. با استفاده از اين اطلاعات، بهينه ساز از تعداد رديفهاي يك جدول اطلاع -پيدا ميكند و بهتر ميتواند تعيين كند كه آيا از نمايه استفاده شود يا خير. -اطلاعات آماري همچنين براي تعيين ترتيب الحاق و روشهاي الحاق به صورت بهينه نيز -كاربرد دارد. جمع آوري اطلاعات آماري بايد به صورت دورهاي همزمان با تغيير -دادههاي جدول انجام شود. -نمايهها به طور معمول همراه با دستور ORDER BY به كار برده نميشوند. براي يك جدول -بزرگ يك پيمايش ترتيبي همراه با دستور مرتب سازي از به كار بردن نمايهها سريعتر -خواهد بود. -اما اگر همراه با ORDER BY از LIMIT استفاده شود اغلب از نمايهها استفاده ميشود -چون فقط قسمتي از جدول برگردانده ميشود. در حقيقت هر چند توابع ()MIN و ()MAX از -نمايهها استفاده نميكنند ولي ميتوانيم با استفاده از دستور زير با استفاده از -نمايهها و دستور ORDER BY و LIMIT ، آنها را به دست آوريم. +735 t+e+d+a+d+ c+f+hka+t+ * 8192 t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ c+f+hkh+ = 6,021,120 m+gfa+ b+a+y+t+ + + s+r+b+a+r+ a+n+d+y+s+h+a+ y+a+ n+m+a+y+h+h+a+ a+z+ a+y+n+ m+q+d+a+r+ + k+m+t+r+ a+s+t+ w+l+y+ tcw+n+ sna+m+l+ x+w+d+ d+a+d+h+h+a+ h+m+ h+s+t+ + m+m+کn+ a+s+t+ a+n+d+a+z+h+ aMn+h+a+ h+m+ b+z+r+gf snw+d+. + + NULLh+a+ b+h+ c+w+r+t+ bitmap dkx+y+r+h+ m+y+snw+n+d+ w+ a+z+ + a+y+n+r+w+ f+dda+y+ b+s+y+a+r+ k+m+y+ r+a+ a+sni+a+l+ m+y+k+n+n+d+. + + 4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+ + p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+ + t+e+r+y+f+ snd+h+ a+s+t+?+ + + psql t+e+d+a+d+ z+y+a+d+y+ d+s+t+w+r+ d+a+r+d+ k+h+ b+a+ \ snr+w+e+ + m+y+snw+n+d+ w+ a+y+n+ a+tjl+a+e+a+t+ r+a+ d+r+ a+x+t+y+a+r+ m+a+ + q+r+a+r+ m+y+d+h+n+d+. b+r+a+y+ d+y+d+n+ aMn+h+a+ d+s+t+w+r+ ?\ r+a+ + a+g+r+a+ k+n+y+d+. h+m+tcn+y+n+ g+d+a+w+l+ s+y+s+t+m+y+ k+h+ n+a+m+ + aMn+h+a+ b+a+ pg_ snr+w+e+ m+y+snw+d+ n+y+z+ a+y+n+ a+tjl+a+e+a+t+ + r+a+ d+r+ x+w+d+ d+a+r+n+d+. a+g+r+a+y+ b+r+n+a+m+h+ psql b+a+ + gfz+y+n+h+ l- n+y+z+ b+a+e+tk n+sna+n+ d+a+d+n+ l+y+s+t+ t+m+a+m+ + p+a+y+gfa+h+h+a+y+ d+a+d+h+ m+y+snw+d+. + + h+m+tcn+y+n+ f+a+y+l+ pgsql/src/tutorial/syscat.source n+y+z+ + f+r+m+a+n+h+a+y+ SELECT k+h+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+ m+y+ + t+w+a+n+ a+tjl+a+e+a+t+ p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+ + k+r+d+ snr+hk d+a+d+h+ a+s+t+. + + 4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+ y+a+ + tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+ + + b+h+ tjw+r+ m+e+m+w+l+ b+r+a+y+ d+r+x+w+a+s+t+h+a+ a+z+ n+m+a+y+h+h+a+ + a+s+t+f+a+d+h+ n+m+y+snw+d+. t+n+h+a+ d+r+ c+w+r+t+y+ a+z+ n+m+a+y+h+ + h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ k+h+ a+n+d+a+z+h+ g+d+w+l+ a+z+ y+k+ + a+n+d+a+z+h+ hkd+a+q+l+ b+z+r+gft+r+ b+a+snd+ w+ d+r+x+w+a+s+t+ h+m+ + f+q+tj q+s+m+t+y+ a+z+ r+d+y+f+h+a+y+ g+d+w+l+ r+a+ a+n+t+x+a+b+ + k+r+d+h+ b+a+snd+. d+l+y+l+ a+y+n+ k+a+r+ aMn+ a+s+t+ k+h+ + d+s+t+r+s+y+h+a+y+ t+c+a+d+f+y+ b+h+ h+a+r+d+d+y+s+k+ k+h+ b+h+ + x+a+tjr+ n+m+a+y+h+h+a+ a+y+g+a+d+ m+y+snw+d+ m+m+k+n+ a+s+t+ a+z+ + x+w+a+n+d+n+ m+s+t+q+y+m+ g+d+w+l+ y+a+ x+w+a+n+d+n+ t+r+t+y+b+y+ + r+k+w+r+d+h+a+ k+n+d+t+r+ b+a+snd+. + + b+r+a+y+ t+e+y+y+n+ a+y+n+k+h+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+ + y+a+ x+y+r+,+ PostgreSQL b+a+y+d+ a+tjl+a+e+a+t+ aMm+a+r+y+ r+a+ d+r+ + m+w+r+d+ y+k+ g+d+w+l+ b+d+a+n+d+. a+y+n+ a+tjl+a+e+a+t+ t+w+s+tj + d+s+t+w+r+ ANALYZE w+ VACUUM ANALYZE b+h+ d+s+t+ m+y+aMy+d+. b+a+ + a+s+t+f+a+d+h+ a+z+ a+y+n+ a+tjl+a+e+a+t+,+ b+h+y+n+h+ s+a+z+ a+z+ + t+e+d+a+d+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+ a+tjl+a+e+ p+y+d+a+ m+y+k+n+d+ + w+ b+h+t+r+ m+y+t+w+a+n+d+ t+e+y+y+n+ k+n+d+ k+h+ aMy+a+ a+z+ + n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+ y+a+ x+y+r+. a+tjl+a+e+a+t+ + aMm+a+r+y+ h+m+tcn+y+n+ b+r+a+y+ t+e+y+y+n+ t+r+t+y+b+ a+l+hka+q+ w+ + r+w+snh+a+y+ a+l+hka+q+ b+h+ c+w+r+t+ b+h+y+n+h+ n+y+z+ k+a+r+b+r+d+ + d+a+r+d+. g+m+e+ aMw+r+y+ a+tjl+a+e+a+t+ aMm+a+r+y+ b+a+y+d+ b+h+ + c+w+r+t+ d+w+r+h+a+y+ h+m+z+m+a+n+ b+a+ t+i+y+y+r+ d+a+d+h+h+a+y+ + g+d+w+l+ a+n+g+a+m+ snw+d+. + + n+m+a+y+h+h+a+ b+h+ tjw+r+ m+e+m+w+l+ h+m+r+a+h+ b+a+ d+s+t+w+r+ ORDER + BY b+h+ k+a+r+ b+r+d+h+ n+m+y+snw+n+d+. b+r+a+y+ y+k+ g+d+w+l+ + b+z+r+gf y+k+ p+y+m+a+y+sn t+r+t+y+b+y+ h+m+r+a+h+ b+a+ d+s+t+w+r+ + m+r+t+b+ s+a+z+y+ a+z+ b+h+ k+a+r+ b+r+d+n+ n+m+a+y+h+h+a+ + s+r+y+e+t+r+ x+w+a+h+d+ b+w+d+. + + a+m+a+ a+gfr+ h+m+r+a+h+ b+a+ ORDER BY a+z+ LIMIT a+s+t+f+a+d+h+ + snw+d+ a+i+l+b+ a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ tcw+n+ + f+q+tj q+s+m+t+y+ a+z+ g+d+w+l+ b+r+gfr+d+a+n+d+h+ m+y+snw+d+. d+r+ + hkq+y+q+t+ h+r+ tcn+d+ t+w+a+b+e+ ()MIN w+ ()MAX a+z+ n+m+a+y+h+h+a+ + a+s+t+f+a+d+h+ n+m+y+k+n+n+d+ w+l+y+ m+y+t+w+a+n+y+m+ b+a+ + a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ z+y+r+ b+a+ a+s+t+f+a+d+h+ a+z+ + n+m+a+y+h+h+a+ w+ d+s+t+w+r+ ORDER BY w+ LIMIT ,+ aMn+h+a+ r+a+ b+h+ + d+s+t+ aMw+r+y+m+. + SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1; -اگر شما فكر ميكنيد كه بهينه ساز سيستم در انتخاب پيمايش ترتيبي اشتباه كرده است -با دستور 'SET enable_seqscan TO 'off' ميتوانيد ببينيد آيا استفاده از نمايهها -باعث افزايش سرعت درخواستها خواهد شد يا خير. -استفاده از نمايهها هنگامي كه از علائم ويژه نظير LIKE و ~ استفاده ميكنيد فقط در -بعضي شرايط خاص كه در اينجا ذكر شده است ممكن است: - ابتداي رشته جستجو بايد به طور صريح مشخص باشد براي مثال: -- دستورات LIKE نبايد با علامت % شروع شوند -- الگوهاي منظمي كه با ~ ميآيد حتماً بايد با علامت ^ شروع شود - رشته جستجو نبايد با يك مجموعه از كاراكترها مثل [a-e] شروع شود - جستجوهاي غيرحساس به متن مثل ILIKE و *~ از نمايهها استفاده نميكنند. در عوض - از توابع نمايهاي كه در قسمت 4.12 توضيح داده شد استفاده ميكنند. - مقدار پيش فرض locale بايد در initdb استفاده شود. -4.9) چگونه ميتوانم نحوه بررسي درخواست را توسط بهينهساز درخواستها مشاهده كنم؟ -راهنماي دستور EXPLAIN را نگاه كنيد. -4.10) نمايه R-tree چيست؟ -از نمايه R-Tree براي انديس كردن دادههاي فاصلهاي استفاده ميشود. يك نمايه hash -نميتواند جستجوهاي محدودهاي را انجام دهد. نمايه "B-tree" نيز براي انجام جستجوي -محدودهاي در يك جهت قابل استفاده است. اما R-Tree ميتواند دادههاي چند بعدي را -نيز پشتيباني كند. براي مثال اگر از نمايه R-tree براي گونه Point استفاده شود -سرعت درخواستهايي نظير "select all points within a bounding rectangle" به مراتب -افزايش مييابد. -مقالهاي كه طراحي R-tree را توضيح داده است -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. -R-tree ميتواند چندضلعيها و چند وجهي را پشتيباني كند. در تئوري، R-tree ميتواند -تعداد بعدهاي بالاتري را نيز پشتيباني كند. در عمل توسعه R-tree نياز به كار -بيشتري دارد. -4.11) بهينه ساز تكويني درخواست چيست؟ (Genetic Query Optimizer) -استفاده از GEQO سرعت بهينه سازي درخواست را هنگاميكه تعداد زيادي جدول را با -استفاده از الگوريتم ژنتيك الحاق ميكنيم افزايش ميدهد. -4.12) چگونه از عبارات منظم براي جستجو استفاده كنم؟ چگونه جستجويي انجام دهم كه -حساس به متن نباشد؟ چگونه براي يك جستجوي غير حساس به متن از نمايه استفاده كنم؟ -براي جستجوي عبارت منظم از عملگر ~ استفاده ميكنيم. براي جستجوي غير حساس به متن -از عملگر *~ و يا ILIKE استفاده ميكنيم. -روش ديگر انجام جستجوي غير حساس به متن در زير نشان داده شده است. + + a+gfr+ snm+a+ f+k+r+ m+y+k+n+y+d+ k+h+ b+h+y+n+h+ s+a+z+ s+y+s+t+m+ + d+r+ a+n+t+x+a+b+ p+y+m+a+y+sn t+r+t+y+b+y+ a+snt+b+a+h+ k+r+d+h+ + a+s+t+ b+a+ d+s+t+w+r+ 'SET enable_seqscan TO 'off' m+y+t+w+a+n+y+d+ + b+b+y+n+y+d+ aMy+a+ a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ b+a+e+tk + a+f+z+a+y+sn s+r+e+t+ d+r+x+w+a+s+t+h+a+ x+w+a+h+d+ snd+ y+a+ x+y+r+. + + a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ h+n+gfa+m+y+ k+h+ a+z+ e+l+a+yHm+ + w+y+zjh+ n+zHy+r+ LIKE w+ ~ a+s+t+f+a+d+h+ m+y+k+n+y+d+ f+q+tj d+r+ + b+e+ddy+ snr+a+y+tj x+a+c+ k+h+ d+r+ a+y+n+g+a+ dkk+r+ snd+h+ a+s+t+ + m+m+k+n+ a+s+t+: + * a+b+t+d+a+y+ r+snt+h+ g+s+t+g+w+ b+a+y+d+ b+h+ tjw+r+ c+r+y+hk + m+snx+c+ b+a+snd+ b+r+a+y+ m+tka+l+: + + - d+s+t+w+r+a+t+ LIKE n+b+a+y+d+ b+a+ e+l+a+m+t+ % snr+w+e+ snw+n+d+ + + - a+l+gfw+h+a+y+ m+n+zHm+y+ k+h+ b+a+ ~ m+y+aMy+d+ hkt+m+a+:+ b+a+y+d+ + b+a+ e+l+a+m+t+ ^ snr+w+e+ snw+d+ + * r+snt+h+ g+s+t+g+w+ n+b+a+y+d+ b+a+ y+k+ m+g+m+w+e+h+ a+z+ + k+a+r+a+k+t+r+h+a+ m+tkl+ [a-e] snr+w+e+ snw+d+ + * g+s+t+g+w+h+a+y+ i+y+r+hks+a+s+ b+h+ m+t+n+ m+tkl+ ILIKE w+ *~ + a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+. d+r+ e+w+dd + a+z+ t+w+a+b+e+ n+m+a+y+h+a+y+ k+h+ d+r+ q+s+m+t+ 4.12 t+w+ddy+hk + d+a+d+h+ snd+ a+s+t+f+a+d+h+ m+y+k+n+n+d+. + * m+q+d+a+r+ p+y+sn f+r+dd locale b+a+y+d+ d+r+ initdb + a+s+t+f+a+d+h+ snw+d+. + + 4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+ + t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+ + + r+a+h+n+m+a+y+ d+s+t+w+r+ EXPLAIN r+a+ n+gfa+h+ k+n+y+d+. + + 4.10) n+m+a+y+h+ R-tree tcy+s+t+?+ + + a+z+ n+m+a+y+h+ R-Tree b+r+a+y+ a+n+d+y+s+ k+r+d+n+ d+a+d+h+h+a+y+ + f+a+c+l+h+a+y+ a+s+t+f+a+d+h+ m+y+snw+d+. y+k+ n+m+a+y+h+ hash n+m+y+ + t+w+a+n+d+ g+s+t+g+w+h+a+y+ m+hkd+w+d+h+a+y+ r+a+ a+n+g+a+m+ d+h+d+. + n+m+a+y+h+ "B-tree" n+y+z+ b+r+a+y+ a+n+g+a+m+ g+s+t+g+w+y+ + m+hkd+w+d+h+a+y+ d+r+ y+k+ g+h+t+ q+a+b+l+ a+s+t+f+a+d+h+ a+s+t+. + a+m+a+ R-Tree m+y+t+w+a+n+d+ d+a+d+h+h+a+y+ tcn+d+ b+e+d+y+ r+a+ + n+y+z+ p+snt+y+b+a+n+y+ k+n+d+. b+r+a+y+ m+tka+l+ a+gfr+ a+z+ + n+m+a+y+h+ R-tree b+r+a+y+ gfw+n+h+ Point a+s+t+f+a+d+h+ snw+d+ + s+r+e+t+ d+r+x+w+a+s+t+h+a+y+y+ n+zHy+r+ "select all points within a + bounding rectangle" b+h+ m+r+a+t+b+ a+f+z+a+y+sn m+y+y+a+b+d+. + + m+q+a+l+h+a+y+ k+h+ tjr+a+hky+ R-tree r+a+ t+w+ddy+hk d+a+d+h+ a+s+t+ + + 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. + + R-tree m+y+t+w+a+n+d+ tcn+d+ddl+e+y+h+a+ w+ tcn+d+ w+g+h+y+ r+a+ + p+snt+y+b+a+n+y+ k+n+d+. d+r+ t+yHw+r+y+,+ R-tree m+y+t+w+a+n+d+ + t+e+d+a+d+ b+e+d+h+a+y+ b+a+l+a+t+r+y+ r+a+ n+y+z+ p+snt+y+b+a+n+y+ + k+n+d+. d+r+ e+m+l+ t+w+s+e+h+ R-tree n+y+a+z+ b+h+ k+a+r+ + b+y+snt+r+y+ d+a+r+d+. + + 4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+ (Genetic + Query Optimizer) + + a+s+t+f+a+d+h+ a+z+ GEQO s+r+e+t+ b+h+y+n+h+ s+a+z+y+ d+r+x+w+a+s+t+ + r+a+ h+n+gfa+m+y+k+h+ t+e+d+a+d+ z+y+a+d+y+ g+d+w+l+ r+a+ b+a+ + a+s+t+f+a+d+h+ a+z+ a+l+gfw+r+y+t+m+ zjn+t+y+k+ a+l+hka+q+ m+y+ + k+n+y+m+ a+f+z+a+y+sn m+y+d+h+d+. + + 4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+ + a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+ k+h+ + hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+ g+s+t+g+w+y+ + i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ k+n+m+?+ + + b+r+a+y+ g+s+t+g+w+y+ e+b+a+r+t+ m+n+zHm+ a+z+ e+m+l+gfr+ ~ + a+s+t+f+a+d+h+ m+y+k+n+y+m+. b+r+a+y+ g+s+t+g+w+y+ i+y+r+ hks+a+s+ + b+h+ m+t+n+ a+z+ e+m+l+gfr+ *~ w+ y+a+ ILIKE a+s+t+f+a+d+h+ m+y+ + k+n+y+m+. + + r+w+sn d+y+gfr+ a+n+g+a+m+ g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+ + d+r+ z+y+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+. SELECT * FROM tab WHERE lower(col) = 'abc'; -اين از نمايههاي استاندارد استفاده نميكند. ولي شما مي توانيد با دستور زير يك -نمايه ايجاد كنيد و از آن استفاده كنيد. + + a+y+n+ a+z+ n+m+a+y+h+h+a+y+ a+s+t+a+n+d+a+r+d+ a+s+t+f+a+d+h+ n+m+y+ + k+n+d+. w+l+y+ snm+a+ m+y+ t+w+a+n+y+d+ b+a+ d+s+t+w+r+ z+y+r+ y+k+ + n+m+a+y+h+ a+y+g+a+d+ k+n+y+d+ w+ a+z+ aMn+ a+s+t+f+a+d+h+ k+n+y+d+. CREATE INDEX tabindex ON tab (lower(col)); -4.13) چگونه ميتوانم در يك درخواست تشخيص دهم كه يك فيلد NULL است؟ -با استفاده از توابع IS NULL و IS NOT NULL ميتوانيم NULL بودن يك فيلد را تست -كنيم. -4.14) تفاوت بين گونههاي مختلف character چيست؟ + + 4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+ d+h+m+ + k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+ + + b+a+ a+s+t+f+a+d+h+ a+z+ t+w+a+b+e+ IS NULL w+ IS NOT NULL m+y+ + t+w+a+n+y+m+ NULL b+w+d+n+ y+k+ f+y+l+d+ r+a+ t+s+t+ k+n+y+m+. + + 4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+ + Type Internal Name Notes -------------------------------------------------- -VARCHAR(n) varchar اندازه، حداكثر طول را نشان مي دهد بدون اضافه شدن كاراكتر اضافه -CHAR(n) bpchar كاراكترهاي بلانك براي پر شدن طول مشخص شده استفاده ميشود -TEXT text حداكثر طول را مشخص نميكند -BYTEA bytea آرايهاي از بايت با طول متغير -"char" char يك كاراكتر -نام داخلي گونهها را در system catalogue و بعضي از پيغامهاي خطا ميتوان ديد. -چهار گونه اول همگي از نوع varlena هستند (4 بايت اول روي ديسك طول را مشخص ميكند -كه به دنبال آن دادهها قرار دارند.)بنابراين فضاي واقعي استفاده شده روي ديسك از -اندازه تعريف شده بيشتر است. اما اين گونهها را ميتوان فشرده كرد كه اينكار باعث -ميشود فضاي كمتري روي ديسك اشغال كنند. -براي ذخيره رشتههاي با طول متغير(VARCHAR(n بهترين انتخاب است. در اين گونه -حداكثر طول رشته محدود است بر خلاف text كه هيچ محدوديتي روي حداكثر اندازه رشته -نميگذارد.(در اين گونه حداكثر طول يك رشته يك گيگا بايت خواهد بود) -گونه (CHAR(n براي ذخيره دادههاي با طول يكسان است.يك گونهي (CHAR(n با -كاراكترهاي بلانك (خالي) پر ميشود تا به طول مشخص شده برسد در حاليكه گونه VARCHAR -كاراكترها را به همان صورت كه هستند ذخيره ميكند. گونه BYTEA براي ذخيره دادههاي -باينري است به خصوص دادههاي باينري كه شامل بايتهاي NULL هستند. از نظر كارايي -تمام اين گونهها يكسان هستند. -4.15.1) چگونه ميتوانم يك فيلد سريال يا افزايشي ايجاد كنم؟ -PostgreSQL از دادههاي سريال پشتيباني ميكند. براي ايجاد يك فيلد سريال (براي -داشتن يك فيلد منحصر به فرد براي هر رديف )به روش زير عمل كنيد: - CREATE TABLE person ( - id SERIAL, - name TEXT +VARCHAR(n) varchar a+n+d+a+z+h+,+ hkd+a+k+tkr+ tjw+l+ r+a+ n+sna+n+ m+y+ d+h+d+ b+d+w+n+ a+dda+f+h+ snd+n+ k+a+r+a+k+t+r+ a+dda+f+h+ +CHAR(n) bpchar k+a+r+a+k+t+r+h+a+y+ b+l+a+n+k+ b+r+a+y+ p+r+ snd+n+ tjw+l+ m+snx+c+ snd+h+ a+s+t+f+a+d+h+ m+y+snw+d+ +TEXT text hkd+a+k+tkr+ tjw+l+ r+a+ m+snx+c+ n+m+y+k+n+d+ +BYTEA bytea aMr+a+y+h+a+y+ a+z+ b+a+y+t+ b+a+ tjw+l+ m+t+i+y+r+ +"char" char y+k+ k+a+r+a+k+t+r+ + + n+a+m+ d+a+x+l+y+ gfw+n+h+h+a+ r+a+ d+r+ system catalogue w+ b+e+ddy+ + a+z+ p+y+i+a+m+h+a+y+ x+tja+ m+y+t+w+a+n+ d+y+d+. + + tch+a+r+ gfw+n+h+ a+w+l+ h+m+gfy+ a+z+ n+w+e+ varlena h+s+t+n+d+ (4 + b+a+y+t+ a+w+l+ r+w+y+ d+y+s+k+ tjw+l+ r+a+ m+snx+c+ m+y+k+n+d+ k+h+ + b+h+ d+n+b+a+l+ aMn+ d+a+d+h+h+a+ q+r+a+r+ d+a+r+n+d+.) + b+n+a+b+r+a+y+n+ f+dda+y+ w+a+q+e+y+ a+s+t+f+a+d+h+ snd+h+ r+w+y+ + d+y+s+k+ a+z+ a+n+d+a+z+h+ t+e+r+y+f+ snd+h+ b+y+snt+r+ a+s+t+. a+m+a+ + a+y+n+ gfw+n+h+h+a+ r+a+ m+y+t+w+a+n+ f+snr+d+h+ k+r+d+ k+h+ + a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ f+dda+y+ k+m+t+r+y+ r+w+y+ d+y+s+k+ + a+sni+a+l+ k+n+n+d+. + + b+r+a+y+ dkx+y+r+h+ r+snt+h+h+a+y+ b+a+ tjw+l+ m+t+i+y+r+(VARCHAR(n + b+h+t+r+y+n+ a+n+t+x+a+b+ a+s+t+. d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+ + tjw+l+ r+snt+h+ m+hkd+w+d+ a+s+t+ b+r+ x+l+a+f+ text k+h+ h+y+tc + m+hkd+w+d+y+t+y+ r+w+y+ hkd+a+k+tkr+ a+n+d+a+z+h+ r+snt+h+ n+m+y+ + gfdka+r+d+.(d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+ tjw+l+ y+k+ r+snt+h+ + y+k+ gfy+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+) + + gfw+n+h+ (CHAR(n b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+ tjw+l+ + y+k+s+a+n+ a+s+t+.y+k+ gfw+n+h+y+ (CHAR(n b+a+ k+a+r+a+k+t+r+h+a+y+ + b+l+a+n+k+ (x+a+l+y+) p+r+ m+y+snw+d+ t+a+ b+h+ tjw+l+ m+snx+c+ snd+h+ + b+r+s+d+ d+r+ hka+l+y+k+h+ gfw+n+h+ VARCHAR k+a+r+a+k+t+r+h+a+ r+a+ + b+h+ h+m+a+n+ c+w+r+t+ k+h+ h+s+t+n+d+ dkx+y+r+h+ m+y+k+n+d+. gfw+n+h+ + BYTEA b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ a+s+t+ b+h+ + x+c+w+c+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ k+h+ sna+m+l+ b+a+y+t+h+a+y+ NULL + h+s+t+n+d+. a+z+ n+zHr+ k+a+r+a+y+y+ t+m+a+m+ a+y+n+ gfw+n+h+h+a+ + y+k+s+a+n+ h+s+t+n+d+. + + 4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+ + a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+ + + PostgreSQL a+z+ d+a+d+h+h+a+y+ s+r+y+a+l+ p+snt+y+b+a+n+y+ m+y+k+n+d+. + b+r+a+y+ a+y+g+a+d+ y+k+ f+y+l+d+ s+r+y+a+l+ (b+r+a+y+ d+a+snt+n+ y+k+ + f+y+l+d+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+y+ h+r+ r+d+y+f+ )b+h+ r+w+sn + z+y+r+ e+m+l+ k+n+y+d+: + CREATE TABLE person ( + id SERIAL, + name TEXT ); -دستور بالا به طور اتوماتيک به دستور زير تبديل ميشود: + + d+s+t+w+r+ b+a+l+a+ b+h+ tjw+r+ a+t+w+m+a+t+y+ک b+h+ d+s+t+w+r+ + z+y+r+ t+b+d+y+l+ m+y+snw+d+: CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( + CREATE TABLE person ( id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT + name TEXT ); -براي ديدن اطلاعات بيشتر به راهنماي دستور create_sequence مراجعه كنيد. همچنين -ميتوان از OIDهر رديف به عنوان يك مقدار منحصر به فرد استفاده كرد. اما در اين -حالت براي dump كردن و reloadكردن پايگاه داده بايد دستور pg_dumps را با گزينه -o- اجرا كنيد. -4.15.2) چگونه ميتوانم مقدار يك درج سريالي را بدانم؟ -يك روش براي گرفتن مقدار بعدي يك فيلد سريال استفاده از تابع ()nextval است. در شبه -كُدي كه در ادامه آمده است روش انجام اين كار نشان داده شده است: + + b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ r+a+h+n+m+a+y+ + d+s+t+w+r+ create_sequence m+r+a+g+e+h+ k+n+y+d+. h+m+tcn+y+n+ m+y+ + t+w+a+n+ a+z+ OIDh+r+ r+d+y+f+ b+h+ e+n+w+a+n+ y+k+ m+q+d+a+r+ + m+n+hkc+r+ b+h+ f+r+d+ a+s+t+f+a+d+h+ k+r+d+. a+m+a+ d+r+ a+y+n+ + hka+l+t+ b+r+a+y+ dump k+r+d+n+ w+ reloadk+r+d+n+ p+a+y+gfa+h+ + d+a+d+h+ b+a+y+d+ d+s+t+w+r+ pg_dumps r+a+ b+a+ gfz+y+n+h+ o- a+g+r+a+ + k+n+y+d+. + + 4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+ r+a+ + b+d+a+n+m+?+ + + y+k+ r+w+sn b+r+a+y+ gfr+f+t+n+ m+q+d+a+r+ b+e+d+y+ y+k+ f+y+l+d+ + s+r+y+a+l+ a+s+t+f+a+d+h+ a+z+ t+a+b+e+ ()nextval a+s+t+. d+r+ snb+h+ + k+'+d+y+ k+h+ d+r+ a+d+a+m+h+ aMm+d+h+ a+s+t+ r+w+sn a+n+g+a+m+ a+y+n+ + k+a+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+: new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -با اجراي دستور فوق مقدار جديد را در متغير new_id نيز خواهيدداشت كه ميتوانيد آن -را در بقيه درخواستها نيز استفاده كنيد. توجه داشته باشيد كه نام SEQUENCEيي كه به -طور اتوماتيك ايجاد شده است به صورت table_serialcolumn_seq خواهد بود. كه در آن -table نام جدول و serialcolumn نام فيلد سريال جدول ميباشد. -براي ديدن مقدار نسبت داده شده به فيلد سريال نيز ميتوان از تابع () currval به -صورت زير استفاده كرد. + + b+a+ a+g+r+a+y+ d+s+t+w+r+ f+w+q+ m+q+d+a+r+ g+d+y+d+ r+a+ d+r+ + m+t+i+y+r+ new_id n+y+z+ x+w+a+h+y+d+d+a+snt+ k+h+ m+y+t+w+a+n+y+d+ + aMn+ r+a+ d+r+ b+q+y+h+ d+r+x+w+a+s+t+h+a+ n+y+z+ a+s+t+f+a+d+h+ + k+n+y+d+. t+w+g+h+ d+a+snt+h+ b+a+sny+d+ k+h+ n+a+m+ SEQUENCEy+y+ k+h+ + b+h+ tjw+r+ a+t+w+m+a+t+y+k+ a+y+g+a+d+ snd+h+ a+s+t+ b+h+ c+w+r+t+ + table_serialcolumn_seq x+w+a+h+d+ b+w+d+. k+h+ d+r+ aMn+ table n+a+m+ + g+d+w+l+ w+ serialcolumn n+a+m+ f+y+l+d+ s+r+y+a+l+ g+d+w+l+ m+y+ + b+a+snd+. + + b+r+a+y+ d+y+d+n+ m+q+d+a+r+ n+s+b+t+ d+a+d+h+ snd+h+ b+h+ f+y+l+d+ + s+r+y+a+l+ n+y+z+ m+y+t+w+a+n+ a+z+ t+a+b+e+ () currval b+h+ c+w+r+t+ + z+y+r+ a+s+t+f+a+d+h+ k+r+d+. execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); -و سرانجام شما ميتوانيد از مقدار OID كه خروجي دستور INSERT است براي ديدن مقدار -پيش فرض استفاده كنيد. هر چند اين روش در همه پلتفرمها قابل استفاده نيست و ضمن -اينكه فيلد oid بعد از عدد 4 ميليارد دوباره صفر ميشود. در زبان perl با استفاده -از DBI و DBD::Pg مقدار oidرا ميتوانيد به اين شكل استخراج كنيد: بعد از اجراي -()st->execute$ مقدار oid در متغير sth->pg_oid_status$ ذخيره خواهد شد. -4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر -کاربران می شوند؟ -خیر، استفاده از این توابع شرایط race را به وجود نمی آورد. -4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟ -چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟ -برای بالا بردن امکان اجرای همزمان تراکنشها، اعداد سریالی به محض اجرای تراکنش به -آنها تخصیص می یابد در این حالت اگر بعضی از تراکنشها abort شوند بین اعداد سریالی -استفاده شده یک فاصله خالی به وجود می آید. -4.16) OID و TID چه هستند؟ -OID راه حل PostgreSQL برای داشتن یک شناسه منحصر به فرد برای هر ردیف است. هر ردیف -جدیدی که ایجاد می شود یک OID منحصر به فرد به آن اختصاص می یابد. تمام OIDهایی که -در حین initdb ایجاد می شوند از 16384 کمتر هستند و OIDهایی بعداً تولید می شود از -این عدد بزرگتر خواهد بود. نکته مهم آن است که OIDها نه تنها در یک جدول شبیه -نیستند بلکه در کل پایگاه داده هیچ دو ردیفی دارای OID یکسان نخواهد بود. -PostgreSQL از OID در سیستم داخلی خود برای ایجاد ارتباط بین ردیفهای جداول مختلف -استفاده می کند. توصیه می شود که یک ستون از نوع OID برای ذخیره این فیلد در جدول -ایجاد کنید. ساختن یک نمایه برای این فیلد باعث دسترسی سریعتر به آن خواهد شد. -تمام پایگاههای داده در PostgreSQL برای گرفتن OID جدید از یک ناحیه مرکزی استفاده -می کند. ولی اگر بخواهیم OID را به روش دیگری بگیریم و یا اینکه در حین کپی کردن یک -جدول بخواهیم OIDهای اصلی آن تغییر نکند به روش زیر می توانیم عمل کنیم: + w+ s+r+a+n+g+a+m+ snm+a+ m+y+t+w+a+n+y+d+ a+z+ m+q+d+a+r+ OID k+h+ + x+r+w+g+y+ d+s+t+w+r+ INSERT a+s+t+ b+r+a+y+ d+y+d+n+ m+q+d+a+r+ + p+y+sn f+r+dd a+s+t+f+a+d+h+ k+n+y+d+. h+r+ tcn+d+ a+y+n+ r+w+sn d+r+ + h+m+h+ p+l+t+f+r+m+h+a+ q+a+b+l+ a+s+t+f+a+d+h+ n+y+s+t+ w+ ddm+n+ + a+y+n+k+h+ f+y+l+d+ oid b+e+d+ a+z+ e+d+d+ 4 m+y+l+y+a+r+d+ + d+w+b+a+r+h+ c+f+r+ m+y+snw+d+. d+r+ z+b+a+n+ perl b+a+ a+s+t+f+a+d+h+ + a+z+ DBI w+ DBD::Pg m+q+d+a+r+ oidr+a+ m+y+t+w+a+n+y+d+ b+h+ a+y+n+ + snk+l+ a+s+t+x+r+a+g+ k+n+y+d+: b+e+d+ a+z+ a+g+r+a+y+ ()st->execute$ + m+q+d+a+r+ oid d+r+ m+t+i+y+r+ sth->pg_oid_status$ dkx+y+r+h+ + x+w+a+h+d+ snd+. + + 4.15.3) aMیa+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+ + a+یg+a+d+ snr+a+یtj race b+r+a+ی s+a+یr+ + کa+r+b+r+a+n+ m+ی snw+n+d+?+ + + x+یr+,+ a+s+t+f+a+d+h+ a+z+ a+یn+ t+w+a+b+e+ + snr+a+یtj race r+a+ b+h+ w+g+w+d+ n+m+ی aMw+r+d+. + + 4.15.4) tcr+a+ a+e+d+a+d+ s+r+یa+l+ی m+r+b+w+tj b+h+ + t+r+a+کn+snh+a+ی abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+ + n+m+ی snw+d+?+ tcr+a+ b+یn+ a+e+d+a+d+ s+r+یa+l+ی + یک f+a+c+l+h+ x+a+l+ی a+یg+a+d+ m+ی snw+d+?+ + + b+r+a+ی b+a+l+a+ b+r+d+n+ a+m+کa+n+ a+g+r+a+ی + h+m+z+m+a+n+ t+r+a+کn+snh+a+,+ a+e+d+a+d+ s+r+یa+l+ی + b+h+ m+hkdd a+g+r+a+ی t+r+a+کn+sn b+h+ aMn+h+a+ + t+x+c+یc+ m+ی یa+b+d+ d+r+ a+یn+ hka+l+t+ + a+gfr+ b+e+ddی a+z+ t+r+a+کn+snh+a+ abort snw+n+d+ + b+یn+ a+e+d+a+d+ s+r+یa+l+ی a+s+t+f+a+d+h+ snd+h+ + یک f+a+c+l+h+ x+a+l+ی b+h+ w+g+w+d+ m+ی + aMیd+. + + 4.16) OID w+ TID tch+ h+s+t+n+d+?+ + + OID r+a+h+ hkl+ PostgreSQL b+r+a+ی d+a+snt+n+ یک + snn+a+s+h+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+ی h+r+ r+d+یf+ + a+s+t+. h+r+ r+d+یf+ g+d+یd+ی کh+ + a+یg+a+d+ m+ی snw+d+ یک OID m+n+hkc+r+ b+h+ + f+r+d+ b+h+ aMn+ a+x+t+c+a+c+ m+ی یa+b+d+. t+m+a+m+ + OIDh+a+یی کh+ d+r+ hkیn+ initdb + a+یg+a+d+ m+ی snw+n+d+ a+z+ 16384 کm+t+r+ h+s+t+n+d+ + w+ OIDh+a+یی b+e+d+a+:+ t+w+l+یd+ m+ی snw+d+ + a+z+ a+یn+ e+d+d+ b+z+r+gft+r+ x+w+a+h+d+ b+w+d+. n+کt+h+ + m+h+m+ aMn+ a+s+t+ کh+ OIDh+a+ n+h+ t+n+h+a+ d+r+ یک + g+d+w+l+ snb+یh+ n+یs+t+n+d+ b+l+کh+ d+r+ کl+ + p+a+یgfa+h+ d+a+d+h+ h+یtc d+w+ r+d+یf+ی + d+a+r+a+ی OID یکs+a+n+ n+x+w+a+h+d+ b+w+d+. + + PostgreSQL a+z+ OID d+r+ s+یs+t+m+ d+a+x+l+ی x+w+d+ + b+r+a+ی a+یg+a+d+ a+r+t+b+a+tj b+یn+ + r+d+یf+h+a+ی g+d+a+w+l+ m+x+t+l+f+ a+s+t+f+a+d+h+ + m+ی کn+d+. t+w+c+یh+ m+ی snw+d+ کh+ + یک s+t+w+n+ a+z+ n+w+e+ OID b+r+a+ی dkx+یr+h+ + a+یn+ f+یl+d+ d+r+ g+d+w+l+ a+یg+a+d+ + کn+یd+. s+a+x+t+n+ یک n+m+a+یh+ + b+r+a+ی a+یn+ f+یl+d+ b+a+e+tk d+s+t+r+s+ی + s+r+یe+t+r+ b+h+ aMn+ x+w+a+h+d+ snd+. + + t+m+a+m+ p+a+یgfa+h+h+a+ی d+a+d+h+ d+r+ PostgreSQL + b+r+a+ی gfr+f+t+n+ OID g+d+یd+ a+z+ یک + n+a+hkیh+ m+r+کz+ی a+s+t+f+a+d+h+ m+ی + کn+d+. w+l+ی a+gfr+ b+x+w+a+h+یm+ OID r+a+ b+h+ + r+w+sn d+یgfr+ی b+gfیr+یm+ w+ یa+ + a+یn+کh+ d+r+ hkیn+ کp+ی کr+d+n+ + یک g+d+w+l+ b+x+w+a+h+یm+ OIDh+a+ی + a+c+l+ی aMn+ t+i+ییr+ n+کn+d+ b+h+ r+w+sn + z+یr+ m+ی t+w+a+n+یm+ e+m+l+ کn+یm+: + + CREATE TABLE new_table(mycol int); SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table; COPY tmp_table TO '/tmp/pgtable'; COPY new_table WITH OIDS FROM '/tmp/pgtable'; DROP TABLE tmp_table; -OID یک عدد صحیح 4 بایتی است و بنابراین حداکثر مقدار آن 4 میلیارد خواهد بود و بعد -از آن مقدار آن سرریز خواهد شد. البته تا کنون برای کسی این اتفاق نیفتاده است و -تصمیم گرداندگان PostgreSQL آن است که قبل از آنکه این اتفاق رخ دهد این مشکل را -برطرف کنند. -TIDها برای شناسایی محل فیزیکی یک ردیف بر اساس بلوک و آفست می باشد. TIDها بعد از -تغییر پیدا کردن یک ردیف و یا بازخوانی آن عوض می شوند. TIDها توسط نمایه ها -استفاده می شوند. -4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL استفاده ميشود چيست؟ -لیست برخی از ترمها و کلماتی که استفاده می شوند: - table, relation, class :کلاس، رابطه، جدول - row, record, tuple چندتایی، رکورد، ردیف - column, field, attribute صفت، فیلد، ستون - retrieve, select انتخاب، خواندن - replace, updateبه روز کردن، جایگزینی - append, insert درج، اضافه کردن - OID, serial value مقدار سریال - portal, cursor - range variable, table name, table alias -یک لیست عمومی از ترمهای مورد استفاده در پایگاه داده در آدرس -http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.htm -وجود دارد. -4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" ميگيرم؟ -این خطا احتمالاً یا به خاطر تمام شدن حافظه مجازی سیستم شماست و یا اینکه کرنل -برای برنامه ها در مورد میزان استفاده از حافظه مجازی محدودیت اعمال کرده است. قبل -از اجرای برنامه اصلی یکی از دستورات زیر را اجرا کنید. + + OID یک e+d+d+ c+hkیhk 4 b+a+یt+ی a+s+t+ + w+ b+n+a+b+r+a+یn+ hkd+a+کtkr+ m+q+d+a+r+ aMn+ 4 + m+یl+یa+r+d+ x+w+a+h+d+ b+w+d+ w+ b+e+d+ a+z+ aMn+ + m+q+d+a+r+ aMn+ s+r+r+یz+ x+w+a+h+d+ snd+. a+l+b+t+h+ t+a+ + کn+w+n+ b+r+a+ی کs+ی a+یn+ a+t+f+a+q+ + n+یf+t+a+d+h+ a+s+t+ w+ t+c+m+یm+ gfr+d+a+n+d+gfa+n+ + PostgreSQL aMn+ a+s+t+ کh+ q+b+l+ a+z+ aMn+کh+ a+یn+ + a+t+f+a+q+ r+x+ d+h+d+ a+یn+ m+snکl+ r+a+ b+r+tjr+f+ + کn+n+d+. + + TIDh+a+ b+r+a+ی snn+a+s+a+یی m+hkl+ + f+یz+یکی یک r+d+یf+ b+r+ + a+s+a+s+ b+l+w+ک w+ aMf+s+t+ m+ی b+a+snd+. TIDh+a+ b+e+d+ + a+z+ t+i+ییr+ p+یd+a+ کr+d+n+ یک + r+d+یf+ w+ یa+ b+a+z+x+w+a+n+ی aMn+ e+w+dd + m+ی snw+n+d+. TIDh+a+ t+w+s+tj n+m+a+یh+ h+a+ + a+s+t+f+a+d+h+ m+ی snw+n+d+. + + 4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+ + PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+ + + l+یs+t+ b+r+x+ی a+z+ t+r+m+h+a+ w+ کl+m+a+t+ی + کh+ a+s+t+f+a+d+h+ m+ی snw+n+d+: + * table, relation, class :کl+a+s+,+ r+a+b+tjh+,+ g+d+w+l+ + * row, record, tuple tcn+d+t+a+یی,+ r+کw+r+d+,+ + r+d+یf+ + * column, field, attribute c+f+t+,+ f+یl+d+,+ s+t+w+n+ + * retrieve, select a+n+t+x+a+b+,+ x+w+a+n+d+n+ + * replace, updateb+h+ r+w+z+ کr+d+n+,+ + g+a+یgfz+یn+ی + * append, insert d+r+g+,+ a+dda+f+h+ کr+d+n+ + * OID, serial value m+q+d+a+r+ s+r+یa+l+ + * portal, cursor + * range variable, table name, table alias + + یک l+یs+t+ e+m+w+m+ی a+z+ t+r+m+h+a+ی + m+w+r+d+ a+s+t+f+a+d+h+ d+r+ p+a+یgfa+h+ d+a+d+h+ d+r+ aMd+r+s+ + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.htm w+g+w+d+ d+a+r+d+. + + 4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc" m+y+ + gfy+r+m+?+ + + a+یn+ x+tja+ a+hkt+m+a+l+a+:+ یa+ b+h+ x+a+tjr+ t+m+a+m+ + snd+n+ hka+f+zHh+ m+g+a+z+ی s+یs+t+m+ snm+a+s+t+ w+ + یa+ a+یn+کh+ کr+n+l+ b+r+a+ی + b+r+n+a+m+h+ h+a+ d+r+ m+w+r+d+ m+یz+a+n+ a+s+t+f+a+d+h+ a+z+ + hka+f+zHh+ m+g+a+z+ی m+hkd+w+d+یt+ a+e+m+a+l+ + کr+d+h+ a+s+t+. q+b+l+ a+z+ a+g+r+a+ی b+r+n+a+m+h+ + a+c+l+ی یکی a+z+ d+s+t+w+r+a+t+ z+یr+ + r+a+ a+g+r+a+ کn+یd+. + ulimit -d 262144 limit datasize 256m -بسته به نوع شل یکی از این دستورات ممکن است با موفقیت اجرا شود. با اجرای آن دستور -محدودیت حافظه مجازی برای برنامه ها برداشته شده و با این کار احتمالاً درخواستی که -قبلاً خطا می داده است اجرا خواهد شد. -4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده ميكنم چيست؟ -با اجرای دستور ()SELECT version -4.20) چرا حین اجرای عملیات روی large-objectها خطای "invalid large obj -descriptor"به وجود می آید؟ -شما باید قبل از شروع دستوراتی که با large-objectها کار می کنند BEGIN و بعد از -آنها هم یک END بگذارید. در حال حاضر PostgreSQL هندل large-objectها را در زمان -نهایی شدن تراکنش (commitشدن) می بندد. به همین دلیل اولین تلاش برای انجام هر کاری -با هندل منجر به خطای invalid large obj descriptor خواهد شد. برای جلوگیری از این -خطا حتماً باید از یک تراکنش استفاده کنید. این کار همانطور که قبلاً گفته شد با -استفاده از قرار دادن BEGIN و END در ابتدا و انتهای دستورات انجام می شود. -اگر این خطا را در حین استفاده از یک درایور ODBC دریافت کردید احتمالاً باید این -دستور را اجرا کنید: set auto-commit off -4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيشفرض داشته -باشد؟ -از CURRENT_TIMESTAMP استفاده کنید در مثال زیر نحوه انجام این کار نشان داده شده -است: + + b+s+t+h+ b+h+ n+w+e+ snl+ یکی a+z+ a+یn+ + d+s+t+w+r+a+t+ m+m+کn+ a+s+t+ b+a+ m+w+f+q+یt+ a+g+r+a+ + snw+d+. b+a+ a+g+r+a+ی aMn+ d+s+t+w+r+ m+hkd+w+d+یt+ + hka+f+zHh+ m+g+a+z+ی b+r+a+ی b+r+n+a+m+h+ h+a+ + b+r+d+a+snt+h+ snd+h+ w+ b+a+ a+یn+ کa+r+ a+hkt+m+a+l+a+:+ + d+r+x+w+a+s+t+ی کh+ q+b+l+a+:+ x+tja+ m+ی d+a+d+h+ + a+s+t+ a+g+r+a+ x+w+a+h+d+ snd+. + + 4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+ + PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+ + + b+a+ a+g+r+a+ی d+s+t+w+r+ ()SELECT version + + 4.20) tcr+a+ hkیn+ a+g+r+a+ی e+m+l+یa+t+ r+w+ی + large-objecth+a+ x+tja+ی "invalid large obj descriptor"b+h+ w+g+w+d+ + m+ی aMیd+?+ + + snm+a+ b+a+یd+ q+b+l+ a+z+ snr+w+e+ d+s+t+w+r+a+t+ی + کh+ b+a+ large-objecth+a+ کa+r+ m+ی کn+n+d+ + BEGIN w+ b+e+d+ a+z+ aMn+h+a+ h+m+ یک END + b+gfdka+r+یd+. d+r+ hka+l+ hka+ddr+ PostgreSQL h+n+d+l+ + large-objecth+a+ r+a+ d+r+ z+m+a+n+ n+h+a+یی snd+n+ + t+r+a+کn+sn (commitsnd+n+) m+ی b+n+d+d+. b+h+ + h+m+یn+ d+l+یl+ a+w+l+یn+ t+l+a+sn b+r+a+ی + a+n+g+a+m+ h+r+ کa+r+ی b+a+ h+n+d+l+ m+n+g+r+ b+h+ + x+tja+ی invalid large obj descriptor x+w+a+h+d+ snd+. + b+r+a+ی g+l+w+gfیr+ی a+z+ a+یn+ x+tja+ + hkt+m+a+:+ b+a+یd+ a+z+ یک t+r+a+کn+sn + a+s+t+f+a+d+h+ کn+یd+. a+یn+ کa+r+ + h+m+a+n+tjw+r+ کh+ q+b+l+a+:+ gff+t+h+ snd+ b+a+ a+s+t+f+a+d+h+ + a+z+ q+r+a+r+ d+a+d+n+ BEGIN w+ END d+r+ a+b+t+d+a+ w+ + a+n+t+h+a+ی d+s+t+w+r+a+t+ a+n+g+a+m+ m+ی snw+d+. + + a+gfr+ a+یn+ x+tja+ r+a+ d+r+ hkیn+ a+s+t+f+a+d+h+ a+z+ + یک d+r+a+یw+r+ ODBC d+r+یa+f+t+ + کr+d+یd+ a+hkt+m+a+l+a+:+ b+a+یd+ a+یn+ + d+s+t+w+r+ r+a+ a+g+r+a+ کn+یd+: set auto-commit off + + 4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+ z+m+a+n+ + g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd d+a+snt+h+ b+a+snd+?+ + + a+z+ CURRENT_TIMESTAMP a+s+t+f+a+d+h+ کn+یd+ d+r+ + m+tka+l+ z+یr+ n+hkw+h+ a+n+g+a+m+ a+یn+ کa+r+ + n+sna+n+ d+a+d+h+ snd+h+ a+s+t+: + CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); -4.22) چرا "زير درخواستهايي" كه از IN استفاده ميكنند كند هستند؟ -در نسخه های قبل از 7.4 عمل الحاق زیر درخواست و درخواست اصلی به این صورت انجام می -شود که نتایج به دست آمده از زیر درخواست به صورت ترتیبی برای هر ردیف اعمال می -شود. اگر زیردرخواست ردیف های کمی را به عنوان خروجی برگرداند و درخواست بیرونی -ردیف های زیادی را شامل شود استفاده از IN بهترین روش است در غیر اینصورت بهتر است -از EXISTS استفاده شود + 4.22) tcr+a+ "z+y+r+ d+r+x+w+a+s+t+h+a+y+y+" k+h+ a+z+ IN a+s+t+f+a+d+h+ + m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+ + + d+r+ n+s+x+h+ h+a+ی q+b+l+ a+z+ 7.4 e+m+l+ a+l+hka+q+ + z+یr+ d+r+x+w+a+s+t+ w+ d+r+x+w+a+s+t+ a+c+l+ی b+h+ + a+یn+ c+w+r+t+ a+n+g+a+m+ m+ی snw+d+ کh+ + n+t+a+یg+ b+h+ d+s+t+ aMm+d+h+ a+z+ z+یr+ d+r+x+w+a+s+t+ + b+h+ c+w+r+t+ t+r+t+یb+ی b+r+a+ی h+r+ r+d+یf+ + a+e+m+a+l+ m+ی snw+d+. a+gfr+ z+یr+d+r+x+w+a+s+t+ + r+d+یf+ h+a+ی کm+ی r+a+ b+h+ e+n+w+a+n+ + x+r+w+g+ی b+r+gfr+d+a+n+d+ w+ d+r+x+w+a+s+t+ + b+یr+w+n+ی r+d+یf+ h+a+ی z+یa+d+ی + r+a+ sna+m+l+ snw+d+ a+s+t+f+a+d+h+ a+z+ IN b+h+t+r+یn+ r+w+sn + a+s+t+ d+r+ i+یr+ a+یn+c+w+r+t+ b+h+t+r+ a+s+t+ a+z+ + EXISTS a+s+t+f+a+d+h+ snw+d+ + SELECT * FROM tab WHERE col IN (SELECT subcol FROM subtab); -به: + + b+h+: + SELECT * FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); -برای اجرای سریع این درخواست باید برای ستون subcol نمایه ایجاد شده باشد. -در نسخه های بعد از 7.4 IN برای الحاق از همان تکنیک پیچیده مورد استفاده در -دستورات معمولی استفاده می کند و بنابراین استفاده از آن نسبت به EXISTS ارجحیت -دارد. -4.23) چگونه ميتوانم يك الحاق خارجي (outer join) انجام دهم؟ -برای انجام الحاق خارجی به روش زیر عمل کنید: + + b+r+a+ی a+g+r+a+ی s+r+یe+ a+یn+ d+r+x+w+a+s+t+ + b+a+یd+ b+r+a+ی s+t+w+n+ subcol n+m+a+یh+ + a+یg+a+d+ snd+h+ b+a+snd+. + + d+r+ n+s+x+h+ h+a+ی b+e+d+ a+z+ 7.4 IN b+r+a+ی a+l+hka+q+ + a+z+ h+m+a+n+ t+کn+یک p+یtcیd+h+ + m+w+r+d+ a+s+t+f+a+d+h+ d+r+ d+s+t+w+r+a+t+ m+e+m+w+l+ی + a+s+t+f+a+d+h+ m+ی کn+d+ w+ b+n+a+b+r+a+یn+ + a+s+t+f+a+d+h+ a+z+ aMn+ n+s+b+t+ b+h+ EXISTS a+r+g+hkیt+ + d+a+r+d+. + + 4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer join) + a+n+g+a+m+ d+h+m+?+ + + b+r+a+ی a+n+g+a+m+ a+l+hka+q+ x+a+r+g+ی b+h+ r+w+sn + z+یr+ e+m+l+ کn+یd+: + SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); -یا + + یa+ + SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); -درخواستهای بالا t1.col , t2.col را به هم الحاق می کند و همچنین ردیفهای t1 که -نظیر آنها در t2 نبوده است را نیز برمی گرداند. اگر از RIGHT استفاده شود نتیجه بر -عکس است. یعنی ردیفهای t2 که نظیر آنها در t1 نباشد را نشان می دهد و اگر از FULL -استفاده شود نتیجه هم شامل ردیفهای t1 است و هم شامل ردیفهای t2. استفاده از کلمه -OUTER اختیاری است چرا که این کلمه به طور ضمنی در دستورهای LEFT, RIGHT, FULL وجود -دارد. -در نسخه های قبلی پایگاه داده می توانیم الحاق خارجی را به کمک دستورهای UNION, NOT -IN شبیه سازی کنیم. این کار در مثال زیر نشان داده شده است: + d+r+x+w+a+s+t+h+a+ی b+a+l+a+ t1.col , t2.col r+a+ b+h+ h+m+ + a+l+hka+q+ m+ی کn+d+ w+ h+m+tcn+یn+ + r+d+یf+h+a+ی t1 کh+ n+zHیr+ aMn+h+a+ d+r+ t2 + n+b+w+d+h+ a+s+t+ r+a+ n+یz+ b+r+m+ی gfr+d+a+n+d+. a+gfr+ + a+z+ RIGHT a+s+t+f+a+d+h+ snw+d+ n+t+یg+h+ b+r+ e+کs+ + a+s+t+. یe+n+ی r+d+یf+h+a+ی t2 کh+ + n+zHیr+ aMn+h+a+ d+r+ t1 n+b+a+snd+ r+a+ n+sna+n+ m+ی + d+h+d+ w+ a+gfr+ a+z+ FULL a+s+t+f+a+d+h+ snw+d+ n+t+یg+h+ h+m+ + sna+m+l+ r+d+یf+h+a+ی t1 a+s+t+ w+ h+m+ sna+m+l+ + r+d+یf+h+a+ی t2. a+s+t+f+a+d+h+ a+z+ کl+m+h+ OUTER + a+x+t+یa+r+ی a+s+t+ tcr+a+ کh+ a+یn+ + کl+m+h+ b+h+ tjw+r+ ddm+n+ی d+r+ d+s+t+w+r+h+a+ی + LEFT, RIGHT, FULL w+g+w+d+ d+a+r+d+. + + d+r+ n+s+x+h+ h+a+ی q+b+l+ی p+a+یgfa+h+ d+a+d+h+ + m+ی t+w+a+n+یm+ a+l+hka+q+ x+a+r+g+ی r+a+ b+h+ + کm+ک d+s+t+w+r+h+a+ی UNION, NOT IN snb+یh+ + s+a+z+ی کn+یm+. a+یn+ کa+r+ d+r+ + m+tka+l+ z+یr+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+: + SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 @@ -819,59 +1569,125 @@ IN شبیه سازی کنیم. این کار در مثال زیر نشان دا� FROM tab1 WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) ORDER BY col1 -4.24) چگونه ميتوان درخواستهايي از چند پايگاه داده توليد كرد؟ -در حال حاضر این کار امکان پذیر نیست. PostgreSQL فقط امکان درخواست از پایگاه داده -ای را می دهد که در حال حاضر به آن متصل باشید و نمیتوان به طور همزمان از دو -پایگاه داده استفاده کرد. البته یک برنامه کاربردی خود می تواند به طور همزمان دو -پایگاه داده را مورد استفاده قرار داده و نتایج را با هم ترکیب کند ولی نمی تواند -در یک درخواست به هر دو پایگاه داده رجوع کند. -4.25) چگونه خروجي يك تابع ميتواند چند رديف يا ستون باشد؟ -در نسخه 7.3 خروجی یک تابع می تواند چند ردیف یا چند ستون باشد. برای دیدن اطلاعات -بیشتر به سایت زیر مراجعه -کنید:http://techdocs.postgresql.org/guides/SetReturningFunctions -4.26) در توابع PL/PgSQL چرا نميتوان با اطمينان جداول موقت را ايجاد يا حذف كرد؟ -PL/PgSQL محتوای توابع را ذخیره (cache) می کند. یک اثر بد جانبی این کار آن است که -اگر در تابع از یک جدول موقت استفاده شود و بعداً آن جدول حذف و یک جدول جدید به -جای آن ایجاد شود، در فراخوانی مجدد آن تابع، محتوای ذخیره شده تابع هنوز به جدول -قدیمی اشاره می کند و بنابراین اجرای تابع با اشکال مواجه می شود. راه حل این مشکل -آن است که برای جداول موقت از دستور EXECUTE استفاده شود که این کار سبب می شود که -درخواست برای هر بار اجرا مجدداً پیمایش و تفسیر شود. -4.27) چه گزينههايي براي تكرار (replication) وجود دارد؟ -There are several master/slave replication options available. These allow only -the master to make database changes and the slave can only do database reads. -The bottom of http://gborg.PostgreSQL.org/genpage?replication_research lists -them. A multi-master replication solution is being worked on at -http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. -4.28) چه گزينههايي براي رمزنگاري وجود دارد؟ - contrib/pgcrypto شامل توابع رمزنگاری زیادی است که می توان از آنها در دستورات - SQL استفاده کرد. - برای رمز کردن ارتباط بین client و server پایگاه داده حتماً گزینه SSL را بر - روی پایگاه داده فعال کنیم. - در نسخه 7.3 به بعد کلمات عبور کاربران به طور اتوماتیک به صورت رمز شده ذخیره می - شود ولی در نسخه های قبلی باید گزینه PASSWORD_ENCRYPTION را در - فایلpostgresql.conf فعال کنیم. - می توان پایگاههای داده را روی یک فایل سیستم رمزشده نگاهداری کرد - - -Extending PostgreSQL -5.1) من يك تابع نوشتهام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core -dump ميگيرم؟ -دلایل مختلفی می تواند باعث بروز این مشکل شود. اما قبل از همه، تابع خود را به -صورت جدا تست کنید. -5.2) چگونه ميتوانم در توليد نوعها و توابع جديد و جالب براي PostgreSQL همكاري -و مشاركت داشته باشم؟ -کد خود را به گروه پستی pgsql-hackers ارسال کنید. -5.3) چگونه ميتوانم يك تابع به زبان C بنويسم كه خروجي آن يك tuple (چند تايي) -باشد؟ -در نسخه های 7.3 به بعد یک تابع می تواند یک جدول را به عنوان خروجی برگرداند. این -ویژگی در توابعی که به زبانهای C و PL/PgSQL نوشته میشوند به طور کامل وجود دارد. -راهنما برنامه نویسان را مطالعه کنید. یک مثال از نحوه برگرداندن یک جدول به عنوان -خروجی در contrib/tablefunc آمده است. -5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن، تغيير ديده -نميشود؟ -Makefile برای فایلهای include شده وابستگیها را به درستی نشان نمی دهد. برای -اطمینان از اینکه فایلی که عوض کرده اید حتماً دوباره کامپیل میشود دستور make -clean را اجرا کنید. اگر از کامپیلر gcc استفاده می کنید می توانید از گزینه -enable-depend-- در موقع اجرای برنامه configure استفاده کنید این گزینه باعث می -شود که وابستگیها به طور اتوماتیک تولید شود.
\ No newline at end of file + 4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+ + p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+ + + d+r+ hka+l+ hka+ddr+ a+یn+ کa+r+ a+m+کa+n+ + p+dkیr+ n+یs+t+. PostgreSQL f+q+tj a+m+کa+n+ + d+r+x+w+a+s+t+ a+z+ p+a+یgfa+h+ d+a+d+h+ a+ی r+a+ + m+ی d+h+d+ کh+ d+r+ hka+l+ hka+ddr+ b+h+ aMn+ m+t+c+l+ + b+a+snیd+ w+ n+m+یt+w+a+n+ b+h+ tjw+r+ h+m+z+m+a+n+ a+z+ + d+w+ p+a+یgfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ کr+d+. a+l+b+t+h+ + یک b+r+n+a+m+h+ کa+r+b+r+d+ی x+w+d+ m+ی + t+w+a+n+d+ b+h+ tjw+r+ h+m+z+m+a+n+ d+w+ p+a+یgfa+h+ d+a+d+h+ + r+a+ m+w+r+d+ a+s+t+f+a+d+h+ q+r+a+r+ d+a+d+h+ w+ n+t+a+یg+ r+a+ + b+a+ h+m+ t+r+کیb+ کn+d+ w+l+ی n+m+ی + t+w+a+n+d+ d+r+ یک d+r+x+w+a+s+t+ b+h+ h+r+ d+w+ + p+a+یgfa+h+ d+a+d+h+ r+g+w+e+ کn+d+. + + 4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+ tcn+d+ r+d+y+f+ + y+a+ s+t+w+n+ b+a+snd+?+ + + d+r+ n+s+x+h+ 7.3 x+r+w+g+ی یک t+a+b+e+ m+ی + t+w+a+n+d+ tcn+d+ r+d+یf+ یa+ tcn+d+ s+t+w+n+ b+a+snd+. + b+r+a+ی d+یd+n+ a+tjl+a+e+a+t+ b+یsnt+r+ b+h+ + s+a+یt+ z+یr+ m+r+a+g+e+h+ + کn+یd+:http://techdocs.postgresql.org/guides/SetReturningF + unctions + + 4.26) d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+ a+tjm+y+n+a+n+ + g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+ k+r+d+?+ + + PL/PgSQL m+hkt+w+a+ی t+w+a+b+e+ r+a+ dkx+یr+h+ (cache) + m+ی کn+d+. یک a+tkr+ b+d+ g+a+n+b+ی + a+یn+ کa+r+ aMn+ a+s+t+ کh+ a+gfr+ d+r+ t+a+b+e+ + a+z+ یک g+d+w+l+ m+w+q+t+ a+s+t+f+a+d+h+ snw+d+ w+ + b+e+d+a+:+ aMn+ g+d+w+l+ hkdkf+ w+ یک g+d+w+l+ + g+d+یd+ b+h+ g+a+ی aMn+ a+یg+a+d+ snw+d+,+ d+r+ + f+r+a+x+w+a+n+ی m+g+d+d+ aMn+ t+a+b+e+,+ m+hkt+w+a+ی + dkx+یr+h+ snd+h+ t+a+b+e+ h+n+w+z+ b+h+ g+d+w+l+ + q+d+یm+ی a+sna+r+h+ m+ی کn+d+ w+ + b+n+a+b+r+a+یn+ a+g+r+a+ی t+a+b+e+ b+a+ a+snکa+l+ + m+w+a+g+h+ m+ی snw+d+. r+a+h+ hkl+ a+یn+ m+snکl+ + aMn+ a+s+t+ کh+ b+r+a+ی g+d+a+w+l+ m+w+q+t+ a+z+ + d+s+t+w+r+ EXECUTE a+s+t+f+a+d+h+ snw+d+ کh+ a+یn+ + کa+r+ s+b+b+ m+ی snw+d+ کh+ d+r+x+w+a+s+t+ + b+r+a+ی h+r+ b+a+r+ a+g+r+a+ m+g+d+d+a+:+ p+یm+a+یsn + w+ t+f+s+یr+ snw+d+. + + 4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication) w+g+w+d+ + d+a+r+d+?+ + + There are several master/slave replication options available. These + allow only the master to make database changes and the slave can only + do database reads. The bottom of + http://gborg.PostgreSQL.org/genpage?replication_research lists them. A + multi-master replication solution is being worked on at + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + + 4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+ d+a+r+d+?+ + + * contrib/pgcrypto sna+m+l+ t+w+a+b+e+ r+m+z+n+gfa+r+ی + z+یa+d+ی a+s+t+ کh+ m+ی t+w+a+n+ a+z+ + aMn+h+a+ d+r+ d+s+t+w+r+a+t+ SQL a+s+t+f+a+d+h+ کr+d+. + * b+r+a+ی r+m+z+ کr+d+n+ a+r+t+b+a+tj b+یn+ client + w+ server p+a+یgfa+h+ d+a+d+h+ hkt+m+a+:+ gfz+یn+h+ + SSL r+a+ b+r+ r+w+ی p+a+یgfa+h+ d+a+d+h+ f+e+a+l+ + کn+یm+. + * d+r+ n+s+x+h+ 7.3 b+h+ b+e+d+ کl+m+a+t+ e+b+w+r+ + کa+r+b+r+a+n+ b+h+ tjw+r+ a+t+w+m+a+t+یک b+h+ + c+w+r+t+ r+m+z+ snd+h+ dkx+یr+h+ m+ی snw+d+ + w+l+ی d+r+ n+s+x+h+ h+a+ی q+b+l+ی b+a+یd+ + gfz+یn+h+ PASSWORD_ENCRYPTION r+a+ d+r+ + f+a+یl+postgresql.conf f+e+a+l+ کn+یm+. + * m+ی t+w+a+n+ p+a+یgfa+h+h+a+ی d+a+d+h+ r+a+ + r+w+ی یک f+a+یl+ s+یs+t+m+ + r+m+z+snd+h+ n+gfa+h+d+a+r+ی کr+d+ + _________________________________________________________________ + + Extending PostgreSQL + + 5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql + a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+ + + d+l+a+یl+ m+x+t+l+f+ی m+ی t+w+a+n+d+ b+a+e+tk + b+r+w+z+ a+یn+ m+snکl+ snw+d+. a+m+a+ q+b+l+ a+z+ h+m+h+,+ + t+a+b+e+ x+w+d+ r+a+ b+h+ c+w+r+t+ g+d+a+ t+s+t+ کn+یd+. + + 5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+ t+w+a+b+e+ + g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+ m+sna+r+k+t+ + d+a+snt+h+ b+a+snm+?+ + + کd+ x+w+d+ r+a+ b+h+ gfr+w+h+ p+s+t+ی pgsql-hackers + a+r+s+a+l+ کn+یd+. + + 5.3) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C b+n+w+y+s+m+ + k+h+ x+r+w+g+y+ aMn+ y+k+ tuple (tcn+d+ t+a+y+y+) b+a+snd+?+ + + d+r+ n+s+x+h+ h+a+ی 7.3 b+h+ b+e+d+ یک t+a+b+e+ + m+ی t+w+a+n+d+ یک g+d+w+l+ r+a+ b+h+ e+n+w+a+n+ + x+r+w+g+ی b+r+gfr+d+a+n+d+. a+یn+ w+یzjgfی + d+r+ t+w+a+b+e+ی کh+ b+h+ z+b+a+n+h+a+ی C w+ + PL/PgSQL n+w+snt+h+ m+یsnw+n+d+ b+h+ tjw+r+ کa+m+l+ + w+g+w+d+ d+a+r+d+. r+a+h+n+m+a+ b+r+n+a+m+h+ n+w+یs+a+n+ r+a+ + m+tja+l+e+h+ کn+یd+. یک m+tka+l+ a+z+ n+hkw+h+ + b+r+gfr+d+a+n+d+n+ یک g+d+w+l+ b+h+ e+n+w+a+n+ + x+r+w+g+ی d+r+ contrib/tablefunc aMm+d+h+ a+s+t+. + + 5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+ + e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+,+ t+i+y+y+r+ d+y+d+h+ n+m+y+ + snw+d+?+ + + Makefile b+r+a+ی f+a+یl+h+a+ی include snd+h+ + w+a+b+s+t+gfیh+a+ r+a+ b+h+ d+r+s+t+ی n+sna+n+ n+m+ی + d+h+d+. b+r+a+ی a+tjm+یn+a+n+ a+z+ a+یn+کh+ + f+a+یl+ی کh+ e+w+dd کr+d+h+ a+یd+ + hkt+m+a+:+ d+w+b+a+r+h+ کa+m+p+یl+ m+یsnw+d+ + d+s+t+w+r+ make clean r+a+ a+g+r+a+ کn+یd+. a+gfr+ a+z+ + کa+m+p+یl+r+ gcc a+s+t+f+a+d+h+ m+ی + کn+یd+ m+ی t+w+a+n+یd+ a+z+ gfz+یn+h+ + enable-depend-- d+r+ m+w+q+e+ a+g+r+a+ی b+r+n+a+m+h+ configure + a+s+t+f+a+d+h+ کn+یd+ a+یn+ gfz+یn+h+ b+a+e+tk + m+ی snw+d+ کh+ w+a+b+s+t+gfیh+a+ b+h+ tjw+r+ + a+t+w+m+a+t+یک t+w+l+یd+ snw+d+. diff --git a/doc/FAQ_french b/doc/FAQ_french index 1423aee9b03..1b224e877ca 100644 --- a/doc/FAQ_french +++ b/doc/FAQ_french @@ -171,7 +171,7 @@ PostgreSQL Data Base Management System - Portions copyright (c) 1996-2004, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its @@ -760,8 +760,7 @@ Pour changer le type de donn�es d'une colonne, faites : BEGIN; ALTER TABLE table ADD COLUMN nouvelle_colonne nouveau_type_de_donnees; - UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_d -e_donnees); + UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_de_donnees); ALTER TABLE table DROP COLUMN ancienne_colonne; COMMIT; @@ -772,14 +771,12 @@ e_donnees); donn�es ? Les limites sont : - Taille maximum pour une base de donn�es illimit�e (il existe des bases -de 32 To) + Taille maximum pour une base de donn�es illimit�e (il existe des basesde 32 To) Taille maximum pour une table 32 To Taille maximum pour une ligne 1,6 To Taille maximum pour un champ 1 Go Nombre maximum de lignes dans une table illimit� - Nombre maximum de colonnes dans une table 250-1600, selon le type de colo -nnes + Nombre maximum de colonnes dans une table 250-1600, selon le type de colonnes Nombre maximum d'index sur une table illimit� Bien s�r, ces valeurs ne sont pas vraiment illimit�e, elles sont @@ -813,21 +810,17 @@ nnes ---------------------------------------- 60 octets par ligne - La taille des pages de donn�es dans PostgreSQL est de 8192 octets (8 KO), do -nc : + La taille des pages de donn�es dans PostgreSQL est de 8192 octets (8 KO), donc : 8192 octets par page - ---------------------- = 136 lignes par page de base de donn�es (arrondi � - l'entier inf�rieur) + ---------------------- = 136 lignes par page de base de donn�es (arrondi � l'entier inf�rieur) 60 octets par ligne 100000 lignes de donn�es - ------------------------- = 735 pages de base de donn�es (arrondi � l'enti -er sup�rieur) + ------------------------- = 735 pages de base de donn�es (arrondi � l'entier sup�rieur) 128 lignes par page -735 pages de base de donn�es * 8192 octets par page = 6 021 120 octets (6,4 M -o) +735 pages de base de donn�es * 8192 octets par page = 6 021 120 octets (6,4 Mo) Les index utilisent moins d'espace, mais ils contiennent les donn�es index�es, ils peuvent donc �galement �tre grands. @@ -1025,8 +1018,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) table d'exemple de la section 4.15.1, un exemple dans un pseudo-langage ressemblerait � ceci : nouvelle_id = execute("SELECT nextval('personne_id_seq')"); - execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal -')"); + execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal')"); Vous pourriez ensuite utiliser la nouvelle valeur stock�e dans nouvelle_id avec d'autres requ�tes (c'est-�-dire en tant que cl� @@ -1085,8 +1077,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) en quelque chose d'autre ou si vous voulez faire une copie de la table avec les OID originaux, il n'y a pas de raisons pour ne pas le faire : CREATE TABLE nouvelle_table (macolonne int); - SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_t -able; + SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_table; COPY table_temporaire FROM '/tmp/tablepg'; COPY nouvelle_table WITH OIDS FROM '/tmp/tablepg'; DROP TABLE table_temporaire; @@ -1178,8 +1169,7 @@ CREATE TABLE test (x int, heuremodif timestamp DEFAULT CURRENT_TIMESTAMP ); to: SELECT * FROM table - WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne -); + WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne); Pour que ceci soit rapide, souscolonne doit �tre une colonne index�e. diff --git a/doc/FAQ_german b/doc/FAQ_german index 49375224b4a..dcb38cec778 100644 --- a/doc/FAQ_german +++ b/doc/FAQ_german @@ -643,14 +643,12 @@ Wenn der postmaster hingegen l�uft, f�hren Sie psql in einem Fenster aus, ermitteln Sie die Prozessnummer (PID) des postgres-Prozesses, der - von psql verwendet wird (mit -SELECT pg_backend_pid() - - ). Binden Sie einen Debugger an diese PID und f�hren Sie Abfragen von - psql aus. Wenn Sie den postgres-Serverstart analysieren wollen, setzen - Sie die Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. - Dies verz�gert den Start um n Sekunden, damit Sie einen Debugger an - den Prozess binden und ggf. Breakpoints setzen k�nnen, bevor die + von psql verwendet wird (mit SELECT pg_backend_pid()). Binden Sie + einen Debugger an diese PID und f�hren Sie Abfragen von psql aus. Wenn + Sie den postgres-Serverstart analysieren wollen, setzen Sie die + Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. Dies + verz�gert den Start um n Sekunden, damit Sie einen Debugger an den + Prozess binden und ggf. Breakpoints setzen k�nnen, bevor die Startsequenz begonnen wird. Es gibt verschiedene Einstellungen (die log_*-Gruppe), die diverse diff --git a/doc/FAQ_japanese b/doc/FAQ_japanese index 609f8198f03..b271d650976 100644 --- a/doc/FAQ_japanese +++ b/doc/FAQ_japanese @@ -1,22 +1,20 @@ -PostgreSQL(�ݥ��ȥ��쥹�����塼������)�ˤĤ��Ƥ褯�������Ȥ��β���(FAQ) -��ʸ�ǽ�������: Sun Jan 9 14:44:04 EST 2005 - -���ߤΰݻ�������: Bruce Momjian ([email protected]) -Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp) - -����ʸ��κǿ��Ǥ� "http://www.postgresql.org/files/documentation/faqs/ -FAQ.html"> http://www.postgresql.org/files/documentation/faqs/FAQ.html - -�Ǹ��뤳�Ȥ��Ǥ��ޤ��� - -�ץ�åȥۡ������ͭ�μ���ˤĤ��Ƥ�: "http://www.postgresql.org/docs/faq/"> -http://www.postgresql.org/docs/faq/ - - -�˲���������ޤ��� - -(�ʲ������Ԥˤ������� [������ �� ] �ȤǰϤ�ǵ����ޤ���) + PostgreSQL(�ݥ��ȥ��쥹����塼������)�ˤĤ��Ƥ褯�������Ȥ��β���(FAQ) + + ��ʸ�ǽ�������: Sun Jan 9 14:44:04 EST 2005 + + ���ߤΰݻ�������: Bruce Momjian ([email protected]) + Maintainer of Japanese Translation: Jun Kuwamura (juk at + PostgreSQL.jp) + + ����ʸ��κǿ��Ǥ� + http://www.postgresql.org/files/documentation/faqs/FAQ.html + �Ǹ��뤳�Ȥ��Ǥ�ޤ��� + + �ץ�åȥۡ������ͤμ���ˤĤ��Ƥ�: + http://www.postgresql.org/docs/faq/ + �˲���������ޤ��� +(�ʲ������Ԥˤ������� [������ �� ] �ȤǰϤ�ǵ���ޤ���) [������ ���ܸ�������ˤĤ��ƤΥ��ϺǸ����ذ�ư���ޤ����� @@ -27,180 +25,201 @@ http://www.postgresql.org/docs/faq/ http://www.rccm.co.jp/~juk/pgsql/ http://www.linux.or.jp/JF/ - ���������ˤĤ��Ƥ����Ť�������(juk at PostgreSQL.jp)�ޤǥ��Ǥ��������� + ���������ˤĤ��Ƥ����Ť������(juk at PostgreSQL.jp)�ޤǥ��Ǥ��������� 2005ǯ01��12�� ��¼ �� ] - -������������������������������������������������������������������������������ - - ����Ū�ʼ��� - -1.1) PostgreSQL�Ȥϲ��Ǥ����������ɤߤޤ����� -1.2) PostgreSQL������Ϥɤ��ʤäƤޤ����� -1.3) PostgreSQL��ư���Unix�ץ�åȥۡ���ϡ� -1.4) Unix�ʳ��ΰܿ��ǤǻȤ����Τϡ� -1.5) PostgreSQL�Ϥɤ���������Ǥ��ޤ����� -1.6) ���ݡ��ȤϤɤ��Ǽ������ޤ����� -1.7) �ǿ��ǤϤɤ�Ǥ��� -1.8) �ɤΤ褦��ʸ����ޤ����� -1.9) ���ΤΥХ���̤��̵����ǽ�Ϥɤ���äƸ��Ĥ��ޤ����� -1.10) SQL�Ϥɤ�����гؤ٤ޤ����� -1.11) PostgreSQL������2000ǯ����(Y2K)���б����Ƥ��ޤ����� -1.12) ��ȯ������ˤϤɤΤ褦�˻��ä��ޤ����� -1.13) �Х���ݡ��ȤϤɤΤ褦��ȯ�����ޤ����� -1.14) ¾��DBMS����٤�PostgreSQL�Ϥɤ��ʤΤǤ����� -1.15) PostgreSQL�����̤DZ������ˤϤɤ�����Ф褤�Ǥ����� - - �桼���������饤����Ȥμ��� - -2.1) PostgreSQL �� ODBC �ɥ饤�С��Ϥ���ޤ����� -2.2) PostgreSQL �� Web �ڡ�����Ϣ�Ȥ�����ˤϤɤ�ʥġ��뤬����ޤ����� -2.3) PostgreSQL �˥���ե����롦�桼�������ե������Ϥ���ޤ����� -2.4) �ɤΤ褦�ʸ���� PostgreSQL ���̿��Ǥ������� - - ������μ��� - -3.1) �ɤΤ褦�ˤ���� /usr/local/pgsql �ʳ��ξ��˥��ȡ���Ǥ��ޤ����� -3.2) postmaster �����餻��ȡ� Bad System Call �Ȥ�����������פ����ȤΥ�å��� -�����Фޤ����ʤ��Ǥ����� -3.3) postmaster �����餻�褦�Ȥ���ȡ� IpcMemoryCreate ���顼���Фޤ����ʤ��Ǥ� -���� -3.4) postmaster�����餻�褦�Ȥ���ȡ� IpcSemaphoreCreate ���顼���Фޤ����ʤ��� -������ -3.5) ¾�Υۥ��Ȥ������³�ϤɤΤ褦�����椷�ޤ����� -3.6) ����ɤ���ǽ�����뤿��ˤϡ��ǡ����١����������ɤΤ褦��Ĵ��������� -���Ǥ����� -3.7) �ɤΤ褦�ʥǥХ���ǽ���Ȥ��ޤ����� -3.8) ��³���褦�Ȥ���Ȥ��� 'Sorry, too many clients' ���Ф�ΤϤʤ��Ǥ����� -3.9) pgsql_tmp �ǥ��쥯�ȥ����ˤϲ�������ޤ����� -3.10) PostgreSQL�Υ�㡼�����åץǡ��Ȥ���Τ˥���פȥꥹ�ȥ��� -���ƤϤʤ�ʤ��ΤϤʤ��Ǥ����� -3.11) �ϡ��ɥ������ˤϤɤ�ʥ���ԥ塼����Ȥ��Ф褤�Ǥ����� - - ����μ��� - -4.1) �Х��ʥꡦ����������̾參������Ȥΰ㤤�ϲ��Ǥ����� -4.2) �ǽ�ο������Τߤ� select ����ˤϤɤ����ޤ�����������ʥ����� -4.3) �ơ��֥�䤽��¾�ξ���Υꥹ�Ȥ� psql �Ǹ���ˤϤɤ����ޤ����� -4.4) �ơ��֥뤫�饫���κ�������뤤�ϡ��ǡ��������ѹ�����ˤϤɤ����ޤ����� -4.5) �������ơ��֥롢�ǡ����١����κ��祵�����ϡ� -4.6) ����Ū�ʥƥ����ȥե����뤫��ǡ�������¸����ˤϡ��ǡ����١����Υǥ������� -�̤ϤɤΤ��餤ɬ�פǤ����� -4.7) ������줿�ơ��֥롢����ǥå������ǡ����١���������ӡ��桼����ɤΤ褦�� -���Ƹ��Ĥ��Ф��ޤ����� -4.8) �䤤��碌���٤�����������ǥå�����ȤäƤ����ͻҤ�����ޤ��ʤ��Ǥ��� -�� -4.9) �䤤��碌���֥ƥ��ޥ������ɤΤ褦���䤤��碌��ɾ�����뤫��ˤϤɤ��� -�ޤ����� -4.10) R-tree ����ǥå����Ȥϲ��Ǥ����� -4.11) ����Ū�䤤��碌��Ŭ���Ȥϲ��Ǥ����� -4.12) ����ɽ���Ǥθ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ�����ɽ�������ϤɤΤ褦�˼� -�����ޤ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ������Τ���Υ���ǥå����ϤɤΤ褦�˻� -���ޤ����� -4.13) �䤤��碌����ǡ��ե�����ɤ� NULL �Ǥ��뤳�ȤФ���ˤϤɤ����ޤ��� -�� -4.14) ������ʸ�����Τ��줾��ΰ㤤�ϲ��Ǥ����� -4.15.1) ����(serial)����ư��ʬ�ե�����ɤϤɤΤ褦�ˤĤ���ޤ����� -4.15.2) SERIAL�ǡ�����������������ͤϡ��ɤ�����������ޤ����� -4.15.3) currval() ��¾�Υ桼���Ȥζ�����֤˴٤뤳�ȤϤʤ��Ǥ����� -4.15.4) �ȥ����������Ǥ����Ȥ��ˤ⤦�����ɥ��������ֹ椬�Ȥ��ʤ��� -�Ϥʤ��Ǥ�������������SERIAL�����˶���������ΤϤʤ��Ǥ����� -4.16) OID �Ȥϲ��Ǥ����� TID �Ȥϲ��Ǥ����� -4.17) PostgreSQL �ǻȤ��뤤���Ĥ����Ѹ�ΰ�̣�ϲ��Ǥ����� -4.18) ���顼��å����� "ERROR: Memory exhausted in AllocSetAlloc()"���Ф�ΤϤ� -���Ǥ����� -4.19) �ɤΥС������� PostgreSQL �����餻�Ƥ���Τ���Ĵ�٤�ˤϤɤ����ޤ����� -4.20) �顼�����֥������Ȥ����ǡ�invalid large obj descriptor�ȽФ�ΤϤʤ��� -������ -4.21) ���ߤλ��郎�ǥե���ȤȤʤ�褦�ʥ����ϤɤΤ褦�ˤĤ���ޤ����� -4.22) �ʤ���IN��Ȥ����䤤��碌���ȤƤ��٤��ΤǤ����� -4.23) �������(outer join)�ϤɤΤ褦�˼¸����ޤ���? -4.24) ʣ���Υǡ����١�����Ȥ��䤤��碌�ϤɤΤ褦�ˤ���ФǤ��ޤ����� -4.25) �ؿ���ʣ���Υ����ޤ��ϥ������֤��ˤϤɤ����ޤ����� -4.26) �ʤ���PL/PgSQL �ؿ����椫�����ơ��֥��μ¤� create/drop ���뤳�Ȥ��� -���ʤ��ΤǤ��礦���� -4.27) �ɤΤ褦�ʰŹ沽���ץ��������ѤǤ��ޤ���? - - PostgreSQL�γ�ĥ�ˤĤ��Ƥμ��� - -5.1) ��ʬ�ǽ��桼������ؿ��� psql ����Ǽ¹Ԥ���ȥ���������פ��Ƥ��ޤ��� -�Ϥʤ��Ǥ����� -5.2) PostgreSQL �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ� -���������ΤǤ����� -5.3) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽ޤ����� -5.4) ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ� -�Ǥ����� - -������������������������������������������������������������������������������ - - ����Ū�ʼ��� - -1.1) PostgreSQL �Ȥϲ��Ǥ����������ɤߤޤ����� - -PostgreSQL��Post-Gres-Q-L(�ݥ��� - ���쥹 - ���塼 - ����) ��ȯ�����ޤ��� - -PostgreSQL �ϼ����� DBMS �����ѤΥץ��ȥ����פǤ��ä� POSTGRES �ǡ����١������� -�����ƥ�β����ǤǤ��ʤ��Τ��ᡢ���Ǥ�Ȥ��ɤ� "Postgres" �ȸƤФ�뤳�Ȥ����� -�ޤ��ˡ�PostgreSQL �� POSTGRES �ζ��Ϥʥǡ�������ǥ��˭�٤ʥǡ�����������(��) -���ݻ����ʤ��顢POSTGRES �ǻȤ�줿 PostQuel �䤤��碌�����ĥ���� SQL �� -���֥��åȤ��֤������Ƥ��ޤ���PostgreSQL ��̵���Ǵ����ʥ����������ѤǤ��ޤ��� - -PostgreSQL �γ�ȯ�ϡ�PostgreSQL ��ȯ���ꥹ�Ȥ˻��ä��Ƥ��볫ȯ��ã�Υ� -����Ǥ��٤ƹԤʤ��Ƥ��ޤ������ߤκ�Ĺ�� Marc G. Fournier ( [email protected] )�Ǥ���(������1.6��˻��äλ���������ޤ���)���ߡ����Υ� -���ब PostgreSQL ��ȯ�Τ��٤Ƥ����ݤ�ߤƤ��ޤ������Υ�����ϥ��ߥ�˥ƥ��ץ� -�������ȤǤ��ꡢ�����ʤ��Ȥˤ�äƤ����������ޤ����ä�������С� http:/ -/www.postgresql.org/files/documentation/faqs/FAQ_DEV.html �ˤ��볫ȯ�Ը�����FAQ -�Ƥ��������� - -Postgres95-1.01 ���濴Ū�ʳ�ȯ�Ԥ� Andrew Yu �� Jolly Chen �Ǥ�����������¾���� -�ο͡������Υ����ɤΰܿ����ƥ��ȡ��ǥХ�������ӡ����ɤ˻��ä��ޤ����� -PostgreSQL �������������ɤǤ��� Postgres �ϥ���ե���˥���إС����쥤���ˤ��� -�ơ� Michael Stonebraker �����λش��Τ�ȡ�¿���γ�����´�������ܿ��Υץ������ -���������Ϥˤ�����ޤ����� - -�С����쥤�ˤ����뤳�Υ��եȥ������Τ�Ȥ�̾���� Postgres �Ǥ�������SQL �ε�ǽ -���ɲä��줿 1995 ǯ�ˤ���̾���� Postgres95 ���ѹ����졢1996 ǯ�ν���ˤ���̾�� -�� PostgreSQL ���ѹ�����ޤ����� - -1.2) PostgreSQL ������Ϥɤ��ʤäƤޤ����� - -PostgreSQL �ϲ���������˽����ޤ��� - + _________________________________________________________________ + + ����Ū�ʼ��� + + 1.1) PostgreSQL�Ȥϲ��Ǥ����� �����ɤߤޤ����� + 1.2) PostgreSQL������Ϥɤ��ʤäƤޤ����� + 1.3) PostgreSQL��ư���Unix�ץ�åȥۡ���ϡ� + 1.4) Unix�ʳ��ΰܿ��ǤǻȤ����Τϡ� + 1.5) PostgreSQL�Ϥɤ���������Ǥ�ޤ����� + 1.6) ���ݡ��ȤϤɤ��Ǽ������ޤ����� + 1.7) �ǿ��ǤϤɤ�Ǥ��� + 1.8) �ɤΤ褦��ʸ����ޤ����� + 1.9) ���ΤΥХ���̤��̵����ǽ�Ϥɤ���äƸ��Ĥ��ޤ����� + 1.10) SQL�Ϥɤ�����гؤ٤ޤ����� + 1.11) PostgreSQL������2000ǯ����(Y2K)���б����Ƥ��ޤ����� + 1.12) ��ȯ������ˤϤɤΤ褦�˻��ä��ޤ����� + 1.13) �Х���ݡ��ȤϤɤΤ褦��ȯ�����ޤ����� + 1.14) ¾��DBMS����٤�PostgreSQL�Ϥɤ��ʤΤǤ����� + 1.15) PostgreSQL�����̤DZ������ˤϤɤ�����Ф褤�Ǥ����� + + �桼���������饤����Ȥμ��� + + 2.1) PostgreSQL �� ODBC �ɥ饤�С��Ϥ���ޤ����� + 2.2) PostgreSQL �� Web + �ڡ�����Ϣ�Ȥ�����ˤϤɤ�ʥġ��뤬����ޤ����� + 2.3) PostgreSQL �˥���ե����롦�桼�������ե������Ϥ���ޤ����� + 2.4) �ɤΤ褦�ʸ���� PostgreSQL ���̿��Ǥ������ + + ������μ��� + + 3.1) �ɤΤ褦�ˤ���� /usr/local/pgsql �ʳ��ξ��˥��ȡ���Ǥ� + �ޤ����� + 3.2) postmaster �����餻��ȡ� Bad System Call + �Ȥ�����������פ����ȤΥ�å��������Фޤ����ʤ��Ǥ����� + 3.3) postmaster �����餻�褦�Ȥ���ȡ� IpcMemoryCreate + ���顼���Фޤ����ʤ��Ǥ����� + 3.4) postmaster�����餻�褦�Ȥ���ȡ� IpcSemaphoreCreate + ���顼���Фޤ����ʤ��Ǥ����� + 3.5) ¾�Υۥ��Ȥ������³�ϤɤΤ褦�����椷�ޤ����� + 3.6) ����ɤ��� + ǽ�����뤿��ˤϡ��ǡ����١����������ɤΤ褦��Ĵ��������ɤ��Ǥ� + ���� + 3.7) �ɤΤ褦�ʥǥХ���ǽ���Ȥ��ޤ����� + 3.8) ��³���褦�Ȥ���Ȥ�� 'Sorry, too many clients' + ���Ф�ΤϤʤ��Ǥ����� + 3.9) pgsql_tmp �ǥ��쥯�ȥ����ˤϲ�������ޤ����� + 3.10) + PostgreSQL�Υ�㡼�����åץǡ��Ȥ���Τ˥���פȥꥹ�ȥ��� + �ʤ��ƤϤʤ�ʤ��ΤϤʤ��Ǥ����� + 3.11) �ϡ��ɥ������ˤϤɤ�ʥ���ԥ塼����Ȥ��Ф褤�Ǥ����� + + ����μ��� + + 4.1) �Х��ʥꡦ����������̾參������Ȥΰ㤤�ϲ��Ǥ����� + 4.2) �ǽ�ο������Τߤ� select ����ˤϤɤ����ޤ����� ������ʥ����� + 4.3) �ơ��֥�䤽��¾�ξ���Υꥹ�Ȥ� psql �Ǹ���ˤϤɤ����ޤ����� + 4.4) + �ơ��֥뤫�饫���κ�������뤤�ϡ��ǡ��������ѹ�����ˤϤɤ����ޤ��� + �� + 4.5) �������ơ��֥롢�ǡ����١����κ��祵�����ϡ� + 4.6) ����Ū�ʥƥ� + ���ȥե����뤫��ǡ�������¸����ˤϡ��ǡ����١����Υǥ��������̤Ϥɤ� + ���餤ɬ�פǤ����� + 4.7) + ������줿�ơ��֥롢����ǥå������ǡ����١���������ӡ��桼����ɤΤ� + ���ˤ��Ƹ��Ĥ��Ф��ޤ����� + 4.8) + �䤤��碌���٤�����������ǥå�����ȤäƤ����ͻҤ�����ޤ��ʤ��� + ������ + 4.9) + �䤤��碌���֥ƥ��ޥ������ɤΤ褦���䤤��碌��ɾ�����뤫��ˤϤ� + �����ޤ����� + 4.10) R-tree ����ǥå����Ȥϲ��Ǥ����� + 4.11) ����Ū�䤤��碌��Ŭ���Ȥϲ��Ǥ����� + 4.12) + ����ɽ���Ǥθ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ�����ɽ�������ϤɤΤ褦�� + �¸����ޤ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ������Τ���Υ���ǥå����Ϥ� + �Τ褦�˻Ȥ��ޤ����� + 4.13) �䤤��碌����ǡ��ե�����ɤ� NULL + �Ǥ��뤳�ȤФ���ˤϤɤ����ޤ����� + 4.14) ������ʸ�����Τ��줾��ΰ㤤�ϲ��Ǥ����� + 4.15.1) ����(serial)����ư��ʬ�ե�����ɤϤɤΤ褦�ˤĤ���ޤ����� + 4.15.2) SERIAL�ǡ�����������������ͤϡ��ɤ�����������ޤ����� + 4.15.3) currval() ��¾�Υ桼���Ȥζ�����֤˴٤뤳�ȤϤʤ��Ǥ����� + 4.15.4) �ȥ����������Ǥ����Ȥ� + �ˤ⤦�����ɥ��������ֹ椬�Ȥ��ʤ��ΤϤʤ��Ǥ�������������SERI + AL�����˶��������ΤϤʤ��Ǥ����� + 4.16) OID �Ȥϲ��Ǥ����� TID �Ȥϲ��Ǥ����� + 4.17) PostgreSQL �ǻȤ��뤤���Ĥ����Ѹ�ΰ�̣�ϲ��Ǥ����� + 4.18) ���顼��å����� "ERROR: Memory exhausted in + AllocSetAlloc()"���Ф�ΤϤʤ��Ǥ����� + 4.19) �ɤΥС������� PostgreSQL + �����餻�Ƥ���Τ���Ĵ�٤�ˤϤɤ����ޤ����� + 4.20) �顼�����֥������Ȥ����ǡ�invalid large obj + descriptor�ȽФ�ΤϤʤ��Ǥ����� + 4.21) + ���ߤλ��郎�ǥե���ȤȤʤ�褦�ʥ����ϤɤΤ褦�ˤĤ���ޤ����� + 4.22) �ʤ���IN��Ȥ����䤤��碌���ȤƤ��٤��ΤǤ����� + 4.23) �������(outer join)�ϤɤΤ褦�˼¸����ޤ���? + 4.24) ʣ���Υǡ����١�����Ȥ��䤤��碌�ϤɤΤ褦�ˤ���ФǤ�ޤ����� + 4.25) �ؿ���ʣ���Υ����ޤ��ϥ������֤��ˤϤɤ����ޤ����� + 4.26) �ʤ���PL/PgSQL �ؿ����椫�����ơ��֥��μ¤� create/drop + ���뤳�Ȥ��Ǥ�ʤ��ΤǤ��礦���� + 4.27) �ɤΤ褦�ʰŹ沽���ץ��������ѤǤ�ޤ���? + + PostgreSQL�γ�ĥ�ˤĤ��Ƥμ��� + + 5.1) ��ʬ�ǽ��桼������ؿ��� psql + ����Ǽ¹Ԥ���ȥ���������פ��Ƥ��ޤ��ΤϤʤ��Ǥ����� + 5.2) PostgreSQL + �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ˹����� + ���ΤǤ����� + 5.3) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽�ޤ����� + 5.4) + ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��Τ� + �ʤ��Ǥ����� + _________________________________________________________________ + + ����Ū�ʼ��� + + 1.1) PostgreSQL �Ȥϲ��Ǥ����� �����ɤߤޤ����� + + PostgreSQL��Post-Gres-Q-L(�ݥ��� - ���쥹 - ��塼 - ����) + ��ȯ�����ޤ��� + + PostgreSQL �ϼ����� DBMS �����ѤΥץ��ȥ����פǤ��ä� POSTGRES + �ǡ����١������������ƥ�β����ǤǤ��ʤ��Τ��ᡢ���Ǥ�Ȥ�ɤ� + "Postgres" �ȸƤФ�뤳�Ȥ�����ޤ��ˡ�PostgreSQL �� POSTGRES + �ζ��Ϥʥǡ�������ǥ��˭ + �٤ʥǡ�����������(��)���ݻ����ʤ��顢POSTGRES �ǻȤ�줿 PostQuel + �䤤��碌�����ĥ���� SQL �Υ��֥��åȤ��֤� + �����Ƥ��ޤ���PostgreSQL ��̵���Ǵ����ʥ����������ѤǤ�ޤ��� + + PostgreSQL �γ�ȯ�ϡ�PostgreSQL + ��ȯ���ꥹ�Ȥ˻��ä��Ƥ��볫ȯ��ã�Υ�����Ǥ��٤ƹԤʤ��Ƥ� + �ޤ������ߤκ�Ĺ�� Marc G. Fournier ([email protected] + )�Ǥ���(�����1.6��˻��äλ���������ޤ���)���ߡ����Υ����ब + PostgreSQL + ��ȯ�Τ��٤Ƥ����ݤ�ߤƤ��ޤ������Υ�����ϥ��ߥ�˥ƥ��ץ��������Ȥ� + ���ꡢ�����ʤ��Ȥˤ�äƤ����������ޤ����ä�������С� + http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html + �ˤ��볫ȯ�Ը�����FAQ�Ƥ��������� + + Postgres95-1.01 ���濴Ū�ʳ�ȯ�Ԥ� Andrew Yu �� Jolly Chen + �Ǥ�����������¾�����ο͡������Υ����ɤΰܿ����ƥ��ȡ��ǥХ�������ӡ� + ���ɤ˻��ä��ޤ�����PostgreSQL �������������ɤǤ��� Postgres + �ϥ���ե���˥���إС����쥤���ˤ����ơ� Michael Stonebraker + �����λش��Τ�ȡ�¿���γ�����´�������ܿ��Υץ�����ޤ��������Ϥˤ�� + ����ޤ����� + + �С����쥤�ˤ����뤳�Υ��եȥ������Τ�Ȥ�̾���� Postgres + �Ǥ�������SQL �ε�ǽ���ɲä��줿 1995 ǯ�ˤ���̾���� Postgres95 + ���ѹ����졢1996 ǯ�ν���ˤ���̾���� PostgreSQL ���ѹ�����ޤ����� + + 1.2) PostgreSQL ������Ϥɤ��ʤäƤޤ����� + + PostgreSQL �ϲ��������˽����ޤ��� [������ - ��ʸ�ϱѸ�Ǥ������ͤȤ��ơ���ʸ��ʻ���Ǻܤ��ޤ��� + ��ʸ�ϱѸ�Ǥ������ͤȤ��ơ���ʸ��ʻ��Ǻܤ��ޤ��� ] -PostgreSQL Data Base Management System - -Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions -Copyright (c) 1994-6 Regents of the University of California - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose, without fee, and without a written agreement is -hereby granted, provided that the above copyright notice and this paragraph and -the following two paragraphs appear in all copies. - -IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST -PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF -THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND -THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, -SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - + PostgreSQL Data Base Management System + + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of California + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose, without fee, and without a written + agreement is hereby granted, provided that the above copyright notice + and this paragraph and the following two paragraphs appear in all + copies. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, + INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND + ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, + UPDATES, ENHANCEMENTS, OR MODIFICATIONS. POSTGRESQL �ǡ����١������������ƥ� ��ʬŪ��� (c) 1996-2004, PostgreSQL��ݳ�ȯ������ ��ʬŪ��� (c) 1994-6 ����ե���˥�����ܹ� - �ܥ��եȥ���������Ӥ���ʸ��켰�Ͼ嵭�����ɽ���ȡ�����ʸ�� + �ܥ��եȥ���������Ӥ���ʸ��켰�Ͼ嵤����ɽ���ȡ�����ʸ�� ����Ӥ����³����Ĥ�������Ƥ�ʣ����ź�դ���Ƥ���¤�ˤ��� �ơ����ѡ�ʣ����������������դε��Ĥ����ʤ���Ū�Ǥ��äƤ⡢ ̵���Ǥ���Ʊ�ս�̵���˹Ԥʤ��뤳�Ȥ���ǧ��ޤ��� @@ -211,49 +230,50 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ������Ƥ����Ȥ��Ƥ⡢���ڤ���Ǥ���餤�ޤ��� ����ե���˥���ؤϡ�������Ū�ˤ�������ۤ��ݾڤȡ�������Ū�� - ��Ŭ�����˴ؤ��ƤϤ�Ȥ�ꡢ�����˸¤餺�������ʤ��ݾڤ������� + ��Ŭ����˴ؤ��ƤϤ�Ȥ�ꡢ�����˸¤餺�������ʤ��ݾڤ������� �뤳�Ȥ��������ޤ����ʲ����Ѱդ��줿���եȥ������ϡ֤��Τޤޡפ� ���ܸ����Ȥ�������ե���˥���ؤϤ����ݻ����ٱ硢���������ɤ� �뤤�Ͻ��������̳���餤�ޤ��� [������ - ����˴ؤ�����ʸ�Ͼ嵭�αѸ�ˤ��ɽ���Ǥ������ܸ����Ϥ����ޤ� + ����˴ؤ�����ʸ�Ͼ嵤αѸ�ˤ��ɽ��Ǥ������ܸ����Ϥ����ޤ� ���ͤǤ��� ] -�嵭��BSD�饤���ǸŤ������ץ����Υ饤���Ǥ��������������ɤ��ɤΤ褦 -�˻Ȥ��褦�Ȥ����¤��ޤ����ޤ������ȤʤΤǡ��桹�⤽����Ѥ���Ĥ��Ϥ� -��ޤ��� - -1.3) PostgreSQL ��ư��Ķ��ϡ� - -����Ū�ˡ��Ƕ��Unix�ߴ��ץ�åȥۡ���Ǥ����PostgreSQL���Ư��������Ϥ��� -���������λ����Ǽºݤ˥ƥ��Ȥ�Ԥʤä����Ȥ���𤬤ʤ��줿�ץ�åȥۡ���� -�Ĥ��Ƥϥ��ȡ����������Ƥ���ޤ��� - -1.4) Unix�ʳ��ΰܿ��ǤǻȤ����Τϡ� - -�С������8.0�ˤʤꡢPostgreSQL �ϡ�Win2000, WinXP, Win2003�ʤɤ� Microsoft -Windows NT�١����Υ��ڥ졼�ƥ������ƥ�ǥͥ��ƥ��֤�����褦�ˤʤ�ޤ����� -�ѥå������ˤʤä����ȡ��餬��http://pgfoundry.org/projects/pginstaller���� -����Ǥ��ޤ��� Windows (Win95, Win98, WinMe)�ʤɡ�MSDOS�١����ΥС������Ǥϡ� -Cygwin ��Ȥä�PostgreSQL�����餻�뤳�Ȥ��Ǥ��ޤ��� - + �嵤�BSD�饤���ǸŤ�����ץ����Υ饤���Ǥ��������������� + ���ɤΤ褦�˻Ȥ��褦�Ȥ����¤��ޤ����ޤ������ȤʤΤǡ��桹�⤽�� + �� �Ѥ���Ĥ��Ϥ���ޤ��� + + 1.3) PostgreSQL ��ư��Ķ�ϡ� + + ����Ū�ˡ��Ƕ��Unix�ߴ��ץ�åȥۡ���Ǥ����PostgreSQL���Ư������� + ��Ϥ��Ǥ��������λ����Ǽºݤ˥ƥ��Ȥ�Ԥʤä����Ȥ���𤬤ʤ��줿 + �ץ�åȥۡ���ˤĤ��Ƥϥ��ȡ����������Ƥ���ޤ��� + + 1.4) Unix�ʳ��ΰܿ��ǤǻȤ����Τϡ� + + �С������8.0�ˤʤꡢPostgreSQL �ϡ�Win2000, WinXP, Win2003�ʤɤ� + Microsoft Windows + NT�١����Υ��ڥ졼�ƥ������ƥ�ǥͥ��ƥ��֤�����褦�ˤʤ�ޤ����� + �ѥå������ˤʤä����ȡ��餬��http://pgfoundry.org/projects/pginst + aller��������Ǥ�ޤ��� Windows (Win95, Win98, + WinMe)�ʤɡ�MSDOS�١����ΥС������Ǥϡ�Cygwin + ��Ȥä�PostgreSQL�����餻�뤳�Ȥ��Ǥ�ޤ��� [���� pgInstaller �������FTP�ߥ顼�����Ȥ� win32 �ǥ��쥯�ȥ꤫����ǽ�Ǥ��� http://www.postgresql.org/mirrors-ftp.html ] -���Υ����Ȥ� Novell Netware 6 �ؤΰܿ��⤢��ޤ��� http://forge.novell.com �ޤ� -��OS/2 (eComStation) �С������ϡ� http://hobbes.nmsu.edu/cgi-bin/h-search?sh= -1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F�ˤ���ޤ��� - - -1.5) PostgreSQL �Ϥɤ���������Ǥ��ޤ����� - -PostgreSQL ���縵�� anonymous ftp �����Ȥ� ftp://ftp.PostgreSQL.org/pub/ �Ǥ��� -�ߥ顼�����ȤˤĤ��Ƥϡ��桹�Υᥤ�� Web �ڡ��������������� - + ���Υ����Ȥ� Novell Netware 6 �ؤΰܿ��⤢��ޤ��� + http://forge.novell.com �ޤ���OS/2 (eComStation) �С������ϡ� + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre + SQL&stype=all&sort=type&dir=%2F�ˤ���ޤ��� + + 1.5) PostgreSQL �Ϥɤ���������Ǥ�ޤ����� + + PostgreSQL ���縵�� anonymous ftp �����Ȥ� + ftp://ftp.PostgreSQL.org/pub/ �Ǥ��� + �ߥ顼�����ȤˤĤ��Ƥϡ��桹�Υᥤ�� Web �ڡ��������������� [����: �ʲ������ܤΥߥ顼�����ȤǤ�: @@ -272,54 +292,58 @@ PostgreSQL ���縵�� anonymous ftp �����Ȥ� ftp://ftp.PostgreSQL.org/pub/ �Ǥ��� Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/ ] -1.6) ���ݡ��ȤϤɤ��Ǽ������ޤ����� - -���פʥ����ꥹ�Ȥ�: [email protected]�Ǥ���PostgreSQL �˴ؤ� -�뤳�ȤǤ���е������Ǥ��ޤ������Υꥹ�Ȥؤλ��äϡ��Żҥ�����ʸ(Subject �� -�ǤϤ���ޤ���)�˼��Σ��Ԥ�ơ� - + 1.6) ���ݡ��ȤϤɤ��Ǽ������ޤ����� + + ���פʥ����ꥹ�Ȥ�: + [email protected]�Ǥ���PostgreSQL + �˴ؤ��뤳�ȤǤ���е������Ǥ� + �ޤ������Υꥹ�Ȥؤλ��äϡ��Żҥ�����ʸ(Subject + �ԤǤϤ���ޤ���)�˼��Σ��Ԥ�ơ� subscribe end [email protected] �����äƲ������� - -�������������ǤΥ����ꥹ�Ȥ⤢��ޤ������Υꥹ�Ȥؤλ��ä� "��ʸ"�ˡ� - + [email protected] �����äƲ������� + + �������������ǤΥ����ꥹ�Ȥ⤢��ޤ������Υꥹ�Ȥؤλ��ä� + "��ʸ"�ˡ� subscribe end -�Ƚ� [email protected] ���Żҥ������äƲ����� -�� - -�������������Ǥϡ��ᥤ��ꥹ�ȤǼ��������å������� 30k ����ί����˥��������� -���ǥꥹ�ȤΥ��С������դ���ޤ��� - -�Х���ݡ����ѤΥ��ꥹ�Ȥ⤢��ޤ������Υꥹ�Ȥؤλ��ä� "��ʸ" �ˡ� - + �Ƚ� [email protected] + ���Żҥ������äƲ������� + + �������������Ǥϡ��ᥤ��ꥹ�ȤǼ��������å������� 30k + ����ί����˥������������ǥꥹ�ȤΥ��С������դ���ޤ��� + + �Х���ݡ����ѤΥ��ꥹ�Ȥ⤢��ޤ������Υꥹ�Ȥؤλ��ä� + "��ʸ" �ˡ� subscribe end -�Ƚ�[email protected] ���Żҥ������äƲ������� - -��ȯ�Ԥε����Τ���Υ��ꥹ�Ȥ����ѤǤ��ޤ������Υꥹ�Ȥؤλ��ä��Żҥ� -�������ʸ�ˡ� - + �Ƚ�[email protected] ���Żҥ������äƲ������� + + ��ȯ�Ԥε����Τ���Υ��ꥹ�Ȥ����ѤǤ� + �ޤ������Υꥹ�Ȥؤλ��ä��Żҥ�����ʸ�ˡ� subscribe end -�Ƚơ�[email protected]���Żҥ������äƲ������� - -http://www.PostgreSQL.org - -��㡼��IRC �����ͥ�ϡ�Freenode (irc.freenode.net)�� #PostgreSQL �Ȥ����� -���ͥ�Ǥ��� UNIX ���ޥ�ɤǡ� irc -c '#PostgreSQL' "$USER" irc.freenode.net. -��Ȥäƻ��äǤ��ޤ���Ʊ���ͥåȥ���ˡ����ڥ����Υ����ͥ�(# -postgresql-es)�⤢�ꡢ�ե��Υ����ͥ�(#postgresqlfr)�⤢��ޤ��� EFNet�� -��PostgreSQL�����ͥ뤬����ޤ��� - + �Ƚơ�[email protected]���Żҥ������äƲ��� + ���� + + PostgreSQL �ˤĤ��Ƥ�äȾܤ����Τꤿ����С����� PostgreSQL + WWW�ۡ���ڡ������餿�ɤ�ޤ��� + + http://www.PostgreSQL.org + + ��㡼��IRC �����ͥ�ϡ�Freenode (irc.freenode.net)�� #PostgreSQL + �Ȥ��������ͥ�Ǥ��� UNIX ���ޥ�ɤǡ� irc -c '#PostgreSQL' "$USER" + irc.freenode.net. ��Ȥäƻ��äǤ�ޤ��� + Ʊ���ͥåȥ���ˡ����ڥ����Υ����ͥ�(#postgresql-es)�⤢ + �ꡢ�ե��Υ����ͥ�(#postgresqlfr)�⤢��ޤ��� + EFNet�ˤ�PostgreSQL�����ͥ뤬����ޤ��� [����: 1999ǯ7��23�������ܥݥ��ȥ��쥹�桼������ά��JPUG����Ω����ޤ����� - JPUG ��������ȿ��ǡ�PostgreSQL�����Ѥ����ã����߶��Ϥξ�ȤʤäƤ��ޤ��� + JPUG ��������ȿ��ǡ�PostgreSQL�����Ѥ����ã����߶��Ϥξ�ȤʤäƤ��ޤ��� (2003ǯ5��17����������PostgreSQL�桼����פ�̾�Τ����ޤ�����) ������β����̵���Ǥ�������������β���Ȳ�����Ѷ�Ū�ʹ�����α��Ĥ�����Ƥ��ޤ��� �ܤ����ϡ�JPUG ��Web ������: @@ -328,76 +352,77 @@ postgresql-es)�⤢�ꡢ�ե��Υ����ͥ�(#postgresqlfr)�⤢��ޤ��� EFNet�� ���ܸ��IRC�����ͥ� '#PostgreSQL*jp' ��¸�ߤ��ޤ��� -���ѥ��ݡ��Ȳ�ҤΥꥹ�Ȥ�http://techdocs.postgresql.org/companies.php�ˤ���� -���� - -1.7) �ǿ��ǤϤɤ�Ǥ��� - -PostgreSQL �κǿ��ǤϥС������ 7.4.6 �Ǥ��� - -�桹�ϡ�6��8������˥�㡼������Ԥʤ����Ȥ�ײ褷�Ƥ��ޤ��� - -1.8) �ɤΤ褦��ʸ����ޤ����� - -���դ���ˡ������Ĥ��Υޥ˥奢��ȥ���饤�ޥ˥奢��(�ޥ˥奢�롦�ڡ���)�� -��Ӥ����Ĥ��ξ����ʥƥ������꤬�ޤޤ�ޤ���/doc �ǥ��쥯�ȥ�������������ޤ� -���ޥ˥奢��ϡ�http://www.ca.PostgreSQL.org/docs/�ǥ���饤��Ǥ�����Ǥ��ޤ� -�� - + ���ѥ��ݡ��Ȳ�ҤΥꥹ�Ȥ�http://techdocs.postgresql.org/companies.php + �ˤ���ޤ��� + + 1.7) �ǿ��ǤϤɤ�Ǥ��� + + PostgreSQL �κǿ��ǤϥС������ 7.4.6 �Ǥ��� + + �桹�ϡ�6��8������˥�㡼������Ԥʤ����Ȥ�ײ褷�Ƥ��ޤ��� + + 1.8) �ɤΤ褦��ʸ����ޤ����� + + ���դ���ˡ������Ĥ��Υޥ˥奢��ȥ���饤�ޥ˥奢��(�ޥ˥奢�롦� + ڡ���)����Ӥ����Ĥ��ξ����ʥƥ������꤬�ޤޤ�ޤ���/doc + �ǥ��쥯�ȥ�������������ޤ����ޥ˥奢��ϡ�http://www.ca.PostgreSQL + .org/docs/�ǥ���饤��Ǥ�����Ǥ�ޤ��� [����: �ʳ���SRA������PostgreSQL�桼������������졢 ��PostgreSQL ���ե������ޥ˥奢��� �Ȥ��ƽ��Ǥ���Ƥ��ޤ��� ] -����饤��ǻ��ȤǤ��� PostgreSQL ���ܤ�2������ޤ���http://www.PostgreSQL.org/ -docs/awbook.html - + ����饤��ǻ��ȤǤ�� PostgreSQL + ���ܤ�2������ޤ���http://www.PostgreSQL.org/docs/awbook.html [����: ���ܥݥ��ȥ��쥹�桼������� ��PostgreSQL Book����ʬ�ʲ�� �ˤ���������ޤ����� ] -����ӡ� http://www.commandprompt.com/ppbook/ �Ǥ���������ǽ�ʽ��Ҥ���Ͽ�ϡ� -http://techdocs.PostgreSQL.org/techdocs/bookreviews.php �ˤ���ޤ��� PostgreSQL -���Ѿ����⡢http://techdocs.PostgreSQL.org/ �ˤ���ޤ��� - -[����: ����ʸ��ϡ����ܥݥ��ȥ��쥹�桼�������http://www.postgresql.jp/ -document/ ������� ] - -���ޥ�ɥ饤��Υ��饤����ȥץ������psql �⡢�����黻�ҡ��ؿ���������¾�� -����������롢�����Ĥ��������餷�� \d ���ޥ�ɤ�����ޤ��� - \? ��Ȥ����� -�Ѳ�ǽ�ʥ��ޥ�ɤ�ɽ������ޤ��� - -�桹�� Web �����Ȥˤϡ���ä�������ʸ����ޤ��� - -1.9) ���ΤΥХ���̤��̵����ǽ�Ϥɤ���äƸ��Ĥ��ޤ����� - -PostgreSQL�ϳ�ĥ���줿SQL-92�Υ��֥��åȤݡ��Ȥ��ޤ����桹�Υڡ����� TODO -�ꥹ�Ȥˡ����ΤΥХ�����ǽ�侭��ײ�ˤĤ��Ƥε��Ҥ�����ޤ��� - -1.10) SQL �Ϥɤ�����гؤ٤ޤ����� - -http://www.PostgreSQL.org/docs/awbook.html �ˤ���PostgreSQL�ܤ� SQL ���Ƥ� -�ޤ��� - + ����ӡ� http://www.commandprompt.com/ppbook/ �Ǥ��� + ������ǽ�ʽ��Ҥ���Ͽ�ϡ�http://techdocs.PostgreSQL.org/techdocs/bookre + views.php �ˤ���ޤ��� PostgreSQL ���Ѿ��� + ���⡢http://techdocs.PostgreSQL.org/ �ˤ���ޤ��� + + [����: + ����ʸ��ϡ����ܥݥ��ȥ��쥹�桼�������http://www.postgresql.jp/docum + ent/ ������� ] + + ���ޥ�ɥ饤��Υ��饤����ȥץ������psql + �⡢�����黻�ҡ��ؿ���������¾�ξ���������롢�����Ĥ��������� + ���� \d ���ޥ�ɤ�����ޤ��� - \? + ��Ȥ������Ѳ�ǽ�ʥ��ޥ�ɤ�ɽ������ޤ��� + + �桹�� Web �����Ȥˤϡ���ä�������ʸ����ޤ��� + + 1.9) ���ΤΥХ���̤��̵����ǽ�Ϥɤ���äƸ��Ĥ��ޤ����� + + PostgreSQL�ϳ�ĥ���줿SQL-92�Υ��֥��åȤݡ��Ȥ��ޤ��� + �桹�Υڡ����� TODO �ꥹ�Ȥˡ����ΤΥХ�����ǽ�侭 + ��ײ�ˤĤ��Ƥε�Ҥ�����ޤ��� + + 1.10) SQL �Ϥɤ�����гؤ٤ޤ����� + + http://www.PostgreSQL.org/docs/awbook.html �ˤ���PostgreSQL�ܤ� SQL + ���Ƥ��ޤ��� [����: ���ܥݥ��ȥ��쥹�桼������� ��PostgreSQL Book����ʬ�ʲ�� �ˤ�����������Ǥ���Ƥ��ޤ��� ] -����¾�ˤ� PostgreSQL�ܤȤ��ơ�http://www.commandprompt.com/ppbook ������ޤ��� -�����餷�������ϡ�http://www.intermedia.net/support/sql/sqltut.shtm, http:// -ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, �����ơ�http:// -sqlcourse.com �ˤ���ޤ��� - -����¾�Ǥϡ� "Teach Yourself SQL in 21 Days, Second Edition" �� http:// -members.tripod.com/er4ebus/sql/index.htm�ˤ���ޤ��� - -¿���Υ桼���ˡ� The Practical SQL Handbook, Bowman Judith S. et al., -Addison-Wesley ����ɾ�Ǥ�������¾�ˡ�The Complete Reference SQL, Groff et al., -McGraw-Hill �Τ褦�ʤΤ⤢��ޤ��� - + ����¾�ˤ� PostgreSQL�ܤȤ��ơ�http://www.commandprompt.com/ppbook + ������ޤ��� + �����餷�������ϡ�http://www.intermedia.net/support/sql/sqltut.shtm, + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, + �����ơ�http://sqlcourse.com �ˤ���ޤ��� + + ����¾�Ǥϡ� "Teach Yourself SQL in 21 Days, Second Edition" �� + http://members.tripod.com/er4ebus/sql/index.htm�ˤ���ޤ��� + + ¿���Υ桼���ˡ� The Practical SQL Handbook, Bowman Judith S. et al., + Addison-Wesley ����ɾ�Ǥ��� ����¾�ˡ�The Complete Reference SQL, + Groff et al., McGraw-Hill �Τ褦�ʤΤ⤢��ޤ��� [����: �а�ã��ˤ�����ܸ�λ���ʸ���ξҲ�ڡ��� http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html @@ -407,138 +432,158 @@ McGraw-Hill �Τ褦�ʤΤ⤢��ޤ��� ������ޤ�(���Ť�2000ǯ��)�� �����ѱѻ�Ρ�PostgreSQL���ܸ�ޥ˥奢��� http://www.net-newbie.com/ - �Ǥϥ���饤��ޥ˥奢��θ������Ǥ��ޤ��� + �Ǥϥ���饤��ޥ˥奢��θ������Ǥ�ޤ��� �ݻ��������UNIX �ǡ����١������� http://www.wakhok.ac.jp/DB/DB.html - �⥪��饤����ɤळ�Ȥ��Ǥ��ޤ��� + �⥪��饤����ɤळ�Ȥ��Ǥ�ޤ��� ] -1.11) PostgreSQL������2000ǯ����(Y2K)���б����Ƥ��ޤ����� - -�б����Ƥޤ�������2000ǯ��������դ⡢������2000ǯ����������դ⡢��ñ�˰��� -�ޤ��� - -1.12) ��ȯ������ˤϤɤΤ褦�˻��ä��ޤ����� - -�ޤ��ǽ�(������)�ˡ��ǿ��Υ����������������ɤ����桹�� Web �����Ȥ����ۤ˴ޤ� -��Ƥ���PostgreSQL Developers��ʸ����ɤߤޤ��������ܤˡ�pgsql-hackers �� -pgsql-patches �����ꥹ�Ȥ����(subscribe)���ޤ��������ܤˡ����ʼ��Υѥ� -����pgsql-patches��ȯ�����ޤ��� - -���褽���ͤ���äȤο�ã����PostgreSQL CVS���������֤˥��ߥåȤ��븢�¤���ä� -���ޤ������Τ��줾��ο�ã�������ι��ʼ��ʥѥå���ȯ������Τǡ����ߥ��ߥå��� -�ȤʤäƤ����ã�Ϥ�����ɤ��դ��Τ����ѤǤ������桹����餬���ߥåȤ����ѥå� -�Ϲ��ʼ��Ǥ���ȳο����Ƥ��ޤ��� - -1.13) �Х���ݡ��ȤϤɤΤ褦��ȯ�����ޤ����� - -http://www.postgresql.org/support/submitbug ��PostgreSQL �Х��ե������ˬ��Ʋ� -�������Х���ݡ��Ȥ���Ф�������ˤĤ��Ƥμ���Ȼؿˤ�����ޤ��� - -�����Ʊ���� ftp ������ ftp://ftp.PostgreSQL.org/pub/�ǡ���äȿ������С������ -�� PostgreSQL ���뤤�ϥѥå������ƤߤƲ������� - -1.14) ¾��DBMS����٤�PostgreSQL�Ϥɤ��ʤΤǤ����� - -���եȥ�������פ���ˡ�ˤϤ����Ĥ�����ޤ�����ǽ����ǽ�ȿ������ȥ��ݡ��ȤȲ��� -�Ǥ��� - -��ǽ(Features) - PostgreSQL�ϡ��ȥ����������䤤��碌���ȥꥬ�����ӥ塼������������ - �������ȡ�����ӡ��������줿���å������ʤɡ��絬�Ͼ���DBMS�����ĵ�ǽ��ۤ� - ��ɻ��äƤ��ޤ�������� PostgreSQL�ϡ��桼����������Ѿ����롼�롢���줫�� - �����å������̾�����ޥ���С������Ʊ��������ʤɡ�����DBMS�������碌 - �ʤ��褦�ʵ�ǽ���Ĥ�������碌�Ƥ��ޤ��� -��ǽ(Performance) - PostgreSQL��¾�ξ��Ѥ��뤤�ϥ����ץ����Υǡ����١����ȸ߳Ѥ���ǽ����� - �ޤ��������̤ǤϤ���ᤫ�ä��ꡢ�ۤ����̤ǤϤ���٤��ä��ꤷ�ޤ���MySQL�ʤ� - ���ò����ǡ����١����������ƥ�ˤ���٤ơ�PostgreSQL ��ʣ���桼����ʣ������ - ����碌���ޤ��� read/write �䤤��碌�Υ����ɤ�����®�Ǥ���MySQL�Ͼ��ʤ� - �桼���Ǥ�ñ��� SELECT �䤤��碌�ǤϹ�®�Ǥ����������MySQL�ˤϾ嵭�� - Features����˼����褦�ʵ�ǽ�ϤۤȤ�ɤ���ޤ��桹�ϡ�PostgreSQL�˽��� - ���ȵ�ǽ�����Ȥ߹��ߤʤ���⡢�䤨����ǽ�β�����³���Ƥ��ޤ��� -������(Reliability) - �桹�ϡ�DBMS�ο��������⤯�ʤ��ƤϤ��β��ͤ�̵�����Ȥ����Ƥޤ�����ʬ�� - ���Ȥ��ơ����ꤷ�������ɤ�Х���Ǿ��ˤ��Ƥ����������褦���ؤ�Ƥޤ� - �����줾��Υ����Ͼ��ʤ��Ȥ�1����ʾ�Υ١������ƥ��Ȥ�Ԥʤ�������ޤ� - �Υ��������������ǤȤ��ư��ꤷ�����Ǥʥ����Ǥ��뤳�Ȥ�ʪ��ä� - ���ޤ�������ʬ��Ǥϡ�¾�Υǡ����١�������٤Ƥ�½�����ʤ����Ȥ˼�������� - �Ƥ��ޤ��� -���ݡ���(Support) - �桹�Υ��ꥹ�Ȥϡ��������뤤���ʤ�����ˤĤ��Ƥ���ؤμ������ - �Ƥ���롢��ȯ�Ԥ�桼�����礭�ʽ��ޤ�ؤ����������Ƥ��ޤ����桹������ - �β����ݾڤ��뤳�ȤϤǤ��ޤ������ѥǡ����١����Ǥ��äƤ��˲�褵�� - ��櫓�ǤϤ���ޤ���ȯ�Ԥ䡢�桼�������ߥ�˥ƥ����ޥ˥奢���ࡢ����� - �������������ɤʤɤ�ľ�ܥ��������Ǥ��뤳�Ȥˤ�äơ�PostgreSQL�Υ��ݡ��Ȥ� - ��¾��DBMS���ݡ��Ȥ���ͥ�줿��ΤȤʤäƤ��ޤ�������˾�������ơ�������� - ���ѥ��ݡ��Ȥʤɤ⤢��ޤ���FAQ1.6������������ˡ� -����(Price) - PostgreSQL�����Ѥϡ����ѤǤ����ѤǤ⡢���٤�̵���Ǥ����嵭�˼����Ƥ���BSD - ��������λ��ѵ����˳���ʤ��¤ꡢPostgreSQL�Υ����ɤ�����̵���Ǿ��ʤ��Ȥ� - ���ळ�Ȥ��Ǥ��ޤ��� - -1.15) PostgreSQL�����̤DZ������ˤϤɤ�����Ф褤�Ǥ����� - -PostgreSQL�ϡ��桹���Ϥ 1996ǯ���衢�ǹ⥯�饹�ξ�����פ���äƤ��ޤ������� -�Ϥ��٤ơ�Marc Fournie����Τ������ǡ���Ϥ��δ��פ��Ϥ�Ф�����ǯ�ˤ�錄�ä� -�������Ƥ��ޤ����� - -�����ɤ����פϡ������ץ������ץ��������ȤˤȤäƤϤȤƤ����ڤʤ�Τǡ��ץ� -�������Ȥ����ʤ��������ä�ʬ������Τ���ޤ��� - -��������δ��פϰ¤���ΤǤϤ���ޤ��ݻ���³���뤿��ˤ����뤤�ϰ� -��Ū�˷�������ޤ����⤷�����ʤ��䤢�ʤ��β�Ҥˡ������������ϤΤ���λ�� -�α����ܤ����Ȥ��Ǥ���褦�Ǥ����顢http://store.pgsql.com/shopping/������� -�ꤤ���ޤ��� - -�ޤ���Web�ڡ����ˤ� PostgreSQL,Inc �Ȥ���ޤ����������� "��(contributions)"�� -�������ܤϡ� PostgreSQL �ץ��������Ȥ�ٱ礹������Τ���ǡ��褷������β�Ҥ� -����λ��ǤϤ���ޤ��⤷�����ڼ�(check)�������Թ�褱���Ϣ����ν���ؤ� -���겼������ - -����ˡ�PostgreSQL��Ȥä�������������Ǥ���С����ҡ������λ���Ҳ�� -���� [email protected] �ؤ����꤯�������� - -������������������������������������������������������������������������������ - - �桼���������饤����Ȥμ��� - -2.1) PostgreSQL �Τ���� ODBC �ɥ饤�С��Ϥ���ޤ����� - -PsqlODBC �� OpenLink ODBC ����Ĥ� ODBC �ɥ饤�С������Ѳ�ǽ�Ǥ��� - -PsqlODBC �ϼ��ξ�꤫�����������ɤǤ��ޤ��� http://gborg.postgresql.org/ -project/psqlodbc/projdisplay.php - -OpenLink ODBC �� http://www.openlinksw.com/��������Ǥ��ޤ���ɸ��Ū�� ODBC ���� -������ȡ����եȥ������ǻȤ��ޤ��Τǡ��ٱ礷�Ƥ��뤹�٤ƤΥץ�åȥۡ���(Win, -Mac, Unix, VMS)���� PostgreSQL �� ODBC �����ѤǤ��ޤ��� - -���֤����ϡ������ʼ��Υ��ݡ��Ȥ�ɬ�פʿ͡�����äƤ���Ȼפ��ޤ������ե�� -�����ǤϤ��ĤǤ������ǽ�Τ褦�Ǥ�������ϡ�[email protected] �����ä� -�������� - -Programmer's Guide �� ODBC �ξϤ⤴������������ - -2.2) PostgreSQL �� Web �ڡ�����Ϣ�Ȥ�����ˤϤɤ�ʥġ��뤬����ޤ����� - -�ǡ����١������˻��� Web �ڡ����ˤĤ��Ƥ������餷���Ҳ𤬡� -http://www.webreview.com�ˤ���ޤ��� - -Web �ؤγ�ĥ�Τ���ˤϡ�PHP ����ۤ��������ե������ȤʤäƤ��ޤ���http:// -www.php.net/�ˤ���ޤ��� - + 1.11) PostgreSQL������2000ǯ����(Y2K)���б����Ƥ��ޤ����� + + �б����Ƥޤ�������2000ǯ��������դ⡢������2000ǯ����������դ⡢�� + ñ�˰����ޤ��� + + 1.12) ��ȯ������ˤϤɤΤ褦�˻��ä��ޤ����� + + �ޤ��ǽ�(������)�ˡ��ǿ��Υ����������������ɤ����桹�� Web + �����Ȥ����ۤ˴ޤޤ�Ƥ���PostgreSQL Developers��ʸ����ɤߤޤ��� + �����ܤˡ�pgsql-hackers �� pgsql-patches + �����ꥹ�Ȥ����(subscribe)���ޤ��� + �����ܤˡ����ʼ��Υѥå���pgsql-patches��ȯ�����ޤ��� + + ���褽���ͤ���äȤο�ã����PostgreSQL + CVS���������֤˥��ߥåȤ��븢�¤���äƤ��ޤ��� + ���Τ��줾��ο�ã�������ι��ʼ��ʥѥå���ȯ������Τǡ����ߥ��ߥå��� + �ȤʤäƤ����ã�Ϥ�����ɤ��դ��Τ����ѤǤ������桹����餬���ߥåȤ� + ���ѥå��Ϲ��ʼ��Ǥ���ȳο����Ƥ��ޤ��� + + 1.13) �Х���ݡ��ȤϤɤΤ褦��ȯ�����ޤ����� + + http://www.postgresql.org/support/submitbug ��PostgreSQL + �Х��ե������ˬ��Ʋ������� + �Х���ݡ��Ȥ���Ф�������ˤĤ��Ƥμ���Ȼؿˤ�����ޤ��� + + �����Ʊ���� ftp ������ + ftp://ftp.PostgreSQL.org/pub/�ǡ���äȿ������С������� PostgreSQL + ���뤤�ϥѥå������ƤߤƲ������� + + 1.14) ¾��DBMS����٤�PostgreSQL�Ϥɤ��ʤΤǤ����� + + ���եȥ�������פ���ˡ�ˤϤ����Ĥ�����ޤ�����ǽ���ǽ�ȿ����� + �ȥ��ݡ��ȤȲ��ʤǤ��� + + ��ǽ(Features) + PostgreSQL�ϡ��ȥ����������䤤��碌���ȥꥬ�����ӥ塼� + �������������� + ���ȡ�����ӡ��������줿���å������ʤɡ��絬�Ͼ���DBMS�����ĵ�� + ���ۤȤ�ɻ��äƤ��ޤ�������� + PostgreSQL�ϡ��桼����������Ѿ����롼�롢���줫�顢���å����� + �̾�����ޥ���С������Ʊ���� + ����ʤɡ�����DBMS�������碌�ʤ��褦�ʵ�ǽ���Ĥ�������� + ��Ƥ��ޤ��� + + �ǽ(Performance) + PostgreSQL��¾�ξ��Ѥ��뤤�ϥ����ץ����Υǡ����١����ȸ߳Ѥ + ��� + ǽ������ޤ��������̤ǤϤ���ᤫ�ä��ꡢ�ۤ����̤ǤϤ���٤��ä + ��ꤷ�ޤ���MySQL�ʤɤ��ò����ǡ����١����������ƥ�ˤ���٤ơ�P + ostgreSQL ��ʣ���桼����ʣ�����䤤��碌���ޤ��� read/write + �䤤��碌�Υ����ɤ�����®�Ǥ���MySQL�Ͼ��ʤ��桼���Ǥ�ñ��� + SELECT �䤤��碌�ǤϹ�®�Ǥ����������MySQL�ˤϾ嵭 + ��Features����˼����褦�ʵ�ǽ�ϤۤȤ�ɤ���ޤ��桹�ϡ�Pos + tgreSQL�˽�����ȵ�ǽ����Ȥ߹��ߤʤ���⡢�䤨���� + ǽ�β�����³���Ƥ��ޤ��� + + �����(Reliability) + �桹�ϡ�DBMS�ο����� + ���⤯�ʤ��ƤϤ��β��ͤ�̵�����Ȥ����Ƥޤ�����ʬ�ƥ��Ȥ��ơ + ����ꤷ�������ɤ�Х���Ǿ��ˤ��Ƥ����������褦���ؤ�Ƥ� + �������줾��Υ����Ͼ��ʤ��Ȥ�1����ʾ�Υ١������ƥ��Ȥ�� + �ʤ�������ޤǤΥ��������������ǤȤ��ư��ꤷ�����Ǥʥ� + ���Ǥ��뤳�Ȥ�ʪ��äƤ��ޤ�������ʬ��Ǥϡ�¾�Υǡ����١��� + ����٤Ƥ�½�����ʤ����Ȥ˼�������äƤ��ޤ��� + + ���ݡ���(Support) + �桹�Υ��ꥹ�Ȥϡ��������뤤���ʤ�����ˤĤ��Ƥ���ؤ + μ�����Ƥ���롢��ȯ�Ԥ�桼�����礭 + �ʽ��ޤ�ؤ����������Ƥ��ޤ����桹������β����ݾڤ��뤳� + ȤϤǤ� + �ޤ������ѥǡ����١����Ǥ��äƤ��˲�褵���櫓�ǤϤ��� + ޤ���ȯ�Ԥ䡢�桼�������ߥ�˥ƥ����ޥ˥奢���ࡢ����ˡ��� + ���������ɤʤɤ�ľ�ܥ��������Ǥ� + �뤳�Ȥˤ�äơ�PostgreSQL�Υ��ݡ��Ȥϡ�¾��DBMS���ݡ��Ȥ���� + ��줿��ΤȤʤäƤ��ޤ�������˾�������ơ�������ξ��ѥ��ݡ��Ȥ� + �ɤ⤢��ޤ���FAQ1.6������������ˡ� + + ����(Price) + PostgreSQL�����Ѥϡ����ѤǤ����ѤǤ⡢���٤�̵���Ǥ����嵭 + �˼����Ƥ���BSD��������λ��ѵ����˳���ʤ��¤ꡢPostgreSQL�Υ� + ���ɤ�����̵���Ǿ��ʤ��Ȥ߹��ळ�Ȥ��Ǥ�ޤ��� + + 1.15) PostgreSQL�����̤DZ������ˤϤɤ�����Ф褤�Ǥ����� + + PostgreSQL�ϡ��桹���Ϥ 1996ǯ���衢�ǹ⥯�饹�ξ�����פ���äƤ� + �ޤ�������Ϥ��٤ơ�Marc + Fournie����Τ������ǡ���Ϥ��δ��פ��Ϥ�Ф�����ǯ�ˤ�錄�äƴ������ + Ƥ�ޤ����� + + �����ɤ����פϡ������ץ������ץ��������ȤˤȤäƤϤȤƤ����ڤʤ�� + �ǡ��ץ��������Ȥ����ʤ��������ä�ʬ������Τ���ޤ��� + + ��������δ��פϰ¤���ΤǤϤ���ޤ��ݻ���³���뤿��ˤ��� + �뤤�ϰ��Ū�˷�������ޤ����⤷�����ʤ��䤢�ʤ��β�Ҥˡ��������� + ���ϤΤ���λ��α����ܤ����Ȥ��Ǥ� + ��褦�Ǥ����顢http://store.pgsql.com/shopping/������դꤤ���ޤ� + �� + + �ޤ���Web�ڡ����ˤ� PostgreSQL,Inc �Ȥ���ޤ����������� + "��(contributions)"�Ȥ������ܤϡ� PostgreSQL + �ץ��������Ȥ�ٱ礹������Τ���ǡ��褷������β�ҤΤ���λ��ǤϤ� + ��ޤ��⤷�����ڼ�(check)�������Թ�褱���Ϣ����ν���ؤ����겼� + ����� + + ����ˡ�PostgreSQL��Ȥä�������������Ǥ���С����ҡ������� + ����Ҳ�ꥹ�� [email protected] �ؤ����꤯�������� + _________________________________________________________________ + + �桼���������饤����Ȥμ��� + + 2.1) PostgreSQL �Τ���� ODBC �ɥ饤�С��Ϥ���ޤ����� + + PsqlODBC �� OpenLink ODBC ����Ĥ� ODBC �ɥ饤�С������Ѳ�ǽ�Ǥ��� + + PsqlODBC �ϼ��ξ�꤫�����������ɤǤ�ޤ��� + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php + + OpenLink ODBC �� http://www.openlinksw.com/��������Ǥ�ޤ���ɸ��Ū�� + ODBC + ���饤����ȡ����եȥ������ǻȤ��ޤ��Τǡ��ٱ礷�Ƥ��뤹�٤ƤΥץ�å� + �ۡ���(Win, Mac, Unix, VMS)���� PostgreSQL �� ODBC �����ѤǤ�ޤ��� + + ���֤����ϡ������ʼ��Υ��ݡ��Ȥ�ɬ�פʿ͡�����äƤ���Ȼפ��ޤ����� + �ե�������ǤϤ��ĤǤ������ǽ�Τ褦�Ǥ�������ϡ�postgres95@openlin + k.co.uk �����äƲ������� + + Programmer's Guide �� ODBC �ξϤ⤴������������ + + 2.2) PostgreSQL �� Web �ڡ�����Ϣ�Ȥ�����ˤϤɤ�ʥġ��뤬����ޤ����� + + �ǡ����١������˻��� Web �ڡ����ˤĤ��Ƥ������餷���Ҳ𤬡� + http://www.webreview.com�ˤ���ޤ��� + + Web �ؤγ�ĥ�Τ���ˤϡ�PHP + ����ۤ��������ե������ȤʤäƤ��ޤ���http://www.php.net/�ˤ���ޤ + ��� [����: - PHP�˴ؤ������ܸ�ξ���ϡ�2000ǯ4��19����ȯ��������PHP�桼����Υ����� + PHP�˴ؤ������ܸ�ξ���ϡ�2000ǯ4��19����ȯ¤�������PHP�桼����Υ����� http://www.php.gr.jp/ ���뤤�ϡ�ע�� �व��Υ����� http://www.geocities.jp/rui_hirokawa/php/ �ˤ��ʤ�ޤȤ���Ƥ��ޤ��� ] -������ʣ���ʾ�硢¿���οͤ� Perl �����ե������� CGI.pm �� mod_perl ��Ȥ� -�ޤ��� - + ������ʣ���ʾ�硢¿���οͤ� Perl �����ե������� CGI.pm �� + mod_perl ��Ȥ��ޤ��� [����: WDB �ϡ�Web ���� DataBase �ؤ� Perl �� Interface �Ǥ��� wdb-p95 �ؤΥ���ڤ�Ƥ��ޤäƤ��ޤ��������餯��Perl DBI ��ͳ�� DBD::Pg �����Ѥ���ǽ�Ȼפ��ޤ��� @@ -549,286 +594,317 @@ www.php.net/�ˤ���ޤ��� �Ȥ�����ޤ������ηаޤϤ褯�狼��ޤ��� ] -2.3) PostgreSQL �˥���ե����롦�桼�������ե������Ϥ���ޤ����� - -�������PostgreSQL �ؤΥ���ե����륤���ե������������Ĥ�����ޤ��������� -��PgAccess http://www.pgaccess.org ��ޤޤ�ޤ��� PgAdmin III (http:// -www.pgadmin.org)�⤢��ޤ��� RHDB Admin (http://sources.redhat.com/rhdb/ )�� -TORA (http://www.globecom.net/tora/ (��ʬŪ�˾���)) ����ӡ� Rekall ( http:// -www.thekompany.com/products/rekall/, proprietary)�⤢��ޤ��� PhpPgAdmin ( -http://phppgadmin.sourceforge.net/ ) ��PostgreSQL�ؤ�Web�١����Υ����ե��� -�������ޤ��� - -���ܺ٤ʥꥹ�ȤˤĤ��Ƥϡ�http://techdocs.postgresql.org/guides/GUITools �� -������������ - -2.4) �ɤΤ褦�ʸ���� PostgreSQL ���̿��Ǥ������� - -�͵��Τ���ۤȤ�ɤθ����PostgreSQL�ؤΥ����ե���������äƤ��ޤ������ʤ� -���Ȥ��ץ�����ߥ���γ�ĥ�⥸�塼��Υꥹ�Ȥ������ƤߤƤ��������� - -�ʲ��Υ����ե�������PostgreSQL�����ۤ˴ޤޤ�Ƥ��ޤ��� - - �� C (libpq) - �� ������C (ecpg) - �� Java (jdbc) - �� Python (PyGreSQL) - �� TCL (libpgtcl) - -����¾�����Ѳ�ǽ�ʥ����ե������� http://gborg.postgresql.org ��Drivers/ -Interfaces�Υ��������ˤ���ޤ��� - + 2.3) PostgreSQL �˥���ե����롦�桼�������ե������Ϥ���ޤ����� + + �������PostgreSQL + �ؤΥ���ե����륤���ե������������Ĥ�����ޤ��� �������PgAccess + http://www.pgaccess.org ��ޤޤ�ޤ��� PgAdmin III + (http://www.pgadmin.org)�⤢��ޤ��� RHDB Admin + (http://sources.redhat.com/rhdb/ )��TORA + (http://www.globecom.net/tora/ (��ʬŪ�˾���)) ����ӡ� Rekall ( + http://www.thekompany.com/products/rekall/, proprietary)�⤢��� ���� + PhpPgAdmin ( http://phppgadmin.sourceforge.net/ ) + ��PostgreSQL�ؤ�Web�١����� �����ե����������ޤ��� + + ���ܺ٤ʥꥹ�ȤˤĤ��Ƥϡ�http://techdocs.postgresql.org/guides/GUIT + ools �������������� + + 2.4) �ɤΤ褦�ʸ���� PostgreSQL ���̿��Ǥ������ + + �͵��Τ���ۤȤ�ɤθ����PostgreSQL�ؤΥ����ե���������äƤ��ޤ� + �� + ���ʤ����Ȥ��ץ�����ߥ���γ�ĥ�⥸�塼��Υꥹ�Ȥ������ƤߤƤ��� + ������ + + �ʲ��Υ����ե�������PostgreSQL�����ۤ˴ޤޤ�Ƥ��ޤ��� + * C (libpq) + * ������C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + ����¾�����Ѳ�ǽ�ʥ����ե������� http://gborg.postgresql.org + ��Drivers/Interfaces�Υ��������ˤ���ޤ��� [������ �ʰ¸�ˤ���� Palm �Ǥ� libpq ��ȯ����ޤ����� http://www.snaga.org/libpq/ ] - -������������������������������������������������������������������������������ - - ������μ��� - -3.1) �ɤΤ褦�ˤ���� /usr/local/pgsql �ʳ��ξ��˥��ȡ���Ǥ��ޤ����� - -��ñ����ˡ�ϡ� configure �����餻��Ȥ��� --prefix ���ץ�������ꤹ�뤳�ȤǤ� -�� - -3.2) postmaster �����餻��ȡ�Bad System Call �Ȥ�����������פ����ȤΥ�å��� -�����Фޤ����ʤ��Ǥ����� - -���ޤ��ޤ����꤬�ͤ����ޤ������ޤ��ǽ�ˤ��ʤ��Υ����ͥ�� System V IPC �γ� -ĥ�����ȡ��뤵��Ƥ��뤫���ǧ���Ƹ��Ƥ���������PostgreSQL �ϥ����ͥ�ˤ�� -��ͭ����ȥ��ޥե��Υ��ݡ��Ȥ�ɬ�פȤ��ޤ��� - -3.3) postmaster �����餻�褦�Ȥ���ȡ�IpcMemoryCreate ���顼���Фޤ����ʤ��Ǥ� -���� - -�����ͥ뤬��ͭ������������ˤʤäƤ��ʤ��ä������Ǥʤ���С������ͥ���� -���ƻȤ��붦ͭ������礭�����礭�����ꤹ��ɬ�פ�����ޤ�������Ū���礭���� -���ȤäƤ��륢�����ƥ������postmaster �����餻��Ȥ������ꤹ��Хåե��ο��ȥ� -�å�����ɥץ������˰�¸���ޤ����ۤȤ�ɤΥ����ƥ�Ǥϡ������ͤΥХåե������� -�Τޤޤǡ����ʤ��Ȥ���1MB��ɬ�פǤ��� PostgreSQL Administrator's Guide/Server -Run-time Environment/Managing Kernel Resources �˶�ͭ����ȥ��ޥե��ˤĤ��� -�ξ���ξܺ٤�����ޤ��ΤǤ������������� - -3.4) postmaster�����餻�褦�Ȥ���ȡ�IpcSemaphoreCreate ���顼���Фޤ����ʤ��� -������ - -�⤷���顼��å�������IpcSemaphoreCreate: semget failed (No space left on -device)�Ǥ���С������ͥ뤬��ʬ�ʥ��ޥե���Ȥ���褦�˹�������Ƥ��ޤ��� -Postgres������Ū�ʥХå�����ɥץ�������˰�ĤΥ��ޥե���ɬ�פȤ��ޤ����Ȥꤢ -�����β�����postmaster��ư����Ȥ��ˡ��Хå�����ɥץ������ο����꾯�ʤ� -���¤뤳�ȤǤ��������ͤ�32��꾮���ʿ��Υѥ�����-N�ǻȤ��ޤ�����깱�� -Ū�ʲ����ϡ������ͥ��SEMMNS �� SEMMNI �ѥ��������䤹���ȤǤ��� - -�����ǽ�Υ��ޥե�����٤ʥǡ����١������������δ֤˥���å��������ǽ���� -����ޤ��� - -�⤷�����顼��å��������ʤˤ�¾�Τ�ΤǤ���С������ͥ�ι����Ǥޤä������ޥ� -���Υ��ݡ��ȤƤ��ʤ����⤷��ޤ��� PostgreSQL Administrator's Guide �˶� -ͭ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�����ޤ��� - -3.5) ¾�Υۥ��Ȥ������³�ϤɤΤ褦�����椷�ޤ����� - -�����ͤǤϡ�PostgreSQL �� Unix �ɥᥤ���åȡ��ޤ��ϡ�TCP/IP��³�Υ�������� -�������³���������ޤ���postgresql.conf ����� listen_addresses ������ -�����ġ�$PGDATA/pg_hba.conf �ե������Ŭ�ڤ�ľ���ơ��ۥ��ȼ�Ƴ��ǧ�ڤ�ͭ���ˤ� -�ʤ�������ϡ�¾�Υޥ������³�Ǥ��ʤ��Ǥ��礦�� - -3.6) ����ɤ���ǽ�����뤿��ˤϡ��ǡ����١����������ɤΤ褦��Ĵ��������� -���Ǥ����� - -�Τ��˥���ǥå������䤤��碌��®�٤������ޤ���EXPLAIN ANALYZE���ޥ�ɤ� -PostgreSQL ���ɤΤ褦�ˤ��ʤ����䤤��碌���������Ƥ��뤫�뤳�Ȥ��Ǥ������� -�ơ��ɤΥ���ǥå������Ȥ��Ƥ��뤫�뤳�Ȥ��Ǥ��ޤ��� - -�⤷ INSERT ��¿�Ѥ��Ƥ�����ϡ�COPY ���ޥ�ɤ�Ȥä��礭�ʥХå������Ǥ���� -�Ԥʤ����Ȥ�Ƥ���Ʋ�����������ϡ�INSERT ���̡��˹Ԥʤ�����äȹ�®�Ǥ����� -�ˡ�BEGIN WORK/COMMIT �Υȥ������֥��å������̵��ʸ�ϡ�����鼫�Ȥ� -���줾��Υȥ�����������äƤ���ȸ��ʤ���ޤ��������Ĥ���ʸ���ĤΥȥ� -������֥��å�����ǹԤʤ����Ȥ�ͤ��Ʋ�����������ˤ��ȥ������ -��Υ����С��إåɤ�����ޤ����ޤ����礭�ʥǡ������ѹ���Ԥʤ��ݤϥ���ǥå��� -����ٳ����ơ����ľ�����Ȥ�ͤ��ƤߤƲ������� - -Administration Guide/Server Run-time Environment/Run-time Configuration�ˤϡ��� -�塼�˥Υ��ץ�������Ĥ�����ޤ���fsync���ץ�����fsync() ��̵���ˤ��� -���Ȥ��Ǥ��ޤ�������ˤ�äơ��ƥȥ���������� fsync() �ǥǥ��������� -��Τ�ߤᤵ���ޤ��� - -shared_buffers���ץ�����ȤäƥХå�����ɡ��ץ������ˤ��Ȥ��붦ͭ���� -�����Хåե����礭�����뤳�Ȥ�Ǥ��ޤ����⤷�����Υѥ�����⤯��������ȡ� -�����ͥ�ζ�ͭ������֤������ͤ�ۤ��Ƥ��ޤ������ postmaster ������ʤ��� -��Ǥ��礦�������ͤǤϡ����줾��ΥХåե����礭���� 8K �ǡ��Хåե����� 1000 -�Ǥ��� - -sort_mem (PostgreSQL 8.0�����: work_mem)���ץ�����Ȥäơ����줾��ΥХå��� -��ɡ��ץ����������Ū���¤��ؤ��ˤ�äƻȤ�����κ��祵���������䤹���Ȥ� -�Ǥ��ޤ��������ͤ� 1024 (���ʤ����1MB)�Ǥ��� - -�ޤ���CLUSTER ���ޥ�ɤ�Ȥäơ��ơ��֥�Υǡ�����ǥå����˹�碌�뤿��� -���롼�ײ����뤳�Ȥ�Ǥ��ޤ����ܤ����ϡ�����饤��ޥ˥奢��� CLUSTER �Ʋ� -������ - -3.7) �ɤΤ褦�ʥǥХ���ǽ���Ȥ��ޤ����� - -PostgreSQL �ϡ��ǥХ��Τ���˰�̣�Τ��롢���־������𤹤뤤���Ĥ��ε�ǽ����� -�ޤ��� - -�ޤ���--enable-cassert ���ץ����� configure �����餻�ޤ����������ƥ���ѥ��� -���뤳�Ȥˤ�ꡢ������ assert() �����Хå�����ɤο�Ľ������ƻ뤷������ͽ���� -�̤��Ȥ�������ȥץ���������ߤ���褦�ˤʤ�ޤ��� - -postmaster �� postgres ��ξ���Ǥ����Ĥ��ΥǥХ������ץ��������Ѥ��Ǥ��ޤ����� -�������Τ褦�� postmaster ��ư����Ȥ��Ϥ��ĤǤ⡢ɸ����Ϥȥ��顼���Ϥ���� -���ե����������褦�ˤ��Ƥ��뤳�Ȥ�Τ���Ʋ������� - + _________________________________________________________________ + + ������μ��� + + 3.1) �ɤΤ褦�ˤ���� /usr/local/pgsql �ʳ��ξ��˥��ȡ���Ǥ�ޤ����� + + ��ñ����ˡ�ϡ� configure �����餻��Ȥ�� --prefix + ���ץ�������ꤹ�뤳�ȤǤ��� + + 3.2) postmaster �����餻��ȡ�Bad System Call + �Ȥ�����������פ����ȤΥ�å��������Фޤ����ʤ��Ǥ����� + + ���ޤ��ޤ����꤬�ͤ����ޤ������ޤ��ǽ�ˤ��ʤ��Υ����ͥ�� System V + IPC �γ�ĥ�����ȡ��뤵��Ƥ��뤫���ǧ���Ƹ��Ƥ���������PostgreSQL + �ϥ����ͥ�ˤ�붦ͥ���ȥ��ޥե��Υ��ݡ��Ȥ�ɬ�פȤ��ޤ��� + + 3.3) postmaster �����餻�褦�Ȥ���ȡ�IpcMemoryCreate + ���顼���Фޤ����ʤ��Ǥ����� + + �����ͥ뤬��ͭ + ������������ˤʤäƤ��ʤ��ä������Ǥʤ���С������ͥ���Ф��ƻ� + ���붦ͥ�����礤����礤����ꤹ��ɬ�פ�����ޤ�������Ū���礭 + ���ϡ��ȤäƤ��륢����ƥ������postmaster �����餻��Ȥ� + �����ꤹ��Хåե��ο��ȥХå�����ɥץ������˰�¸���ޤ����ۤȤ�ɤΥ� + ���ƥ�Ǥϡ������ͤΥХåե��������Τޤޤǡ����ʤ��Ȥ���1MB��ɬ�פǤ�� + � PostgreSQL Administrator's Guide/Server Run-time + Environment/Managing Kernel Resources �˶�ͭ + ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�����ޤ��ΤǤ������������� + + 3.4) postmaster�����餻�褦�Ȥ���ȡ�IpcSemaphoreCreate + ���顼���Фޤ����ʤ��Ǥ����� + + �⤷���顼��å�������IpcSemaphoreCreate: semget failed (No space left + on + device)�Ǥ���С������ͥ뤬��ʬ�ʥ��ޥե���Ȥ���褦�˹�������Ƥ��ޤ + ���Postgres������Ū�ʥХå�����ɥץ�������˰�ĤΥ��ޥե���ɬ�פȤ + ��ޤ����Ȥꤢ�����β�����postmaster��ư����Ȥ� + �ˡ��Хå�����ɥץ������ο����꾯�ʤ����¤뤳�ȤǤ��������ͤ�32 + ��꾮���ʿ��Υѥ�����-N�ǻȤ��ޤ�����깱��Ū�ʲ����ϡ������ͥ� + ��SEMMNS �� SEMMNI �ѥ��������䤹���ȤǤ��� + + �����ǽ�Υ��ޥե�����٤ʥǡ����١������������δ֤˥���å���� + ��������ǽ�������ޤ��� + + �⤷�����顼��å��������ʤˤ�¾�Τ�ΤǤ���С������ͥ�ι����Ǥޤä� + �����ޥե��Υ��ݡ��ȤƤ��ʤ����⤷��ޤ��� PostgreSQL + Administrator's Guide �˶�ͭ + ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�����ޤ��� + + 3.5) ¾�Υۥ��Ȥ������³�ϤɤΤ褦�����椷�ޤ����� + + �����ͤǤϡ�PostgreSQL �� Unix + �ɥᥤ���åȡ��ޤ��ϡ�TCP/IP��³�Υ�������ޥ������³�������� + �ޤ���postgresql.conf ����� listen_addresses + �����������ġ�$PGDATA/pg_hba.conf + �ե������Ŭ�ڤ�ľ���ơ��ۥ��ȼ�Ƴ��ǧ�ڤ�ͭ + ���ˤ��ʤ�������ϡ�¾�Υޥ������³�Ǥ�ʤ��Ǥ��礦�� + + 3.6) ����ɤ��� + ǽ�����뤿��ˤϡ��ǡ����١����������ɤΤ褦��Ĵ��������ɤ��Ǥ����� + + �Τ��˥���ǥå������䤤��碌��®�٤������ޤ���EXPLAIN + ANALYZE���ޥ�ɤ� PostgreSQL + ���ɤΤ褦�ˤ��ʤ����䤤��碌���������Ƥ��뤫�뤳�Ȥ��Ǥ� + �������ơ��ɤΥ���ǥå������Ȥ��Ƥ��뤫�뤳�Ȥ��Ǥ�ޤ��� + + �⤷ INSERT ��¿�Ѥ��Ƥ�����ϡ�COPY ���ޥ�ɤ�Ȥä��礭 + �ʥХå������Ǥ����Ԥʤ����Ȥ�Ƥ���Ʋ�����������ϡ�INSERT + ���̡��˹Ԥʤ�����äȹ�®�Ǥ������ˡ�BEGIN WORK/COMMIT + �Υȥ������֥��å������̵��ʸ�ϡ�����鼫�Ȥ����줾��Υȥ� + �����������äƤ���ȸ��ʤ���ޤ��������Ĥ���ʸ���ĤΥȥ�� + ����֥��å�����ǹԤʤ����Ȥ�ͤ��Ʋ�����������ˤ��ȥ���� + ���Υ����С��إåɤ�����ޤ����ޤ����礭 + �ʥǡ������ѹ���Ԥʤ��ݤϥ���ǥå�������ٳ����ơ����ľ�����Ȥ�ͤ� + �ƤߤƲ������� + + Administration Guide/Server Run-time Environment/Run-time + Configuration�ˤϡ� + ���塼�˥Υ��ץ�������Ĥ�����ޤ���fsync���ץ�����fsync() + ��̵���ˤ��뤳�Ȥ��Ǥ�ޤ�������ˤ�äơ��ƥȥ���������� + fsync() �ǥǥ�����������Τ�ߤᤵ���ޤ��� + + shared_buffers���ץ�����ȤäƥХå�����ɡ��ץ������ˤ��Ȥ��붦 + ͥ�����Хåե����礤����뤳�Ȥ�Ǥ� + �ޤ����⤷�����Υѥ�����⤯��������ȡ������ͥ�ζ�ͭ + ������֤������ͤ�ۤ��Ƥ��ޤ������ postmaster + ������ʤ��ʤ�Ǥ��礦�������ͤǤϡ����줾��ΥХåե����礤��� 8K + �ǡ��Хåե����� 1000 �Ǥ��� + + sort_mem (PostgreSQL 8.0�����: + work_mem)���ץ�����Ȥäơ����줾��ΥХå�����ɡ��ץ����������Ū� + ��¤��ؤ��ˤ�äƻȤ�����κ��祵���������䤹���Ȥ�Ǥ�ޤ��� + �����ͤ� 1024 (���ʤ����1MB)�Ǥ��� + + �ޤ���CLUSTER + ���ޥ�ɤ�Ȥäơ��ơ��֥�Υǡ�����ǥå����˹�碌�뤿��˥��롼 + �ײ����뤳�Ȥ�Ǥ�ޤ����ܤ����ϡ�����饤��ޥ˥奢��� CLUSTER + �Ʋ������� + + 3.7) �ɤΤ褦�ʥǥХ���ǽ���Ȥ��ޤ����� + + PostgreSQL + �ϡ��ǥХ��Τ���˰�̣�Τ��롢���־������𤹤뤤���Ĥ��ε�ǽ������� + ���� + + �ޤ���--enable-cassert ���ץ����� configure + �����餻�ޤ����������ƥ���ѥ��뤹�뤳�Ȥˤ�ꡢ������ assert() + �����Хå�����ɤο�Ľ������ƻ뤷������ͽ�����̤��Ȥ����� + ��ȥץ���������ߤ���褦�ˤʤ�ޤ��� + + postmaster �� postgres + ��ξ���Ǥ����Ĥ��ΥǥХ������ץ��������Ѥ��Ǥ�ޤ����ޤ������Τ褦�� + postmaster ��ư����Ȥ� + �Ϥ��ĤǤ⡢ɸ����Ϥȥ��顼���Ϥ�������ե����������褦�ˤ��Ƥ��뤳 + �Ȥ�Τ���Ʋ������� cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & -����ˤ�� PostgreSQL �κǾ����Υǥ��쥯�ȥ�� server.log �ե����뤬�֤���ޤ� -�����Υե�����ϥ����С���������������䥨�顼�ˤĤ���ͭ�Ѥʾ����ޤߤޤ��� -Postmaster �Ϲ��˾ܺ٤ʾ������𤹤뤿��� -d ���ץ���������ޤ������� -d �� -�ץ����ϡ��ǥХ�����٥����ꤷ�ޤ����⤤�ǥХ�����٥�Ǥϡ��礭�ʥ����ե� -������������뤳�Ȥ����դ��ʤ��ƤϤʤ�ޤ��� - -�⤷��postmaster�����äƤ��ʤ���С�postgres�Хå�����ɤޥ�ɥ饤���� -�餻�뤳�Ȥ��Ǥ���ľ��SQLʸ���פ��뤳�Ȥ��Ǥ��ޤ������Τ�꤫���ϡ��ǥХ��� -Ū�ΤȤ����������ᤷ�ޤ������ߥ�����ǤϤʤ������Ԥ��䤤��碌�ν���ˤʤ뤳�� -�����դ��Ƥ����������⤷���ǥХ�����ܥ������ƥ���ѥ��뤷�Ƥ���С��ǥХå� -��ȤäƲ��������Ƥ��뤫�뤳�Ȥ��Ǥ��ޤ���postmaster ����Хå�����ɤ� -�����櫓�ǤϤʤ��Τǡ���Ω�ʴĶ������äƤ���ΤǤϤʤ����å����Хå�����ɤȤ� -���ä����꤬��ʣ���뤳�ȤϤ���ޤ��� - -�⤷��postmaster�����äƤ���С����륦����ɥ���psql�Ϥ���ȡ� - -SELECT pg_backend_pid() - -��Ȥäơ�psql �ǻȤ��� postgres �ץ�������PID�����Ĥ���ޤ����ǥХå���Ȥ� -��postgres��PID�˥����å�(attach)���ޤ����ǥХå����椫��֥졼�����ݥ���Ȥ� -�åȤ���psql �����䤤��碌��ȯ�Ԥ��ޤ����ǥХ��Τ����postgres���ư������� -��PGOPTIONS="-W n" ������Ǥ������줫�顢psql �Ϥ��ޤ�������ˤ�ꡢn �ó� -�Ϥ��٤餻��Ϥ��ʤΤǡ��ǥХå��ǥץ������˥����å����ơ��֥졼���ݥ���Ȥ��� -�ꤷ�����Ϥ������ɤäƸ��Ƥ椯���Ȥ��Ǥ��ޤ��� - -�����Ĥ��� - -log_* - -�����й����ѿ��ϡ��ǥХå�����ǽ¬��ˤȤƤ����Ω�ĥץ����������פΰ������ǽ -�ˤ��ޤ��� - -���Ȥ����ؿ����ɤΤ��餤�¹Ի��֤äƤ��뤫�뤿��ˡ��ץ��ե������ -�ץ��ե������դ��ˤǥ���ѥ��뤹�뤳�Ȥ��ǽ�Ǥ������ΥХå�����ɤΥץ��ե��� -�롦�ե������ pgsql/data/base/dbname �ǥ��쥯�ȥ�˳�Ǽ�����Ǥ��礦�����饤 -����ȤΥץ��ե�����ϥ��饤����Ȥθ��ԥǥ��쥯�ȥ���֤����Ǥ��礦��Linux -�ǤޤȤ�ʥץ��ե������Ԥ��ˤ� -DLINUX_PROFILE �ǥ���ѥ��뤹��ɬ�פ����� -�ޤ��� - -3.8) ��³���褦�Ȥ���Ȥ��� 'Sorry, too many clients' ���Ф�ΤϤʤ��Ǥ����� - -postmaster��Ʊ����ư�Ǥ���Хå�����ɥץ��������Ф������¿������䤹ɬ�פ����� -�ޤ��� - -����κ���ץ�������32�ץ������Ǥ���-N��Ŭ�ڤ��ͤ�����ˤ���postmaster��Ƶ�ư -���뤫��PostgreSQL.conf �������뤳�Ȥˤ�äơ������ͤ����䤹���Ȥ��Ǥ��ޤ��� - -�⤷��-N �� 32�����礭������ΤǤ���С�-B������64����礭���ͤ����ä����� -���ƤϤʤ�ʤ�����-B �Ͼ��ʤ��Ȥ� -N ��2�ܤϤʤ��ƤϤʤ餺�������餯�ǹ���ǽ�� -˾��ʤ�Ф������礭���ͤ�ɬ�פʤϤ��Ǥ����Хå�����ɥץ�����������ˤ� -��ȡ�����������Unix�����ͥ빽���ѥ��������䤹���Ȥ�ɬ�פˤʤ뤫�⤷��ޤ� -��ͭ������֥��å��κ�����(SHMMAX)�����ޥե��κ����(SEMMNS��SEMMNI)�� -�ץ������κ����(NPROC)���桼����κ���ץ�������(MAXUPRC)�������ե�����κ��� -��(NFILE��NINODE) ���ǧ����˴ޤޤ�ޤ��� PostgreSQL�˵������Хå�����ɤΥ� -�������������¤���Ƥ���Τϡ������ƥ�Υ������Ȥ��̤��Ƥ��ޤ����Ȥ��� -����Ǥ��� - -3.9) pgsql_tmp �ǥ��쥯�ȥ����ˤϲ�������ޤ����� - -�䤤��碌�¹ԥ⥸�塼��ˤ�ä��������줿���Ū�ʥե����뤬�����Υǥ��쥯�ȥ� -�˴ޤޤ�ޤ����㤨�С��⤷ ORDER BY �������������˥Хå�����ɤ� -S �ѥ� -���ǵ��Ĥ����ͤ����礭�ʥ��ڡ����������Ȥκݤ�ɬ�פ��Ȥ���ȡ���줿�ǡ����� -�ݻ����뤿��˰��Ū�ʥե����뤬�����Ĥ���������������ޤ��� - -���Ū�ʥե�����ϼ�ưŪ�˾ä������Ϥ��Ǥ������⤷�������Ȥ�����ǥХå��� -��ɤ�����å��夷�Ƥ��ޤ��Ȥ����Ϥʤ�ޤ���postmaster����ߤȥꥹ�����ȤǤ� -���Υե�����ϥǥ��쥯�ȥ꤫��ä������ޤ��� - + ����ˤ�� PostgreSQL �κǾ����Υǥ��쥯�ȥ�� server.log + �ե����뤬�֤���ޤ������Υե�����ϥ����С���������������䥨�顼�ˤ� + ������Ѥʾ����ޤߤޤ���Postmaster �Ϲ��˾ܺ٤ʾ������𤹤뤿��� + -d ���ץ���������ޤ������� -d + ���ץ����ϡ��ǥХ�����٥����ꤷ�ޤ����⤤�ǥХ�����٥�Ǥϡ��礭 + �ʥ����ե�������������뤳�Ȥ����դ��ʤ��ƤϤʤ�ޤ��� + + �⤷��postmaster�����äƤ��ʤ���С�postgres�Хå�����ɤޥ�ɥ饤 + �����餻�뤳�Ȥ��Ǥ��ľ��SQLʸ���פ��뤳�Ȥ��Ǥ� + �ޤ������Τ�꤫���ϡ��ǥХ���Ū�ΤȤ� + ���������ᤷ�ޤ������ߥ�����ǤϤʤ������Ԥ��䤤��碌�ν���ˤʤ뤳�� + �����դ��Ƥ����������⤷���ǥХ�����ܥ������ƥ���ѥ��뤷�Ƥ���С� + �ǥХå���ȤäƲ�������Ƥ��뤫�뤳�Ȥ��Ǥ�ޤ���postmaster + ����Хå�����ɤϤ����櫓�ǤϤʤ��Τǡ���Ω�ʴĶ� + �����äƤ���ΤǤϤʤ����å����Хå�����ɤȤ����ä����꤬��ʣ���뤳�� + �Ϥ���ޤ��� + + �⤷��postmaster�����äƤ���С����륦����ɥ���psql�Ϥ���ȡ�SELE + CT pg_backend_pid()��Ȥäơ�psql �ǻȤ��� postgres + �ץ�������PID�����Ĥ���ޤ��� + �ǥХå���Ȥä�postgres��PID�˥����å�(attach)���ޤ����ǥХå����椫� + �֥졼�����ݥ���ȤåȤ���psql + �����䤤��碌��ȯ�Ԥ��ޤ����ǥХ��Τ����postgres���ư������ϡ�PG + OPTIONS="-W n" ������Ǥ�����줫�顢psql �Ϥ��ޤ�������ˤ�ꡢn + �ó��Ϥ��٤餻��Ϥ��ʤΤǡ��ǥХå��ǥץ������˥����å����ơ��֥졼�� + �ݥ���Ȥ����ꤷ�����Ϥ������ɤäƸ��Ƥ椯���Ȥ��Ǥ�ޤ��� + + �����Ĥ���log_*�����й����ѿ��ϡ��ǥХå����� + ǽ¬��ˤȤƤ����Ω�ĥץ����������פΰ������ǽ�ˤ��ޤ��� + + ���Ȥ����ؿ����ɤΤ��餤�¹Ի��֤äƤ��뤫�뤿��ˡ��ץ��ե��� + ��ʥץ��ե������դ� + �ˤǥ���ѥ��뤹�뤳�Ȥ��ǽ�Ǥ������ΥХå�����ɤΥץ��ե����롦�ե� + ����� pgsql/data/base/dbname + �ǥ��쥯�ȥ�˳�Ǽ�����Ǥ��礦�����饤����ȤΥץ��ե�����ϥ��饤�� + ��Ȥθ��ԥǥ��쥯�ȥ���֤����Ǥ��礦��Linux + �ǤޤȤ�ʥץ��ե������Ԥ��ˤ� -DLINUX_PROFILE + �ǥ���ѥ��뤹��ɬ�פ�����ޤ��� + + 3.8) ��³���褦�Ȥ���Ȥ�� 'Sorry, too many clients' ���Ф�ΤϤʤ��Ǥ����� + + postmaster��Ʊ����ư�Ǥ� + ��Хå�����ɥץ��������Ф������¿������䤹ɬ�פ�����ޤ��� + + ����κ���ץ�������32�ץ������Ǥ���-N��Ŭ�ڤ��ͤ�����ˤ���postmaster + ��Ƶ�ư���뤫��PostgreSQL.conf + �������뤳�Ȥˤ�äơ������ͤ����䤹���Ȥ��Ǥ�ޤ��� + + �⤷��-N �� 32�����礤�����ΤǤ���С�-B������64����礭 + ���ͤ����ä����ʤ��ƤϤʤ�ʤ�����-B �Ͼ��ʤ��Ȥ� -N + ��2�ܤϤʤ��ƤϤʤ餺�������餯�ǹ��ǽ��˾��ʤ�Ф������礭 + ���ͤ�ɬ�פʤϤ��Ǥ����Хå�����ɥץ�����������ˤ���ȡ��������� + ��Unix�����ͥ빽���ѥ��������䤹���Ȥ�ɬ�פˤʤ뤫�⤷��ޤ��� + ��ͥ�����֥��å��κ�����(SHMMAX)�� + ���ޥե��κ����(SEMMNS��SEMMNI)�� �ץ������κ����(NPROC)�� + �桼����κ���ץ�������(MAXUPRC)�� + �����ե�����κ����(NFILE��NINODE) ���ǧ����˴ޤޤ�ޤ��� + PostgreSQL�˵������Хå�����ɤΥץ������������¤���Ƥ���Τϡ� + �����ƥ�Υ������Ȥ��̤��Ƥ��ޤ����Ȥ��뤿��Ǥ��� + + 3.9) pgsql_tmp �ǥ��쥯�ȥ����ˤϲ�������ޤ����� + + �䤤��碌�¹ԥ⥸�塼��ˤ�ä��������줿���Ū�ʥե����뤬�����Υǥ� + �쥯�ȥ�˴ޤޤ�ޤ����㤨�С��⤷ ORDER BY + �������������˥Хå�����ɤ� -S �ѥ����ǵ��Ĥ����ͤ����礭 + �ʥ��ڡ����������Ȥκݤ�ɬ�פ��Ȥ���ȡ���줿�ǡ������ݻ����뤿��˰� + ��Ū�ʥե����뤬�����Ĥ���������������ޤ��� + + ���Ū�ʥե�����ϼ�ưŪ�˾ä������Ϥ��Ǥ������⤷�������Ȥ������ + �Хå�����ɤ�����å��夷�Ƥ��ޤ��Ȥ����Ϥʤ�ޤ���postmaster����� + �ȥꥹ�����ȤǤ����Υե�����ϥǥ��쥯�ȥ꤫��ä������ޤ��� [������ - SYSLOGD ��ͳ�ǥ�������Ϥ���ˤϡ��ޤ���configure �� --enable-syslog - �դ������餻���塢����ѥ���ȥ��ȡ����Ԥʤ��ޤ��� - ���ˡ�syslog.conf �� local?.* �� ���������ꤷ(�Ķ��ѿ����ѹ���ǽ)�� - syslogd �� HUP �����ʥ�����äƽ�������Ƥ����ޤ��������ơ� - $PGDATA/pg_options �� syslog=2 ��ä��ơ� postmaster �� -S - ���ץ�����դ��ˤƥ����Х⡼�ɤǵ�ư���ޤ���(�С������ 7.1 ����� + SYSLOGD ��ͳ�ǥ�������Ϥ���ˤϡ��ޤ���configure �� --enable-syslog + �դ�����餻���塢����ѥ���ȥ��ȡ����Ԥʤ��ޤ��� + ���ˡ�syslog.conf �� local?.* �� ���������ꤷ(�Ķ�ѿ����ѹ���ǽ)�� + syslogd �� HUP �����ʥ�����äƽ�������Ƥ���ޤ��������ơ� + $PGDATA/pg_options �� syslog=2 ��ä��ơ� postmaster �� -S + ���ץ�����դ�ˤƥ����Х⡼�ɤǵ�ư���ޤ���(�С������ 7.1 ����� pg_options �� PostgreSQL.conf �ˤʤäƤ��ޤ���) ] -3.10) PostgreSQL�Υ�㡼�����åץǡ��Ȥ���Τ˥���פȥꥹ�ȥ��� -���ƤϤʤ�ʤ��ΤϤʤ��Ǥ����� - -PostgreSQL������ϥޥ��ʡ������ǤϾ������ѹ������Ԥʤ��ޤ���Τǡ�7.2 ���� -7.2.1 �ؤΥ��åץ��졼�ɤˤϥ���פȥꥹ�ȥ���ɬ�פϤ���ޤ������������ -������(���Ȥ��С�7.2����7.3�ؤΤ褦��)�Ǥϡ������ƥ�ơ��֥��ǡ����ե��� -��������ե����ޥåȤ��ѹ��Ф��йԤʤ��ޤ����������ѹ��Ϥ����Ƥ�ʣ���ǡ� -���Τ���桹�ϥǡ����ե�����Τ���θ����ߴ�����ݻ����뤳�Ȥ��Ǥ��ޤ����� -�פ����ѥե����ޥåȤǥǡ�������Ϥ���������������ե����ޥåȤ��ɤ߹��ळ -�Ȥ��Ǥ��ޤ��� - -�ǥ�������ǤΥե����ޥåȤ��ѹ��Τʤ�Ʊ������Ǥϡ����åץ��졼�ɤϡ����� -�ס��ꥹ�ȥ��ǤϤʤ���pg_upgrade ������ץȤ�Ȥ����Ȥ��Ǥ��ޤ��������Ρ��� -�ˤϡ�pg_upgrade �����Ѳ�ǽ�ʥ������ɤ���������Ƥ��ޤ��� - -3.11) �ϡ��ɥ������ˤϤɤ�ʥ���ԥ塼����Ȥ��Ф褤�Ǥ����� - -PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��� -��������Ʊ���ʼ����Ȼפ������������ޤ���������������ϴְ㤤�Ǥ���ECC RAM�� -SCSI������ӡ����ʼ��ޥ����ܡ��ɤϡ��¤��ϡ��ɥ���������٤�ȡ���꿮�������� -���������ǽ���ɤ��ΤǤ���PostgreSQL �ϤۤȤ�ɤΥϡ��ɥ������Dz�Ư���ޤ������� -��������ǽ�����פʾ��ϡ��ϡ��ɥ������Υ��ץ����椹�뤳�Ȥ������Ǥ����� -����ꥹ�ȤǤ�ϡ��ɥ��������ץ����ȥȥ졼�ɥ��դˤĤ��Ƶ������뤳�Ȥ��� -���ޤ��� - -������������������������������������������������������������������������������ - - ����μ��� - -4.1) �Х��ʥꡦ����������̾參������Ȥθ�̩�ʰ㤤�ϲ��Ǥ����� - -�ܽҤϡ�����饤��ޥ˥奢��� DECLARE �Ʋ������� - -4.2) �ǽ�ο������Τߤ� SELECT����ˤϤɤ����ޤ�����������ʥ����� - -����饤��ޥ˥奢���FETCH�Ƥ������������뤤�ϡ�SELECT ... LIMIT....��Ȥ� -�ƤߤƲ������� - -���Ȥ����ߤ����ΤϺǽ�ο����������Ǥ⡢���٤Ƥ��䤤��碌��ɾ�����ʤ��ƤϤʤ� -�ʤ����⤷��ޤ���ORDER BY ����ä��䤤��碌��Ȥ����Ȥ�ͤ��ƤߤƲ��������� -����ORDER BY�˹�ä�����ǥå���������Ȥ���� PostgreSQL���ᤵ�줿�ǽ�ο��� -��������ɾ���Ǥ��뤫�⤷��ޤ����Ǥʤ�С�PostgreSQL �ϰտޤ��������������� -���ޤǤ��٤ƤΥ�����ɾ�����ʤ���Фʤ�ʤ����⤷��ޤ��� - -������ʥ�����SELECT����ˤϡ�����ʸ��Ȥ��ޤ��� - + 3.10) + PostgreSQL�Υ�㡼�����åץǡ��Ȥ���Τ˥���פȥꥹ�ȥ��ʤ�� + ƤϤʤ�ʤ��ΤϤʤ��Ǥ����� + + PostgreSQL������ϥޥ��ʡ������ǤϾ������ѹ������Ԥʤ��ޤ���Τǡ� + 7.2 ���� 7.2.1 + �ؤΥ��åץ��졼�ɤˤϥ���פȥꥹ�ȥ���ɬ�פϤ���ޤ���������� + �㡼����(���Ȥ��С�7.2����7.3�ؤΤ褦��)�Ǥϡ������ƥ�ơ��֥��� + �����ե�����������ե����ޥåȤ��ѹ��Ф��йԤʤ��ޤ����������ѹ� + �Ϥ����Ƥ�ʣ���ǡ����Τ���桹�ϥǡ����ե�����Τ���θ����ߴ��� + ��ݻ����뤳�Ȥ��Ǥ� + �ޤ�����פ����ѥե����ޥåȤǥǡ�������Ϥ���������������ե� + ���ޥåȤ��ɤ߹��ळ�Ȥ��Ǥ�ޤ��� + + �ǥ�������ǤΥե����ޥåȤ��ѹ��Τʤ�Ʊ������Ǥϡ����åץ��졼�� + �ϡ�����ס��ꥹ�ȥ��ǤϤʤ���pg_upgrade ������ץȤ�Ȥ����Ȥ��Ǥ� + �ޤ��������Ρ��Ȥˤϡ�pg_upgrade �����Ѳ�ǽ�ʥ������ɤ����� + ����Ƥ��ޤ��� + + 3.11) �ϡ��ɥ������ˤϤɤ�ʥ���ԥ塼����Ȥ��Ф褤�Ǥ����� + + PC�ϡ��ɥ������ϤۤȤ�ɸߴ��� + ������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ�������Ʊ���ʼ����Ȼ� + �������������ޤ���������������ϴְ㤤�Ǥ���ECC + RAM��SCSI������ӡ����ʼ��ޥ����ܡ��ɤϡ��¤��ϡ��ɥ���������٤�ȡ�� + �꿮������⤯������ǽ���ɤ��ΤǤ���PostgreSQL + �ϤۤȤ�ɤΥϡ��ɥ������Dz�Ư���ޤ�������������� + ǽ�����פʾ��ϡ��ϡ��ɥ������Υ��ץ����椹�뤳�Ȥ��� + ���Ǥ������ꥹ�ȤǤ�ϡ��ɥ��������ץ����ȥȥ졼�ɥ��դˤĤ� + �Ƶ������뤳�Ȥ��Ǥ�ޤ��� + _________________________________________________________________ + + ����μ��� + + 4.1) �Х��ʥꡦ����������̾參������Ȥθ�̩�ʰ㤤�ϲ��Ǥ����� + + �ܽҤϡ�����饤��ޥ˥奢��� DECLARE �Ʋ������� + + 4.2) �ǽ�ο������Τߤ� SELECT����ˤϤɤ����ޤ�����������ʥ����� + + ����饤��ޥ˥奢���FETCH�Ƥ������������뤤�ϡ�SELECT ... + LIMIT....��ȤäƤߤƲ������� + + ���Ȥ����ߤ����ΤϺǽ�ο����������Ǥ⡢���٤Ƥ��䤤��碌��ɾ�����ʤ� + �ƤϤʤ�ʤ����⤷��ޤ���ORDER BY + ����ä��䤤��碌��Ȥ����Ȥ�ͤ��ƤߤƲ������� �⤷��ORDER + BY�˹�ä�����ǥå���������Ȥ���� + PostgreSQL���ᤵ�줿�ǽ�ο�����������ɾ���Ǥ� + �뤫�⤷��ޤ����Ǥʤ�С�PostgreSQL + �ϰտޤ������������������ޤǤ��٤ƤΥ�����ɾ�����ʤ���Фʤ�ʤ����� + ����ޤ��� + + ������ʥ�����SELECT����ˤϡ�����ʸ��Ȥ��ޤ��� SELECT col FROM tab ORDER BY random() LIMIT 1; -4.3) �ơ��֥�䤽��¾�ξ���Υꥹ�Ȥ� psql �Ǹ���ˤϤɤ����ޤ����� - -psql����ǡ� \dt ���ޥ�ɤ�Ȥäƥơ��֥�ޤ���psql ����Υ��ޥ�ɤδ����� -�ꥹ�Ȥˤ� \? ��Ȥ��ޤ������뤤�ϡ�psql�Υ����������ɤ�pgsql/src/bin/psql/ -describe.c�ե�����뤳�Ȥ�Ǥ��ơ�������ˤ�psql�ΥХå�����å��女�ޥ�� -�ν��Ϥ���������SQL���ޥ�ɤ��ޤޤ�Ƥ��ޤ����ޤ���psql�� -E ���ץ����Ȱ��� -���Ϥ���ȡ��¹Ԥ��������ޥ�ɤ�¹Ԥ��뤿��˻Ȥ��䤤��碌����Ϥ���褦�ˤ� -��ޤ���PostgreSQL�Ϥޤ���SQLi�б��� INFORMATION SCHEMA �����ե��������Ѱ� -���Ƥ��ơ��ǡ����١����ˤĤ��Ƥξ�������뤿����䤤��碌��Ȥ����Ȥ��Ǥ��ޤ� -�� - -4.4) �ơ��֥뤫�饫���κ�������뤤�ϡ��ǡ��������ѹ�����ˤϤɤ����ޤ����� - -DROP COLUMN��ǽ����ALTER TABLE DROP COLUMN �Ȥ��ƥ���7.3 �˲ä����ޤ����� -����ޤǤΥС������Ǥϡ���������ˤ������ޤ�: - + 4.3) �ơ��֥�䤽��¾�ξ���Υꥹ�Ȥ� psql �Ǹ���ˤϤɤ����ޤ����� + + psql����ǡ� \dt ���ޥ�ɤ�Ȥäƥơ��֥�ޤ���psql + ����Υ��ޥ�ɤδ����ʥꥹ�Ȥˤ� \? + ��Ȥ��ޤ������뤤�ϡ�psql�Υ����������ɤ�pgsql/src/bin/psql/describe. + c�ե�����뤳�Ȥ�Ǥ� + �ơ�������ˤ�psql�ΥХå�����å��女�ޥ�ɤν��Ϥ���������SQL���ޥ� + ɤ��ޤޤ�Ƥ��ޤ����ޤ���psql�� -E + ���ץ����Ȱ��˳��Ϥ���ȡ��¹Ԥ��������ޥ�ɤ�¹Ԥ��뤿��˻Ȥ��� + ����碌����Ϥ���褦�ˤʤ�ޤ���PostgreSQL�Ϥޤ���SQLi�б��� + INFORMATION SCHEMA + �����ե��������Ѱդ��Ƥ��ơ��ǡ����١����ˤĤ��Ƥξ�������뤿��� + �䤤��碌��Ȥ����Ȥ��Ǥ�ޤ��� + + 4.4) + �ơ��֥뤫�饫���κ�������뤤�ϡ��ǡ��������ѹ�����ˤϤɤ����ޤ����� + + DROP COLUMN��ǽ����ALTER TABLE DROP COLUMN �Ȥ��ƥ���7.3 + �˲ä����ޤ���������ޤǤΥС������Ǥϡ���������ˤ������ޤ�: BEGIN; LOCK TABLE old_table; SELECT ... -- ��������������ʳ��Υ����٤����ޤ��� @@ -838,21 +914,20 @@ DROP COLUMN��ǽ����ALTER TABLE DROP COLUMN �Ȥ��ƥ���7.3 �˲ä����ޤ����� ALTER TABLE new_table RENAME TO old_table; COMMIT; -�����Υǡ��������פϼ���ʸ���Ѥ����ޤ��� - + �����Υǡ��������פϼ���ʸ���Ѥ����ޤ��� 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; -�����Ԥʤä��Ȥ��ϡ����ä��줿�Ԥ��ȤäƤ���ǥ��������֤������뤿��� -VACUUM FULL tab���ۤ����ɤ����⤷��ޤ��� - -4.5) �������ơ��֥롢�ǡ����١����κ��祵�����ϡ� - -���¤ϰʲ��ΤȤ���Ǥ��� - + �����Ԥʤä��Ȥ� + �ϡ����ä��줿�Ԥ��ȤäƤ���ǥ��������֤������뤿���VACUUM FULL + tab���ۤ����ɤ����⤷��ޤ��� + + 4.5) �������ơ��֥롢�ǡ����١����κ��祵�����ϡ� + + ���¤ϰʲ��ΤȤ���Ǥ��� �ǡ����١����κ��祵����? ����̵�� (32 TB �Υǡ����١�����¸�ߤ��ޤ�) �ơ��֥�κ��祵����? 32TB �����κ��祵����? 1.6TB @@ -861,30 +936,32 @@ VACUUM FULL tab���ۤ����ɤ����⤷��ޤ��� �ơ��֥���Ǥκ��祫����? �����η��ˤ��250-1600 �ơ��֥���Ǥκ��祤��ǥå�����? ����̵�� -����������ϼºݤ�̵���¤ǤϤʤ����ǥ��������̤ȥ���䥹��åץ��ڡ� -�����礭���ˤ�����¤���ޤ�����ǽ�Ϥ������ͤ����ȤΤۤ��礭�ʻ����������� -�ޤ��� - -����ơ��֥륵������32TB�ϥ��ڥ졼�ƥ������ƥ�ˤ�����ե�����Υ��ݡ��� -��ɬ�פȤ��ޤ�����ʥơ��֥��ʣ����1GB�Υե������ʬ������¸����ޤ��Τǡ� -�ե����륷���ƥ�����¤Ͻ��פǤϤ���ޤ��� - -�ǥե���ȤΥ֥��å���������32k�ˤ��뤳�Ȥǡ�����ơ��֥륵�����Ⱥ��祫������ -���ܤˤ��뤳�Ȥ��Ǥ��ޤ��� - -4.6) ����Ū�ʥƥ����ȥե����뤫��ǡ�������¸����ˤϡ��ǡ����١����Υǥ������� -�̤ϤɤΤ��餤ɬ�פǤ��� - -���̤Υƥ����ȥե������ PostgreSQL �Υǡ����١�������¸����ˤϡ��������5�ܤ� -�ǥ��������̤�ɬ�פȤ��ޤ��� - -����Ȥ��ơ��ƹԤ������ȥƥ����ȵ��Ҥ���� 100,000�ԤΥե������ͤ��Ƥߤޤ��� -�����ƥ����Ȥ�ʸ�����ʿ��Ĺ����20�Х��ȤȲ��ꤹ��ȡ��ե�åȥե�������礭�� -����2.8MB �Ǥ������Υǡ�����ޤ� PostgreSQL �ǡ����١����ե�������礭���ϼ��� -�褦����6.4MB�ȸ��Ѥ�뤳�Ȥ��Ǥ��ޤ��� - + ����������ϼºݤ�̵���¤ǤϤʤ����ǥ��������̤ȥ���䥹��� + �ץ��ڡ������礤��ˤ�����¤���ޤ����ǽ�Ϥ������ͤ����ȤΤۤ��礭 + �ʻ������������ޤ��� + + ����ơ��֥륵������32TB�ϥ��ڥ졼�ƥ������ƥ�ˤ�����ե������ + ���ݡ��Ȥ�ɬ�פȤ��ޤ�����ʥơ��֥��ʣ����1GB�Υե������ʬ����� + �¸����ޤ��Τǡ��ե����륷���ƥ�����¤Ͻ��פǤϤ���ޤ��� + + �ǥե���ȤΥ֥��å���������32k�ˤ��뤳�Ȥǡ�����ơ��֥륵�����Ⱥ��� + ������Ȥ��ܤˤ��뤳�Ȥ��Ǥ�ޤ��� + + 4.6) ����Ū�ʥƥ� + ���ȥե����뤫��ǡ�������¸����ˤϡ��ǡ����١����Υǥ��������̤ϤɤΤ��� + �ɬ�פǤ��� + + ���̤Υƥ���ȥե������ PostgreSQL + �Υǡ����١�������¸����ˤϡ��������5�ܤΥǥ��������̤�ɬ�פȤ��ޤ�� + � + + ����Ȥ��ơ��ƹԤ������ȥƥ���ȵ�Ҥ���� 100,000�ԤΥե������ͤ� + �Ƥߤޤ��礦���ƥ� + ���Ȥ�ʸ�����ʿ��Ĺ����20�Х��ȤȲ��ꤹ��ȡ��ե�å� �ե�������礭 + ������2.8MB �Ǥ������Υǡ�����ޤ� PostgreSQL �ǡ����١��� + �ե�������礤��ϼ��Τ褦����6.4MB�ȸ��Ѥ�뤳�Ȥ��Ǥ�ޤ��� 32 bytes: �ƥ����Υإå�(����) - 24 bytes: ����(int)�ե�����ɤȥƥ�����(text)�ե������ + 24 bytes: ����(int)�ե�����ɤȥƥ����(text)�ե������ + 4 bytes: �ڡ�����Υ��åץ�ؤΥݥ��� ---------------------------------------- 60 bytes per row @@ -898,198 +975,208 @@ VACUUM FULL tab���ۤ����ɤ����⤷��ޤ��� 100000 data rows -------------------- = 782 database pages (�ڤ�夲) 128 rows per page - - 735 database pages * 8192 bytes per page = 6,021,120 bytes (6 MB) - -����ǥå����ϡ�����ۤɤΥ����Хإåɤ��ᤷ�ޤ�������ǥå����դ������ -�ǡ�����ޤ�ʾ塢����ʤ���礭���ʤ�ޤ��� - -NULL�ϥӥåȥޥåפȤ�����¸����Ƥ��ơ�����餬�鷺���˥��ڡ�����Ȥ��ޤ��� - -4.7) ������줿�ơ��֥롢����ǥå������ǡ����١���������ӡ��桼����ɤΤ褦�� -���Ƹ��Ĥ��Ф��ޤ����� - -psql �ˤϤ��������ʥХå�����å��塦���ޥ�ɤ����ꡢ�������������ɽ�����ޤ��� -�Хå�����å��塦���ޥ�ɤμ����ˤ� \? ��ȤäƲ��������ޤ���pg_ �ǻϤ� -�륷���ƥ�ơ��֥�ˤ�Ҥ���Ƥ��ޤ�������ˡ�psql -l �Ϥ��٤ƤΥǡ����١��� -��ꥹ��ɽ�����ޤ��� - -�ޤ���pgsql/src/tutorial/syscat.source �ե���������餻�ƤߤƲ�����������ϡ��� -���� SELECT ʸ�ˤ��ɬ�פʾ����ǡ����١����Υ����ƥࡦ�ơ��֥뤫����Ф��� -�㼨���Ƥ���ޤ��� - -4.8) �䤤��碌���٤�����������ǥå�����ȤäƤ����ͻҤ�����ޤ��ʤ��Ǥ��� -�� - -����ǥå����ϼ�ưŪ�ˤ��٤Ƥ��䤤��碌�ǻȤ���櫓�ǤϤ���ޤ��ơ��֥� -���Ǿ�����������礭�����䤤��碌�Ǥ��Τ鷺���ʥѡ�����ơ����Υ��������� -������������ǥå����ϻȤ��ޤ�������ϥ���ǥå����������ˤ�굯�������� -�����ʥǥ��������������ϡ��ơ��֥�ȥ졼�Ȥ��ɤ�缡���������٤��ʤ뤳 -�Ȥ����뤫��Ǥ��� - -����ǥå�����Ȥ�������ꤹ�뤿��ˡ�PostgreSQL �ϥơ��֥�ˤĤ��Ƥ�������� -�����ʤ���Фʤ�ޤ�����������ϡ�VACUUM ANALYZE�ޤ��ϡ�ñ�� ANALYZE ��� -�äƼ������뤳�Ȥ��Ǥ��ޤ����������Ȥäƥ��֥ƥ��ޥ����ϥơ��֥����ˤ��� -���������Τꡢ����ǥå�����Ȥ��٤����η�������������Ǥ��ޤ���������Ϻ� -Ŭ�ʷ��������ˡ������Ǥ�Ťʤ�Τ⤢��ޤ���������μ����ϡ��ơ� -�֥�����Ƥ���������˷��֤��ʤ����٤��Ǥ��� - -����ǥå����ϡ��̾� ORDER BY �����Ԥʤ�����ˤϻȤ��ޤ��缡������� -��³������Ū�����Ȥϡ�����ʥơ��֥�Υ���ǥå����������������̤Ϲ�®�Ǥ� -�� -��������ORDER BY���Ȥ߹�蘆�줿LIMIT �ϡ��ơ��֥�ξ�������ʬ���֤�����ˤ��� -���ӥ���ǥå�����Ȥ��Ǥ��礦���ºݡ�MAX() �� MIN() ������ǥå�����Ȥ�ʤ��� -���Ƥ⡢���Τ褦���ͤ� ORDER BY �� LIMIT ��Ȥäƥ���ǥå�����ȤäƼ��Ф��� -�Ȥ���ǽ�Ǥ�: + 735 database pages * 8192 bytes per page = 6,021,120 bytes (6 MB) + ����ǥå����ϡ�����ۤɤΥ����Хإåɤ��ᤷ�ޤ�������ǥå����� + �������ǡ�����ޤ�ʾ塢����ʤ���礤��ʤ�ޤ��� + + NULL�ϥӥåȥޥåפȤ�����¸����Ƥ��ơ�����餬�鷺���˥��ڡ�����Ȥ� + �ޤ��� + + 4.7) + ������줿�ơ��֥롢����ǥå������ǡ����١���������ӡ��桼����ɤΤ褦�ˤ + ��Ƹ��Ĥ��Ф��ޤ����� + + psql + �ˤϤ��������ʥХå�����å��塦���ޥ�ɤ����ꡢ�������������ɽ������ + �����Хå�����å��塦���ޥ�ɤμ����ˤ� \? + ��ȤäƲ��������ޤ���pg_ �ǻϤޤ륷���ƥ�ơ��֥�ˤ + �Ҥ���Ƥ��ޤ�������ˡ�psql -l + �Ϥ��٤ƤΥǡ����١�����ꥹ��ɽ�����ޤ��� + + �ޤ���pgsql/src/tutorial/syscat.source + �ե���������餻�ƤߤƲ�����������ϡ������� SELECT + ʸ�ˤ��ɬ�פʾ����ǡ����١����Υ����ƥࡦ�ơ��֥뤫����Ф����㼨 + ���Ƥ���ޤ��� + + 4.8) + �䤤��碌���٤�����������ǥå�����ȤäƤ����ͻҤ�����ޤ��ʤ��Ǥ���� + � + + ����ǥå����ϼ�ưŪ�ˤ��٤Ƥ��䤤��碌�ǻȤ���櫓�ǤϤ���ޤ��� + �ơ� �֥뤬�Ǿ�����������礭 + �����䤤��碌�Ǥ��Τ鷺���ʥѡ�����ơ����Υ����� + ���������������ǥå����ϻȤ��ޤ�������ϥ���ǥå������� + ���ˤ� + �굯������������ʥǥ��������������ϡ��ơ��֥�ȥ졼�Ȥ��ɤ�� + �� ���������٤��ʤ뤳�Ȥ����뤫��Ǥ��� + + ����ǥå�����Ȥ�������ꤹ�뤿��ˡ�PostgreSQL �ϥơ��֥�ˤĤ� + �Ƥ������������ʤ���Фʤ�ޤ�����������ϡ�VACUUM + ANALYZE�ޤ��ϡ�ñ�� ANALYZE ��ȤäƼ������뤳�� ���Ǥ� + �ޤ����������Ȥäƥ��֥ƥ��ޥ����ϥơ��֥����ˤ������������ + �ꡢ����ǥå�����Ȥ��٤���η�������������Ǥ�ޤ���������Ϻ�Ŭ + �ʷ��������ˡ������Ǥ�Ťʤ�Τ⤢��ޤ���������μ����� + �� �ơ��֥�����Ƥ���������˷��֤��ʤ����٤�Ǥ��� + + ����ǥå����ϡ��̾� ORDER BY �����Ԥ� + ������ˤϻȤ��ޤ��缡���� + ����³������Ū�����Ȥϡ�����ʥơ��֥� �Υ���ǥå������� + ���������̤Ϲ�®�Ǥ��� + + ��������ORDER BY���Ȥ߹�蘆�줿LIMIT + �ϡ��ơ��֥�ξ�������ʬ���֤�����ˤ��Ӥ��ӥ���ǥå�����Ȥ��Ǥ��礦 + �� �ºݡ�MAX() �� MIN() + ������ǥå�����Ȥ�ʤ��Ȥ��Ƥ⡢���Τ褦���ͤ� ORDER BY �� LIMIT + ��Ȥäƥ���ǥå�����ȤäƼ��Ф����Ȥ���ǽ�Ǥ�: SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1; -�⤷�����ץƥ��ޥ������ְ�äƥ�������륹�������������Ȥ˵������ʤ� -��С�SET enable_seqscan TO 'off'��Ȥäƥ���ǥå����������Ǥޤ������ʤ�®�� -�ʤäƤ��뤫��ƥ��ȤƤߤƤ��������� - -LIKE ���뤤�� ~ �Τ褦�ʥ磻��ɥ����ɱ黻�Ҥ����̤ʴĶ��Ǥ����Ȥ��ޤ��� - - �� ����ʸ����ʸ����κǽ�ˤ����ޤ������Ȥ��С� - �� LIKE �ѥ�����%�ǻϤޤ�ʤ� - �� ~ (����ɽ��) �ѥ������^�ǻϤޤ�ʤ���Фʤ�ʤ� - �� ����ʸ�����ʸ�����饹����Ϥ�뤳�ȤϤǤ��ޤ����Ȥ��С�[a-e]�� - �� ILIKE �� ~* �Τ褦����ʸ���Ⱦ�ʸ������̤��ʤ������ϻȤ��ޤ����Τ���� - ������FAQ��4.12�����������ؿ��Υ���ǥå������Ȥ��ޤ��� - �� initdb �ˤ����Ƥϡ��ǥե���Ȥ�C�������뤬�Ȥ��ʤ��ƤϤʤ�ޤ������� - ͳ�ϡ�C��������ʳ��Ǥϼ����礭��ʸ�����Τ뤳�Ȥ��Ǥ��ʤ�����Ǥ������Τ褦 - �ʾ�硢 + �⤷�����ץƥ��ޥ������ְ�äƥ�������륹�� + �����������Ȥ˵������ʤ���С�SET enable_seqscan TO + 'off'��Ȥäƥ���ǥå������� + ���Ǥޤ������ʤ�®���ʤäƤ��뤫��ƥ��ȤƤߤƤ��������� - LIKE - - ����ǥ����ˤ���Ư���褦�ʡ����̤� + LIKE ���뤤�� ~ �Τ褦�ʥ磻��ɥ����ɱ黻 �Ҥ����̤ʴĶ� + �Ǥ����Ȥ��ޤ��� + * ����ʸ����ʸ����κǽ�ˤ��ޤ������Ȥ��С� + + LIKE �ѥ�����%�ǻϤޤ�ʤ� + + ~ (����ɽ��) �ѥ������^�ǻϤޤ�ʤ���Фʤ�ʤ� + * ����ʸ�����ʸ�����饹����Ϥ�뤳�ȤϤǤ�ޤ����Ȥ��С�[a-e]�� + * ILIKE �� ~* �Τ褦����ʸ���Ⱦ�ʸ������̤� + �ʤ������ϻȤ��ޤ����Τ���ꡢ����FAQ��4.12�����������ؿ��Υ + ���ǥå������Ȥ��ޤ��� + * initdb �ˤ����Ƥϡ��ǥե���Ȥ�C�������뤬�Ȥ��� + ���ƤϤʤ�ޤ�������ͳ�ϡ�C��������ʳ��Ǥϼ����礭 + ��ʸ�����Τ뤳�� ���Ǥ� + �ʤ�����Ǥ������Τ褦�ʾ�硢LIKE����ǥ����ˤ��� + Ư���褦�ʡ����̤�text_pattern_ops����ǥå�������� + ���뤳�Ȥ�Ǥ�ޤ��� + + 8.0������Υ����Ǥϡ�����ǥå����ϡ��ǡ����������礦�ɥ���ǥå�� + ��Υ����η��Ȱ��פ��ʤ���С��Ȥ��ʤ����Ȥ����Ф��Ф���ޤ���������� + 餯��int2, int8, ����� numeric ���Υ����Υ���ǥå����������Ǥ��� + [������ ����Ū�˥���ǥå�����Ȥ��ˤ� SET enable_seqscan = off + ��¹Ԥ��ޤ��� ] - text_pattern_ops + 4.9) + �䤤��碌���֥ƥ��ޥ������ɤΤ褦���䤤��碌��ɾ������Τ���ˤϤɤ�� + ��ޤ����� - ����ǥå�����������뤳�Ȥ�Ǥ��ޤ��� - -8.0������Υ����Ǥϡ�����ǥå����ϡ��ǡ����������礦�ɥ���ǥå����Υ���� -�η��Ȱ��פ��ʤ���С��Ȥ��ʤ����Ȥ����Ф��Ф���ޤ����������餯��int2, int8, -����� numeric ���Υ����Υ���ǥå����������Ǥ��� - -[����������Ū�˥���ǥå�����Ȥ��ˤ� SET enable_seqscan = off ��¹Ԥ��ޤ��� ] - -4.9) �䤤��碌���֥ƥ��ޥ������ɤΤ褦���䤤��碌��ɾ������Τ���ˤϤɤ� -���ޤ����� - -����饤��ޥ˥奢��� EXPLAIN �Ʋ������� - -4.10) R-tree ����ǥå����Ȥϲ��Ǥ����� - -R-tree ����ǥå����϶���Ū�ʥǡ����˥���ǥå������դ��뤿��˻Ȥ��ޤ����ϥ� -���奤��ǥå����Ǥ��ϰϤθ������Ǥ��ޤ��ޤ���B-tree ����ǥå����Ǥϡ����� -���Ǥ����ϰϤθ������Ǥ��ޤ���R-tree ����ǥå����Ǥ����¿�����Υǡ����� -�ޤ������Ȥ��С��⤷ R-tree ����ǥå����� point ����°�����դ��뤳�Ȥ��Ǥ���� -����ȥ����ƥ�ϡ���Ĺ�����˰Ϥޤ줿���٤�����פȤ����褦���䤤��碌 -�ˡ�����Ψ�ɤ��������ޤ��� - -R-Tree ���߷פθ�ŵ�Ȥʤ븢�Ҥ�����ʸ��: - -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. - -������ʸ�ϡ�Stonebraker ������ "Readings in Database Systems" �Ǥ���夲��� -�Ƥ��ޤ��� - + ����饤��ޥ˥奢��� EXPLAIN �Ʋ������� + + 4.10) R-tree ����ǥå����Ȥϲ��Ǥ����� + + R-tree + ����ǥå����϶���Ū�ʥǡ����˥���ǥå������դ��뤿��˻Ȥ��ޤ����� + �å��奤��ǥå����Ǥ��ϰϤθ������Ǥ�ޤ��ޤ���B-tree + ����ǥå����Ǥϡ��������Ǥ����ϰϤθ������Ǥ�ޤ���R-tree + ����ǥå����Ǥ����¿�����Υǡ������ޤ������Ȥ��С��⤷ R-tree + ����ǥå����� point ����°����դ��뤳�Ȥ��Ǥ� + ��Ȥ���ȥ����ƥ�ϡ���Ĺ�����˰Ϥޤ줿���٤�����פȤ����褦 + ���䤤��碌�ˡ�����Ψ�ɤ��������ޤ��� + + R-Tree ���߷פθ�ŵ�Ȥʤ븢�Ҥ�����ʸ��: + + 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. + + ������ʸ�ϡ�Stonebraker ������ "Readings in Database Systems" + �Ǥ���夲���Ƥ��ޤ��� [������ - ������ü�������¼�������R-Tree�ط���ʸ����Ҳ𤷤�ĺ���ޤ����� - ���ܸ� Postgres ML �Υ��������֤��� "Subject: [postgres95 801] spatial data structures" + ������ü�������¼�������R-Tree�ط���ʸ����Ҳ𤷤�ĺ��ޤ����� + ���ܸ� Postgres ML �Υ��������֤��� "Subject: [postgres95 801] spatialdata structures" http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html ������������ ] -�ȹ��ߤ� R-Tree �ǥݥꥴ���ܥå��������Ǥ��ޤ�������Ū�ˤ�R-Tree �Ϥ�äȹ� -������������褦�ˤ��ĥ�Ǥ��ޤ����¼�Ū�ˤϡ�R-Tree �γ�ĥ�ˤϤ���äȤ��� -��Ȥ�ɬ�פǤ��ơ����ߡ��桹�Ϥ����ɤΤ褦�ˤ��뤫�ˤĤ��Ƥ�ʸ�����äƤ��� -���� - + �ȹ��ߤ� R-Tree �ǥݥꥴ���ܥå��������Ǥ�ޤ�������Ū�ˤ�R-Tree + �Ϥ�äȹ⤤����������褦�ˤ��ĥ�Ǥ�ޤ����¼�Ū�ˤϡ�R-Tree + �γ�ĥ�ˤϤ���äȤ�����Ȥ�ɬ�פǤ��ơ����ߡ��桹�Ϥ����ɤΤ褦�ˤ� + �뤫�ˤĤ��Ƥ�ʸ�����äƤ��ޤ��� [������ R-Tree ����ǥå�����GiST�dz�ȯ����Ƥ��ޤ��� http://www.sai.msu.su/~megera/postgres/gist/ ] -4.11) ����Ū�䤤��碌��Ŭ���Ȥϲ��Ǥ����� - -GEQO �⥸�塼��ϡ������Υơ��֥���礹��Ȥ��ˡ�����Ū���르�ꥺ��(GA)����� -�碌���®�����ޤ�������ˤ�ꡢ����ߤĤ֤���õ����Ԥʤ�ʤ��Ƥ⡢�礭�ʷ�� -(join queries)�����Ȥ��Ǥ���褦�ˤʤ�ޤ��� - -4.12) ����ɽ���Ǥθ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ�����ɽ�������ϤɤΤ褦�˼� -�����ޤ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ������Τ���Υ���ǥå����ϤɤΤ褦�˻� -���ޤ����� - -~�黻�Ҥ�����ɽ���ȹ��Ԥʤ���~* ����ʸ���Ⱦ�ʸ������̤��ʤ� -(case-insensitive)����ɽ���ȹ��Ԥ��ޤ�����ʸ���Ⱦ�ʸ������̤��ʤ� LIKE �黻 -�Ҥ� ILIKE �Ȥ����ޤ��� - -��ʸ���Ⱦ�ʸ������̤��ʤ�������Ӥϼ��Τ褦��ɽ���Ǥ��롧 - + 4.11) ����Ū�䤤��碌��Ŭ���Ȥϲ��Ǥ����� + + GEQO �⥸�塼��ϡ������Υơ��֥���礹��Ȥ� + �ˡ�����Ū���르�ꥺ��(GA)�����碌���®�����ޤ�������ˤ�ꡢ����� + �Ĥ֤���õ����Ԥʤ�ʤ��Ƥ⡢�礤ʷ��(join queries)�����Ȥ��Ǥ� + ��褦�ˤʤ�ޤ��� + + 4.12) + ����ɽ���Ǥθ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ�����ɽ�������ϤɤΤ褦�˼¸�� + ��ޤ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ������Τ���Υ���ǥå����ϤɤΤ褦�˻� + ���ޤ����� + + ~�黻�Ҥ�����ɽ���ȹ��Ԥʤ���~* + ����ʸ���Ⱦ�ʸ������̤��ʤ�(case-insensitive)����ɽ���ȹ��Ԥ��ޤ��� + ��ʸ���Ⱦ�ʸ������̤��ʤ� LIKE �黻�Ҥ� ILIKE �Ȥ����ޤ��� + + ��ʸ���Ⱦ�ʸ������̤��ʤ�������Ӥϼ��Τ褦��ɽ���Ǥ�롧 SELECT * FROM tab WHERE lower(col) = 'abc'; -ɸ�।��ǥå����ǤϻȤ�줺���������ʤ��顢�⤷�ؿ�����ǥå������ä��ʤ餽 -�줬�Ȥ���Ǥ��礦�� - + ɸ�।��ǥå����ǤϻȤ�줺���������ʤ��顢�⤷�ؿ�����ǥå����� + ��ä��ʤ餽�줬�Ȥ���Ǥ��礦�� CREATE INDEX tabindex ON tab (lower(col)); - - -4.13) �䤤��碌����ǡ��ե�����ɤ� NULL �Ǥ��뤳�ȤФ���ˤϤɤ����ޤ��� -�� - -������ IS NULL �� IS NOT NULL �Ȥǻ�Ƥߤޤ��� -4.14) �͡���ʸ�����Τ��줾��ΰ㤤�ϲ��Ǥ����� + 4.13) �䤤��碌����ǡ��ե�����ɤ� NULL + �Ǥ��뤳�ȤФ���ˤϤɤ����ޤ����� + + ������ IS NULL �� IS NOT NULL �Ȥǻ�Ƥߤޤ��� + + 4.14) �͡���ʸ�����Τ��줾��ΰ㤤�ϲ��Ǥ����� + Type Internal Name Notes -------------------------------------------------- VARCHAR(n) varchar ����Ĺ�Υ���������ꤹ�롢�ͤ�ʪ̵�� CHAR(n) bpchar ���ꤵ�줿����Ĺ�Ȥʤ�褦�˶��ͤ���� -TEXT text Ĺ���˾�¤�̵���ƥ����� +TEXT text Ĺ���˾�¤�̵���ƥ���� BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) "char" char ��ʸ�� -����̾�ˤ��ܤˤ�����Τϡ������ƥࡦ����������Ĵ�٤�Ȥ��䡢���顼��å������� -�������Ȥ��Ǥ��� - -�嵭�η��Τ����ǽ�Σ��Ĥη��� "varlena" ���Ǥ�(���ʤ�����ǥ������κǽ�Σ��� -���Ȥ��ǡ���Ĺ�ǡ�����θ�˼ºݤΥǡ�����³���ޤ�)�����Τ褦�˼ºݤζ��֤���� -���줿�礭�����⾯���礭���ʤ�ޤ����������������Υǡ�������TOAST�ˤ�갵�� -���줿��ʣ���������Ϥä���¸���줿�ꤷ�ơ��ǥ�������ζ��֤ϻפä���꾮������ -��ޤ��� - -VARCHAR(n) �ϲ���Ĺ��ʸ�������¸����Τ˺�Ŭ�Ǥ�������¸�Ǥ���ʸ�����Ĺ������ -�¤�����ޤ���TEXT ��Ĺ�������¤�̵��ʸ�������¸�Τ���Τ�Τǡ������ 1������ -���ȤǤ��� CHAR(n)�ϡ�VARCHAR(n)��Ϳ����줿ʸ����������¸����Τ��Ф����֥�� -����ͤ����Ǥ��Ĥ�Ʊ��Ĺ����ʸ�������¸����Τ˺�Ŭ�Ǥ���BYTEA�ϡ���ʬŪ�� -NULL �ΥХ��Ȥ�ޤ�Х��ʥ�ǡ�������¸���뤿��Τ�ΤǤ��������Υ����פ�Ʊ�� -���餤����ǽ���������ޤ��� - -4.15.1) ����(serial)����ư��ʬ�ե�����ɤϤɤΤ褦�ˤĤ���ޤ����� - -PostgreSQL �� SERIAL �ǡ������ݡ��Ȥ��ޤ���������˥�������ư������ -�ޤ������Ȥ��С� - - CREATE TABLE person ( - id SERIAL, - name TEXT + ����̾�ˤ��ܤˤ�����Τϡ������ƥࡦ����������Ĵ�٤�Ȥ� + �䡢���顼��å�������������Ȥ�Ǥ��� + + �嵤η��Τ����ǽ�Σ��Ĥη��� "varlena" + ���Ǥ�(���ʤ�����ǥ������κǽ�Σ��Х��Ȥ��ǡ���Ĺ�ǡ�����θ�˼ºݤ + Υǡ�����³��ޤ�)�����Τ褦�˼ºݤζ��֤�������줿�礤����⾯���礭 + ���ʤ�ޤ����������������Υǡ�������TOAST�ˤ�갵�̤��줿��ʣ������� + ��Ϥä���¸���줿�ꤷ�ơ��ǥ�������ζ��֤ϻפä���꾮�����ʤ�ޤ��� + + VARCHAR(n) �ϲ���Ĺ��ʸ�������¸����Τ˺�Ŭ�Ǥ�������¸�Ǥ� + ��ʸ�����Ĺ�������¤�����ޤ���TEXT + ��Ĺ�������¤�̵��ʸ�������¸�Τ���Τ�Τǡ������ 1�����Х��ȤǤ��� + CHAR(n)�ϡ�VARCHAR(n)��Ϳ����줿ʸ����������¸����Τ��Ф����֥� + �ͤ����Ǥ��Ĥ�Ʊ��Ĺ����ʸ�������¸����Τ˺�Ŭ�Ǥ���BYTEA�ϡ���ʬ + Ū��NULL + �ΥХ��Ȥ�ޤ�Х��ʥ�ǡ�������¸���뤿��Τ�ΤǤ��������Υ����פ� + Ʊ�����餤���ǽ��������ޤ��� + + 4.15.1) ����(serial)����ư��ʬ�ե�����ɤϤɤΤ褦�ˤĤ���ޤ����� + + PostgreSQL �� SERIAL + �ǡ������ݡ��Ȥ��ޤ���������˥�������ư�������ޤ������Ȥ� + �С� + CREATE TABLE person ( + id SERIAL, + name TEXT ); -�ϼ�ưŪ�˼��Τ褦����������ޤ�: - + �ϼ�ưŪ�˼��Τ褦����������ޤ�: CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( + CREATE TABLE person ( id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT + name TEXT ); [������ @@ -1097,186 +1184,203 @@ PostgreSQL �� SERIAL �ǡ������ݡ��Ȥ��ޤ���������˥�������ư������ �ϡ� 7.3 ����ϼ�ưŪ�ˤϹԤʤ��ʤ��ʤ�ޤ����� ] -���֤ˤĤ��ƤΤ�äȾܤ�������ϡ�����饤��ޥ˥奢��� create_sequence ���� -�������� - -�ޤ����ƥ�����OID�ե�����ɤ����ͤȤ��ƻȤ����Ȥ�Ǥ��ޤ����������ʤ��顢�⤷ -��ǡ����١��������פ��ƥ�����ɤ���ɬ�פ�������ϡ�OID��¸���뤿��� -pg_dump �� -o���ץ�����Ȥ������ޤ��ϡ�COPY WITH OIDS���ץ�����Ȥ�ɬ�פ��� -��ޤ��� - -4.15.2) SERIAL�ǡ�����������������ͤϡ��ɤ�����������ޤ����� - -�ҤȤĤ���ˡ�ϡ�nextval() �ؿ���ȤäƤ����ͤ�����������(before)�� SEQUENCE �� -�֥������Ȥ��鼡�� SERIAL �ͤ���Ф������줫��ºݤ������뤳�ȤǤ��� -4.15.1 �Υơ��֥�����Ȥ��Ȥ���ȡ���������ǤϤ��Τ褦�ˤʤ�ޤ��� - + ���֤ˤĤ��ƤΤ�äȾܤ�������ϡ�����饤��ޥ˥奢��� + create_sequence ������������ + + �ޤ����ƥ�����OID�ե�����ɤ����ͤȤ��ƻȤ����Ȥ�Ǥ� + �ޤ����������ʤ��顢�⤷��ǡ����١��������פ��ƥ�����ɤ���ɬ�פ��� + ����ϡ�OID��¸���뤿���pg_dump �� + -o���ץ�����Ȥ������ޤ��ϡ�COPY WITH + OIDS���ץ�����Ȥ�ɬ�פ�����ޤ��� + + 4.15.2) SERIAL�ǡ�����������������ͤϡ��ɤ�����������ޤ����� + + �ҤȤĤ���ˡ�ϡ�nextval() �ؿ���ȤäƤ����ͤ�����������(before)�� + SEQUENCE ���֥������Ȥ��鼡�� SERIAL + �ͤ���Ф������줫��ºݤ������뤳�ȤǤ���4.15.1 + �Υơ��֥�����Ȥ��Ȥ���ȡ���������ǤϤ��Τ褦�ˤʤ�ޤ��� new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -�������ơ�new_id ����¸�����������ͤ�¾���䤤��碌��(���Ȥ��С�person �ơ��֥� -���Ф��볰������(foreign key)�Τ褦��)�Ȥ��Ȥ褤�Ǥ��礦����ưŪ�˺��줿 -SEQUENCE���֥������Ȥ�̾���ϡ�<table>_<serialcolumn>_seq �Τ褦�ˤʤꡢ���Τ��� -��table �� serialcolumn �Ϥ��줾��ơ��֥��̾����SERIAL������̾���Ǥ��� - -���뤤�ϡ�Ϳ����줿SERIAL�ͤ��줬�����ͤȤ����������줿���(after)�� -currval() �ؿ���ȤäƼ��Ф����Ȥ�Ǥ��ޤ������Ȥ��С� - + �������ơ�new_id ����¸�����������ͤ�¾���䤤��碌��(���Ȥ��С�person + �ơ��֥���Ф��볰�����(foreign + key)�Τ褦��)�Ȥ��Ȥ褤�Ǥ��礦����ưŪ�˺��줿SEQUENCE���֥������Ȥ + �̾���ϡ�<table>_<serialcolumn>_seq �Τ褦�ˤʤꡢ���Τ�����table �� + serialcolumn �Ϥ��줾��ơ��֥��̾����SERIAL������̾���Ǥ��� + + ���뤤�ϡ�Ϳ����줿SERIAL�ͤ��줬�����ͤȤ����������줿���(after + )�� currval() �ؿ���ȤäƼ��Ф����Ȥ�Ǥ�ޤ������Ȥ��С� execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); -�Ǹ�ˡ�INSERTʸ�����֤�OID��Ȥäơ������ͤ�ߤĤ��뤳�Ȥ�Ǥ��ޤ������������� -oid���ͤ�40����ã����Ȥ�Ȥ���äƤ��ޤ����Ǥ�ܿ������㤤������Ȥʤ�Ǥ��礦 -��Perl DBI �� DBD::Pg �⥸�塼���Ȥ��С�$sth->execute() �θ�� $sth-> -{pg_oid_status} ���ͳ���Ƥ��� OID �ͤ�Ȥ���褦�ˤ��뤳�ȤϤǤ��ޤ��� - -4.15.3) currval() ��¾�Υ桼���Ȥζ�����֤˴٤뤳�ȤϤʤ��Ǥ����� - -����Ϥ���ޤ���currval() �ϡ����٤ƤΥ桼���ǤϤ���ޤ������ʤ��ΥХå� -����ɤ�Ϳ����줿���ߤ��ͤ��֤��ޤ��� - -4.15.4) �ȥ����������Ǥ����Ȥ��ˤ⤦�����ɥ��������ֹ椬�Ȥ��ʤ��� -�Ϥʤ��Ǥ�������������SERIAL�����˶���������ΤϤʤ��Ǥ����� - -Ʊ������������뤿��ˡ��¹���Υȥ�������ˡ�ɬ�פǥȥ������� -λ����ޤǥ��å�����ʤ����������ͤ�Ϳ���Ƥ��ޤ������Τ���ȥ������� -���Ǥ������ֹ������Ƥ˥���åפ������ޤ��� - -4.16) OID �Ȥϲ��Ǥ����� TID �Ȥϲ��Ǥ����� - -OID �Ȥϰ�դΥ���ID ���Ф��� PostgreSQL �������Ǥ���PostgreSQL ����ǤĤ���� -�뤹�٤ƤΥ����ϰ�դ� OID �����ޤ���initdb ��ȯ������� OID �Ϥ��٤� 16384 -(include/access/transam.h ����)��꾮�����ͤǤ���initdb ��Τ��٤Ƥ� OID (�桼 -������)�Ϥ���ʾ���ͤˤʤ�ޤ�������Ǥϡ�����餹�٤Ƥ� OID�ϰ�ĤΥǡ��֥�� -�ǡ����١������α�ޤ餺��PostgreSQL ���ȥ졼��������Τ���ǰ�դǤ��� - -PostgreSQL �ϥơ��֥�֤Υ������ӤĤ��뤿��ˡ����Υ����ƥ�ơ��֥���� OID -��Ȥ��ޤ������� OID ������Υ桼���Υ������̤��뤿��������ǻȤ��뤳�� -���Ǥ��ޤ���OID ���ͤ���¸���뤿��ˤ� OID �����˻Ȥ����Ȥ�ޤ������ -®�������������뤿��� OID �ե�����ɤ˥���ǥå������뤳�Ȥ��Ǥ��ޤ��� OID -�ϡ����ƤΥǡ����١����ǻȤ�������ΰ褫�顢���Ƥο����������˳�����Ƥ��� -����OID ��¾�β������Ѥ����������뤤�ϸ��� OID ��ơ��֥�Ȱ��˥��ԡ��������� -�ʤ顢�Ǥ��ʤ��Ϥ���ޤ��� - + �Ǹ�ˡ�INSERTʸ�����֤�OID��Ȥäơ������ͤ�ߤĤ��뤳�Ȥ�Ǥ� + �ޤ�������������oid���ͤ�40����ã����Ȥ�Ȥ���äƤ��ޤ����Ǥ�ܿ��� + ���㤤������Ȥʤ�Ǥ��礦��Perl DBI �� DBD::Pg + �⥸�塼���Ȥ��С�$sth->execute() �θ�� $sth->{pg_oid_status} + ���ͳ���Ƥ��� OID �ͤ�Ȥ���褦�ˤ��뤳�ȤϤǤ�ޤ��� + + 4.15.3) currval() ��¾�Υ桼���Ȥζ�����֤˴٤뤳�ȤϤʤ��Ǥ����� + + ����Ϥ���ޤ���currval() + �ϡ����٤ƤΥ桼���ǤϤ���ޤ������ʤ��ΥХå�����ɤ�Ϳ����줿�� + �ߤ��ͤ��֤��ޤ��� + + 4.15.4) �ȥ����������Ǥ����Ȥ� + �ˤ⤦�����ɥ��������ֹ椬�Ȥ��ʤ��ΤϤʤ��Ǥ�������������SERIAL��� + ��˶��������ΤϤʤ��Ǥ����� + + Ʊ���� + ��������뤿��ˡ��¹���Υȥ�������ˡ�ɬ�פǥȥ������� + ��λ����ޤǥ��å�����ʤ����������ͤ�Ϳ���Ƥ��ޤ������Τ���ȥ�� + ����������Ǥ������ֹ������Ƥ˥���åפ������ޤ��� + + 4.16) OID �Ȥϲ��Ǥ����� TID �Ȥϲ��Ǥ����� + + OID �Ȥϰ�դΥ���ID ���Ф��� PostgreSQL �������Ǥ���PostgreSQL + ����ǤĤ����뤹�٤ƤΥ����ϰ�դ� OID �����ޤ���initdb ��ȯ������� + OID �Ϥ��٤� 16384 (include/access/transam.h + ����)��꾮�����ͤǤ���initdb ��Τ��٤Ƥ� OID + (�桼������)�Ϥ���ʾ���ͤˤʤ�ޤ��� ����Ǥϡ�����餹�٤Ƥ� + OID�ϰ�ĤΥǡ��֥��ǡ����١������α�ޤ餺��PostgreSQL + ���ȥ졼��������Τ���ǰ�դǤ��� + + PostgreSQL + �ϥơ��֥�֤Υ������ӤĤ��뤿��ˡ����Υ����ƥ�ơ��֥���� OID + ��Ȥ��ޤ������� OID + ������Υ桼���Υ������̤��뤿��������ǻȤ��뤳�Ȥ��Ǥ� + �ޤ���OID ���ͤ���¸���뤿��ˤ� OID + �����˻Ȥ����Ȥ�ޤ������®�������������뤿��� OID + �ե�����ɤ˥���ǥå������뤳�Ȥ��Ǥ�ޤ��� OID + �ϡ����ƤΥǡ����١����ǻȤ�������ΰ褫�顢���Ƥο����������˳���� + �Ƥ��ޤ���OID ��¾�β������Ѥ����������뤤�ϸ��� OID + ��ơ��֥�Ȱ��˥��ԡ��������Τʤ顢�Ǥ�ʤ��Ϥ���ޤ��� CREATE TABLE new_table(mycol int); SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table; COPY tmp_table TO '/tmp/pgtable'; COPY new_table WITH OIDS FROM '/tmp/pgtable'; DROP TABLE tmp_table; -OID �ϡ�4�Х��Ȥ������Ȥ�����¸����Ƥ���Τǡ�40����ۤ���Ȱ��Ƥ��ޤ��Ǥ��� -����ï�⤳�줬����������𤷤Ƥ���ͤϤ��ޤ���Ǥ������������ʤ����ˤ������¤� -���������Ȥ�ײ褷�Ƥ��ޤ��� - -TID �������ʪ�������Υ֥��å��ȥ��ե��å��ͤǼ��̤��뤿��˻Ȥ��ޤ���TID -�ϥ������������줿��ƥ����ɤ������Ѥ��ޤ��������� TID �ϡ�ʪ��������ؤ� -����˥���ǥå������ܤǻȤ��ޤ��� - -4.17) PostgreSQL �ǻȤ��뤤���Ĥ����Ѹ�ΰ�̣�ϲ��Ǥ����� - -�����Ĥ��Υ����������ɤ�Ť�ʸ�����ˤϡ����줾������ʬ�����Ǥ�äȰ���Ū�� -�Ȥ��������Ѹ줬�Ȥ��Ƥ��ޤ��� - - �� �ơ��֥�(table)���ط�(relation)�����饹(class) - �� ����(row)���쥳����(record)�����åץ�(tuple) - �� �����(column)���ե������(field)��°��(attribute) - �� ����(retrieve)������(select) - �� �ִ�(replace)������(update) - �� �ɲ�(append)������(insert) - �� OID, Ϣ��(serial value) - �� �ݡ�����(portal), ��������(cursor) - �� �ΰ��ѿ�(range variable)���ơ��֥�̾(table name)���ơ��֥���̾(table alias) - -����Ū�ʥǡ����١����Ѹ�Υꥹ�Ȥϡ�http://hea-www.harvard.edu/MST/simul/ -software/docs/pkgs/pgsql/glossary/glossary.html �Ǹ��Ĥ����ޤ��� - -4.18) ���顼��å����� "ERROR: Memory exhausted in AllocSetAlloc()"���Ф�ΤϤ� -���Ǥ����� - -�����餯�������ƥ�β��ۥ�������ƻȤ��̤����Ƥ��ޤäƤ����ǽ�������뤫�� -�����ͥ뤬���������ˤĤ��Ƥ�������ͤ��㤹�����ǽ��������ޤ��� postmaster -���ư�������ˤ�����ƤߤƲ������� - + OID + �ϡ�4�Х��Ȥ������Ȥ�����¸����Ƥ���Τǡ�40����ۤ���Ȱ��Ƥ��ޤ�� + Ǥ��礦��ï�⤳�줬���� + ������𤷤Ƥ���ͤϤ��ޤ���Ǥ������������ʤ����ˤ������¤�������� + �Ȥ�ײ褷�Ƥ��ޤ��� + + TID + �������ʪ�������Υ֥��å��ȥ��ե��å��ͤǼ��̤��뤿��˻Ȥ��ޤ� + ��TID �ϥ������������줿��ƥ����ɤ������Ѥ��ޤ��������� TID + �ϡ�ʪ��������ؤ�����˥���ǥå�����ܤǻȤ��ޤ��� + + 4.17) PostgreSQL �ǻȤ��뤤���Ĥ����Ѹ�ΰ�̣�ϲ��Ǥ����� + + �����Ĥ��Υ����������ɤ�Ť�ʸ�����ˤϡ����줾������ʬ�����Ǥ�ä� + ����Ū�˻Ȥ��������Ѹ줬�Ȥ��Ƥ��ޤ��� + * �ơ��֥�(table)���ط�(relation)�����饹(class) + * ����(row)���쥳����(record)�����åץ�(tuple) + * �����(column)���ե������(field)��°�(attribute) + * ����(retrieve)������(select) + * �ִ�(replace)������(update) + * �ɲ�(append)������(insert) + * OID, Ϣ��(serial value) + * �ݡ�����(portal), ��������(cursor) + * �ΰ��ѿ�(range variable)���ơ��֥�̾(table + name)���ơ��֥���̾(table alias) + + ����Ū�ʥǡ����١����Ѹ�Υꥹ�Ȥϡ�http://hea-www.harvard.edu/MST/sim + ul/software/docs/pkgs/pgsql/glossary/glossary.html �Ǹ��Ĥ����ޤ��� + + 4.18) ���顼��å����� "ERROR: Memory exhausted in + AllocSetAlloc()"���Ф�ΤϤʤ��Ǥ����� + + �����餯�������ƥ�β��ۥ�������ƻȤ��̤����Ƥ��ޤäƤ����ǽ�� + �����뤫�������ͥ뤬���������ˤĤ��Ƥ�������ͤ��㤹�����ǽ�� + ������ޤ��� postmaster ���ư�������ˤ�����ƤߤƲ������� ulimit -d 262144 limit datasize 256m -������ˤ�äơ��ɤ��餫�ҤȤĤ���������Ǥ��礦��������ϥץ������Υǡ������� -�������¤���⤯���ꤷ�����֤��䤤��碌�����뤹��褦�ˤʤ�Ǥ��礦������ -���ޥ�ɤϸ��ԤΥץ������ȡ����Υ��ޥ�ɤ����餻����˺�������ƤΥ��֥ץ��� -���ˤĤ���Ŭ�Ѥ���ޤ����Хå�����ɤ��ȤƤ�¿���Υǡ������֤������SQL ���饤 -����Ȥ����꤬³���Ƥ���ΤǤ���С����饤����ȤϤ������ˤ�����Ƥߤ� -���������� - -4.19) �ɤΥС������� PostgreSQL �����餻�Ƥ��뤫��Ĵ�٤�ˤϤɤ����ޤ����� - -psql ���� SELECT version(); ���פ��ޤ��� - -4.20) �顼�������֥������Ȥ�����invalid large obj descriptor ��������ޤ��� -���ʤ��Ǥ��礦���� - -�顼�������֥�����������Ȥ��ϡ������BEGIN WORK��COMMIT���դ���ɬ�פ��� -��ޤ������ʤ����lo_open ... lo_close��Ϥ��߹��ߤޤ��� - -���ߤϡ�PostgreSQL�Υȥ�������Υ��ߥåȻ��˥顼�������֥������ȡ��ϥ�� -����Ĥ��뤳�Ȥˤ�ꡢlo_open���ޥ�ɤ���λ����ľ��˶���Ū�˥롼���¹Ԥ��ޤ� -�����Τ��ᡢ�ǽ�˥ϥ�ɥ���Ф��Ʋ����褦�Ȥ���ȡ�invalid large obj -descriptor(�顼�������֥������Ȥε��һҤ�����)�Ȥʤ�ޤ�������ǡ��⤷���ȥ�� -����������Ȥ��Τ�˺���ȡ��ʾ��ʤ��Ȥ�ۤȤ�ɤλ��֡�Ư���Ƥ��������ɤ��� -�顼��å�������Ф��ΤǤ��� - -�⤷��ODBC�Τ褦�ʥ��饤����ȥ����ե������Ȥ��ʤ顢auto-commit off���� -�ꤹ��ɬ�פ����뤫�⤷��ޤ��� - -4.21) ���ߤλ��郎�ǥե���ȤȤʤ�褦�ʥ����ϤɤΤ褦�ˤĤ���ޤ����� - -CURRENT_TIMESTAMP��Ȥ��ޤ�: - + ������ˤ�äơ��ɤ��餫�ҤȤĤ���������Ǥ��礦��������ϥץ������Υ� + ���������������¤���⤯���ꤷ�����֤��䤤��碌�����뤹��褦�ˤ� + ��Ǥ��礦�����Υ��ޥ�ɤϸ��ԤΥץ������ȡ����Υ��ޥ�ɤ����餻����� + ��������ƤΥ��֥ץ������ˤĤ���Ŭ�Ѥ���ޤ����Хå�����ɤ��ȤƤ�¿ + ���Υǡ������֤������SQL + ���饤����Ȥ����꤬³���Ƥ���ΤǤ���С����饤����ȤϤ������ˤ� + ����ƤߤƤ��������� + + 4.19) �ɤΥС������� PostgreSQL + �����餻�Ƥ��뤫��Ĵ�٤�ˤϤɤ����ޤ����� + + psql ���� SELECT version(); ���פ��ޤ��� + + 4.20) �顼�������֥������Ȥ�����invalid large obj descriptor + ��������ޤ������ʤ��Ǥ��礦���� + + �顼�������֥�����������Ȥ�ϡ������BEGIN + WORK��COMMIT���դ���ɬ�פ�����ޤ������ʤ����lo_open ... + lo_close��Ϥ��߹��ߤޤ��� + + ���ߤϡ�PostgreSQL�Υȥ�������Υ��ߥåȻ��˥顼�������֥������� + ���ϥ�ɥ���Ĥ��뤳�Ȥˤ�ꡢlo_open���ޥ�ɤ���λ����ľ��˶���Ū�˥ + 롼���¹Ԥ��ޤ������Τ��ᡢ�ǽ�˥ϥ�ɥ���Ф��Ʋ����褦�Ȥ��� + ȡ�invalid large obj descriptor(�顼�������֥������Ȥε� + �һҤ�����)�Ȥʤ�ޤ�������ǡ��⤷���ȥ��������Ȥ��Τ�˺��� + ȡ��ʾ��ʤ��Ȥ�ۤȤ�ɤλ��֡�Ư���Ƥ��������ɤ����顼��å�������Ф + ��ΤǤ��� + + �⤷��ODBC�Τ褦�ʥ��饤����ȥ����ե������Ȥ��ʤ顢auto-commi + t off�����ꤹ��ɬ�פ����뤫�⤷��ޤ��� + + 4.21) ���ߤλ��郎�ǥե���ȤȤʤ�褦�ʥ����ϤɤΤ褦�ˤĤ���ޤ����� + + CURRENT_TIMESTAMP��Ȥ��ޤ�: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); -4.22) �ʤ���IN��Ȥ����䤤��碌���ȤƤ��٤��ΤǤ����� - -7.4 ������ΥС������Ǥϡ����䤤��碌�ϡ����䤤��碌�η�̤����䤤��碌 -�γƥ����ˤĤ��ƽ缡�������뤳�Ȥˤ�äơ��������䤤��碌�˷�礵�����롣�� -�䤤��碌���鷺���ʥ��������֤����������䤤��碌�������Υ������֤����ϡ�IN -���Ǥ��ᤤ�Ǥ���¾���䤤��碌���®������ˤϡ�IN��EXISTS���ִ����ޤ�: - + 4.22) �ʤ���IN��Ȥ����䤤��碌���ȤƤ��٤��ΤǤ����� + + 7.4 + ������ΥС������Ǥϡ����䤤��碌�ϡ����䤤��碌�η�̤����䤤�� + �碌�γƥ����ˤĤ��ƽ缡�������뤳�Ȥˤ�äơ��������䤤��碌�˷�礵 + �����롣 + ���䤤��碌���鷺���ʥ��������֤����������䤤��碌�������Υ������֤� + ���ϡ�IN���Ǥ��ᤤ�Ǥ���¾���䤤��碌���®������ˤϡ�IN��EXISTS�� + �ִ����ޤ�: SELECT * FROM tab WHERE col IN (SELECT subcol FROM subtab) -���֤������ơ� - + ���֤�����ơ� SELECT * FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) -�Ȥ��ޤ������줬��ü���ᤤ�Ǥ�����subcol�Ϻ����դ������Ǥ���٤��Ǥ��� - -�С������7.4�ʹߤǤϡ�IN�ϡ��̾���䤤��碌��Ʊ�ͤ��������줿���祤��ε��Ѥ� -�ºݤ˻Ȥ���EXISTS��Ȥ����Ȥߤޤ��� - -4.23) �������(outer join)�ϤɤΤ褦�˼¸����ޤ���? - -PostgreSQL �� SQL ɸ�ʸ��Ȥ��������(�����������祤��)�ݡ��Ȥ��ޤ����� -���� 2�Ĥ����꤬����ޤ��� - + �Ȥ��ޤ��� ���줬��ü���ᤤ�Ǥ�����subcol�Ϻ����դ�����Ǥ���٤� + �Ǥ��� + + �С������7.4�ʹߤǤϡ�IN�ϡ��̾���䤤��碌��Ʊ�ͤ��������줿���祤� + �ε��Ѥ�ºݤ˻Ȥ���EXISTS��Ȥ����Ȥߤޤ��� + + 4.23) �������(outer join)�ϤɤΤ褦�˼¸����ޤ���? + + PostgreSQL �� SQL + ɸ�ʸ��Ȥ��������(�����������祤��)�ݡ��Ȥ��ޤ��������� + 2�Ĥ����꤬����ޤ��� SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); -���뤤�� - + ���뤤�� SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); -�����ξ�ħŪ���䤤��碌�Ǥ� t1.col �� t2.col �ȷ�礷�ơ�t1 �η�礵��ʤ��� -������(t2 �Ȱ��פ��ʤ��ä�����)���֤��Ƥ��ޤ���RIGHT ���� t2 �η�礵��ʤ��� -��������ä���Ǥ��礦��FULL ���ϡ����פ��������� t1 �� t2 ����Ϸ�礵��ʤ� -�ä��������֤��Ǥ��礦��OUTER �Ȥ������դϥ��ץ����� LEFT, RIGHT, �ޤ��� FULL -�ʤɤη����ꤵ��Ƥ��ޤ����̾����INNER���ȸƤФ�ޤ��������Υ��� -�Ǥϳ������(outer join)��UNION �� NOT IN ��Ȥäƥ��ߥ�졼�ȤǤ��ޤ������Ȥ� -�С�tab1 �� tab2 ���礹��Ȥ��ϡ������䤤��碌����ĤΥơ��֥������礷�� -���� - + �����ξ�ħŪ���䤤��碌�Ǥ� t1.col �� t2.col �ȷ�礷�ơ�t1 + �η�礵��ʤ��ä�����(t2 �Ȱ��פ��ʤ��ä�����)���֤��Ƥ��ޤ���RIGHT + ���� t2 �η�礵��ʤ��ä�������ä���Ǥ��礦��FULL + ���ϡ����פ��������� t1 �� t2 + ����Ϸ�礵��ʤ��ä��������֤��Ǥ��礦��OUTER + �Ȥ������դϥ��ץ����� LEFT, RIGHT, �ޤ��� FULL + �ʤɤη����ꤵ��Ƥ��ޤ����̾����INNER���ȸƤФ�ޤ��� + + �����Υ����Ǥϳ������(outer join)��UNION �� NOT IN + ��Ȥäƥ��ߥ�졼�ȤǤ�ޤ��� ���Ȥ��С�tab1 �� tab2 ���礹��Ȥ� + �ϡ������䤤��碌����ĤΥơ��֥������礷�ޤ��� SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 @@ -1286,48 +1390,57 @@ PostgreSQL �� SQL ɸ�ʸ��Ȥ��������(�����������祤��)�ݡ��Ȥ��ޤ����� WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) ORDER BY col1 -4.24) ʣ���Υǡ����١�����Ȥ��䤤��碌�ϤɤΤ褦�ˤ���ФǤ��ޤ����� - -���ԤΥǡ����١����ʳ��ؤ��䤤��碌��ˡ�Ϥ���ޤ��Ȥ����Τ�PostgreSQL���� -�����١������ͤΥ����ƥ५���������ɤ߹��ि��ǡ������ˤϡ����Ȥ����Τդ�� -������ˤ������ǡ����١�����ۤ����䤤��碌�뤹�٤�����ޤ��� - -contrib/dblink �ϥǡ����١�����(cross-database)���䤤��碌��ؿ��ƽФ��ˤ��� -���ޤ�����������饤����Ȥ�Ʊ������³���̤Υǡ����١����ؤ�ĥ��ʤ��ƤϤ� -�餺����̤饤�����¦�ǥޡ������ʤ��ƤϤʤ�ޤ��� - -4.25) �ؿ���ʣ���Υ����ޤ��ϥ������֤��ˤϤɤ����ޤ����� - -7.3�Ǥϴؿ����顢ʣ���Υ�����ʣ���������ñ���֤��ޤ��� http:// -techdocs.postgresql.org/guides/SetReturningFunctions�� - -4.26)�ʤ���PL/PgSQL �ؿ����椫�����ơ��֥��μ¤� create/drop ���뤳�Ȥ��Ǥ� -�ʤ��ΤǤ��礦���� - -PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ� -������ơ��֥�˥�����������ȡ����Υơ��֥�Ϥ��Ȥǥɥ��åפ���ƺ�������ޤ� -�����ؿ����ƤӸƤӽФ����ȡ�����å��夵��Ƥ��뤽�δؿ������ƤϤޤ��Ť���� -�ơ��֥������Ȥ��ƻؤ��Ƥ��뤫��Ǥ��������ϡ� PL/PgSQL ����� EXECUTE ��� -���ơ��֥륢�������Τ���˻Ȥ����ȤǤ�������ǡ�����䤤��碌��ѡ�����ľ���� -�Ȥˤʤ�Ǥ��礦�� - -4.27) �ɤΤ褦�ʰŹ沽���ץ��������ѤǤ��ޤ���? - - �� contrib/pgcrypto�ˤ�SQL�䤤��碌����ǻȤ�����������ΰŹ沽��ޤߤޤ��� - �� ���饤����Ȥȥ����ФȤδ֤�������Ź沽����ˤϡ������ФǤ�postgresql.conf - ��ssl���ץ�����true �����ꤷ��pg_hba.conf�ˤ�Ŭ�Ѥ���host���뤤��hostssl - �ιԤ��ʤ��ƤϤʤ�ޤ������ơ����饤����ȤǤ�sslmode��disable�ˤ��Ƥ� - �ʤ�ޤ��� (PostgreSQL������SSL��³�Τ����ˡ�stunnel �� ssh �����ɥѡ� - �ƥ����ΰŹ沽ž����Ȥ����Ȥ��ǽ�Ǥ��뤳�Ȥ���Ƥ����ޤ���) - �� �С������7.3 �Ǥϥǡ����١����桼���Υѥ���ɤ���¸�������˼�ưŪ�˰� - �沽����ޤ������������ΥС������Ǥ�postgresql.conf��� - PASSWORD_ENCRYPTION��ͭ���ˤ���ɬ�פ�����ޤ��� - �� �����С������餻��Τ˰Ź沽�ե����륷���ƥ��Ȥ����Ȥ�Ǥ��ޤ��� - + 4.24) ʣ���Υǡ����١�����Ȥ��䤤��碌�ϤɤΤ褦�ˤ���ФǤ�ޤ����� + + ���ԤΥǡ����١����ʳ��ؤ��䤤��碌��ˡ�Ϥ���ޤ��Ȥ����Τ�Postgr + eSQL���ǡ����١������ͤΥ����ƥ५���������ɤ߹��ि��ǡ������ˤϡ��� + �Ȥ����Τդ������ˤ������ǡ����١�����ۤ����䤤��碌�뤹�� + ������ޤ��� + + contrib/dblink + �ϥǡ����١�����(cross-database)���䤤��碌��ؿ��ƽФ��ˤ������ޤ� + ����������饤����Ȥ�Ʊ������³���̤Υǡ����١����ؤ�ĥ��ʤ��Ƥ� + �ʤ餺����̤饤�����¦�ǥޡ������ʤ��ƤϤʤ�ޤ��� + + 4.25) �ؿ���ʣ���Υ����ޤ��ϥ������֤��ˤϤɤ����ޤ����� + + 7.3�Ǥϴؿ����顢ʣ���Υ�����ʣ���������ñ���֤��ޤ��� + http://techdocs.postgresql.org/guides/SetReturningFunctions�� + + 4.26)�ʤ���PL/PgSQL �ؿ����椫�����ơ��֥��μ¤� create/drop + ���뤳�Ȥ��Ǥ�ʤ��ΤǤ��礦���� + + PL/PgSQL �ϴؿ������Ƥ��å��夷�������Թ��������ѤΤ��ᡢ�⤷ + PL/PgSQL + �ؿ�������ơ��֥�˥�����������ȡ����Υơ��֥�Ϥ��Ȥǥɥ��åפ���� + ��������ޤ������ؿ����ƤӸƤӽФ����ȡ��� + ��å��夵��Ƥ��뤽�δؿ������ƤϤޤ��Ť�����ơ��֥������Ȥ��ƻؤ� + �Ƥ��뤫��Ǥ��������ϡ� PL/PgSQL ����� EXECUTE + �����ơ��֥륢�������Τ���˻Ȥ����ȤǤ�������ǡ�����䤤��碌��� + ������ľ�����Ȥˤʤ�Ǥ��礦�� + + 4.27) �ɤΤ褦�ʰŹ沽���ץ��������ѤǤ�ޤ���? + + * contrib/pgcrypto�ˤ�SQL�䤤��碌����ǻȤ�����������ΰŹ沽��ޤ + ߤޤ��� + * ���饤����Ȥȥ����ФȤδ֤�������Ź沽����ˤϡ������ФǤ�postgr + esql.conf��ssl���ץ�����true + �����ꤷ��pg_hba.conf�ˤ�Ŭ�Ѥ���host���뤤��hostssl�ιԤ��ʤ��Ƥ� + �ʤ�ޤ������ơ����饤����ȤǤ�sslmode��disable�ˤ��ƤϤʤ�� + ���� (PostgreSQL������SSL��³�Τ����ˡ�stunnel �� ssh + �����ɥѡ��ƥ����ΰŹ沽ž����Ȥ����Ȥ��ǽ�Ǥ��뤳�Ȥⵤ��Ƥ��� + �ޤ���) + * �С������7.3 + �Ǥϥǡ����١����桼���Υѥ���ɤ���¸�������˼�ưŪ�˰Ź沽�� + ��ޤ��� + ���������ΥС������Ǥ�postgresql.conf���PASSWORD_ENCRYPTION�� + ��ˤ���ɬ�פ�����ޤ��� + * �����С������餻��Τ˰Ź沽�ե����륷���ƥ��Ȥ����Ȥ�Ǥ�ޤ��� + [���� ��ץꥱ��������Ϣ�ι��ܤ��ʤ��ʤ�ޤ������������ΤĤ��Ƥ���ޤ��� - Jan Wieck����ˤ�륫�������ɲ�ǽ�ʥޥ����������졼�ַ��Υ�ץꥱ������� Slony-I + Jan Wieck����ˤ�륫�������ɲ�ǽ�ʥޥ����������졼�ַ��Υ�ץꥱ������� Slony-I http://gborg.postgresql.org/project/slony1/projdisplay.php �а�ã�פ���ˤ�륳�ͥ������ס��� ������ PGPool @@ -1340,67 +1453,70 @@ PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ� �μ�����Ԥ��ޤ����� http://www.postgresql.jp/wg/dt/index.html ] - -������������������������������������������������������������������������������ - - PostgreSQL�γ�ĥ�ˤĤ��Ƥμ��� - -5.1) ��ʬ�ǽ��桼������ؿ��� psql ����Ǽ¹Ԥ���ȥ���������פ��Ƥ��ޤ��� -�Ϥʤ��Ǥ����� - -����Ͽ����ȹͤ����ޤ������ޤ��ǽ�ˡ����������桼������ؿ���ñ�ȤΥƥ��ȥ� -�������ˤ��ƻ�ƤߤƲ������� - -5.2) PostgreSQL �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ� -���������ΤǤ����� - -������ιԤʤä���ĥ��pgsql-hackers �����ꥹ�Ȥ����äƤ������������� -�ơ��椯�椯�Ϥ���������ĥ�� contrib/ ���֥ǥ��쥯�ȥ��������뤳�Ȥˤʤ�Ǥ� -�礦�� - -5.3) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽ޤ����� - -�С������7.3�ʹߤ�PostgreSQL�Ǥϡ��ơ��֥���֤��ؿ��� C, PL/PgSQL�������� SQL -�ˤƴ����˥��ݡ��Ȥ��ޤ����ܤ����ϥץ�����ޥ����ɤξ���Ƥ���������C����� -���줿ɽ���֤��ؿ������꤬contrib/tablefunc����ˤ���ޤ��� - -5.4) ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ� -�Ǥ����� - -�����Ĥ��� Makefile �����롼�ɡ��ե�������Ф���Ŭ�ڤʰ�¸�ط�����äƤ��� -����make clean �Ƥ���⤦���� make ��Ԥʤ�ʤ��ƤϤʤ�ޤ��⤷��GCC -�Ȥ��Ǥ���� configure �� --enable-depend ���ץ�����Ȥäơ�����ѥ���� -��¸�ط���ưŪ��Ĵ�٤����뤳�Ȥ�Ǥ��ޤ��� - -������������������������������������������������������������������������������ - + _________________________________________________________________ + + PostgreSQL�γ�ĥ�ˤĤ��Ƥμ��� + + 5.1) ��ʬ�ǽ��桼������ؿ��� psql + ����Ǽ¹Ԥ���ȥ���������פ��Ƥ��ޤ��ΤϤʤ��Ǥ����� + + ����Ͽ����ȹͤ����ޤ������ޤ��ǽ�ˡ����������桼������ؿ���ñ�Ȥ� + �ƥ��ȥץ������ˤ��ƻ�ƤߤƲ������� + + 5.2) PostgreSQL + �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ˹��������Τ + Ǥ����� + + ������ιԤʤä���ĥ��pgsql-hackers + �����ꥹ�Ȥ����äƤ��������������ơ��椯�椯�Ϥ���������ĥ�� + contrib/ ���֥ǥ��쥯�ȥ��������뤳�Ȥˤʤ�Ǥ��礦�� + + 5.3) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽�ޤ����� + + �С������7.3�ʹߤ�PostgreSQL�Ǥϡ��ơ��֥���֤��ؿ��� C, + PL/PgSQL�������� SQL + �ˤƴ����˥��ݡ��Ȥ��ޤ����ܤ����ϥץ�����ޥ����ɤξ���Ƥ������� + ��C��������줿ɽ���֤��ؿ������꤬contrib/tablefunc����ˤ���ޤ��� + + 5.4) + ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ�� + Ǥ����� + + �����Ĥ��� Makefile + �����롼�ɡ��ե�������Ф���Ŭ�ڤʰ�¸�ط�����äƤ��ޤ���make + clean �Ƥ���⤦���� make ��Ԥʤ�ʤ��ƤϤʤ�ޤ��⤷��GCC + �Ȥ��Ǥ���� configure �� --enable-depend + ���ץ�����Ȥäơ�����ѥ���˰�¸�ط���ưŪ��Ĵ�٤����뤳�Ȥ�Ǥ� + �ޤ��� + _________________________________________________________________ + [������ ���ܸ��Ǥ�����ˤĤ��Ƥϰʲ����̤�Ǥ��� �ǽ�������: 2005ǯ01��12�� ������: ��¼ �� (Jun Kuwamura <juk at PostgreSQL.jp>) - ����FAQ�������κ����ˤ����궨�ϤƤ������ä�����(�ɾΤ�ά�����Ƥ��������ޤ�): + ����FAQ�������κ����ˤ����궨�ϤƤ������ä�����(�ɾΤ�ά�����Ƥ�������ޤ�): - ���� ̭(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>) + ���� �(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>) �а� ã��(Tatsuo ISHII <t-ishii at sra.co.jp>) ��ƣ �ο�(Tomohito SAITOH <tomos at elelab.nsc.co.jp>) �Ͼ� ȥ(Hajime BABA <baba at kusastro.kyoto-u.ac.jp>) ���� �칬(Kazuyuki OKAMOTO <kokamoto at itg.hitachi.co.jp>) ���� ����(Shoichi Kosuge <s-kosuge at str.hitachi.co.jp>) ���� ��Ƿ(Yoshiyuki YAMASHITA <dica at eurus.dti.ne.jp>) - �� ����Ϻ(Sintaro SAKAI <s_sakai at mxn.mesh.ne.jp>) + � ����Ϻ(Sintaro SAKAI <s_sakai at mxn.mesh.ne.jp>) ���� ����(Masami OGOSHI <ogochan at zetabits.com>) ���� �ӹ�(Toshiyuki ISHIKAWA <tosiyuki at gol.com>) - ���� �й�(Shigehiro HONDA <fwif0083 at mb.infoweb.ne.jp>) + ���� �й(Shigehiro HONDA <fwif0083 at mb.infoweb.ne.jp>) ���� �����(Jun SESE <sesejun at linet.gr.jp>) ��ë �ѹ�(Hidetaka KAMIYA <hkamiya at catvmics.ne.jp>) ���� ��(Atsushi SUGAWARA <asugawar at f3.dion.ne.jp>) ���� ����(Kaori Inaba <i-kaori at sra.co.jp>) �а� ã��(Tatsuo Ishii <t-ishii at sra.co.jp>) - ��Ϥ��ᡢ�ݥ��ȥ��쥹�˴ؤ�������˭�٤����ܸ�ݥ��ȥ��쥹�����ꥹ�ȡ� -�����Τ��ä������äƤ��줿 JF(Linux Japanese FAQ Mailing List)�ץ��������ȡ�FreeBSD �ɥ�����ơ������ץ��������ȡ� + ��Ϥ��ᡢ�ݥ��ȥ��쥹�˴ؤ���������٤����ܸ�ݥ��ȥ��쥹�����ꥹ�ȡ� +�����Τ�ä������äƤ��줿 JF(Linux Japanese FAQ Mailing List)�ץ��������ȡ�FreeBSD �ɥ����ơ������ץ��������ȡ� ����¾��ľ�ܤ��뤤�ϴ���Ū�ˤ�����äƤ��뤹�٤ƤΥ����ץ������ߥ�˥ƥ����γ�����˴��դ��ޤ��� ���ܸ��ǤΤ���ʸ��ϡ��ʲ�����⤿�ɤ�ޤ��� @@ -1410,4 +1526,3 @@ PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ� �ʤ������������˴ؤ��뤴�ո���(juk at PostgreSQL.jp)�ޤǤ��������� ] - diff --git a/doc/FAQ_polish b/doc/FAQ_polish index f98902093c5..b2be9d9bf68 100644 --- a/doc/FAQ_polish +++ b/doc/FAQ_polish @@ -165,7 +165,7 @@ PostgreSQL Data Base Management System - Portions copyright (c) 1996-2002, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its @@ -747,8 +747,7 @@ DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak: BEGIN; LOCAL TABLE old_table; - SELECT ... -- wybierz wszystkie kolumny poza ta jedna kt�rej chcesz sie po -zbyc + SELECT ... -- wybierz wszystkie kolumny poza ta jedna kt�rej chcesz sie pozbyc INTO TABLE new_table FROM old_table; DROP TABLE old_table; @@ -770,8 +769,7 @@ zbyc Maksymalny rozmiar dla rzedu? 1.6 TB Maksymalny rozmiar pola? 1 GB Maksymalna liczba rzed�w w tabeli? nieograniczona - Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w ko -lumn + Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w kolumn Makasymalna liczba indeks�w na tabeli? nieograniczona Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja @@ -807,8 +805,7 @@ lumn Strona danych w PostgreSQL zajmuje 8192 bajt�w (8 KB), wiec: 8192 bajt�w na strone - --------------------- = 128 rzed�w na jedna strone w bazie (zaokraglone w - d�l/) + --------------------- = 128 rzed�w na jedna strone w bazie (zaokraglone w d�l/) 64 bajt�w na rzad 100000 rzed�w danych @@ -858,6 +855,7 @@ lumn zl/aczen (join). Sekwencyjne przeszukiwanie po kt�rym nastepuje sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu na duzej tabeli. + Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/ indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeks�w, mozliwe @@ -952,13 +950,10 @@ lumn Type Nazwa wewnetrzna Uwagi -------------------------------------------------- -VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma -tutaj wypel/niania -CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug -osci +VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie matutaj wypel/niania +CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ugosci TEXT text bez limitu na dl/ugosc l/ancucha -BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte - safe) +BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte safe) "char" char 1 znak Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach @@ -970,6 +965,7 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca na dysku moze byc mniejsze niz oczekiwane. + VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuch�w o r�znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest najlepszy dla l/ancuch�w o dowolnej dl/ugosci, nie przekraczajacej @@ -1229,13 +1225,14 @@ SELECT * 4.27) Jakie sa mozliwosci replikacji w PostgreSQL? - Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala - jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie - te zmiany odczytywac. Na stronie - http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich - lista. Replikacja typu multi-master jest w trakcie prac, opis projektu - znajduje sie pod adresem: - http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ + pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a slave + moze jedynie te zmiany odczytywac. Na stronie + http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie + ich lista. Replikacja typu multi-master jest w trakcie prac, opis + projektu znajduje sie pod adresem: + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + 4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL? * contrib/pgcrypto zawiera wiele funkcji za pomoca, kt�rych mozemy @@ -1257,22 +1254,26 @@ SELECT * 5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca pamiec (dump core)? - Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj najpierw - przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie. + Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj + najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym + programie. + 5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL? - Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy - prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/. + Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy + prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/. + 5.3) Jak napisac funkcje C zwracajaca krotke (tuple)? - W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni - wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac - wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele - zostal/ umieszczony w contrib/tablefunc. + W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w + pelni wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby + uzyskac wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej + tabele zostal/ umieszczony w contrib/tablefunc. + 5.4) Zmienil/em plik zr�dl/owy. Dlaczego po rekompilacji nie widac zmiany? - Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plik�w - nagl/�wkowych (include files). Wykonaj najpierw make clean, a nastepnie - ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy - wykonywaniu configure aby kompilator m�gl/ okreslic zaleznosci - samodzielnie. + Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla + plik�w nagl/�wkowych (include files). Wykonaj najpierw make clean, a + nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji + --enable-depend przy wykonywaniu configure aby kompilator m�gl/ + okreslic zaleznosci samodzielnie. diff --git a/doc/FAQ_russian b/doc/FAQ_russian index 2f106f30d22..6089d606137 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -520,11 +520,11 @@ Proizvol'noj stroki? Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih - kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. - Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to - vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete - kolichestva neobhodimyh strok na moment vypolneniya SELECT, - ispol'zujte kursor i FETCH. + kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. Esli est' + kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to vozmozhno, chto + ves' zapros vypolnen i ne budet. Esli vy ne znaete kolichestva + neobhodimyh strok na moment vypolneniya SELECT, ispol'zujte kursor i + FETCH. To SELECT a random row, use: SELECT col @@ -821,10 +821,8 @@ TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak - stroki v tablice byli izmeneny ili peregruzheny. - - TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na - fizicheskie zapisi. + stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya + indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi. 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in AllocSetAlloc()"? diff --git a/doc/FAQ_turkish b/doc/FAQ_turkish index 47a3188674d..50634d0573b 100644 --- a/doc/FAQ_turkish +++ b/doc/FAQ_turkish @@ -1,480 +1,690 @@ -PostgreSQL i�in S�k�a Sorulan Sorular (SSS) - -Son g�ncelleme : 15 Kas�m 2004 Pazartesi - 14:47:20 - -Current maintainer: Bruce Momjian ([email protected]) - -�evirenler : Devrim G�nd�z ([email protected]) -Nicolai Tufar ([email protected]) -Volkan YAZICI ([email protected]) - -Bu belgenin en g�ncel hali, http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve -http://www.gunduz.org/seminer/pg/FAQ_turkish.html adreslerinde g�r�lebilir. - -Platforma �zel sorular�n�z, http://www.PostgreSQL.org/docs/index.html adresinde yan�tlan�r. -Genel Sorular -1.1) PostgreSQL nedir? Nas�l okunur? -1.2) PostgreSQL'in haklar� nedir? -1.3) PostgreSQL, hangi Unix platformlar�nda �al���r? -1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? -1.5) PostgreSQL'i nereden indirebilirim? -1.6) Deste�i nereden alabilirim? -1.7) En son s�r�m� nedir? -1.8) Hangi belgelere ula�abilirim? -1.9) Bilinen hatalar ya da eksik �zelliklere nereden ulasabilirim? -1.10) Nas�l SQL ��renebilirim? -1.11) PostgreSQL 2000 y�l�na uyumlu mudur? -1.12) Geli�tirme tak�m�na nas�l kat�labilirim?? -1.13) Bir hata raporunu nas�l g�nderebilirim? -1.14) PostgreSQL, di�er VTYS(DBMS) lerle nas�l kar��la�t�r�labilir? -1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? -Kullan�c�/istemci Sorular� -2.1) PostgreSQL i�in ODBC s�r�c�leri var m�? -2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? -2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? -2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? -Y�netimsel Sorular -3.1) PostgreSQL'i /usr/local/pgsql dizininden ba�ka dizinlere nas�l kurabilirim? -3.2) Postmaster'� ba�latt���mda Bad System Call ya da core dumped mesaj� al�yorum. Neden? -3.3) Postmaster'� ba�latt���mda, IpcMemoryCreate hatas� al�yorum. Neden? -3.4) Postmaster'�, ba�latt���mda, IpcSemaphoreCreate hatas� al�yorum. Neden? -3.5) Di�er bilgisayarlar�n benim PostgreSQL veritaban� sunucuma ba�lant�lar�n� nas�l kontrol edebilirim? -3.6) Veritaban� motorunu daha iyi ba�ar�m icin nas�l ayarlayabilirim? -3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? -3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� al�yorum. Neden? -3.9) pgsql_tmpdizinin i�indeki dosyalar nelerdir? -3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek zorunday�m? -3.11) Nas�l bir donan�m kullanmal�y�m?br> -��letimsel Sorular -4.1) Binary cursor ve normal cursor aras�ndaki fark ned�r? -4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? -4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim? -4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? -4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? -4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? -4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l g�rebilirim? -4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? -4.9) Query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme soktu�unu nas�l g�rebilirim? -4.10) R-tree index nedir? -4.11) Genetic Query Optimizer nedir? -4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? Bu -b�y�k/k���k harfe duyarl� aramalar i�in index'i nas�l kullanabilirim? -4.13) Bir sorguda, bir alan�n NULL oldu�unu nas�l ortaya ��karabilirim? -4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? -4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? -4.15.2) Serial giri�inin de�erini nas�l alabilirim? -4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? -4.15.4) Neden sequence say�lar�n transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL -kolonumdaki say�larda atlamalar oluyor? -4.16) OID nedir? TID nedir? -4.17) PostgreSQL' de kullan�lan baz� terimlerin anlamlar� nelerdir? -4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� al�yorum? -4.19) Hangi PostgreSQL s�r�m�n� �al�st�rd���m� nas�l g�rebilirim? -4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" hatas�n� veriyor? -4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l yarat�r�m? -4.22) Neden IN kullanan subquery'lerim �ok yava�? -4.23) Outer join i�lemini nas�l yapabilirim? -4.24) Ayn� anda birden fazla veritaban�nda nas�l i�lem yapabilirim? -4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? -4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? -4.27) Hangi �ifreleme se�enekleri bulunmaktad�r? -PostgreSQL �zelliklerini Geni�letmek -5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden core dump ediyor? -5.2) PostgreSQL'e nas�l yeni veri tipleri/fonksiyonlar ekleyebilirim? -5.3) Bir tuple d�nd�rmek i�in bir C fonksiyonunu nas�l yazar�m? -5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men de�i�iklik ge�erli olmuyor. Neden? -Genel Sorular -1.1) PostgreSQL nedir? Nas�l okunur? - -PostgreSQL, Post-Gres-Q-L. olarak okunur - -PostgreSQL, yeni-nesil VTYS ara�t�rma prototipi olan POSTGRES veritaban� y�netim sisteminin geli�tirilmesidir. -POSTGRES'in zengin veri tiplerini ve g��l� veri modelini tutarken, SQL'in geli�tirilmi� alt k�mesi olan PostQuel dilini -kullan�r. PostgreSQL �cretsizdir ve kaynak kodu a��k da��t�l�r. - -PostgreSQL, PostgreSQL geli�tirme listesine �ye olan bir Internet geli�tirici tak�m� taraf�ndan geli�tirilir. �u andaki -koordinat�r, Marc G. Fournier ([email protected]). (Bu tak�ma nas�l kat�lacag�n�z� ��renmek i�in 1.6 numaral� -maddeyi okuyunuz.) Bu tak�m, t�m PostgreSQL geli�iminden sorumludur. - -PostgreSQL 1.01 s�r�m�n�n yazarlar� Andrew Yu ve Jolly Chen idi. Bunlar�n d���nda bir ka� kisi de uyarlama, hata -ay�klama ve kodun geli�tirilmesi i�in �al�sm��t�. PostgreSQL'in t�redi�i orijinal Postgres kodu, lisans, lisans�st� ve -akademisyenler taraf�ndan, Professor Michael Stonebraker (University of California, Berkeley) koordinat�rl�g�nde -yaz�lm��t�r. - -Berkley'deki yaz�l�m�n ad� Postgres idi. SQL uyumlulu�u 1995'te eklenince, ad� Postgres 95 oldu. 1996 y�l�n�n -sonlar�nda ad� PostgreSQL olarak de�i�tirildi. -1.2) PostgreSQL'in haklar� nedir? - -PostgreSQL Data Base Management System - -Portions copyright (c) 1996-2002, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the -University of California - -Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and -without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the -following two paragraphs appear in all copies. - -IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR -CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF -THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" -BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR -MODIFICATIONS. - -�stteki metin klasik a��k-kod lisans� olan BSD lisans�d�r. Kaynak kodun nas�l kullan�labilece�ine dair s�n�rlamalar� -yoktur. Bu lisans� seviyoruz. De�i�tirme niyetimiz bulunmamaktad�r. -1.3) PostgreSQL, hangi Unix platforlar�nda �al���r? - -Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i �al��t�racakt�r. Ayr�nt�l� bilgi i�in kurulum belgelerine -bakabilirsiniz. -1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? - -PostgreSQL 8.0 s�r�m� ile , PostgreSQL art�k Win2000, WinXP ve Win2003 gibi Microsoft Windows NT tabanl� i�letim -sistemlerinde do�al olarak �al��maya ba�lam��t�r. Paketlenmi� bir kurulum program�, http://pgfoundry.org/projects/pginstaller -adresinden indirilebilir. - -Ayr�ca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktad�r. -1.5) PostgreSQL'i nereden indirebilirim? - -PostgreSQL i�in ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub adresidir. Yans�lar i�in, ana web sayfam�za -bakabilirsiniz. -1.6) Nereden destek alabilirim? - -Ana e-posta listesi : [email protected]. PostgreSQL konusundaki tart��malara a��kt�r. �ye olmak i�in, -a�a��daki sat�rlar� e-postan�z�n body k�sm�na (konu k�sm�na de�il) yaz�p, [email protected] adresine -g�nderin: + PostgreSQL i�in S�k�a Sorulan Sorular (SSS) + + Son g�ncelleme : 15 Kas�m 2004 Pazartesi - 15:03:23 + + Current maintainer: Bruce Momjian ([email protected]) + + �evirenler : Devrim G�nd�z ([email protected]) + Nicolai Tufar ([email protected]) + Volkan YAZICI ([email protected]) + + Bu belgenin en g�ncel hali, + http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve + http://www.gunduz.org/seminer/pg/FAQ_turkish.html adreslerinde + g�r�lebilir. + + Platforma �zel sorular�n�z, http://www.PostgreSQL.org/docs/index.html + adresinde yan�tlan�r. + _________________________________________________________________ + + Genel Sorular + + 1.1) PostgreSQL nedir? Nas�l okunur? + 1.2) PostgreSQL'in haklar� nedir? + 1.3) PostgreSQL, hangi Unix platformlar�nda �al���r? + 1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? + 1.5) PostgreSQL'i nereden indirebilirim? + 1.6) Deste�i nereden alabilirim? + 1.7) En son s�r�m� nedir? + 1.8) Hangi belgelere ula�abilirim? + 1.9) Bilinen hatalar ya da eksik �zelliklere nereden ulasabilirim? + 1.10) Nas�l SQL ��renebilirim? + 1.11) PostgreSQL 2000 y�l�na uyumlu mudur? + 1.12) Geli�tirme tak�m�na nas�l kat�labilirim?? + 1.13) Bir hata raporunu nas�l g�nderebilirim? + 1.14) PostgreSQL, di�er VTYS(DBMS) lerle nas�l kar��la�t�r�labilir? + 1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? + + Kullan�c�/istemci Sorular� + + 2.1) PostgreSQL i�in ODBC s�r�c�leri var m�? + 2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar + bulunmaktad�r? + 2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? + 2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri + kullanabilirim? + + Y�netimsel Sorular + + 3.1) PostgreSQL'i /usr/local/pgsql dizininden ba�ka dizinlere nas�l + kurabilirim? + 3.2) Postmaster'� ba�latt���mda Bad System Call ya da core dumped + mesaj� al�yorum. Neden? + 3.3) Postmaster'� ba�latt���mda, IpcMemoryCreate hatas� al�yorum. + Neden? + 3.4) Postmaster'�, ba�latt���mda, IpcSemaphoreCreate hatas� al�yorum. + Neden? + 3.5) Di�er bilgisayarlar�n benim PostgreSQL veritaban� sunucuma + ba�lant�lar�n� nas�l kontrol edebilirim? + 3.6) Veritaban� motorunu daha iyi ba�ar�m icin nas�l ayarlayabilirim? + 3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? + 3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� + al�yorum. Neden? + 3.9) pgsql_tmpdizinin i�indeki dosyalar nelerdir? + 3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload + i�lemi ger�ekle�tirmek zorunday�m? + 3.11) Nas�l bir donan�m kullanmal�y�m?br> + + ��letimsel Sorular + + 4.1) Binary cursor ve normal cursor aras�ndaki fark ned�r? + 4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? + 4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini + nas�l alabilirim? + 4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? + 4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? + 4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk + alan� gereklidir? + 4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l + g�rebilirim? + 4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? + 4.9) Query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme + soktu�unu nas�l g�rebilirim? + 4.10) R-tree index nedir? + 4.11) Genetic Query Optimizer nedir? + 4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k + harfe duyars�z aramalar� nas�l yapabilirim? Bu b�y�k/k���k harfe + duyarl� aramalar i�in index'i nas�l kullanabilirim? + 4.13) Bir sorguda, bir alan�n NULL oldu�unu nas�l ortaya + ��karabilirim? + 4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? + 4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan + yaratabilirim? + 4.15.2) Serial giri�inin de�erini nas�l alabilirim? + 4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? + 4.15.4) Neden sequence say�lar�n transaction i�leminin iptalinden + sonra yeniden kullan�l�yor? Neden sequence/SERIAL kolonumdaki + say�larda atlamalar oluyor? + 4.16) OID nedir? TID nedir? + 4.17) PostgreSQL' de kullan�lan baz� terimlerin anlamlar� nelerdir? + 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� + al�yorum? + 4.19) Hangi PostgreSQL s�r�m�n� �al�st�rd���m� nas�l g�rebilirim? + 4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" + hatas�n� veriyor? + 4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l + yarat�r�m? + 4.22) Neden IN kullanan subquery'lerim �ok yava�? + 4.23) Outer join i�lemini nas�l yapabilirim? + 4.24) Ayn� anda birden fazla veritaban�nda nas�l i�lem yapabilirim? + 4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? + 4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo + yaratma/kald�rma i�lemlerini yapam�yoruz? + 4.27) Hangi �ifreleme se�enekleri bulunmaktad�r? + + PostgreSQL �zelliklerini Geni�letmek + + 5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m + zaman neden core dump ediyor? + 5.2) PostgreSQL'e nas�l yeni veri tipleri/fonksiyonlar ekleyebilirim? + 5.3) Bir tuple d�nd�rmek i�in bir C fonksiyonunu nas�l yazar�m? + 5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men + de�i�iklik ge�erli olmuyor. Neden? + _________________________________________________________________ + + Genel Sorular + + 1.1) PostgreSQL nedir? Nas�l okunur? + + PostgreSQL, Post-Gres-Q-L. olarak okunur + + PostgreSQL, yeni-nesil VTYS ara�t�rma prototipi olan POSTGRES + veritaban� y�netim sisteminin geli�tirilmesidir. POSTGRES'in zengin + veri tiplerini ve g��l� veri modelini tutarken, SQL'in geli�tirilmi� + alt k�mesi olan PostQuel dilini kullan�r. PostgreSQL �cretsizdir ve + kaynak kodu a��k da��t�l�r. + + PostgreSQL, PostgreSQL geli�tirme listesine �ye olan bir Internet + geli�tirici tak�m� taraf�ndan geli�tirilir. �u andaki koordinat�r, + Marc G. Fournier ([email protected]). (Bu tak�ma nas�l + kat�lacag�n�z� ��renmek i�in 1.6 numaral� maddeyi okuyunuz.) Bu tak�m, + t�m PostgreSQL geli�iminden sorumludur. + + PostgreSQL 1.01 s�r�m�n�n yazarlar� Andrew Yu ve Jolly Chen idi. + Bunlar�n d���nda bir ka� kisi de uyarlama, hata ay�klama ve kodun + geli�tirilmesi i�in �al�sm��t�. PostgreSQL'in t�redi�i orijinal + Postgres kodu, lisans, lisans�st� ve akademisyenler taraf�ndan, + Professor Michael Stonebraker (University of California, Berkeley) + koordinat�rl�g�nde yaz�lm��t�r. + + Berkley'deki yaz�l�m�n ad� Postgres idi. SQL uyumlulu�u 1995'te + eklenince, ad� Postgres 95 oldu. 1996 y�l�n�n sonlar�nda ad� + PostgreSQL olarak de�i�tirildi. + + 1.2) PostgreSQL'in haklar� nedir? + + PostgreSQL Data Base Management System + + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of California + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose, without fee, and without a written + agreement is hereby granted, provided that the above copyright notice + and this paragraph and the following two paragraphs appear in all + copies. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, + INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND + ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, + UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + + �stteki metin klasik a��k-kod lisans� olan BSD lisans�d�r. Kaynak + kodun nas�l kullan�labilece�ine dair s�n�rlamalar� yoktur. Bu lisans� + seviyoruz. De�i�tirme niyetimiz bulunmamaktad�r. + + 1.3) PostgreSQL, hangi Unix platforlar�nda �al���r? + + Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i + �al��t�racakt�r. Ayr�nt�l� bilgi i�in kurulum belgelerine + bakabilirsiniz. + + 1.4) Hangi Unix olmayan uyarlamalar� bulunmaktad�r? + + PostgreSQL 8.0 s�r�m� ile , PostgreSQL art�k Win2000, WinXP ve Win2003 + gibi Microsoft Windows NT tabanl� i�letim sistemlerinde do�al olarak + �al��maya ba�lam��t�r. Paketlenmi� bir kurulum program�, + http://pgfoundry.org/projects/pginstaller. adresinden indirilebilir. + + Ayr�ca, http://forge.novell.com adresinde Novell Netware 6 portu + bulunmaktad�r. + + 1.5) PostgreSQL'i nereden indirebilirim? + + PostgreSQL i�in ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub + adresidir. Yans�lar i�in, ana web sayfam�za bakabilirsiniz. + + 1.6) Nereden destek alabilirim? + + Ana e-posta listesi : [email protected]. PostgreSQL + konusundaki tart��malara a��kt�r. �ye olmak i�in, a�a��daki sat�rlar� + e-postan�z�n body k�sm�na (konu k�sm�na de�il) yaz�p, + [email protected] adresine g�nderin: subscribe end -Ayn� zamanda, bir digest listesi bulunmaktad�r. Bu listeye �ye olmak i�in, [email protected] -adresine, body k�sm�nda - + Ayn� zamanda, bir digest listesi bulunmaktad�r. Bu listeye �ye olmak + i�in, [email protected] adresine, body + k�sm�nda subscribe end -yazan bir e-posta atman�z yeterli olacakt�r. - -Digest postalar, ana liste 30k civar�nda e-postaya ula�t���nda �yelere g�nderilmektedir. - -Bug'lar i�in bir e-posta listesi bulunmaktad�r. Bu listeye �ye olmak i�in, [email protected] adresine, -body k�sm�nda - + yazan bir e-posta atman�z yeterli olacakt�r. + + Digest postalar, ana liste 30k civar�nda e-postaya ula�t���nda �yelere + g�nderilmektedir. + + Bug'lar i�in bir e-posta listesi bulunmaktad�r. Bu listeye �ye olmak + i�in, [email protected] adresine, body k�sm�nda subscribe end -yazan bir e-posta atman�z yeterli olacakt�r. - -Ayn� zamanda, geli�tiriciler i�in tart��ma listesi bulunmaktad�r. Bu listeye �ye olmak i�in, [email protected] adresine, body k�sm�nda - + yazan bir e-posta atman�z yeterli olacakt�r. + + Ayn� zamanda, geli�tiriciler i�in tart��ma listesi bulunmaktad�r. Bu + listeye �ye olmak i�in, [email protected] adresine, + body k�sm�nda subscribe end -yazan bir e-posta atman�z yeterli olacakt�r. - -Bunun d���ndaki e-posta listelerine ve PostgreSQL hakk�nda bilgiye, PostgreSQL WWW ana sayfas�ndan ulasabilirsiniz: -http://www.PostgreSQL.org - -Ayn� zamanda, EFNet �zerinde, #PostgreSQL adl� bir IRC kanal� bulunmaktad�r. Bunun i�in, irc -c '#PostgreSQL' "$USER" -irc.phoenix.net Unix komutunu kullanabilirsiniz. - -Ticari destek veren firmalar�n listesine - -http://www.postgresql.org/users-lounge/commercial-support.html - -adresinden ula�bilirsiniz. -1.7) En son s�r�m nedir? - -PostgreSQL'in son s�r�m� 7.4.6'd�r. - -Her 6-8 ayda ana s�r�m ��kar�lmas� planlanmaktad�r. -1.8) Hangi belgelere ula�abilirim? - -Da��t�m�n i�inde, kitap��klar, kitap��k sayfalar� ve baz� k���k �rnekler verilmektedir. /doc dizinine bak�n�z. Ayr�ca, -bu el kitap��klar�n� online olarak http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz. - -http://www.PostgreSQL.org/docs/awbook.html ve http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplar� -bulunmaktad�r. PostgreSQL kitablar�n�n listesine, http://www.ca.PostgreSQL.org/books/ adresinden ula�aiblirsiniz. -Ayr�ca, PostgreSQL konusundaki teknik makalelere de http://techdocs.PostgreSQL.org/ adresinden ula�abilirsiniz. - -psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, aggregate'ler, vb. ile ilgili g�zel komutlar� vard�r. - -Web sitemiz daha fazla belgeyi i�ermektedir. -1.9) Bilinen hatalar ya da eksik �zelliklere nereden ula�abilirim? - -PostgreSQL SQL-92 uyumlulu�u i�indedir, standartlardan fazla da �zellikleri bulunmaktad�r. Bilinen hatalar, eksik -�zellikler ve gelecek ile ilgili planlar i�in TODO listesine bak�n�z. -1.10) Nas�l SQL ��renebilirim? - -http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL �gretecektir. http://www.commandprompt.com/ppbook -adresinde de bir baska PostgreSQL kitab� bulunmaktad�r. - -http://www.intermedia.net/support/sql/sqltut.shtm, -http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM http://sqlcourse.com ve http://sqlcourse2.com -adreslerinde de g�zel belgeler bulunmaktad�r. - -Bir ba�kas� da, http://members.tripod.com/er4ebus/sql/index.htm adresinde bulunan "Teach Yourself SQL in 21 Days, -Second Edition" kitab�d�r. - -Baz� kullan�c�lar�m�z da �u kitab� �nermektedirler: "The Practical SQL Handbook, Bowman, Judith S., et -al.,Addison-Wesley". Baz�lar� ise "The Complete Reference SQL, Groff et al., McGraw-Hill" kitab�n� �nermektedirler. -1.11) PostgreSQL 2000 y�l�na uyumlu mudur? - -Evet. -1.12) Geli�tirme tak�m�na nas�l kat�labilirim? - -�ncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da da��t�m�n i�indeki PostgreSQL Developer belgesini -okuyun. Ard�ndan, pgsql-hackers ve pgsql-patches listelerine �ye olun. ���nc� olarak da, pgsql-pacthes listesine y�ksek -kalitede yamalar g�nderin. - -PostgreSQL CVS ar�ivine eri�im izni olan, 10 kadar geli�tirici bulunmaktad�r. Hepsi defalarca, di�er ki�ilerin -yapt���ndan �ok daha y�ksek-kaliteli yamalar g�ndermi�lerdir. Ayr�ca biz de bu geli�tiricilerin ekledikleri yamalar�n -y�ksek kalitede oldu�una g�veniyoruz. -1.13) Bir hata raporunu nas�l g�nderebilirim? - -PostgreSQL BugTool sayfas�na gidiniz. O sayfada bir bug bildirmek i�in neleri yapman�z gerekti�i anlat�lm��t�r. - -Ayr�ca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir PostgreSQL s�r�m� ya da yamas� olup olmad���ni kontrol -ediniz. -1.14) PostgreSQL, diger DBMS'lerle nas�l kar��last�r�labilir? - -Bir yaz�l�m�n g�c�n� �l�mek i�in �e�itli yollar vard�r: Yaz�l�m�n �zellikleri, ba�ar�m�, g�venilirli�i, deste�i ve -�creti. - -�zellikler: - -PostgreSQL mevcut b�y�k ticari veritabanlar�n�n, transaction, subselect, trigger, view, foreign key referential -integrity ve sophisticated locking gibi (user-defined types), rules, inheritance ve lock cak��malar�n� d���rmek i�in -multi-version uyumluluk �zellikleri bulunmaktad�r. - -Performans (Ba�ar�m): - -PostgreSQL, di�er ticari ve a��k kaynak kodlu veritabanlar�yla yak�n ba�ar�m� sa�lar. Baz� a��lardan daha h�zl�d�r, -di�er a��lardan da yava�t�r. MySQL ya da daha zay�f veritabanlar� ile kar��la�t�r�ld���nda, INSERT/UPDATE i�lemlerinde, -transaction bazl� �al�st���m�z i�in daha yava��z. MySQL, yukar�daki "�zellikler" k�sm�nda belirtilenlerden hi� birine -sahip de�ildir. Biz, ba�ar�m�m�z� her s�r�mde artt�rsak da, esneklik ve geli�mi� �zellikler i�in yap�lanm�� durumday�z. -PostgreSQL'i MySQL ile kar��la�t�ran �u web sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html - -G�venilirlik: - -DBMS'lerin g�venilir olmas� gerketi�i, yoksa de�erleri olmayaca��n� d���n�yoruz. �ok iyi test edilmi�, dengeli �al�san -minimum say�da hata i�eren kod sunmaya �al���yoruz. Her bir s�r�m en az 1 ayl�k beta testlerinden ge�irilmektedir. -S�r�m ge�mi�ine bakarsan�z, �retime haz�r, dengeli ve kararl� kodlar sundu�umuzu g�rebilirsiniz. Bu alanda, di�er -veritaban� yaz�l�mlar�na �st�nl���m�z oldu�una inanmaktay�z. - -Destek: - -E-posta listemiz, olu�an herhangi bir sorunu ��zebilecek b�y�k say�da kullan�c� ve geli�tirici grubunu i�erir. -Sorununuz i�in, en az bir ticari veritaban� kadar rahat ��z�m bulabilirsiniz. Gelistiricilere, kullan�c� grubuna, -belgelere ve kaynak koda direk olarak eri�ebilme, PostgreSQL deste�ini, di�er DBMS'lere g�re daha �nemli k�lar. -Gereksinimi olanlara, ticari destek verilebilir. (Destek i�in 1.6 b�l�m�ne bak�n�z.) - -Fiyat: - -Ticari ve ticari olmayan t�m kullan�mlar�n�z i�in PostgreSQL �cretsizdir. Kodumuzu, yukar�da belirtilen BSD-stili -lisanstaki s�n�rlamalar hari�, �r�n�n�z�n i�ine ekleyebilirsiniz. -1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? - -PostgreSQL, 1996 y�l�ndan beri 1. s�n�f altyap�ya sahiptir. Bunun i�in, y�llar boyu �al���p bu altyap�y� olu�turup -y�neten Marc Fournier'e te�ekk�rler. - -Bir a��k kaynak kodlu proje i�in, kaliteli altyap� �ok �nemlidir. Bu altyap�, projenin kesilmesini �nler ve projenin -ilerlemesini h�zland�r�r. - -Tabii ki bu altyap� ucuz de�ildir. ��lerin y�r�mesi i�in �e�itli y�l�k ve anl�k harcamalar�m�z olmaktad�r. E�er siz ya -da �irketinizin bu �abam�za ba���ta bulunabilecek paras� varsa, l�tfen http://store.pgsql.com adresine gidiniz -ve ba���ta, hibede bulununuz. - -Web sayfas�n�n 'PostgreSQL Inc.' den bahsetmesine ra�men, "katk�da bulunanlar" (contributors) maddesi sadece PostgreSQL -projesini desteklemek i�indir ve belirli bir �irketin para kayna�� de�ildir. isterseniz, ba�lant� adresine bir �ek -g�nderebilirsiniz. -Kullan�c�/�stemci Sorular� -2.1) PostgreSQL icin ODBC s�r�c�leri var m�? - -iki tane ODBC s�r�c�s� bulunmaktad�r: PsqlODBC ve OpenLink ODBC. - -PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php adresinden indirebilirsiniz. - -OpenLink ODBC http://www.openlinksw.com adresinden al�nabilir.Bu s�r�c�, kendi standart ODBC istemci yaz�l�m� ile -�al�st���ndan, destekledikleri her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir. - -�cretsiz s�r�m� olmakla beraber, ticari kalitede destek almak isteyenlere satmak isteyeceklerdir. Sorular�n�z� l�tfen [email protected] adresine g�nderiniz. -2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar bulunmaktad�r? - -http://www.webreview.com/ adresinde, arka planda veritaban� �al�st�ran Web sayfalar� i�in giri� seviyesinde bilgi -bulunmaktad�r. - -Web ile b�t�nle�me i�in, PHP () m�kemmel bir arabirim sunar. - -Karma��k sorunlar i�in, �o�u kisi Perl arabirimini ve CGI.pm ya da mod_perl kullan�r. -2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? - -�e�itli grafik arabirimlerimiz bulunmaktad�r. Bunlar�n aras�nda, PgAccess (http://www.pgaccess.org/), PgAdmin II -(http://www.pgadmin.org/, sadece Win32 i�in), RHDB Admin (http://sources.redhat.com/rhdb/) ve Rekall -(http://www.thekompany.com/products/rekall/) bulunmaktad�r. Ayr�ca, PostgreSQL i�in web tabanl� bir arabirim olan -PHPPgAdmin (http://phppgadmin.sourceforge.net/) bulunmaktad�r. - -Daha ayr�nt�l� liste i�in http://techdocs.postgresql.org/guides/GUITools adresine bakabilirsiniz. -2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? - - * C (libpq) - * Embedded C (ecpg) - * Java (jdbc) - * Python (PyGreSQL) - * TCL (libpgtcl) - -Di�erleri i�in, http://gborg.postgresql.org adresindeki Drivers/Interfaces b�l�m�ne bakabilirsiniz. -Y�netimsel Sorular -3.1) PostgreSQL'i, /usr/local/pgsql dizininden ba�ka dizinlere nas�l kurabilirim? - -configure beti�ini �al�st�r�rken, --prefix se�ene�ini veriniz. -3.2) postmaster'i baslatt�g�mda, a Bad System Call ya da core dumped mesaj� al�yorum. Neden? - -Bunun bir�ok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, �ekirdeginize System V uzant�lar�n�n kurulu olup -olmad�g�n� kontrol etmek olabilir. PostgreSQL shared memory ve semaphores i�in �ekirdek destegine gereksinim duyar. -3.3) postmaster'i ba�latt���mda, �pcMemoryCreate hatas� al�yorum. Neden? - -Ya �ekirde�inizde shared memory deste�iniz d�zg�nce yap�land�r�lmam��t�r, ya da �ekirde�inizdeki mevcut shared memory -miktar�n� b�y�tmeniz gerekecektir. Gereksinim duyaca��n�z miktar, mimarinize ve postmaster i�in ayarlad�g�n�z tampon -ile backend i�lemi say�s�na ba�l�d�r. T�m sistemler i�in, tamponlar ve i�lemlerde �ntan�ml� say�larla, ~ 1MB kadar yere -gereksinmeniz olacakt�r. PostgreSQL 7.3.2 Sistem Y�neticileri Rehberi'ne, shared memory ve semaphorelar hakk�ndaki -ayr�nt�l� bilgi i�in bakabilirsiniz. -3.4) postmaster'� ba�latt���mda, �pcSemaphoreCreate hatas� al�yorum. Neden? - -E�er hata, "�pcSemaphoreCreate: semget failed (No space left on device)" ise, �ekirde�iniz yeterli semaphore ile -yap�land�r�lmam�� demektir. Postgres, her bir potansiyel backend i�in bir semaphore gereksinimi duyar. Ge�ici bir -��z�m, postmaster� backend i�lemleri i�in daha az miktarda s�n�rla ba�latmak olabilir. -N'i varsay�lan de�er olan -32'den k���k bir de�erle ba�lat�n�z. Daha kal�c� bir ��z�m, �ekirde�inizin SEMMNS ve SEMMNI parametrelerini y�kseltmek -olacakt�r. - -�al��mayan semaphore'lar a��r veritaban� i�lemlerinde ��kme yaratabilirler. - -E�er hata mesaj�n�z ba�ka bir �ey ise, �ekirde�inizde semaphore deste�ini yap�land�rmam�� olabilirsiniz. Shared memory -ve semaphore'lar hakk�ndaki daha ayr�nt�l� bilgi i�in PostgreSQL 7.3.2 Sistem Y�neticileri Rehberi'ne bakabilirsiniz. -3.5) Diger bilgisayarlar�n benim PostgreSQL veritaban� sunucuma ba�lant�lar�n� nas�l kontrol edebilirim? - -�n tan�ml� olarak, PostgreSQL sadece yerel makineden Unix domain sockets kullanarak ba�lan�lmas�na izin verir. Diger -makineler, postmaster'a -i etiketini ge�irmezseniz ve $PGDATA/pg_hba.conf dosyas�n� d�zenleyerek host-based -authentication'a olanak vermezseniz, ba�lant� yapamayacaklard�r. -3.6) Veritabani motorunu daha iyi ba�ar�m i�in nas�l ayarlayabilirim? - -Index'ler sorgular� h�zland�rabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nas�l yorumlad���n� ve hangi index'leri -kulland���n� g�rmenize izin verir. - -E�er cok fazla INSERT i�lemi yap�yorsan�z, bunlar� b�y�k bir toplu i�lem dosyas�kullan�p COPY komutu ile veritaban�na -girmeyi deneyiniz. Bu, tekil INSERT'lerden daha h�zl�d�r. �kinci olarak, BEGIN WORK/COMMIT transaction blo�u i�inde -olmayan ifadeler kendi transaction'lar�ndaym�� gibi d���n�l�r. �oklu ifadeleri tek bir transaction blo�u i�inde -yapabilirsiniz. Bu, transaction overhead'ini d���recektir. Tek bir transaction blo�u i�inde birden �ok ifadeyi -�al��t�rmay� deneyebilirsiniz. Bu da ayn� �ekilde, transaction overhead'ini d���r�r. - -�e�itli ayarlama se�enekleri mevcuttur. fsync() i�lemini, postmaster'� -o -F se�ene�i ile ba�latarak devre d��� -b�rakabilirsiniz. Bu i�lem, fsync()'lerin her transactiondan sonra diski flush etmesini engelleyecektir. - -Ayn� zamanda, postmaster'i -B se�ene�i ile ba�lat�p, backend i�lemleri taraf�ndan kullan�lan shared memory buffers -say�lar�n� artt�rabilirsiniz. E�er bu parametreyi �ok y�ksek tutarsan�z, �ekirde�inizin shared memory b�lgesindeki -limiti a�ma olas�l���n�z y�z�nden postmaster ba�layamayabilir. Her bir tampon (buffer) 8K'd�r. �ntan�ml� say� ise 64 -tampondur. - -Ayn� �ekilde, backend'in -S se�ene�ini ge�ici s�ralamalar i�in backend s�re�leri taraf�ndan kullan�lacak haf�zay� -artt�rmak amac�yla kullanabilirsiniz. -S se�ene�i kilobayt cinsinden de�er al�r ve �n tan�ml� de�eri 512'dir (512 K) - -Tablolardaki veriyi bir index'e e�lemek amac�yla gruplama i�in CLUSTER komutunu kullanabilirsiniz. Ayr�nt�l� bilgi i�in -CLUSTER komutunun yard�m sayfas�na bakabilirsiniz. -3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? - -PostgreSQL, hata ay�klama amac�yla kullan�labilecek durum bilgisi rapor eden �e�itli �zeliklere sahiptir. - -�ncelikle, configure beti�ini --enable-cassert se�ene�iyle �al��t�r�rsan�z, bir �ok assert() backend cal��mas�n� -g�zlemler ve beklenmeyen bir durumda program� durdurur. - -Postmaster ve postgres �e�itli hata ay�klama se�eneklerine sahiptir. �ncelikle, postmaster'� ba�latt���n�zda, standart -��kt�y� ve hatalar� bir log dosyas�na y�nlendirdi�inize emin olun: - + yazan bir e-posta atman�z yeterli olacakt�r. + + Bunun d���ndaki e-posta listelerine ve PostgreSQL hakk�nda bilgiye, + PostgreSQL WWW ana sayfas�ndan ulasabilirsiniz: + http://www.PostgreSQL.org + + Ayn� zamanda, EFNet �zerinde, #PostgreSQL adl� bir IRC kanal� + bulunmaktad�r. Bunun i�in, irc -c '#PostgreSQL' "$USER" + irc.phoenix.net Unix komutunu kullanabilirsiniz. + + Ticari destek veren firmalar�n listesine + + http://www.postgresql.org/users-lounge/commercial-support.html + + adresinden ula�bilirsiniz. + + 1.7) En son s�r�m nedir? + + PostgreSQL'in son s�r�m� 7.4.6'd�r. + + Her 6-8 ayda ana s�r�m ��kar�lmas� planlanmaktad�r. + + 1.8) Hangi belgelere ula�abilirim? + + Da��t�m�n i�inde, kitap��klar, kitap��k sayfalar� ve baz� k���k + �rnekler verilmektedir. /doc dizinine bak�n�z. Ayr�ca, bu el + kitap��klar�n� online olarak http://www.PostgreSQL.org/docs/ + adresinden inceleyebilirsiniz. + + http://www.PostgreSQL.org/docs/awbook.html ve + http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplar� + bulunmaktad�r. PostgreSQL kitablar�n�n listesine, + http://www.ca.PostgreSQL.org/books/ adresinden ula�aiblirsiniz. + Ayr�ca, PostgreSQL konusundaki teknik makalelere de + http://techdocs.PostgreSQL.org/ adresinden ula�abilirsiniz. + + psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, + aggregate'ler, vb. ile ilgili g�zel komutlar� vard�r. + + Web sitemiz daha fazla belgeyi i�ermektedir. + + 1.9) Bilinen hatalar ya da eksik �zelliklere nereden ula�abilirim? + + PostgreSQL SQL-92 uyumlulu�u i�indedir, standartlardan fazla da + �zellikleri bulunmaktad�r. Bilinen hatalar, eksik �zellikler ve + gelecek ile ilgili planlar i�in TODO listesine bak�n�z. + + 1.10) Nas�l SQL ��renebilirim? + + http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL + �gretecektir. http://www.commandprompt.com/ppbook adresinde de bir + baska PostgreSQL kitab� bulunmaktad�r. + + http://www.intermedia.net/support/sql/sqltut.shtm, + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM + http://sqlcourse.com ve http://sqlcourse2.com adreslerinde de g�zel + belgeler bulunmaktad�r. + + Bir ba�kas� da, http://members.tripod.com/er4ebus/sql/index.htm + adresinde bulunan "Teach Yourself SQL in 21 Days, Second Edition" + kitab�d�r. + + Baz� kullan�c�lar�m�z da �u kitab� �nermektedirler: "The Practical SQL + Handbook, Bowman, Judith S., et al.,Addison-Wesley". Baz�lar� ise "The + Complete Reference SQL, Groff et al., McGraw-Hill" kitab�n� + �nermektedirler. + + 1.11) PostgreSQL 2000 y�l�na uyumlu mudur? + + Evet. + + 1.12) Geli�tirme tak�m�na nas�l kat�labilirim? + + �ncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da + da��t�m�n i�indeki PostgreSQL Developer belgesini okuyun. Ard�ndan, + pgsql-hackers ve pgsql-patches listelerine �ye olun. ���nc� olarak da, + pgsql-pacthes listesine y�ksek kalitede yamalar g�nderin. + + PostgreSQL CVS ar�ivine eri�im izni olan, 10 kadar geli�tirici + bulunmaktad�r. Hepsi defalarca, di�er ki�ilerin yapt���ndan �ok daha + y�ksek-kaliteli yamalar g�ndermi�lerdir. Ayr�ca biz de bu + geli�tiricilerin ekledikleri yamalar�n y�ksek kalitede oldu�una + g�veniyoruz. + + 1.13) Bir hata raporunu nas�l g�nderebilirim? + + PostgreSQL BugTool sayfas�na gidiniz. O sayfada bir bug bildirmek i�in + neleri yapman�z gerekti�i anlat�lm��t�r. + + Ayr�ca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir + PostgreSQL s�r�m� ya da yamas� olup olmad���ni kontrol ediniz. + + 1.14) PostgreSQL, diger DBMS'lerle nas�l kar��last�r�labilir? + + Bir yaz�l�m�n g�c�n� �l�mek i�in �e�itli yollar vard�r: Yaz�l�m�n + �zellikleri, ba�ar�m�, g�venilirli�i, deste�i ve �creti. + + �zellikler: + + PostgreSQL mevcut b�y�k ticari veritabanlar�n�n, transaction, + subselect, trigger, view, foreign key referential integrity ve + sophisticated locking gibi (user-defined types), rules, inheritance ve + lock cak��malar�n� d���rmek i�in multi-version uyumluluk �zellikleri + bulunmaktad�r. + + Performans (Ba�ar�m): + + PostgreSQL, di�er ticari ve a��k kaynak kodlu veritabanlar�yla yak�n + ba�ar�m� sa�lar. Baz� a��lardan daha h�zl�d�r, di�er a��lardan da + yava�t�r. MySQL ya da daha zay�f veritabanlar� ile + kar��la�t�r�ld���nda, INSERT/UPDATE i�lemlerinde, transaction bazl� + �al�st���m�z i�in daha yava��z. MySQL, yukar�daki "�zellikler" + k�sm�nda belirtilenlerden hi� birine sahip de�ildir. Biz, ba�ar�m�m�z� + her s�r�mde artt�rsak da, esneklik ve geli�mi� �zellikler i�in + yap�lanm�� durumday�z. PostgreSQL'i MySQL ile kar��la�t�ran �u web + sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html + + G�venilirlik: + + DBMS'lerin g�venilir olmas� gerketi�i, yoksa de�erleri olmayaca��n� + d���n�yoruz. �ok iyi test edilmi�, dengeli �al�san minimum say�da hata + i�eren kod sunmaya �al���yoruz. Her bir s�r�m en az 1 ayl�k beta + testlerinden ge�irilmektedir. S�r�m ge�mi�ine bakarsan�z, �retime + haz�r, dengeli ve kararl� kodlar sundu�umuzu g�rebilirsiniz. Bu + alanda, di�er veritaban� yaz�l�mlar�na �st�nl���m�z oldu�una + inanmaktay�z. + + Destek: + + E-posta listemiz, olu�an herhangi bir sorunu ��zebilecek b�y�k say�da + kullan�c� ve geli�tirici grubunu i�erir. Sorununuz i�in, en az bir + ticari veritaban� kadar rahat ��z�m bulabilirsiniz. Gelistiricilere, + kullan�c� grubuna, belgelere ve kaynak koda direk olarak eri�ebilme, + PostgreSQL deste�ini, di�er DBMS'lere g�re daha �nemli k�lar. + Gereksinimi olanlara, ticari destek verilebilir. (Destek i�in 1.6 + b�l�m�ne bak�n�z.) + + Fiyat: + + Ticari ve ticari olmayan t�m kullan�mlar�n�z i�in PostgreSQL + �cretsizdir. Kodumuzu, yukar�da belirtilen BSD-stili lisanstaki + s�n�rlamalar hari�, �r�n�n�z�n i�ine ekleyebilirsiniz. + + 1.15) PostgreSQL'e maddi a��dan nas�l destek olabilirim? + + PostgreSQL, 1996 y�l�ndan beri 1. s�n�f altyap�ya sahiptir. Bunun + i�in, y�llar boyu �al���p bu altyap�y� olu�turup y�neten Marc + Fournier'e te�ekk�rler. + + Bir a��k kaynak kodlu proje i�in, kaliteli altyap� �ok �nemlidir. Bu + altyap�, projenin kesilmesini �nler ve projenin ilerlemesini + h�zland�r�r. + + Tabii ki bu altyap� ucuz de�ildir. ��lerin y�r�mesi i�in �e�itli y�l�k + ve anl�k harcamalar�m�z olmaktad�r. E�er siz ya da �irketinizin bu + �abam�za ba���ta bulunabilecek paras� varsa, l�tfen + http://store.pgsql.com/ adresine gidiniz ve ba���ta, hibede bulununuz. + + Web sayfas�n�n 'PostgreSQL Inc.' den bahsetmesine ra�men, "katk�da + bulunanlar" (contributors) maddesi sadece PostgreSQL projesini + desteklemek i�indir ve belirli bir �irketin para kayna�� de�ildir. + isterseniz, ba�lant� adresine bir �ek g�nderebilirsiniz. + _________________________________________________________________ + + Kullan�c�/�stemci Sorular� + + 2.1) PostgreSQL icin ODBC s�r�c�leri var m�? + + iki tane ODBC s�r�c�s� bulunmaktad�r: PsqlODBC ve OpenLink ODBC. + + PsqlODBC'i + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php + adresinden indirebilirsiniz. + + OpenLink ODBC http://www.openlinksw.com adresinden al�nabilir.Bu + s�r�c�, kendi standart ODBC istemci yaz�l�m� ile �al�st���ndan, + destekledikleri her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC + bulunmalidir. + + �cretsiz s�r�m� olmakla beraber, ticari kalitede destek almak + isteyenlere satmak isteyeceklerdir. Sorular�n�z� l�tfen + [email protected] adresine g�nderiniz. + + 2.2) PostgreSQL'i web sayfalar�nda kullanabilmek i�in hangi ara�lar + bulunmaktad�r? + + http://www.webreview.com/ adresinde, arka planda veritaban� �al�st�ran + Web sayfalar� i�in giri� seviyesinde bilgi bulunmaktad�r. + + Web ile b�t�nle�me i�in, PHP () m�kemmel bir arabirim sunar. + + Karma��k sorunlar i�in, �o�u kisi Perl arabirimini ve CGI.pm ya da + mod_perl kullan�r. + + 2.3) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r? + + �e�itli grafik arabirimlerimiz bulunmaktad�r. Bunlar�n aras�nda, + PgAccess (http://www.pgaccess.org/), PgAdmin II + (http://www.pgadmin.org/, sadece Win32 i�in), RHDB Admin + (http://sources.redhat.com/rhdb/) ve Rekall + (http://www.thekompany.com/products/rekall/) bulunmaktad�r. Ayr�ca, + PostgreSQL i�in web tabanl� bir arabirim olan PHPPgAdmin + (http://phppgadmin.sourceforge.net/) bulunmaktad�r. + + Daha ayr�nt�l� liste i�in + http://techdocs.postgresql.org/guides/GUITools adresine + bakabilirsiniz. + + 2.4) PostgreSQL ile ileti�imi kurabilmek i�in hangi dilleri kullanabilirim? + + * C (libpq) + * Embedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + Di�erleri i�in, http://gborg.postgresql.org adresindeki + Drivers/Interfaces b�l�m�ne bakabilirsiniz. + _________________________________________________________________ + + Y�netimsel Sorular + + 3.1) PostgreSQL'i, /usr/local/pgsql dizininden ba�ka dizinlere nas�l + kurabilirim? + + configure beti�ini �al�st�r�rken, --prefix se�ene�ini veriniz. + + 3.2) postmaster'i baslatt�g�mda, a Bad System Call ya da core dumped mesaj� + al�yorum. Neden? + + Bunun bir�ok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, + �ekirdeginize System V uzant�lar�n�n kurulu olup olmad�g�n� kontrol + etmek olabilir. PostgreSQL shared memory ve semaphores i�in �ekirdek + destegine gereksinim duyar. + + 3.3) postmaster'i ba�latt���mda, �pcMemoryCreate hatas� al�yorum. Neden? + + Ya �ekirde�inizde shared memory deste�iniz d�zg�nce + yap�land�r�lmam��t�r, ya da �ekirde�inizdeki mevcut shared memory + miktar�n� b�y�tmeniz gerekecektir. Gereksinim duyaca��n�z miktar, + mimarinize ve postmaster i�in ayarlad�g�n�z tampon ile backend i�lemi + say�s�na ba�l�d�r. T�m sistemler i�in, tamponlar ve i�lemlerde + �ntan�ml� say�larla, ~ 1MB kadar yere gereksinmeniz olacakt�r. + PostgreSQL 7.3.2 Sistem Y�neticileri Rehberi'ne, shared memory ve + semaphorelar hakk�ndaki ayr�nt�l� bilgi i�in bakabilirsiniz. + + 3.4) postmaster'� ba�latt���mda, �pcSemaphoreCreate hatas� al�yorum. Neden? + + E�er hata, "�pcSemaphoreCreate: semget failed (No space left on + device)" ise, �ekirde�iniz yeterli semaphore ile yap�land�r�lmam�� + demektir. Postgres, her bir potansiyel backend i�in bir semaphore + gereksinimi duyar. Ge�ici bir ��z�m, postmaster� backend i�lemleri + i�in daha az miktarda s�n�rla ba�latmak olabilir. -N'i varsay�lan + de�er olan 32'den k���k bir de�erle ba�lat�n�z. Daha kal�c� bir ��z�m, + �ekirde�inizin SEMMNS ve SEMMNI parametrelerini y�kseltmek olacakt�r. + + �al��mayan semaphore'lar a��r veritaban� i�lemlerinde ��kme + yaratabilirler. + + E�er hata mesaj�n�z ba�ka bir �ey ise, �ekirde�inizde semaphore + deste�ini yap�land�rmam�� olabilirsiniz. Shared memory ve + semaphore'lar hakk�ndaki daha ayr�nt�l� bilgi i�in PostgreSQL 7.3.2 + Sistem Y�neticileri Rehberi'ne bakabilirsiniz. + + 3.5) Diger bilgisayarlar�n benim PostgreSQL veritaban� sunucuma + ba�lant�lar�n� nas�l kontrol edebilirim? + + �n tan�ml� olarak, PostgreSQL sadece yerel makineden Unix domain + sockets kullanarak ba�lan�lmas�na izin verir. Diger makineler, + postmaster'a -i etiketini ge�irmezseniz ve $PGDATA/pg_hba.conf + dosyas�n� d�zenleyerek host-based authentication'a olanak vermezseniz, + ba�lant� yapamayacaklard�r. + + 3.6) Veritabani motorunu daha iyi ba�ar�m i�in nas�l ayarlayabilirim? + + Index'ler sorgular� h�zland�rabilir. EXPLAIN komutu, PostgreSQL'in + sorgunuzu nas�l yorumlad���n� ve hangi index'leri kulland���n� + g�rmenize izin verir. + + E�er cok fazla INSERT i�lemi yap�yorsan�z, bunlar� b�y�k bir toplu + i�lem dosyas�kullan�p COPY komutu ile veritaban�na girmeyi deneyiniz. + Bu, tekil INSERT'lerden daha h�zl�d�r. �kinci olarak, BEGIN + WORK/COMMIT transaction blo�u i�inde olmayan ifadeler kendi + transaction'lar�ndaym�� gibi d���n�l�r. �oklu ifadeleri tek bir + transaction blo�u i�inde yapabilirsiniz. Bu, transaction overhead'ini + d���recektir. Tek bir transaction blo�u i�inde birden �ok ifadeyi + �al��t�rmay� deneyebilirsiniz. Bu da ayn� �ekilde, transaction + overhead'ini d���r�r. + + �e�itli ayarlama se�enekleri mevcuttur. fsync() i�lemini, postmaster'� + -o -F se�ene�i ile ba�latarak devre d��� b�rakabilirsiniz. Bu i�lem, + fsync()'lerin her transactiondan sonra diski flush etmesini + engelleyecektir. + + Ayn� zamanda, postmaster'i -B se�ene�i ile ba�lat�p, backend i�lemleri + taraf�ndan kullan�lan shared memory buffers say�lar�n� + artt�rabilirsiniz. E�er bu parametreyi �ok y�ksek tutarsan�z, + �ekirde�inizin shared memory b�lgesindeki limiti a�ma olas�l���n�z + y�z�nden postmaster ba�layamayabilir. Her bir tampon (buffer) 8K'd�r. + �ntan�ml� say� ise 64 tampondur. + + Ayn� �ekilde, backend'in -S se�ene�ini ge�ici s�ralamalar i�in backend + s�re�leri taraf�ndan kullan�lacak haf�zay� artt�rmak amac�yla + kullanabilirsiniz. -S se�ene�i kilobayt cinsinden de�er al�r ve �n + tan�ml� de�eri 512'dir (512 K) + + Tablolardaki veriyi bir index'e e�lemek amac�yla gruplama i�in CLUSTER + komutunu kullanabilirsiniz. Ayr�nt�l� bilgi i�in CLUSTER komutunun + yard�m sayfas�na bakabilirsiniz. + + 3.7) Hangi hata ay�klama �zellikleri bulunmaktad�r? + + PostgreSQL, hata ay�klama amac�yla kullan�labilecek durum bilgisi + rapor eden �e�itli �zeliklere sahiptir. + + �ncelikle, configure beti�ini --enable-cassert se�ene�iyle + �al��t�r�rsan�z, bir �ok assert() backend cal��mas�n� g�zlemler ve + beklenmeyen bir durumda program� durdurur. + + Postmaster ve postgres �e�itli hata ay�klama se�eneklerine sahiptir. + �ncelikle, postmaster'� ba�latt���n�zda, standart ��kt�y� ve hatalar� + bir log dosyas�na y�nlendirdi�inize emin olun: cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & -Bu i�lem PostgreSQL ana dizinine server.log dosyas� yerle�tirecektir. Bu dosya sunucunun ya�ad��� sorunlar ya da -hatalar hakk�nda yararl� bilgiler i�erir. -d se�ene�i, hata ay�klama seviyesini belirten bir rakam ile kullan�l�r. -Y�ksek hata ay�klama seviyelerinin b�y�k log dosyalar� olu�turaca��n� unutmay�n�z. - -E�er postmaster �al��m�yorsa, postgres backend'ini komut sat�r�ndan �al��t�rabilir ve SQL ifadenizi direk olarak -yazabilirsiniz. Bu sadece hata ay�klama amac�yla �nerilir. Burada, noktal� virg�l�n de�il de yeni bir sat�r�n sorguyu -sonland�rd���n� unutmay�n�z. E�er hata ay�klama sembolleri ile derlediyseniz, ne oldu�unu g�rmek i�in bir hata -ay�klay�c� kullanabilirsiniz. backend postmaster'dan ba�lat�lmad���ndan, e�de�er bir ortamda �al��mamaktad�r ve -locking/backend etkile�im sorunlar� artabilir. - -E�er postmaster �al���yorsa, bir pencerede psql'i �al��t�r�n ve psql taraf�ndan kullan�lan postgres s�recinin s�re� -numaras�n� (PID) bulun. Postgres s�reci ile ili�kilendirmek i�in bir hata ay�klar�c� kullan�n. Sorgular� psql arac�l��� -ile �al��t�rabilirsiniz. E�er postgres ba�lang�c�nda hata ay�klamak istiyorsan�z, PGOPTIONS="-W n" se�ene�ini -ayarlayabilir ve psql'i ba�latabilirsiniz. Bu i�lem, ba�lang�c�n n saniye kadar gecikmesini sa�layacakt�r; b�ylece hata -ay�klay�c�y� s�rece ili�kilendirdikten sonra ba�lang�� s�recinin devam etmesini sa�layabilirsiniz. - -postgres program� hata ay�klama ve ba�ar�m �l��mleri i�in -s, -A ve -t se�eneklerine sahiptir. -3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� al�yorum? - -Postmaster'�n e�zamanl� olarak ba�latabilece�i backend s�re�leri s�n�rlar�n� artt�rman�z gerekmektedir. - -�n tan�ml� de�er 32 s�re�tir. Bunu, postmaster'� uygun -N de�eri ile ya da postgresql.conf dosyas�n� d�zenleyerek -yeniden ba�latmakla artt�rabilirsiniz. - -E�er -N de�erini 32'den b�y�k yapacaksan�z, ayn� zamanda -B de�erini de de�i�tirmeniz gerekti�ini unutmay�n. -B, -N'nin -en az 2 kat� kadar olmal�d�r; daha iyi ba�ar�m i�in bu say�y� daha da artt�rmal�s�n�z. Y�ksek say�daki backend -s�re�leri i�in, �e�itli �ekirdek yap�land�rma parametrelerini artt�rman�z gerekecektir. Yap�lmas� gerekenler, SHMMAX, -SEMMNS, SEMMNI, NPROC, MAXUPRC ve a��labilecek dosyalar�n maksimum say�s� olan NFILE ve NINODE de�erlerini -kar��t�rmakt�r. Bunun nedeni, PostgreSQL'in izin verilen backend s�re�lerinin say�s� �zerinde bir s�n�r� olmas�d�r. -B�ylelikle sistem kaynaklar�n�n d���na ��k�lmayacakt�r. - -PostgreSQL'in 6.5 s�r�m�ne kadar, en fazla backend say�s� 64 idi ve bunu de�i�tirmek i�in include/storage/sinvaladt.h -dosyas� i�indeki MaxBAckendid sabitini de�i�tirdek sonra yaz�l�m� yeniden derlemek gerekiyordu. -3.9) pgsql_tmp dizinin i�indeki dosyalar nelerdir? - -Sorgu �al�st�r�c� (query executer) taraf�ndan yarat�lan ge�ici dosyalard�r. �rnegin, bir s�ralama ORDER BY ile -yap�lacaksa ve s�ralama backend'in -s parametresinin izin verdi�inden daha fazla alana gereksinim duyuyorsa, ekstra -veriyi tutmak i�in ge�ici dosyalar yarat�l�r. - -Ge�ici dosyalar, e�er s�ralama s�ras�nda backend g��mezse otomatik olarak silinecektir. E�er �al��an durumda bir -backend'iniz yoksa, pg_tempNNN.NN dosyalar�n� silmeniz g�venlidir. -3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload i�lemi ger�ekle�tirmek zorunday�m? - -PostgreSQL tak�m� ara s�r�mlerde sadece k���k de�i�iklikler yapmaktad�r; bu y�zden 7.2 s�r�m�nden 7.2.1'e y�kseltmek -dump/restore i�lemi gerekmemektedir. Ancak, esas s�r�mlerde (�rnek: 7.2'den 7.3'e) �o�unlukla sistem tablolar�n�n ve -veri dosyalar�n�n i� yap�s� de�i�tirilir. Bu de�i�iklikler �o�unlukla karma��kt�r; dolay�s�yla veri dosyalar�n�n geriye -d�n�k uyumlulu�u i�lemlerini yapm�yoruz. Dump i�lemi, veriyi genel bi�imde alaca��ndan yeniden y�kleme esnas�nda veri, -yeni i� bi�ime uygun �ekilde yerle�tirilecektir. - -Disk bi�iminin de�i�medi�i s�r�mlerde, pg_upgrade beti�i g�ncellemenin bir dump/restore gerektirmeden yap�lmas�n� -sa�layacakt�r. pg_upgrade beti�inin o s�r�m i�in bulunup bulunmad���n� s�r�m notlar� i�inde bulabilirsiniz. -3.11) Nas�l bir donan�m kullanmal�y�m? - -PC donan�m� tamamen uyumlu oldu�u i�in, insanlar t�m PC donan�mlar�n�n ayn� kalitede oldu�unu d���n�rler. Oysa b�yle -de�ildir. ECC RAM, SCSI ve kaliteli anakartlar daha ucuz donan�mlara g�re daha �ok g�venilirlerdir ve ba�ar�mlar� daha -y�ksektir. PostgreSQL hemen hemen t�m donan�mda �al��abilmektedir, ancak g�venilirlik ve ba�ar�m �nemli ise donan�m -se�eneklerini �ok iyi ara�t�rmak gereklidir. E-posta listelerimi donan�mlarla ilgili sorular ve de ticaret i�in -kullan�labilir. -��letimsel Sorular -4.1) Binary cursor ve normal cursor aras�ndaki fark nedir? - -DECLARE yard�m sayfas�na bak�n�z. -4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? - -FETCH yard�m sayfas�na bak�n�z, ya da SELECT ... LIMIT ... kullan�n�z. - -�lk birka� sat�r� almak isteseniz bile, t�m sorgu de�erlendirilmek durumunda kal�nabilir. ORDER BY i�eren bir sorgu -d���n�n. E�er ORDER BY i�e e�le�en bir index varsa, PostgreSQL istenen ilk birka� sat�r� i�leyebilir, ya da t�m sorgu -istenen sat�rlar �retilene kadar i�lenebilir. -4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim? - -pgsql/src/bin/psql/describe.c i�indeki psql kaynak kodunu okuyabilirsiniz. Bu kod, psql'in \ ile ba�layan komutlar�n�n -��kt�s�n� olusturan SQL komutlar�n� i�erir. Ayn� zamanda, psql'i -E se�ene�i ile ba�lat�p, verdi�iniz komutlar� -�al��t�rmak i�in yapt��� sorgular�n ��kt�lar�n� g�rebilirsiniz. -4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? - -Bu �zellik (ALTER TABLE DROP COLUMN) 7.3 s�r�m� ile gelmi�tir. Eski s�r�mlerde a�a��dakileri uygulamal�s�n�z: - + Bu i�lem PostgreSQL ana dizinine server.log dosyas� yerle�tirecektir. + Bu dosya sunucunun ya�ad��� sorunlar ya da hatalar hakk�nda yararl� + bilgiler i�erir. -d se�ene�i, hata ay�klama seviyesini belirten bir + rakam ile kullan�l�r. Y�ksek hata ay�klama seviyelerinin b�y�k log + dosyalar� olu�turaca��n� unutmay�n�z. + + E�er postmaster �al��m�yorsa, postgres backend'ini komut sat�r�ndan + �al��t�rabilir ve SQL ifadenizi direk olarak yazabilirsiniz. Bu sadece + hata ay�klama amac�yla �nerilir. Burada, noktal� virg�l�n de�il de + yeni bir sat�r�n sorguyu sonland�rd���n� unutmay�n�z. E�er hata + ay�klama sembolleri ile derlediyseniz, ne oldu�unu g�rmek i�in bir + hata ay�klay�c� kullanabilirsiniz. backend postmaster'dan + ba�lat�lmad���ndan, e�de�er bir ortamda �al��mamaktad�r ve + locking/backend etkile�im sorunlar� artabilir. + + E�er postmaster �al���yorsa, bir pencerede psql'i �al��t�r�n ve psql + taraf�ndan kullan�lan postgres s�recinin s�re� numaras�n� (PID) bulun. + Postgres s�reci ile ili�kilendirmek i�in bir hata ay�klar�c� kullan�n. + Sorgular� psql arac�l��� ile �al��t�rabilirsiniz. E�er postgres + ba�lang�c�nda hata ay�klamak istiyorsan�z, PGOPTIONS="-W n" se�ene�ini + ayarlayabilir ve psql'i ba�latabilirsiniz. Bu i�lem, ba�lang�c�n n + saniye kadar gecikmesini sa�layacakt�r; b�ylece hata ay�klay�c�y� + s�rece ili�kilendirdikten sonra ba�lang�� s�recinin devam etmesini + sa�layabilirsiniz. + + postgres program� hata ay�klama ve ba�ar�m �l��mleri i�in -s, -A ve -t + se�eneklerine sahiptir. + + 3.8) Ba�lanmaya �al���rken, neden "Sorry, too many clients" hatas�n� + al�yorum? + + Postmaster'�n e�zamanl� olarak ba�latabilece�i backend s�re�leri + s�n�rlar�n� artt�rman�z gerekmektedir. + + �n tan�ml� de�er 32 s�re�tir. Bunu, postmaster'� uygun -N de�eri ile + ya da postgresql.conf dosyas�n� d�zenleyerek yeniden ba�latmakla + artt�rabilirsiniz. + + E�er -N de�erini 32'den b�y�k yapacaksan�z, ayn� zamanda -B de�erini + de de�i�tirmeniz gerekti�ini unutmay�n. -B, -N'nin en az 2 kat� kadar + olmal�d�r; daha iyi ba�ar�m i�in bu say�y� daha da artt�rmal�s�n�z. + Y�ksek say�daki backend s�re�leri i�in, �e�itli �ekirdek yap�land�rma + parametrelerini artt�rman�z gerekecektir. Yap�lmas� gerekenler, + SHMMAX, SEMMNS, SEMMNI, NPROC, MAXUPRC ve a��labilecek dosyalar�n + maksimum say�s� olan NFILE ve NINODE de�erlerini kar��t�rmakt�r. Bunun + nedeni, PostgreSQL'in izin verilen backend s�re�lerinin say�s� + �zerinde bir s�n�r� olmas�d�r. B�ylelikle sistem kaynaklar�n�n d���na + ��k�lmayacakt�r. + + PostgreSQL'in 6.5 s�r�m�ne kadar, en fazla backend say�s� 64 idi ve + bunu de�i�tirmek i�in include/storage/sinvaladt.h dosyas� i�indeki + MaxBAckendid sabitini de�i�tirdek sonra yaz�l�m� yeniden derlemek + gerekiyordu. + + 3.9) pgsql_tmp dizinin i�indeki dosyalar nelerdir? + + Sorgu �al�st�r�c� (query executer) taraf�ndan yarat�lan ge�ici + dosyalard�r. �rnegin, bir s�ralama ORDER BY ile yap�lacaksa ve + s�ralama backend'in -s parametresinin izin verdi�inden daha fazla + alana gereksinim duyuyorsa, ekstra veriyi tutmak i�in ge�ici dosyalar + yarat�l�r. + + Ge�ici dosyalar, e�er s�ralama s�ras�nda backend g��mezse otomatik + olarak silinecektir. E�er �al��an durumda bir backend'iniz yoksa, + pg_tempNNN.NN dosyalar�n� silmeniz g�venlidir. + + 3.10) PostgreSQL s�r�mlerini y�kseltmek i�in neden bir dump/reload i�lemi + ger�ekle�tirmek zorunday�m? + + PostgreSQL tak�m� ara s�r�mlerde sadece k���k de�i�iklikler + yapmaktad�r; bu y�zden 7.2 s�r�m�nden 7.2.1'e y�kseltmek dump/restore + i�lemi gerekmemektedir. Ancak, esas s�r�mlerde (�rnek: 7.2'den 7.3'e) + �o�unlukla sistem tablolar�n�n ve veri dosyalar�n�n i� yap�s� + de�i�tirilir. Bu de�i�iklikler �o�unlukla karma��kt�r; dolay�s�yla + veri dosyalar�n�n geriye d�n�k uyumlulu�u i�lemlerini yapm�yoruz. Dump + i�lemi, veriyi genel bi�imde alaca��ndan yeniden y�kleme esnas�nda + veri, yeni i� bi�ime uygun �ekilde yerle�tirilecektir. + + Disk bi�iminin de�i�medi�i s�r�mlerde, pg_upgrade beti�i g�ncellemenin + bir dump/restore gerektirmeden yap�lmas�n� sa�layacakt�r. pg_upgrade + beti�inin o s�r�m i�in bulunup bulunmad���n� s�r�m notlar� i�inde + bulabilirsiniz. + + 3.11) Nas�l bir donan�m kullanmal�y�m? + + PC donan�m� tamamen uyumlu oldu�u i�in, insanlar t�m PC donan�mlar�n�n + ayn� kalitede oldu�unu d���n�rler. Oysa b�yle de�ildir. ECC RAM, SCSI + ve kaliteli anakartlar daha ucuz donan�mlara g�re daha �ok + g�venilirlerdir ve ba�ar�mlar� daha y�ksektir. PostgreSQL hemen hemen + t�m donan�mda �al��abilmektedir, ancak g�venilirlik ve ba�ar�m �nemli + ise donan�m se�eneklerini �ok iyi ara�t�rmak gereklidir. E-posta + listelerimi donan�mlarla ilgili sorular ve de ticaret i�in + kullan�labilir. + _________________________________________________________________ + + ��letimsel Sorular + + 4.1) Binary cursor ve normal cursor aras�ndaki fark nedir? + + DECLARE yard�m sayfas�na bak�n�z. + + 4.2) Sorgunun sadece ilk birka� sat�r�n� nas�l SELECT edebilirim? + + FETCH yard�m sayfas�na bak�n�z, ya da SELECT ... LIMIT ... kullan�n�z. + + �lk birka� sat�r� almak isteseniz bile, t�m sorgu de�erlendirilmek + durumunda kal�nabilir. ORDER BY i�eren bir sorgu d���n�n. E�er ORDER + BY i�e e�le�en bir index varsa, PostgreSQL istenen ilk birka� sat�r� + i�leyebilir, ya da t�m sorgu istenen sat�rlar �retilene kadar + i�lenebilir. + + 4.3) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini + nas�l alabilirim? + + pgsql/src/bin/psql/describe.c i�indeki psql kaynak kodunu + okuyabilirsiniz. Bu kod, psql'in \ ile ba�layan komutlar�n�n ��kt�s�n� + olusturan SQL komutlar�n� i�erir. Ayn� zamanda, psql'i -E se�ene�i ile + ba�lat�p, verdi�iniz komutlar� �al��t�rmak i�in yapt��� sorgular�n + ��kt�lar�n� g�rebilirsiniz. + + 4.4) Bir tablodan bir kolonu nas�l kald�rabilirim? + + Bu �zellik (ALTER TABLE DROP COLUMN) 7.3 s�r�m� ile gelmi�tir. Eski + s�r�mlerde a�a��dakileri uygulamal�s�n�z: BEGIN; LOCK TABLE old_table; SELECT ... -- select all columns but the one you want to remove @@ -482,355 +692,421 @@ INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; -COMMIT; - - -4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? - -S�n�rlar: - -Veritaban� i�in en fazla b�y�kl�k nedir? -S�n�rs�z (32 TB'l�k veritaban� bulunmaktad�r) - -Bir tablo i�in en fazla b�y�kl�k nedir? -32 TB - -Bir sat�r i�in en fazla b�y�kl�k nedir? -1.6 TB - -Bir alan i�in en fazla b�y�kl�k nedir? -1 GB - -Tabloda en fazla sat�r say�s� ka�t�r? -S�n�rs�z - -Bir tabloda olabilecek en fazla kolon say�s� ka�t�r? -Kolon tiplerine ba�l� olarak 250-1600 - -Bir tabloda olabilecek en fazla index say�s� ka�t�r? -S�n�rs�z - -Tabii ki bunlar asl�nda s�n�rs�z degildir. Burada belirtilen s�n�rlar, fiziksel s�n�rlar�n haricindeki s�n�rlard�r. Bo� -disk alan�, haf�za/takas alan� na ba�l� s�n�rlamalar vard�r. Ba�ar�m, s�n�r de�erlere yakla�t�k�a, ya da de�erler �ok -b�y�k oldu�unda d��ebilir. - -Bir tablo i�in b�y�kl�k s�n�r� olan 32 TB, i�letim sisteminin b�y�k dosya deste�i olup olmamas�ndan ba��ms�zd�r. B�y�k -tablolar, 1 GB'lik dosyalarda sakland��� i�in, dosya sistemi s�n�rlar�nin bir �nemi yoktur. - -Tablo ve kolon say�s� b�y�kl�kleri, �n tan�ml� blok b�y�kl��� 32k ya ��kar�larak artt�r�labilir. -4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� gereklidir? - -Bir PostgreSQL veritaban�, veriyi "flat" metin dosyas�nda saklamak i�in gereken alan�n 5 kat fazla disk alan�na -gereksinim duyabilir. - -Her sat�r�nda bir tamsay� ve metin (text) i�eren, 100.000 sat�rl�k bir dosya d���n�n. Her sat�r�n ortalama 20 byte -oldu�unu farzedelim. Metin dosyas� 2.8 MB olacakt�r. Bu veriyi tutan PostgreSQL veritaban� yakla��k 6.4 MB yer -kaplayacakt�r. - +COMMIT; + + 4.5) Bir sat�r, tablo ve veritaban� i�in en fazla b�y�kl�k nedir? + + S�n�rlar: + + Veritaban� i�in en fazla b�y�kl�k nedir? + S�n�rs�z (32 TB'l�k veritaban� bulunmaktad�r) + Bir tablo i�in en fazla b�y�kl�k nedir? + 32 TB + Bir sat�r i�in en fazla b�y�kl�k nedir? + 1.6 TB + Bir alan i�in en fazla b�y�kl�k nedir? + 1 GB + Tabloda en fazla sat�r say�s� ka�t�r? + S�n�rs�z + Bir tabloda olabilecek en fazla kolon say�s� ka�t�r? + Kolon tiplerine ba�l� olarak 250-1600 + Bir tabloda olabilecek en fazla index say�s� ka�t�r? + S�n�rs�z + + Tabii ki bunlar asl�nda s�n�rs�z degildir. Burada belirtilen s�n�rlar, + fiziksel s�n�rlar�n haricindeki s�n�rlard�r. Bo� disk alan�, + haf�za/takas alan� na ba�l� s�n�rlamalar vard�r. Ba�ar�m, s�n�r + de�erlere yakla�t�k�a, ya da de�erler �ok b�y�k oldu�unda d��ebilir. + + Bir tablo i�in b�y�kl�k s�n�r� olan 32 TB, i�letim sisteminin b�y�k + dosya deste�i olup olmamas�ndan ba��ms�zd�r. B�y�k tablolar, 1 GB'lik + dosyalarda sakland��� i�in, dosya sistemi s�n�rlar�nin bir �nemi + yoktur. + + Tablo ve kolon say�s� b�y�kl�kleri, �n tan�ml� blok b�y�kl��� 32k ya + ��kar�larak artt�r�labilir. + + 4.6) Tipik bir metin dosyas�ndaki veriyi saklamak i�in ne kadar disk alan� + gereklidir? + + Bir PostgreSQL veritaban�, veriyi "flat" metin dosyas�nda saklamak + i�in gereken alan�n 5 kat fazla disk alan�na gereksinim duyabilir. + + Her sat�r�nda bir tamsay� ve metin (text) i�eren, 100.000 sat�rl�k bir + dosya d���n�n. Her sat�r�n ortalama 20 byte oldu�unu farzedelim. Metin + dosyas� 2.8 MB olacakt�r. Bu veriyi tutan PostgreSQL veritaban� + yakla��k 6.4 MB yer kaplayacakt�r. 36 byte: Her bir sat�r ba�l��� (yakla��k) -+ 24 byte: Bir tamsay� (int) alan� ve bir metin (text) alan� ++ 24 byte: Bir tamsay� (int) alan� ve bir metin (text) alan� + 4 byte: Sayfada tuple a pointer ---------------------------------------- 64 byte -> kay�t ba��na -PostgreSQL'de veri sayfas� (data page) b�y�kl��� 8192 byte (8k)d�r, dolay�s�yla: - + PostgreSQL'de veri sayfas� (data page) b�y�kl��� 8192 byte (8k)d�r, + dolay�s�yla: 8192 byte -> page ba��na ------------------------- = Her bir veritaban� page'� ba��na 128 sat�r (yakla��k) Sat�r ba��na 64 byte - + 100000 veri sat�r� -------------------- = 782 veritaban� sayfas� 128 sat�r -782 veritaban� sayfas� * sayfa ba��na 8192 byte = 6,406,144 bytes (6.4 MB) - -Index'ler �ok fazla yere gereksinim duymazlar, ama index'lenmi� veriyi tutacaklar�ndan b�y�k olabilirler. - -NULL de�erler bitmapler i�inde tutulur; dolay�s�yla �ok az yer kaplarlar. -4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l g�rebilirim? - -psql, bu t�r bilgileri g�stermek i�in, \ ile ba�layan bir �ok komut sunmaktad�r. \? komutu ile bu komutlar� -g�rebilirsiniz. Ayr�ca, bunlar� a��klayan ve pg_ ile ba�layan �ok say�da sistem tablosu bulunmaktad�r. Ayn� zamanda, -psql -l ile t�m veritabanlar�n� listeyelebirsiniz. - -Ayr�ca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu dosya, veritaban� sistem dosyalar�ndan bilgiyi -almak i�in gereksinim duyulan bir �ok SELECT'leri g�sterir. -4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? - -Indexler her sorgu taraf�ndan otomatik olarak kullan�lmazlar. Indexler e�er bir tablonun b�y�kl��� minimum bir -b�y�kl�kten fazla ise ve sorgu tablodaki sat�rlar�n sadece k���k bir y�zdesini se�iyorsa kullan�l�r. Bunun nedeni, -index eri�iminin neden oldu�u raslansal disk eri�imi nin diskin ya da tablonun s�ral� okunmas�ndan daha yavas -olabilmesidir. - -Bir index'in kullan�l�p kullan�lmayaca��n� belirlemek i�in, PostgreSQL tablo hakk�ndaki istatistiklere gereksinmesi -vard�r. Bu istatistikler, VACUUM ANALYZE kullan�larak toplan�rlar. Optimizer, istatistikleri kullanarak, tabloda ka� -sat�r oldu�unu ve bilir ve indexin kullan�l�p kullan�lmayaca��na daha iyi karar verir. Istatistikler, ayn� zamanda en -uygun join s�ras�n� ve y�ntemini belirlemekte �ok �nemlidir. �statistik toplanmas�, tablo i�erikleri de�i�tik�e -periyodik olarak yap�lmal�d�r. - -Indexler normalde ORDER BY sorgular� ya da join i�lemlerini ger�ekle�tirmek i�in kullan�lmazlar. A��k bir s�ralamay� -takip eden s�ral� bir arama (sequential scan), b�y�k bir tabloda index aramas� yapmaktan genelde daha h�zl�d�r. -Ancak, ORDER BY ile birle�mi� LIMIT genellikle bir index kullanacakt�r; ��nk� tablonun sadece belirli bir miktar� -d�nd�r�lecektir. Asl�nda, MAX() ve MIN() fonksiyonlar�n�n index kullanmamalar�ndan dolay�, bu gibi de�erleri ORDER BY -ve LIMIT kullanarak da almak olas�d�r: - + 782 veritaban� sayfas� * sayfa ba��na 8192 byte = 6,406,144 bytes (6.4 + MB) + + Index'ler �ok fazla yere gereksinim duymazlar, ama index'lenmi� veriyi + tutacaklar�ndan b�y�k olabilirler. + + NULL de�erler bitmapler i�inde tutulur; dolay�s�yla �ok az yer + kaplarlar. + + 4.7) Veritaban�nda hangi tablo ya da index'lerin tan�mland���n� nas�l + g�rebilirim? + + psql, bu t�r bilgileri g�stermek i�in, \ ile ba�layan bir �ok komut + sunmaktad�r. \? komutu ile bu komutlar� g�rebilirsiniz. Ayr�ca, + bunlar� a��klayan ve pg_ ile ba�layan �ok say�da sistem tablosu + bulunmaktad�r. Ayn� zamanda, psql -l ile t�m veritabanlar�n� + listeyelebirsiniz. + + Ayr�ca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu + dosya, veritaban� sistem dosyalar�ndan bilgiyi almak i�in gereksinim + duyulan bir �ok SELECT'leri g�sterir. + + 4.8) Sorgular�m cok yava�, ya da index'lerimi kullanm�yorlar. Neden? + + Indexler her sorgu taraf�ndan otomatik olarak kullan�lmazlar. Indexler + e�er bir tablonun b�y�kl��� minimum bir b�y�kl�kten fazla ise ve sorgu + tablodaki sat�rlar�n sadece k���k bir y�zdesini se�iyorsa kullan�l�r. + Bunun nedeni, index eri�iminin neden oldu�u raslansal disk eri�imi nin + diskin ya da tablonun s�ral� okunmas�ndan daha yavas olabilmesidir. + + Bir index'in kullan�l�p kullan�lmayaca��n� belirlemek i�in, PostgreSQL + tablo hakk�ndaki istatistiklere gereksinmesi vard�r. Bu istatistikler, + VACUUM ANALYZE kullan�larak toplan�rlar. Optimizer, istatistikleri + kullanarak, tabloda ka� sat�r oldu�unu ve bilir ve indexin kullan�l�p + kullan�lmayaca��na daha iyi karar verir. Istatistikler, ayn� zamanda + en uygun join s�ras�n� ve y�ntemini belirlemekte �ok �nemlidir. + �statistik toplanmas�, tablo i�erikleri de�i�tik�e periyodik olarak + yap�lmal�d�r. + + Indexler normalde ORDER BY sorgular� ya da join i�lemlerini + ger�ekle�tirmek i�in kullan�lmazlar. A��k bir s�ralamay� takip eden + s�ral� bir arama (sequential scan), b�y�k bir tabloda index aramas� + yapmaktan genelde daha h�zl�d�r. + Ancak, ORDER BY ile birle�mi� LIMIT genellikle bir index + kullanacakt�r; ��nk� tablonun sadece belirli bir miktar� + d�nd�r�lecektir. Asl�nda, MAX() ve MIN() fonksiyonlar�n�n index + kullanmamalar�ndan dolay�, bu gibi de�erleri ORDER BY ve LIMIT + kullanarak da almak olas�d�r: SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1; -E�er optimizer'�n s�ral� arama yapmas�n�n yanl�� oldu�una inan�yorsan�z, SET enable_seqscan TO 'off' kullan�n ve index -kullanan aramalar�n hala daha h�zl� olup olmad���n� g�r�n. - -LIKE ya da ~ gibi operat�rler kullan�yorsan�z, index'ler sadece a�a��daki ko�ullarda kullan�labilir: - - * Arama dizininin ba��, dizinin ba�� ile ba�lanmal�d�r. Yani, - o LIKE sorgular� % ile ba�lamamal�d�r. - o D�zenli ifade sorgular� ^ i�e ba�lamamal�d�r. - * Arama metni bir karakter s�n�f� ile ba�layamaz. �rnek: [a-e] - * ILIKE ve ~* gibi b�y�k/k���k harfe duyars�z aramalar index'lerden yararlanmazlar. Onun yerine, b�l�m 4.12'de -anlat�lan fonksiyonel index'leri kullanabilirsiniz. - * initdb s�ras�nda �ntan�ml� C locale'i kullan�lmal�d�r. - -4.9) query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme soktu�unu nas�l g�rebilirim? - -EXPLAIN yard�m sayfas�na bak�n�z. -4.10) R-tree index nedir? - -R-tree index, uzaysal (spatial) verileri indexlemek i�in kullan�l�r. Bir hash index, dizi aramalar�nda (range search) -kullan�lamaz. B-tree index dizi aramalar�nda sadece tek boyutlu �al��maktad�r. R-tree, �ok boyutlu veriyi destekler. -�rne�in, e�er bir R-tree index point veri tipi �zerinde in�a edililebilirse, sistem "select all points within a -bounding rectangle" gibi sorgulara daha verimli yan�tlar verecektir. - -Orijinal R-tree tasar�m�n� a��klayan belge: - -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. - -Bu belgeyi, Stonebraker'�n "Readings in Database Systems" kitab�nda bulabilirsiniz. - -G�m�l� R-tree indexleri poligon ve boxlar� kullanabilir. Teorik olarak, R-tree indexlerin �zelliklerini geni�letmek bir -miktar �aba gerektirir ve bunun nas�l yap�laca��na dair bir belgemiz hen�z bulunmamaktad�r. -4.11) Genetic Query Optimizer nedir? - -GEQO mod�l�, Genetic Algorithm(GA) kullan�larak tablolar birle�tirildi�inde sorgu optimizasyonunu h�zland�r�r. -4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe duyars�z aramalar� nas�l yapabilirim? Bu -b�y�k(k���k harfe duyarl� aramalar i�in index'i nas�l kullanabilirim? - -~ operat�r� d�zenli ifade e�le�mesi ve ~* b�y�k/k���k harfe duyars�z d�zenli ifade e�le�mesi yapar. B�y�k/k���k harfe -duyarl� olan LIKE'�n b�y�k/k���k harfe duyars�z olan bi�imi ILIKE't�r ve PostgreSQL 7.1 s�r�m� ile birlikte gelmi�tir. - -B�y�k-k���k harfe duyars�z e�itlik kar��la�t�rmalar� a�a��daki gibi ifade edilir: - + E�er optimizer'�n s�ral� arama yapmas�n�n yanl�� oldu�una + inan�yorsan�z, SET enable_seqscan TO 'off' kullan�n ve index kullanan + aramalar�n hala daha h�zl� olup olmad���n� g�r�n. + + LIKE ya da ~ gibi operat�rler kullan�yorsan�z, index'ler sadece + a�a��daki ko�ullarda kullan�labilir: + * Arama dizininin ba��, dizinin ba�� ile ba�lanmal�d�r. Yani, + + LIKE sorgular� % ile ba�lamamal�d�r. + + D�zenli ifade sorgular� ^ i�e ba�lamamal�d�r. + * Arama metni bir karakter s�n�f� ile ba�layamaz. �rnek: [a-e] + * ILIKE ve ~* gibi b�y�k/k���k harfe duyars�z aramalar index'lerden + yararlanmazlar. Onun yerine, b�l�m 4.12'de anlat�lan fonksiyonel + index'leri kullanabilirsiniz. + * initdb s�ras�nda �ntan�ml� C locale'i kullan�lmal�d�r. + + 4.9) query-optimizer'�n sorgular�m� nas�l de�erlendirdi�ini, i�leme + soktu�unu nas�l g�rebilirim? + + EXPLAIN yard�m sayfas�na bak�n�z. + + 4.10) R-tree index nedir? + + R-tree index, uzaysal (spatial) verileri indexlemek i�in kullan�l�r. + Bir hash index, dizi aramalar�nda (range search) kullan�lamaz. B-tree + index dizi aramalar�nda sadece tek boyutlu �al��maktad�r. R-tree, �ok + boyutlu veriyi destekler. �rne�in, e�er bir R-tree index point veri + tipi �zerinde in�a edililebilirse, sistem "select all points within a + bounding rectangle" gibi sorgulara daha verimli yan�tlar verecektir. + + Orijinal R-tree tasar�m�n� a��klayan belge: + + 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. + + Bu belgeyi, Stonebraker'�n "Readings in Database Systems" kitab�nda + bulabilirsiniz. + + G�m�l� R-tree indexleri poligon ve boxlar� kullanabilir. Teorik + olarak, R-tree indexlerin �zelliklerini geni�letmek bir miktar �aba + gerektirir ve bunun nas�l yap�laca��na dair bir belgemiz hen�z + bulunmamaktad�r. + + 4.11) Genetic Query Optimizer nedir? + + GEQO mod�l�, Genetic Algorithm(GA) kullan�larak tablolar + birle�tirildi�inde sorgu optimizasyonunu h�zland�r�r. + + 4.12) D�zenli ifade (Regular Expression) aramalar�n� ve b�y�k/k���k harfe + duyars�z aramalar� nas�l yapabilirim? Bu b�y�k(k���k harfe duyarl� aramalar + i�in index'i nas�l kullanabilirim? + + ~ operat�r� d�zenli ifade e�le�mesi ve ~* b�y�k/k���k harfe duyars�z + d�zenli ifade e�le�mesi yapar. B�y�k/k���k harfe duyarl� olan LIKE'�n + b�y�k/k���k harfe duyars�z olan bi�imi ILIKE't�r ve PostgreSQL 7.1 + s�r�m� ile birlikte gelmi�tir. + + B�y�k-k���k harfe duyars�z e�itlik kar��la�t�rmalar� a�a��daki gibi + ifade edilir: SELECT * FROM tab WHERE lower(col) = 'abc' - - -Bu standart bir index yaratmayacakt�r. Ancak e�er fonksiyonel bir index yarat�rsan�z; o kullan�lacakt�r: - + + Bu standart bir index yaratmayacakt�r. Ancak e�er fonksiyonel bir + index yarat�rsan�z; o kullan�lacakt�r: CREATE INDEX tabindex on tab (lower(col)); -4.13) Bir sorguda, bir alanin "NULL" oldu�unu nas�l ortaya ��karabilirim? - -Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. -4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? - -Veri Tipi �� Ad� Not + 4.13) Bir sorguda, bir alanin "NULL" oldu�unu nas�l ortaya ��karabilirim? + + Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. + + 4.14) �esitli karakter tipleri aras�ndaki farklar nelerdir? + +Veri Tipi �� Ad� Not -------------------------------------------------- VARCHAR(n) varchar boyut en b�y�k uzunlu�u verir; sadece verilen kadar veri tutulur. CHAR(n) bpchar belirtilen uzunlu�a kadar sonuna bo�luk eklenir. -TEXT text uzunlukta herhangi bir �st s�n�r yoktur. +TEXT text uzunlukta herhangi bir �st s�n�r yoktur. BYTEA bytea variable-length byte array (null-byte safe) -"char" char bir karakter - - -�� adlar� (internal name) sistem kataloglar�n� ve baz� hata mesajlar�n� incelerken g�receksiniz. - -�lk d�rt veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt uzunluktur; devam� da veridir.) Dolay�s�yla, kullan�lan -ger�ek alan, belirtilen alandan biraz daha b�y�kt�r. Ancak, bu veri tipleri, s�k��t�r�lmaya tabi tutulabilir; -dolay�s�yla disk alan� beklenilenden k���k olabilir. VARCHAR(n) b�y�kl��� artabilen ama en b�y�k uzunlu�u s�n�rl� olan -verileri saklamak i�in en uygun y�ntemdir. TEXT, 1 GB b�y�kl��e kadar olan verileri tutmak i�in kullan�l�r. - -CHAR(n), ayn� uzunluktaki dizilerin saklanmas� i�in kullan�m�r. CHAR(n) belirtilen uzunlu�a kadar bo�luk ile doldurur; -ancak VARCHAR(n) sadece verilen karakterleri saklar. BYTEA binary veri saklamak i�indir; ayr�ca "NULL" bayt i�eren -de�erleri de saklar. Burada anlat�lan �� veri tipi de benzer ba�ar�m karakteristiklere sahiptir. -4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? - -PostgreSQL'de SERIAL veri tipi vard�r. Bu veri tipi bir sequence ve kolon �zerinde bir index yarat�r. - -�rnek, a�a��daki sorgu: - +"char" char bir karakter + + �� adlar� (internal name) sistem kataloglar�n� ve baz� hata + mesajlar�n� incelerken g�receksiniz. + + �lk d�rt veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt + uzunluktur; devam� da veridir.) Dolay�s�yla, kullan�lan ger�ek alan, + belirtilen alandan biraz daha b�y�kt�r. Ancak, bu veri tipleri, + s�k��t�r�lmaya tabi tutulabilir; dolay�s�yla disk alan� beklenilenden + k���k olabilir. VARCHAR(n) b�y�kl��� artabilen ama en b�y�k uzunlu�u + s�n�rl� olan verileri saklamak i�in en uygun y�ntemdir. TEXT, 1 GB + b�y�kl��e kadar olan verileri tutmak i�in kullan�l�r. + + CHAR(n), ayn� uzunluktaki dizilerin saklanmas� i�in kullan�m�r. + CHAR(n) belirtilen uzunlu�a kadar bo�luk ile doldurur; ancak + VARCHAR(n) sadece verilen karakterleri saklar. BYTEA binary veri + saklamak i�indir; ayr�ca "NULL" bayt i�eren de�erleri de saklar. + Burada anlat�lan �� veri tipi de benzer ba�ar�m karakteristiklere + sahiptir. + + 4.15.1) Nas�l serial/otomatik artan (auto-incrementing) bir alan + yaratabilirim? + + PostgreSQL'de SERIAL veri tipi vard�r. Bu veri tipi bir sequence ve + kolon �zerinde bir index yarat�r. + + �rnek, a�a��daki sorgu: CREATE TABLE person ( id SERIAL, name TEXT -); - - -buna �evrilir: - +); + + buna �evrilir: 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 ); - - -Sequenceler hakk�nda daha fazla bilgi i�in create_sequence yard�m sayfas�na bakabilirsiniz. Her sat�r�n OID alan�n� -tekil bir say� olarak alabilirsiniz. Ancak, veritaban�n�z�n dump'�n� al�p yeniden y�klerseniz, OID de�erlerini -koruyabilmek i�in pg_dump'�n -o parametresini ya da "COPY WITH OIDS" se�ene�ini kullanman�z gerekecektir. -4.15.2) SERIAL giri�inin degerini nas�l alabilirim? - -Bir yakla��m, sequence nesnesindeki SERIAL de�erini, veriyi girmeden �nce nextval() ile al�p, ald���n�z de�eri -kendinizin girmesidir. 4.15.1'deki �rnek tabloyu kullanarak bir �rnek verelim: - +CREATE UNIQUE INDEX person_id_key ON person ( id ); + + Sequenceler hakk�nda daha fazla bilgi i�in create_sequence yard�m + sayfas�na bakabilirsiniz. Her sat�r�n OID alan�n� tekil bir say� + olarak alabilirsiniz. Ancak, veritaban�n�z�n dump'�n� al�p yeniden + y�klerseniz, OID de�erlerini koruyabilmek i�in pg_dump'�n -o + parametresini ya da "COPY WITH OIDS" se�ene�ini kullanman�z + gerekecektir. + + 4.15.2) SERIAL giri�inin degerini nas�l alabilirim? + + Bir yakla��m, sequence nesnesindeki SERIAL de�erini, veriyi girmeden + �nce nextval() ile al�p, ald���n�z de�eri kendinizin girmesidir. + 4.15.1'deki �rnek tabloyu kullanarak bir �rnek verelim: new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -Di�er sorgular i�in new_id'de yeni de�erin saklanmas� gerekir. Otomatik olarak yarat�lan SEQUENE nesnesinin ad�, __seq -�eklinde olacakt�r (< > i�aretleri olmadan). - -Alternatif olarak, atanm�� SERIAL de�erini, de�er girildikten sonra currval() fonksiyonu ile alabilirsiniz: - - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); - - -Son olarak, �n tan�ml� de�eri bulmak i�in INSERT ifadesinden d�nen OID de�erini kullanabilirsiniz; ancak bu en az -ta��nabilir ��z�m olacakt�r. Perl'de, Edmund Mergl'in DBD:Pg m�d�l� ile birlikte DBI kullanarak, OID de�eri -$sth->execute() �al��t�r�ld�ktan sonra $sth->(pg_oid_status) ile al�nabilir. -4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? - -Hay�r. curval(), t�m kullan�c�lar de�il, backend taraf�ndan atanan ge�erli de�eri d�nd�r�r. -4.15.4) Neden sequence say�lar� transaction i�leminin iptalinden sonra yeniden kullan�l�yor? Neden sequence/SERIAL -kolonumdaki say�larda atlamalar oluyor? - -Uyumlulu�u artt�rmak i�in, sequence de�erleri �al��an transaction'lara gerekti�i �ekilde aktar�l�r ve transaction -bitene kadar o de�er kilitlenmez. Bu, iptal edilen transaction i�lemleri nedeniyle bo�luklara neden olur. -4.16) OID nedir? TID nedir? - -OIDler, tekil sat�r numaralar�na PostgreSQL'in yan�t�d�r. PostgreSQL'de yarat�lan her say�, tekil bir OID al�r. initdb -i�lemi s�ras�nda yarat�lan t�m OID'ler 16384'ten k���kt�r (backend/access/transam.h). Kullan�c�lar taraf�ndan yarat�lan -t�m OID'ler bu say�ya e�it ya da bu say�dan b�y�kt�r. Varsay�lan durumda, t�m bu OIDler sadece bir tablo ya da -veritaban�nda de�il, t�m PostgreSQL kurulumunda tekildir. - -PostgreSQL OIDleri, tablolar aras�nda sat�rlar� ili�kilendirmek i�in kendi i� tablolar�nda kullan�r. Bu OIDler belirli -kullan�c� sat�rlar�n� belirtmek i�in kullanabilir ve join i�lemlerinde kullan�l�r. OID de�erlerini saklamak i�in OID -kolon tipini kullanman�z �nerinir. Daha h�zl� bir eri�im i�in, OID alan�nda bir index yaratabilirsiniz. - -OID'ler yeni sat�rlara, t�m veritabanlar� taraf�nda kullan�lan ortak bir alandan atan�rlar. E�er OID'i ba�ka bir de�ere -e�itlemek isterseniz ya da tablonun bir kopyas�n� orijinal OIDler ile ��karmak isterseniz, bu m�mk�nd�r: - - 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'; - - -OIDler 4-bit tamsay� olarak saklan�rlar ve 4 milyarda overflow olacakt�r. Kimse bu say�ya ula�t���na dair bir bilgi -iletmedi ve bu s�n�r� kimse bu s�n�ra ula�madan kald�raca��z. - -TIDler, belirli fiziksel sat�rlar block ve offset de�erleri ile belirtmekte kullan�l�r. TIDler, sat�rlar de�i�ti�inde -ya da yeniden y�klendi�inde de�i�irler. Index girdileri taraf�ndan fiziksel sat�rlar� g�stermek i�in kullan�l�rlar. - -4.17) PostgreSQL'de kullan�lan baz� terimlerin anlamlar� nelerdir? - -Kaynak kodun bir k�sm� ve eski belgeler, daha geni� kullan�m alan� olan terimleri kullan�rlar. Bunlar�n baz�lar�: - - * table, relation, class - * row, record, tuple - * column, field, attribute - * retrieve, select - * replace, update - * append, insert - * OID, serial value - * portal, cursor - * range variable, table name, table alias - -Genel veritaban� terimleri, http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html -adresinde bulunabilir. -4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� al�yorum? - -Sisteminizde sanal belle�inizi t�ketmi� olabilirsiniz, ya da �ekirde�iniz belli kaynaklar icin d���k bir s�n�ra sahip -olabilir. postmaster'� ba�latmadan �nce a�a��dakileri deneyebilirsiniz: - + Di�er sorgular i�in new_id'de yeni de�erin saklanmas� gerekir. + Otomatik olarak yarat�lan SEQUENE nesnesinin ad�, <tablo ad�>_<serial + kolonu ad�>_seq �eklinde olacakt�r (< > i�aretleri olmadan). + + Alternatif olarak, atanm�� SERIAL de�erini, de�er girildikten sonra + currval() fonksiyonu ile alabilirsiniz: + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + + Son olarak, �n tan�ml� de�eri bulmak i�in INSERT ifadesinden d�nen OID + de�erini kullanabilirsiniz; ancak bu en az ta��nabilir ��z�m + olacakt�r. Perl'de, Edmund Mergl'in DBD:Pg m�d�l� ile birlikte DBI + kullanarak, OID de�eri $sth->execute() �al��t�r�ld�ktan sonra + $sth->(pg_oid_status) ile al�nabilir. + + 4.15.3) currval() ve nextval() di�er kullan�c�lara sorun yaratmaz m�? + + Hay�r. curval(), t�m kullan�c�lar de�il, backend taraf�ndan atanan + ge�erli de�eri d�nd�r�r. + + 4.15.4) Neden sequence say�lar� transaction i�leminin iptalinden sonra + yeniden kullan�l�yor? Neden sequence/SERIAL kolonumdaki say�larda atlamalar + oluyor? + + Uyumlulu�u artt�rmak i�in, sequence de�erleri �al��an transaction'lara + gerekti�i �ekilde aktar�l�r ve transaction bitene kadar o de�er + kilitlenmez. Bu, iptal edilen transaction i�lemleri nedeniyle + bo�luklara neden olur. + + 4.16) OID nedir? TID nedir? + + OIDler, tekil sat�r numaralar�na PostgreSQL'in yan�t�d�r. + PostgreSQL'de yarat�lan her say�, tekil bir OID al�r. initdb i�lemi + s�ras�nda yarat�lan t�m OID'ler 16384'ten k���kt�r + (backend/access/transam.h). Kullan�c�lar taraf�ndan yarat�lan t�m + OID'ler bu say�ya e�it ya da bu say�dan b�y�kt�r. Varsay�lan durumda, + t�m bu OIDler sadece bir tablo ya da veritaban�nda de�il, t�m + PostgreSQL kurulumunda tekildir. + + PostgreSQL OIDleri, tablolar aras�nda sat�rlar� ili�kilendirmek i�in + kendi i� tablolar�nda kullan�r. Bu OIDler belirli kullan�c� + sat�rlar�n� belirtmek i�in kullanabilir ve join i�lemlerinde + kullan�l�r. OID de�erlerini saklamak i�in OID kolon tipini kullanman�z + �nerinir. Daha h�zl� bir eri�im i�in, OID alan�nda bir index + yaratabilirsiniz. + + OID'ler yeni sat�rlara, t�m veritabanlar� taraf�nda kullan�lan ortak + bir alandan atan�rlar. E�er OID'i ba�ka bir de�ere e�itlemek + isterseniz ya da tablonun bir kopyas�n� orijinal OIDler ile ��karmak + isterseniz, bu m�mk�nd�r: + 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'; + + OIDler 4-bit tamsay� olarak saklan�rlar ve 4 milyarda overflow + olacakt�r. Kimse bu say�ya ula�t���na dair bir bilgi iletmedi ve bu + s�n�r� kimse bu s�n�ra ula�madan kald�raca��z. + + TIDler, belirli fiziksel sat�rlar block ve offset de�erleri ile + belirtmekte kullan�l�r. TIDler, sat�rlar de�i�ti�inde ya da yeniden + y�klendi�inde de�i�irler. Index girdileri taraf�ndan fiziksel + sat�rlar� g�stermek i�in kullan�l�rlar. + + 4.17) PostgreSQL'de kullan�lan baz� terimlerin anlamlar� nelerdir? + + Kaynak kodun bir k�sm� ve eski belgeler, daha geni� kullan�m alan� + olan terimleri kullan�rlar. Bunlar�n baz�lar�: + * table, relation, class + * row, record, tuple + * column, field, attribute + * retrieve, select + * replace, update + * append, insert + * OID, serial value + * portal, cursor + * range variable, table name, table alias + + Genel veritaban� terimleri, + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.html adresinde bulunabilir. + + 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatas�n� al�yorum? + + Sisteminizde sanal belle�inizi t�ketmi� olabilirsiniz, ya da + �ekirde�iniz belli kaynaklar icin d���k bir s�n�ra sahip olabilir. + postmaster'� ba�latmadan �nce a�a��dakileri deneyebilirsiniz: ulimit -d 262144 -limit datasize 256m - - -Kabu�unuza ba�l� olarak, bunlardan sadece biri olumlu sonu� verecektir, ama bu i�lem veri segment s�n�r�n�z� -artt�racak, ve belki de sorgunuzun tamamlanmas�n� sa�layacakt�r. Bu komut, varolan i�leme (current process) ve komut -�al��t�r�ld�ktan sonraki t�m alt i�lemlere uygulan�r. E�er SQL istemcinizle, backend'in �ok fazla veri d�nd�rmesi -nedeniyle bir sorun ya��yorsan�z, bunu istemciyi ba�latmadan �nce deneyiniz. -4.19) Hangi PostgreSQL s�r�m�n� �al��t�rd���m� nas�l g�rebilirim? - -psql arabiriminde, select version(); yaz�n�z. -4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" hatas�n� veriyor? - -Large object i�lemlerinizin u�lar�na, yani lo_open ... lo_close komutlar�n�n �evresine, BEGIN WORK ve COMMIT koyman�z -gerekmektedir; - -�u anda, PostgreSQL kurallar� large objectleri transaction commit edildi�inde kapatarak uygulamaktad�r. Dolay�s�yla -handle ile yap�lacak ilk �ey invalid large obj descriptor hatas� ile sonu�lanacakt�r.Dolay�s�yla �al��an kodunuz e�er -transaction kullanmazsan�z hata mesajlar� �retecektir. - -E�er ODBC gibi bir istemci arabirimi kullan�yorsan�z, auto-commit'i kapatman�z gerekebilir. -4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden How do I create a column that will default to the current -time? - -Alttakini kullanabilirsiniz: - +limit datasize 256m + + Kabu�unuza ba�l� olarak, bunlardan sadece biri olumlu sonu� + verecektir, ama bu i�lem veri segment s�n�r�n�z� artt�racak, ve belki + de sorgunuzun tamamlanmas�n� sa�layacakt�r. Bu komut, varolan i�leme + (current process) ve komut �al��t�r�ld�ktan sonraki t�m alt i�lemlere + uygulan�r. E�er SQL istemcinizle, backend'in �ok fazla veri d�nd�rmesi + nedeniyle bir sorun ya��yorsan�z, bunu istemciyi ba�latmadan �nce + deneyiniz. + + 4.19) Hangi PostgreSQL s�r�m�n� �al��t�rd���m� nas�l g�rebilirim? + + psql arabiriminde, select version(); yaz�n�z. + + 4.20) Neden large-object i�lemlerim, "invalid large obj descriptor" + hatas�n� veriyor? + + Large object i�lemlerinizin u�lar�na, yani lo_open ... lo_close + komutlar�n�n �evresine, BEGIN WORK ve COMMIT koyman�z gerekmektedir; + + �u anda, PostgreSQL kurallar� large objectleri transaction commit + edildi�inde kapatarak uygulamaktad�r. Dolay�s�yla handle ile yap�lacak + ilk �ey invalid large obj descriptor hatas� ile + sonu�lanacakt�r.Dolay�s�yla �al��an kodunuz e�er transaction + kullanmazsan�z hata mesajlar� �retecektir. + + E�er ODBC gibi bir istemci arabirimi kullan�yorsan�z, auto-commit'i + kapatman�z gerekebilir. + + 4.21) �u andaki zaman� �ntan�ml� de�er olarak kabul eden How do I create a + column that will default to the current time? + + Alttakini kullanabilirsiniz: CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); - - -4.22) Neden IN kullanan subquery'lerim �ok yavas? - -7.4 s�r�m�nden �nce, subqueryler. E�er subquery sadece birka� sat�r ve outer query bol say�da sat�r d�nd�r�yorsa, IN en -h�zl�s�d�r. Sorgular� h�zland�rmak i�in IN yerine EXISTS kullan�n: - + + 4.22) Neden IN kullanan subquery'lerim �ok yavas? + + 7.4 s�r�m�nden �nce, subqueryler. E�er subquery sadece birka� sat�r ve + outer query bol say�da sat�r d�nd�r�yorsa, IN en h�zl�s�d�r. Sorgular� + h�zland�rmak i�in IN yerine EXISTS kullan�n: SELECT * FROM tab WHERE col1 IN (SELECT col2 FROM TAB2) - - -sorgusunu, a�a��daki ile de�i�tirin: - + + sorgusunu, a�a��daki ile de�i�tirin: SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) - - -Bu i�lemin h�zl� olmas� i�in, subcol'un indexlenmi� bir kolon olmas� gerekmektedir. - -7.4 s�r�m� ve sonras�nda, IN asl�nda normal sorgularla ayn� karma��k join tekniklerini kullan�r ve EXISTS'e tercih -edilir. -4.23) Outer join i�lemini nas�l yapabilirim? - -PostgreSQL outer joins islemlerini SQL standartlar�n� kullanarak ger�ekle�tirmektedir. A�a��da 2 �rnek bulunmaktad�r: - + WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + + Bu i�lemin h�zl� olmas� i�in, subcol'un indexlenmi� bir kolon olmas� + gerekmektedir. + + 7.4 s�r�m� ve sonras�nda, IN asl�nda normal sorgularla ayn� karma��k + join tekniklerini kullan�r ve EXISTS'e tercih edilir. + + 4.23) Outer join i�lemini nas�l yapabilirim? + + PostgreSQL outer joins islemlerini SQL standartlar�n� kullanarak + ger�ekle�tirmektedir. A�a��da 2 �rnek bulunmaktad�r: SELECT * -FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - - -ya da - +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + ya da SELECT * -FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - - -Bu �zde� sorgular t1.col' i t2.col'ye join ederler ve ayn� zamanda t1'deki unjoined sat�rlar� (t2'de e�lenmemi� -olanlarla) d�nd�r�rler. RIGHT JOIN t2'nin unjoined sat�rlar�n� ekleyecektir. Bir FULL join, e�le�mi� b�t�n sat�rlar� ve -t1 ile t2'den t�m ba�lanmam�� (unjoined) sat�rlar� al�r. OUTER s�zc��� se�imseldir ve LEFT, RIGHT ve FULL join -i�lemlerinde oldu�u kabul edilir. S�radan join i�lemleri INNER JOIN olarak adland�r�l�r. - -�nceki s�r�mlerde, OUTER JOINler UNION ve NOT IN kullan�larak sim�le edilebiliyordu. �rne�in, tab1 ve tab2'yi -birle�tirirken, a�a��daki sorgu iki tablonun d��tan ba�lanmas�n� sa�lar: - +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + Bu �zde� sorgular t1.col' i t2.col'ye join ederler ve ayn� zamanda + t1'deki unjoined sat�rlar� (t2'de e�lenmemi� olanlarla) d�nd�r�rler. + RIGHT JOIN t2'nin unjoined sat�rlar�n� ekleyecektir. Bir FULL join, + e�le�mi� b�t�n sat�rlar� ve t1 ile t2'den t�m ba�lanmam�� (unjoined) + sat�rlar� al�r. OUTER s�zc��� se�imseldir ve LEFT, RIGHT ve FULL join + i�lemlerinde oldu�u kabul edilir. S�radan join i�lemleri INNER JOIN + olarak adland�r�l�r. + + �nceki s�r�mlerde, OUTER JOINler UNION ve NOT IN kullan�larak sim�le + edilebiliyordu. �rne�in, tab1 ve tab2'yi birle�tirirken, a�a��daki + sorgu iki tablonun d��tan ba�lanmas�n� sa�lar: SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 @@ -838,60 +1114,79 @@ UNION ALL SELECT tab1.col1, NULL FROM tab1 WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) -ORDER BY col1 - - -4.24) Ayn� andan birden fazla veritaban�nda nas�l i�lem yapabilirim? - -Mevcut veritaban�n�z d���ndaki ba�ka bir veritaban�n�z� sorgulaman�z�n bir yolu bulunmamaktad�r. Bunun nedeni, -PostgreSQL'in veritaban�na �zel sistem kataloglar� y�klemesidir. Bu nedenle, cross-database bir sorgunun nas�l -davranaca��n� kestirmek zordur. - -contrib/dblink fonksiyon �a�r�lar�n� kullanarak cross-database sorgulara izin verir. Tabii ki, bir istemci de�i�ik -veritabanlar�na ayn� anda eri�im sa�layabilir ve bilgiyi bu �ekilde birle�tirebilir. - -4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? - -7.3 s�r�m�nde, bir fonksiyondan kolayl�kla �oklu sat�r ya da s�tun d�nd�rebilirsiniz. -(http://techdocs.postgresql.org/guides/SetReturningFunctions) - -4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo yaratma/kald�rma i�lemlerini yapam�yoruz? - -PL/PgSQL fonksiyon i�erikleri cache'ler. Bunun istenmeyen bir taraf�, e�er bir PL/PgSQL fonksiyonu ge�ici bir tabloya -eri�iyorsa ve bu tablo ileride kald�r�l�p yeniden olu�turulduktan sonra fonksiyon yeniden �a�r�l�rsa, fonksiyon -�al��mayacakt�r; ��nk� cache'lenmi� fonksiyon hala eski ge�ici tabloyu g�steriyor olacakt�r. ��z�m, ge�ici tablo -eri�imleri i�in PL/PgSQL'de EXECUTE kullanmakt�r. Bu, sorgunun her seferinde yeniden i�lenmesini sa�layacakt�r. - -4.27) Hangi �ifreleme se�enekleri bulunmaktad�r? - - * contrib/pgcrypto SQL sorgular�nda kullan�labilmesi i�in �ifreleme fonksiyonlar� i�ermektedir. - * �stemciden sunucuya ileti�imi �ifrelemek i�in, sunucuda ssl se�ene�i postgresql.conf i�inde a��k olmal�d�r. -Ayr�ca,pg_hba.conf dosyas� i�inde host ya da hostssl kayd� mutlaka olmal�d�r ve istemci sslmode kapat�lmamal�d�r. (Ayn� -zamanda,PostgreSQL'in do�al SSL ba�lant�lar� d���nda ssh ya da ssl gibi 3.parti �ifrelenmi� veri iletimi de m�mk�nd�r.) - * Veritaban� kullan�c� ad� ve �ifreleri 7.3 s�r�m� ile birlikte otomatik olarak �ifrelenirler. �nceki s�r�mlerde, -postgresql.conf i�indeki PASSWORD_ENCRYPTION se�ene�ini aktif hale getirmeniz gerekmektedir. - * Sunucunun kendisini �ifreli dosya sistemi �zerinde �al��t�rabilirsiniz. - -PostgreSQL �zelliklerini Geni�letmek - -5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman neden core dump ediyor? - -Sorunun nedeni birden fazla �ey olabilir. Kullan�c�-tan�ml� fonksiyonunuzu stand-alone bir programda �al��t�rmay� -deneyiniz. - -5.2) PostgreSQL'e nas�l yeni tipler/fonksiyonlar ekleyebilirim? - -�al��malar�n�z� pgsql-hackers e-posta listesine g�nderiniz. Kodunuz incelendikten sonra /contrib dizinine konacakt�r. - -5.3) Bir tuple dond�rmek icin bir C fonksiyonunu nasil yazar�m? - -PostgreSQL 7.3 s�r�m� ile birlikte, C, PL/PgSQL ve SQL kullan�larak tablo-d�nd�ren fonksiyonlar tamamen -desteklenmektedir. Ayr�nt�l� bilgi i�in PostgreSQL 7.3.2 Kullan�c� Rehberi'ne bakabilrisiniz. Bir �rne�i -contrib/tablefunc i�inde bulabilirsiniz. - -5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men de�i�iklik ge�erli olmuyor. Neden? - -Makefile'lar include dosyalar� i�in tam bir ba��ml�l�k i�ermezler. �ncelikle make clean, ard�ndan da baska bir make -i�lemi yapman�z gerekir. GCC kullan�yorsan�z, configure beti�inin --enable-depend se�ene�ini, derleyicinin -ba��ml�l�klar� otomatik olarak hesaplamas� i�in kullanabilirsiniz. - +ORDER BY col1 + + 4.24) Ayn� andan birden fazla veritaban�nda nas�l i�lem yapabilirim? + + Mevcut veritaban�n�z d���ndaki ba�ka bir veritaban�n�z� sorgulaman�z�n + bir yolu bulunmamaktad�r. Bunun nedeni, PostgreSQL'in veritaban�na + �zel sistem kataloglar� y�klemesidir. Bu nedenle, cross-database bir + sorgunun nas�l davranaca��n� kestirmek zordur. + + contrib/dblink fonksiyon �a�r�lar�n� kullanarak cross-database + sorgulara izin verir. Tabii ki, bir istemci de�i�ik veritabanlar�na + ayn� anda eri�im sa�layabilir ve bilgiyi bu �ekilde birle�tirebilir. + + 4.25) Bir fonksiyondan nas�l �oklu sat�r ya da kolon d�nd�rebilirim? + + 7.3 s�r�m�nde, bir fonksiyondan kolayl�kla �oklu sat�r ya da s�tun + d�nd�rebilirsiniz. + (http://techdocs.postgresql.org/guides/SetReturningFunctions) + + 4.26) Neden Pl/PgSQL fonksiyonlar� i�inden g�venli bir �ekilde tablo + yaratma/kald�rma i�lemlerini yapam�yoruz? + + PL/PgSQL fonksiyon i�erikleri cache'ler. Bunun istenmeyen bir taraf�, + e�er bir PL/PgSQL fonksiyonu ge�ici bir tabloya eri�iyorsa ve bu tablo + ileride kald�r�l�p yeniden olu�turulduktan sonra fonksiyon yeniden + �a�r�l�rsa, fonksiyon �al��mayacakt�r; ��nk� cache'lenmi� fonksiyon + hala eski ge�ici tabloyu g�steriyor olacakt�r. ��z�m, ge�ici tablo + eri�imleri i�in PL/PgSQL'de EXECUTE kullanmakt�r. Bu, sorgunun her + seferinde yeniden i�lenmesini sa�layacakt�r. + + 4.27) 4.28) Hangi �ifreleme se�enekleri bulunmaktad�r? + + * contrib/pgcrypto SQL sorgular�nda kullan�labilmesi i�in �ifreleme + fonksiyonlar� i�ermektedir. + * �stemciden sunucuya ileti�imi �ifrelemek i�in, sunucuda ssl + se�ene�i postgresql.conf i�inde a��k olmal�d�r. Ayr�ca,pg_hba.conf + dosyas� i�inde host ya da hostssl kayd� mutlaka olmal�d�r ve + istemci sslmode kapat�lmamal�d�r. (Ayn� zamanda,PostgreSQL'in + do�al SSL ba�lant�lar� d���nda ssh ya da ssl gibi 3.parti + �ifrelenmi� veri iletimi de m�mk�nd�r.) + * Veritaban� kullan�c� ad� ve �ifreleri 7.3 s�r�m� ile birlikte + otomatik olarak �ifrelenirler. �nceki s�r�mlerde, postgresql.conf + i�indeki PASSWORD_ENCRYPTION se�ene�ini aktif hale getirmeniz + gerekmektedir. + * Sunucunun kendisini �ifreli dosya sistemi �zerinde + �al��t�rabilirsiniz. + _________________________________________________________________ + + PostgreSQL �zelliklerini Geni�letmek + + 5.1) Kullan�c�-tan�ml� bir fonksiyon yazd�m. psql'de �al��t�rd���m zaman + neden core dump ediyor? + + Sorunun nedeni birden fazla �ey olabilir. Kullan�c�-tan�ml� + fonksiyonunuzu stand-alone bir programda �al��t�rmay� deneyiniz. + + 5.2) PostgreSQL'e nas�l yeni tipler/fonksiyonlar ekleyebilirim? + + �al��malar�n�z� pgsql-hackers e-posta listesine g�nderiniz. Kodunuz + incelendikten sonra /contrib dizinine konacakt�r. + + 5.3) Bir tuple dond�rmek icin bir C fonksiyonunu nasil yazar�m? + + PostgreSQL 7.3 s�r�m� ile birlikte, C, PL/PgSQL ve SQL kullan�larak + tablo-d�nd�ren fonksiyonlar tamamen desteklenmektedir. Ayr�nt�l� bilgi + i�in PostgreSQL 7.3.2 Kullan�c� Rehberi'ne bakabilrisiniz. Bir �rne�i + contrib/tablefunc i�inde bulabilirsiniz. + + 5.4) Bir kaynak dosyas�nda de�i�iklik yapt�m. Yeniden derlememe ra�men + de�i�iklik ge�erli olmuyor. Neden? + + Makefile'lar include dosyalar� i�in tam bir ba��ml�l�k i�ermezler. + �ncelikle make clean, ard�ndan da baska bir make i�lemi yapman�z + gerekir. GCC kullan�yorsan�z, configure beti�inin --enable-depend + se�ene�ini, derleyicinin ba��ml�l�klar� otomatik olarak hesaplamas� + i�in kullanabilirsiniz. diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 295ca20f4ae..32ed55ac000 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -10,7 +10,7 @@ alink="#0000ff"> <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Thu Feb 24 23:18:31 EST 2005</P> + <P>Last updated: Fri Mar 11 16:42:06 EST 2005</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:[email protected]">[email protected]</A>) @@ -197,7 +197,7 @@ and Win2003. A prepackaged installer is available at <a href= "http://pgfoundry.org/projects/pginstaller"> http://pgfoundry.org/projects/pginstaller</a>. MSDOS-based versions - of Windows (Win95, Win98, WinMe) can run PostgreSQL using Cygwin. + of Windows (Win95, Win98, WinMe) can run PostgreSQL using Cygwin.</P> <p>There is also a Novell Netware 6 port at <a href="http://forge.novell.com">http://forge.novell.com</a>, @@ -217,14 +217,14 @@ via email. The main web site to subscribe to the email lists is <a href="http://www.postgresql.org/community/lists/"> http://www.postgresql.org/community/lists/</a>. The <I>general</I> - or <I>bugs</I> lists are a good place to start. + or <I>bugs</I> lists are a good place to start.</P> <P>The major IRC channel is <I>#postgresql</I> on Freenode (<I>irc.freenode.net</I>). To connect you can use the Unix program <CODE>irc -c '#postgresql' "$USER" irc.freenode.net</CODE> or use any of the other popular IRC clients. A Spanish one also exists on the same network, (<I>#postgresql-es</I>), and a French one, - (<I>#postgresqlfr</I>). There is also a PostgreSQL channel on EFNet. + (<I>#postgresqlfr</I>). There is also a PostgreSQL channel on EFNet.</P> <P>A list of commercial support companies is available at <A href= "http://techdocs.postgresql.org/companies.php"> @@ -482,7 +482,7 @@ <li>Use of Prepared queries</li> <li>Use of <SMALL>ANALYZE</SMALL> to maintain accurate optimizer statistics</li> - <li>Regular use of <SMALL>VACUUM</SMALL> or <I>pg_autovacuum</I> + <li>Regular use of <SMALL>VACUUM</SMALL> or <I>pg_autovacuum</I></li> <li>Dropping of indexes during large data changes</li> </ul><BR> <BR> @@ -609,7 +609,7 @@ <SMALL>SELECT</SMALL> time, use a cursor and <SMALL>FETCH</SMALL>.</P> - <P>To <SMALL>SELECT</SMALL> a random row, use: + <P>To <SMALL>SELECT</SMALL> a random row, use:</P> <PRE> SELECT col FROM tab @@ -643,7 +643,7 @@ <H4><A name="4.3">4.3</A>) How do you change a column's data type?</H4> <P>Changing the data type of a column can be done easily in 8.0 - and later with <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>. + and later with <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P> <P>In earlier releases, do this:</P> <PRE> @@ -661,7 +661,7 @@ <P>These are the limits:</P> <BLOCKQUOTE> -<TABLE BORDER=1> +<TABLE > <TR><TD>Maximum size for a database?</TD><TD>unlimited (32 TB databases exist)</TD></TR> <TR><TD>Maximum size for a table?</TD><TD>32 TB</TD></TR> @@ -731,7 +731,7 @@ table?</TD><TD>unlimited</TD></TR> used if the table is larger than a minimum size, and the query selects only a small percentage of the rows in the table. This is because the random disk access caused by an index scan can be - slower than a straight read through the table, or sequential scan. + slower than a straight read through the table, or sequential scan. </P> <P>To determine if an index should be used, PostgreSQL must have statistics about the table. These statistics are collected using @@ -843,7 +843,7 @@ table?</TD><TD>unlimited</TD></TR> <H4><A name="4.10">4.10</A>) What is the difference between the various character types?</H4> <BLOCKQUOTE> -<TABLE BORDER=1> +<TABLE > <TR><TH>Type</TH><TH>Internal Name</TH><TH>Notes</TH></TR> <TR><TD>VARCHAR(n)</TD><TD>varchar</TD><TD>size specifies maximum length, no padding</TD></TR> @@ -1057,7 +1057,7 @@ length</TD></TR> <P>It is easy using set-returning functions, <a href="http://techdocs.postgresql.org/guides/SetReturningFunctions"> - http://techdocs.postgresql.org/guides/SetReturningFunctions</a>. + http://techdocs.postgresql.org/guides/SetReturningFunctions</a></P>. <H4><A name="4.20">4.20</A>) Why do I get "relation with OID ##### does not exist" errors when accessing temporary tables in PL/PgSQL @@ -1082,7 +1082,7 @@ length</TD></TR> <I>pg_hba.conf</I>, and the client <I>sslmode</I> must not be <I>disable.</I> (Note that it is also possible to use a third-party encrypted transport, such as stunnel or ssh, rather than PostgreSQL's - native SSL connections.) + native SSL connections.)</LI> <LI>Database user passwords are automatically encrypted when stored in the system tables.</LI> <LI>The server can run using an encrypted file system.</LI> diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 1098913c0aa..76872983670 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -13,7 +13,7 @@ <H1>Developer's Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Fri Mar 11 08:09:23 EST 2005</P> + <P>Last updated: Fri Mar 11 16:43:05 EST 2005</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:[email protected]">[email protected]</A>)<BR> @@ -26,9 +26,7 @@ <BR> - <CENTER> <H2>General Questions</H2> - </CENTER> <A href="#1.1">1.1</A>) How do I get involved in PostgreSQL development?<BR> <A href="#1.2">1.2</A>) What development environment is required @@ -59,9 +57,7 @@ site development?<BR> - <CENTER> <H2>Technical Questions</H2> - </CENTER> <A href="#2.1">2.1</A>) How do I efficiently access information in tables from the backend code?<BR> <A href="#2.2">2.2</A>) Why are table, column, type, function, @@ -152,7 +148,7 @@ http://momjian.postgresql.org/cgi-bin/pgpatches</a>, and those that are being kept for the next release, <a href="http://momjian.postgresql.org/cgi-bin/pgpatches2"> - http://momjian.postgresql.org/cgi-bin/pgpatches2</a>. + http://momjian.postgresql.org/cgi-bin/pgpatches2</a>.</P> <H3><A name="1.5">1.5</A>) Where can I learn more about the code?</H3> @@ -703,9 +699,7 @@ href= "http://xzilla.postgresql.org/todo">http://xzilla.postgresql.org/todo</A></P> - <CENTER> <H2>Technical Questions</H2> - </CENTER> <H3><A name="2.1">2.1</A>) How do I efficiently access information in tables from the backend code?</H3> diff --git a/doc/src/FAQ/FAQ_MINGW.html b/doc/src/FAQ/FAQ_MINGW.html index 924d20ef4d8..2f8bfc4ced6 100644 --- a/doc/src/FAQ/FAQ_MINGW.html +++ b/doc/src/FAQ/FAQ_MINGW.html @@ -71,8 +71,6 @@ The mailing list for discussion is <i>[email protected]</i>. You can subscribe by sending an email body containing the word <i>subscribe</i> to <i><a href="mailto:[email protected]">[email protected]</a></i>.<br> -<ul> -</ul> <h2>Resources</h2> There are several resources that helped us complete this port:<br> <ul> diff --git a/doc/src/FAQ/FAQ_brazilian.html b/doc/src/FAQ/FAQ_brazilian.html index a07ffbdf9c1..ad123d5bee9 100644 --- a/doc/src/FAQ/FAQ_brazilian.html +++ b/doc/src/FAQ/FAQ_brazilian.html @@ -17,7 +17,7 @@ </P> <P>Traduzido por: Euler Taveira de Oliveira (<A href= - "mailto:[email protected]">[email protected]</A>)<BR> + "mailto:[email protected]">[email protected]</A>)</P> <P>A versão mais recente desse documento pode ser vista em <A href= "http://www.postgresql.org/files/documentation/faqs/FAQ.html"> @@ -202,14 +202,14 @@ baseados no NT tais como Win2000, WinXP e Win2003. Um instalador está disponível em <a href= "http://pgfoundry.org/projects/pginstaller"> - http://pgfoundry.org/projects/pginstaller</a> Vers�es do Windows - baseados no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin. + http://pgfoundry.org/projects/pginstaller</a> Versões do Windows + baseados no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P> <P>Há também um porte para Novell Netware 6 em <A href="http://forge.novell.com">http://forge.novell.com</A> - e uma vers�o para OS/2 (eComStation) em <a href= - "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> - http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>.</P> + e uma versão para OS/2 (eComStation) em <a href= + "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>.</P> <H4><A name="1.5">1.5</A>) Onde eu posso conseguir o PostgreSQL?</H4> @@ -253,7 +253,7 @@ Há também uma lista de discussão dos desenvolvedores dispon <P>Outras listas de discussões e informações sobre o PostgreSQL podem ser encontradas na homepage do PostgreSQL em:</P> <BLOCKQUOTE> - <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> + <P><A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A></P> </BLOCKQUOTE> <P>O principal canal de IRC é o <I>#postgresql</I> na Freenode (<I>irc.freenode.net</I>). Para se conectar você pode utilizar o comando Unix <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ou utilizar qualquer outro cliente de IRC. Um canal hispânico (<I>#postgresql-es</I>) e um francês (<I>#postgresqlfr</I>) também existem na mesma rede. Há também um canal PostgreSQL na EFNet.</P> @@ -499,9 +499,9 @@ Há também uma lista de discussão dos desenvolvedores dispon <P>Se o <I>postmaster</I> não está sendo executado, você pode executar o núcleo do <I>postgres</I> a partir da linha de comando, e digitar a sua sentença <SMALL>SQL</SMALL> diretamente. Isso é recomendado <B>somente</B> para fins de depuração. Note que uma nova linha termina a consulta, e não um ponto-e-vírgula. Se você compilou com símbolos de depuração, você pode utilizar um depurador para ver o que está acontecendo. Como o núcleo (backend) não foi iniciado a partir do <I>postmaster</I>, ele não está executando em um ambiente idêntico e problemas de iteração com o núcleo/travamento não podem ser reproduzidos.</P> -<P>Se o <i>postmaster</i> está sendo executado, inicie o <i>psql</i> em uma janela, e então encontre o <small>PID</small> do processo <i>postgres</i> utilizado pelo <i>psql</i> utilizando <pre>SELECT pg_backend_pid()</pre>. Utilize um depurador para anexar ao <small>PID</small> do <i>postgres</i>. Você pode definir pontos de parada (<i>breakpoints</i>) no depurador e digitar consultas no <i>psql</i>. Se você está depurando a inicialização do <i>postgres</i>, você pode definir PGOPTIONS="-W n" e então iniciar o <i>psql</i>. Isto retardará a inicialização por <i>n</i> segundos então você pode anexar o depurador ao processo, definir quaisquer pontos de parada e continuar pela sequência de inicialização.</p> +<P>Se o <i>postmaster</i> está sendo executado, inicie o <i>psql</i> em uma janela, e então encontre o <small>PID</small> do processo <i>postgres</i> utilizado pelo <i>psql</i> utilizando <code>SELECT pg_backend_pid()</code>. Utilize um depurador para anexar ao <small>PID</small> do <i>postgres</i>. Você pode definir pontos de parada (<i>breakpoints</i>) no depurador e digitar consultas no <i>psql</i>. Se você está depurando a inicialização do <i>postgres</i>, você pode definir PGOPTIONS="-W n" e então iniciar o <i>psql</i>. Isto retardará a inicialização por <i>n</i> segundos então você pode anexar o depurador ao processo, definir quaisquer pontos de parada e continuar pela sequência de inicialização.</p> -<P>Há várias variáveis de configuração do servidor <pre>log_*</pre> que habilitam a exibição de estatísticas que podem ser muito úteis para depuração e medidas de performance.</P> +<P>Há várias variáveis de configuração do servidor <code>log_*</code> que habilitam a exibição de estatísticas que podem ser muito úteis para depuração e medidas de performance.</P> <P>Você também pode compilar com perfil para ver que funções estão demandando tempo de execução. Os arquivo de perfil do núcleo (backend) serão colocados no diretório <I>pgsql/data/base/dbname</I>. O arquivo de perfil do cliente será colocado no diretório atual do cliente. O Linux requer uma compilação com <I>-DLINUX_PROFILE</I> para criação dos perfis.</P> @@ -526,7 +526,7 @@ Há também uma lista de discussão dos desenvolvedores dispon <H4><A name="3.11">3.11</A>) Que tipo de hardware eu devo usar?</H4> - <P>Por causa do hardware de PC ser em sua maioria compatível, pessoas tendem a acreditar que todos os hardwares de PC s�o de mesma qualidade. N�o é verdade. ECC RAM, SCSI e placas mãe de qualidade são mais confiáveis e têm uma melhor performance do que hardwares mais baratos. O PostgreSQL executará em quase todo hardware, mas se a confiabilidade e a performance forem importantes é prudente pesquisar sobre as opções de hardware. Nossas listas de discussão podem ser usadas para discutir opções de hardware e dilemas.</P> + <P>Por causa do hardware de PC ser em sua maioria compatível, pessoas tendem a acreditar que todos os hardwares de PC satilde;o de mesma qualidade. Natilde;o é verdade. ECC RAM, SCSI e placas mãe de qualidade são mais confiáveis e têm uma melhor performance do que hardwares mais baratos. O PostgreSQL executará em quase todo hardware, mas se a confiabilidade e a performance forem importantes é prudente pesquisar sobre as opções de hardware. Nossas listas de discussão podem ser usadas para discutir opções de hardware e dilemas.</P> <HR> @@ -543,7 +543,7 @@ Há também uma lista de discussão dos desenvolvedores dispon <P>Toda a consulta tem que ser avaliada, mesmo se você só quer os primeiros registros. Considere utilizar uma consulta que tenha um <SMALL>ORDER BY</SMALL>. Se há um índice que combina com o <SMALL>ORDER BY</SMALL>, o PostgreSQL pode ser capaz de avaliar somente os primeiros registros requisitados, ou toda consulta tem que ser avaliada até que os registros desejados tenham sido gerados.</P> - <P>Para obter um registro randômico, utilize: + <P>Para obter um registro randômico, utilize:</P> <PRE> SELECT col FROM tab @@ -639,7 +639,7 @@ Número máximo de índices em uma tabela? ilimitado utilizados se uma tabela é maior do que o tamanho mínimo e uma consulta seleciona somente uma porcentagem pequena de registros de uma tabela. Isto porque o acesso randômico ao disco causado por uma busca por índice pode ser - mais lento do que uma leitura ao longo da tabela ou uma busca sequencial. + mais lento do que uma leitura ao longo da tabela ou uma busca sequencial.</p> <P>Para determinar se um índice pode ser utilizado, o PostgreSQL deve ter estatísticas sobre a tabela. Estas estatísticas são coletadas utilizando @@ -686,11 +686,10 @@ Número máximo de índices em uma tabela? ilimitado <LI>A localidade padrão <I>C</I> deve ser utilizada durante o <i>initdb</i> porque não é possível saber o próximo/maior caracter em uma localidade que não seja a C. Você pode criar um índice - especial <PRE>text_pattern_ops</PRE> para tais casos que funcionam somente para - indexação utilizando <PRE>LIKE</PRE>. + especial <tt>text_pattern_ops</tt> para tais casos que funcionam somente para + indexação utilizando <tt>LIKE</tt>. </LI> </UL> - <P> <P>Em versões anteriores a 8.0, índices frequentemente não podiam ser usados a menos que os tipos de dados correspodessem aos tipos da coluna do índice. Isto é particularmente verdadeiro para índices de coluna int2, int8 e numeric.</P> @@ -922,14 +921,15 @@ Veja a página sobre <I>create_sequence</I> no manual para mais informa&cc FROM tab WHERE col IN (SELECT subcol FROM subtab); </PRE> - por: +<p>por:</p> <PRE> SELECT * FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); </PRE> - -Para isto ser rápido, <CODE>subcol</CODE> deve ser uma coluna indexada. <P>A partir da versão 7.4, <CODE>IN</CODE> utiliza a mesma técnica de agrupamento do que consultas normais, e é recomendado utilizar <CODE>EXISTS</CODE>. - +<p> +Para isto ser rápido, <CODE>subcol</CODE> deve ser uma coluna indexada.</P> +<P>A partir da versão 7.4, <CODE>IN</CODE> utiliza a mesma técnica de agrupamento do que consultas normais, e é recomendado utilizar <CODE>EXISTS</CODE>. +</p> <H4><A name="4.23">4.23</A>) Como eu faço uma junção externa (outer join)?</H4> <P>PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:</P> @@ -965,7 +965,7 @@ Para isto ser rápido, <CODE>subcol</CODE> deve ser uma coluna indexada. < <H4><A name="4.25">4.25</A>) Como eu retorno múltiplos registros ou colunas de uma função?</H4> - <P>No 7.3, você pode facilmente retornar múltiplos registros ou colunas de uma função, <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>. + <P>No 7.3, você pode facilmente retornar múltiplos registros ou colunas de uma função, <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P> <H4><A name="4.26">4.26</A>) Por que eu não posso confiar na criação/remoção de tabelas temporárias em funções PL/PgSQL?</H4> <P>PL/PgSQL armazena o conteúdo da função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma tabela temporária, e aquela tabela é removida e criada novamente, e a função é chamada novamente, a função irá falhar porque o conteúdo armazenado da função ainda apontará para a tabela temporária antiga. A solução é utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas temporárias no PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.</P> @@ -973,7 +973,7 @@ Para isto ser rápido, <CODE>subcol</CODE> deve ser uma coluna indexada. < <H4><A name="4.27">4.27</A>) Que opções para encriptação estão disponíveis?</H4> <UL> <LI>No <I>contrib/pgcrypto</I> contém muitas funções de encriptação para serem utilizados em consultas <SMALL>SQL</SMALL>.</li> - <LI>Para encriptar a transmissão do cliente ao servidor, o servidor deve ter a opção <I>ssl</I> definida como <I>true</I> no <I>postgresql.conf</I>, e um registro <I>host</I> ou <I>hostssl</I> deve existir no <I>pg_hba.conf</I>, e o <I>sslmode</I> no cliente não deve estar <I>disable</I>. (Note que também é possível utilizar outros esquemas de transporte encriptado, tais como stunnel ou ssh, ao invés da conexão SSL nativa do PostgreSQL.) + <LI>Para encriptar a transmissão do cliente ao servidor, o servidor deve ter a opção <I>ssl</I> definida como <I>true</I> no <I>postgresql.conf</I>, e um registro <I>host</I> ou <I>hostssl</I> deve existir no <I>pg_hba.conf</I>, e o <I>sslmode</I> no cliente não deve estar <I>disable</I>. (Note que também é possível utilizar outros esquemas de transporte encriptado, tais como stunnel ou ssh, ao invés da conexão SSL nativa do PostgreSQL.)</LI> <LI>Senhas dos usuários do banco de dados são automaticamente encriptadas quando armazenadas na versão 7.3. Em versões anteriores, você deve habilitar a opção <I>PASSWORD_ENCRYPTION</I> no <I>postgresql.conf</I>.</li> <li>O servidor pode executar utilizando um sistema de arquivos encriptado.</li> </UL> diff --git a/doc/src/FAQ/FAQ_czech.html b/doc/src/FAQ/FAQ_czech.html index cb91c8eb90e..05079c79767 100644 --- a/doc/src/FAQ/FAQ_czech.html +++ b/doc/src/FAQ/FAQ_czech.html @@ -129,7 +129,7 @@ <H2 align="center">Obecn� ot�zky</H2> - <H4><A name="1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?</H2> + <H4><A name="1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?</H4> <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> @@ -206,18 +206,18 @@ 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><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>. + <A href="http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.</P> <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>. + http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.</P> <P>Existuj�c� port pro Novell Netware 6 naleznete na <A href="http://forge.novell.com">http://forge.novell.com</A>.</P> @@ -238,7 +238,7 @@ subscribe end </PRE> - na adresu <A href="mailto:[email protected]"> +<P>na adresu <A href="mailto:[email protected]"> [email protected]</A>.</P> <P>M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn� @@ -254,7 +254,7 @@ <P>Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL:</P> <BLOCKQUOTE> - <A href="http://www.postgresql.org">http://www.postgresql.org</A> + <P><A href="http://www.postgresql.org">http://www.postgresql.org</A></P> </BLOCKQUOTE> <H4><A name="1.7">1.7</A>) Jak� je posledn� verze?</H4> @@ -315,7 +315,7 @@ <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 + konferenc� <I>pgsql-hackers</I> a <I>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 @@ -341,7 +341,7 @@ <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> + 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 @@ -363,7 +363,7 @@ 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> + 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 @@ -375,7 +375,7 @@ 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> - <DT><B>Cena</B><DT> + <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> @@ -553,7 +553,7 @@ nap��klad:</P> <PRE> cd /usr/local/pgsql - ./bin/postmaster > server.log 2>&1 & + ./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� @@ -773,7 +773,7 @@ <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: + MIN() nepou��vaj� indexy, ale je mo�n� tut� hodnotu z�skat:</P> <PRE> SELECT col FROM tab @@ -791,7 +791,7 @@ <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> + </UL></LI> <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 @@ -926,7 +926,7 @@ BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL) <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>. + po ka�d�m <I>$sth->execute()</I>.</P> <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> @@ -986,7 +986,7 @@ BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL) <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> + <LI> range variable, jm�no tabulky, alias tabulky (range variable, table name, table alias)</LI> </UL> @@ -1038,13 +1038,13 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); <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>: + nahradit <SMALL>IN</SMALL> <SMALL>EXISTS</SMALL>:</P> <PRE> SELECT * FROM tab WHERE col IN (SELECT subcol FROM subtab); </PRE> - na: +<p>na:</p> <PRE> SELECT * FROM tab @@ -1101,7 +1101,7 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); <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>. + <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P> <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> @@ -1164,4 +1164,4 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); 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 +</HTML> diff --git a/doc/src/FAQ/FAQ_french.html b/doc/src/FAQ/FAQ_french.html index 0436774159b..c48334ea91c 100644 --- a/doc/src/FAQ/FAQ_french.html +++ b/doc/src/FAQ/FAQ_french.html @@ -152,7 +152,7 @@ <P>PostgreSQL se prononce <I>Post-Gres-Q-L</I>. Un fichier audio est disponible sur <A - HREF="http://www.postgresql.org/postgresql.mp3">http://www.postgresql.org/postgresql.mp3</A> + href="http://www.postgresql.org/postgresql.mp3">http://www.postgresql.org/postgresql.mp3</A> pour ceux souhaitant entendre la prononciation.</P> <P>PostgreSQL est une am�lioration du syst�me de gestion de bases @@ -173,7 +173,7 @@ d�veloppement de PostgreSQL. C'est un projet soutenu par une communaut� sans �tre contr�l� par une soci�t�. Pour y contribuer, voir la FAQ des d�veloppeurs sur <A - HREF="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.postgresql.org/docs/faqs/FAQ_DEV.html</A>.</P> + href="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.postgresql.org/docs/faqs/FAQ_DEV.html</A>.</P> <P>Les auteurs de PostgreSQL 1.01 �taient Andrew Yu et Jolly Chen. Beaucoup d'autres personnes ont contribu� au portage, aux tests, @@ -292,7 +292,7 @@ PostgreSQL sur le site web de PostgreSQL :</P> <BLOCKQUOTE> - <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> + <p><A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A></p> </BLOCKQUOTE> <P>Il y a aussi un canal IRC sur Freenode et EFNet, le canal @@ -819,7 +819,7 @@ l'int�gralit� de la requ�te peut �tre �valu�e, jusqu'� g�n�rer les lignes d�sir�es.</P> - <P>Pour faire un <SMALL>SELECT</SMALL> sur une ligne al�atoire : + <P>Pour faire un <SMALL>SELECT</SMALL> sur une ligne al�atoire :</P> <PRE> SELECT colonne FROM table @@ -1004,7 +1004,6 @@ <LI>La locale <I>C</I> par d�faut doit �tre utilis�e lors de <i>initdb</i>.</LI> </UL> - <P> <p>Dans les versions ant�rieures � la 8.0, les indexs ne peuvent souvent pas �tre utilis�s sauf si les types de donn�es correspondent exactement au @@ -1398,7 +1397,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) <P>A partir de la 7.3, vous pouvez facilement renvoyer plusieurs lignes ou colonnes � partir d'une fonction, <a href="http://techdocs.postgresql.org/guides/SetReturningFunctions"> - http://techdocs.postgresql.org/guides/SetReturningFunctions</a>. + http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P> <H4><A name="4.26">4.26</A>) Pourquoi ne puis-je pas cr�er/supprimer des tables temporaires dans les fonctions PL/PgSQL de fa�on stable ?</H4> @@ -1422,7 +1421,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) exister dans <I>pg_hba.conf</I>, et le <I>sslmode</I> du client ne doit pas �tre <I>d�sactiv�e</I>. Notez qu'il est aussi possible d'utiliser un transport crypt� d'une troisi�me partie, tel que stunnel ou ssh, plut�t que - les connexions SSL natives de PostgreSQL. + les connexions SSL natives de PostgreSQL.</LI> <LI>Les mots de passe des utilisateurs sont automatiquement crypt�s depuis la version 7.3. Pour les versions pr�c�dentes, vous devez activer l'option <I>PASSWORD_ENCRYPTION</I> dans <I>postgresql.conf</I>.</LI> diff --git a/doc/src/FAQ/FAQ_german.html b/doc/src/FAQ/FAQ_german.html index 4d842ad6fdd..924568b8fcf 100644 --- a/doc/src/FAQ/FAQ_german.html +++ b/doc/src/FAQ/FAQ_german.html @@ -212,7 +212,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <p>Eine Portierung für Novell Netware 6 gibt es unter <a href="http://forge.novell.com">http://forge.novell.com</a>.</p> <p>Für OS/2 (eComStation) gibt es eine Version hier: - <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a> + <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a></p> <h4><a name="1.5">1.5</a>) Woher bekomme ich PostgreSQL?</h4> @@ -223,7 +223,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <h4><a name="1.6">1.6</a>) Wo bekomme ich Support für PostgreSQL?</h4> <p>Die zentrale (englischsprachige) Mailing-Liste ist: - <a href="mailto:[email protected]">mailto:[email protected]</a> . + <a href="mailto:[email protected]">mailto:[email protected]</a> .</p> <p>Die Liste ist Themen vorbehalten, die PostgreSQL betreffen. Die Anmeldung erfolgt mit einer Email an die Adresse <a href="mailto:[email protected]">[email protected]</a> mit folgenden Zeilen im Text @@ -260,7 +260,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <p>Weitere Mailinglisten und Informationen zu PostgreSQL befinden sich auf der PostgreSQL-Homepage:</p> <blockquote> -<a href="http://www.postgresql.org">http://www.postgresql.org</a> +<p><a href="http://www.postgresql.org">http://www.postgresql.org</a></p> </blockquote> <p>Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel <em>#PostgreSQL</em>. Unter UNIX/Linux können Sie mit z.B. @@ -341,7 +341,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <h4><a name="1.13">1.13</a>) Wie sende ich einen Fehlerbericht?</h4> <p>Bitte besuchen Sie die PostgreSQL-BugTool-Seite <a href="http://www.postgresql.org/bugform.html">http://www.postgresql.org/bugform.html</a>, - die Hinweise und Anleitungen zur Einreichung von Fehlerberichten enthält. + die Hinweise und Anleitungen zur Einreichung von Fehlerberichten enthält.</p> <p>Überprüfe auch den ftp-Server <a href="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a>, um nachzusehen, ob es eine neuere PostgreSQL-Version oder neue Patches gibt.</p> @@ -475,7 +475,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> </a>) und Rekall (<a href="http://www.thekompany.com/products/rekall/"> http://www.thekompany.com/products/rekall/</a>, GPL/proprietär). Es gibt außerdem phpPgAdmin (<a href="http://phppgadmin.sourceforge.net/"> - http://phppgadmin.sourceforge.net/ </a>), eine web-basierte Schnittstelle. + http://phppgadmin.sourceforge.net/ </a>), eine web-basierte Schnittstelle. </p> <h4><a name="2.4">2.4</a>) Welche Programmiersprachen und Schnittstellen gibt es?</h4> @@ -500,7 +500,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> (Bereich <em>Drivers/Interfaces</em>) bezogen werden. </p> <hr /> - <h2 align="center">Administrative Fragen</h2><p> + <h2 align="center">Administrative Fragen</h2> <h4><a name="3.1">3.1</a>) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?</h4> @@ -632,7 +632,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <p>Wenn der <em>postmaster</em> hingegen läuft, führen Sie <em>psql</em> in einem Fenster aus, ermitteln Sie die Prozessnummer (<small>PID</small>) des <em>postgres</em>-Prozesses, der von <em>psql</em> - verwendet wird (mit <pre>SELECT pg_backend_pid()</pre>). Binden Sie einen Debugger an diese <small>PID</small> + verwendet wird (mit <code>SELECT pg_backend_pid()</code>). Binden Sie einen Debugger an diese <small>PID</small> und führen Sie Abfragen von <em>psql</em> aus. Wenn Sie den postgres-Serverstart analysieren wollen, setzen Sie die Umgebungsvariable <em>PGOPTIONS="-W </em>n<em>"</em>, und starten Sie dann <em>psql</em>. Dies verzögert den Start um <em>n</em> Sekunden, damit Sie einen Debugger an @@ -728,7 +728,7 @@ href="mailto:[email protected]">[email protected]</a>).</p> <h4><a name="4.2">4.2</a>) Wie wähle ich per <small>SELECT</small>-Anweisung nur die ersten paar Zeilen bzw. eine beliebige Zeile in einer Abfrage aus?</h4> - <p>Vgl. die <small>FETCH</small> Man-Page, oder benutzen Sie <small>SELECT ... LIMIT...</small> . + <p>Vgl. die <small>FETCH</small> Man-Page, oder benutzen Sie <small>SELECT ... LIMIT...</small> .</p> <p>Selbst wenn Sie nur die ersten paar Zeilen einer Tabelle abfragen möchten, muß unter Umständen die komplette Abfrage abgearbeitet werden. Ziehen Sie also @@ -1123,7 +1123,7 @@ BYTEA bytea Bytearray mit variabler Länge (auch für durch Block und Offset Werte zu identifizieren. T<small>ID</small>s verändern sich, sobald Zeilen verändert oder zurückgeladen werden. Sie werden in Indexeinträgen benutzt um auf die physikalischen Zeilen zu - zeigen. + zeigen.</p> <h4><a name="4.16">4.16</a>) Welche Bedeutung haben die verschiedenen Ausdrücke, die in PostgreSQL benutzt werden (z.B. attribute, class,...)?</h4> diff --git a/doc/src/FAQ/FAQ_japanese.html b/doc/src/FAQ/FAQ_japanese.html index d09dd6f1d3d..05812e8db53 100644 --- a/doc/src/FAQ/FAQ_japanese.html +++ b/doc/src/FAQ/FAQ_japanese.html @@ -2,9 +2,9 @@ <HTML> <HEAD> <TITLE>PostgreSQL FAQ in Japanese</TITLE> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=x-euc-jp"> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#A00000" ALINK="#0000FF"> -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=x-euc-jp"> <H1> PostgreSQL(�ݥ��ȥ��쥹�����塼������)�ˤĤ��Ƥ褯�������Ȥ��β���(FAQ)</H1> <P> @@ -13,20 +13,19 @@ PostgreSQL(�ݥ��ȥ��쥹�����塼������)�ˤĤ��Ƥ褯�������Ȥ��β���(FAQ)</H1> ���ߤΰݻ�������: Bruce Momjian (<A HREF="mailto:[email protected]">[email protected]</A>)<BR> Maintainer of Japanese Translation: Jun Kuwamura (<A -HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR><P> +HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR></P> <P> ����ʸ��κǿ��Ǥ� - "http://www.postgresql.org/files/documentation/faqs/FAQ.html"> + <a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html"> http://www.postgresql.org/files/documentation/faqs/FAQ.html</A></P> �Ǹ��뤳�Ȥ��Ǥ��ޤ��� <P> �ץ�åȥۡ������ͭ�μ���ˤĤ��Ƥ�: - "http://www.postgresql.org/docs/faq/"> + <a href="http://www.postgresql.org/docs/faq/"> http://www.postgresql.org/docs/faq/</A></P> <BR>�˲���������ޤ��� -<P> -<SMALL><PRE> +<PRE> (�ʲ������Ԥˤ������� [������ �� ] �ȤǰϤ�ǵ����ޤ���) [������ ���ܸ�������ˤĤ��ƤΥ��ϺǸ����ذ�ư���ޤ����� @@ -42,11 +41,9 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR><P> 2005ǯ01��12�� ��¼ �� ] -</PRE></SMALL> +</PRE> -<P> <HR> -<P> <H2 align="center">����Ū�ʼ���</H2> @@ -133,15 +130,14 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR><P> <A HREF="#5.2">5.2</A>) PostgreSQL �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ˹��������ΤǤ�����<BR> <A HREF="#5.3">5.3</A>) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽ޤ�����<BR> <A HREF="#5.4">5.4</A>) ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ��Ǥ�����<BR> -<P> <HR> <H2 align="center">����Ū�ʼ���</H2> -<P> <H4><A NAME="1.1">1.1</A>) PostgreSQL �Ȥϲ��Ǥ����� �����ɤߤޤ�����</H4> <P>PostgreSQL��<I>Post-Gres-Q-L</I>(�ݥ��� - ���쥹 - ���塼 - ����) ��ȯ�����ޤ���</P> <P>PostgreSQL �ϼ����� <SMALL>DBMS</SMALL> �����ѤΥץ��ȥ����פǤ��ä� POSTGRES �ǡ����١������������ƥ�β����ǤǤ��ʤ��Τ��ᡢ���Ǥ�Ȥ��ɤ� "Postgres" �ȸƤФ�뤳�Ȥ�����ޤ��ˡ�PostgreSQL �� POSTGRES �ζ��Ϥʥǡ�������ǥ��˭�٤ʥǡ�����������(��)���ݻ����ʤ��顢POSTGRES �ǻȤ�줿 PostQuel �䤤��碌�����ĥ���� <SMALL>SQL</SMALL> �Υ��֥��åȤ��֤������Ƥ��ޤ���PostgreSQL ��̵���Ǵ����ʥ����������ѤǤ��ޤ��� +</P> <P>PostgreSQL �γ�ȯ�ϡ�PostgreSQL ��ȯ���ꥹ�Ȥ˻��ä��Ƥ��볫ȯ��ã�Υ�����Ǥ��٤ƹԤʤ��Ƥ��ޤ������ߤκ�Ĺ�� Marc G. Fournier (<A HREF="mailto:[email protected]">[email protected]</A> )�Ǥ���(������<a href="#1.6">1.6��</a>�˻��äλ���������ޤ���)���ߡ����Υ����ब PostgreSQL ��ȯ�Τ��٤Ƥ����ݤ�ߤƤ��ޤ������Υ�����ϥ��ߥ�˥ƥ��ץ��������ȤǤ��ꡢ�����ʤ��Ȥˤ�äƤ����������ޤ����ä�������С�<A href= "http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html"> @@ -150,18 +146,20 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR><P> </P> <P>Postgres95-1.01 ���濴Ū�ʳ�ȯ�Ԥ� Andrew Yu �� Jolly Chen �Ǥ�����������¾�����ο͡������Υ����ɤΰܿ����ƥ��ȡ��ǥХ�������ӡ����ɤ˻��ä��ޤ�����PostgreSQL �������������ɤǤ��� Postgres �ϥ���ե���˥���إС����쥤���ˤ����ơ� Michael Stonebraker �����λش��Τ�ȡ�¿���γ�����´�������ܿ��Υץ�����ޤ��������Ϥˤ�����ޤ����� +</P> <P>�С����쥤�ˤ����뤳�Υ��եȥ������Τ�Ȥ�̾���� Postgres �Ǥ�������<SMALL>SQL</SMALL> �ε�ǽ���ɲä��줿 1995 ǯ�ˤ���̾���� Postgres95 ���ѹ����졢1996 ǯ�ν���ˤ���̾���� PostgreSQL ���ѹ�����ޤ����� +</P> -<P> <H4><A NAME="1.2">1.2</A>) PostgreSQL ������Ϥɤ��ʤäƤޤ�����</H4> <P> PostgreSQL �ϲ���������˽����ޤ��� -<SMALL><PRE> +</P> +<PRE> [������ ��ʸ�ϱѸ�Ǥ������ͤȤ��ơ���ʸ��ʻ���Ǻܤ��ޤ��� ] -</PRE></SMALL> +</PRE> <P> PostgreSQL Data Base Management System</P> <P> @@ -187,7 +185,7 @@ IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.</P> -<SMALL><PRE> +<PRE> POSTGRESQL �ǡ����١������������ƥ� ��ʬŪ��� (c) 1996-2004, PostgreSQL��ݳ�ȯ������ @@ -214,7 +212,7 @@ MODIFICATIONS.</P> ����˴ؤ�����ʸ�Ͼ嵭�αѸ�ˤ��ɽ���Ǥ������ܸ����Ϥ����ޤ� ���ͤǤ��� ] -</PRE></SMALL> +</PRE> <P>�嵭��BSD�饤���ǸŤ������ץ����Υ饤���Ǥ��������������� ���ɤΤ褦�˻Ȥ��褦�Ȥ����¤��ޤ����ޤ������ȤʤΤǡ��桹�⤽��� @@ -225,7 +223,6 @@ MODIFICATIONS.</P> <P> ����Ū�ˡ��Ƕ��Unix�ߴ��ץ�åȥۡ���Ǥ����PostgreSQL���Ư��������Ϥ��Ǥ��������λ����Ǽºݤ˥ƥ��Ȥ�Ԥʤä����Ȥ���𤬤ʤ��줿�ץ�åȥۡ���ˤĤ��Ƥϥ��ȡ����������Ƥ���ޤ���</P> -<P> <H4><A NAME="1.4">1.4</A>) Unix�ʳ��ΰܿ��ǤǻȤ����Τϡ�</H4> <P>�С������8.0�ˤʤꡢPostgreSQL �ϡ�Win2000, WinXP, Win2003�ʤɤ� Microsoft Windows NT�١����Υ��ڥ졼�ƥ������ƥ�ǥͥ��ƥ��֤�����褦�ˤʤ�ޤ����� @@ -233,18 +230,18 @@ MODIFICATIONS.</P> Windows (Win95, Win98, WinMe)�ʤɡ�MSDOS�١����ΥС������Ǥϡ�Cygwin ��Ȥä�PostgreSQL�����餻�뤳�Ȥ��Ǥ��ޤ��� </P> -<small><pre> +<pre> [���� pgInstaller �������FTP�ߥ顼�����Ȥ� win32 �ǥ��쥯�ȥ꤫����ǽ�Ǥ��� http://www.postgresql.org/mirrors-ftp.html ] -</pre></small> +</pre> <p>���Υ����Ȥ� Novell Netware 6 �ؤΰܿ��⤢��ޤ��� <a href="http://forge.novell.com">http://forge.novell.com</a> �ޤ���OS/2 (eComStation) �С������ϡ�<a href= - "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> - http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>�ˤ���ޤ���</p> + "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>�ˤ���ޤ���</p> <BR> @@ -256,7 +253,7 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A> �Ǥ��� �ߥ顼�����ȤˤĤ��Ƥϡ��桹�Υᥤ�� Web �ڡ���������������</P> -<SMALL><PRE> +<PRE> [����: �ʲ������ܤΥߥ顼�����ȤǤ�: @@ -274,7 +271,7 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A> Japan: <A HREF="ftp://ring.so-net.ne.jp/pub/misc/db/PostgreSQL/">ftp://ring.so-net.ne.jp/pub/misc/db/PostgreSQL/</A> Japan: <A HREF="ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/">ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/</A> ] -</PRE></SMALL> +</PRE> <H4><A NAME="1.6">1.6</A>) ���ݡ��ȤϤɤ��Ǽ������ޤ�����</H4> @@ -292,33 +289,35 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A> end </PRE> -�Ƚ� <A HREF="mailto:[email protected]"> [email protected]</A> ���Żҥ������äƲ�������</P> +<P>�Ƚ� <A HREF="mailto:[email protected]"> [email protected]</A> ���Żҥ������äƲ�������</P> <P> �������������Ǥϡ��ᥤ��ꥹ�ȤǼ��������å������� 30k ����ί����˥������������ǥꥹ�ȤΥ��С������դ���ޤ���</P> <P> �Х���ݡ����ѤΥ��ꥹ�Ȥ⤢��ޤ������Υꥹ�Ȥؤλ��ä� "��ʸ" �ˡ� +</P> <PRE> subscribe end </PRE> +<P> �Ƚ�<A HREF="mailto:[email protected]">[email protected]</A> ���Żҥ������äƲ�������</P> <P> ��ȯ�Ԥε����Τ���Υ��ꥹ�Ȥ����ѤǤ��ޤ������Υꥹ�Ȥؤλ��ä��Żҥ�����ʸ�ˡ� +</P> <PRE> subscribe end </PRE> -�Ƚơ�<A HREF="mailto:[email protected]">[email protected]</A>���Żҥ������äƲ�������</P> +<P>�Ƚơ�<A HREF="mailto:[email protected]">[email protected]</A>���Żҥ������äƲ�������</P> -<P PostgreSQL �ˤĤ��Ƥ�äȾܤ����Τꤿ����С����� PostgreSQL WWW�ۡ���ڡ������餿�ɤ�ޤ��� +<P>PostgreSQL �ˤĤ��Ƥ�äȾܤ����Τꤿ����С����� PostgreSQL WWW�ۡ���ڡ������餿�ɤ�ޤ���</P> <BLOCKQUOTE> - <A HREF="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> + <P><A HREF="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A></P> </BLOCKQUOTE> -</P> <P>��㡼��IRC �����ͥ�ϡ�Freenode (<I>irc.freenode.net</I>)�� <I>#PostgreSQL</I> �Ȥ��������ͥ�Ǥ��� UNIX ���ޥ�ɤǡ� @@ -329,8 +328,7 @@ UNIX ���ޥ�ɤǡ� EFNet�ˤ�PostgreSQL�����ͥ뤬����ޤ��� </P> -<P> -<SMALL><PRE> +<PRE> [����: 1999ǯ7��23�������ܥݥ��ȥ��쥹�桼������ά��JPUG����Ω����ޤ����� JPUG ��������ȿ��ǡ�PostgreSQL�����Ѥ����ã����߶��Ϥξ�ȤʤäƤ��ޤ��� @@ -341,7 +339,7 @@ EFNet�ˤ�PostgreSQL�����ͥ뤬����ޤ��� �������������������Ͽ���ǽ�ȤʤäƤ��ޤ��� ���ܸ��IRC�����ͥ� '#PostgreSQL*jp' ��¸�ߤ��ޤ��� -</PRE></SMALL> +</PRE> <P>���ѥ��ݡ��Ȳ�ҤΥꥹ�Ȥ�<a href="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</a>�ˤ���ޤ���</P> @@ -358,24 +356,25 @@ PostgreSQL �κǿ��ǤϥС������ 7.4.6 �Ǥ���</P> <P> ���դ���ˡ������Ĥ��Υޥ˥奢��ȥ���饤�ޥ˥奢��(�ޥ˥奢�롦�ڡ���)����Ӥ����Ĥ��ξ����ʥƥ������꤬�ޤޤ�ޤ���<I>/doc</I> �ǥ��쥯�ȥ�������������ޤ����ޥ˥奢��ϡ�<A HREF="http://www.ca.PostgreSQL.org/docs/">http://www.ca.PostgreSQL.org/docs/</A>�ǥ���饤��Ǥ�����Ǥ��ޤ���</P> -<SMALL><PRE> +<PRE> [����: �ʳ���SRA������PostgreSQL�桼������������졢 <A HREF="http://osb.sra.co.jp/PostgreSQL/Manual/">��PostgreSQL ���ե������ޥ˥奢���</A> �Ȥ��ƽ��Ǥ���Ƥ��ޤ��� ] -</PRE></SMALL> +</PRE> <P>����饤��ǻ��ȤǤ��� PostgreSQL ���ܤ�2������ޤ���<A href= "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> -<SMALL><PRE> +</P> +<PRE> [����: ���ܥݥ��ȥ��쥹�桼�������<A HREF="http://www.PostgreSQL.jp/wg/psqltrans/"> ��PostgreSQL Book����ʬ�ʲ��</A> �ˤ���������ޤ����� ] -</PRE></SMALL> - +</PRE> +<P> ����ӡ� <A href= "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A> �Ǥ��� @@ -415,14 +414,13 @@ PostgreSQL�ϳ�ĥ���줿<SMALL>SQL</SMALL>-92�Υ��֥��åȤݡ��Ȥ��ޤ��� <A HREF="http://www.PostgreSQL.org/docs/awbook.html"> http://www.PostgreSQL.org/docs/awbook.html</A> �ˤ���PostgreSQL�ܤ� <SMALL>SQL</SMALL> ���Ƥ��ޤ��� - -<SMALL><PRE> +</P> +<PRE> [����: ���ܥݥ��ȥ��쥹�桼�������<A HREF="http://www.PostgreSQL.jp/wg/psqltrans/"> ��PostgreSQL Book����ʬ�ʲ��</A> �ˤ�����������Ǥ���Ƥ��ޤ��� ] -</PRE></SMALL> -</P> +</PRE> <P> ����¾�ˤ� PostgreSQL�ܤȤ��ơ�<A href= @@ -449,8 +447,7 @@ http://www.PostgreSQL.org/docs/awbook.html</A> �Τ褦�ʤΤ⤢��ޤ��� </P> -<P> -<SMALL><PRE> +<PRE> [����: �а�ã��ˤ�����ܸ�λ���ʸ���ξҲ�ڡ��� <A HREF="http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html">http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html</A> @@ -465,8 +462,7 @@ http://www.PostgreSQL.org/docs/awbook.html</A> <A HREF="http://www.wakhok.ac.jp/DB/DB.html">http://www.wakhok.ac.jp/DB/DB.html</A> �⥪��饤����ɤळ�Ȥ��Ǥ��ޤ��� ] -</PRE></SMALL> -</P> +</PRE> <H4><A NAME="1.11">1.11</A>) PostgreSQL������2000ǯ����(Y2K)���б����Ƥ��ޤ����� </H4> @@ -536,6 +532,7 @@ http://www.PostgreSQL.org/docs/awbook.html</A> <P>�����ɤ����פϡ������ץ������ץ��������ȤˤȤäƤϤȤƤ����ڤʤ�Τǡ��ץ��������Ȥ����ʤ��������ä�ʬ������Τ���ޤ���</P> <P>��������δ��פϰ¤���ΤǤϤ���ޤ��ݻ���³���뤿��ˤ����뤤�ϰ��Ū�˷�������ޤ����⤷�����ʤ��䤢�ʤ��β�Ҥˡ������������ϤΤ���λ��α����ܤ����Ȥ��Ǥ���褦�Ǥ����顢<A href="http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A>������դꤤ���ޤ��� +</P> <P>�ޤ���Web�ڡ����ˤ� PostgreSQL,Inc �Ȥ���ޤ����������� "��(contributions)"�Ȥ������ܤϡ� PostgreSQL �ץ��������Ȥ�ٱ礹������Τ���ǡ��褷������β�ҤΤ���λ��ǤϤ���ޤ��⤷�����ڼ�(check)�������Թ�褱���Ϣ����ν���ؤ����겼������</P> @@ -546,10 +543,8 @@ http://www.PostgreSQL.org/docs/awbook.html</A> �ؤ����꤯�������� </P> -<P> <HR> <H2 align="center">�桼���������饤����Ȥμ���</H2> -<P> <H4><A NAME="2.1">2.1</A>) PostgreSQL �Τ���� <SMALL>ODBC</SMALL> �ɥ饤�С��Ϥ���ޤ����� </H4> @@ -563,26 +558,27 @@ http://www.PostgreSQL.org/docs/awbook.html</A> </P> <P> OpenLink <SMALL>ODBC</SMALL> �� <A HREF="http://www.openlinksw.com/">http://www.openlinksw.com/</A>��������Ǥ��ޤ���ɸ��Ū�� <SMALL>ODBC</SMALL> ���饤����ȡ����եȥ������ǻȤ��ޤ��Τǡ��ٱ礷�Ƥ��뤹�٤ƤΥץ�åȥۡ���(Win, Mac, Unix, VMS)���� PostgreSQL �� <SMALL>ODBC</SMALL> �����ѤǤ��ޤ��� +</P> <P> ���֤����ϡ������ʼ��Υ��ݡ��Ȥ�ɬ�פʿ͡�����äƤ���Ȼפ��ޤ����� �ե�������ǤϤ��ĤǤ������ǽ�Τ褦�Ǥ�������ϡ�<A href= "mailto:[email protected]">[email protected]</A> �����äƲ�������</P> - +<P> <A HREF="http://www.PostgreSQL.org/docs/programmer/odbc.html"> Programmer's Guide</A> �� <SMALL>ODBC</SMALL> �ξϤ⤴������������ +</P> - -<P> <H4><A NAME="2.2">2.2</A>) PostgreSQL �� Web �ڡ�����Ϣ�Ȥ�����ˤϤɤ�ʥġ��뤬����ޤ����� </H4> <P> �ǡ����١������˻��� Web �ڡ����ˤĤ��Ƥ������餷���Ҳ𤬡�<BR> <A href="http://www.webreview.com">http://www.webreview.com</A>�ˤ���ޤ���</P> <P> Web �ؤγ�ĥ�Τ���ˤϡ�PHP ����ۤ��������ե������ȤʤäƤ��ޤ���<A HREF="http://www.php.net">http://www.php.net/</A>�ˤ���ޤ��� +</P> -<SMALL><PRE> +<PRE> [����: PHP�˴ؤ������ܸ�ξ���ϡ�2000ǯ4��19����ȯ��������PHP�桼����Υ����� <A HREF="http://www.php.gr.jp/">http://www.php.gr.jp/</A> @@ -590,11 +586,12 @@ Programmer's Guide</A> <A HREF="http://www.geocities.jp/rui_hirokawa/php/">http://www.geocities.jp/rui_hirokawa/php/</A> �ˤ��ʤ�ޤȤ���Ƥ��ޤ��� ] -</PRE></SMALL> +</PRE> <P> ������ʣ���ʾ�硢¿���οͤ� Perl �����ե������� CGI.pm �� mod_perl ��Ȥ��ޤ��� +</P> -<SMALL><PRE> +<PRE> [����: WDB �ϡ�Web ���� DataBase �ؤ� Perl �� Interface �Ǥ��� wdb-p95 �ؤΥ���ڤ�Ƥ��ޤäƤ��ޤ��������餯��Perl DBI ��ͳ�� DBD::Pg �����Ѥ���ǽ�Ȼפ��ޤ��� @@ -604,9 +601,8 @@ Programmer's Guide</A> <A HREF="http://www.i-con.dk/wdb/">http://www.i-con.dk/wdb/</A> �Ȥ�����ޤ������ηаޤϤ褯�狼��ޤ��� ] -</PRE></SMALL> +</PRE> -<P> <H4><A NAME="2.3">2.3</A>) PostgreSQL �˥���ե����롦�桼�������ե������Ϥ���ޤ����� </H4> <p>�������PostgreSQL �ؤΥ���ե����륤���ե������������Ĥ�����ޤ��� @@ -626,12 +622,12 @@ RHDB Admin (<a PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/"> http://phppgadmin.sourceforge.net/ </a>) ��PostgreSQL�ؤ�Web�١����� �����ե����������ޤ��� +</P> <P>���ܺ٤ʥꥹ�ȤˤĤ��Ƥϡ�<a href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</a> ��������������</P> -<P> <H4><A NAME="2.4">2.4</A>) �ɤΤ褦�ʸ���� PostgreSQL ���̿��Ǥ������� </H4> @@ -640,42 +636,41 @@ PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/"> </P> <P>�ʲ��Υ����ե�������PostgreSQL�����ۤ˴ޤޤ�Ƥ��ޤ��� +</P> <UL> -<LI>C (libpq) -<LI>������C (ecpg) -<LI>Java (jdbc) -<LI>Python (<A HREF="http://www.druid.net/pygresql/">PyGreSQL</A>) -<LI>TCL (libpgtcl) +<LI>C (libpq)</LI> +<LI>������C (ecpg)</LI> +<LI>Java (jdbc)</LI> +<LI>Python (<A HREF="http://www.druid.net/pygresql/">PyGreSQL</A>)</LI> +<LI>TCL (libpgtcl)</LI> </UL> - <P>����¾�����Ѳ�ǽ�ʥ����ե������� <a + <P>����¾�����Ѳ�ǽ�ʥ����ե������� <a href="http://gborg.postgresql.org">http://gborg.postgresql.org</A> ��<I>Drivers/Interfaces</I>�Υ��������ˤ���ޤ��� </P> -<SMALL><PRE> +<PRE> [������ �ʰ¸�ˤ���� Palm �Ǥ� libpq ��ȯ����ޤ����� <a href="http://www.snaga.org/libpq/">http://www.snaga.org/libpq/</a> ] -</PRE></SMALL> +</PRE> -<P> <HR> <H2 align="center">������μ���</H2> -<P> <H4><A NAME="3.1">3.1</A>) �ɤΤ褦�ˤ���� <I>/usr/local/pgsql</I> �ʳ��ξ��˥��ȡ���Ǥ��ޤ�����</H4> <P> ��ñ����ˡ�ϡ� <I>configure</I> �����餻��Ȥ��� --prefix ���ץ�������ꤹ�뤳�ȤǤ��� +</P> -<P> <H4><A NAME="3.2">3.2</A>) postmaster �����餻��ȡ�<I>Bad System Call</I> �Ȥ�����������פ����ȤΥ�å��������Фޤ����ʤ��Ǥ����� </H4> <P> ���ޤ��ޤ����꤬�ͤ����ޤ������ޤ��ǽ�ˤ��ʤ��Υ����ͥ�� System V IPC �γ�ĥ�����ȡ��뤵��Ƥ��뤫���ǧ���Ƹ��Ƥ���������PostgreSQL �ϥ����ͥ�ˤ�붦ͭ����ȥ��ޥե��Υ��ݡ��Ȥ�ɬ�פȤ��ޤ��� -<P> +</P> <H4><A NAME="3.3">3.3</A>) <I>postmaster</I> �����餻�褦�Ȥ���ȡ�<I>IpcMemoryCreate</I> ���顼���Фޤ����ʤ��Ǥ����� </H4> @@ -686,11 +681,11 @@ PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/"> �˶�ͭ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�����ޤ��ΤǤ�������������</P> -<P> <H4><A NAME="3.4">3.4</A>) <I>postmaster��</I>���餻�褦�Ȥ���ȡ�<I>IpcSemaphoreCreate</I> ���顼���Фޤ����ʤ��Ǥ����� </H4> <P>�⤷���顼��å�������<I>IpcSemaphoreCreate: semget failed (No space left on device)</I>�Ǥ���С������ͥ뤬��ʬ�ʥ��ޥե���Ȥ���褦�˹�������Ƥ��ޤ���Postgres������Ū�ʥХå�����ɥץ�������˰�ĤΥ��ޥե���ɬ�פȤ��ޤ����Ȥꤢ�����β�����<I>postmaster</I>��ư����Ȥ��ˡ��Хå�����ɥץ������ο����꾯�ʤ����¤뤳�ȤǤ��������ͤ�32��꾮���ʿ��Υѥ�����<I>-N</I>�ǻȤ��ޤ�����깱��Ū�ʲ����ϡ������ͥ��<SMALL>SEMMNS</SMALL> �� <SMALL>SEMMNI</SMALL> �ѥ��������䤹���ȤǤ��� +</P> <P>�����ǽ�Υ��ޥե�����٤ʥǡ����١������������δ֤˥���å���� ��������ǽ��������ޤ��� @@ -699,7 +694,6 @@ PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/"> <P>�⤷�����顼��å��������ʤˤ�¾�Τ�ΤǤ���С������ͥ�ι����Ǥޤä������ޥե��Υ��ݡ��ȤƤ��ʤ����⤷��ޤ��� PostgreSQL Administrator's Guide �˶�ͭ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�����ޤ���</P> -<P> <H4><A NAME="3.5">3.5</A>) ¾�Υۥ��Ȥ������³�ϤɤΤ褦�����椷�ޤ����� </H4> @@ -707,56 +701,68 @@ PostgreSQL Administrator's Guide �˶�ͭ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�� <P> �����ͤǤϡ�PostgreSQL �� Unix �ɥᥤ���åȡ��ޤ��ϡ�TCP/IP��³�Υ�������ޥ������³���������ޤ���postgresql.conf ����� listen_addresses ��������<B>���ġ�</B><I>$PGDATA/pg_hba.conf</I> �ե������Ŭ�ڤ�ľ���ơ��ۥ��ȼ�Ƴ��ǧ�ڤ�ͭ���ˤ��ʤ�������ϡ�¾�Υޥ������³�Ǥ��ʤ��Ǥ��礦�� </p> -<P> <H4><A NAME="3.6">3.6</A>) ����ɤ���ǽ�����뤿��ˤϡ��ǡ����١����������ɤΤ褦��Ĵ��������ɤ��Ǥ����� </H4> <P> �Τ��˥���ǥå������䤤��碌��®�٤������ޤ���<SMALL>EXPLAIN ANALYZE</SMALL>���ޥ�ɤ� PostgreSQL ���ɤΤ褦�ˤ��ʤ����䤤��碌���������Ƥ��뤫�뤳�Ȥ��Ǥ��������ơ��ɤΥ���ǥå������Ȥ��Ƥ��뤫�뤳�Ȥ��Ǥ��ޤ��� +</P> <P>�⤷ <SMALL>INSERT</SMALL> ��¿�Ѥ��Ƥ�����ϡ�<SMALL>COPY</SMALL> ���ޥ�ɤ�Ȥä��礭�ʥХå������Ǥ����Ԥʤ����Ȥ�Ƥ���Ʋ�����������ϡ�<SMALL>INSERT</SMALL> ���̡��˹Ԥʤ�����äȹ�®�Ǥ������ˡ�<SMALL>BEGIN WORK/COMMIT</SMALL> �Υȥ������֥��å������̵��ʸ�ϡ�����鼫�Ȥ����줾��Υȥ�����������äƤ���ȸ��ʤ���ޤ��������Ĥ���ʸ���ĤΥȥ������֥��å�����ǹԤʤ����Ȥ�ͤ��Ʋ�����������ˤ��ȥ�������Υ����С��إåɤ�����ޤ����ޤ����礭�ʥǡ������ѹ���Ԥʤ��ݤϥ���ǥå�������ٳ����ơ����ľ�����Ȥ�ͤ��ƤߤƲ������� +</P> <P> <a href= "http://www.postgresql.org/docs/current/static/runtime.html"> Administration Guide/Server Run-time Environment/Run-time Configuration</a>�ˤϡ� ���塼�˥Υ��ץ�������Ĥ�����ޤ���<i>fsync</I>���ץ�����<I>fsync()</I> ��̵���ˤ��뤳�Ȥ��Ǥ��ޤ�������ˤ�äơ��ƥȥ���������� <I>fsync()</I> �ǥǥ�����������Τ�ߤᤵ���ޤ��� +</P> <P> <I>shared_buffers</I>���ץ�����ȤäƥХå�����ɡ��ץ������ˤ��Ȥ��붦ͭ������Хåե����礭�����뤳�Ȥ�Ǥ��ޤ����⤷�����Υѥ�����⤯��������ȡ������ͥ�ζ�ͭ������֤������ͤ�ۤ��Ƥ��ޤ������ <I>postmaster</I> ������ʤ��ʤ�Ǥ��礦�������ͤǤϡ����줾��ΥХåե����礭���� 8K �ǡ��Хåե����� 1000 �Ǥ��� +</P> <P> <I>sort_mem</I> (PostgreSQL 8.0�����: <I>work_mem</I>)���ץ�����Ȥäơ����줾��ΥХå�����ɡ��ץ����������Ū���¤��ؤ��ˤ�äƻȤ�����κ��祵���������䤹���Ȥ�Ǥ��ޤ��� �����ͤ� 1024 (���ʤ����1MB)�Ǥ��� +</P> <P> �ޤ���<SMALL>CLUSTER</SMALL> ���ޥ�ɤ�Ȥäơ��ơ��֥�Υǡ�����ǥå����˹�碌�뤿��˥��롼�ײ����뤳�Ȥ�Ǥ��ޤ����ܤ����ϡ�����饤��ޥ˥奢��� <I>CLUSTER</I> �Ʋ������� +</P> -<P> <H4><A NAME="3.7">3.7</A>) �ɤΤ褦�ʥǥХ���ǽ���Ȥ��ޤ�����</H4> <P> PostgreSQL �ϡ��ǥХ��Τ���˰�̣�Τ��롢���־������𤹤뤤���Ĥ��ε�ǽ������ޤ��� +</P> <P> �ޤ���--enable-cassert ���ץ����� <I>configure</I> �����餻�ޤ����������ƥ���ѥ��뤹�뤳�Ȥˤ�ꡢ������ <I>assert()</I> �����Хå�����ɤο�Ľ������ƻ뤷������ͽ�����̤��Ȥ�������ȥץ���������ߤ���褦�ˤʤ�ޤ��� +</P> <P> <I>postmaster</I> �� <I>postgres</I> ��ξ���Ǥ����Ĥ��ΥǥХ������ץ��������Ѥ��Ǥ��ޤ����ޤ������Τ褦�� <I>postmaster</I> ��ư����Ȥ��Ϥ��ĤǤ⡢ɸ����Ϥȥ��顼���Ϥ�������ե����������褦�ˤ��Ƥ��뤳�Ȥ�Τ���Ʋ������� +</P> <PRE> cd /usr/local/pgsql - ./bin/postmaster >server.log 2>&1 & + ./bin/postmaster >server.log 2>&1 & </PRE> <P> ����ˤ�� PostgreSQL �κǾ����Υǥ��쥯�ȥ�� server.log �ե����뤬�֤���ޤ������Υե�����ϥ����С���������������䥨�顼�ˤĤ���ͭ�Ѥʾ����ޤߤޤ���<I>Postmaster</I> �Ϲ��˾ܺ٤ʾ������𤹤뤿��� <I>-d</I> ���ץ���������ޤ������� <I>-d</I> ���ץ����ϡ��ǥХ�����٥����ꤷ�ޤ����⤤�ǥХ�����٥�Ǥϡ��礭�ʥ����ե�������������뤳�Ȥ����դ��ʤ��ƤϤʤ�ޤ��� +</P> <P>�⤷��<i>postmaster</i>�����äƤ��ʤ���С�<I>postgres</I>�Хå�����ɤޥ�ɥ饤�����餻�뤳�Ȥ��Ǥ���ľ��<SMALL>SQL</SMALL>ʸ���פ��뤳�Ȥ��Ǥ��ޤ������Τ�꤫���ϡ��ǥХ���Ū�ΤȤ�<B>����</B>�����ᤷ�ޤ������ߥ�����ǤϤʤ������Ԥ��䤤��碌�ν���ˤʤ뤳�Ȥ����դ��Ƥ����������⤷���ǥХ�����ܥ������ƥ���ѥ��뤷�Ƥ���С��ǥХå���ȤäƲ��������Ƥ��뤫�뤳�Ȥ��Ǥ��ޤ���postmaster ����Хå�����ɤϤ����櫓�ǤϤʤ��Τǡ���Ω�ʴĶ������äƤ���ΤǤϤʤ����å����Хå�����ɤȤ����ä����꤬��ʣ���뤳�ȤϤ���ޤ��� +</P> - <P> �⤷��<i>postmaster</i>�����äƤ���С����륦����ɥ���<I>psql</I>�Ϥ���ȡ�<pre>SELECT pg_backend_pid()</pre>��Ȥäơ�<i>psql</i> �ǻȤ��� <i>postgres</i> �ץ�������<SMALL>PID</SMALL>�����Ĥ���ޤ��� + <P> �⤷��<i>postmaster</i>�����äƤ���С����륦����ɥ���<I>psql</I>�Ϥ���ȡ�<code>SELECT pg_backend_pid()</code>��Ȥäơ�<i>psql</i> �ǻȤ��� <i>postgres</i> �ץ�������<SMALL>PID</SMALL>�����Ĥ���ޤ��� �ǥХå���Ȥä�<i>postgres</i>��<SMALL>PID</SMALL>�˥����å�(attach)���ޤ����ǥХå����椫��֥졼�����ݥ���ȤåȤ���<i>psql</i> �����䤤��碌��ȯ�Ԥ��ޤ����ǥХ��Τ����<i>postgres</i>���ư������ϡ�PGOPTIONS="-W n" ������Ǥ������줫�顢<i>psql</i> �Ϥ��ޤ�������ˤ�ꡢ<i>n</i> �ó��Ϥ��٤餻��Ϥ��ʤΤǡ��ǥХå��ǥץ������˥����å����ơ��֥졼���ݥ���Ȥ����ꤷ�����Ϥ������ɤäƸ��Ƥ椯���Ȥ��Ǥ��ޤ��� -<P> �����Ĥ���<pre>log_*</pre>�����й����ѿ��ϡ��ǥХå�����ǽ¬��ˤȤƤ����Ω�ĥץ����������פΰ������ǽ�ˤ��ޤ��� +</P> +<P> �����Ĥ���<code>log_*</code>�����й����ѿ��ϡ��ǥХå�����ǽ¬��ˤȤƤ����Ω�ĥץ����������פΰ������ǽ�ˤ��ޤ��� +</P> <P> ���Ȥ����ؿ����ɤΤ��餤�¹Ի��֤äƤ��뤫�뤿��ˡ��ץ��ե�����ʥץ��ե������դ��ˤǥ���ѥ��뤹�뤳�Ȥ��ǽ�Ǥ������ΥХå�����ɤΥץ��ե����롦�ե������ <I>pgsql/data/base/dbname</I> �ǥ��쥯�ȥ�˳�Ǽ�����Ǥ��礦�����饤����ȤΥץ��ե�����ϥ��饤����Ȥθ��ԥǥ��쥯�ȥ���֤����Ǥ��礦��Linux �ǤޤȤ�ʥץ��ե������Ԥ��ˤ� <I>-DLINUX_PROFILE</I> �ǥ���ѥ��뤹��ɬ�פ�����ޤ��� +</P> - -<P> <H4><A NAME="3.8">3.8</A>) ��³���褦�Ȥ���Ȥ��� <I>'Sorry, too many clients'</I> ���Ф�ΤϤʤ��Ǥ����� </H4> <P> <I>postmaster��</I>Ʊ����ư�Ǥ���Хå�����ɥץ��������Ф������¿������䤹ɬ�פ�����ޤ��� +</P> <P>����κ���ץ�������32�ץ������Ǥ���<I>-N</I>��Ŭ�ڤ��ͤ�����ˤ���<I>postmaster</I>��Ƶ�ư���뤫��PostgreSQL.conf �������뤳�Ȥˤ�äơ������ͤ����䤹���Ȥ��Ǥ��ޤ��� +</P> <P>�⤷��<I>-N</I> �� 32�����礭������ΤǤ���С�<I>-B</I>������64����礭���ͤ����ä����ʤ��ƤϤʤ�ʤ�����<I>-B</I> �Ͼ��ʤ��Ȥ� <I>-N</I> ��2�ܤϤʤ��ƤϤʤ餺�������餯�ǹ���ǽ��˾��ʤ�Ф������礭���ͤ�ɬ�פʤϤ��Ǥ����Хå�����ɥץ�����������ˤ���ȡ�����������Unix�����ͥ빽���ѥ��������䤹���Ȥ�ɬ�פˤʤ뤫�⤷��ޤ��� ��ͭ������֥��å��κ�����(<SMALL>SHMMAX</SMALL>)�� @@ -767,17 +773,19 @@ PostgreSQL Administrator's Guide �˶�ͭ����ȥ��ޥե��ˤĤ��Ƥξ���ξܺ٤�� ���ǧ����˴ޤޤ�ޤ��� PostgreSQL�˵������Хå�����ɤΥץ������������¤���Ƥ���Τϡ� �����ƥ�Υ������Ȥ��̤��Ƥ��ޤ����Ȥ��뤿��Ǥ��� +</P> -<P> -<H4><A NAME="3.9">3.9</A>) pgsql_tmp</I> �ǥ��쥯�ȥ����ˤϲ�������ޤ����� +<H4><A NAME="3.9">3.9</A>) <I>pgsql_tmp</I> �ǥ��쥯�ȥ����ˤϲ�������ޤ����� </H4> <P> �䤤��碌�¹ԥ⥸�塼��ˤ�ä��������줿���Ū�ʥե����뤬�����Υǥ� �쥯�ȥ�˴ޤޤ�ޤ����㤨�С��⤷ <SMALL>ORDER BY</SMALL> �������������˥Хå�����ɤ� <I>-S</I> �ѥ����ǵ��Ĥ����ͤ����礭�ʥ��ڡ����������Ȥκݤ�ɬ�פ��Ȥ���ȡ���줿�ǡ������ݻ����뤿��˰��Ū�ʥե����뤬�����Ĥ���������������ޤ��� +</P> <P> ���Ū�ʥե�����ϼ�ưŪ�˾ä������Ϥ��Ǥ������⤷�������Ȥ�����ǥХå�����ɤ�����å��夷�Ƥ��ޤ��Ȥ����Ϥʤ�ޤ���<I>postmaster</I>����ߤȥꥹ�����ȤǤ����Υե�����ϥǥ��쥯�ȥ꤫��ä������ޤ��� +</P> -<SMALL><PRE> +<PRE> [������ SYSLOGD ��ͳ�ǥ�������Ϥ���ˤϡ��ޤ���configure �� --enable-syslog �դ������餻���塢����ѥ���ȥ��ȡ����Ԥʤ��ޤ��� @@ -787,41 +795,40 @@ PostgreSQL�˵������Хå�����ɤΥץ������������¤���Ƥ���Τϡ� ���ץ�����դ��ˤƥ����Х⡼�ɤǵ�ư���ޤ���(�С������ 7.1 ����� pg_options �� PostgreSQL.conf �ˤʤäƤ��ޤ���) ] -</PRE></SMALL> +</PRE> -<P> <H4><A name="3.10">3.10</A>) PostgreSQL�Υ�㡼�����åץǡ��Ȥ���Τ˥���פȥꥹ�ȥ��ʤ��ƤϤʤ�ʤ��ΤϤʤ��Ǥ�����</H4> <P> PostgreSQL������ϥޥ��ʡ������ǤϾ������ѹ������Ԥʤ��ޤ���Τǡ�7.2 ���� 7.2.1 �ؤΥ��åץ��졼�ɤˤϥ���פȥꥹ�ȥ���ɬ�פϤ���ޤ�����������㡼����(���Ȥ��С�7.2����7.3�ؤΤ褦��)�Ǥϡ������ƥ�ơ��֥��ǡ����ե�����������ե����ޥåȤ��ѹ��Ф��йԤʤ��ޤ����������ѹ��Ϥ����Ƥ�ʣ���ǡ����Τ���桹�ϥǡ����ե�����Τ���θ����ߴ�����ݻ����뤳�Ȥ��Ǥ��ޤ�����פ����ѥե����ޥåȤǥǡ�������Ϥ���������������ե����ޥåȤ��ɤ߹��ळ�Ȥ��Ǥ��ޤ���</P> <P> �ǥ�������ǤΥե����ޥåȤ��ѹ��Τʤ�Ʊ������Ǥϡ����åץ��졼�ɤϡ�����ס��ꥹ�ȥ��ǤϤʤ���<I>pg_upgrade</I> ������ץȤ�Ȥ����Ȥ��Ǥ��ޤ��������Ρ��Ȥˤϡ�<I>pg_upgrade</I> �����Ѳ�ǽ�ʥ������ɤ���������Ƥ��ޤ���</P> -<P> <H4><A name="3.11">3.11</A>) �ϡ��ɥ������ˤϤɤ�ʥ���ԥ塼����Ȥ��Ф褤�Ǥ�����</H4> <P> PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ�������Ʊ���ʼ����Ȼפ������������ޤ���������������ϴְ㤤�Ǥ���ECC RAM��SCSI������ӡ����ʼ��ޥ����ܡ��ɤϡ��¤��ϡ��ɥ���������٤�ȡ���꿮�������⤯�������ǽ���ɤ��ΤǤ���PostgreSQL �ϤۤȤ�ɤΥϡ��ɥ������Dz�Ư���ޤ���������������ǽ�����פʾ��ϡ��ϡ��ɥ������Υ��ץ����椹�뤳�Ȥ������Ǥ������ꥹ�ȤǤ�ϡ��ɥ��������ץ����ȥȥ졼�ɥ��դˤĤ��Ƶ������뤳�Ȥ��Ǥ��ޤ���</P> -<P> <HR> <H2 align="center">����μ���</H2> -<P> <H4><A NAME="4.1">4.1</A>) �Х��ʥꡦ����������̾參������Ȥθ�̩�ʰ㤤�ϲ��Ǥ����� </H4> <P> �ܽҤϡ�����饤��ޥ˥奢��� <SMALL>DECLARE</SMALL> �Ʋ������� +</P> -<P> <H4><A NAME="4.2">4.2</A>) �ǽ�ο������Τߤ� <SMALL>SELECT</SMALL>����ˤϤɤ����ޤ�����������ʥ����� </H4> <P> ����饤��ޥ˥奢���<SMALL>FETCH</SMALL>�Ƥ������������뤤�ϡ�SELECT ... LIMIT....��ȤäƤߤƲ������� +</P> <P>���Ȥ����ߤ����ΤϺǽ�ο����������Ǥ⡢���٤Ƥ��䤤��碌��ɾ�����ʤ��ƤϤʤ�ʤ����⤷��ޤ���<SMALL>ORDER BY</SMALL> ����ä��䤤��碌��Ȥ����Ȥ�ͤ��ƤߤƲ������� �⤷��<SMALL>ORDER BY</SMALL>�˹�ä�����ǥå���������Ȥ���� PostgreSQL���ᤵ�줿�ǽ�ο�����������ɾ���Ǥ��뤫�⤷��ޤ����Ǥʤ�С�PostgreSQL �ϰտޤ������������������ޤǤ��٤ƤΥ�����ɾ�����ʤ���Фʤ�ʤ����⤷��ޤ��� +</P> <P>������ʥ�����<SMALL>SELECT</SMALL>����ˤϡ�����ʸ��Ȥ��ޤ��� +</P> <PRE> SELECT col FROM tab @@ -829,7 +836,6 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� LIMIT 1; </PRE> -<P> <H4><A NAME="4.3">4.3</A>) �ơ��֥�䤽��¾�ξ���Υꥹ�Ȥ� <I>psql</I> �Ǹ���ˤϤɤ����ޤ����� </H4> <P> @@ -842,6 +848,7 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� <P> <SMALL>DROP COLUMN</SMALL>��ǽ����<SMALL>ALTER TABLE DROP COLUMN</SMALL> �Ȥ��ƥ���7.3 �˲ä����ޤ���������ޤǤΥС������Ǥϡ���������ˤ������ޤ�: +</P> <PRE> BEGIN; @@ -855,6 +862,7 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� </PRE> <P>�����Υǡ��������פϼ���ʸ���Ѥ����ޤ��� +</P> <PRE> BEGIN; @@ -865,12 +873,13 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� </PRE> <P>�����Ԥʤä��Ȥ��ϡ����ä��줿�Ԥ��ȤäƤ���ǥ��������֤������뤿���<I>VACUUM FULL tab</I>���ۤ����ɤ����⤷��ޤ��� +</P> -<P> <H4><A NAME="4.5">4.5</A>) �������ơ��֥롢�ǡ����١����κ��祵�����ϡ� </H4> <P> ���¤ϰʲ��ΤȤ���Ǥ��� +</P> <PRE> �ǡ����١����κ��祵����? ����̵�� (32 TB �Υǡ����١�����¸�ߤ��ޤ�) �ơ��֥�κ��祵����? 32TB @@ -882,22 +891,25 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� </PRE> <P> ����������ϼºݤ�̵���¤ǤϤʤ����ǥ��������̤ȥ���䥹��åץ��ڡ������礭���ˤ�����¤���ޤ�����ǽ�Ϥ������ͤ����ȤΤۤ��礭�ʻ������������ޤ��� +</P> <P> ����ơ��֥륵������32TB�ϥ��ڥ졼�ƥ������ƥ�ˤ�����ե�����Υ��ݡ��Ȥ�ɬ�פȤ��ޤ�����ʥơ��֥��ʣ����1GB�Υե������ʬ������¸����ޤ��Τǡ��ե����륷���ƥ�����¤Ͻ��פǤϤ���ޤ��� +</P> <P> �ǥե���ȤΥ֥��å���������32k�ˤ��뤳�Ȥǡ�����ơ��֥륵�����Ⱥ��祫�����Ȥ��ܤˤ��뤳�Ȥ��Ǥ��ޤ��� +</P> -<P> <H4><A NAME="4.6">4.6</A>) ����Ū�ʥƥ����ȥե����뤫��ǡ�������¸����ˤϡ��ǡ����١����Υǥ��������̤ϤɤΤ��餤ɬ�פǤ��� </H4> - -���̤Υƥ����ȥե������ PostgreSQL �Υǡ����١�������¸����ˤϡ��������5�ܤΥǥ��������̤�ɬ�פȤ��ޤ���<P> +<P> +���̤Υƥ����ȥե������ PostgreSQL �Υǡ����١�������¸����ˤϡ��������5�ܤΥǥ��������̤�ɬ�פȤ��ޤ���</P> <P> ����Ȥ��ơ��ƹԤ������ȥƥ����ȵ��Ҥ���� 100,000�ԤΥե������ͤ� �Ƥߤޤ��礦���ƥ����Ȥ�ʸ�����ʿ��Ĺ����20�Х��ȤȲ��ꤹ��ȡ��ե�å� �ե�������礭������2.8MB �Ǥ������Υǡ�����ޤ� PostgreSQL �ǡ����١��� �ե�������礭���ϼ��Τ褦����6.4MB�ȸ��Ѥ�뤳�Ȥ��Ǥ��ޤ��� +</P> <PRE> 32 bytes: �ƥ����Υإå�(����) @@ -921,26 +933,29 @@ PC�ϡ��ɥ������ϤۤȤ�ɸߴ���������ޤ��Τǡ��ۤȤ�ɤοͤϡ����٤Ƥ�PC�ϡ��ɥ� <P> ����ǥå����ϡ�����ۤɤΥ����Хإåɤ��ᤷ�ޤ�������ǥå����դ������ǡ�����ޤ�ʾ塢����ʤ���礭���ʤ�ޤ��� +</P> <P><SMALL>NULL</SMALL>�ϥӥåȥޥåפȤ�����¸����Ƥ��ơ�����餬�鷺���˥��ڡ�����Ȥ��ޤ��� +</P> - -<P> <H4><A NAME="4.7">4.7</A>) ������줿�ơ��֥롢����ǥå������ǡ����١���������ӡ��桼����ɤΤ褦�ˤ��Ƹ��Ĥ��Ф��ޤ����� </H4> <P> <I>psql</I> �ˤϤ��������ʥХå�����å��塦���ޥ�ɤ����ꡢ�������������ɽ�����ޤ����Хå�����å��塦���ޥ�ɤμ����ˤ� \? ��ȤäƲ��������ޤ���<i>pg_</i> �ǻϤޤ륷���ƥ�ơ��֥�ˤ�Ҥ���Ƥ��ޤ�������ˡ�<i>psql -l</i> �Ϥ��٤ƤΥǡ����١�����ꥹ��ɽ�����ޤ��� +</P> <P> �ޤ���<I>pgsql/src/tutorial/syscat.source</I> �ե���������餻�ƤߤƲ�����������ϡ������� <SMALL>SELECT</SMALL> ʸ�ˤ��ɬ�פʾ����ǡ����١����Υ����ƥࡦ�ơ��֥뤫����Ф����㼨���Ƥ���ޤ��� +</P> -<P> <H4><A NAME="4.8">4.8</A>) �䤤��碌���٤�����������ǥå�����ȤäƤ����ͻҤ�����ޤ��ʤ��Ǥ����� </H4> +<P> ����ǥå����ϼ�ưŪ�ˤ��٤Ƥ��䤤��碌�ǻȤ���櫓�ǤϤ���ޤ��ơ� �֥뤬�Ǿ�����������礭�����䤤��碌�Ǥ��Τ鷺���ʥѡ�����ơ����Υ����� ���������������ǥå����ϻȤ��ޤ�������ϥ���ǥå����������ˤ� �굯������������ʥǥ��������������ϡ��ơ��֥�ȥ졼�Ȥ��ɤ�缡 ���������٤��ʤ뤳�Ȥ����뤫��Ǥ��� +</P> <P>����ǥå�����Ȥ�������ꤹ�뤿��ˡ�PostgreSQL �ϥơ��֥�ˤĤ� �Ƥ������������ʤ���Фʤ�ޤ�����������ϡ�<SMALL>VACUUM @@ -953,10 +968,12 @@ ANALYZE</SMALL>�ޤ��ϡ�ñ�� <SMALL>ANALYZE</SMALL> ��ȤäƼ������뤳�� <P> ����ǥå����ϡ��̾� <SMALL>ORDER BY</SMALL> �����Ԥ� ������ˤϻȤ��ޤ��缡��������³������Ū�����Ȥϡ�����ʥơ��֥� �Υ���ǥå����������������̤Ϲ�®�Ǥ���</P> +<P> ��������<SMALL>ORDER BY</SMALL>���Ȥ߹�蘆�줿<SMALL>LIMIT</SMALL> �ϡ��ơ��֥�ξ�������ʬ���֤�����ˤ��Ӥ��ӥ���ǥå�����Ȥ��Ǥ��礦�� �ºݡ�MAX() �� MIN() ������ǥå�����Ȥ�ʤ��Ȥ��Ƥ⡢���Τ褦���ͤ� ORDER BY �� LIMIT ��Ȥäƥ���ǥå�����ȤäƼ��Ф����Ȥ���ǽ�Ǥ�: +</P> <PRE> SELECT col @@ -969,23 +986,23 @@ ORDER BY �� LIMIT ��Ȥäƥ���ǥå�����ȤäƼ��Ф����Ȥ���ǽ�Ǥ�: <P> <SMALL>LIKE</SMALL> ���뤤�� <I>~</I> �Τ褦�ʥ磻��ɥ����ɱ黻 �Ҥ����̤ʴĶ��Ǥ����Ȥ��ޤ��� +</P> <UL> - <LI>����ʸ����ʸ����κǽ�ˤ����ޤ������Ȥ��С�</LI> + <LI>����ʸ����ʸ����κǽ�ˤ����ޤ������Ȥ��С� <UL> <LI><SMALL>LIKE</SMALL> �ѥ�����<I>%</I>�ǻϤޤ�ʤ�</LI> <LI><I>~</I> (����ɽ��) �ѥ������<I>^</I>�ǻϤޤ�ʤ���Фʤ�ʤ�</LI> - </UL> + </UL></LI> <LI>����ʸ�����ʸ�����饹����Ϥ�뤳�ȤϤǤ��ޤ����Ȥ��С�[a-e]��</LI> <LI><SMALL>ILIKE</SMALL> �� <I>~*</I> �Τ褦����ʸ���Ⱦ�ʸ������̤� �ʤ������ϻȤ��ޤ����Τ���ꡢ����FAQ��<a href="#4.12">4.12</a>�����������ؿ��Υ���ǥå������Ȥ��ޤ���</LI> <LI><i>initdb</i> �ˤ����Ƥϡ��ǥե���Ȥ�<I>C</I>�������뤬�Ȥ��� ���ƤϤʤ�ޤ�������ͳ�ϡ�C��������ʳ��Ǥϼ����礭��ʸ�����Τ뤳�� -���Ǥ��ʤ�����Ǥ������Τ褦�ʾ�硢<PRE>LIKE</PRE>����ǥ����ˤ��� -Ư���褦�ʡ����̤�<PRE>text_pattern_ops</PRE>����ǥå�������� +���Ǥ��ʤ�����Ǥ������Τ褦�ʾ�硢<code>LIKE</code>����ǥ����ˤ��� +Ư���褦�ʡ����̤�<code>text_pattern_ops</code>����ǥå�������� ���뤳�Ȥ�Ǥ��ޤ��� </LI> </UL> - <P> <P>8.0������Υ����Ǥϡ�����ǥå����ϡ��ǡ����������礦�ɥ���ǥå����Υ����η��Ȱ��פ��ʤ���С��Ȥ��ʤ����Ȥ����Ф��Ф���ޤ����������餯��int2, int8, ����� numeric ���Υ����Υ���ǥå����������Ǥ���</P> @@ -994,84 +1011,84 @@ ORDER BY �� LIMIT ��Ȥäƥ���ǥå�����ȤäƼ��Ф����Ȥ���ǽ�Ǥ�: ] -<P> <H4><A NAME="4.9">4.9</A>) �䤤��碌���֥ƥ��ޥ������ɤΤ褦���䤤��碌��ɾ������Τ���ˤϤɤ����ޤ����� </H4> <P> ����饤��ޥ˥奢��� <SMALL>EXPLAIN</SMALL> �Ʋ������� +</P> -<P> <H3><A NAME="4.10">4.10</A>) R-tree ����ǥå����Ȥϲ��Ǥ�����</H3> <P> R-tree ����ǥå����϶���Ū�ʥǡ����˥���ǥå������դ��뤿��˻Ȥ��ޤ����ϥå��奤��ǥå����Ǥ��ϰϤθ������Ǥ��ޤ��ޤ���B-tree ����ǥå����Ǥϡ��������Ǥ����ϰϤθ������Ǥ��ޤ���R-tree ����ǥå����Ǥ����¿�����Υǡ������ޤ������Ȥ��С��⤷ R-tree ����ǥå����� <I>point</I> ����°�����դ��뤳�Ȥ��Ǥ���Ȥ���ȥ����ƥ�ϡ���Ĺ�����˰Ϥޤ줿���٤�����פȤ����褦���䤤��碌�ˡ�����Ψ�ɤ��������ޤ��� +</P> <P> R-Tree ���߷פθ�ŵ�Ȥʤ븢�Ҥ�����ʸ��: +</P> <P> Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57. +</P> <P> ������ʸ�ϡ�Stonebraker ������ "Readings in Database Systems" �Ǥ���夲���Ƥ��ޤ��� +</P> -<P> -<SMALL><PRE> +<PRE> [������ ������ü�������¼�������R-Tree�ط���ʸ����Ҳ𤷤�ĺ���ޤ����� ���ܸ� Postgres ML �Υ��������֤��� "Subject: [postgres95 801] spatial data structures" <A HREF="http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html">http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html</A> ������������ ] -</PRE></SMALL> +</PRE> <P> �ȹ��ߤ� R-Tree �ǥݥꥴ���ܥå��������Ǥ��ޤ�������Ū�ˤ�R-Tree �Ϥ�äȹ⤤����������褦�ˤ��ĥ�Ǥ��ޤ����¼�Ū�ˤϡ�R-Tree �γ�ĥ�ˤϤ���äȤ�����Ȥ�ɬ�פǤ��ơ����ߡ��桹�Ϥ����ɤΤ褦�ˤ��뤫�ˤĤ��Ƥ�ʸ�����äƤ��ޤ��� +</P> -<P> -<SMALL><PRE> +<PRE> [������ R-Tree ����ǥå�����GiST�dz�ȯ����Ƥ��ޤ��� <a href="http://www.sai.msu.su/~megera/postgres/gist/">http://www.sai.msu.su/~megera/postgres/gist/</a> ] -</PRE></SMALL> +</PRE> -<P> <H4><A NAME="4.11">4.11</A>) ����Ū�䤤��碌��Ŭ���Ȥϲ��Ǥ����� </H4> <P> GEQO �⥸�塼��ϡ������Υơ��֥���礹��Ȥ��ˡ�����Ū���르�ꥺ��(GA)�����碌���®�����ޤ�������ˤ�ꡢ����ߤĤ֤���õ����Ԥʤ�ʤ��Ƥ⡢�礭�ʷ��(join queries)�����Ȥ��Ǥ���褦�ˤʤ�ޤ��� +</P> -<P> <H4><A NAME="4.12">4.12</A>) ����ɽ���Ǥθ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ�����ɽ�������ϤɤΤ褦�˼¸����ޤ�������ʸ���Ⱦ�ʸ���Ȥ���̤��ʤ������Τ���Υ���ǥå����ϤɤΤ褦�˻Ȥ��ޤ����� </H4> <P> <I>~</I>�黻�Ҥ�����ɽ���ȹ��Ԥʤ���<I>~*</I> ����ʸ���Ⱦ�ʸ������̤��ʤ�(case-insensitive)����ɽ���ȹ��Ԥ��ޤ��� ��ʸ���Ⱦ�ʸ������̤��ʤ� <SMALL>LIKE</SMALL> �黻�Ҥ� <SMALL>ILIKE</SMALL> �Ȥ����ޤ��� - +</P> <P>��ʸ���Ⱦ�ʸ������̤��ʤ�������Ӥϼ��Τ褦��ɽ���Ǥ��롧 +</P> <PRE> SELECT * FROM tab WHERE lower(col) = 'abc'; </PRE> - +<P> ɸ�।��ǥå����ǤϻȤ�줺���������ʤ��顢�⤷�ؿ�����ǥå����� ��ä��ʤ餽�줬�Ȥ���Ǥ��礦�� - +</P> <PRE> CREATE INDEX tabindex ON tab (lower(col)); </PRE> -<P> <H4><A NAME="4.13">4.13</A>) �䤤��碌����ǡ��ե�����ɤ� <SMALL>NULL</SMALL> �Ǥ��뤳�ȤФ���ˤϤɤ����ޤ����� </H4> <P>������ <SMALL>IS NULL</SMALL> �� <SMALL>IS NOT NULL</SMALL> �Ȥǻ�Ƥߤޤ���</P> -<P> <H4><A NAME="4.14">4.14</A>) �͡���ʸ�����Τ��줾��ΰ㤤�ϲ��Ǥ����� </H4> @@ -1086,17 +1103,18 @@ BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) </PRE> <P> ����̾�ˤ��ܤˤ�����Τϡ������ƥࡦ����������Ĵ�٤�Ȥ��䡢���顼��å�������������Ȥ��Ǥ��� - +</P> <P> �嵭�η��Τ����ǽ�Σ��Ĥη��� "varlena" ���Ǥ�(���ʤ�����ǥ������κǽ�Σ��Х��Ȥ��ǡ���Ĺ�ǡ�����θ�˼ºݤΥǡ�����³���ޤ�)�����Τ褦�˼ºݤζ��֤�������줿�礭�����⾯���礭���ʤ�ޤ����������������Υǡ�������<SMALL>TOAST</SMALL>�ˤ�갵�̤��줿��ʣ���������Ϥä���¸���줿�ꤷ�ơ��ǥ�������ζ��֤ϻפä���꾮�����ʤ�ޤ��� +</P> <P><SMALL>VARCHAR(n)</SMALL> �ϲ���Ĺ��ʸ�������¸����Τ˺�Ŭ�Ǥ�������¸�Ǥ���ʸ�����Ĺ�������¤�����ޤ���<SMALL>TEXT</SMALL> ��Ĺ�������¤�̵��ʸ�������¸�Τ���Τ�Τǡ������ 1�����Х��ȤǤ��� <SMALL>CHAR(n)</SMALL>�ϡ�<SMALL>VARCHAR(n)</SMALL>��Ϳ����줿ʸ����������¸����Τ��Ф����֥��ͤ����Ǥ��Ĥ�Ʊ��Ĺ����ʸ�������¸����Τ˺�Ŭ�Ǥ���<SMALL>BYTEA</SMALL>�ϡ���ʬŪ��<SMALL>NULL</SMALL> �ΥХ��Ȥ�ޤ�Х��ʥ�ǡ�������¸���뤿��Τ�ΤǤ��������Υ����פ�Ʊ�����餤����ǽ���������ޤ���</P> -<P> <H4><A NAME="4.15.1">4.15.1</A>) ����(serial)����ư��ʬ�ե�����ɤϤɤΤ褦�ˤĤ���ޤ����� </H4> <P> PostgreSQL �� <SMALL>SERIAL</SMALL> �ǡ������ݡ��Ȥ��ޤ���������˥�������ư�������ޤ������Ȥ��С� +</P> <PRE> CREATE TABLE person ( @@ -1104,7 +1122,9 @@ BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) name TEXT ); </PRE> +<P> �ϼ�ưŪ�˼��Τ褦����������ޤ�: +</P> <PRE> CREATE SEQUENCE person_id_seq; CREATE TABLE person ( @@ -1117,38 +1137,43 @@ BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) �ϡ� 7.3 ����ϼ�ưŪ�ˤϹԤʤ��ʤ��ʤ�ޤ����� ] </PRE> - +<P> ���֤ˤĤ��ƤΤ�äȾܤ�������ϡ�����饤��ޥ˥奢��� <I>create_sequence</I> ������������ +</P> <P> �ޤ����ƥ�����<I>OID</I>�ե�����ɤ����ͤȤ��ƻȤ����Ȥ�Ǥ��ޤ����������ʤ��顢�⤷��ǡ����١��������פ��ƥ�����ɤ���ɬ�פ�������ϡ�<SMALL>OID</SMALL>��¸���뤿���<I>pg_dump</I> �� <I>-o</I>���ץ�����Ȥ������ޤ��ϡ�<SMALL>COPY WITH OIDS</small>���ץ�����Ȥ�ɬ�פ�����ޤ��� - +</P> <H4><A NAME="4.15.2">4.15.2</A>) <SMALL>SERIAL</SMALL>�ǡ�����������������ͤϡ��ɤ�����������ޤ����� </H4> <P>�ҤȤĤ���ˡ�ϡ�<I>nextval()</I> �ؿ���ȤäƤ����ͤ���������<I>��(before)��</I> SEQUENCE ���֥������Ȥ��鼡�� <SMALL>SERIAL</SMALL> �ͤ���Ф������줫��ºݤ������뤳�ȤǤ���<A HREF="#4.15.1">4.15.1</A> �Υơ��֥�����Ȥ��Ȥ���ȡ���������ǤϤ��Τ褦�ˤʤ�ޤ��� +</P> <PRE> new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); </PRE> +<P> �������ơ�<tt>new_id</tt> ����¸�����������ͤ�¾���䤤��碌��(���Ȥ��С�<tt>person</tt> �ơ��֥���Ф��볰������(foreign key)�Τ褦��)�Ȥ��Ȥ褤�Ǥ��礦����ưŪ�˺��줿<SMALL>SEQUENCE</SMALL>���֥������Ȥ�̾���ϡ�<<I>table</I>>_<<I>serialcolumn</I>>_<I>seq</I> �Τ褦�ˤʤꡢ���Τ�����<I>table</I> �� <I>serialcolumn</I> �Ϥ��줾��ơ��֥��̾����<SMALL>SERIAL</SMALL>������̾���Ǥ��� +</P> <P> - ���뤤�ϡ�Ϳ����줿<SMALL>SERIAL</SMALL>�ͤ��줬�����ͤȤ����������줿<I>���(after)</I>�� <I>currval()</I> �ؿ���ȤäƼ��Ф����Ȥ�Ǥ��ޤ������Ȥ��С� +</P> <PRE> execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); </PRE> +<P> �Ǹ�ˡ�<SMALL>INSERT</SMALL>ʸ�����֤�<A HREF="#4.17"><SMALL>OID</SMALL></A>��Ȥäơ������ͤ�ߤĤ��뤳�Ȥ�Ǥ��ޤ�������������oid���ͤ�40����ã����Ȥ�Ȥ���äƤ��ޤ����Ǥ�ܿ������㤤������Ȥʤ�Ǥ��礦��Perl DBI �� DBD::Pg �⥸�塼���Ȥ��С�$sth->execute() �θ�� $sth->{pg_oid_status} ���ͳ���Ƥ��� OID �ͤ�Ȥ���褦�ˤ��뤳�ȤϤǤ��ޤ��� +</P> -<P> <H4><A NAME="4.15.3">4.15.3</A>) <I>currval()</I> ��¾�Υ桼���Ȥζ�����֤˴٤뤳�ȤϤʤ��Ǥ����� </H4> <P>����Ϥ���ޤ���<I>currval()</I> �ϡ����٤ƤΥ桼���ǤϤ���ޤ������ʤ��ΥХå�����ɤ�Ϳ����줿���ߤ��ͤ��֤��ޤ��� - +</P> <H4><A name="4.15.4">4.15.4</A>) �ȥ����������Ǥ����Ȥ��ˤ⤦�����ɥ��������ֹ椬�Ȥ��ʤ��ΤϤʤ��Ǥ�������������SERIAL�����˶���������ΤϤʤ��Ǥ����� </H4> @@ -1156,17 +1181,18 @@ BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) <P>Ʊ������������뤿��ˡ��¹���Υȥ�������ˡ�ɬ�פǥȥ�������λ����ޤǥ��å�����ʤ����������ͤ�Ϳ���Ƥ��ޤ������Τ���ȥ����������Ǥ������ֹ������Ƥ˥���åפ������ޤ��� </P> -<P> <H4><A NAME="4.16">4.16</A>) <SMALL>OID</SMALL> �Ȥϲ��Ǥ����� <SMALL>TID</SMALL> �Ȥϲ��Ǥ����� </H4> <P> <SMALL>OID</SMALL> �Ȥϰ�դΥ���ID ���Ф��� PostgreSQL �������Ǥ���PostgreSQL ����ǤĤ����뤹�٤ƤΥ����ϰ�դ� <SMALL>OID</SMALL> �����ޤ���<I>initdb</I> ��ȯ������� <SMALL>OID</SMALL> �Ϥ��٤� 16384 (<I>include/access/transam.h</I> ����)��꾮�����ͤǤ���<I>initdb</I> ��Τ��٤Ƥ� <SMALL>OID</SMALL> (�桼������)�Ϥ���ʾ���ͤˤʤ�ޤ��� ����Ǥϡ�����餹�٤Ƥ� <SMALL>OID</SMALL>�ϰ�ĤΥǡ��֥��ǡ����١������α�ޤ餺��PostgreSQL ���ȥ졼��������Τ���ǰ�դǤ��� +</P> <P> PostgreSQL �ϥơ��֥�֤Υ������ӤĤ��뤿��ˡ����Υ����ƥ�ơ��֥���� <SMALL>OID</SMALL> ��Ȥ��ޤ������� <SMALL>OID</SMALL> ������Υ桼���Υ������̤��뤿��������ǻȤ��뤳�Ȥ��Ǥ��ޤ���<SMALL>OID</SMALL> ���ͤ���¸���뤿��ˤ� <I>OID</I> �����˻Ȥ����Ȥ�ޤ������®�������������뤿��� <I>OID</I> �ե�����ɤ˥���ǥå������뤳�Ȥ��Ǥ��ޤ��� O<SMALL>ID</SMALL> �ϡ����ƤΥǡ����١����ǻȤ�������ΰ褫�顢���Ƥο����������˳�����Ƥ��ޤ���<SMALL>OID</SMALL> ��¾�β������Ѥ����������뤤�ϸ��� <SMALL>OID</SMALL> ��ơ��֥�Ȱ��˥��ԡ��������Τʤ顢�Ǥ��ʤ��Ϥ���ޤ��� +</P> <PRE> CREATE TABLE new_table(mycol int); @@ -1177,36 +1203,38 @@ BYTEA bytea ����Ĺ�ΥХ�������(null-byte safe) </PRE> <P> O<SMALL>ID</SMALL> �ϡ�4�Х��Ȥ������Ȥ�����¸����Ƥ���Τǡ�40����ۤ���Ȱ��Ƥ��ޤ��Ǥ��礦��ï�⤳�줬����������𤷤Ƥ���ͤϤ��ޤ���Ǥ������������ʤ����ˤ������¤���������Ȥ�ײ褷�Ƥ��ޤ��� +</P> <P> T<SMALL>ID</SMALL> �������ʪ�������Υ֥��å��ȥ��ե��å��ͤǼ��̤��뤿��˻Ȥ��ޤ���<SMALL>TID</SMALL> �ϥ������������줿��ƥ����ɤ������Ѥ��ޤ��������� <SMALL>TID</SMALL> �ϡ�ʪ��������ؤ�����˥���ǥå������ܤǻȤ��ޤ��� +</P> -<P> <H4><A NAME="4.17">4.17</A>) PostgreSQL �ǻȤ��뤤���Ĥ����Ѹ�ΰ�̣�ϲ��Ǥ����� </H4> <P> �����Ĥ��Υ����������ɤ�Ť�ʸ�����ˤϡ����줾������ʬ�����Ǥ�äȰ���Ū�˻Ȥ��������Ѹ줬�Ȥ��Ƥ��ޤ��� +</P> <UL> -<LI> �ơ��֥�(table)���ط�(relation)�����饹(class) -<LI> ����(row)���쥳����(record)�����åץ�(tuple) -<LI> �����(column)���ե������(field)��°��(attribute) -<LI> ����(retrieve)������(select) -<LI> �ִ�(replace)������(update) -<LI> �ɲ�(append)������(insert) -<LI> <SMALL>OID</SMALL>, Ϣ��(serial value) -<LI> �ݡ�����(portal), ��������(cursor) -<LI> �ΰ��ѿ�(range variable)���ơ��֥�̾(table name)���ơ��֥���̾(table alias) +<LI> �ơ��֥�(table)���ط�(relation)�����饹(class)</LI> +<LI> ����(row)���쥳����(record)�����åץ�(tuple)</LI> +<LI> �����(column)���ե������(field)��°��(attribute)</LI> +<LI> ����(retrieve)������(select)</LI> +<LI> �ִ�(replace)������(update)</LI> +<LI> �ɲ�(append)������(insert)</LI> +<LI> <SMALL>OID</SMALL>, Ϣ��(serial value)</LI> +<LI> �ݡ�����(portal), ��������(cursor)</LI> +<LI> �ΰ��ѿ�(range variable)���ơ��֥�̾(table name)���ơ��֥���̾(table alias)</LI> </UL> <P>����Ū�ʥǡ����١����Ѹ�Υꥹ�Ȥϡ�<a href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A> �Ǹ��Ĥ����ޤ���</P> -<P> <H4><A NAME="4.18">4.18</A>) ���顼��å����� <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>���Ф�ΤϤʤ��Ǥ����� </H4> <P> �����餯�������ƥ�β��ۥ�������ƻȤ��̤����Ƥ��ޤäƤ����ǽ�������뤫�������ͥ뤬���������ˤĤ��Ƥ�������ͤ��㤹�����ǽ��������ޤ��� <I>postmaster</I> ���ư�������ˤ�����ƤߤƲ������� +</P> <PRE> ulimit -d 262144 @@ -1215,34 +1243,34 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo <P> ������ˤ�äơ��ɤ��餫�ҤȤĤ���������Ǥ��礦��������ϥץ������Υǡ��������������¤���⤯���ꤷ�����֤��䤤��碌�����뤹��褦�ˤʤ�Ǥ��礦�����Υ��ޥ�ɤϸ��ԤΥץ������ȡ����Υ��ޥ�ɤ����餻����˺�������ƤΥ��֥ץ������ˤĤ���Ŭ�Ѥ���ޤ����Хå�����ɤ��ȤƤ�¿���Υǡ������֤������<SMALL>SQL</SMALL> ���饤����Ȥ����꤬³���Ƥ���ΤǤ���С����饤����ȤϤ������ˤ�����ƤߤƤ��������� +</P> -<P> <H4><A NAME="4.19">4.19</A>) �ɤΥС������� PostgreSQL �����餻�Ƥ��뤫��Ĵ�٤�ˤϤɤ����ޤ�����<BR> </H4> <P> <I>psql</I> ���� <CODE>SELECT version();</CODE> ���פ��ޤ��� -<P> - +</P> <H4><A NAME="4.20">4.20</A>) �顼�������֥������Ȥ�����<I>invalid large obj descriptor</I> ��������ޤ������ʤ��Ǥ��礦���� </H4> <P>�顼�������֥�����������Ȥ��ϡ������<tt>BEGIN WORK</tt>��<tt>COMMIT</tt>���դ���ɬ�פ�����ޤ������ʤ����<tt>lo_open</tt> ... <tt>lo_close</tt>��Ϥ��߹��ߤޤ��� +</P> <P>���ߤϡ�PostgreSQL�Υȥ�������Υ��ߥåȻ��˥顼�������֥������ȡ��ϥ�ɥ���Ĥ��뤳�Ȥˤ�ꡢ<I>lo_open</I>���ޥ�ɤ���λ����ľ��˶���Ū�˥롼���¹Ԥ��ޤ������Τ��ᡢ�ǽ�˥ϥ�ɥ���Ф��Ʋ����褦�Ȥ���ȡ�<I>invalid large obj descriptor(�顼�������֥������Ȥε��һҤ�����)</I>�Ȥʤ�ޤ�������ǡ��⤷���ȥ��������Ȥ��Τ�˺���ȡ��ʾ��ʤ��Ȥ�ۤȤ�ɤλ��֡�Ư���Ƥ��������ɤ����顼��å�������Ф��ΤǤ��� +</P> <P>�⤷��<SMALL>ODBC</SMALL>�Τ褦�ʥ��饤����ȥ����ե������Ȥ��ʤ顢<tt>auto-commit off</tt>�����ꤹ��ɬ�פ����뤫�⤷��ޤ��� -<P> +</P> <H4><A NAME="4.21">4.21</A>) ���ߤλ��郎�ǥե���ȤȤʤ�褦�ʥ����ϤɤΤ褦�ˤĤ���ޤ�����<BR></H4> <P><i>CURRENT_TIMESTAMP</i>��Ȥ��ޤ�: +</P> <PRE> CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); </PRE> -<P> - <H4><A NAME="4.22">4.22</A>) �ʤ���<SMALL>IN</SMALL>��Ȥ����䤤��碌���ȤƤ��٤��ΤǤ����� </H4> @@ -1256,14 +1284,18 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo FROM tab WHERE col IN (SELECT subcol FROM subtab) </PRE> +<P> ���֤������ơ� +</P> <PRE> SELECT * FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) </PRE> +<P> �Ȥ��ޤ��� ���줬��ü���ᤤ�Ǥ�����<CODE>subcol</CODE>�Ϻ����դ������Ǥ���٤��Ǥ��� +</P> <P>�С������7.4�ʹߤǤϡ�<CODE>IN</CODE>�ϡ��̾���䤤��碌��Ʊ�ͤ��������줿���祤��ε��Ѥ�ºݤ˻Ȥ���<CODE>EXISTS</CODE>��Ȥ����Ȥߤޤ��� </P> @@ -1272,22 +1304,26 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo <H4><A NAME="4.23">4.23</A>) <i>����</i>���(<i>outer</i> join)�ϤɤΤ褦�˼¸����ޤ���?<BR></H4> <P> PostgreSQL �� SQL ɸ�ʸ��Ȥ��������(�����������祤��)�ݡ��Ȥ��ޤ��������� 2�Ĥ����꤬����ޤ��� +</P> <PRE> SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); </PRE> +<P> ���뤤�� +</P> <PRE> SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); </PRE> - +<P> �����ξ�ħŪ���䤤��碌�Ǥ� t1.col �� t2.col �ȷ�礷�ơ�t1 �η�礵��ʤ��ä�����(t2 �Ȱ��פ��ʤ��ä�����)���֤��Ƥ��ޤ���<SMALL>RIGHT</SMALL> ���� t2 �η�礵��ʤ��ä�������ä���Ǥ��礦��<SMALL>FULL</SMALL> ���ϡ����פ��������� t1 �� t2 ����Ϸ�礵��ʤ��ä��������֤��Ǥ��礦��<SMALL>OUTER</SMALL> �Ȥ������դϥ��ץ����� <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL>, �ޤ��� <SMALL>FULL</SMALL> �ʤɤη����ꤵ��Ƥ��ޤ����̾����<SMALL>INNER</SMALL>���ȸƤФ�ޤ��� - +</P> +<P> �����Υ����Ǥϳ������(outer join)��<SMALL>UNION</SMALL> �� <SMALL>NOT IN</SMALL> ��Ȥäƥ��ߥ�졼�ȤǤ��ޤ��� ���Ȥ��С�<i>tab1</i> �� <i>tab2</i> ���礹��Ȥ��ϡ������䤤��碌����ĤΥơ��֥��<i>����</i>��礷�ޤ��� - +</P> <PRE> SELECT tab1.col1, tab2.col2 FROM tab1, tab2 @@ -1299,23 +1335,20 @@ PostgreSQL �� SQL ɸ�ʸ��Ȥ��������(�����������祤��)�ݡ��Ȥ��ޤ������� ORDER BY col1 </PRE> -<P> <H4><A NAME="4.24">4.24</A>) ʣ���Υǡ����١�����Ȥ��䤤��碌�ϤɤΤ褦�ˤ���ФǤ��ޤ�����<BR></H4> <P> ���ԤΥǡ����١����ʳ��ؤ��䤤��碌��ˡ�Ϥ���ޤ��Ȥ����Τ�PostgreSQL���ǡ����١������ͤΥ����ƥ५���������ɤ߹��ि��ǡ������ˤϡ����Ȥ����Τդ������ˤ������ǡ����١�����ۤ����䤤��碌�뤹�٤�����ޤ��� -<P> +</P><P> <I>contrib/dblink</I> �ϥǡ����١�����(cross-database)���䤤��碌��ؿ��ƽФ��ˤ������ޤ�����������饤����Ȥ�Ʊ������³���̤Υǡ����١����ؤ�ĥ��ʤ��ƤϤʤ餺����̤饤�����¦�ǥޡ������ʤ��ƤϤʤ�ޤ���</P> -<P> <H4><A NAME="4.25">4.25</A>) �ؿ���ʣ���Υ����ޤ��ϥ������֤��ˤϤɤ����ޤ�����<BR></H4> <P>7.3�Ǥϴؿ����顢ʣ���Υ�����ʣ���������ñ���֤��ޤ��� <a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</a>�� +</P> - -<P> <H4><A name="4.26">4.26</A>)�ʤ���PL/PgSQL �ؿ����椫�����ơ��֥��μ¤� create/drop ���뤳�Ȥ��Ǥ��ʤ��ΤǤ��礦����</H4> <P> PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ�������ơ��֥�˥�����������ȡ����Υơ��֥�Ϥ��Ȥǥɥ��åפ���ƺ�������ޤ������ؿ����ƤӸƤӽФ����ȡ�����å��夵��Ƥ��뤽�δؿ������ƤϤޤ��Ť�����ơ��֥������Ȥ��ƻؤ��Ƥ��뤫��Ǥ��������ϡ� PL/PgSQL ����� <SMALL>EXECUTE</SMALL> �����ơ��֥륢�������Τ���˻Ȥ����ȤǤ�������ǡ�����䤤��碌��ѡ�����ľ�����Ȥˤʤ�Ǥ��礦��</P> @@ -1336,7 +1369,6 @@ PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ�� </UL> -<P> <pre> [���� ��ץꥱ��������Ϣ�ι��ܤ��ʤ��ʤ�ޤ������������ΤĤ��Ƥ���ޤ��� @@ -1355,41 +1387,37 @@ PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ�� http://www.postgresql.jp/wg/dt/index.html ] </pre> -<P> -<P> <HR> <H2 align="center">PostgreSQL�γ�ĥ�ˤĤ��Ƥμ���</H2> -<P> <H4><A NAME="5.1">5.1</A>) ��ʬ�ǽ��桼������ؿ��� psql ����Ǽ¹Ԥ���ȥ���������פ��Ƥ��ޤ��ΤϤʤ��Ǥ����� </H4> <P> ����Ͽ����ȹͤ����ޤ������ޤ��ǽ�ˡ����������桼������ؿ���ñ�ȤΥƥ��ȥץ������ˤ��ƻ�ƤߤƲ������� +</P> - -<P> <H4><A NAME="5.2">5.2</A>) PostgreSQL �Ѥ˽�����ä���Ũ�ʿ���������ؿ������ƥץ��������Ȥ˹��������ΤǤ����� </H4> <P> ������ιԤʤä���ĥ��<I>pgsql-hackers</I> �����ꥹ�Ȥ����äƤ��������������ơ��椯�椯�Ϥ���������ĥ�� <I>contrib/</I> ���֥ǥ��쥯�ȥ��������뤳�Ȥˤʤ�Ǥ��礦�� +</P> -<P> <H4><A NAME="5.3">5.3</A>) ���ץ���֤� C����δؿ��ϤɤΤ褦�˽ޤ����� </H4> <P>�С������7.3�ʹߤ�PostgreSQL�Ǥϡ��ơ��֥���֤��ؿ��� C, PL/PgSQL�������� SQL �ˤƴ����˥��ݡ��Ȥ��ޤ����ܤ����ϥץ�����ޥ����ɤξ���Ƥ���������C��������줿ɽ���֤��ؿ������꤬<I>contrib/tablefunc</I>����ˤ���ޤ��� +</P> - -<P><H4><A NAME="5.4">5.4</A>) ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ��Ǥ����� +<H4><A NAME="5.4">5.4</A>) ���������ե�������ѹ����ޤ������ƥ���ѥ��뤷�Ƥ��Ѳ��������ʤ��ΤϤʤ��Ǥ����� </H4> <P> �����Ĥ��� <I>Makefile</I> �����롼�ɡ��ե�������Ф���Ŭ�ڤʰ�¸�ط�����äƤ��ޤ���<I>make clean</I> �Ƥ���⤦���� <I>make</I> ��Ԥʤ�ʤ��ƤϤʤ�ޤ��⤷��<SMALL>GCC</SMALL> �Ȥ��Ǥ���� <i>configure</i> �� <i>--enable-depend</i> ���ץ�����Ȥäơ�����ѥ���˰�¸�ط���ưŪ��Ĵ�٤����뤳�Ȥ�Ǥ��ޤ��� +</P> -<P> <HR> -<SMALL><PRE> +<PRE> [������ ���ܸ��Ǥ�����ˤĤ��Ƥϰʲ����̤�Ǥ��� @@ -1426,7 +1454,6 @@ PL/PgSQL �ϴؿ������Ƥ�å��夷�������Թ��������ѤΤ��ᡢ�⤷ PL/PgSQL �ؿ�� �ʤ������������˴ؤ��뤴�ո���(<A HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)�ޤǤ��������� ] -</PRE></SMALL> -</P> +</PRE> </BODY> </HTML> diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index a92b90d3136..0966aee27a2 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -237,7 +237,7 @@ <P>Tekst powy�ej, jest klasyczn� licencj� BSD. Nie posiada ona �adnych restrykcji co do u�ywania kodu �r�d�owego. - Podoba nam si� i nie zamierzamy jej zmienia�. + Podoba nam si� i nie zamierzamy jej zmienia�.</P> <H4><A name="1.3">1.3</A>) Na jakich systemach Unixowych dzia�a PostreSQL?</H4> @@ -266,7 +266,7 @@ <P>Serwer mo�e by� uruchamiany na Windows NT i Win2k u�ywaj�c bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I> znajduj�cym si� w �r�d�ach lub pod adresem: <A href= - "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P> + "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.</P><P> Obecnie prowadzone s� prace nad stworzeniem wersji dla MS Win NT/200/XP. Je�li chcesz si� dowiedzie� o obecnym statusie tych prac zobacz <A @@ -283,7 +283,7 @@ <P>G��wny serwer ftp z dost�pem "anonymous" dla PostgreSQL znajduje si� <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>. - je�li szukasz mirror�w sprawd� nasz� g��wn� stron� www.<P> + je�li szukasz mirror�w sprawd� nasz� g��wn� stron� www.</P> <H4><A name="1.6">1.6</A>) Gdzie mo�na szuka� wsparcia technicznego?</H4> @@ -334,7 +334,7 @@ mo�na znale�� na stronach WWW PostgreSQL pod adresem:</P> <BLOCKQUOTE> - <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> + <P><A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A></P> </BLOCKQUOTE> <P>W sieci EFNet istnieje kana� IRC <I>#PostgreSQL</I>. Ja, do @@ -599,7 +599,7 @@ </P> <P> Wi�cej informacji na ten temat znajduje si� pod adresem See - <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>. + <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.</P> <H4><A name="2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania mo�na si� komunikowa� z PostgreSQL?</H4> @@ -882,14 +882,13 @@ pierwszych rz�d�w, by� mo�e b�dzie konieczno�� wykonania zapytania do momentu a� zostan� znalezione po��dane wyniki.</P> <P> - Aby otrzyma� losowy rz�d, u�yj: + Aby otrzyma� losowy rz�d, u�yj:</P> <PRE> SELECT col FROM tab ORDER BY random() LIMIT 1; </PRE> - </P> <H4><A name="4.3">4.3</A>) Jak mog� uzyska� list� wszystkich tabel czy innych rzeczy pod <I>psql</I>?</H4> @@ -926,7 +925,6 @@ ALTER TABLE tab DROP COLUMN old_col; COMMIT; </PRE> - </P> <H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz�du, tabeli i bazy danych?</H4> @@ -1034,7 +1032,7 @@ przy wykonywaniu z��cze� (join). Sekwencyjne przeszukiwanie po kt�rym nast�puje sortowanie jest zazwyczaj szybsze ni� wyszukiwanie za pomoc� indeksu na du�ej tabeli.</P> - Jakkolwiek <SMALL>LIMIT</SMALL> w po��czeniu z <SMALL>ORDER BY</SMALL> + <P>Jakkolwiek <SMALL>LIMIT</SMALL> w po��czeniu z <SMALL>ORDER BY</SMALL> cz�sto b�dzie wykorzystywa� indeksy poniewa� jedynie ma�a cz�� z tabeli jest zwracana. W rzeczywisto�ci, chocia� MAX() i MIN() nie u�ywaj� indeks�w, mo�liwe jest aby zwr�ci� te warto�ci u�ywaj�c @@ -1049,7 +1047,7 @@ <P> Je�li uwa�asz, �e optimizer myli si� wybieraj�c sequential scan, u�yj SET enable_seqscan TO 'off' i uruchom testy aby sprawdzi� czy wtym - wypadku zapytanie b�dzie szybciej wykonywane. + wypadku zapytanie b�dzie szybciej wykonywane.</P> <P>Kiedy u�ywa si� operator�w dopasuj�cych takich jak <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b�d� u�ywane jedynie w @@ -1057,16 +1055,16 @@ <UL> <LI>Pocz�tek wyszukiwania jest oparty na pocz�tku �a�cucha tekstu. <UL> - <LI>wzorce <SMALL>LIKE</SMALL> nie mog� si� zaczyna� <I>%</I> + <LI>wzorce <SMALL>LIKE</SMALL> nie mog� si� zaczyna� <I>%</I></LI> <LI>dopasowania operatorem <I>~</I> (dopasowania regularne) - musz� si� zaczyna� znakiem specjalnym <I>^</I>.</P> - </UL> + musz� si� zaczyna� znakiem specjalnym <I>^</I>.</LI> + </UL></LI> <LI>Pocz�tek wyszukiwania nie mo�e si� zaczyna� od klas znak�w, np. - [a-e]. + [a-e].</LI> <LI>Case-insensitive searches such as ILIKE and ~* do not utilise indexes. Instead, use functional indexes, which are described in - section 4.12. - <LI>Standardowe locale C musi by� uzyte przy wykonywaniu initdb + section 4.12.</LI> + <LI>Standardowe locale C musi by� uzyte przy wykonywaniu initdb</LI> </UL> <H4><A name="4.9">4.9</A>) Jak mog� sprawdzi� w jakis spos�b "query optimizer" wykonuje moje zapytanie?</H4> @@ -1165,7 +1163,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wi�c faktyczne zu�ycie miejsca na dysku mo�e by� mniejsze ni� oczekiwane.</P> - <SMALL>VARCHAR(n)</SMALL> jest + <P> <SMALL>VARCHAR(n)</SMALL> jest najodpowiedniejszy do przechowywania �a�cuch�w o r�nej d�ugo�ci ale okre�la on maksymaln� jego d�ugo��. @@ -1344,7 +1342,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s <P>List� termin�w zwi�zanych z bazami danych mo�esz znale�� pod tym adresem:<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>. + 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>) Sk�d bierze si� ten b��d <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H4> @@ -1488,7 +1486,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s kolumn?</H4> <P>Mo�esz w �atwy spos�b zwraca� wiele rz�d�w lub kolumn u�ywaj�c - funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>. + funkcji z: <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P> <H4><A name="4.26">4.26</A>) Dlaczego nie mog� w spos�b pewny tworzy�/usuwa� tabel tymczasowych w funkcjach PL/PgSQL?</H4> @@ -1503,38 +1501,36 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s funkcji. </P> - <H4><A name="4.27">4.27) Jakie s� mo�liwo�ci replikacji w PostgreSQL?</H4> + <H4><A name="4.27">4.27</A>) Jakie s� mo�liwo�ci replikacji w PostgreSQL?</H4> <P> Jest kilka opcji aby stosowa� replikacj� typu master/slave. Ten typ pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a slave mo�e jedynie te zmiany odczytywa�. Na stronie <A - HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> + href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> znajduje si� ich lista. Replikacja typu multi-master jest w trakcie prac, opis projektu znajduje si� pod adresem: <A - HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> + 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) Jakie mo�liwo�ci szyfrowania oferuje + <H4><A name="4.28">4.28</A>) Jakie mo�liwo�ci szyfrowania oferuje PostgreSQL?</H4> - <P> <UL> <LI>contrib/pgcrypto zawiera wiele funkcji za pomoc�, kt�rych mo�emy u�ywa� - kryptografii w zapytaniach SQL. + kryptografii w zapytaniach SQL.</LI> <LI>Aby szyfrowa� transmisj� od klienta do serwera, ten musi mie� ustawion� opcj� ssl na true w pliku postgresql.conf, odpowiedni wpis host lub hostssl musi wyst�powa� w pliku pg_hba.conf, oraz sslmode nie mo�e by� wy��czone w kliencie. (Warto zwr�ci� uwag�, �e mo�liwe jest tak�e u�ywanie transport�w szyfruj�c�w przez strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL - przez PostgreSQL). + przez PostgreSQL).</LI> <LI>Has�a u�ytkownik�w bazy danych s� automatycznie szyfrowane od wersji 7.3. W poprzednich wersjach, nale�y t� funkcjonalno�� poprzez - w��czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. - <LI>Serwer mo�e dzia�a� u�ywaj�c szyfrowanego systemu plik�w. + w��czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. </LI> + <LI>Serwer mo�e dzia�a� u�ywaj�c szyfrowanego systemu plik�w.</LI> </UL> -</P> <H2 align="center">Rozwijanie PostgreSQL</H2> diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index debcc882666..bd515c7c79f 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -236,16 +236,16 @@ <A href="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P> - <H4><A name="1.6">1.6</A>) ��� ��� �������� �� ������?</H3> + <H4><A name="1.6">1.6</A>) ��� ��� �������� �� ������?</H4> <P>�������� ��������� �� ����������� ������ ��ޣ�� �� ������ � PostgreSQL �� ������: - <A HREF="http://www.postgresql.org/support/submitbug"> + <A href="http://www.postgresql.org/support/submitbug"> http://www.postgresql.org/support/submitbug</A>.</P> <P>����� ��������� ������� ����� ������ ������ PostgreSQL �� ����� FTP ����� <A href="ftp://ftp.postgresql.org/pub"> - ftp://ftp.PostgreSQL.org/pub</A>. + ftp://ftp.PostgreSQL.org/pub</A>.</P> <H4><A name="1.7">1.7</A>) ����� ��������� ������?</H4> @@ -604,19 +604,18 @@ ��� ���������� ������ ������� �������? ������������ ������?</H4> <P>��� ��������� ������ ���������� �����, ���� �� ������ �� ���������� - �� ������ ���������� <SMALL>SELECT</SMALL> ����������� <SMALL>LIMIT</SMALL>.</P> + �� ������ ���������� <SMALL>SELECT</SMALL> ����������� <SMALL>LIMIT</SMALL>. ���� ���� �����-���� ������, ������� ��������� � <SMALL>ORDER BY</SMALL>, �� ��������, ��� ���� ������ �������� � �� �����. ���� �� �� ������ ���������� ����������� ����� �� ������ ���������� <SMALL>SELECT</SMALL>, ����������� ������ � <SMALL>FETCH</SMALL>.</P> - <p>To <small>SELECT</small> a random row, use: -</p><pre> SELECT col + <p>To <small>SELECT</small> a random row, use:</p> +<pre> SELECT col FROM tab ORDER BY random() LIMIT 1; </pre> -</p> <H4><A name="4.2">4.2</A>) ��� ��� ����� ����� �������, �������, ���� ������ � ������������ ����������? ��� ��� ������� �������, @@ -646,7 +645,7 @@ <H4><A name="4.3">4.3</A>) ��� �������� ��� ������ �������?</H4> <P>� 8.0 � ����� ������� �������, ��������� ���� ������� ����������� - ����� ����� ����� <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>. + ����� ����� ����� <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P> <P>� ����� ������ ������� �������� ���:</P> <PRE> @@ -662,7 +661,7 @@ <P>���������� ��������� �����������:</P> <BLOCKQUOTE> -<TABLE BORDER="1"> +<TABLE> <TBODY> <TR> <TD>������������ ������ ����?</TD> @@ -775,7 +774,7 @@ � � ���� ������ ������ ����� ��������������, ��������� ��� ���������� ����� ������������ ��������� ����� �������. ���������� MAX() � MIN() �� ���������� �������, �� ������ ������������ ��� ���������� �������� � - <SMALL>ORDER BY</SMALL> � <SMALL>LIMIT</SMALL>: + <SMALL>ORDER BY</SMALL> � <SMALL>LIMIT</SMALL>:</P> <pre> SELECT col FROM tab @@ -833,8 +832,8 @@ WHERE lower(col) = 'abc'; </PRE> - ��� ����������� �� ����� ������������ ����������� ������. ������, ���� - �� ��������� ������ ���������, �� ����� �����������: +<P> ��� ����������� �� ����� ������������ ����������� ������. ������, ���� + �� ��������� ������ ���������, �� ����� �����������:</P> <PRE> CREATE INDEX tabindex ON tab (lower(col)); </PRE> @@ -848,7 +847,7 @@ <H4><A name="4.10">4.10</A>) ������ ������� ����� ������� ����������� ������?</H4> <BLOCKQUOTE> -<TABLE BORDER="1"> +<TABLE> <TBODY> <TR> <TH>���</TH> @@ -919,7 +918,7 @@ ); </PRE> - ������������� ������������� �: +<P> ������������� ������������� �: </P> <PRE> CREATE SEQUENCE person_id_seq; CREATE TABLE person ( @@ -994,12 +993,12 @@ O<SMALL>ID</SMALL>, ������ ��� ������������������ <SMALL>SERIAL</SMALL> ��������� ������ ������ ������� � ����� ������� ������ ���������� ������������. ��� �������� �������� 8-�� ������� ������������������ - �������� ��� <SMALL>SERIAL8</SMALL>. + �������� ��� <SMALL>SERIAL8</SMALL>.</P> <P>T<SMALL>ID</SMALL> ������������ ��� ������������� ����������� ���������� ������� � �������� � offset ����������. T<SMALL>ID</SMALL> ���������� ����� ���� ��� ������ � ������� ���� �������� ��� �����������. - <P>T<SMALL>ID</SMALL> ������������ ���������� �������� � �������� + T<SMALL>ID</SMALL> ������������ ���������� �������� � �������� ��������� �� ���������� ������.</P> diff --git a/doc/src/FAQ/FAQ_turkish.html b/doc/src/FAQ/FAQ_turkish.html index e0921f64970..ac31a57ab76 100644 --- a/doc/src/FAQ/FAQ_turkish.html +++ b/doc/src/FAQ/FAQ_turkish.html @@ -111,7 +111,7 @@ adreslerinde g�r�lebilir.</p> <a href="#4.18">4.18</a>) Neden "<code>ERROR: Memory exhausted in AllocSetAlloc()</code>" hatas�n� al�yorum?<br> <a href="#4.19">4.19</a>) Hangi PostgreSQL s�r�m�n� �al�st�rd���m� nas�l g�rebilirim?<br> - <a href="#4.20">4.20</a>) Neden <i>large-object</i> i�lemlerim, "</code>invalid large + <a href="#4.20">4.20</a>) Neden <i>large-object</i> i�lemlerim, "<code>invalid large obj descriptor</code>" hatas�n� veriyor?<br> <a href="#4.21">4.21</a>) �u andaki zaman� �ntan�ml� de�er olarak kabul eden kolonu nas�l yarat�r�m?<br> @@ -190,7 +190,7 @@ adreslerinde g�r�lebilir.</p> <P>PostgreSQL 8.0 s�r�m� ile , PostgreSQL art�k Win2000, WinXP ve Win2003 gibi Microsoft Windows NT tabanl� i�letim sistemlerinde do�al olarak �al��maya ba�lam��t�r. Paketlenmi� bir kurulum program�, <a href="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>. adresinden - indirilebilir. + indirilebilir.</P> <p>Ayr�ca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktad�r.</p> @@ -218,7 +218,7 @@ adreslerinde g�r�lebilir.</p> <pre>subscribe<br>end</pre> <p>yazan bir e-posta atman�z yeterli olacakt�r.</p> <p>Bunun d���ndaki e-posta listelerine ve PostgreSQL hakk�nda bilgiye, PostgreSQL WWW - ana sayfas�ndan ulasabilirsiniz: <i><a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a></i><p> + ana sayfas�ndan ulasabilirsiniz: <i><a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a></i></p> <p>Ayn� zamanda, EFNet �zerinde, <code>#PostgreSQL</code> adl� bir IRC kanal� bulunmaktad�r. Bunun i�in, <code>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</code> Unix komutunu kullanabilirsiniz.</p> @@ -235,7 +235,7 @@ adreslerinde g�r�lebilir.</p> <code>/doc</code> dizinine bak�n�z. Ayr�ca, bu el kitap��klar�n� online olarak <i><a href="http://www.PostgreSQL.org/docs/">http://www.PostgreSQL.org/docs/</a></i> adresinden inceleyebilirsiniz.</p> <p><i><a href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a></i> - ve <i><a href="http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook<a></i> + ve <i><a href="http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook</a></i> adreslerinde PostgreSQL kitaplar� bulunmaktad�r. PostgreSQL kitablar�n�n listesine, <i><a href="http://www.ca.PostgreSQL.org/books/">http://www.ca.PostgreSQL.org/books/</a></i> adresinden ula�aiblirsiniz. Ayr�ca, PostgreSQL konusundaki teknik makalelere de @@ -288,7 +288,7 @@ adreslerinde g�r�lebilir.</p> <h4><a name="1.14">1.14</a>) PostgreSQL, diger DBMS'lerle nas�l kar��last�r�labilir?</h4> <p>Bir yaz�l�m�n g�c�n� �l�mek i�in �e�itli yollar vard�r: Yaz�l�m�n �zellikleri, ba�ar�m�, g�venilirli�i, deste�i ve �creti.</p> - <p>�zellikler:<p> + <p>�zellikler:</p> <p>PostgreSQL mevcut b�y�k ticari veritabanlar�n�n, <i>transaction</i>, <i>subselect</i>, <i>trigger</i>, <i>view</i>, <i>foreign key referential integrity</i> ve <i>sophisticated locking</i> gibi (<i>user-defined types</i>), <i>rules</i>, @@ -355,7 +355,7 @@ adreslerinde g�r�lebilir.</p> <p><i><a href="http://www.webreview.com/">http://www.webreview.com/</a></i> adresinde, arka planda veritaban� �al�st�ran Web sayfalar� i�in giri� seviyesinde bilgi bulunmaktad�r.</p> <p>Web ile b�t�nle�me i�in, PHP (<i><a href="http://www.php.net/"></a></i>) - m�kemmel bir arabirim sunar.<p> + m�kemmel bir arabirim sunar.</p> <p>Karma��k sorunlar i�in, �o�u kisi Perl arabirimini ve CGI.pm ya da mod_perl kullan�r.</p> <h4><a name="2.3">2.3</a>) PostgreSQL'in grafik kullan�c� arabirimi var m�d�r?</h4> @@ -466,7 +466,7 @@ adreslerinde g�r�lebilir.</p> <p>Postmaster ve postgres �e�itli hata ay�klama se�eneklerine sahiptir. �ncelikle, postmaster'� ba�latt���n�zda, standart ��kt�y� ve hatalar� bir log dosyas�na y�nlendirdi�inize emin olun:</p> - <pre>cd /usr/local/pgsql<br>./bin/postmaster >server.log 2>&1 &</pre> + <pre>cd /usr/local/pgsql<br>./bin/postmaster >server.log 2>&1 &</pre> <p>Bu i�lem PostgreSQL ana dizinine <code>server.log</code> dosyas� yerle�tirecektir. Bu dosya sunucunun ya�ad��� sorunlar ya da hatalar hakk�nda yararl� bilgiler i�erir. <code>-d</code> se�ene�i, hata ay�klama seviyesini belirten bir rakam ile kullan�l�r. @@ -497,7 +497,7 @@ adreslerinde g�r�lebilir.</p> de�eri ile ya da <code>postgresql.conf</code> dosyas�n� d�zenleyerek yeniden ba�latmakla artt�rabilirsiniz.</p> <p>E�er <code>-N</code> de�erini 32'den b�y�k yapacaksan�z, ayn� zamanda - <code>-B</code> de�erini de de�i�tirmeniz gerekti�ini unutmay�n. </code>-B</code>, + <code>-B</code> de�erini de de�i�tirmeniz gerekti�ini unutmay�n. <code>-B</code>, <code>-N</code>'nin en az 2 kat� kadar olmal�d�r; daha iyi ba�ar�m i�in bu say�y� daha da artt�rmal�s�n�z. Y�ksek say�daki <i>backend</i> s�re�leri i�in, �e�itli �ekirdek yap�land�rma parametrelerini artt�rman�z gerekecektir. Yap�lmas� gerekenler, @@ -554,7 +554,7 @@ adreslerinde g�r�lebilir.</p> <code>LIMIT</code> ... kullan�n�z.</p> <p>�lk birka� sat�r� almak isteseniz bile, t�m sorgu de�erlendirilmek durumunda kal�nabilir. ORDER BY i�eren bir sorgu d���n�n. E�er ORDER BY i�e e�le�en bir index varsa, PostgreSQL istenen ilk birka� - sat�r� i�leyebilir, ya da t�m sorgu istenen sat�rlar �retilene kadar i�lenebilir. </b></p> + sat�r� i�leyebilir, ya da t�m sorgu istenen sat�rlar �retilene kadar i�lenebilir. </p> <h4><a name="4.3">4.3</a>) psql'in i�inde g�rd�g�m tablolar�n ya da di�er �eylerin listesini nas�l alabilirim?</h4> @@ -786,7 +786,7 @@ CREATE UNIQUE INDEX person_id_key ON person ( id ); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");</pre> <P>Di�er sorgular i�in new_id'de yeni de�erin saklanmas� gerekir. Otomatik olarak yarat�lan SEQUENE nesnesinin ad�, - <tablo ad�>_<serial kolonu ad�>_seq �eklinde olacakt�r (< > i�aretleri olmadan).</p> + <tablo ad�>_<serial kolonu ad�>_seq �eklinde olacakt�r (< > i�aretleri olmadan).</p> <p>Alternatif olarak, atanm�� SERIAL de�erini, de�er girildikten sonra currval() fonksiyonu ile alabilirsiniz:</p> |