-Current directory is /root
-
- drwxr-xr-x 19 root wheel 1024 Mar 4 05:01 ../
- drwxr-xr-x 2 root wheel 512 Dec 29 13:36 Calendar/
- drwx------ 8 root wheel 9216 Mar 1 06:08 Mail/
- drwx------ 8 root wheel 9216 Mar 1 06:08 News/
- lrwxr-xr-x 1 www wheel 16 Mar 4 20:39 calendar -> /users/n
-uyu/mcal
- drwxr-xr-x 2 root wheel 512 Mar 4 16:56 download/
- -r--r--r-- 1 root wheel 409 Feb 27 05:00 notes
+ ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL
+
+ äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 9 áÐÒÅÌÑ 10:53:30 EDT 2002
+
+ áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian)
+
+
+ óÁÍÕÀ Ó×ÅÖÕÀ ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ http://www.PostgreSQL.org/docs/faq-english.html.
+
+ ïÔ×ÅÔÙ ÎÁ ×ÏÐÒÏÓÙ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÌÁÔÆÏÒÍ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ http://www.PostgreSQL.org/users-lounge/docs/faq.html.
+ _________________________________________________________________
+
+ ïÂÝÉÅ ×ÏÐÒÏÓÙ
+
+ 1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?
+ 1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?
+ 1.3) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?
+ 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) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ óõâä?
+ 1.15) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ PostgreSQL?
+
+ ÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ
+
+ 2.1) óÕÝÅÓÔ×ÕÀÔ ÌÉ ODBC ÄÒÁÊ×ÅÒÁ ÄÌÑ PostgreSQL?
+ 2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ PostgreSQL ÞÅÒÅÚ
+ Web?
+ 2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ ÐÏÌØÚÏ×ÁÔÅÌÑ?
+ çÅÎÅÒÁÔÏÒ ÏÔÞÅÔÏ×? ÷ÓÔÒÏÅÎÎÙÊ ÉÎÔÅÒÆÅÊÓ ÄÌÑ ÑÚÙËÁ ÚÁÐÒÏÓÏ×?
+ 2.4) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó PostgreSQL?
+
+ ÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ
+
+ 3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ ÏÔ
+ /usr/local/pgsql?
+ 3.2) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ postmaster, Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ Bad System Call
+ ÉÌÉ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?
+ 3.3) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÉ
+ IpcMemoryCreate. ðÏÞÅÍÕ?
+ 3.4) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÉ
+ IpcSemaphoreCreate. ðÏÞÅÍÕ?
+ 3.5) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ ËÏÍÐØÀÔÅÒÏ×?
+ 3.6) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
+ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?
+ 3.7) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?
+ 3.8) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many clients" ËÏÇÄÁ
+ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?
+ 3.9) þÔÏ ÜÔÏ ÚÁ ÆÁÊÌÙ pg_sorttempNNN.NN × ÍÏÅÍ ËÁÔÁÌÏÇÅ Ó ÂÁÚÏÊ
+ ÄÁÎÎÙÈ?
+
+ ÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ
+
+ 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) þÔÏ ÔÁËÏÅ Genetic Query Optimizer?
+ 4.12) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË
+ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? ëÁË ÍÎÅ
+ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?
+ 4.13) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ NULL × ËÁËÏÍ-ÌÉÂÏ
+ ÚÁÐÒÏÓÅ?
+ 4.14) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ ÔÉÐÁÍÉ?
+ 4.15.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
+ 4.15.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ SERIAL?
+ 4.15.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É
+ nextval() ÐÒÉ×ÅÄÅÔ Ë ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?
+ 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) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
+ 4.24) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÂÁÚ ÄÁÎÎÙÈ?
+ 4.25) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?
+
+ òÁÓÛÉÒÅÎÉÑ PostgreSQL
+
+ 5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ
+ × psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ dump core?
+ 5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ ÔÉÐÙ É ÆÕÎËÃÉÉ ×
+ PostgreSQL?
+ 5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ ÚÁÐÉÓØ?
+ 5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ
+ ÉÚÍÅÎÅÎÉÊ?
+ _________________________________________________________________
+
+ ïÂÝÉÅ ×ÏÐÒÏÓÙ
+
+ 1.1) þÔÏ ÔÁËÏÅ PostgreSQL?
+
+ PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ).
+
+ PostgreSQL - ÜÔÏ ÒÁÓÛÉÒÅÎÉÅ óõâä POSTGRES, ÉÓÓÌÅÄÏ×ÁÔÅÌØÓËÉÊ ÐÒÏÔÏÔÉÐ
+ ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ óõâä. PostgreSQL ÏÄÎÏ×ÒÅÍÅÎÎÏ ÓÏÈÒÁÎÑÅÔ ÍÏÝÎÕÀ ÍÏÄÅÌØ
+ ÄÁÎÎÙÈ É ÏÂÝÉÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÔÉÐÏ× POSTGRES, É ÚÁÍÅÝÁÅÔ ÑÚÙË ÚÁÐÒÏÓÏ×
+ PostQuel ÎÁ ÒÁÓÛÉÒÅÎÎÏÅ ÐÏÄÍÎÏÖÅÓÔ×Ï SQL. PostgreSQL - ÜÔÏ Ó×ÏÂÏÄÎÏÅ É
+ ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.
+
+ òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ, Ó×ÑÚÁÎÎÁÑ ÞÅÒÅÚ Internet, ×ÓÅ
+ ÕÞÁÓÔÎÉËÉ ËÏÔÏÒÏÊ ÐÏÄÐÉÓÁÎÙ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. ÷
+ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ, ÉÈ ËÏÏÒÄÉÎÁÔÏÒÏÍ Ñ×ÌÑÅÔÓÑ íÁÒË æÏÒÎÁÊ (Marc G.
+ Ë ÒÁÚÒÁÂÏÔËÅ). üÔÁ ËÏÍÁÎÄÁ ÔÅÐÅÒØ ÏÔ×ÅÞÁÅÔ ÚÁ ×ÓÀ ÒÁÚÒÁÂÏÔËÕ
+ PostgreSQL.
+
+ á×ÔÏÒÁÍÉ PostgreSQL 1.01 Ñ×ÌÑÀÔÓÑ üÎÄÒÀ à (Andrew Yu) É äÖÏÌÉ þÅÎ
+ (Jolly Chen). íÎÏÇÉÅ ÄÒÕÇÉÅ ×ÎÅÓÌÉ Ó×ÏÊ ×ËÌÁÄ × ÐÅÒÅÎÏÓ ÎÁ ÄÒÕÇÉÅ
+ ÐÌÁÔÆÏÒÍÙ, ÔÅÓÔÉÒÏ×ÁÎÉÅ, ÏÔÌÁÄËÕ É ÒÁÓÛÉÒÅÎÉÅ ÜÔÏÇÏ ËÏÄÁ.
+ ðÅÒ×ÏÎÁÞÁÌØÎÙÊ ËÏÄ Postgres, ÉÚ ËÏÔÏÒÏÇÏ ÐÏÑ×ÉÌÓÑ PostgreSQL, ÂÙÌ
+ ÉÔÏÇÏÍ ÕÓÉÌÉÊ ÍÎÏÇÉÈ ÁËÁÄÅÍÉÞÅÓËÉÈ ÓÔÕÄÅÎÔÏ×, ÎÅÁËÁÄÅÍÉÞÅÓËÉÈ
+ ÓÔÕÄÅÎÔÏ× É ÍÎÏÖÅÓÔ×Á ÒÁÚÎÙÈ ÐÒÏÇÒÁÍÍÉÓÔÏ×, ÒÁÂÏÔÁ×ÛÉÈ ÐÏÄ
+ ÒÕËÏ×ÏÄÓÔ×ÏÍ ÐÒÏÆÅÓÓÏÒÁ íÁÊËÌÁ óÔÏÕÎÂÒÅÊËÅÒÁ (Michael Stonebraker) ×
+ ëÁÌÉÆÏÒÎÉÊÓËÏÍ ÕÎÉ×ÅÒÓÉÔÅÔÅ, âÅÒËÌÉ.
+
+ ðÅÒ×ÏÎÁÞÁÌØÎÏÅ ÉÍÑ, ÄÁÎÎÏÅ × âÅÒËÌÉ, ÂÙÌÏ Postgres. ëÏÇÄÁ × 1995 ÇÏÄÕ
+ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ SQL, ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ ÎÁ
+ Postgres95. îÏ É ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ × ËÏÎÃÅ 1996 ÎÁ PostgreSQL.
+
+ 1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?
+
+ PostgreSQL ÐÏÐÁÄÁÅÔ ÐÏÄ ÄÅÊÓÔ×ÉÅ ÓÌÅÄÕÀÝÅÇÏ COPYRIGHT:
+
+ óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL
+
+ Portion copyright (c) 1996-2002, PostgreSQL Global Development Group
+ Portions Copyright (c) 1994-6 Regents of the University of California
+
+ ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ É
+ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÄÁÎÎÏÇÏ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ É ÅÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ
+ ÄÌÑ ÌÀÂÙÈ ÃÅÌÅÊ, ÂÅÓÐÌÁÔÎÏ É ÂÅÚ ÐÏÄÐÉÓÁÎÉÑ ËÁËÏÇÏ-ÌÉÂÏ ÓÏÇÌÁÛÅÎÉÑ,
+ ÐÒÉ ÕÓÌÏ×ÉÉ ÞÔÏ ÄÌÑ ËÁÖÄÏÊ ËÏÐÉÉ ÂÕÄÕÔ ÐÒÅÄÏÓÔÁ×ÌÅÎÙ ÄÁÎÎÏÅ ×ÙÛÅ
+ ÚÁÍÅÞÁÎÉÅ Ï Á×ÔÏÒÓËÉÈ ÐÒÁ×ÁÈ, ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ É Ä×Á ÓÌÅÄÕÀÝÉÈ
+ ÐÁÒÁÇÒÁÆÁ.
+
+ ëáìéæïòîéêóëéê õîé÷åòóéôåô îå îåóåô îéëáëïê ïô÷åôóô÷åîîïóôé úá ìàâùå
+ ðï÷òåöäåîéñ, ÷ëìàþáñ ðïôåòà äïèïäá, îáîåóåîîùå ðòñíùí éìé îåðòñíùí,
+ óðåãéáìøîùí éìé óìõþáêîùí éóðïìøúï÷áîéåí äáîîïçï ðòïçòáííîïçï
+ ïâåóðåþåîéñ éìé åçï äïëõíåîôáãéé, äáöå åóìé ëáìéæïòîéêóëéê õîé÷åòóéôåô
+ âùì éú÷åýåî ï ÷ïúíïöîïóôé ôáëéè ðï÷òåöäåîéê.
+
+ ëáìéæïòîéêóëéê õîé÷åòóéôåô óðåãéáìøîï ïôëáúù÷áúù÷áåôóñ ðòåäïóôá÷ìñôø
+ ìàâùå çáòáîôéé, ÷ëìàþáñ, îï îå ïçòáîéþé÷áñóø ôïìøëï üôéíé çáòáîôéñíé:
+ îåñ÷îùå çáòáîôéé ðòéçïäîïóôé ôï÷áòá éìé ðòéçïäîïóôé äìñ ïôäåìøîïê
+ ãåìé. äáîîïå ðòïçòáííîïå ïâåóðåþåîéå ðòåäïóôá÷ìñåôóñ îá ïóîï÷å ðòéãéðá
+ "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø
+ óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.
+
+ ÷ÙÛÅÉÚÌÏÖÅÎÎÏÅ Ñ×ÌÑÅÔÓÑ BSD ÌÉÃÅÎÚÉÅÊ, ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÅÊ
+ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ Ó ÏÔËÒÙÔÙÍ ËÏÄÏÍ. üÔÁ ÌÉÃÅÎÚÉÑ ÎÅ ÎÁËÌÁÄÙ×ÁÅÔ
+ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ
+ É ÍÙ ÎÅ ÓÏÂÉÒÁÅÍÓÑ Å£ ÍÅÎÑÔØ.
+
+ 1.3) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?
+
+ ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ
+ ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË ÔÅÈ
+ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL Ë
+ ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.
+
+ 1.4) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÅÒÅÎÅÓÅÎÎÙÅ ÎÅ ÎÁ Unix ÓÉÓÔÅÍÙ?
+
+ ëÌÉÅÎÔ
+
+ äÌÑ ÚÁÐÕÓËÁ ÎÁ ÐÌÁÔÆÏÒÍÁÈ MS Windows ×ÏÚÍÏÖÎÁ ËÏÍÐÉÌÑÃÉÑ C ÂÉÂÌÉÏÔÅËÉ
+ libpq, psql É ÄÒÕÇÉÈ ÉÎÔÅÒÆÅÓÏ× É ÂÉÎÁÒÎÙÈ ÆÁÊÌÏ×. ÷ ÜÔÏÍ ÓÌÕÞÁÅ,
+ ËÌÉÅÎÔ ÚÁÐÕÓËÁÅÔÓÑ ÎÁ MS Windows É Ó×ÑÚÙ×ÁÅÔÓÑ ÐÏ TCP/IP Ó ÓÅÒ×ÅÒÏÍ,
+ ÚÁÐÕÝÅÎÎÙÍ ÎÁ ÏÄÎÏÊ ÉÚ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ Unix ÐÌÁÔÆÏÒÍ. ÷ ÄÉÓÔÒÉÂÕÔÉ×
+ ×ËÌÀÞÁÅÔÓÑ ÆÁÊÌ win31.mak ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÍÏÖÎÏ ÂÙÌÏ ÐÒÏ×ÅÓÔÉ ÓÂÏÒËÕ
+ ÂÉÂÌÉÏÔÅËÉ libpq É psql ÄÌÑ Win32. PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÞÅÒÅÚ
+ ODBC.
+
+ óÅÒ×ÅÒ
+
+ óÅÒ×ÅÒ âä ÍÏÖÅÔ ÂÙÔØ ÚÁÐÕÝÅÎ ÎÁ Windows NT É Win2k, ÉÓÐÏÌØÚÕÑ
+ ÂÉÂÌÉÏÔÅËÕ Cygwin, ÒÁÚÒÁÂÏÔÁÎÎÕÀ ÄÌÑ ÐÅÒÅÎÏÓÁ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ
+ Unix × NT. óÍÏÔÒÉÔÅ pgsql/doc/FAQ_MSWIN × ÄÉÓÔÒÉÂÕÔÉ×Å ÉÌÉ MS Windows
+ FAQ ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ. íÙ ÎÅ ÐÌÁÎÉÒÕÅÍ ÓÐÅÃÉÁÌØÎÏ ÐÅÒÅÎÏÓÉÔØ PostgreSQL
+ ÎÁ ËÁËÕÀ-ÌÉÂÏ ÐÌÁÔÆÏÒÍÕ Microsoft.
+
+ 1.5) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?
+
+ îÁÐÒÉÍÅÒ, ×ÏÓÐÏÌØÚÏ×Á×ÛÉÓØ ÁÎÏÎÉÍÎÙÍ ÄÏÓÔÕÐÏÍ ÎÁ ftp ÓÁÊÔ PostgreSQL
+ ftp://ftp.PostgreSQL.org/pub. óÐÉÓÏË ÚÅÒËÁÌ ×Ù ÎÁÊÄÅÔÅ ÎÁ ÎÁÛÅÍ
+ ÏÓÎÏ×ÎÏÍ ÓÁÊÔÅ.
+
+ 1.6) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?
+
+ ÏÂÓÕÖÄÁÔØ ÌÀÂÙÅ ÔÅÍÙ, ËÁÓÁÀÝÉÅÓÑ PostgreSQL. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ,
+ ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ, × ËÏÔÏÒÏÍ × ÔÅÌÅ ÐÉÓØÍÁ (ÎÅ ×
+ ÔÅÍÅ) ÎÁÐÉÛÉÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ:
+ subscribe
+ end
+
+
+ óÕÝÅÓÔ×ÕÅÔ ÄÁÊÖÅÓÔ ÓÐÉÓÏË. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÎÅÇÏ, ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ
+ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÎÁ ÁÄÒÅÓ:
+ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:
+ subscribe
+ end
+
+ äÁÊÖÅÓÔÙ ÏÔÐÒÁ×ÌÑÀÔÓÑ ÐÏÄÐÉÓÞÉËÁÍ, ËÏÇÄÁ × ÏÓÎÏ×ÎÏÍ ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ
+ ÎÁËÏÐÉÔÓÑ ÏËÏÌÏ 30 ËÉÌÏÂÁÊÔ ÓÏÏÂÝÅÎÉÊ.
+
+ äÏÓÔÕÐÅÎ É ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÓÏÏÂÝÅÎÉÊ Ï ÏÛÉÂËÁÈ. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ
+ ÜÔÏÔ ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ ÁÄÒÅÓ
+ ÓÔÒÏÞËÉ:
+ subscribe
+ end
+
+ ôÁËÖÅ ÉÍÅÅÔÓÑ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ Ó ÄÉÓËÕÓÓÉÑÍÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. þÔÏÂÙ
+ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÜÔÏÔ ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ
+ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:
+ subscribe
+ end
+
+ äÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÉÎÆÏÍÁÃÉÀ Ï PostgreSQL ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ ÄÏÍÁÛÎÅÊ ÓÔÒÁÎÉÞËÅ PostgreSQL ÐÏ ÁÄÒÅÓÕ:
+
+ http://www.PostgreSQL.org
+
+ åÝÅ ÓÕÝÅÓÔ×ÕÅÔ IRC ËÁÎÁÌ ÎÁ EFNet, Ó ÎÁÚ×ÁÎÉÅÍ #PostgreSQL. ñ
+ ÉÓÐÏÌØÚÕÀ ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë ÜÔÏÍÕ ËÁÎÁÌÕ ËÏÍÁÎÄÕ Unix irc -c
+ '#PostgreSQL' "$USER" irc.phoenix.net.
+
+ óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅÎ ÎÁ
+ http://www.postgresql.org/users-lounge/commercial-support.html.
+
+ 1.7) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?
+
+ ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 7.2.
+
+ íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÞÅÔÙÒÅ ÍÅÓÑÃÁ.
+
+ 1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?
+
+ ÷ ÄÉÓÔÒÉÂÕÔÉ× ×ËÌÀÞÁÀÔÓÑ ÒÁÚÌÉÞÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á, ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ
+ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ ÐÒÉÍÅÒÙ. óÍÏÔÒÉÔÅ ×
+ ËÁÔÁÌÏÇ /doc. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ
+ ÁÄÒÅÓÕ http://www.PostgreSQL.org/users-lounge/docs/.
+
+ óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ
+ http://www.PostgreSQL.org/docs/awbook.html É
+ http://www.commandprompt.com/ppbook/. óÐÉÓÏË ËÎÉÇ ÐÏ PostgreSQL,
+ ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ
+ http://www.postgresql.org/books/. ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ
+ http://techdocs.postgresql.org/ ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ
+ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.
+
+ psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ÐÒÅËÒÁÓÎÙÈ ËÏÍÁÎÄ \d ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ
+ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä.
+
+ îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.
+
+ 1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ
+ ×ÏÚÍÏÖÎÏÓÔÑÈ?
+
+ PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ SQL-92. óÍÏÔÒÉÔÅ ÎÁÛ
+ ÓÐÉÓÏË TODO ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ÏÓÏÂÅÎÎÏÓÔÑÈ É
+ ÂÕÄÕÝÉÈ ÐÌÁÎÏ×.
+
+ 1.10) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?
+
+ ëÎÉÇÁ ÐÏ PostgreSQL ÎÁ http://www.PostgreSQL.org/docs/awbook.html
+ ÎÁÕÞÉÔ SQL. óÕÝÅÓÔ×ÕÅÔ ÄÒÕÇÁÑ ËÎÉÇÁ ÐÏ 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" (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ) ÎÁ
+ 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.
+
+ 1.11) òÅÛÅÎÁ ÌÉ × PostgreSQL ÐÒÏÂÌÅÍÁ 2000-ÇÏ ÇÏÄÁ (Y2K)?
+
+ äÁ, ÍÙ ÌÅÇËÏ ÍÁÎÉÐÕÌÉÒÕÅÍ ÄÁÔÁÍÉ ÐÏÓÌÅ 2000 ÇÏÄÁ É ÐÅÒÅÄ 2000 ÇÏÄÏÍ.
+
+ 1.12) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?
+
+ äÌÑ ÎÁÞÁÌÁ, ÓËÁÞÁÊÔÅ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× É ÐÒÏÞÔÉÔÅ
+ ÄÏËÕÍÅÎÔÁÃÉÀ ÒÁÚÒÁÂÏÔÞÉËÏ× PostgreSQL ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ ÉÌÉ ×
+ ÄÉÓÔÒÉÂÕÔÉ×Å. úÁÔÅÍ, ÐÏÄÐÉÛÉÔÅÓØ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ pgsql-hackers É
+ pgsql-patches. äÁÌÅÅ, ÏÔÐÒÁ×ÌÑÊÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ (patches) ×ÙÓÏËÏÇÏ
+ ËÁÞÅÓÔ×Á × ÓÐÉÓÏË pgsql-patches.
+
+ óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÎÙÊ ÓÐÉÓÏË ÌÀÄÅÊ, ËÏÔÏÒÙÊ ÉÍÅÀÔ ÐÒÉ×ÅÌÅÇÉÀ ×ÎÏÓÉÔØ
+ ÉÚÍÅÎÅÎÉÑ × CVS ÁÒÈÉ× PostgreSQL. ëÁÖÄÙÊ ÉÚ ÜÔÉÈ ÌÀÄÅÊ × Ó×ÏÅ ×ÒÅÍÑ
+ ÏÔÐÒÁ×ÉÌ ÔÁË ÍÎÏÇÏ ×ÙÓÏËÏËÁÞÅÓÔ×ÅÎÎÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ, ÞÔÏ ÉÈ ÂÙÌÏ
+ ÎÅ×ÏÚÍÏÖÎÏ ÏÓÔÁ×ÉÔØ ÂÅÚ ×ÎÉÍÁÎÉÑ É ÏÎÉ ÂÙÌÉ ÕÄÏÓÔÏÅÎÙ ÐÒÅ×ÉÌÅÇÉÉ
+ ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ, É ÍÙ Õ×ÅÒÅÎÙ, ÞÔÏ ÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ, ËÏÔÏÒÙÅ ÏÎÉ
+ ×ÎÅÓÕÔ ÂÕÄÕÔ ×ÙÓÏËÏÇÏ ËÁÞÅÓÔ×Á.
+
+ 1.13) ëÁË ÏÔÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ??
+
+ ðÏÖÁÌÕÊÓÔÁ ÐÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ PostgreSQL BugTool, ÎÁ ËÏÔÏÒÏÊ
+ ÐÒÅÄÏÓÔÁ×ÌÅÎÙ ÄÅÔÁÌØÎÙÅ ÉÎÓÔÒÕËÃÉÉ Ï ÔÏÍ ËÁË ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÏÂ
+ ÏÛÉÂËÅ.
+
+ ôÁËÖÅ ÎÅ ÚÁÂÕÄØÔÅ ÐÏÓÍÏÔÒÅÔØ ÎÁ ftp://ftp.PostgreSQL.org/pub ÎÁ
+ ÐÒÅÄÍÅÔ ÂÏÌÅÅ Ó×ÅÖÉÈ ×ÅÒÓÉÊ PostgreSQL ÉÌÉ ÚÁÐÌÁÔ.
+
+ 1.14) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ óõâä?
+
+ óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ:
+ ×ÏÚÍÏÖÎÏÓÔÉ, ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÎÁÄÅÖÎÏÓÔØ, ÐÏÄÄÅÒÖËÁ É ÃÅÎÁ.
+
+ ÷ÏÚÍÏÖÎÏÓÔÉ
+ PostgreSQL ÉÍÅÅÔ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ ÐÒÅÄÓÔÁ×ÌÅÎÎÙÈ ×
+ ÂÏÌØÛÉÈ ËÏÍÍÅÒÞÅÓËÉÈ óõâä, ÔÁËÉÅ ËÁË: ÔÒÁÎÚÁËÃÉÉ, ÐÏÄÚÁÐÒÏÓÙ,
+ ÔÒÉÇÇÅÒÙ, ÏÂÚÏÒÙ (views), ×ÎÅÛÎÉÊ ËÌÀÞ ÓÓÙÌÏÞÎÏÊ ÃÅÌÏÓÔÎÏÓÔÉ É
+ ÒÁÚÎÙÅ ÂÌÏËÉÒÏ×ËÉ. õ ÎÁÓ ÅÓÔØ ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÈ
+ ÎÅÔ Õ ÎÉÈ: ÔÉÐÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÍÅÈÁÎÉÚÍ
+ ÎÁÓÌÅÄÏ×ÁÎÉÑ, ÐÒÁ×ÉÌÁ É ËÏÎËÕÒÅÔÎÏÅ ÍÎÏÇÏ×ÅÒÓÉÏÎÎÏÅ ÕÐÒÁ×ÌÅÎÉÅ
+ ÄÌÑ ÒÁÂÏÔÙ Ó ÓÏÄÅÒÖÉÍÙÍ ÂÌÏËÉÒÏ×ÏË.
+
+ ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ
+ PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ × Ä×ÕÈ ÒÅÖÉÍÁ. ÷ ÎÏÒÍÁÌØÎÏÍ fsync
+ ÒÅÖÉÍÅ, ËÁÖÄÁÑ ÚÁ×ÅÒÛÅÎÎÁÑ ÔÒÁÎÚÁËÃÉÑ ÓÂÒÁÓÙ×ÁÅÔÓÑ ÎÁ ÄÉÓË,
+ ÇÁÒÁÎÔÉÒÕÑ, ÞÔÏ ÅÓÌÉ ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÉÌÉ ÐÉÔÁÎÉÅ ÒÕÈÎÅÔ ×
+ ÓÌÅÄÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÓÅËÕÎÄ, ×ÓÅ ×ÁÛÉ ÄÁÎÎÙÅ ÂÅÚÏÐÁÓÎÏ
+ ÓÏÈÒÁÎÑÔÓÑ ÎÁ ÄÉÓËÅ. ÷ ÜÔÏÍ ÒÅÖÉÍÅ, ÍÙ ÒÁÂÏÔÁÅÍ ÍÅÄÌÅÎÅÅ, ÞÅÍ
+ ÂÏÌØÛÉÎÓÔ×Ï ËÏÍÍÅÒÞÅÓËÉÈ óõâä, ÏÔÞÁÓÔÉ ÐÏÔÏÍÕ, ÞÔÏ ÎÅËÏÔÏÒÙÅ ÉÚ
+ ÎÉÈ ÄÅÌÁÀÔ Õ ÓÅÂÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÔÁËÏÊ ËÏÎÓÅÒ×ÁÔÉ×ÎÙÊ ÓÂÒÏÓ ÎÁ
+ ÄÉÓË. ÷ ÒÅÖÉÍÅ no-fsync, ÍÙ ÏÂÙÞÎÏ ÂÙÓÔÒÅÅ ÞÅÍ ËÏÍÍÅÒÞÅÓËÉÅ
+ óõâä, ÎÏ × ÜÔÏÍ ÒÅÖÉÍÅ, ÐÁÄÅÎÉÅ ÏÐÅÒÁÃÉÏÏÎÏÊ ÓÉÓÔÅÍÙ ÍÏÖÅÔ
+ ÐÒÉ×ÅÓÔÉ Ë ÐÏÔÅÒÅ ÄÁÎÎÙÈ. íÙ ÒÁÂÏÔÁÅÍ ÎÁÄ ÔÅÍ ÞÔÏÂÙ
+ ÐÒÅÄÏÓÔÁ×ÉÔØ ÐÒÏÍÅÖÕÔÏÞÎÙÊ ÒÅÖÉÍ, ËÏÔÏÒÙÊ ÏÂÅÓÐÅÞÉ×ÁÌ ÂÏÌÅÅ
+ ×ÙÓÏËÕÀ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÞÅÍ fsync ÒÅÖÉÍ É ÐÏÚ×ÏÌÑÌ
+ ÓÏÈÒÁÎÉÔØ ÃÅÌÏÓÔÎÏÓÔØ ÄÁÎÎÙÈ ÚÁÐÉÓÁÎÎÙÈ × ÔÅÞÅÎÉÉ 30 ÓÅËÕÎÄ ÄÏ
+ ÐÁÄÅÎÉÑ ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÙ.
+ ÷ ÓÒÁ×ÎÅÎÉÉ Ó MySQL ÉÌÉ ÌÉÎÅÊÎÙÍÉ óõâä, ÍÙ ÍÅÄÌÅÎÅÅ ÐÒÉ
+ ÏÐÅÒÁÃÉÑÈ ×ÓÔÁ×ËÉ/ÏÂÎÏ×ÌÅÎÉÑ, ÐÏÔÏÍÕ ÞÔÏ ÍÙ ÕÐÒÁ×ÌÑÅÍ
+ ÔÒÁÎÚÁËÃÉÑÍÉ. é ÒÁÚÕÍÅÅÔÓÑ, MySQL ÎÅ ÉÍÅÅÔ ËÁËÉÈ-ÌÉÂÏ
+ ×ÏÚÍÏÖÎÏÓÔÅÊ ÉÚ ÐÅÒÅÞÉÓÌÅÎÙÈ × ÓÅËÃÉÉ ÷ÏÚÍÏÖÎÏÓÔÉ. íÙ ÄÅÌÁÅÍ
+ ÕÐÏÒ ÎÁ ÕÄÏÂÓÔ×Å É ×ÏÚÍÏÖÎÏÓÔÑÈ, ÎÏ ÍÙ ÔÁËÖÅ ÐÒÏÄÏÌÖÁÅÍ
+ Õ×ÅÌÉÞÉ×ÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÕÔÅÍ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ É ÁÎÁÌÉÚÁ
+ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×. óÕÝÅÓÔ×ÕÅÔ ÉÎÔÅÒÅÓÎÁÑ ÓÔÒÁÎÉÞËÁ × éÎÔÅÒÎÅÔ,
+ ÓÒÁ×ÎÉ×ÁÀÝÁÑ PostgreSQL É MySQL ÎÁ
+ http://openacs.org/why-not-mysql.html
+ íÙ ÕÐÒÁ×ÌÑÅÍ ËÁÖÄÙÍ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÍ ÓÏÅÄÉÎÅÎÉÅÍ, ÓÏÚÄÁ×ÁÑ Unix
+ backend ÐÒÏÃÅÓÓ. Backend ÐÒÏÃÅÓÓÙ ÒÁÚÄÅÌÑÀÔ ÂÕÆÅÒÙ ÄÁÎÎÙÈ É
+ ÉÎÆÏÒÍÁÃÉÀ Ï ÂÌÏËÉÒÏ×ËÁÈ. ðÒÉ ÎÁÌÉÞÉÉ ÎÅÓËÏÌØËÉÈ ÐÒÏÃÅÓÓÏÒÏ×,
+ ÎÅÓËÏÌØËÏ backend ÐÒÏÃÅÓÓÏ× ÌÅÇËÏ ÍÏÇÕÔ ÂÙÔØ ÚÁÐÕÝÅÎÙ ÎÁ ÒÁÚÎÙÈ
+ ÐÒÏÃÅÓÓÏÒÁÈ.
+
+ îÁÄÅÖÎÏÓÔØ
+ íÙ ÐÏÎÉÍÁÌÉ, ÞÔÏ ÎÁÛÁ óõâä ÄÏÌÖÎÁ ÂÙÔØ ÎÁÄÅÖÎÏÊ ÉÌÉ ÏÎÁ ÎÉÞÅÇÏ
+ ÎÅ ÂÕÄÅÔ ÓÔÏÉÔØ. íÙ ÓÔÁÒÁÅÍÓÑ ×ÙÐÕÓËÁÔØ ÈÏÒÏÛÏ ÐÒÏ×ÅÒÅÎÎÙÊ,
+ ÓÔÁÂÉÌØÎÙÊ ËÏÄ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÍÉÎÉÍÕÍ ÏÛÉÂÏË. ëÁÖÄÙÊ ×ÙÐÕÓË
+ ÐÒÏÈÏÄÉÔ ÓÔÁÄÉÀ ÂÅÔÁ-ÔÅÓÔÉÒÏ×ÁÎÉÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × ÔÅÞÅÎÉÉ
+ ÏÄÎÏÇÏ ÍÅÓÑÃÁ É ÎÁÛÁ ÉÓÔÏÒÉÑ ×ÙÐÕÓËÏ× ÐÏËÁÚÙ×ÁÅÔ ÞÔÏ ÍÙ ÍÏÖÅÍ
+ ÐÒÅÄÏÓÔÁ×ÌÑÔØ ÓÔÁÂÉÌØÎÙÅ, ÍÏÎÏÌÉÔÎÙÅ ×ÙÐÕÓËÉ, ËÏÔÏÒÙÅ ÇÏÔÏ×Ù Ë
+ ÐÒÏÄÕËÔÉ×ÎÏÍÕ ÉÓÐÏÌØÚÏ×ÁÎÉÀ. íÙ ×ÅÒÉÍ, ÞÔÏ ÍÙ ÐÒÏÉÚ×ÏÄÉÍ
+ ÐÒÏ×ÅÒËÕ ÎÅ ÈÕÖÅ, ÞÅÍ Õ ÄÒÕÇÉÈ óõâä.
+
+ ðÏÄÄÅÒÖËÁ
+ îÁÛ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÐÒÅÄÓÔÁ×ÌÅÎ ÂÏÌØÛÏÊ ÇÒÕÐÐÏÊ ÒÁÚÒÁÂÏÔÞÉËÏ× É
+ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÐÏÍÏÞØ ÒÅÛÉÔØ ÌÀÂÙÅ ×ÏÚÎÉËÛÉÅ
+ ÐÒÏÂÌÅÍÙ. ÷ ÔÏ ÖÅ ×ÒÅÍÑ, ÍÙ ÎÅ ÇÁÒÁÎÔÉÒÕÅÍ ËÁËÉÅ-ÌÉÂÏ
+ ÉÓÐÒÁ×ÌÅÎÉÑ, ÎÏ É ÒÁÚÒÁÂÏÔÞÉËÉ ËÏÍÍÅÒÞÅÓËÉÈ óõâä ÎÅ ×ÓÅÇÄÁ
+ ÄÅÌÁÀÔ ÉÓÐÒÁ×ÌÅÎÉÑ. ðÒÑÍÏÊ ÄÏÓÔÕÐ Ë ÒÁÚÒÁÂÏÔÞÉËÁÍ, ÓÏÏÂÝÅÓÔ×Õ
+ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÒÕËÏ×ÏÄÓÔ×ÁÍ É ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ ÞÁÓÔÏ ÄÅÌÁÀÔ
+ ÐÏÄÄÅÒÖËÕ PostgreSQL ÐÒÅ×ÏÓÈÏÄÑÝÅÊ ÄÒÕÇÉÅ óõâä. óÕÝÅÓÔ×ÕÅÔ
+ ËÏÍÍÅÒÞÅÓËÁÑ ÐÏÄÄÅÒÖËÁ ÐÏ ÒÅÚÕÌØÔÁÍ ×ÏÚÎÉËÛÉÈ ÉÎÃÉÄÅÎÔÏ×,
+ ËÏÔÏÒÁÑ ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ ëÁË ÐÏÌÕÞÉÔØ
+ ÐÏÄÄÅÒÖËÕ?.)
+
+ ãÅÎÁ
+ îÁÛ ÐÒÏÄÕËÔ ÂÅÓÐÌÁÔÅÎ ËÁË ÄÌÑ ËÏÍÍÅÒÞÅÓËÏÇÏ ÔÁË, É ÎÅ ÄÌÑ
+ ËÏÍÍÅÒÞÅÓËÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ÷Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÌÑÔØ Ó×ÏÊ ËÏÄ × ÎÁÛ
+ ÐÒÏÄÕËÔ ÂÅÚ ÏÇÒÁÎÉÞÅÎÉÊ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÅÈ, ÞÔÏ ÏÐÉÓÙ×ÁÀÔÓÑ ×
+ ÎÁÛÅÊ ÌÉÃÅÎÚÉÉ ÓÔÉÌÑ BSD, ËÏÔÏÒÁÑ ÐÒÉ×ÅÄÅÎÁ ×ÙÛÅ.
+
+ 1.15) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ PostgreSQL?
+
+ PostgreSQL ÉÍÅÅÔ ÏÄÎÏÒÁÎÇÏ×ÕÀ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ Ó ÔÏÇÏ ÓÁÍÏÇÏ ×ÒÅÍÅÎÉ ËÁË
+ ÍÙ ÎÁÞÁÌÉ ÒÁÚÒÁÂÏÔËÕ 6 ÌÅÔ ÎÁÚÁÄ. íÙ ÄÏÌÖÎÙ ÂÌÁÇÏÄÁÒÉÔØ ÚÁ ÜÔÏ íÁÒËÁ
+ æÏÎÁÑ (Marc Fournier), ËÏÔÏÒÙÊ ÓÏÚÄÁÌ ÜÔÕ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ É ÕÐÒÁ×ÌÑÅÔ
+ ÅÊ ÎÁ ÐÒÏÔÑÖÅÎÉÉ ÜÔÉÈ ÌÅÔ.
+
+ ëÁÞÅÓÔ×ÅÎÎÁÑ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÏÞÅÎØ ×ÁÖÎÁ ÄÌÑ ÐÒÏÅËÔÏ× Ó ÏÔËÒÙÔÙÍ
+ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ïÎÁ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÒÁÓËÏÌÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÓÉÌØÎÏ
+ ÚÁÄÅÒÖÁÔØ ÐÏÓÔÕÐÁÔÅÌØÎÏÅ Ä×ÉÖÅÎÉÅ ÐÒÏÅËÔÁ.
+
+ òÁÚÕÍÅÅÔÓÑ, ÜÔÁ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÄÅÛÅ×ÏÊ. óÕÝÅÓÔ×ÕÅÔ
+ ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÅÖÅÍÅÓÑÞÎÙÈ É ÏÄÎÏÒÁÚÏ×ÙÈ ÒÁÓÈÏÄÏ×, ËÏÔÏÒÙÅ
+ ÔÒÅÂÕÀÔ ÄÅÎÅÇ. åÓÌÉ ×Ù ÉÌÉ ×ÁÛÁ ËÏÍÐÁÎÉÑ ÉÍÅÅÔ ÄÅÎØÇÉ, ËÏÔÏÒÙÅ ÍÏÖÎÏ
+ ÐÅÒÅÄÁÔØ × ÐÏÍÏÝØ ÎÁÛÉÍ ÕÓÉÌÉÑÍ, ÐÏÖÁÌÕÊÓÔÁ ÐÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ
+ http://www.pgsql.com/pg_goodies É ÓÄÅÌÁÊÔÅ Ó×ÏÊ ×ËÌÁÄ.
+
+ èÏÔÑ ÎÁ ÓÔÒÁÎÉÞËÅ ÇÏ×ÏÒÉÔÓÑ Ï PostgreSQL, Inc, ÐÕÎËÔ "contributions"
+ ÐÒÅÄÎÁÚÎÁÞÅÎ ÉÓËÌÀÞÉÔÅÌØÎÏ ÄÌÑ ÐÏÄÄÅÒÖËÉ ÐÒÏÅËÔÁ PostgreSQL É ÎÅ
+ ÐÅÒÅÄÁÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÎËÒÅÔÎÏÊ ËÏÍÐÁÎÉÉ. åÓÌÉ ÈÏÔÉÔÅ, ÔÏ ÍÏÖÅÔÅ ÜÔÏ
+ ÐÒÏ×ÅÒÉÔØ, ÎÁÐÉÓÁ× ÐÉÓØÍÏ ÎÁ ËÏÎÔÁËÔÎÙÊ ÁÄÒÅÓ.
+ _________________________________________________________________
+
+ ÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ
+
+ 2.1) óÕÝÅÓÔ×ÕÀÔ ÌÉ ODBC ÄÒÁÊ×ÅÒÁ ÄÌÑ PostgreSQL?
+
+ óÕÝÅÓÔ×ÕÅÔ Ä×Á ODBC ÄÒÁÊ×ÅÒÁ, PsqlODBC É OpenLink ODBC.
+
+ PsqlODBC ×ËÌÀÞÁÅÔÓÑ × ÄÉÓÔÒÉÂÕÔÉ×. âÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÜÔÏÍ ÄÒÁÊ×ÅÒÅ
+ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ ftp://ftp.PostgreSQL.org/pub/odbc/.
+
+ OpenLink ODBC ÍÏÖÎÏ ×ÚÑÔØ ÎÁ http://www.openlinksw.com. üÔÏÔ ÄÒÁÊ×ÅÒ
+ ÒÁÂÏÔÁÅÔ Ó ÉÈ ÓÔÁÎÄÁÒÔÎÙÍ ËÌÉÅÎÔÓËÉÍ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ,
+ ÉÓÐÏÌØÚÕÀÝÉÍ ODBC, É ÔÁËÉÍ ÏÂÒÁÚÏÍ, ODBC ÄÒÁÊ×ÅÒÙ ÄÌÑ PostgreSQL
+ ÄÏÓÔÕÐÎÙ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÉÍÉ ÐÌÁÔÆÏÒÍ (Win, Mac, Unix,
+ VMS).
+
+ ÷ÏÚÍÏÖÎÏ ÏÎÉ ÂÕÄÕÔ ÐÒÏÄÁ×ÁÔØ Ó×ÏÊ ÐÒÏÄÕËÔ ÔÅÍ ËÏÍÕ ÎÕÖÎÁ ËÏÍÍÅÒÞÅÓËÁÑ
+ ÐÏÄÄÅÒÖËÁ, ÎÏ ÂÅÓÐÌÁÔÎÁÑ ×ÅÒÓÉÑ ×ÓÅÇÄÁ ÂÕÄÅÔ ÄÏÓÔÕÐÎÁ. ðÏÖÁÌÕÊÓÔÁ,
+
+ ôÁËÖÅ ÐÏÓÍÏÔÒÉÔÅ ODBC ÒÁÚÄÅÌ × ÒÕËÏ×ÏÄÓÔ×Å ÐÒÏÇÒÁÍÍÉÓÔÁ.
+
+ 2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ PostgreSQL ÞÅÒÅÚ Web?
+
+ ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ:
+ http://www.webreview.com
+
+ ôÁËÖÅ ÚÁÇÌÑÎÉÔÅ ÎÁ http://www.phone.net/home/mwm/hotlist/.
+
+ äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, ÏÄÎÉÍ ÉÚ ÐÒÅ×ÏÓÈÏÄÎÙÈ ÉÎÓÔÒÕÍÅÎÔÏ× Ñ×ÌÑÅÔÓÑ PHP.
+ äÏÍÁÛÎÑÑ ÓÔÁÎÉÞËÁ http://www.php.net.
+
+ äÌÑ ËÏÍÐÌÅËÓÎÙÈ ÒÅÛÅÎÉÊ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl ÉÎÔÅÒÆÅÊÓÏÍ É CGI.pm.
+
+ 2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ ÐÏÌØÚÏ×ÁÔÅÌÑ? çÅÎÅÒÁÔÏÒ
+ ÏÔÞÅÔÏ×? ÷ÓÔÒÏÅÎÎÙÊ ÉÎÔÅÒÆÅÊÓ ÄÌÑ ÑÚÙËÁ ÚÁÐÒÏÓÏ×?
+
+ õ ÎÁÓ ÅÓÔØ ÐÒÅËÒÁÓÎÙÊ ÇÏÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ, ÎÁÚÙ×ÁÅÍÙÊ pgaccess,
+ ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ÄÉÓÔÒÉÂÕÔÉ×Á. pgaccess ÔÁËÖÅ ÅÍÅÅÔ ÇÅÎÅÒÁÔÏÒ
+ ÏÔÞÅÔÏ×. åÇÏ ÓÔÒÁÎÉÞËÁ http://www.flex.ro/pgaccess
+
+ íÙ ÔÁËÖÅ ×ËÌÀÞÁÅÍ ecpg, ËÏÔÏÒÙÊ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ×ÓÔÒÏÅÎÎÙÊ ÉÎÔÅÒÆÅÊÓ Ë
+ ÑÚÙËÕ ÚÁÐÒÏÓÏ× SQL ÉÚ C.
+
+ 2.4) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó PostgreSQL?
+
+ ÷ÏÔ ÜÔÉ:
+ * C (libpq)
+ * C++ (libpq++)
+ * Embedded C (ecpg)
+ * Java (jdbc)
+ * Perl (perl5)
+ * ODBC (odbc)
+ * Python (PyGreSQL)
+ * TCL (libpgtcl)
+ * C Easy API (libpgeasy)
+ * Embedded HTML (PHP from http://www.php.net)
+ _________________________________________________________________
+
+ ÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ
+
+ 3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ ÏÔ /usr/local/pgsql?
+
+ úÁÄÁÊÔÅ ÏÐÃÉÀ --prefix ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ configure.
+
+ 3.2) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ postmaster, Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ Bad System Call ÉÌÉ
+ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?
+
+ üÔÏ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÏ ÒÁÚÎÙÍÉ ÐÒÏÂÌÅÍÁÍÉ, ÎÏ ÐÅÒ×ÏÅ, ÞÔÏ ÎÕÖÎÏ
+ ÓÄÅÌÁÔØ - ÜÔÏ ÕÂÅÄÉÔØÓÑ × ÔÏÍ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ÕÓÔÁÎÏ×ÌÅÎÏ ÒÁÓÛÉÒÅÎÉÅ
+ System V. PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÑÄÒÏ ÐÏÄÄÅÒÖÉ×ÁÌÏ ÒÁÚÄÅÌÑÅÍÕÀ
+ ÐÁÍÑÔØ É ÓÅÍÁÆÏÒÙ.
+
+ 3.3) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÉ
+ IpcMemoryCreate. ðÏÞÅÍÕ?
+
+ ìÉÂÏ Õ ×ÁÓ × ÑÄÒÅ ÎÅÐÒÁ×ÉÌØÎÙÅ ÎÁÓÔÒÏÊËÉ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ÌÉÂÏ
+ ×ÁÛÅÍÕ ÑÄÒÕ ÎÕÖÎÏ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÓÔÕÐÎÏÊ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. ôÅ
+ ËÏÎËÒÅÔÎÙÅ ÄÅÊÓÔ×ÉÑ, ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÏ ÐÒÏÉÚ×ÅÓÔÉ ÚÁ×ÉÓÑÔ ÏÔ
+ ÁÒÈÉÔÅËÔÕÒÙ ×ÁÛÅÊ ÍÁÛÉÎÙ É ÏÔ ÔÏÇÏ ËÁË ÍÎÏÇÏ ÂÕÆÅÒÏ× É backend
+ ÐÒÏÃÅÓÓÏ× ×Ù ÎÁÓÔÒÏÉÌÉ ÄÌÑ postmaster. äÌÑ ÂÏÌØÛÉÎÓÔ×Á ÓÉÓÔÅÍ, Ó
+ ËÏÌÉÞÅÓÔ×ÏÍ ÂÕÆÅÒÏ× É ÐÒÏÃÅÓÓÏ× ÐÏ ÕÍÏÌÞÁÎÉÀ, ÎÅÏÂÈÏÄÉÍÙÊ ÍÉÎÉÍÕÍ -
+ ÜÔÏ ÏËÏÌÏ 1 ÍÅÇÁÂÁÊÔÁ. ðÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ
+ ÓÍÏÔÒÉÔÅ × òÕËÏ×ÏÄÓÔ×Å ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL.
+
+ 3.4) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÉ
+ IpcSemaphoreCreate. ðÏÞÅÍÕ?
+
+ åÓÌÉ ÜÔÏ ÓÏÏÂÝÅÎÉÅ IpcSemaphoreCreate: semget failed (No space left on
+ device) ÔÏ ÎÁÓÔÒÏÊËÉ ×ÁÛÅÇÏ ÑÄÒÁ ÔÁËÏ×Ù, ÞÔÏ ÅÍÕ ÎÅ È×ÁÔÁÅÔ ÓÅÍÁÆÏÒÏ×.
+ Postgres ÔÒÅÂÕÅÔ ÏÄÉÎ ÓÅÍÁÆÏÒ ÎÁ ÐÏÔÅÎÃÉÁÌØÎÙÊ backend ÐÒÏÃÅÓÓ.
+ ÷ÒÅÍÅÎÎÙÍ ÒÅÛÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÓË postmaster Ó ÎÁÓÔÒÏÊËÁÍÉ ÎÁ ÍÅÛØÛÅÅ
+ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ×. éÓÐÏÌØÚÕÊÔÅ -N Ó ÚÎÁÞÅÎÉÅÍ ÍÅÎØÛÉÍ ÞÅÍ
+ 32, ËÏÔÏÒÏÅ ÐÒÉÎÑÔÏ ÐÏ ÕÍÏÌÞÁÎÉÀ. âÏÌÅÅ ÐÒÁ×ÉÌØÎÏÅ ÒÅÛÅÎÉÅ - ÜÔÏ
+ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÑ SEMMNS É SEMMNI × ÎÁÓÔÒÊËÁÈ ÑÄÒÁ.
+
+ îÅÉÓÐÒÁ×ÎÙÅ ÓÅÍÁÆÏÒÙ ÔÁËÖÅ ÍÏÇÕÔ ÐÒÉ×ÅÓÔÉ Ë ÐÁÄÅÎÉÀ óõâä ×Ï ×ÒÅÍÑ
+ ÄÏÓÔÕÐÁ Ë ÂÁÚÅ ÄÁÎÎÙÈ.
+
+ åÓÌÉ ×Ù ÐÏÌÕÞÉÌÉ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ, ÔÏ ×ÐÏÌÎÅ
+ ×ÏÚÍÏÖÎÏ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ×ÏÏÂÝÅ ÎÅ ÎÁÓÔÒÏÅÎÁ ÐÏÄÄÅÒÖËÁ ÓÅÍÁÆÏÒÏ×.
+ óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ × òÕËÏ×ÏÄÓÔ×Å
+ áÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL.
+
+ 3.5) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ ËÏÍÐØÀÔÅÒÏ×?
+
+ ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ
+ ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix. äÒÕÇÉÅ ÍÁÛÉÎÙ ÎÅ ÓÍÏÇÕÔ ÐÏÄËÌÀÞÉÔØÓÑ
+ Ë ÂÁÚÅ ÐÏËÁ ÄÌÑ postmaster ÎÅ ÂÕÄÅÔ ÚÁÄÁÎ ÆÌÁÇ -i É ÐÏËÁ ÎÅ ÂÕÄÅÔ
+ ÒÁÚÒÅÛÅÎÁ host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ $PGDATA/pg_hba.conf. üÔÉ ÄÅÊÓÔ×ÉÑ
+ ÄÅÌÁÀÔ ×ÏÚÍÏÖÎÙÍÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ.
+
+ 3.6) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?
+
+ îÅÓÏÍÎÅÎÎÏ, ÉÎÄÅËÓÙ ÍÏÇÕÔ Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ×.
+ ëÏÍÁÎÄÁ EXPLAIN ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÓÍÏÔÒÅÔØ ËÁË PostgreSQL ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ
+ ×ÁÛ ÚÁÐÒÏÓ É ËÁËÉÅ ÉÎÄÅËÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ.
+
+ åÓÌÉ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÍÎÏÇÏ ÏÐÅÒÁÔÏÒÏ× INSERT, ÒÁÓÓÍÏÔÒÉÔÅ ×ÏÚÍÏÖÎÏÓÔØ
+ ×ÙÐÏÌÎÑÔØ ÉÈ × ÂÏÌØÛÏÊ ÐÁÞËÅ, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ COPY. üÔÏ ÚÎÁÞÉÔÅÌØÎÏ
+ ÂÙÓÔÒÅÅ, ÞÅÍ ÏÔÄÅÌØÎÙÅ INSERT. ÷Ï-×ÔÏÒÙÈ, ÏÐÅÒÁÔÏÒÙ ×ÎÅ ÂÌÏËÁ
+ ÔÒÁÎÚÁËÃÉÉ BEGIN WORK/COMMIT ÓÁÍÉ ×ÙÐÏÌÎÑÀÔ ÔÒÁÎÚÁËÃÉÀ. ðÏÄÕÍÁÊÔÅ ÎÁÄ
+ ×ÙÐÏÌÎÅÎÉÅÍ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÏÄÎÏÍ ÂÌÏËÅ ÔÒÁÎÚÁËÃÉÉ. üÔÏ
+ ÕÍÅÎØÛÉÔ ËÏÌÉÞÅÓÔ×Ï ÔÒÁÎÚÁËÃÉÊ. ôÁËÖÅ, ÚÁÄÕÍÁÊÔÅÓØ ÎÁÄ ÕÄÁÌÅÎÉÅÍ É
+ ÐÅÒÅÓÏÚÄÁÎÉÅÍ ÉÎÄÅËÓÏ×, ËÏÇÄÁ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÄÁÎÎÙÈ.
+
+ óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÏÐÃÉÊ ÎÁÓÔÒÏÊËÉ. ÷Ù ÍÏÖÅÔÅ ÚÁÐÒÅÔÉÔØ fsync() ÐÒÉ
+ ÓÔÁÒÔÅ postmaster Ó ÏÐÃÉÅÊ -o -F. üÔÏ ÐÒÅÄÏÔ×ÒÁÔÉÔ ×ÙÚÏ×Ù fsync(),
+ ËÏÔÏÒÙÅ ÐÒÉ×ÏÄÑÔ Ë ÓÂÒÏÓÕ ÄÁÎÎÙÈ ÎÁ ÄÉÓË ÐÏÓÌÅ ËÁÖÄÏÊ ÔÒÁÎÚÁËÃÉÉ.
+
+ ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ postmaster ÏÐÃÉÀ -B ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ
+ ËÏÌÉÞÅÓÔ×Á ÂÕÆÅÒÏ× ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÕÅÔÓÑ backend
+ ÐÒÏÃÅÓÓÁÍÉ. åÓÌÉ ×Ù ÓÄÅÌÁÅÔÅ ÚÎÁÞÅÎÉÅ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ ÓÌÉÛËÏÍ ÂÏÌØÛÉÍ,
+ ÔÏ postmaster ÍÏÖÅÔ ÎÅ ÚÁÐÕÓÔÉÔÓÑ ÐÏÔÏÍÕ ÞÔÏ ×Ù ÉÓÞÅÒÐÁÅÔÅ ÏÇÒÁÎÉÞÅÎÉÅ
+ ÑÄÒÁ ÎÁ ÏÂßÅÍ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. ëÁÖÄÙÊ ÂÕÆÅÒ ÉÍÅÅÔ ÒÁÚÍÅÒ × 8
+ ËÉÌÏÂÁÊÔ É ÐÏ ÕÍÏÌÞÁÎÉÀ ×ÙÄÅÌÑÅÔÓÑ 64 ÂÕÆÅÒÁ.
+
+ ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ backend ÏÐÃÉÀ -S ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ
+ ÍÁËÓÉÍÁÌØÎÏÇÏ ËÏÌÉÞÅÓÔ×Á ÐÁÍÑÔÉ, ËÏÔÏÒÏÅ ÉÓÐÏÌØÚÕÅÔÓÑ backend
+ ÐÒÏÃÅÓÓÏÍ ÄÌÑ ×ÒÅÍÅÎÎÙÈ ÓÏÒÔÉÒÏ×ÏË. úÎÁÞÅÎÉÅ ÄÌÑ ÏÐÃÉÉ -S ÚÁÄÁÅÔÓÑ ×
+ ËÉÌÏÂÁÊÔÁÈ É ÐÏ ÕÍÏÌÞÁÎÉÀ ÒÁ×ÎÏ 512 (Ô.Å. 512K).
+
+ ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ CLUSTER ÄÌÑ ÇÒÕÐÐÉÒÏ×ËÉ ÄÁÎÎÙÈ ×
+ ÔÁÂÌÉÃÁÈ ÎÁ ÓÏ×ÐÁÄÁÀÝÉÊ ÉÎÄÅËÓ. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ ÎÁ ÓÔÒÁÎÉÃÅ
+ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ ËÏÍÁÎÄÅ CLUSTER.
+
+ 3.7) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?
+
+ PostgreSQL ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÐÏÚ×ÏÌÑÀÝÉÅ ÐÏÌÕÞÉÔØ
+ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ × ÏÔÌÁÄÏÞÎÙÈ
+ ÃÅÌÑÈ.
+
+ ÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ configure Ó ÏÐÃÉÅÊ --enable-cassert, ÍÎÏÇÉÅ
+ ×ÙÚÏ×Ù assert() ÐÏÚ×ÏÌÑÀÔ ÏÔÓÌÅÖÉ×ÁÔØ ÒÁÂÏÔÕ backend ÐÒÏÃÅÓÓÁ É
+ ÏÓÔÁÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ ÐÒÉ ×ÏÚÎÉËÎÏ×ÅÎÉÉ ËÁËÉÈ-ÌÉÂÏ ÎÅÏÖÉÄÁÎÎÏÓÔÅÊ.
+
+ é postmaster, É postgres ÉÍÅÀÔ ÎÅÓËÏÌØËÏ ÏÔÌÁÄÏÞÎÙÈ ÏÐÃÉÊ. ÷Ï-ÐÅÒ×ÙÈ,
+ ÐÒÉ ÚÁÐÕÓËÅ postmaster, ÕÂÅÄÉÔÅÓØ, ÞÔÏ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ É ×Ù×ÏÄ
+ ÏÛÉÂÏË ÏÓÕÝÅÓÔ×ÌÑÀÔÓÑ × ÆÁÊÌ ÖÕÒÎÁÌÁ:
+ cd /usr/local/pgsql
+ ./bin/postmaster >server.log 2>&1 &
+
+ üÔÏ ÐÒÉ×ÅÄÅÔ Ë ÐÏÑ×ÌÅÎÉÀ ÆÁÊÌÁ server.log × ÇÌÁ×ÎÏÍ ËÁÔÁÌÏÇÅ
+ PostgreSQL. üÔÏÔ ÆÁÊÌ ÓÏÄÅÒÖÉÔ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÒÏÂÌÅÍÁÈ ÉÌÉ
+ ÏÛÉÂËÁÈ, ×ÏÚÎÉËÛÉÈ ÎÁ ÓÅÒ×ÅÒÅ. Postmaster ÉÍÅÅÔ ÏÐÃÉÀ -d, ËÏÔÏÒÁÑ
+ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÁÔØ ÐÒÉ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÉ ÂÏÌÅÅ ÄÅÔÁÌØÎÕÀ ÉÎÆÒÍÁÃÉÀ. äÌÑ
+ ÏÐÃÉÉ -d ÕËÁÚÙ×ÁÅÔÓÑ ÞÉÓÌÏ, ËÏÔÏÒÏÅ ÚÁÄÁÅÔ ÕÒÏ×ÅÎØ ÏÔÌÁÄËÉ. âÕÄØÔÅ
+ ÏÓÔÏÒÏÖÎÙ, ÔÁË ËÁË ×ÙÓÏËÉÊ ÕÒÏ×ÅÎØ ÏÔÌÁÄËÉ ÐÒÉ×ÏÄÉÔ Ë ÇÅÎÅÒÁÃÉÉ ÆÁÊÌÏ×
+ ÖÕÒÎÁÌÁ ÂÏÌØÛÏÇÏ ÒÁÚÍÅÒÁ.
+
+ åÓÌÉ postmaster ÎÅ ÚÁÐÕÝÅÎ, ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ postgres backend ÉÚ
+ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ××ÅÓÔÉ ×ÁÛ ÏÐÅÒÁÔÏÒ SQL ÎÁÐÒÑÍÕÀ. üÔÏ ÒÅËÏÍÅÎÄÕÅÔÓÑ
+ ÔÏÌØËÏ ÄÌÑ ÃÅÌÅÊ ÏÔÌÁÄËÉ. úÁÍÅÔÉÍ, ÞÔÏ × ÜÔÏÍ ÒÅÖÉÍÅ, ÚÁÐÒÏÓ
+ ÚÁ×ÅÒÛÁÅÔÓÑ ÓÉÍ×ÏÌÏÍ ÎÏ×ÏÊ ÓÔÒÏËÉ, Á ÎÅ ÔÏÞËÏÊ Ó ÚÁÐÑÔÏÊ. åÓÌÉ ×Ù
+ ÐÒÏÉÚ×ÏÄÉÌÉ ËÏÍÐÉÌÑÃÉÀ Ó ÏÔÌÁÄÏÞÎÙÍÉ ÓÉÍ×ÏÌÏÁÍÉ, ×Ù ÍÏÖÅÔÅ
+ ÉÓÐÏÌØÚÏ×ÁÔØ ÌÀÂÏÊ ÏÔÌÁÄÞÉË, ÞÔÏÂÙ ÐÏÓÍÏÔÒÅÔØ, ÞÔÏ ÓÌÕÞÉÌÏÓØ.
+ ðÏÓËÏÌØËÕ backend ÚÁÐÕÓËÁÅÔÓÑ ÎÅ ÉÚ postmaster, ÏÎ ÎÅ ÚÁÐÕÓËÁÅÔÓÑ ×
+ ÉÄÅÎÔÉÞÎÏÍ ÏËÒÕÖÅÎÉÉ É ÚÎÁÞÉÔ ÐÒÏÂÌÅÍÙ ÉÔÅÒÁÃÉÊ ÂÌÏËÉÒÏ×ÏË/backend ÎÅ
+ ÍÏÇÕÔ ÂÙÔØ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÙ.
+
+ åÓÌÉ postmaster ÚÁÐÕÝÅÎ, ÚÁÐÕÓÔÉÔÅ psql × ÏÄÎÏÍ ÏËÎÅ, ÚÁÔÅÍ ÎÁÊÄÉÔÅ
+ PID ÐÒÏÃÅÓÓÁ postgres, ÉÓÐÏÌØÚÕÅÍÙÊ psql. éÓÐÏÌØÚÕÊÔÅ ÏÔÄÁÄÞÉË ÄÌÑ
+ ÐÏÄËÌÀÞÅÎÉÑ Ë postgres PID. ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ ×
+ ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ ÉÚ psql. åÓÌÉ ×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ
+ ÚÁÐÕÓËÁ postgres, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ PGOPTIONS="-W n", É ÚÁÔÅÍ
+ ÚÁÐÕÓÔÉÔØ psql. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ Ë ÚÁÄÅÒÖËÅ ÐÒÏÃÅÓÓÁ ÚÁÐÕÓËÁ ÎÁ n
+ ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ ×Ù ÍÏÖÅÔÅ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÃÅÓÓÕ ÏÔÌÁÄÞÉË,
+ ÕÓÔÁÎÏ×ÉÔØ ÌÀÂÙÅ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ É ÐÒÏÄÏÌÖÉÔØ ÚÁÐÕÓË.
+
+ ðÒÏÇÒÁÍÍÁ postgres ÉÍÅÅÔ ÏÐÃÉÉ -s, -A, É -t ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÏÞÅÎØ
+ ÐÏÌÅÚÎÙÍÉ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.
+
+ ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ ÔÏÇÏ,
+ ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ. æÁÊÌÙ
+ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ pgsql/data/base/dbname.
+ æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ.
+
+ 3.8) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ
+ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?
+
+ ÷ÁÍ ÎÕÖÎÏ Õ×ÅÌÉÞÉÔØ ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ËÏÌÉÞÅÓÔ×Ï ËÏÎËÕÒÅÔÎÙÈ backend
+ ÐÒÏÃÅÓÓÏ× ÐÒÉ ÚÁÐÕÓËÅ postmaster.
+
+ ðÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÏ×ÌÅÎ ÌÉÍÉÔ ÎÁ 32 ÐÒÏÃÅÓÓÁ. ÷Ù ÍÏÖÅÔÅ Õ×ÅÌÉÞÉÔØ ÜÔÏÔ
+ ÌÉÍÉÔ ÐÅÒÅÚÁÐÕÓÔÉ× postmaster Ó ÎÕÖÎÙÍ ÚÎÁÞÅÎÉÅÍ ÐÒÏÃÅÓÓÏ×, ËÏÔÏÒÏÅ
+ ÕËÁÚÙ×ÁÅÔÓÑ × ÏÐÃÉÉ -N ÉÌÉ ÉÚÍÅÎÉ× ÆÁÊÌ postgresql.conf.
+
+ úÁÍÅÔÉÍ, ÞÔÏ ÅÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ × ÏÐÃÉÉ -N ÚÎÁÞÅÎÉÅ ÂÏÌØÛÅ 32, ÔÏ ×Ù
+ ÔÁËÖÅ ÄÏÌÖÎÙ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÅ × ÏÐÃÉÉ -B ËÏÔÏÒÏÅ ÐÏ ÕÍÏÌÞÁÎÉÀ
+ ÕÓÔÁÎÏ×ÌÅÎÏ × 64; úÎÁÞÅÎÉÅ ÏÐÃÉÉ -B ÄÏÌÖÎÏ ÂÙÔØ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ×Ä×ÏÅ
+ ÂÏÌØÛÅ ÚÎÁÞÅÎÉÑ ÏÐÃÉÉ -N, É ×ÏÚÍÏÖÎÏ ÅÝ£ ÂÏÌØÛÅ ÄÌÑ ÌÕÞÛÅÊ
+ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ. äÌÑ ÂÏÌØÛÅÇÏ ËÏÌÉÞÅÓÔ×Á backend ÐÒÏÃÅÓÓÏ×, ×ÁÍ
+ ÔÁËÖÅ ÎÅÐÌÏÈÏ ÂÙÌÏ ÂÙ Õ×ÅÌÉÞÉÔØ ÎÅËÏÔÏÒÙÅ ÐÁÒÁÍÅÔÒÙ ÑÄÒÁ Unix. üÔÏ
+ ÔÁËÉÅ ÐÁÒÁÍÅÔÒÙ, ËÁË ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÂÌÏËÏ× ÒÁÚÄÅÌÑÅÍÏÊ
+ ÐÁÍÑÔÉ, SHMMAX; ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÅÍÁÆÏÒÏ×, SEMMNS É SEMMNI;
+ ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, NPROC; ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï
+ ÐÒÏÃÅÓÓÏ× ÎÁ ÐÏÌØÚÏ×ÁÔÅÌÑ, MAXUPRC; É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÏÔËÒÙÔÙÈ
+ ÆÁÊÌÏ×, NFILE É NINODE. ðÒÉÞÉÎÁ ÓÏÚÄÁÎÉÑ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ËÏÌÉÞÅÓÔ×Ï
+ backend ÐÒÏÃÅÓÓÏ× ËÁË ÒÁÚ É ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏÂÙ ×ÁÛÅÊ ÓÉÓÔÅÍÅ È×ÁÔÉÌÏ
+ ÒÅÓÕÒÓÏ×.
+
+ ÷ PostgreSQL ÄÏ ×ÅÒÓÉÉ 6.5, ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ×
+ ÂÙÌÏ 64, É ÉÚÍÅÎÅÎÉÅ ÜÔÏÇÏ ËÏÌÉÞÅÓÔ×Á ÔÒÅÂÏ×ÁÌÏ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ ÐÏÓÌÅ
+ ÕÓÔÁÎÏ×ËÉ ËÏÎÓÔÁÎÔÙ MaxBackendId × include/storage/sinvaladt.h.
+
+ 3.9) þÔÏ ÜÔÏ ÚÁ ÆÁÊÌÙ pg_sorttempNNN.NN × ÍÏÅÍ ËÁÔÁÌÏÇÅ Ó ÂÁÚÏÊ ÄÁÎÎÙÈ?
+
+ üÔÏ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ, ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÁ.
+ îÁÐÒÉÍÅÒ, ÅÓÌÉ ÄÌÑ ÏÐÅÒÁÔÏÒÁ ORDER BY ÄÏÌÖÎÁ ÂÙÔØ ×ÙÐÏÌÎÅÎÁ
+ ÓÏÒÔÉÒÏ×ËÁ, ËÏÔÏÒÁÑ ÔÒÅÂÕÅÔ ÂÏÌØÛÅ ÍÅÓÔÁ ÞÅÍ ×ÙÄÅÌÅÎÎÏ ÄÌÑ backend
+ ÐÒÏÃÅÓÓÁ × ÏÐÃÉÉ -S, ÔÏ ÓÏÚÄÁÅÔÓÑ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ ÄÌÑ ÈÒÁÎÅÎÉÑ
+ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÁÎÎÙÈ.
+
+ ÷ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÄÏÌÖÎÙ ÕÄÁÌÑÔØÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ÜÔÏÇÏ ÍÏÖÅÔ ÎÅ
+ ÐÒÏÉÓÈÏÄÉÔØ, ÅÓÌÉ backend ÐÒÏÃÅÓÓ ÐÁÄÁÅÔ ×Ï ×ÒÅÍÑ ÓÏÒÔÉÒÏ×ËÉ. åÓÌÉ Õ
+ ×ÁÓ ÎÅ ÚÁÐÕÝÅÎÏ ÎÉ ÏÄÎÏÇÏ backend ÐÒÏÃÅÓÓÁ, ÔÏ ×Ù ÍÏÖÅÔÅ ÓÐÏËÏÊÎÏ
+ ÕÄÁÌÉÔØ ÆÁÊÌÙ pg_tempNNN.NN.
+ _________________________________________________________________
+
+ ÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ
+
+ 4.1) ÷ ÞÅÍ ÏÔÌÉÞÉÅ ÍÅÖÄÕ ÂÉÎÁÒÎÙÍ É ÎÏÒÍÁÌØÎÙÍ ËÕÒÓÏÒÏÍ?
+
+ óÍÏÔÒÉÔÅ ÏÐÉÓÁÎÉÅ ÎÁ ÓÔÒÁÎÉÃÁÈ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÙÍ DECLARE.
+
+ 4.2) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ?
+
+ óÍÏÔÒÉÔÅ ÓÔÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ FETCH ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ SELECT
+ ... LIMIT....
+
+ äÁÖÅ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÌÕÞÉÔØ ÔÏÌØËÏ ÐÅÒ×ÙÅ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ, ÂÕÄÅÔ
+ ×ÙÐÏÌÎÅÎ ×ÅÓØ ÚÁÐÒÏÓ. òÁÓÓÍÏÔÒÉÍ ÚÁÐÒÏÓ, ËÏÔÏÒÙÊ ÉÍÅÅÔ ORDER BY. åÓÌÉ
+ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó ORDER BY, PostgreSQL ÍÏÖÅÔ
+ ×ÙÄÁÔØ ÔÏÌØËÏ ÎÅÓËÏÌØËÏ ÐÅÒ×ÙÈ ÚÁÐÒÏÛÅÎÎÙÈ ÚÁÐÉÓÅÊ ÉÌÉ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØ
+ ÚÁÐÒÏÓ ÐÏËÁ ÎÅ ÂÕÄÕÔ ×ÙÄÁÎÙ ÖÅÌÁÅÍÙÅ ÚÁÐÉÓÉ.
+
+ 4.3) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉà ÉÌÉ ÄÒÕÇÉÈ ËÏÍÐÏÎÅÎÔÏ× × psql?
+
+ ÷Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ ÉÓÈÏÄÎÙÊ ËÏÄ psql × ÆÁÊÌÅ
+ pgsql/src/bin/psql/describe.c. ïÎ ÓÏÄÅÒÖÉÔ ËÏÍÁÎÄÙ SQL ËÏÔÏÒÙÅ
+ ÇÅÎÅÒÉÒÕÀÔÓÑ ÐÒÉ ××ÏÄÅ × psql ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ
+ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÅÖÅÔÅ ÚÁÐÕÓÔÉÔØ psql Ó ÏÐÃÉÅÊ -E ÔÁË, ÞÔÏÂÙ ÜÔÁ
+ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ
+ ÚÁÄÁÎÎÙÈ ×ÁÍÉ ËÏÍÁÎÄ.
+
+ 4.4) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ?
+
+ íÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÍ ALTER TABLE DROP COLUMN, ÎÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:
+ SELECT ... -- ×ÙÂÏÒËÁ ×ÓÅÈ ËÏÌÏÎÏË ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÊ, ËÏÔÏÒÕÀ ÈÏÔÉÔÅ ÕÄÁÌ
+ÉÔØ
+ INTO TABLE new_table
+ FROM old_table;
+ DROP TABLE old_table;
+ ALTER TABLE new_table RENAME TO old_table;
+
+ 4.5) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ, ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
+
+ óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ? ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 60 G
+B)
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ? 16 TB
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÚÁÐÉÓÉ? ÎÅÏÇÒÁÎÉÞÅÎ ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 7.1
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ? 1 GB ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 7.1
+ íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ? ÎÅÏÇÒÁÎÉÞÅÎÏ
+ íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ? 250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐ
+Á
+ íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ? ÎÅÏÇÒÁÎÉÞÅÎÏ
+
+ òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ
+ ÄÏÓÔÕÐÎÙÍ ÄÉÓËÏ×ÙÍ ÐÒÏÓÔÒÁÎÉÓÔ×ÏÍ É ÒÁÚÍÅÒÁÍÉ ÐÁÍÑÔÉ/Ó×ÏÐÐÉÎÇÁ. ëÏÇÄÁ
+ ÚÎÁÞÅÎÉÑ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ×ÙÛÅ ÎÅÏÐÒÁ×ÄÁÎÏ ÂÏÌØÛÉÅ, ÍÏÖÅÔ ÐÏÓÔÒÁÄÁÔØ
+ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.
+
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ × 16 TB ÎÅ ÔÒÅÂÕÅÔ ÞÔÏÂÙ ÏÐÅÒÁÃÉÏÎÎÁÑ
+ ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÌÁ ÆÁÊÌÙ ÂÏÌØÛÉÈ ÒÁÚÍÅÒÏ×. âÏÌØÛÉÅ ÔÁÂÌÉÃÙ ÈÒÁÎÑÔÓÑ
+ ËÁË ÍÎÏÖÅÓÔ×Ï ÆÁÊÌÏ× ÒÁÚÍÅÒÏÍ × 1 GB, ÔÁË ÞÔÏ ÏÇÒÁÎÉÞÅÎÉÑ, ËÏÔÏÒÙÅ
+ ÎÁËÌÁÄÙ×ÁÅÔ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÎÅ ×ÁÖÎÙ.
+
+ íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË ÍÏÇÕÔ
+ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ Õ×ÅÌÉÞÅÎ ÄÏ 32k.
+
+ 4.6) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ
+ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?
+
+ óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ
+ ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.
+
+ ÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ, ÒÁÓÓÍÏÔÒÉÍ ÆÁÊÌ × 100,000 ÓÔÒÏË × ËÁÖÄÏÊ, ÉÚ
+ ËÏÔÏÒÙÈ ÃÅÌÏÅ ÞÉÓÌÏ É ÔÅËÓÔÏ×ÏÅ ÏÐÉÓÁÎÉÅ. ðÒÉ ÜÔÏÍ ÄÌÉÎÁ ÔÅËÓÔÁ, ×
+ ÓÒÅÄÎÅÍ, ÓÏÓÔÁ×ÌÑÅÔ 20 ÂÁÊÔ. òÁÚÍÅÒ ÐÒÏÓÔÏÇÏ ÆÁÊÌÁ ÓÏÓÔÁ×ÉÔ 2.8 MB.
+ òÁÚÍÅÒ ÂÁÚÙ PostgreSQL, ÓÏÄÅÒÖÁÝÅÊ ÜÔÉ ÖÅ ÄÁÎÎÙÅ ÓÏÓÔÁ×ÉÔ
+ ÐÒÉÂÌÉÚÉÔÅÌØÎÏ 6.4 MB ÉÚ ËÏÔÏÒÙÈ:
+ 36 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÚÁÐÉÓÉ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
+ + 24 ÂÁÊÔÁ: ÏÄÎÏ ÐÏÌÅ Ó ÃÅÌÏÞÉÓÌÅÎÎÙÍ ÔÉÐÏÍ É ÏÄÎÏ ÔÅËÓÔÏ×ÏÅ ÐÏÌÅ
+ + 4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÚÁÐÉÓÉ
+ ----------------------------------------
+ 64 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+
+ òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ ÄÁÎÎÙÈ × PostgreSQL ÓÏÓÔÁ×ÌÑÅÔ 8192 ÂÁÊÔ (8 KB), ÔÁË ÞÔÏ:
+
+ 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ
+ ------------------- = 128 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ âä (Ó ÏËÒÕÇÌÅÎÉÅÍ)
+ 64 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+
+ 100000 ÓÔÒÏË ÄÁÎÎÙÈ
+ -------------------- = 782 ÓÔÒÁÎÉÃÙ × âä
+ 128 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ
+
+782 ÓÔÒÁÎÉÃÙ âä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 6,406,144 ÂÁÊÔ (6.4 MB)
+
+ éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ ÂÏÌØÛÏÇÏ
+ ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ, ÏÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ×ÅÌÉËÉ.
+
+ 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ ÉÌÉ ÉÎÄÅËÓÙ ÏÐÒÅÄÅÌÅÎÙ ×
+ ÂÁÚÅ ÄÁÎÎÙÈ?
+
+ psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ, ÄÌÑ
+ ÔÏÇÏ ÞÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ. éÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÔÏÇÏ,
+ ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ.
+
+ ôÁËÖÅ ÓÍÏÔÒÉÔÅ ÆÁÊÌ pgsql/src/tutorial/syscat.source. ÷ ÎÅÍ
+ ÐÒÅÄÓÔÁ×ÌÅÎÙ ÍÎÏÇÉÅ ÏÐÅÒÁÔÏÒÙ SELECT ËÏÔÏÒÙÅ ÎÕÖÎÙ ÄÌÑ ÐÏÌÕÞÅÎÉÑ
+ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ ÂÁÚÙ ÄÁÎÎÙÈ.
+
+ 4.8) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
+ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?
+
+ éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉ. ïÎÉ
+ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ
+ ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ,
+ ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕÐ Ë ÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ
+ ÉÎÄÅËÓÏ× ÉÎÏÇÄÁ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÐÒÏÓÔÏÅ ÞÔÅÎÉÅ ÔÁÂÌÉÃÙ ÉÌÉ ÅÅ
+ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ.
+
+ þÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÁ ÄÌÑ ËÁËÏÊ-ÌÉÂÏ
+ ÔÁÂÌÉÃÙ, PostgreSQL ÄÏÌÖÅÎ ÉÍÅÔØ ÓÔÁÔÉÓÔÉËÕ ÐÏ ÜÔÏÊ ÔÁÂÌÉÃÅ. üÔÁ
+ ÓÔÁÔÉÓÔÉËÁ ÓÏÂÉÒÁÅÔÓÑ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ VACUUM ANALYZE ÉÌÉ ÐÒÏÓÔÏ
+ ANALYZE. éÓÐÏÌØÚÕÑ ÓÔÁÔÉÓÔÉËÕ, ÏÐÔÉÍÉÚÁÔÏÒ ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ
+ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏÎ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓÙ, ÔÏ ÏÎ ÍÏÖÅÔ
+ ÐÒÉÎÉÍÁÔØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ. óÔÁÔÉÓÔÉËÁ ÔÁËÖÅ ×ÌÉÑÅÔ ÎÁ ÏÐÒÅÄÅÌÅÎÉÅ
+ ÏÐÔÉÍÁÌØÎÏÇÏ ÐÏÒÑÄËÁ Ó×ÑÚÙ×ÁÎÉÑ É ÍÅÔÏÄÁ Ó×ÑÚÙ×ÁÎÉÑ. óÂÏÒ ÓÔÁÔÉÓÔÉËÉ
+ ÄÏÌÖÅÎ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ ÔÁÂÌÉÃÙ.
+
+ ïÂÙÞÎÏ ÉÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ORDER BY ÉÌÉ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ
+ Ó×ÑÚÙ×ÁÎÉÊ. ðÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÓÌÅÄÕÀÝÉÊ ÚÁ Ñ×ÎÏÊ ÓÏÒÔÉÒÏ×ËÏÊ
+ ÏÂÙÞÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÐÏÉÓË ÐÏ ÉÎÄÅËÓÁÍ × ÂÏÌØÛÏÊ ÔÁÂÌÉÃÅ. ïÄÎÁËÏ, ORDER
+ BY ÞÁÓÔÏ ËÏÍÂÉÎÉÒÕÅÔÓÑ Ó LIMIT É × ÜÔÏÍ ÓÌÕÞÁÅ ÉÎÄÅËÓ ÂÕÄÅÔ
+ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ
+ ÞÁÓÔØ ÔÁÂÌÉÃÙ.
+
+ ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ LIKE ÉÌÉ ~, ÉÎÄÅËÓÙ
+ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ ÔÏÌØËÏ ÅÓÌÉ ÎÁÞÁÌÏ ÓÔÒÏËÉ-ÛÁÂÌÏÎÁ ÄÌÑ ÐÏÉÓËÁ,
+ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÎÁÞÁÌÕ ÉÓËÏÍÏÊ ÓÔÒÏËÉ. óÌÅÄÏ×ÁÔÅÌØÎÏ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ
+ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓÙ, ÛÁÂÌÏÎ × LIKE ÎÅ ÄÏÌÖÅÎ ÎÁÞÉÎÁÔØÓÑ ÎÁ %, Á × ~
+ (ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ) ÄÏÌÖÅÎ ÎÁÞÉÎÁÔØÓÑ ÎÁ ^.
+
+ 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".
+
+ ÷ÓÔÒÏÅÎÎÎÙÅ R-tree ÍÏÇÕÔ ÕÐÒÁ×ÌÑÔØ ÐÏÌÉÇÏÎÁÍÉ É ÂÏËÓÁÍÉ. ÷ ÔÅÏÒÉÉ,
+ R-tree ÍÏÇÕÔ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ
+ ÉÚÍÅÒÅÎÉÊ. îÁ ÐÒÁËÔÉËÅ, ÒÁÓÛÉÒÅÎÉÅ R-tree ÔÒÅÂÕÅÔ ÎÅËÏÔÏÒÙÈ ÕÓÉÌÉÊ É Õ
+ ÎÁÓ, × ÄÁÎÎÙÊ ÍÏÍÅÎÔ, ÎÅÔ ËÁËÏÊ-ÌÉÂÏ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ÔÏÍ, ËÁË ÜÔÏ
+ ÓÄÅÌÁÔØ.
+
+ 4.11) þÔÏ ÔÁËÏÅ Genetic Query Optimizer?
+
+ íÏÄÕÌØ GEQO ÐÒÏÉÚ×ÏÄÉÔ ÂÙÓÔÒÕÀ ÏÐÔÉÍÉÚÁÃÉÀ ÚÁÐÒÏÓÁ, ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ
+ Ó×ÑÚÙ×ÁÎÉÅ ÍÎÏÇÉÈ ÔÁÂÌÉà ÞÅÒÅÚ Genetic Algorithm (GA). üÔÏ ÐÏÚ×ÏÌÑÅÔ
+ ÕÐÒÁ×ÌÑÔØ ÂÏÌØÛÉÍÉ ÚÁÐÒÏÓÁÍÉ ÎÁ Ó×ÑÚÙ×ÁÎÉÅ ÞÅÒÅÚ ÎÅÉÓÔÏÝÁÀÝÉÊ ÐÏÉÓË.
+
+ 4.12) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ
+ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ
+ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?
+
+ ïÐÅÒÁÔÏÒ ~ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ ~*
+ ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ.
+ îÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ×ÁÒÉÁÎÔ LIKE ÎÁÚÙ×ÁÅÔÓÑ ILIKE × PostgreSQL
+ ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 7.1.
+
+ îÅÚÁ×ÉÓÉÍÏÅ ÏÔ ÒÅÇÉÓÔÒÁ ÓÒÁ×ÎÅÎÉÅ ÏÂÙÞÎÏ ×ÙÒÁÖÁÅÔÓÑ ÔÁË:
+ SELECT *
+ FROM tab
+ WHERE lower(col) = 'abc'
+
+ üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
+ ×Ù ÓÏÚÄÁÄÉÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÊ ÉÎÄÅËÓ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
+ CREATE INDEX tabindex on tab (lower(col));
+
+ 4.13) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ NULL × ËÁËÏÍ-ÌÉÂÏ
+ ÚÁÐÒÏÓÅ?
+
+ ÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó IS NULL É IS NOT NULL.
+
+ 4.14) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ ÔÉÐÁÍÉ?
+
+ôÉÐ ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ úÁÍÅÞÁÎÉÑ
+--------------------------------------------------
+"char" char 1 ÓÉÍ×ÏÌ
+CHAR(#) bpchar ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
+VARCHAR(#) varchar ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉ
+Ñ
+TEXT text ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ
+BYTEA bytea ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔ
+Ø null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)
+
+ ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ ×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ, ËÏÇÄÁ ÓÍÏÔÒÉÔÅ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ É
+ × ÎÅËÏÔÏÒÙÈ ÓÏÏÂÝÅÎÉÑÈ ÏÂ ÏÛÉÂËÁÈ.
+
+ ðÏÓÌÅÄÎÉÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ ÞÅÔÙÒÅ
+ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ). ôÁËÉÍ
+ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ ÏÂÏÚÎÁÞÅÎÎÙÊ
+ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÜÔÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÁËÖÅ ÐÏÄÄÁÀÔÓÑ ÓÖÁÔÉÀ ÉÌÉ ÍÏÇÕÔ ÂÙÔØ
+ ÓÏÈÒÁÎÅÎÙ ÎÅ × ÓÔÒÏËÏÍ ×ÉÄÅ ÞÅÒÅÚ TOAST, ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ
+ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ, ÞÅÍ ÏÖÉÄÁÌÏÓØ.
+
+ CHAR() - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÓÔÒÏË, ËÏÔÏÒÙÅ ÏÂÙÞÎÏ ÉÍÅÀÔ
+ ÏÄÉÎÁËÏ×ÕÀ ÄÌÉÎÕ. VARCHAR() - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ, ËÏÇÄÁ ÎÕÖÎÏ ÈÒÁÎÉÔØ
+ ÓÔÒÏËÉ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ, ÎÏ ÎÅ ÐÒÅ×ÙÛÁÀÝÉÅ ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÒÁÚÍÅÒÁ. TEXT
+ - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÓÔÒÏË ÎÅÏÇÒÁÎÉÞÅÎÎÏÊ ÄÌÉÎÙ, Ó ÍÁËÓÉÍÁÌØÎÏ
+ ÄÏÐÕÓÔÉÍÏÊ ÄÌÉÎÏÊ × 1 ÇÉÇÁÂÁÊÔ. BYTEA ÄÌÑ ÈÒÁÎÅÎÉÑ ÂÉÎÁÒÎÙÈ ÄÁÎÎÙÈ,
+ ÚÎÁÞÅÎÉÑ ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ.
+
+ 4.15.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
+
+ PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ ÄÁÎÎÙÈ SERIAL. ïÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ
+ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ É ÉÎÄÅËÓ ÄÌÑ ËÏÌÏÎËÉ. îÁÐÒÉÍÅÒ:
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+ );
+
+ Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×:
+ 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 );
+
+ óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á
+ ÐÏÓ×ÑÝÅÎÎÏÊ create_sequence. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÁÖÄÏÅ ÐÏÌÅ
+ OID × ÚÁÐÉÓÉ ËÁË ÕÎÉËÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ. ïÄÎÁËÏ, ÅÓÌÉ ×ÁÍ ÎÕÖÅÎ ÄÁÍÐ É
+ ÐÅÒÅÚÁÇÒÕÚËÁ ÂÁÚÙ ÄÁÎÎÙÈ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ pg_dump
+ Ó ÏÐÃÉÅÊ -o ÉÌÉ ÏÐÃÉÀ COPY WITH OIDS ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ ÐÏÌÑ OID.
+
+ 4.15.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ SERIAL?
+
+ ïÄÉÎ ÉÚ ÓÐÏÓÏÂÏ× ÓÏÓÔÏÉÔ × ÐÏÌÕÞÅÎÉÉ ÓÌÅÄÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ SERIAL ÉÚ
+ ÏÂßÅËÔÁ sequence Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ nextval() ÐÅÒÅÄ ×ÓÔÁ×ËÏÊ É ÚÁÔÅÍ
+ ×ÓÔÁ×ÌÑÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ × 4.15.1,
+ ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ × Perl:
+ new_id = output of "SELECT nextval('person_id_seq')"
+ INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');
+
+ úÁÔÅÍ ×Ù ÄÏÌÖÎÙ ÔÁËÖÅ ÓÏÈÒÁÎÉÔØ ÎÏ×ÏÅ ÚÎÁÞÅÎÉÅ × ÐÅÒÅÍÅÎÎÏÊ new_id ÄÌÑ
+ ÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÄÒÕÇÉÈ ÚÁÐÒÏÓÁÈ (ÎÁÐÒÉÍÅÒ ÔÁËÉÈ ËÁË ×ÎÅÛÎÉÊ ËÌÀÞ
+ ÄÌÑ ÔÁÂÌÉÃÙ person). úÁÍÅÔÉÍ, ÞÔÏ ÉÍÑ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÎÎÏÇÏ ÏÂßÅËÔÁ
+ SEQUENCE ÂÕÄÅÔ
__seq, ÇÄÅ table É serialcolumn
+ Ñ×ÌÑÀÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÉÍÅÎÁÍÉ ×ÁÛÅÊ ÔÁÂÌÉÃÙ É ×ÁÛÅÊ ËÏÌÏÎËÉ SERIAL.
+
+ ÷ ËÁÞÅÓÔ×Å ÁÌØÔÅÒÎÁÔÉ×Ù, ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÎÁÚÎÁÞÅÎÎÏÅ ÚÎÁÞÅÎÉÅ
+ SERIAL Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ currval() ÐÏÓÌÅ ÐÒÏ×ÅÄÅÎÉÑ ÏÂÙÞÎÏÊ ÏÐÅÒÁÃÉÉ
+ ×ÓÔÁ×ËÉ, ÎÁÐÒÉÍÅÒ
+ INSERT INTO person (name) VALUES ('Blaise Pascal');
+ new_id = output of "SELECT currval('person_id_seq')";
+
+ é ÎÁËÏÎÅÃ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÎÁÞÅÎÉÅ OID, ×ÏÚÒÁÝÁÅÍÏÅ ÉÚ
+ ÏÐÅÒÔÏÒÁ INSERT ÞÔÏÂÙ Õ×ÉÄÅÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÞÔÏ
+ ÐÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Ñ×ÌÑÅÔÓÑ ÎÁÉÍÅÎÅÅ ÐÅÒÅÎÏÓÉÍÙÍ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ
+ ÒÅÛÅÎÉÅÍ. ÷ Perl, ÉÓÐÏÌØÚÕÑ DBI Ó ÍÏÄÕÌÅÉ Edmund Mergl'Ñ DBD::Pg,
+ ÚÎÁÞÅÎÉÅ oid ÓÔÁÎÏ×ÉÔÓÑ ÄÏÓÔÕÐÎÙÍ ÞÅÒÅÚ $sth->{pg_oid_status} ÐÏÓÌÅ
+ $sth->execute().
+
+ 4.15.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval()
+ ÐÒÉ×ÅÄÅÔ Ë ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?
+
+ îÅÔ. Currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÍ
+ backend'ÏÍ, Á ÎÅ ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ.
+
+ 4.15.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ
+ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ
+ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?
+
+ äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ
+ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ ÄÏ
+ ÐÏÌÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ ÔÒÁÎÚÁËÃÉÊ. üÔÏ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØ ÒÁÚÒÙ×Ù × ÎÕÍÅÒÁÃÉÉ
+ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.
+
+ 4.16) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ TID?
+
+ ðÏÌÑ OID ÓÌÕÖÁÔ ÕÎÉËÁÌØÎÙÍÉ ÉÄÅÔÉÆÉËÁÔÏÒÁÍÉ ÚÁÐÉÓÅÊ × PostgreSQL.
+ ëÁÖÄÁÑ ÚÁÐÉÓØ, ËÏÔÏÒÁÑ ÓÏÚÄÁ£ÔÓÑ × PostgreSQL ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ OID.
+ ÷ÓÅ ÚÎÁÞÅÎÉÑ OID ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ initdb ÉÍÅÀÔ ÚÎÁÞÅÎÉÑ ÍÅÎØÛÅ
+ 16384 (ÉÚ backend/access/transam.h). ÷ÓÅ ÓÏÚÄÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ OID
+ ÉÍÅÀÔ ÂïÌØÛÉÅ ÚÎÁÞÅÎÉÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, ×ÓÅ ÜÔÉ OID Ñ×ÌÑÀÔÓÑ ÕÎÉËÁÌØÎÙÍÉ
+ ÎÅ ÔÏÌØËÏ ×ÎÕÔÒÉ ËÁËÏÊ-ÌÉÂÏ ÔÁÂÌÉÃÙ ÉÌÉ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÏ É ×ÎÕÔÒÉ ×ÓÅÊ
+ óõâä PostgreSQL.
+
+ PostgreSQL ÉÓÐÏÌØÚÕÅÔ OID × Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃÁÈ ÄÌÑ
+ Ó×ÑÚÉ ÚÁÐÉÓÅÊ É ÔÁÂÌÉÃ. úÎÁÞÅÎÉÑ OID ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ ÄÌÑ
+ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÚÁÄÁÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÚÁÐÉÓÅÊ, Á ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
+ ÐÒÉ Ó×ÑÚÙ×ÁÎÉÑÈ. òÅËÏÍÅÎÄÕÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÉÐ ËÏÌÏÎËÉ OID ÄÌÑ
+ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ OID ÷Ù ÍÏÖÅÔÅ ÓÏÚÄÁÔØ ÉÎÄÅËÓ ÎÁ ÐÏÌÅ OID ÄÌÑ ÂÏÌÅÅ
+ ÂÙÓÔÒÏÇÏ ÄÏÓÔÕÐÁ.
+
+ úÎÁÞÅÎÉÑ OID ÎÁÚÎÁÞÁÀÔÓÑ ÄÌÑ ×ÓÅÈ ÎÏ×ÙÈ ÚÁÐÉÓÅÊ ÉÚ ÃÅÎÔÒÁÌØÎÏÊ
+ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ×ÓÅÍÉ ×ÓÅÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ. åÓÌÉ ×Ù
+ ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ OID ÎÁ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÚÎÁÞÅÎÉÅ ÉÌÉ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ
+ ÓÏÚÄÁÔØ ËÏÐÉÀ ÔÁÂÌÉÃÙ Ó ÔÁËÉÍÉÖÅ OID, ÔÏ ÜÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:
+ 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 ÈÒÁÎÉÔÓÑ ËÁË 4-È ÂÁÊÔÎÏÅ ÃÅÌÏÅ É ÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ ÚÎÁÞÅÎÉÅ × 4
+ ÍÉÌÌÉÁÒÄÁ. ïÄÎÁËÏ, ÅÝÅ ÎÉËÔÏ ÎÅ ÓÏÏÂÝÉÌ Ï ÔÏÍ, ÞÔÏ ÔÁËÏÅ ÐÒÏÉÚÏÛÌÏ, ÎÏ
+ ÍÙ ÐÌÁÎÉÒÕÅÍ ÄÏ ÔÏÇÏ ËÁË ÜÔÏ ÓÌÕÞÉÔØÓÑ ÉÚÂÁ×ÉÔÓÑ ÏÔ ÜÔÏÇÏ ÏÇÒÁÎÉÞÅÎÉÑ.
+
+ TID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó
+ ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. 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://www.comptechnews.com/~reaster/dbdesign.html
+
+ 4.18) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory exhausted in AllocSetAlloc()"?
+
+ åÓÌÉ Õ ×ÁÓ ×ÅÒÓÉÑ ÎÉÖÅ 7.1, ÔÏ ÏÂÎÏ×ÌÅÎÉÅ ×ÅÒÓÉÉ ÍÏÖÅÔ ÒÅÛÉÔØ ÜÔÕ
+ ÐÒÏÂÌÅÍÕ. ôÁËÖÅ ×ÏÚÍÏÖÎÏ, ÞÔÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÌÉ
+ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ.
+ ðÏÐÙÔÁÊÔÅÓØ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ postmaster ×ÙÐÏÌÎÉÔØ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ:
+ ulimit -d 262144
+ limit datasize 256m
+
+ ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ shell, ÔÏÌØËÏ ÏÄÎÁ ÉÚ
+ ÄÁÎÎÙÈ ËÏÍÁÎÄ ×ÙÐÏÌÎÉÔÓÑ ÕÓÐÅÛÎÏ, ÎÏ ÏÎÁ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÕÓÔÁÎÏ×ÉÔØ
+ ÂÏÌØÛÉÊ ÓÅÇÍÅÎÔ ÄÁÎÎÙÈ ÐÒÏÃÅÓÓÁ É ×ÏÚÍÏÖÎÏ ÒÅÛÉÔ ÐÒÏÂÌÅÍÕ. üÔÁ ËÏÍÁÎÄÁ
+ ÉÚÍÅÎÑÅÔ ÐÁÒÁÍÅÔÒÙ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ É ×ÓÅÈ ÅÇÏ ÐÏÔÏÍËÏ×, ÓÏÚÄÁÎÎÙÈ
+ ÐÏÓÌŠţ ÚÁÐÕÓËÁ. åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÁ ÐÒÏÂÌÅÍÁ Ó SQL ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ
+ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ, ÐÏÐÙÔÁÊÔÅÓØ
+ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ.
+
+ 4.19) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL ÚÁÐÕÝÅÎÁ?
+
+ éÚ psql, ÎÁÂÅÒÉÔÅ select version();
+
+ 4.20) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "invalid
+ large obj descriptor"?
+
+ ÷ÁÍ ÎÕÖÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÂÏÌØÛÏÇÏ ÏÂßÅËÔÁ ÐÏÍÅÓÔÉÔØ × ÎÁÞÁÌÅ BEGIN
+ WORK É × ËÏÎÃÅ COMMIT, Á ×ÎÕÔÒÉ ÐÏÌÕÞÉ×ÛÅÇÏÓÑ ÂÌÏËÁ lo_open ...
+ lo_close.
+
+ ÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÐÒÉ ÚÁËÒÙÔÉÉ ÂÏÌØÛÏÇÏ
+ ÏÂßÅËÔÁ ÐÒÏÉÓÈÏÄÉÌÏ ×ÙÐÏÌÎÅÎÉÅ ÔÒÁÎÚÁËÃÉÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÅÒ×ÁÑ ÖÅ
+ ÐÏÐÙÔËÁ ÓÄÅÌÁÔØ ÞÔÏ-ÌÉÂÏ Ó ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ, ÎÅ ÓÏÂÌÀÄÁÑ ÄÁÎÎÏÇÏ
+ ÐÒÁ×ÉÌÁ ÐÒÉ×ÅÄÅÔ Ë ÓÏÏÂÝÅÎÉÀ invalid large obj descriptor, ÔÁË ËÁË ËÏÄ
+ ×ÙÐÏÌÎÑÀÝÉÊ ÒÁÂÏÔÕ ÎÁÄ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × ÎÁÓÔÏÑÝÉÊ
+ ÍÏÍÅÎÔ) ÂÕÄÅÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ
+ ÔÒÁÎÚÁËÃÉÀ.
+
+ åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÁËÏÊ ÉÎÔÅÒÆÅÊÓ ËÌÉÅÎÔÁ ËÁË ODBC, ×ÁÍ ×ÏÚÍÏÖÎÏ
+ ÐÏÎÁÄÏÂÉÔÓÑ ÕÓÔÁÎÏ×ÉÔØ auto-commit off.
+
+ 4.21) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ
+ ×ÒÅÍÑ?
+
+ éÓÐÏÌØÚÕÊÔÅ CURRENT_TIMESTAMP:
+CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
+
+ 4.22) ðÏÞÅÍÕ ÍÏÉ ÐÏÄÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ IN ÔÁË ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÅÀÔ?
+
+ ÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ, ÍÙ Ó×ÑÚÙ×ÁÅÍ ÐÏÚÁÐÒÏÓÙ ÄÌÑ ×ÎÅÛÎÉÈ ÚÁÐÒÏÓÏ× ÞÅÒÅÚ
+ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÒÅÚÕÌØÔÁÔÁ ÐÏÄÚÁÐÒÏÓÁ ÄÌÑ ËÁÖÄÏÊ ÚÁÐÉÓÉ
+ ×ÎÅÛÎÅÇÏ ÚÁÐÒÏÓÁ. ðÏÐÒÏÂÕÊÔÅ ÚÁÍÅÎÉÔØ IN ÎÁ EXISTS:
+SELECT *
+ FROM tab
+ WHERE col1 IN (SELECT col2 FROM TAB2)
+
+ ÎÁ:
+SELECT *
+ FROM tab
+ WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+
+ íÙ ÎÁÄÅÅÍÓÑ ÕÂÒÁÔØ ÜÔÏ ÏÇÒÁÎÉÞÅÎÉÅ × ÂÕÄÕÝÅÍ ×ÙÐÕÓËÅ.
+
+ 4.23) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
+
+ PostgreSQL ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 7.1 ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ,
+ ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:
+ SELECT *
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+
+ or
+ 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 Ó×ÑÚÙ×ÁÎÉÑ.
+
+ ÷ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÑÈ, ×ÎÅÛÎÉÅ Ó×ÑÚÙ×ÁÎÉÑ ÍÏÇÌÉ ÂÙÔØ ÜÍÕÌÉÒÏ×ÁÎÙ
+ ÉÓÐÏÌØÚÕÑ UNION É NOT IN. îÁÐÒÉÍÅÒ, ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ Ó×ÑÚÙ×ÁÎÉÅ tab1 É
+ tab2, ÓÌÅÄÕÀÝÉÊ ÚÁÐÒÏÓ ×ÙÐÏÌÎÑÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ Ä×ÕÈ ÔÁÂÌÉÃ:
+ SELECT tab1.col1, tab2.col2
+ FROM tab1, tab2
+ WHERE tab1.col1 = tab2.col1
+ UNION ALL
+ SELECT tab1.col1, NULL
+ FROM tab1
+ WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
+ ORDER BY col1
+
+ 4.24) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÂÁÚ ÄÁÎÎÙÈ?
+
+ îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ
+ ÔÅËÕÝÅÊ. ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ
+ ÄÌÑ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÅÐÏÎÑÔÎÏ ÄÁÖÅ, ËÁË ÄÏÌÖÅÎ ÓÅÂÑ ×ÅÓÔÉ ÔÁËÏÊ
+ ÍÅÖÂÁÚÏ×ÙÊ ÚÁÐÒÏÓ.
+
+ òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÓÏÅÄÉÅÎÅÎÉÑ Ó
+ ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.
+
+ 4.25) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?
+
+ ÷Ù ÍÏÖÅÔÅ ×ÏÚ×ÒÁÝÁÔØ ÉÚ ÆÕÎËÃÉÊ PL/pgSQL ÓÐÉÓËÉ ÒÅÚÕÌØÔÁÔÏ×, ÉÓÐÏÌØÚÕÑ
+ refcursors. óÍÏÔÒÉÔÅ
+ http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,
+ ÓÅËÃÉÀ 23.7.3.3.
+ _________________________________________________________________
+
+ òÁÓÛÉÒÅÎÉÑ PostgreSQL
+
+ 5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ ×
+ psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ dump core?
+
+ ðÒÏÂÌÅÍÁ ÍÏÖÅÔ ÚÁËÌÀÞÁÔØÓÑ × ÎÅÓËÏÌØËÉÈ ×ÅÝÁÈ. ðÏÐÙÔÁÊÔÅÓØ ÓÐÅÒ×Á
+ ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ×ÁÛÕ ÆÕÎËÃÉÀ × ÏÔÄÅÌØÎÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ.
+
+ 5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ ÔÉÐÙ É ÆÕÎËÃÉÉ ×
+ PostgreSQL?
+
+ ïÔÐÒÁרÔÅ ×ÁÛÉ ÒÁÓÛÉÒÅÎÉÑ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ pgsql-hackers É ÏÎÉ ÐÏ
+ ×ÏÚÍÏÖÎÏÓÔÉ ÂÕÄÕÔ ÐÏÍÅÝÅÎÙ × ÐÏÄËÁÔÁÌÏÇ contrib/.
+
+ 5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ ÚÁÐÉÓØ?
+
+ üÔÏ ÔÒÅÂÕÅÔ ÎÅËÏÅÇÏ ÛÁÍÁÎÓÔ×Á ÔÁË ËÁË Á×ÔÏÒÙ ÎÉËÏÇÄÁ ÎÅ ÐÒÏÂÏ×ÁÌÉ
+ ÄÅÌÁÔØ ÜÔÏ, ÈÏÔÑ × ÐÒÉÎÉÃÐÅ ÜÔÏ ×ÏÚÍÏÖÎÏ.
+
+ 5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ
+ ÉÚÍÅÎÅÎÉÊ?
+
+ æÁÊÌÙ Makefile ÎÅ ÉÍÅÀÔ ÐÒÁ×ÉÌØÎÙÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÄÌÑ include ÆÁÊÌÏ×. ÷Ù
+ ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ make clean É ÚÁÔÅÍ make. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ GCC ×Ù
+ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ --enable-depend × configure ÞÔÏÂÙ ÐÏÒÕÞÉÔØ
+ ËÏÍÐÉÌÑÔÏÒÕ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ.