Add Japanese FAQ>
authorBruce Momjian
Thu, 8 Mar 2001 17:00:28 +0000 (17:00 +0000)
committerBruce Momjian
Thu, 8 Mar 2001 17:00:28 +0000 (17:00 +0000)
doc/FAQ_japanese [new file with mode: 0644]
doc/src/FAQ/FAQ_japanese.html [new file with mode: 0644]

diff --git a/doc/FAQ_japanese b/doc/FAQ_japanese
new file mode 100644 (file)
index 0000000..94766e0
--- /dev/null
@@ -0,0 +1,1218 @@
+
+
+PostgreSQL FAQ in Japanese
+
+
+
+

+PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥­¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä(FAQ)
+

+¸¶Ê¸ºÇ½ª¹¹¿·Æü:        Tue Oct 17 00:21:20 EDT 2000
+           (¥Õ¥¡¥¤¥ëÆüÉդϠ03/02/2001)
+

+¸½ºß¤Î°Ý»ý´ÉÍý¼Ô:  Bruce Momjian (
+

+¤³¤Îʸ½ñ¤ÎºÇ¿·ÈǤÏ
+http://www.PostgreSQL.org/
+¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+

+
+¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃÍ­¤Î¼ÁÌä¤Ë¤Ä¤¤¤Æ¤Ï:
+ HREF="http://www.PostgreSQL.org/docs/">http://www.PostgreSQL.org/users-lounge/docs/faq.html
+
¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
+

+
+

+
+[ÌõÃí¡§
+   (°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ­¤·¤Þ¤¹¡£)
+
+     http://www.PostgreSQL.org/ ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È http://postgresql.nucba.ac.jp/
+¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¡¢"Not Found" ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç¤Ï¡¢
+       http://www.PostgreSQL.org/index.html
+   ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
+
+
+ÆüËܸìÈǤˤĤ¤¤Æ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+
+ºÇ½ª¹¹¿·Æü:    2001ǯ03·î03Æü
+Ìõ¼Ô:      ·¬Â¼ ½á (Jun Kuwamura <[email protected]>)
+
+ ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿°Ê²¼¤ÎÊý¡¹¤ò¤Ï¤¸¤á¡¢
+
+       ÅÄÃç Ì­¤µ¤ó(Minoru Tanaka <[email protected]>)
+       Àаæ Ã£Éפµ¤ó(Tatsuo Ishii <[email protected]>)
+       óîÆ£ Ãοͤµ¤ó(Tomohito Saitoh <[email protected]>)
+       ÇϾ젠ȥ¤µ¤ó(Hajime Baba <[email protected]>)
+       ²¬ËÜ °ì¹¬¤µ¤ó(Kazuyuki Okamoto <[email protected]>)
+       ¾®¿û ¾¼°ì¤µ¤ó(Shoichi Kosuge <[email protected]>)
+       »³²¼ µÁÇ·¤µ¤ó(Yoshiyuki Yamashita <[email protected]>)
+       ¶­ ¿¿ÂÀϺ¤µ¤ó(Sintaro Sakai <[email protected]>)
+       À¸±Û ¾»¸Ê¤µ¤ó(Masami Ogoshi <[email protected]>)
+       ÀÐÀî ½Ó¹Ô¤µ¤ó(Toshiyuki Ishikawa <[email protected]>)
+       ËÜÅÄ Ìй­¤µ¤ó(Shigehiro Honda <[email protected]>)
+
+
+¥Ý¥¹¥È¥°¥ì¥¹¤Ë´Ø¤¹¤ëÏÃÂêË­ÉÙ¤ÊÆüËܸì¥Ý¥¹¥È¥°¥ì¥¹¡¦¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¡¢
+ÏÂÌõ¤Î¤­¤Ã¤«¤±¤òºî¤Ã¤Æ¤¯¤ì¤¿ JF(Linux Japanese FAQ Mailing List)¥×¥í¥¸¥§¥¯¥È¡¢
+¤½¤Î¾¡¢Ä¾Àܤ¢¤ë¤¤¤Ï´ÖÀÜŪ¤Ë¤«¤«¤ï¤Ã¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹
+¥³¥ß¥å¥Ë¥Æ¥£¡¼¤Î³§¤µ¤ó¤Ë´¶¼Õ¤·¤Þ¤¹¡£
+
+  ÆüËܸìÈǤΤ³¤Îʸ½ñ¤Ï
+   http://www.jp.postgresql.org/
+   http://www.rccm.co.jp/~juk/pgsql/
+   http://www.sra.co.jp/people/t-ishii/PostgreSQL/
+   http://www.linux.or.jp/JF/
+¤«¤é¤â¤¿¤É¤ì¤Þ¤¹¡£
+
+¤Ê¤ª¡¢¤³¤ÎÏÂÌõ¤Ë´Ø¤¹¤ë¤´°Õ¸«¤Ï([email protected])¤Þ¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
+]
+
+
+

+
+

+
+

 °ìÈÌŪ¤Ê¼ÁÌä

+
+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¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
+
+
+

¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä

+
+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)    Â¾¤Î¥Û¥¹¥È¤«¤é¼«Ê¬¤ÎPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤òËɤ°¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+3.6)    ¤Ê¤¼¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+3.7)    ¤è¤êÎɤ¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹¤«¡©
+3.8)    ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
+3.9)    Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+3.10)  ¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë pg_sorttemp.XXX ¥Õ¥¡¥¤¥ë¤Ï²¿¤Ç¤¹¤«¡©
+
+
+

Áàºî¾å¤Î¼ÁÌä

+
+4.1)    ¤Ê¤¼¡¢¥·¥¹¥Æ¥à¤Ï¥«¥ó¥Þ¤ä¾®¿ôÅÀ¤äÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤Çº®Í𤹤ë¤Î¤Ç¤¹¤«¡©
+4.2)    ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾ï¤Î¥«¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+4.3)    ºÇ½é¤Î¿ô¹Ô¤Î¤ß¤ò select ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+4.4)    ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+4.5)    ¥Æ¡¼¥Ö¥ë¤«¤é¤ÎÎó¤Îºï½ü¤Ï¤É¤Î¤è¤¦¤Ë¤·¤Þ¤¹¤«¡©
+4.6)    ¹Ô¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
+4.7)    °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢
+¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¤«¡©
+4.8)    ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ËÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¤ä¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¤É¤Î¤è¤¦¤Ë¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
+4.9)    Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«¡©
+4.10) Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+4.11) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
+4.12) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
+4.13) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«¡©
+4.14) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+4.15) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+4.16.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+4.16.2) SERIAL¥¤¥ó¥µ¡¼¥È¤ÎÃͤϤɤ¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
+4.16.3) Â¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï¡¢currval() ¤È nextval() ¤Ï»È¤ï¤Ê¤¤¤Û¤¦¤¬¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+4.17) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
+4.18) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
+4.19) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+4.20) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+4.21) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj descriptor¤È½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+4.22) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤ÊÎó¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+4.23) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
+4.24) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
+
+

PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä

+
+5.1)    ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+5.2)    PostgreSQL ÍѤ˽ñ¤¤¤¿¿è¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤Ï¡¢¤É¤¦¤¹¤ì¤Ð´ó£¤Ç¤­¤Þ¤¹¤«¡©
+5.3)    ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©
+5.4)    ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+

+
+

°ìÈÌŪ¤Ê¼ÁÌä

+

+
+

1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡©

+
+

PostgreSQL ¤Ï POSTGRES ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǡ¢¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¹¡£PostgreSQL ¤Ï POSTGRES ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈË­É٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)¤òÆâÊñ¤·¤Ä¤Ä¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤­´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ­¤Þ¤¹¡£

+
+

PostgreSQL ¤Î¤¹¤Ù¤Æ¤Î³«È¯¤Ï¡¢PostgreSQL ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¾å¤Î³«È¯¼Ô¥Á¡¼¥à¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸½ºß¤ÎºÂĹ¤Ï Marc G. Fournier ( [email protected] )¤Ç¤¹¡£(°Ê²¼¤Ë»²²Ã¤Î»ÅÊý¤¬¤¢¤ê¤Þ¤¹¡£)¸½ºß¡¢¤³¤Î¥Á¡¼¥à¤¬ PostgreSQL³«È¯¤Î¤¹¤Ù¤Æ¤Î ÌÌÅݤò¸«¤Þ¤¹¡£

+
+

PostgreSQL 1.01 ¤ÎÃø¼Ô¤Ï Andrew Yu ¤È Jolly Chen ¤Ç¤·¤¿¡£¤½¤Î¾ÂçÀª¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢²þÎɤ˹׸¥¤·¤Þ¤·¤¿¡£PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë POSTGRES ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤¤Æ¡¢ Michael Stonebraker ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢¿¦¶È¥×¥í¥°¥é¥Þ¤¿¤Á¤ÎÅØÎϤˤè¤êºî¤é¤ì¤Þ¤·¤¿¡£

+
+

¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres ¤Ç¤·¤¿¡£SQL ¤Îµ¡Ç½¤¬Äɲ䵤줿 1995 Ç¯¤Ë¤½¤Î̾Á°¤Ï Postgres95 ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£1996 Ç¯¤Î½ª¤ê¤Ë¤½¤Î̾Á°¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£

+
+Post-Gres-Q-L.(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥­¥å¡¼ - ¥¨¥ë) ¤Èȯ²»¤·¤Þ¤¹¡£
+
+

+

1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©

+
+

 PostgreSQL ¤Ï²¼µ­¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£

+
+    [ÌõÃí¡§
+        ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ­·ÇºÜ¤·¤Þ¤¹¡£
+    ]
+
+

+PostgreSQL Data Base Management System

+
+Portions copyright (c) 1996-2000, 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-2001, PostgreSQL¹ñºÝ³«È¯¥Á¡¼¥à
+   ÉôÊ¬Ãøºî¸¢ (c) 1994-6 ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³ØËܹ»
+
+   ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤È¤½¤Îʸ½ñ¤ò¡¢Ç¡²¿¤Ê¤ëÌÜŪ¤Ç¤â¡¢ÌµÎÁ¤Ç¡¢»ÈÍѵöÂú½ñ̵¤·¤Ë¡¢
+   »ÈÍÑ¡¢Ê£¼Ì¡¢½¤Àµ¡¢¤½¤·¤Æ¡¢ÇÛÉÛ¤¹¤ë¤³¤È¤Ø¤Îµö²Ä¤ò¡¢¾åµ­¤ÎÃøºî¸¢É½¼¨¡¢¤³¤ÎÃÊ
+   Íî¡¢¤ª¤è¤Ó¡¢¤³¤ì¤Ë³¤¯Æó¤Ä¤ÎÃÊÍ¡¢¤¹¤Ù¤Æ¤ÎÊ£¼Ì¤ËźÉÕ¤µ¤ì¤ë¸Â¤ê¤Ë¤ª¤¤¤Æ¡¢
+   ¤³¤³¤Ë¤½¤ì¤òǧ¤á¤Þ¤¹¡¥
+
+   ¤¿¤È¤¨¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤¬°Ê²¼¤Î¤è¤¦¤Ê»³²¤Î²ÄǽÀ­¤Ë¤Ä¤¤¤Æ¸ÀµÚ¤·¤Æ¤¤¤¿
+   ¤È¤·¤Æ¤â¡¥¤³¤Î¥½¥Õ¥È¥¦¥§¥¢µÚ¤Óʸ½ñ¤Î»ÈÍѾ塤ľÀÜŪ¡¦´ÖÀÜŪ¡¦ÆÃÊÌ¡¦¶öÁ³
+   ¤â¤·¤¯¤ÏɬÁ³Åª¤Ë¡¤À¸¤¸¤¿¼º¤ï¤ì¤¿Íø±×¤ò´Þ¤à»³²¤Ë±÷¤¤¤Æ¡¤¤¤¤º¤ì¤ÎÅö»ö¼Ô
+   ¤ËÂФ·¤Æ¤â¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï°ìÀÚ¤ÎÀÕǤ¤òÉ餤¤Þ¤»¤ó¡¥
+
+   ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¡¤ÆÃÄêÌÜŪ¤Î¤¿¤á¤Î¾¦ÍÑÀ­µÚ¤ÓŬ¹çÀ­¤Î°ÅÌÛ¤ÎÊݾڤò´Þ
+   ¤à¡¤¤·¤«¤·¤½¤ì¤Ë¸ÂÄꤵ¤ì¤ë¤³¤È¤Î¤Ê¤¤¡¤¤¤¤«¤Ê¤ëÊݾڤâÌÀ³Î¤ËÊü´þ¤·¤Þ¤¹¡¥
+   ¤³¤³¤Ë¤ª¤¤¤ÆÍѰդµ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ï¡Ö¤¢¤ë¤¬¤Þ¤Þ¡×¤È¤¤¤¦¤³¤È¤òÁ°Äó¤È¤·¡¤
+   ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï°Ý»ý¡¦Êä½õ¡¦¹¹¿·¡¦²þÎÉ¡¦½¤Àµ¤òÍѰդ¹¤ëµÁ̳¤òÉ餤¤Þ
+   ¤»¤ó¡¥
+    ]
+
+
+

+

1.3) PostgreSQL ¤Îưºî´Ä¶­¤Ï¡©

+
+

Ãø¼Ô¤é¤Ï PostgreSQL ¤Î¥³¥ó¥Ñ¥¤¥ë¤È¥Æ¥¹¥È¤ò¼¡¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤Ç¹Ô¤Ê¤¤¤Þ¤·¤¿¡£(¤³¤ì¤é¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ë gcc ¤¬É¬ÍפǤ¹)¡§

+

°ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ê¤é¤ÐPostgreSQL¤ò¤Ï¤·¤é¤»¤é¤ì¤ë¤Ï¤º¤Ç¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£

+
+

+

1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©

+
+
+¥¯¥é¥¤¥¢¥ó¥È
+

 MS Windows ¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤Ç¡¢libpq C ¥é¥¤¥Ö¥é¥ê¡¢psql¡¢¤½¤ì¤È¤½¤Î¾¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï ¥³¥ó¥Ñ¥¤¥ë²Äǽ¤Ç¡¢¥Ð¥¤¥Ê¥ê¡¼¤¬Áö¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò MS Windows ¾å¤ÇÁö¤é¤»¤Æ¡¢TCP/IP ·Ðͳ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë Unix ¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤ÇÁö¤ë¥µ¡¼¥Ð¤ÈÄÌ¿®¤·¤Þ¤¹¡£

+

 Win32 libpq ¥é¥¤¥Ö¥é¥ê¤È psql ¤òºî¤ë¤¿¤á¤Ë¡¢win31.mak ¤¬ÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤Þ¤¹¡£PostgreSQL¤Ï ODBC ¥¯¥é¥¤¥¢¥ó¥È¤È¤âÄÌ¿®¤Ç¤­¤Þ¤¹¡£

+
+
+¥µ¡¼¥Ð
+

 ¸½ºß¡¢Cygnus Unix/NT °Ü¿¢¥é¥¤¥Ö¥é¥ê¤Î Cygwin ¤ò»È¤Ã¤Æ¡¢PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥µ¡¼¥Ð¤Ï Windows NT ¤È Win2k ¾å¤Ç²ÔƯ¤·¤Æ¤¤¤Þ¤¹¡£ÇÛÉۤ˴ޤޤì¤ëpgsql/doc/FAQ_MSWIN¤¢¤ë¤¤¤Ï¥¦¥§¥Ö¥µ¥¤¥È¤Ë¤¢¤ë MS Windows FAQ ¤ò¤´Í÷²¼¤µ¤¤¡£Microsoft ¤ÎÁǤΥץé¥Ã¥È¥Û¡¼¥à¤Ë°Ü¿¢¤¹¤ë·×²è¤Ï¤¢¤ê¤Þ¤»¤ó¡£

+
+
+

+

1.5) PostgreSQL ¤Ï¤É¤³¤«¤é¼ê¤ËÆþ¤ê¤Þ¤¹¤«¡©

+

 PostgreSQL ¤Î¸µ¤Î anonymous ftp ¥µ¥¤¥È¤Ç¤¹¡§

+
+
    +   
  •     ftp://ftp.PostgreSQL.org/pub/
  • +
    +
    +

     ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£

    +
    +
    +    [ÌõÃí:
    +
    +   °Ê²¼¤ÏÆüËܤΥߥ顼¥µ¥¤¥È¤Ç¤¹:
    +
    +       Japan: ftp://mirror.nucba.ac.jp/mirror/postgresql/pub/
    +       Japan: ftp://ring.ip-kyoto.ad.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.crl.go.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.saitama-u.ac.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.astem.or.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.exp.fujixerox.co.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.jah.ne.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.etl.go.jp.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.asahi-net.or.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.so-net.ne.jp/pub/misc/db/postgresql/
    +       Japan: ftp://ring.aist.go.jp/pub/misc/db/postgresql/
    +    ]
    +
    +
    +

    +
    +

    1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©

    +
    +

     ¼çÍפʥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï: [email protected]¤Ç¤¹¡£PostgreSQL ¤Ë´Ø¤¹¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Î¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject ¹Ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢

    +
    +
    +   subscribe
    +   end
    +
    +
    +

     [email protected] ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

    +
    +

     ¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤Ë¡§

    +
    +
    +   subscribe
    +   end
    +
    +
    +¤È½ñ¤¤¤Æ  [email protected] ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
    +
    +

     ¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤¬¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸ 30k ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£

    +
    +

     ¥Ð¥°¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤È¤¤¤Ã¤·¤ç¤Ë¡§

    +
    +
    +¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
    +
    +

     ³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥ᡼¥ë¤ÎËÜʸ¤Ë¡§

    +
    +

    +
    +   subscribe
    +   end
    +
    +
    +

     ¤È½ñ¤¤¤Æ¡¢[email protected]¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

    +
    +

     PostgreSQL ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤±¤ì¤Ð¡¢¼¡¤Î postgreSQL WWW¥Û¡¼¥à¥Ú¡¼¥¸¤«¤é¤¿¤É¤ì¤Þ¤¹¡§

    +
    +
    +       http://www.PostgreSQL.org
    +
    +

    +
    +IRC ¥Á¥ã¥ó¥Í¥ë¤â EFNet ¤Ë¤¢¤ê¤Þ¤¹¡£¤½¤Î¥Á¥ã¥ó¥Í¥ë¤Ï #PostgreSQL ¤Ç¤¹¡£
    +unix ¥³¥Þ¥ó¥É¤Çirc -c '#PostgreSQL' "$USER" irc.phoenix.net
    +¤ò»È¤¤¤Þ¤¹¡£

    +
    +
    +    [ÌõÃí:
    +     1999ǯ7·î23Æü¡¢ÆüËÜPostgreSQL¥æ¡¼¥¶¡¼²ñ(¤Ë¤Û¤ó ¤Ý¤¹¤È¤°¤ì¤¹ ¤æ¡¼¤¶¡¼ ¤«¤¤)¡¢Î¬¾ÎJPUG¤¬ÀßΩ¤µ¤ì¤Þ¤·¤¿¡£
    +   JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤Ç¤¹¡£
    +   Àµ²ñ°÷¤Î²ñÈñ¤Ï̵ÎÁ¤Ç¤¹¤¬¡¢²ñ°÷¤ÎÀѶËŪ¤Ê¹×¸¥¤¬²ñ¤Î±¿±Ä¤ò½õ¤±¤Æ¤¤¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢JPUG¤ÎWeb ¥µ¥¤¥È:
    +       http://www.jp.postgresql.org/
    +   ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£²ñ°÷ÅÐÏ¿¤â²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
    +     1990ǯÂåÃæ¤´¤í¤è¤ê¡¢¥Ý¥¹¥È¥°¥ì¥¹¤ÎÆüËܸì¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤òÀаæ Ã£Éפµ¤ó¤¬¼çºÅ¤·¤Æ¤¤¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢
    +       http://www.sra.co.jp/people/t-ishii/PostgreSQL/ML/info.html
    +   ¤ò¤´Í÷²¼¤µ¤¤¡£¥¢¡¼¥«¥¤¥Ö¤ò¡¢¤¤¤ï¤­¤ê¤µ¤ó¤Îpgsql-jp ML¸¡º÷¥·¥¹¥Æ¥à
    +       http://datula.mio.org/~iwakiri/pgsql_jp/
    +   ¤Ç¸¡º÷¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
    +   ]
    +
    +
    +
    +

    ¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://www.postgresql.org/users-lounge/commercial-support.html¤Ë¤¢¤ê¤Þ¤¹¡£

    +
    +
    +    [ÌõÃí:
    +    ÆüËܤǤϡ¢SRA Inc. ¥ª¡¼¥×¥ó¥·¥¹¥Æ¥à»ö¶ÈÉô ¤Ë¤Æ¾¦ÍÑ¥µ¥Ý¡¼¥È¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
    +   ¥ß¥é¥¯¥ë¡¦¥ê¥Ê¥Ã¥¯¥¹³ô¼°²ñ¼Ò ¤Ç "Miracle Linux for PostgreSQL" ¤ÎÈÎÇä¤È¥µ¥Ý¡¼¥È¤¬
    +   ³«»Ï¤µ¤ì¤Þ¤·¤¿¡£
    +    ]
    +
    +
    +

    +
    +

    1.7) ºÇ¿·ÈǤϲ¿¤Ç¤¹¤«

    +
    +

     PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.0.3 ¤Ç¤¹¡£

    +

    +²æ¡¹¤Ï¡¢4¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
    +

    +
    +

    1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©

    +
    +

     ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸)¤ª¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿¡¢¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¡¢

    +HREF="http://www.PostgreSQL.org/users-lounge/docs/">
    +http://www.PostgreSQL.org/users-lounge/docs/
    +¤Ç¤â±ÜÍ÷¤Ç¤­¤Þ¤¹¡£
    +
    +

      PostgreSQL ¤ÎËܤ⤢¤ê¤Þ¤¹¡£ 

    +HREF="http://www.PostgreSQL.org/docs/awbook.html">
    +http://www.PostgreSQL.org/docs/awbook.html

    +
    +
    +    [ÌõÃí:
    +   ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤ÎPostgreSQL BookËÝÌõʬ²Ê²ñ¤Ç¡¢
    +   ËÝÌõºî¶È¤¬¿Ê¹ÔÃæ¡£
    +    ]
    +
    +
    +

     psql ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£

    +
    +

     ²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£

    +
    +

    +

    1.9) ´ûÃΤΥХ°¤ä̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©

    +

    +
    +PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
    +²æ¡¹¤Î¥Ú¡¼¥¸¤Î
    +
    +TODO ¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾­Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£
    +
    +

     

    +

    1.10)   SQL ¤Ï¤É¤Î¤è¤¦¤Ë³Ø¤Ù¤ÐÎɤ¤¤Ç¤¹¤«¡©

    +

    +
    +http://www.PostgreSQL.org/docs/awbook.html
    +¤Ë¤¢¤ëPostgreSQLËܤǠSQL ¤ò¶µ¤¨¤Æ¤¤¤Þ¤¹¡£
    +
    +

    +ÁÇÀ²¤é¤·¤¤³Ø½¬½ñ¤Ë¤Ï¡¢
    +
    +http://w3.one.net/~jhoffman/sqltut.htm ¤È
    +
    +http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM.

    +¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾¤Ë¡¢
    +"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
    +   ¤¬¤¢¤ê¤Þ¤¹¡£
    +    ¶áƣľʸ»á¤Î¡Ö½é¿´¼Ô¸þ¤Î£Ä£ÂÀ߷ׯþÌ硦£Ó£Ñ£ÌÆþÌ绲¹Í½ñ¾Ò²ð¡×¤Î¥³¡¼¥Ê¡¼
    +       http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html
    +   ¤¬¤¢¤ê¤Þ¤¹¡£
    +    ËÙÅÄÎѱѻá¤Î¡Ö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)   ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©

    +
    +
    +

    "bug-template" ¥Õ¥¡¥¤¥ë¤Î¹àÌܤòËþ¤¿¤·¤Æ¡¢[email protected]¤ËÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

    +
    +

     ¤½¤ÎÁ°¤Ë http://postgreSQL.org¤Ë¤¢¤ëºÇ¿·¤Î FAQ ¤ò¥Á¥§¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£

    +
    +

     ¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È ftp://ftp.postgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

    +
    +

    +

    1.14)   Â¾¤ÎDBMS¤Î¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©

    +

    +
    +¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀ­Ç½¤È¿®ÍêÀ­¤È¥µ¥Ý¡¼¥È¤È²Á³Ê¤Ç¤¹¡£
    +
    +
    +
     µ¡Ç½(Features)
    +
    +
    +PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¤ä¥È¥ê¥¬¡¼¤ä¥Ó¥å¡¼¤ä³°Éô¥­¡¼
    +»²¾È¤ä¡¢¤½¤·¤Æ¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç½¤ò¤Û
    +¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£PostgreSQL¤Ï¡¢¤µ¤é¤Ë¡¢¥æ¡¼¥¶ÄêµÁ·¿¤ä·Ñ¾µ¤ä¥Þ¥ë¥Á-
    +¥Ð¡¼¥¸¥ç¥ó¡¦¥³¥ó¥Æ¥ó¥·¥ç¥ó¤Ê¤É¡¢¾¦ÍÑDBMS¤¬»ý¤Á¹ç¤ï¤»¤Ê¤¤µ¡Ç½¤ò¤¤¤¯¤Ä¤«
    +»ý¤Á¹ç¤ï¤»¤Æ¤¤¤Þ¤¹¡£³°Éô¥­¡¼¤Î»²¾ÈÀ°¹çÀ­(foreign key referential
    +integrity)¤ä¥í¥Ã¥¯¡¦¥³¥ó¥Æ¥ó¥·¥ç¥ó¤ò¸º¤é¤¹¤¿¤á¤Î³°Éô¶¥¹ç¾õÂÖÀ©¸æ
    +(outer concurrency control)¤Ï»ý¤Á¹ç¤ï¤»¤Þ¤»¤ó¡£
    +
    +

    +
    +
     À­Ç½(Performance)
    +
    +
    +PostgreSQL¤ÏÆó¤Ä¤Î¥â¡¼¥É¤ÇÁö¤ê¤Þ¤¹¡£ÉáÄ̤Îfsync¥â¡¼¥É¤Ï¡¢OS¤¬¥¯
    +¥é¥Ã¥·¥å¤·¤¿¤ê¡¢¿ôÉøå¤ËÅŸ»¤¬Íî¤Á¤¿¤ê¤·¤¿¤È¤­¤Î¤¿¤á¤Ë¡¢¥È¥é¥ó¥¶¥¯¥·¥ç
    +¥ó¤¬´°Î»¤¹¤ëËè¤Ë¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¡¢¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤ËÊݸ¤·¤Þ
    +¤¹¡£¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢¤Û¤È¤ó¤É¤Î¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤è¤ê¤âÃÙ¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½
    +¤ÎÉôʬŪ¤ÊÍýͳ¤È¤·¤Æ¡¢¾¦ÍѤΥǡ¼¥¿¥Ù¡¼¥¹¤ÎÃæ¤Ë¤Ï¤³¤Î¤è¤¦¤ËÊݼéŪ¤Ê¥Ç¥£
    +¥¹¥¯½ñ¤­¹þ¤ß¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ¤¤¤ë¤â¤Î¤¬¾¯¤Ê¤¤¤È¤¤¤¦¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
    +no-fsync¥â¡¼¥É¤Ç¡¢ÉáÄÌ¡¢PostgreSQL¤Ï¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤è¤ê¤â®¤¯
    +¤Ê¤ê¤Þ¤¹¤¬¡¢¤·¤«¤·¤Ê¤¬¤é¡¢OS¤Î¥¯¥é¥Ã¥·¥å¤Ç¥Ç¡¼¥¿¤¬Ç˲õ¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ
    +¤»¤ó¡£²æ¡¹¤Ï¡¢¤½¤ÎÃæ´Ö¥â¡¼¥É¤ò³«È¯Ãæ¤Ç¡¢¤½¤ì¤¬¤¦¤Þ¤¯¤æ¤¯¤È¡¢´°Á´fsync
    +¥â¡¼¥É¤Û¤ÉÀ­Ç½¤òµ¾À·¤Ë¤¹¤ë¤³¤È¤Ê¤¯¡¢OS¤¬¥¯¥é¥Ã¥·¥å¤¹¤ë30ÉÃÁ°¤Þ¤Ç¤Î¥Ç¡¼
    +¥¿À°¹çÀ­¤òÊݤƤë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
    +

    +
    +MySQL¤Ê¤É¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢PostgreSQL¤ÎÁÞÆþ¡¿
    +¹¹¿·¤¬ÃÙ¤¤¤Î¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¤è¤ë¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£¤â
    +¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ­¤ÎFeatures¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Þ¤Ã¤¿¤¯¤¢
    +¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢PostgreSQL¤Ë½ÀÆðÀ­¤Èµ¡Ç½À­¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤º¡¢
    +¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ë³Ý¤±¤¿¤ê¥½¡¼¥¹¥³¡¼¥É¤ò²òÀϤ·¤¿¤ê¤·¤Æ¡¢À­Ç½¤Î²þÁ±¤ò³¤±
    +¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤È MySQL ¤È¤òÈæ³Ó¤·¤Æ¤¤¤ëÌÌÇò¤¤ Web ¥Ú¡¼¥¸¤¬
    +
    +http://openacs.org/why-not-mysql.html
    +¤Ë¤¢¤ê¤Þ¤¹¡£
    +

    +
    +PostgreSQL¤Ï¡¢Unix¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤ê¥æ¡¼¥¶¡¼Àܳ¤òÁàºî¤·¤Þ¤¹¡£
    +Ê£¿ô¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬¾ðÊó¤ò¥í¥Ã¥¯¤·¤Ê¤¬¤é¥Ç¡¼¥¿¡¦¥Ð¥Ã¥Õ¥¡¡¼¤ò
    +¶¦Í­¤·¤Þ¤¹¡£¥Þ¥ë¥ÁCPU¤Ç¤Ï¡¢´Êñ¤ËÊ£¿ô¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¤½¤ì¤¾¤ì¤ÎCPU¤ÇÁö
    +¤é¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    +
    +
    +
     ¿®ÍêÀ­(Reliability)
    +
    +
    +²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ­¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½
    +ʬ¥Æ¥¹¥È¤·¤Æ¡¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤Ë¶Ð
    +¤á¤Æ¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô
    +¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥ê¡¼¥¹¤Ç
    +¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈÈæ¤Ù¤Æ¤â½¿§
    +¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
    +
    +
     ¥µ¥Ý¡¼¥È(Support)
    +
    +
    +²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤É¤ó¤ÊÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤ò½õ¤±¤Æ¤¯¤ì
    +¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎËÄÂç¤Ê¥°¥ë¡¼¥×¤òÍʤ·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê¤Î²ò·è¤òÊÝ
    +¾Ú¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì¤ë¤ï¤±
    +¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£³«È¯¼Ôã¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë¡¢
    +¥½¡¼¥¹¥³¡¼¥É¤Ê¤É¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤È¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï¡¢
    +¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè
    +¤Î¾¦ÍÑ¥µ¥Ý¡¼¥È¤â¤¢¤ê¤Þ¤¹¡Ê¥µ¥Ý¡¼¥ÈFAQ¹àÌܤò¤´Í÷²¼¤µ¤¤¡Ë¡£
    +
    +
     ²Á³Ê(Price)
    +
    +
    +PostgreSQL¤Î»ÈÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ­¤Ë¼¨¤·¤Æ¤¢
    +¤ëBSD¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³¡¼¥É¤òÀ©¸Â̵¤·¤Ç
    +¾¦ÉʤËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
    +

    +
    +

    +
    +

    ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä

    +

    +
    +

    2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©

    +
    +
    +

     PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£

    +
    +

     PsqlODBC ¤Ï PostgreSQL ¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ë¤Ä¤¤¤Æ¤Î¤µ¤é¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ï 

    +ftp://ftp.PostgreSQL.org/pub/odbc/
    +¤«¤é¼èÆÀ¤Ç¤­¤Þ¤¹¡£

    +
    +
    +    [ÌõÃí:
    +   PsqlODBC ¤Î ÆüËܸì¥Ñ¥Ã¥Á¤òÊÒ²¬ÍµÀ¸¤µ¤ó([email protected])¤¬ºî¤é¤ì¤Þ¤·¤¿:
    +   ¡ühttp://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/index.html
    +    ]
    +
    +
    +

     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.webtools.com ¤Ë¤¢¤ê¤Þ¤¹¡£
    +

    http://www.phone.net/home/mwm/hotlist/¤Ë¤â¡¢¤â¤¦°ì¤Ä¤¢¤ê¤Þ¤¹¡£

    +

     Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://www.php.net/¤Ë¤¢¤ê¤Þ¤¹¡£

    +
    +
    +    [ÌõÃí:
    +     PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ­¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
    +       http://www.php.gr.jp/
    +   ¤¢¤ë¤¤¤Ï¡¢×¢Àî Îव¤ó¤Î¥µ¥¤¥È
    +       http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
    +   ¤Ë¤«¤Ê¤ê¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
    +     Á°ÅÄ ½¼¹¨¤µ¤ó¤Ë¤è¤êºî¤é¤ì¤¿PHP/FI¤ÎÆüËܸì¥Ñ¥Ã¥Á¤¬ÍÍ¡¹¤Ê¿Í¤Î¼ê¤ò·Ð¤ÆPHP3.0.7¤ËŬÍѤµ¤ì¤Þ¤·¤¿¡£
    +   ¸½ºß¤ÏPHPJ-DEV¤Ë¤Æ¡¢
    +       http://php.jpnnet.com/
    +   º´Æ£¤µ¤ó¤òÃæ¿´¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È³ÈÄ¥¤È¤·¤Æºî¤êľ¤µ¤ì¡¢ºÇ¿·ÈǤÏPHP-3.0.18¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
    +     ÄÍÅÄ ÂîÌ餵¤ó¤Ï¡¢PHP4 ÍÑ¤ÎÆüËÜ¸ì´Ø·¸¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë
    +       ftp://night.fminn.nagano.nagano.jp/php4/
    +   ¤òÍѰդ·¤Æ²¼¤µ¤Ã¤Æ¤Þ¤¹¡£
    +     ËܲȤÎÊý¤Ç¹ñºÝ²½¤ÎML¤âΩ¤Á¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹¡£
    +    ]
    +
    +
    +

     Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È CGI.pm ¤ò»È¤¤¤Þ¤¹¡£

    +
    +

     Perl ¤ò»È¤Ã¤¿ WDB ¤ò´ð¤Ë¤·¤¿ WWW ¥²¡¼¥È¥¦¥§¥¤¤Ïhttp://www.eol.ists.ca/~dunlop/wdb-p95¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£

    +
    +
    +    [ÌõÃí:
    +   WDB ¤Ï¡¢Web ¤«¤é DataBase ¤Ø¤Î Perl ¤Î Interface ¤Ç¤¹¡£
    +   wdb-p95 ¤Ø¤Î¥ê¥ó¥¯¤ÏÀÚ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£¤ª¤½¤é¤¯¡¢Perl DBI ·Ðͳ¤Ç DBD::Pg ¤ÎÍøÍѤ¬²Äǽ¤È»×¤ï¤ì¤Þ¤¹¡£
    +   ¸½ºß¡¢WDBI ¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î
    +       http://www.egroups.com/list/wdb-users/
    +   ¤È¡¢WDB¤Î̾Á°¤Î¤Þ¤Þ¤Î¤â¤Î
    +       http://www.i-con.dk/wdb/
    +   ¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î·Ð°Þ¤Ï¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£
    +    ]
    +
    +
    +

    +

    2.3) PostgreSQL ¤Ï¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤«¡© ¥ì¥Ý¡¼¥È¡¦¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡© Ëä¤á¹þ¤ßÌ䤤¹ç¤ï¤»¸À¸ì¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡©

    +
    +
    +

     pgaccess ¤È¸Æ¤Ð¤ì¤ëÁÇÀ²¤é¤·¤¤¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¤¢¤ê¡¢¤³¤ÎÇÛÉۤȶ¦¤Ë½Ð²Ù¤µ¤ì¤Þ¤¹¡£Pgaccess ¤Ë¤Ï¥ì¥Ý¡¼¥È¡¦¥¸¥§¥Í¥ì¡¼¥¿¤â¤¢¤ê¤Þ¤¹¡£Web ¥Ú¡¼¥¸¤Ïhttp://www.flex.ro/pgaccess¤Ç¤¹¡£

    +
    +

     ecpg ¤È¤¤¤¦ C ¸À¸ì¤Î¤¿¤á¤ÎËä¤á¹þ¤ß SQL Ì䤤¹ç¤ï¤»¸À¸ì¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£

    +
    +

    +

    2.4) PostgreSQL ¤ÈÄÌ¿®¤¹¤ë¤Ë¤Ï¤É¤ó¤Ê¸À¸ì¤¬»È¤¨¤Þ¤¹¤«¡©

    +
    +
    +

    °Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹:

    +
    +
      +
    • C (libpq)
    • +
    • C++ (libpq++)
    • +
    • Ëä¤á¹þ¤ßC (ecpg)
    • +
    • Java (jdbc)
    • +
    • Perl (perl5)
    • +
    • ODBC (odbc)
    • +
    • Python (PyGreSQL)
    • +
    • TCL (libpgtcl)
    • +
    • C Easy API (libpgeasy)
    • +
    • Ëä¤á¹þ¤ßHTML (PHP from http://www.php.net)
    • +
      +

      +
      +
      +    [ÌõÃí¡§
      +   ruby¤Îºî¼Ô¤Ç¤¢¤ë¤Þ¤Ä¤â¤È ¤æ¤­¤Ò¤í([email protected])¤µ¤ó¤È¡¢¤Þ¤Ä¤â¤È ¤¨¤¤¤¸([email protected])¤µ¤ó¤¬
      +   ruby ¤Î PostgreSQL ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òºî¤ê¤Þ¤·¤¿¡£¸½ºß¤Î°Ý»ý´ÉÍý¤ÏÀÆÆ£ ÅФµ¤ó¤¬¤·¤Æ¤¤¤Þ¤¹¡£
      +       http://webclub.kcom.ne.jp/mb/noborus/ruby/
      +        PgBash ¤Ï ¶­ÅÄ ²íÌÀ ¤µ¤ó¤¬ºî¤Ã¤¿ bash ¤Î PostgreSQL ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£
      +       http://www.psn.co.jp/PostgreSQL/pgbash/
      +   Bash¥³¥Þ¥ó¥É¥é¥¤¥ó¤Çpostgres ¤ËÌ䤤¹ç¤ï¤»¤Ç¤­¤Þ¤¹¡£
      +    ]
      +
      +
      +

      +

      +
      +

      ´ÉÍý¾å¤Î¼ÁÌä

      +

      +
      +

      3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Þ¤¹¤«¡©

      +
      +

       ´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤­¤Ë --prefix ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£

      +
      +

      +

      3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

       ¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V IPC ¤Î³ÈÄ¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë¶¦Í­¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£

      +
      +

      +

      3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

       ¥«¡¼¥Í¥ë¤¬¶¦Í­¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂФ·¤Æ»È¤¨¤ë¶¦Í­¥á¥â¥ê¡¼¤ÎÂ礭¤µ¤òÂ礭¤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂ礭¤µ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤­¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡£

      +
      +

      +

      3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

      ¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left on device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ·¤Þ¤¹¡£¤È¤ê¤¢¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤­¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£

      +

      ¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿¤¯¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£

      +
      +

      +
      +

      3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¼«Ê¬¤Î PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤òËɤ°¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

      +
      +
      +

          ´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ò»È¤¦¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£postmaster µ¯Æ°¤Ë -i ¥Õ¥é¥Ã¥°¤ò²Ã¤¨¡¢$PGDATA/pg_hba.conf ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿¤Îǧ¾Ú¤ò»È¤ï¤Ê¤¤¤«¤®¤ê¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ë¤è¤êTCP/IP¤ÎÀܳ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

      +

      ÁàºîÉÔǽ¤Ê¥»¥Þ¥Õ¥©¤â²áÅ٤Υǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹Ãæ¤Ë¥¯¥é¥Ã¥·¥å¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

      +
      +

      +

      3.6) Â¾¤Î¥Þ¥·¥ó¤«¤é¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

       ´ûÄê¤ÎÀßÄê¤Ç¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤Î unix ¥É¥á¥¤¥ó¤Î¥½¥±¥Ã¥ÈÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£TCP/IP Àܳ¤ò²Äǽ¤Ë¤¹¤ë¤Ë¤Ï postmaster ¤¬ -i ¥ª¥×¥·¥ç¥ó¤Ç³«»Ï¤µ¤ì¤Æ¤¤¤Æ¡¢pgsql/data/pg_hba.conf ¥Õ¥¡¥¤¥ë¤ËŬÀڤʥۥ¹¥È¤Îµ­ºÜ¤¬Äɲäµ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£

      +
      +

      +

      3.7) ¤è¤ê¤è¤¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¡¢¤É¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤òÄ´À°¤Ç¤­¤Þ¤¹¤«¡©

      +
      +
      +

       ³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN¥³¥Þ¥ó¥É¤Ç PostgreSQL ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤·¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

      +

      ¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂ礭¤Ê¥Ð¥Ã¥Á½èÍý¤Ç¤½¤ì¤ò¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡¤Ë¡¢BEGIN WORK/COMMIT ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬¤½¤ì¤¾¤ì¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Â礭¤Ê¥Ç¡¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£

      +
      +

       ¥Á¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£postmaster ¤ò -o -F ¥ª¥×¥·¥ç¥ó¤Çµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢fsync() ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£

      +
      +

       postmaster -B ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦Í­¥á¥â¥ê¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礭¤¯¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢¥«¡¼¥Í¥ë¤Î¶¦Í­¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤Ã¤¦¤¿¤á¤Ë postmaster ¤¬Áö¤é¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ï 8K ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 64 ¤Ç¤¹¡£

      +
      +

       ¥Ð¥Ã¥¯¥¨¥ó¥É¤ò -S ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤½¤Î -S ¤ÎÃͤϥ­¥í¥Ð¥¤¥Èñ°Ì¤Ç¡¢´ûÄêÃͤϠ512 (¤¹¤Ê¤ï¤Á¡¢512K)¤Ç¤¹¡£

      +
      +

       ¤Þ¤¿¡¢CLUSTER ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë¥°¥ë¡¼¥×²½¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER ¤ò¸«¤Æ²¼¤µ¤¤¡£

      +
      +

      +

      3.8) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©

      +
      +

       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¤ò³«»Ï¤¹¤ë¤È¡¢psql ¤Ç»È¤ï¤ì¤ë postgres¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»¥Ã¥È¤·¡¢psql¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï¡¢PGOPTIONS="-W n" ¤òÀßÄê¤Ç¤­¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n Éó«»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥¢¥¿¥Ã¥Á¤·¤Æ»Ïư¤ò½ç¤òÄɤäƸ«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

      +
      +

       postgreSQL ¥×¥í¥°¥é¥à¤Ë¤Ï¡¢¥Ç¥Ð¥°¤ÈÀ­Ç½Â¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä -s¤ä -A¤ä -t Åù¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£

      +
      +

       ²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê¥×¥í¥Õ¥£¡¼¥ëÉÕ¤­¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼¥ë¡¦¥Õ¥¡¥¤¥ë¤Ï pgsql/data/base/dbname ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£

      +
      +
      +

      +

      3.9) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

       postmaster¤¬Æ±»þ»Ïư¤Ç¤­¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

      +

      PostgreSQL 6.5°Ê¹ß¤Ç¤Ï¡¢´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£Å¬ÀÚ¤Ê-N¤ÎÃͤÇpostmaster¤òºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤êÁý²Ã¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´ûÄê¤Î¹½À®¤Ç¤Ï-N¤ÏºÇÂç1024¤Þ¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢¤â¤Ã¤ÈɬÍפǤ¢¤ì¤Ðinclude/config.h¤ÎÃæ¤ÎMAXBACKENDS¤òÁý²Ã¤µ¤»¡¢ºÆ¹½ÃÛ¤·¤Þ¤¹¡£¤â¤·¡¢Ë¾¤à¤Ê¤éconfigure¤Î --with-maxbackendsÀÚÂØ¤ò»È¤Ã¤Æ¡¢-N¤Î´ûÄêÃͤò¹½À®»þ¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£

      +
      +

      ¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礭¤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂ礭¤¤ÃͤËÁý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀ­Ç½¤ò˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂ礭¤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹¤ë¤È¡¢¤¤¤í¤¤¤í¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£

      +¶¦Í­¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢
      +¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢
      +¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢
      +¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢
      +³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô(NFILE¤ÈNINODE
      +¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£
      +PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
      +¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë¤¿¤á¤Ç¤¹¡£
      +
      +

      6.5¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎPostgreSQL¤Ç¤Ï¥Ð¥Ã¥¯¥¨¥ó¥É¤ÎºÇÂç¿ô¤Ï64¤Ç¤·¤¿¤¬¡¢Êѹ¹¤¹¤ë¤Ë¤Ï¡¢include/storage/sinvaladt.h¤ÎÃæ¤ÎMaxBackendIdÄê¿ô¤ò½¤Àµ¤·¤¿¸å¤ËºÆ¹½ÃÛ¤¬É¬ÍפǤ·¤¿¡£

      +
      +

      +

      3.10)   ¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë pg_sorttemp.XXX¥Õ¥¡¥¤¥ë¤Ï²¿¤Ç¤¹¤«¡©

      +
      +
      +

       Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂ礭¤Ê¥¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«À¸À®¤µ¤ì¤Þ¤¹¡£

      +

      +°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç¥Ð¥Ã¥¯¥¨¥ó¥É¤¬ÄÙ¤ì¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¤½¤Î¤È¤­¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤Ò¤È¤Ä¤âÁö¤Ã¤Æ¤Ê¤±¤ì¤Ð¡¢pg_tempNNN.NN¥Õ¥¡¥¤¥ë¤ò¾Ã¤·¤Æ¤â°ÂÁ´¤Ç¤¹¡£
      +
      +

      +

      +
      +

      Áàºî¾å¤Î¼ÁÌä

      +

      +
      +

      4.1) ¤Ê¤¼¡¢¥·¥¹¥Æ¥à¤Ï¥«¥ó¥Þ¤ä¾®¿ôÅÀ¤äÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤Çº®Í𤹤ë¤Î¤Ç¤¹¤«¡©

      +
      +
      +

       ¥í¥±¡¼¥ë¤ÎÀßÄê¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£PostgreSQL ¤Ï postmaster ¥×¥í¥»¥¹¤òÁö¤é¤»¤¿¥æ¡¼¥¶¡¼¤Î¥í¥±¡¼¥ë¤ÎÀßÄê¤ò»È¤¤¤Þ¤¹¡£postgres ¤Èpsql ¤Ë¤Ï SET ¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¥Ç¡¼¥¿½ñ¼°¤òÀ©¸æ¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤ò¤¢¤Ê¤¿¤ÎÁàºî´Ä¶­¤Ë¹ç¤ï¤»¤ÆÀßÄꤷ¤Æ²¼¤µ¤¤¡£

      +
      +

      +

      4.2) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾ï¤Î¥«¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©

      +
      +
      +

       ¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£

      +
      +

      +

      4.3) Ì䤤¹ç¤ï¤»¤ÎºÇ½é¤Î¿ô¹Ô¤Î¤ß¤ò SELECT ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

      +
      +
      +

       ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ... LIMIT....¤ò»È¤Ã¤Æ¤ß¤Æ²¼¤µ¤¤¡£

      +
      +

      ¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¹Ô¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£

      +¤â¤·¡¢ORDER BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¹Ô¤À¤±¤Çɾ²Á¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL ¤Ï°Õ¿Þ¤·¤¿¹Ô¤¬À¸À®¤µ¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¹Ô¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
      +
      +

      +

      4.4) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

      +
      +
      +

      +  psql¤Î¥½¡¼¥¹¥³¡¼¥É¤¬½ñ¤«¤ì¤¿ pgsql/src/bin/psql/describe.c ¥Õ¥¡¥¤¥ë¤òÆÉ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
      +¤½¤³¤Ë¤Ï¡¢psql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤Ë¤è¤ë½ÐÎϤΤ¿¤á¤ÎSQL¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ psql ¤Ë -E ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æµ¯Æ°¤¹¤ì¤Ð¡¢Í¿¤¨¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ÎÌ䤤¹ç¤ï¤»¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£
      +

      +
      +
      +

      4.5) ¥Æ¡¼¥Ö¥ë¤«¤é¤ÎÎó¤Îºï½ü¤Ï¤É¤Î¤è¤¦¤Ë¤·¤Þ¤¹¤«¡©

      +
      +
      +

       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.6) ¹Ô¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©

      +
      +
      +

       À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

      +
      +¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º?  À©¸Â̵¤· (60GB ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤â¸ºß¤·¤Þ¤¹)
      +¥Æ¡¼¥Ö¥ë¤ÎºÇÂ祵¥¤¥º?           16TB
      +¹Ô¤ÎºÇÂ祵¥¤¥º?                 7.1°Ê¹ß¤ÇÀ©¸Â̵¤·
      +¥Õ¥£¡¼¥ë¥É¤ÎºÇÂ祵¥¤¥º?         7.1°Ê¹ß¤Ç1GB
      +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂç¥í¥¦¿ô?       À©¸Â̵¤·
      +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祫¥é¥à¿ô?     ¥«¥é¥à¤Î·¿¤Ë¤è¤ê250-1600
      +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祤¥ó¥Ç¥¯¥¹¿ô? À©¸Â̵¤·
      +
      +
      +

       ¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã¥×¥¹¥Ú¡¼¥¹¤ÎÂ礭¤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£À­Ç½¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Â礭¤Ê»þ¤ËÀú¤ê¤ò¼õ¤±¤Þ¤¹¡£

      +
      +

       ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î16TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥é¡¼¥¸¡¦¥Õ¥¡¥¤¥ë¥µ¥Ý¡¼¥È¤ÏɬÍפȤ·¤Þ¤»¤ó¡£¥é¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤ËÊݸ¤µ¤ì¤Þ¤¹¡£

      +
      +

       ¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤ÈºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂ祫¥é¥à¿ô¤È¤¬Áý²Ã¤·¤Þ¤¹¡£

      +
      +
      +

      +

      4.7) °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¡©

      +
      +
      +PostgreSQL ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ÉáÄ̤Υե¡¥¤¥ë¤ÎÌó6.5ÇܤΥǥ£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡£

      +

       ³Æ¹Ô¤ËÆó¤Ä¤º¤ÄÀ°¿ô¤ò»ý¤Ä 300,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤¿¤À¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï 2.4MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤Ï¼¡¤Î¤è¤¦¤ËÌó14MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡§

      +
      +
      +    36 bytes: ³Æ¹Ô¤Î¥Ø¥Ã¥À(³µ»»)
      +   + 8 bytes: ³Æ4¥Ð¥¤¥È¤ÎÆó¤Ä¤ÎÀ°¿ô(int)¥Õ¥£¡¼¥ë¥É
      +   + 4 bytes: ¥Ú¡¼¥¸¾å¤Î¥¿¥Ã¥×¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿
      +   ----------------------------------------
      +   48 bytes per row
      +
      +   PostgreSQL ¤Î¥Ç¡¼¥¿¥Ú¡¼¥¸¥µ¥¤¥º¤Ï 8192¥Ð¥¤¥È(8KB)¤Ê¤Î¤Ç:
      +
      +   8192 bytes per page
      +   -------------------   =  171 rows per database page (ÀÚ¤ê¾å¤²)
      +     48 bytes per row
      +
      +   300000 data rows
      +   --------------------  =  1755 database pages
      +      171 rows per page
      +1755 database pages * 8192 bytes per page  =  14,376,960 bytes (14MB)
      +
      +
      +

      +¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ì¤Û¤É¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÍ׵ᤷ¤Þ¤»¤ó¤¬¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤µ¤ì¤ë¥Ç¡¼¥¿¤ò´Þ¤à°Ê¾å¡¢¤½¤ì¤Ê¤ê¤ËÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£
      +
      +

      +

      4.8) ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ËÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¤ä¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¤É¤Î¤è¤¦¤Ë¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©

      +
      +
      +

       psql ¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¤³¤¦¤·¤¿¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤Î¼ïÎà¤ò¸«¤ë¤Ë¤Ï \? ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£

      +

       ¤Þ¤¿¡¢pgsql/src/tutorial/syscat.source ¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤½¤ì¤Ï¡¢Âô»³¤Î SELECT Ê¸¤Ë¤è¤êɬÍפʾðÊó¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¡¦¥Æ¡¼¥Ö¥ë¤«¤é¼è¤ê½Ð¤·¤ÆÎ㼨¤·¤Æ¤¯¤ì¤Þ¤¹¡£

      +
      +

      +

      4.9) Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«¡©

      +
      +
      +

       PostgreSQL ¤ÏÅý·×¾ðÊó¤ò¼«Æ°Åª¤Ë¤ÏÊݼ餷¤Þ¤»¤ó¡£Åý·×¾ðÊó¤ò¹¹¿·¤¹¤ë¤¿¤á¤Ë¤Ï¡¢VACUUM ¤òÁö¤é¤»¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£Åý·×¾ðÊ󤬹¹¿·¤µ¤ì¤¿¸å¤Ï¡¢¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¥Æ¡¼¥Ö¥ë¤Ë²¿¹Ô¤¢¤ë¤«¤òÃΤäơ¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ù¤­¤«¤Î·èÄê¤ò¤è¤êÎɤ¯²¼¤·¤Þ¤¹¡£¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¥Æ¡¼¥Ö¥ë¤¬¾®¤µ¤¯¤ÆÏ¢Â³¥¹¥­¥ã¥ó¤ÎÊý¤¬Â®¤¤¤Ç¤¢¤í¤¦¾ì¹ç¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤ï¤Ê¤¤¤³¤È¤Ë¤´Ãí°Õ²¼¤µ¤¤¡£

      +
      +

       ÎóÆÃÄê¤ÎºÇŬ²½Åý·×¤Î¤¿¤á¤ËVACUUM ANALYZE¤ò»È¤¤¤Þ¤¹¡£VACUUM ANALYZE¤ÏÊ£»¨¤ÊÊ£¹ç·ë¹ç(multi-join)Ì䤤¹ç¤ï¤»¤Î¤¿¤á¤ËÂçÀڤǤ¹¤Î¤Ç¡¢¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¤½¤ì¤¾¤ì¤Î¥Æ¡¼¥Ö¥ë¤«¤éÊÖ¤µ¤ì¤ë¹Ô¤Î¿ô¤ò¸«ÀѤ뤳¤È¤¬¤Ç¤­¡¢ÆÃÄê¤Î·ë¹ç½ç½ø¤òÁª¤Ó¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤Ï¤½¤ì¼«¿È¤Ç¤ÏÎó¤ÎÅý·×¤òÊÝ»ý¤·¤Ê¤¤¤Î¤Ç¡¢Äê´üŪ¤Ë¤½¤ì¤é¤ò½¸¤á¤ë¤¿¤á¤Ë¤Ï VACUUM ANALYZE ¤òÁö¤é¤»¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

      +
      +

       ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï ORDER BY Áàºî¤Î¤¿¤á¤Ë¤ÏÉáÄ̤ϻȤï¤ì¤Þ¤»¤ó¡£¤¹¤Ê¤ï¤Á¡¢½ç¼¡¥¹¥­¥ã¥ó¤Ë³¤¯ÌÀ¼¨Åª¥½¡¼¥È¤Ï¡¢¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤¬¤è¤ê¾¯¤Ê¤¯¤ÆºÑ¤à¤Î¤Ç¡¢µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÎÁ´·ï¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­¥ã¥ó¤¹¤ë¤è¤ê¤â¹â®¤Ç¤¹¡£

      +
      +

       LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»»»Ò(wild-card  operators)¤ò»È¤¦¤È¤­¡¢¸¡º÷¤Î³«»Ï¤¬Ê¸»úÎó¤Î»Ï¤á¤ÎÉôʬ¤Ë¸ÇÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤¹¡£

      +¤½¤¦¤¤¤¦¤ï¤±¤Ç¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢LIKE ¸¡º÷¤Ç¤Ï%¤Ç»Ï¤á¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¡¢¤Þ¤¿¡¢~(Àµµ¬É½¸½¸¡º÷)¤Ï^ ¤Ç»Ï¤á¤ë¤è¤¦¤Ë¤¹¤ë¤Ù¤­¤Ç¤¹¡£
      +
      +

      +

      4.10)   Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

      +
      +
      +

       ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£

      +
      +

      +

      4.11)   R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©

      +
      +

       R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï¥Ã¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À­¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤È¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦¤ÊÌ䤤¹ç¤ï¤»¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£

      +
      +

       R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:

      +
      +

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

      +Proc 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" 
      +       http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
      +   ¤ò¤´Í÷²¼¤µ¤¤¡£
      +    ]
      +
      +
      +

       Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤­¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree ¤Ï¤â¤Ã¤È¹â¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤­¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£

      +
      +

      +
      +    [ÌõÃí¡§
      +     ¥¤¥ó¥¿¡¼¥¦¥£¥º¤ÎÊÒ²¬¤µ¤ó¤¬Â¿¼¡¸µ´ö²¿¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î³ÈÄ¥ºî¶ÈÃæ¤Ç¤¹¡£¾Ü¤·¤¯¤Ï¡¢
      +   http://www.interwiz.koganei.tokyo.jp/software/geometric/index.html
      +   ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
      +    ]
      +
      +
      +
      +

      +

      4.12)   °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©

      +
      +
      +

       GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礭¤Ê·ë¹ç(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

      +
      +

      +

      4.13)   Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«¡©

      +
      +
      +

      +~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~* ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£ PostgreSQL 7.1 °Ê¹ß¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
      +
      +
      +
      +   WHERE lower(textfield) LIKE lower(pattern)
      +
      +
      +
      +

      +

      4.14)   Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

      +
      +
      +

       IS NULL¤Î¥«¥é¥à¤ò IS NOT NULL ¤Ç»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

      +
      +

      +

      4.15)   ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©

      +
      +
      +
      +Type            Internal Name   Notes
      +--------------------------------------------------
      +"char"          char            1 character
      +CHAR(#)         bpchar          »ØÄꤵ¤ì¤¿¸ÇÄêĹ¤È¤Ê¤ë¤è¤¦¤Ë¶õÇò¤¬µÍ¤á¤é¤ì¤ë
      +VARCHAR(#)      varchar         Ä¹¤µ¤Î¾å¸Â¤Î̵¤¤¥Æ¥­¥¹¥È
      +TEXT            text            Ä¹¤µ¤ÎÀ©¸Â¤ÏºÇÂç¹ÔŤˤè¤ë
      +BYTEA           bytea           ²ÄÊÑĹ¤Î¥Ð¥¤¥ÈÇÛÎó
      +
      +
      +

       ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤­¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤È¤­¤Ç¤¹¡£

      +
      +
      +

       ¾åµ­¤Î·¿¤Î¤¦¤Á¸å¤Î£´¤Ä¤Î·¿¤Ï "varlena" ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤Î¥Ç¡¼¥¿¤¬Â³¤­¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À¤µ¤ì¤¿Â礭¤µ¤è¤ê¤â¾¯¤·Â礭¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì¤µ¤ì¤¿¤êÊ£¿ô¹Ô¤ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£

      +
      +

      +

      4.16.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¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¤ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ëpg_dump ¤Ç -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

      +
      + Bruce Momjian ¤Î(http://www.PostgreSQL.org/docs/aw_pgsql_book)¤Î Numbering Rows¤Î¾Ï¤Ë¤¢¤ê¤¢¤Þ¤¹¡£
      +
      +
      +

      4.16.2)   SERIAL¥¤¥ó¥µ¡¼¥È¤ÎÃͤϤɤ¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©

      +

      +
      + ¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ÇÁÞÆþ¤¹¤ëÁ°¤Ë(before) SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤ÎSERIALÃͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£
      +4.16.1¤ÎÎã¤Ç»È¤Ã¤¿¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
      +
      +
      +   $newSerialID = nextval('person_id_seq');
      +   INSERT INTO person (id, name) VALUES ($newSerialID, 'Blaise Pascal');
      +
      +
      +¤½¤¦¤·¤Æ¡¢$newSerialID ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person ¥Æ¡¼¥Ö¥ë¤ËÂФ¹¤ë³°Éô¸°(foreign key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢<table>_<serialcolumn>_seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á¡¢table ¤È serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIALÎó¤Î̾Á°¤Ç¤¹¡£
      +

      +
      +¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after)¡¢ currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
      +
      +
      +   INSERT INTO person (name) VALUES ('Blaise Pascal');
      +   $newID = currval('person_id_seq');
      +
      +
      +ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢¤³¤ì¤ÏºÇ¤â°Ü¿¢À­¤ÎÄ㤤¤ä¤êÊý¤Ç¤·¤ç¤¦¡£Perl¤ÎDBI¤Ç Edmund Mergl ¤Î DBD::Pg ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->{pg_oid_status} ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡£
      +
      +

       

      +

      4.16.3)   Â¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï¡¢currval() ¤È nextval() ¤Ï»È¤ï¤Ê¤¤¤Û¤¦¤¬¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©

      +

      +
      +¤¢¤ê¤Þ¤»¤ó¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤Ç½èÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
      +
      +
      +

       

      +

      4.17)   OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©

      +
      +
      +

       OID ¤È¤Ï°ì°Õ¤Î¹Ô ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì¤ë¤¹¤Ù¤Æ¤Î¹Ô¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤Ç(backend/access/transam.h ¤«¤é)ȯÀ¸¤µ¤ì¤ë OID ¤Ï¤¹¤Ù¤Æ 16384¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î 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¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤­¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò¼è¤ê½ü¤¯¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£

      +
      +

       TID ¤ÏÆÃÄê¤ÎʪÍý¹Ô¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£TID ¤Ï¹Ô¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID ¤Ï¡¢ÊªÍý¹Ô¤ò»Ø¤¹¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µ­ºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£

      +
      +

      +

      4.18)   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)
      • +
        +

        °ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§

        +href="http://www.comptechnews.com/~reaster/dbdesign.html">
        +http://www.comptechnews.com/~reaster/dbdesign.html
        +¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
        +
        +

        +

        4.19) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

        +
        +

        +¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¡¢¤¢¤ë¤¤¤Ï
        +¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤ÆÄ㤤À©¸ÂÃͤò»ý¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
        +postmaster ¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
        +
        +
        +   ulimit -d 262144
        +   limit datasize 256m
        +
        +
        +

         

        +¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ëºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL ¥¯¥é¥¤¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
        +
        +

        +

        4.20) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

        +
        +

        +psql ¤«¤é select version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
        +

        +
        +
        +

        4.21)   ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©

        +
        +
        +

        ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤­¤Ï¡¢Á°¸å¤ËBEGIN WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ... lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£

        +
        +

        ¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Ï¥ó¥É¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥ë¡¼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢invalid large obj descriptor(¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤Îµ­½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤Î¤Ç¤¹¡£

        +
        +

        ¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commit off¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

        +

        +
        +
        +

        4.22) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤ÊÎó¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©

        +
        +

        now()¤ò»È¤¤¤Þ¤¹:

        +
        +   CREATE TABLE test (x int, modtime timestamp DEFAULT now() );
        +
        +

        +
        +
        +

        4.23)   ¤Ê¤¼¡¢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.24) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?

        +

        +PostgreSQL 7.1 °Ê¹ß¤Ç¤Ï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 ¤Ê¤É¤Î·ë¹ç¤ò²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
        +
        +
        +
        +
        +
        +
        +
        +
        +
        ++These identical queries join t1.col to t2.col, and also return any unjoined
        ++rows in t1 (those with no match in t2). A RIGHT join
        ++would add unjoined rows of t2. A FULL join would return
        ++the matched rows plus all unjoined rows from t1 and t2. The word OUTER
        ++is optional and is assumed in LEFT, RIGHT,
        ++and FULL joins. Ordinary joins are called INNER
        ++joins.
        +
        +
        +°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï³°Éô·ë¹ç(outer join)¤ò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
        +
        +
        +
        +

        +
        +

        PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä

        +

        +
        +

        5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

        +
        +
        +

         ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

        +
        +
        +

        +

        5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¿è¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤Ï¡¢¤É¤¦¤¹¤ì¤Ð´ó£¤Ç¤­¤Þ¤¹¤«¡©

        +
        +
        +

         ³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬ contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£

        +
        +

        +

        5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©

        +
        +
        +

         ¸¶ÍýŪ¤Ë¤Ï²Äǽ¤Ç¤¹¤¬¡¢¤³¤ì¤Ë¤Ïµæ¶Ë¤Î̯µ»¤òÍפ·¤Þ¤¹¤Î¤Ç¡¢Ãø¼Ô¤Î¤Þ¤ï¤ê¤Ç¤Ï̤¤Àï¤â¤ä¤Ã¤¿¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£

        +
        +

        5.4)  ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

        +
        +
        +

         ¤¤¤¯¤Ä¤«¤Î Makefile ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£make clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC ¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

        +
        +
        +
        diff --git a/doc/src/FAQ/FAQ_japanese.html b/doc/src/FAQ/FAQ_japanese.html
        new file mode 100644 (file)
        index 0000000..94766e0
        --- /dev/null
        @@ -0,0 +1,1218 @@
        +
        +
        +PostgreSQL FAQ in Japanese
        +
        +
        +
        +

        +PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥­¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä(FAQ)
        +

        +¸¶Ê¸ºÇ½ª¹¹¿·Æü:        Tue Oct 17 00:21:20 EDT 2000
        +           (¥Õ¥¡¥¤¥ëÆüÉդϠ03/02/2001)
        +

        +¸½ºß¤Î°Ý»ý´ÉÍý¼Ô:  Bruce Momjian (
        +

        +¤³¤Îʸ½ñ¤ÎºÇ¿·ÈǤÏ
        +http://www.PostgreSQL.org/
        +¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
        +

        +
        +¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃÍ­¤Î¼ÁÌä¤Ë¤Ä¤¤¤Æ¤Ï:
        + HREF="http://www.PostgreSQL.org/docs/">http://www.PostgreSQL.org/users-lounge/docs/faq.html
        +
        ¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
        +

        +
        +

        +
        +[ÌõÃí¡§
        +   (°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ­¤·¤Þ¤¹¡£)
        +
        +     http://www.PostgreSQL.org/ ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È http://postgresql.nucba.ac.jp/
        +¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¡¢"Not Found" ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç¤Ï¡¢
        +       http://www.PostgreSQL.org/index.html
        +   ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
        +
        +
        +ÆüËܸìÈǤˤĤ¤¤Æ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
        +
        +ºÇ½ª¹¹¿·Æü:    2001ǯ03·î03Æü
        +Ìõ¼Ô:      ·¬Â¼ ½á (Jun Kuwamura <[email protected]>)
        +
        + ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿°Ê²¼¤ÎÊý¡¹¤ò¤Ï¤¸¤á¡¢
        +
        +       ÅÄÃç Ì­¤µ¤ó(Minoru Tanaka <[email protected]>)
        +       Àаæ Ã£Éפµ¤ó(Tatsuo Ishii <[email protected]>)
        +       óîÆ£ Ãοͤµ¤ó(Tomohito Saitoh <[email protected]>)
        +       ÇϾ젠ȥ¤µ¤ó(Hajime Baba <[email protected]>)
        +       ²¬ËÜ °ì¹¬¤µ¤ó(Kazuyuki Okamoto <[email protected]>)
        +       ¾®¿û ¾¼°ì¤µ¤ó(Shoichi Kosuge <[email protected]>)
        +       »³²¼ µÁÇ·¤µ¤ó(Yoshiyuki Yamashita <[email protected]>)
        +       ¶­ ¿¿ÂÀϺ¤µ¤ó(Sintaro Sakai <[email protected]>)
        +       À¸±Û ¾»¸Ê¤µ¤ó(Masami Ogoshi <[email protected]>)
        +       ÀÐÀî ½Ó¹Ô¤µ¤ó(Toshiyuki Ishikawa <[email protected]>)
        +       ËÜÅÄ Ìй­¤µ¤ó(Shigehiro Honda <[email protected]>)
        +
        +
        +¥Ý¥¹¥È¥°¥ì¥¹¤Ë´Ø¤¹¤ëÏÃÂêË­ÉÙ¤ÊÆüËܸì¥Ý¥¹¥È¥°¥ì¥¹¡¦¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¡¢
        +ÏÂÌõ¤Î¤­¤Ã¤«¤±¤òºî¤Ã¤Æ¤¯¤ì¤¿ JF(Linux Japanese FAQ Mailing List)¥×¥í¥¸¥§¥¯¥È¡¢
        +¤½¤Î¾¡¢Ä¾Àܤ¢¤ë¤¤¤Ï´ÖÀÜŪ¤Ë¤«¤«¤ï¤Ã¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹
        +¥³¥ß¥å¥Ë¥Æ¥£¡¼¤Î³§¤µ¤ó¤Ë´¶¼Õ¤·¤Þ¤¹¡£
        +
        +  ÆüËܸìÈǤΤ³¤Îʸ½ñ¤Ï
        +   http://www.jp.postgresql.org/
        +   http://www.rccm.co.jp/~juk/pgsql/
        +   http://www.sra.co.jp/people/t-ishii/PostgreSQL/
        +   http://www.linux.or.jp/JF/
        +¤«¤é¤â¤¿¤É¤ì¤Þ¤¹¡£
        +
        +¤Ê¤ª¡¢¤³¤ÎÏÂÌõ¤Ë´Ø¤¹¤ë¤´°Õ¸«¤Ï([email protected])¤Þ¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
        +]
        +
        +
        +

        +
        +

        +
        +

         °ìÈÌŪ¤Ê¼ÁÌä

        +
        +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¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
        +
        +
        +

        ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä

        +
        +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)    Â¾¤Î¥Û¥¹¥È¤«¤é¼«Ê¬¤ÎPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤òËɤ°¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +3.6)    ¤Ê¤¼¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
        +3.7)    ¤è¤êÎɤ¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹¤«¡©
        +3.8)    ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
        +3.9)    Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
        +3.10)  ¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë pg_sorttemp.XXX ¥Õ¥¡¥¤¥ë¤Ï²¿¤Ç¤¹¤«¡©
        +
        +
        +

        Áàºî¾å¤Î¼ÁÌä

        +
        +4.1)    ¤Ê¤¼¡¢¥·¥¹¥Æ¥à¤Ï¥«¥ó¥Þ¤ä¾®¿ôÅÀ¤äÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤Çº®Í𤹤ë¤Î¤Ç¤¹¤«¡©
        +4.2)    ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾ï¤Î¥«¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
        +4.3)    ºÇ½é¤Î¿ô¹Ô¤Î¤ß¤ò select ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +4.4)    ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +4.5)    ¥Æ¡¼¥Ö¥ë¤«¤é¤ÎÎó¤Îºï½ü¤Ï¤É¤Î¤è¤¦¤Ë¤·¤Þ¤¹¤«¡©
        +4.6)    ¹Ô¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
        +4.7)    °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢
        +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¤«¡©
        +4.8)    ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ËÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¤ä¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¤É¤Î¤è¤¦¤Ë¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
        +4.9)    Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«¡©
        +4.10) Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +4.11) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
        +4.12) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
        +4.13) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«¡©
        +4.14) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +4.15) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
        +4.16.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
        +4.16.2) SERIAL¥¤¥ó¥µ¡¼¥È¤ÎÃͤϤɤ¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
        +4.16.3) Â¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï¡¢currval() ¤È nextval() ¤Ï»È¤ï¤Ê¤¤¤Û¤¦¤¬¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
        +4.17) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
        +4.18) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
        +4.19) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
        +4.20) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
        +4.21) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj descriptor¤È½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
        +4.22) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤ÊÎó¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
        +4.23) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
        +4.24) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
        +
        +

        PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä

        +
        +5.1)    ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
        +5.2)    PostgreSQL ÍѤ˽ñ¤¤¤¿¿è¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤Ï¡¢¤É¤¦¤¹¤ì¤Ð´ó£¤Ç¤­¤Þ¤¹¤«¡©
        +5.3)    ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©
        +5.4)    ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
        +

        +
        +

        °ìÈÌŪ¤Ê¼ÁÌä

        +

        +
        +

        1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡©

        +
        +

        PostgreSQL ¤Ï POSTGRES ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǡ¢¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¹¡£PostgreSQL ¤Ï POSTGRES ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈË­É٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)¤òÆâÊñ¤·¤Ä¤Ä¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤­´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ­¤Þ¤¹¡£

        +
        +

        PostgreSQL ¤Î¤¹¤Ù¤Æ¤Î³«È¯¤Ï¡¢PostgreSQL ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¾å¤Î³«È¯¼Ô¥Á¡¼¥à¤Ç¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸½ºß¤ÎºÂĹ¤Ï Marc G. Fournier ( [email protected] )¤Ç¤¹¡£(°Ê²¼¤Ë»²²Ã¤Î»ÅÊý¤¬¤¢¤ê¤Þ¤¹¡£)¸½ºß¡¢¤³¤Î¥Á¡¼¥à¤¬ PostgreSQL³«È¯¤Î¤¹¤Ù¤Æ¤Î ÌÌÅݤò¸«¤Þ¤¹¡£

        +
        +

        PostgreSQL 1.01 ¤ÎÃø¼Ô¤Ï Andrew Yu ¤È Jolly Chen ¤Ç¤·¤¿¡£¤½¤Î¾ÂçÀª¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢²þÎɤ˹׸¥¤·¤Þ¤·¤¿¡£PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë POSTGRES ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤¤Æ¡¢ Michael Stonebraker ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢¿¦¶È¥×¥í¥°¥é¥Þ¤¿¤Á¤ÎÅØÎϤˤè¤êºî¤é¤ì¤Þ¤·¤¿¡£

        +
        +

        ¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres ¤Ç¤·¤¿¡£SQL ¤Îµ¡Ç½¤¬Äɲ䵤줿 1995 Ç¯¤Ë¤½¤Î̾Á°¤Ï Postgres95 ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£1996 Ç¯¤Î½ª¤ê¤Ë¤½¤Î̾Á°¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£

        +
        +Post-Gres-Q-L.(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥­¥å¡¼ - ¥¨¥ë) ¤Èȯ²»¤·¤Þ¤¹¡£
        +
        +

        +

        1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©

        +
        +

         PostgreSQL ¤Ï²¼µ­¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£

        +
        +    [ÌõÃí¡§
        +        ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ­·ÇºÜ¤·¤Þ¤¹¡£
        +    ]
        +
        +

        +PostgreSQL Data Base Management System

        +
        +Portions copyright (c) 1996-2000, 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-2001, PostgreSQL¹ñºÝ³«È¯¥Á¡¼¥à
        +   ÉôÊ¬Ãøºî¸¢ (c) 1994-6 ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³ØËܹ»
        +
        +   ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤È¤½¤Îʸ½ñ¤ò¡¢Ç¡²¿¤Ê¤ëÌÜŪ¤Ç¤â¡¢ÌµÎÁ¤Ç¡¢»ÈÍѵöÂú½ñ̵¤·¤Ë¡¢
        +   »ÈÍÑ¡¢Ê£¼Ì¡¢½¤Àµ¡¢¤½¤·¤Æ¡¢ÇÛÉÛ¤¹¤ë¤³¤È¤Ø¤Îµö²Ä¤ò¡¢¾åµ­¤ÎÃøºî¸¢É½¼¨¡¢¤³¤ÎÃÊ
        +   Íî¡¢¤ª¤è¤Ó¡¢¤³¤ì¤Ë³¤¯Æó¤Ä¤ÎÃÊÍ¡¢¤¹¤Ù¤Æ¤ÎÊ£¼Ì¤ËźÉÕ¤µ¤ì¤ë¸Â¤ê¤Ë¤ª¤¤¤Æ¡¢
        +   ¤³¤³¤Ë¤½¤ì¤òǧ¤á¤Þ¤¹¡¥
        +
        +   ¤¿¤È¤¨¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤¬°Ê²¼¤Î¤è¤¦¤Ê»³²¤Î²ÄǽÀ­¤Ë¤Ä¤¤¤Æ¸ÀµÚ¤·¤Æ¤¤¤¿
        +   ¤È¤·¤Æ¤â¡¥¤³¤Î¥½¥Õ¥È¥¦¥§¥¢µÚ¤Óʸ½ñ¤Î»ÈÍѾ塤ľÀÜŪ¡¦´ÖÀÜŪ¡¦ÆÃÊÌ¡¦¶öÁ³
        +   ¤â¤·¤¯¤ÏɬÁ³Åª¤Ë¡¤À¸¤¸¤¿¼º¤ï¤ì¤¿Íø±×¤ò´Þ¤à»³²¤Ë±÷¤¤¤Æ¡¤¤¤¤º¤ì¤ÎÅö»ö¼Ô
        +   ¤ËÂФ·¤Æ¤â¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï°ìÀÚ¤ÎÀÕǤ¤òÉ餤¤Þ¤»¤ó¡¥
        +
        +   ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¡¤ÆÃÄêÌÜŪ¤Î¤¿¤á¤Î¾¦ÍÑÀ­µÚ¤ÓŬ¹çÀ­¤Î°ÅÌÛ¤ÎÊݾڤò´Þ
        +   ¤à¡¤¤·¤«¤·¤½¤ì¤Ë¸ÂÄꤵ¤ì¤ë¤³¤È¤Î¤Ê¤¤¡¤¤¤¤«¤Ê¤ëÊݾڤâÌÀ³Î¤ËÊü´þ¤·¤Þ¤¹¡¥
        +   ¤³¤³¤Ë¤ª¤¤¤ÆÍѰդµ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ï¡Ö¤¢¤ë¤¬¤Þ¤Þ¡×¤È¤¤¤¦¤³¤È¤òÁ°Äó¤È¤·¡¤
        +   ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï°Ý»ý¡¦Êä½õ¡¦¹¹¿·¡¦²þÎÉ¡¦½¤Àµ¤òÍѰդ¹¤ëµÁ̳¤òÉ餤¤Þ
        +   ¤»¤ó¡¥
        +    ]
        +
        +
        +

        +

        1.3) PostgreSQL ¤Îưºî´Ä¶­¤Ï¡©

        +
        +

        Ãø¼Ô¤é¤Ï PostgreSQL ¤Î¥³¥ó¥Ñ¥¤¥ë¤È¥Æ¥¹¥È¤ò¼¡¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤Ç¹Ô¤Ê¤¤¤Þ¤·¤¿¡£(¤³¤ì¤é¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ë gcc ¤¬É¬ÍפǤ¹)¡§

        +

        °ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ê¤é¤ÐPostgreSQL¤ò¤Ï¤·¤é¤»¤é¤ì¤ë¤Ï¤º¤Ç¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£

        +
        +

        +

        1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©

        +
        +
        +¥¯¥é¥¤¥¢¥ó¥È
        +

         MS Windows ¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤Ç¡¢libpq C ¥é¥¤¥Ö¥é¥ê¡¢psql¡¢¤½¤ì¤È¤½¤Î¾¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï ¥³¥ó¥Ñ¥¤¥ë²Äǽ¤Ç¡¢¥Ð¥¤¥Ê¥ê¡¼¤¬Áö¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò MS Windows ¾å¤ÇÁö¤é¤»¤Æ¡¢TCP/IP ·Ðͳ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë Unix ¥×¥é¥Ã¥È¥Û¡¼¥à¾å¤ÇÁö¤ë¥µ¡¼¥Ð¤ÈÄÌ¿®¤·¤Þ¤¹¡£

        +

         Win32 libpq ¥é¥¤¥Ö¥é¥ê¤È psql ¤òºî¤ë¤¿¤á¤Ë¡¢win31.mak ¤¬ÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤Þ¤¹¡£PostgreSQL¤Ï ODBC ¥¯¥é¥¤¥¢¥ó¥È¤È¤âÄÌ¿®¤Ç¤­¤Þ¤¹¡£

        +
        +
        +¥µ¡¼¥Ð
        +

         ¸½ºß¡¢Cygnus Unix/NT °Ü¿¢¥é¥¤¥Ö¥é¥ê¤Î Cygwin ¤ò»È¤Ã¤Æ¡¢PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥µ¡¼¥Ð¤Ï Windows NT ¤È Win2k ¾å¤Ç²ÔƯ¤·¤Æ¤¤¤Þ¤¹¡£ÇÛÉۤ˴ޤޤì¤ëpgsql/doc/FAQ_MSWIN¤¢¤ë¤¤¤Ï¥¦¥§¥Ö¥µ¥¤¥È¤Ë¤¢¤ë MS Windows FAQ ¤ò¤´Í÷²¼¤µ¤¤¡£Microsoft ¤ÎÁǤΥץé¥Ã¥È¥Û¡¼¥à¤Ë°Ü¿¢¤¹¤ë·×²è¤Ï¤¢¤ê¤Þ¤»¤ó¡£

        +
        +
        +

        +

        1.5) PostgreSQL ¤Ï¤É¤³¤«¤é¼ê¤ËÆþ¤ê¤Þ¤¹¤«¡©

        +

         PostgreSQL ¤Î¸µ¤Î anonymous ftp ¥µ¥¤¥È¤Ç¤¹¡§

        +
        +
          +   
        •     ftp://ftp.PostgreSQL.org/pub/
        • +
          +
          +

           ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£

          +
          +
          +    [ÌõÃí:
          +
          +   °Ê²¼¤ÏÆüËܤΥߥ顼¥µ¥¤¥È¤Ç¤¹:
          +
          +       Japan: ftp://mirror.nucba.ac.jp/mirror/postgresql/pub/
          +       Japan: ftp://ring.ip-kyoto.ad.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.crl.go.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.saitama-u.ac.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.astem.or.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.exp.fujixerox.co.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.jah.ne.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.etl.go.jp.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.asahi-net.or.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.so-net.ne.jp/pub/misc/db/postgresql/
          +       Japan: ftp://ring.aist.go.jp/pub/misc/db/postgresql/
          +    ]
          +
          +
          +

          +
          +

          1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©

          +
          +

           ¼çÍפʥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï: [email protected]¤Ç¤¹¡£PostgreSQL ¤Ë´Ø¤¹¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Î¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject ¹Ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢

          +
          +
          +   subscribe
          +   end
          +
          +
          +

           [email protected] ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

          +
          +

           ¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤Ë¡§

          +
          +
          +   subscribe
          +   end
          +
          +
          +¤È½ñ¤¤¤Æ  [email protected] ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
          +
          +

           ¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤¬¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸ 30k ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£

          +
          +

           ¥Ð¥°¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤È¤¤¤Ã¤·¤ç¤Ë¡§

          +
          +
          +¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
          +
          +

           ³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥ᡼¥ë¤ÎËÜʸ¤Ë¡§

          +
          +

          +
          +   subscribe
          +   end
          +
          +
          +

           ¤È½ñ¤¤¤Æ¡¢[email protected]¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

          +
          +

           PostgreSQL ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤±¤ì¤Ð¡¢¼¡¤Î postgreSQL WWW¥Û¡¼¥à¥Ú¡¼¥¸¤«¤é¤¿¤É¤ì¤Þ¤¹¡§

          +
          +
          +       http://www.PostgreSQL.org
          +
          +

          +
          +IRC ¥Á¥ã¥ó¥Í¥ë¤â EFNet ¤Ë¤¢¤ê¤Þ¤¹¡£¤½¤Î¥Á¥ã¥ó¥Í¥ë¤Ï #PostgreSQL ¤Ç¤¹¡£
          +unix ¥³¥Þ¥ó¥É¤Çirc -c '#PostgreSQL' "$USER" irc.phoenix.net
          +¤ò»È¤¤¤Þ¤¹¡£

          +
          +
          +    [ÌõÃí:
          +     1999ǯ7·î23Æü¡¢ÆüËÜPostgreSQL¥æ¡¼¥¶¡¼²ñ(¤Ë¤Û¤ó ¤Ý¤¹¤È¤°¤ì¤¹ ¤æ¡¼¤¶¡¼ ¤«¤¤)¡¢Î¬¾ÎJPUG¤¬ÀßΩ¤µ¤ì¤Þ¤·¤¿¡£
          +   JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤Ç¤¹¡£
          +   Àµ²ñ°÷¤Î²ñÈñ¤Ï̵ÎÁ¤Ç¤¹¤¬¡¢²ñ°÷¤ÎÀѶËŪ¤Ê¹×¸¥¤¬²ñ¤Î±¿±Ä¤ò½õ¤±¤Æ¤¤¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢JPUG¤ÎWeb ¥µ¥¤¥È:
          +       http://www.jp.postgresql.org/
          +   ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£²ñ°÷ÅÐÏ¿¤â²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
          +     1990ǯÂåÃæ¤´¤í¤è¤ê¡¢¥Ý¥¹¥È¥°¥ì¥¹¤ÎÆüËܸì¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤òÀаæ Ã£Éפµ¤ó¤¬¼çºÅ¤·¤Æ¤¤¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢
          +       http://www.sra.co.jp/people/t-ishii/PostgreSQL/ML/info.html
          +   ¤ò¤´Í÷²¼¤µ¤¤¡£¥¢¡¼¥«¥¤¥Ö¤ò¡¢¤¤¤ï¤­¤ê¤µ¤ó¤Îpgsql-jp ML¸¡º÷¥·¥¹¥Æ¥à
          +       http://datula.mio.org/~iwakiri/pgsql_jp/
          +   ¤Ç¸¡º÷¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
          +   ]
          +
          +
          +
          +

          ¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://www.postgresql.org/users-lounge/commercial-support.html¤Ë¤¢¤ê¤Þ¤¹¡£

          +
          +
          +    [ÌõÃí:
          +    ÆüËܤǤϡ¢SRA Inc. ¥ª¡¼¥×¥ó¥·¥¹¥Æ¥à»ö¶ÈÉô ¤Ë¤Æ¾¦ÍÑ¥µ¥Ý¡¼¥È¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
          +   ¥ß¥é¥¯¥ë¡¦¥ê¥Ê¥Ã¥¯¥¹³ô¼°²ñ¼Ò ¤Ç "Miracle Linux for PostgreSQL" ¤ÎÈÎÇä¤È¥µ¥Ý¡¼¥È¤¬
          +   ³«»Ï¤µ¤ì¤Þ¤·¤¿¡£
          +    ]
          +
          +
          +

          +
          +

          1.7) ºÇ¿·ÈǤϲ¿¤Ç¤¹¤«

          +
          +

           PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.0.3 ¤Ç¤¹¡£

          +

          +²æ¡¹¤Ï¡¢4¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
          +

          +
          +

          1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©

          +
          +

           ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸)¤ª¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿¡¢¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¡¢

          +HREF="http://www.PostgreSQL.org/users-lounge/docs/">
          +http://www.PostgreSQL.org/users-lounge/docs/
          +¤Ç¤â±ÜÍ÷¤Ç¤­¤Þ¤¹¡£
          +
          +

            PostgreSQL ¤ÎËܤ⤢¤ê¤Þ¤¹¡£ 

          +HREF="http://www.PostgreSQL.org/docs/awbook.html">
          +http://www.PostgreSQL.org/docs/awbook.html

          +
          +
          +    [ÌõÃí:
          +   ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤ÎPostgreSQL BookËÝÌõʬ²Ê²ñ¤Ç¡¢
          +   ËÝÌõºî¶È¤¬¿Ê¹ÔÃæ¡£
          +    ]
          +
          +
          +

           psql ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£

          +
          +

           ²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£

          +
          +

          +

          1.9) ´ûÃΤΥХ°¤ä̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©

          +

          +
          +PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
          +²æ¡¹¤Î¥Ú¡¼¥¸¤Î
          +
          +TODO ¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾­Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£
          +
          +

           

          +

          1.10)   SQL ¤Ï¤É¤Î¤è¤¦¤Ë³Ø¤Ù¤ÐÎɤ¤¤Ç¤¹¤«¡©

          +

          +
          +http://www.PostgreSQL.org/docs/awbook.html
          +¤Ë¤¢¤ëPostgreSQLËܤǠSQL ¤ò¶µ¤¨¤Æ¤¤¤Þ¤¹¡£
          +
          +

          +ÁÇÀ²¤é¤·¤¤³Ø½¬½ñ¤Ë¤Ï¡¢
          +
          +http://w3.one.net/~jhoffman/sqltut.htm ¤È
          +
          +http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM.

          +¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾¤Ë¡¢
          +"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
          +   ¤¬¤¢¤ê¤Þ¤¹¡£
          +    ¶áƣľʸ»á¤Î¡Ö½é¿´¼Ô¸þ¤Î£Ä£ÂÀ߷ׯþÌ硦£Ó£Ñ£ÌÆþÌ绲¹Í½ñ¾Ò²ð¡×¤Î¥³¡¼¥Ê¡¼
          +       http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html
          +   ¤¬¤¢¤ê¤Þ¤¹¡£
          +    ËÙÅÄÎѱѻá¤Î¡Ö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)   ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©

          +
          +
          +

          "bug-template" ¥Õ¥¡¥¤¥ë¤Î¹àÌܤòËþ¤¿¤·¤Æ¡¢[email protected]¤ËÁ÷¤Ã¤Æ²¼¤µ¤¤¡£

          +
          +

           ¤½¤ÎÁ°¤Ë http://postgreSQL.org¤Ë¤¢¤ëºÇ¿·¤Î FAQ ¤ò¥Á¥§¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£

          +
          +

           ¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È ftp://ftp.postgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

          +
          +

          +

          1.14)   Â¾¤ÎDBMS¤Î¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©

          +

          +
          +¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀ­Ç½¤È¿®ÍêÀ­¤È¥µ¥Ý¡¼¥È¤È²Á³Ê¤Ç¤¹¡£
          +
          +
          +
           µ¡Ç½(Features)
          +
          +
          +PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¤ä¥È¥ê¥¬¡¼¤ä¥Ó¥å¡¼¤ä³°Éô¥­¡¼
          +»²¾È¤ä¡¢¤½¤·¤Æ¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç½¤ò¤Û
          +¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£PostgreSQL¤Ï¡¢¤µ¤é¤Ë¡¢¥æ¡¼¥¶ÄêµÁ·¿¤ä·Ñ¾µ¤ä¥Þ¥ë¥Á-
          +¥Ð¡¼¥¸¥ç¥ó¡¦¥³¥ó¥Æ¥ó¥·¥ç¥ó¤Ê¤É¡¢¾¦ÍÑDBMS¤¬»ý¤Á¹ç¤ï¤»¤Ê¤¤µ¡Ç½¤ò¤¤¤¯¤Ä¤«
          +»ý¤Á¹ç¤ï¤»¤Æ¤¤¤Þ¤¹¡£³°Éô¥­¡¼¤Î»²¾ÈÀ°¹çÀ­(foreign key referential
          +integrity)¤ä¥í¥Ã¥¯¡¦¥³¥ó¥Æ¥ó¥·¥ç¥ó¤ò¸º¤é¤¹¤¿¤á¤Î³°Éô¶¥¹ç¾õÂÖÀ©¸æ
          +(outer concurrency control)¤Ï»ý¤Á¹ç¤ï¤»¤Þ¤»¤ó¡£
          +
          +

          +
          +
           À­Ç½(Performance)
          +
          +
          +PostgreSQL¤ÏÆó¤Ä¤Î¥â¡¼¥É¤ÇÁö¤ê¤Þ¤¹¡£ÉáÄ̤Îfsync¥â¡¼¥É¤Ï¡¢OS¤¬¥¯
          +¥é¥Ã¥·¥å¤·¤¿¤ê¡¢¿ôÉøå¤ËÅŸ»¤¬Íî¤Á¤¿¤ê¤·¤¿¤È¤­¤Î¤¿¤á¤Ë¡¢¥È¥é¥ó¥¶¥¯¥·¥ç
          +¥ó¤¬´°Î»¤¹¤ëËè¤Ë¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¡¢¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤ò¥Ç¥£¥¹¥¯¤ËÊݸ¤·¤Þ
          +¤¹¡£¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢¤Û¤È¤ó¤É¤Î¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤è¤ê¤âÃÙ¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½
          +¤ÎÉôʬŪ¤ÊÍýͳ¤È¤·¤Æ¡¢¾¦ÍѤΥǡ¼¥¿¥Ù¡¼¥¹¤ÎÃæ¤Ë¤Ï¤³¤Î¤è¤¦¤ËÊݼéŪ¤Ê¥Ç¥£
          +¥¹¥¯½ñ¤­¹þ¤ß¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ¤¤¤ë¤â¤Î¤¬¾¯¤Ê¤¤¤È¤¤¤¦¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
          +no-fsync¥â¡¼¥É¤Ç¡¢ÉáÄÌ¡¢PostgreSQL¤Ï¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤è¤ê¤â®¤¯
          +¤Ê¤ê¤Þ¤¹¤¬¡¢¤·¤«¤·¤Ê¤¬¤é¡¢OS¤Î¥¯¥é¥Ã¥·¥å¤Ç¥Ç¡¼¥¿¤¬Ç˲õ¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ
          +¤»¤ó¡£²æ¡¹¤Ï¡¢¤½¤ÎÃæ´Ö¥â¡¼¥É¤ò³«È¯Ãæ¤Ç¡¢¤½¤ì¤¬¤¦¤Þ¤¯¤æ¤¯¤È¡¢´°Á´fsync
          +¥â¡¼¥É¤Û¤ÉÀ­Ç½¤òµ¾À·¤Ë¤¹¤ë¤³¤È¤Ê¤¯¡¢OS¤¬¥¯¥é¥Ã¥·¥å¤¹¤ë30ÉÃÁ°¤Þ¤Ç¤Î¥Ç¡¼
          +¥¿À°¹çÀ­¤òÊݤƤë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
          +

          +
          +MySQL¤Ê¤É¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢PostgreSQL¤ÎÁÞÆþ¡¿
          +¹¹¿·¤¬ÃÙ¤¤¤Î¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¤è¤ë¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£¤â
          +¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ­¤ÎFeatures¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Þ¤Ã¤¿¤¯¤¢
          +¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢PostgreSQL¤Ë½ÀÆðÀ­¤Èµ¡Ç½À­¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤º¡¢
          +¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ë³Ý¤±¤¿¤ê¥½¡¼¥¹¥³¡¼¥É¤ò²òÀϤ·¤¿¤ê¤·¤Æ¡¢À­Ç½¤Î²þÁ±¤ò³¤±
          +¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤È MySQL ¤È¤òÈæ³Ó¤·¤Æ¤¤¤ëÌÌÇò¤¤ Web ¥Ú¡¼¥¸¤¬
          +
          +http://openacs.org/why-not-mysql.html
          +¤Ë¤¢¤ê¤Þ¤¹¡£
          +

          +
          +PostgreSQL¤Ï¡¢Unix¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤ê¥æ¡¼¥¶¡¼Àܳ¤òÁàºî¤·¤Þ¤¹¡£
          +Ê£¿ô¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬¾ðÊó¤ò¥í¥Ã¥¯¤·¤Ê¤¬¤é¥Ç¡¼¥¿¡¦¥Ð¥Ã¥Õ¥¡¡¼¤ò
          +¶¦Í­¤·¤Þ¤¹¡£¥Þ¥ë¥ÁCPU¤Ç¤Ï¡¢´Êñ¤ËÊ£¿ô¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¤½¤ì¤¾¤ì¤ÎCPU¤ÇÁö
          +¤é¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

          +
          +
          +
           ¿®ÍêÀ­(Reliability)
          +
          +
          +²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ­¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½
          +ʬ¥Æ¥¹¥È¤·¤Æ¡¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤Ë¶Ð
          +¤á¤Æ¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô
          +¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥ê¡¼¥¹¤Ç
          +¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈÈæ¤Ù¤Æ¤â½¿§
          +¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
          +
          +
           ¥µ¥Ý¡¼¥È(Support)
          +
          +
          +²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤É¤ó¤ÊÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤ò½õ¤±¤Æ¤¯¤ì
          +¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎËÄÂç¤Ê¥°¥ë¡¼¥×¤òÍʤ·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê¤Î²ò·è¤òÊÝ
          +¾Ú¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì¤ë¤ï¤±
          +¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£³«È¯¼Ôã¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë¡¢
          +¥½¡¼¥¹¥³¡¼¥É¤Ê¤É¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤È¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï¡¢
          +¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè
          +¤Î¾¦ÍÑ¥µ¥Ý¡¼¥È¤â¤¢¤ê¤Þ¤¹¡Ê¥µ¥Ý¡¼¥ÈFAQ¹àÌܤò¤´Í÷²¼¤µ¤¤¡Ë¡£
          +
          +
           ²Á³Ê(Price)
          +
          +
          +PostgreSQL¤Î»ÈÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ­¤Ë¼¨¤·¤Æ¤¢
          +¤ëBSD¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³¡¼¥É¤òÀ©¸Â̵¤·¤Ç
          +¾¦ÉʤËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
          +

          +
          +

          +
          +

          ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä

          +

          +
          +

          2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©

          +
          +
          +

           PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£

          +
          +

           PsqlODBC ¤Ï PostgreSQL ¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ë¤Ä¤¤¤Æ¤Î¤µ¤é¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ï 

          +ftp://ftp.PostgreSQL.org/pub/odbc/
          +¤«¤é¼èÆÀ¤Ç¤­¤Þ¤¹¡£

          +
          +
          +    [ÌõÃí:
          +   PsqlODBC ¤Î ÆüËܸì¥Ñ¥Ã¥Á¤òÊÒ²¬ÍµÀ¸¤µ¤ó([email protected])¤¬ºî¤é¤ì¤Þ¤·¤¿:
          +   ¡ühttp://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/index.html
          +    ]
          +
          +
          +

           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.webtools.com ¤Ë¤¢¤ê¤Þ¤¹¡£
          +

          http://www.phone.net/home/mwm/hotlist/¤Ë¤â¡¢¤â¤¦°ì¤Ä¤¢¤ê¤Þ¤¹¡£

          +

           Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://www.php.net/¤Ë¤¢¤ê¤Þ¤¹¡£

          +
          +
          +    [ÌõÃí:
          +     PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ­¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
          +       http://www.php.gr.jp/
          +   ¤¢¤ë¤¤¤Ï¡¢×¢Àî Îव¤ó¤Î¥µ¥¤¥È
          +       http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
          +   ¤Ë¤«¤Ê¤ê¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
          +     Á°ÅÄ ½¼¹¨¤µ¤ó¤Ë¤è¤êºî¤é¤ì¤¿PHP/FI¤ÎÆüËܸì¥Ñ¥Ã¥Á¤¬ÍÍ¡¹¤Ê¿Í¤Î¼ê¤ò·Ð¤ÆPHP3.0.7¤ËŬÍѤµ¤ì¤Þ¤·¤¿¡£
          +   ¸½ºß¤ÏPHPJ-DEV¤Ë¤Æ¡¢
          +       http://php.jpnnet.com/
          +   º´Æ£¤µ¤ó¤òÃæ¿´¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È³ÈÄ¥¤È¤·¤Æºî¤êľ¤µ¤ì¡¢ºÇ¿·ÈǤÏPHP-3.0.18¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
          +     ÄÍÅÄ ÂîÌ餵¤ó¤Ï¡¢PHP4 ÍÑ¤ÎÆüËÜ¸ì´Ø·¸¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë
          +       ftp://night.fminn.nagano.nagano.jp/php4/
          +   ¤òÍѰդ·¤Æ²¼¤µ¤Ã¤Æ¤Þ¤¹¡£
          +     ËܲȤÎÊý¤Ç¹ñºÝ²½¤ÎML¤âΩ¤Á¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹¡£
          +    ]
          +
          +
          +

           Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È CGI.pm ¤ò»È¤¤¤Þ¤¹¡£

          +
          +

           Perl ¤ò»È¤Ã¤¿ WDB ¤ò´ð¤Ë¤·¤¿ WWW ¥²¡¼¥È¥¦¥§¥¤¤Ïhttp://www.eol.ists.ca/~dunlop/wdb-p95¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£

          +
          +
          +    [ÌõÃí:
          +   WDB ¤Ï¡¢Web ¤«¤é DataBase ¤Ø¤Î Perl ¤Î Interface ¤Ç¤¹¡£
          +   wdb-p95 ¤Ø¤Î¥ê¥ó¥¯¤ÏÀÚ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£¤ª¤½¤é¤¯¡¢Perl DBI ·Ðͳ¤Ç DBD::Pg ¤ÎÍøÍѤ¬²Äǽ¤È»×¤ï¤ì¤Þ¤¹¡£
          +   ¸½ºß¡¢WDBI ¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î
          +       http://www.egroups.com/list/wdb-users/
          +   ¤È¡¢WDB¤Î̾Á°¤Î¤Þ¤Þ¤Î¤â¤Î
          +       http://www.i-con.dk/wdb/
          +   ¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î·Ð°Þ¤Ï¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£
          +    ]
          +
          +
          +

          +

          2.3) PostgreSQL ¤Ï¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤«¡© ¥ì¥Ý¡¼¥È¡¦¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡© Ëä¤á¹þ¤ßÌ䤤¹ç¤ï¤»¸À¸ì¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡©

          +
          +
          +

           pgaccess ¤È¸Æ¤Ð¤ì¤ëÁÇÀ²¤é¤·¤¤¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¤¢¤ê¡¢¤³¤ÎÇÛÉۤȶ¦¤Ë½Ð²Ù¤µ¤ì¤Þ¤¹¡£Pgaccess ¤Ë¤Ï¥ì¥Ý¡¼¥È¡¦¥¸¥§¥Í¥ì¡¼¥¿¤â¤¢¤ê¤Þ¤¹¡£Web ¥Ú¡¼¥¸¤Ïhttp://www.flex.ro/pgaccess¤Ç¤¹¡£

          +
          +

           ecpg ¤È¤¤¤¦ C ¸À¸ì¤Î¤¿¤á¤ÎËä¤á¹þ¤ß SQL Ì䤤¹ç¤ï¤»¸À¸ì¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£

          +
          +

          +

          2.4) PostgreSQL ¤ÈÄÌ¿®¤¹¤ë¤Ë¤Ï¤É¤ó¤Ê¸À¸ì¤¬»È¤¨¤Þ¤¹¤«¡©

          +
          +
          +

          °Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹:

          +
          +
            +
          • C (libpq)
          • +
          • C++ (libpq++)
          • +
          • Ëä¤á¹þ¤ßC (ecpg)
          • +
          • Java (jdbc)
          • +
          • Perl (perl5)
          • +
          • ODBC (odbc)
          • +
          • Python (PyGreSQL)
          • +
          • TCL (libpgtcl)
          • +
          • C Easy API (libpgeasy)
          • +
          • Ëä¤á¹þ¤ßHTML (PHP from http://www.php.net)
          • +
            +

            +
            +
            +    [ÌõÃí¡§
            +   ruby¤Îºî¼Ô¤Ç¤¢¤ë¤Þ¤Ä¤â¤È ¤æ¤­¤Ò¤í([email protected])¤µ¤ó¤È¡¢¤Þ¤Ä¤â¤È ¤¨¤¤¤¸([email protected])¤µ¤ó¤¬
            +   ruby ¤Î PostgreSQL ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òºî¤ê¤Þ¤·¤¿¡£¸½ºß¤Î°Ý»ý´ÉÍý¤ÏÀÆÆ£ ÅФµ¤ó¤¬¤·¤Æ¤¤¤Þ¤¹¡£
            +       http://webclub.kcom.ne.jp/mb/noborus/ruby/
            +        PgBash ¤Ï ¶­ÅÄ ²íÌÀ ¤µ¤ó¤¬ºî¤Ã¤¿ bash ¤Î PostgreSQL ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£
            +       http://www.psn.co.jp/PostgreSQL/pgbash/
            +   Bash¥³¥Þ¥ó¥É¥é¥¤¥ó¤Çpostgres ¤ËÌ䤤¹ç¤ï¤»¤Ç¤­¤Þ¤¹¡£
            +    ]
            +
            +
            +

            +

            +
            +

            ´ÉÍý¾å¤Î¼ÁÌä

            +

            +
            +

            3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Þ¤¹¤«¡©

            +
            +

             ´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤­¤Ë --prefix ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£

            +
            +

            +

            3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

             ¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V IPC ¤Î³ÈÄ¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë¶¦Í­¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£

            +
            +

            +

            3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

             ¥«¡¼¥Í¥ë¤¬¶¦Í­¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂФ·¤Æ»È¤¨¤ë¶¦Í­¥á¥â¥ê¡¼¤ÎÂ礭¤µ¤òÂ礭¤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂ礭¤µ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤­¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡£

            +
            +

            +

            3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

            ¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left on device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ·¤Þ¤¹¡£¤È¤ê¤¢¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤­¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£

            +

            ¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿¤¯¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£

            +
            +

            +
            +

            3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¼«Ê¬¤Î PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤òËɤ°¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

            +
            +
            +

                ´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤ò»È¤¦¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£postmaster µ¯Æ°¤Ë -i ¥Õ¥é¥Ã¥°¤ò²Ã¤¨¡¢$PGDATA/pg_hba.conf ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿¤Îǧ¾Ú¤ò»È¤ï¤Ê¤¤¤«¤®¤ê¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ë¤è¤êTCP/IP¤ÎÀܳ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

            +

            ÁàºîÉÔǽ¤Ê¥»¥Þ¥Õ¥©¤â²áÅ٤Υǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹Ãæ¤Ë¥¯¥é¥Ã¥·¥å¤ò°ú¤­µ¯¤³¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

            +
            +

            +

            3.6) Â¾¤Î¥Þ¥·¥ó¤«¤é¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

             ´ûÄê¤ÎÀßÄê¤Ç¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤Î unix ¥É¥á¥¤¥ó¤Î¥½¥±¥Ã¥ÈÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£TCP/IP Àܳ¤ò²Äǽ¤Ë¤¹¤ë¤Ë¤Ï postmaster ¤¬ -i ¥ª¥×¥·¥ç¥ó¤Ç³«»Ï¤µ¤ì¤Æ¤¤¤Æ¡¢pgsql/data/pg_hba.conf ¥Õ¥¡¥¤¥ë¤ËŬÀڤʥۥ¹¥È¤Îµ­ºÜ¤¬Äɲäµ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£

            +
            +

            +

            3.7) ¤è¤ê¤è¤¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¡¢¤É¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤òÄ´À°¤Ç¤­¤Þ¤¹¤«¡©

            +
            +
            +

             ³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN¥³¥Þ¥ó¥É¤Ç PostgreSQL ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤·¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

            +

            ¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂ礭¤Ê¥Ð¥Ã¥Á½èÍý¤Ç¤½¤ì¤ò¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡¤Ë¡¢BEGIN WORK/COMMIT ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬¤½¤ì¤¾¤ì¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Â礭¤Ê¥Ç¡¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£

            +
            +

             ¥Á¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£postmaster ¤ò -o -F ¥ª¥×¥·¥ç¥ó¤Çµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢fsync() ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£

            +
            +

             postmaster -B ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦Í­¥á¥â¥ê¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礭¤¯¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢¥«¡¼¥Í¥ë¤Î¶¦Í­¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤Ã¤¦¤¿¤á¤Ë postmaster ¤¬Áö¤é¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ï 8K ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 64 ¤Ç¤¹¡£

            +
            +

             ¥Ð¥Ã¥¯¥¨¥ó¥É¤ò -S ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤½¤Î -S ¤ÎÃͤϥ­¥í¥Ð¥¤¥Èñ°Ì¤Ç¡¢´ûÄêÃͤϠ512 (¤¹¤Ê¤ï¤Á¡¢512K)¤Ç¤¹¡£

            +
            +

             ¤Þ¤¿¡¢CLUSTER ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë¥°¥ë¡¼¥×²½¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER ¤ò¸«¤Æ²¼¤µ¤¤¡£

            +
            +

            +

            3.8) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©

            +
            +

             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¤ò³«»Ï¤¹¤ë¤È¡¢psql ¤Ç»È¤ï¤ì¤ë postgres¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»¥Ã¥È¤·¡¢psql¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï¡¢PGOPTIONS="-W n" ¤òÀßÄê¤Ç¤­¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n Éó«»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥¢¥¿¥Ã¥Á¤·¤Æ»Ïư¤ò½ç¤òÄɤäƸ«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

            +
            +

             postgreSQL ¥×¥í¥°¥é¥à¤Ë¤Ï¡¢¥Ç¥Ð¥°¤ÈÀ­Ç½Â¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä -s¤ä -A¤ä -t Åù¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£

            +
            +

             ²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê¥×¥í¥Õ¥£¡¼¥ëÉÕ¤­¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼¥ë¡¦¥Õ¥¡¥¤¥ë¤Ï pgsql/data/base/dbname ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£

            +
            +
            +

            +

            3.9) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

             postmaster¤¬Æ±»þ»Ïư¤Ç¤­¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

            +

            PostgreSQL 6.5°Ê¹ß¤Ç¤Ï¡¢´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£Å¬ÀÚ¤Ê-N¤ÎÃͤÇpostmaster¤òºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤è¤êÁý²Ã¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´ûÄê¤Î¹½À®¤Ç¤Ï-N¤ÏºÇÂç1024¤Þ¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢¤â¤Ã¤ÈɬÍפǤ¢¤ì¤Ðinclude/config.h¤ÎÃæ¤ÎMAXBACKENDS¤òÁý²Ã¤µ¤»¡¢ºÆ¹½ÃÛ¤·¤Þ¤¹¡£¤â¤·¡¢Ë¾¤à¤Ê¤éconfigure¤Î --with-maxbackendsÀÚÂØ¤ò»È¤Ã¤Æ¡¢-N¤Î´ûÄêÃͤò¹½À®»þ¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£

            +
            +

            ¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礭¤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂ礭¤¤ÃͤËÁý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀ­Ç½¤ò˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂ礭¤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹¤ë¤È¡¢¤¤¤í¤¤¤í¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£

            +¶¦Í­¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢
            +¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢
            +¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢
            +¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢
            +³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô(NFILE¤ÈNINODE
            +¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£
            +PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
            +¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë¤¿¤á¤Ç¤¹¡£
            +
            +

            6.5¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎPostgreSQL¤Ç¤Ï¥Ð¥Ã¥¯¥¨¥ó¥É¤ÎºÇÂç¿ô¤Ï64¤Ç¤·¤¿¤¬¡¢Êѹ¹¤¹¤ë¤Ë¤Ï¡¢include/storage/sinvaladt.h¤ÎÃæ¤ÎMaxBackendIdÄê¿ô¤ò½¤Àµ¤·¤¿¸å¤ËºÆ¹½ÃÛ¤¬É¬ÍפǤ·¤¿¡£

            +
            +

            +

            3.10)   ¼«Ê¬¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë pg_sorttemp.XXX¥Õ¥¡¥¤¥ë¤Ï²¿¤Ç¤¹¤«¡©

            +
            +
            +

             Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂ礭¤Ê¥¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«À¸À®¤µ¤ì¤Þ¤¹¡£

            +

            +°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç¥Ð¥Ã¥¯¥¨¥ó¥É¤¬ÄÙ¤ì¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¤½¤Î¤È¤­¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤Ò¤È¤Ä¤âÁö¤Ã¤Æ¤Ê¤±¤ì¤Ð¡¢pg_tempNNN.NN¥Õ¥¡¥¤¥ë¤ò¾Ã¤·¤Æ¤â°ÂÁ´¤Ç¤¹¡£
            +
            +

            +

            +
            +

            Áàºî¾å¤Î¼ÁÌä

            +

            +
            +

            4.1) ¤Ê¤¼¡¢¥·¥¹¥Æ¥à¤Ï¥«¥ó¥Þ¤ä¾®¿ôÅÀ¤äÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤Çº®Í𤹤ë¤Î¤Ç¤¹¤«¡©

            +
            +
            +

             ¥í¥±¡¼¥ë¤ÎÀßÄê¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£PostgreSQL ¤Ï postmaster ¥×¥í¥»¥¹¤òÁö¤é¤»¤¿¥æ¡¼¥¶¡¼¤Î¥í¥±¡¼¥ë¤ÎÀßÄê¤ò»È¤¤¤Þ¤¹¡£postgres ¤Èpsql ¤Ë¤Ï SET ¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¥Ç¡¼¥¿½ñ¼°¤òÀ©¸æ¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤ò¤¢¤Ê¤¿¤ÎÁàºî´Ä¶­¤Ë¹ç¤ï¤»¤ÆÀßÄꤷ¤Æ²¼¤µ¤¤¡£

            +
            +

            +

            4.2) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾ï¤Î¥«¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©

            +
            +
            +

             ¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£

            +
            +

            +

            4.3) Ì䤤¹ç¤ï¤»¤ÎºÇ½é¤Î¿ô¹Ô¤Î¤ß¤ò SELECT ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

            +
            +
            +

             ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ... LIMIT....¤ò»È¤Ã¤Æ¤ß¤Æ²¼¤µ¤¤¡£

            +
            +

            ¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¹Ô¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£

            +¤â¤·¡¢ORDER BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¹Ô¤À¤±¤Çɾ²Á¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL ¤Ï°Õ¿Þ¤·¤¿¹Ô¤¬À¸À®¤µ¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¹Ô¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
            +
            +

            +

            4.4) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

            +
            +
            +

            +  psql¤Î¥½¡¼¥¹¥³¡¼¥É¤¬½ñ¤«¤ì¤¿ pgsql/src/bin/psql/describe.c ¥Õ¥¡¥¤¥ë¤òÆÉ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
            +¤½¤³¤Ë¤Ï¡¢psql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤Ë¤è¤ë½ÐÎϤΤ¿¤á¤ÎSQL¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ psql ¤Ë -E ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æµ¯Æ°¤¹¤ì¤Ð¡¢Í¿¤¨¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ÎÌ䤤¹ç¤ï¤»¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£
            +

            +
            +
            +

            4.5) ¥Æ¡¼¥Ö¥ë¤«¤é¤ÎÎó¤Îºï½ü¤Ï¤É¤Î¤è¤¦¤Ë¤·¤Þ¤¹¤«¡©

            +
            +
            +

             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.6) ¹Ô¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©

            +
            +
            +

             À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

            +
            +¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º?  À©¸Â̵¤· (60GB ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤â¸ºß¤·¤Þ¤¹)
            +¥Æ¡¼¥Ö¥ë¤ÎºÇÂ祵¥¤¥º?           16TB
            +¹Ô¤ÎºÇÂ祵¥¤¥º?                 7.1°Ê¹ß¤ÇÀ©¸Â̵¤·
            +¥Õ¥£¡¼¥ë¥É¤ÎºÇÂ祵¥¤¥º?         7.1°Ê¹ß¤Ç1GB
            +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂç¥í¥¦¿ô?       À©¸Â̵¤·
            +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祫¥é¥à¿ô?     ¥«¥é¥à¤Î·¿¤Ë¤è¤ê250-1600
            +¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祤¥ó¥Ç¥¯¥¹¿ô? À©¸Â̵¤·
            +
            +
            +

             ¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã¥×¥¹¥Ú¡¼¥¹¤ÎÂ礭¤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£À­Ç½¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Â礭¤Ê»þ¤ËÀú¤ê¤ò¼õ¤±¤Þ¤¹¡£

            +
            +

             ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î16TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥é¡¼¥¸¡¦¥Õ¥¡¥¤¥ë¥µ¥Ý¡¼¥È¤ÏɬÍפȤ·¤Þ¤»¤ó¡£¥é¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤ËÊݸ¤µ¤ì¤Þ¤¹¡£

            +
            +

             ¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤ÈºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂ祫¥é¥à¿ô¤È¤¬Áý²Ã¤·¤Þ¤¹¡£

            +
            +
            +

            +

            4.7) °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¡©

            +
            +
            +PostgreSQL ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ÉáÄ̤Υե¡¥¤¥ë¤ÎÌó6.5ÇܤΥǥ£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡£

            +

             ³Æ¹Ô¤ËÆó¤Ä¤º¤ÄÀ°¿ô¤ò»ý¤Ä 300,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤¿¤À¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï 2.4MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤Ï¼¡¤Î¤è¤¦¤ËÌó14MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡§

            +
            +
            +    36 bytes: ³Æ¹Ô¤Î¥Ø¥Ã¥À(³µ»»)
            +   + 8 bytes: ³Æ4¥Ð¥¤¥È¤ÎÆó¤Ä¤ÎÀ°¿ô(int)¥Õ¥£¡¼¥ë¥É
            +   + 4 bytes: ¥Ú¡¼¥¸¾å¤Î¥¿¥Ã¥×¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿
            +   ----------------------------------------
            +   48 bytes per row
            +
            +   PostgreSQL ¤Î¥Ç¡¼¥¿¥Ú¡¼¥¸¥µ¥¤¥º¤Ï 8192¥Ð¥¤¥È(8KB)¤Ê¤Î¤Ç:
            +
            +   8192 bytes per page
            +   -------------------   =  171 rows per database page (ÀÚ¤ê¾å¤²)
            +     48 bytes per row
            +
            +   300000 data rows
            +   --------------------  =  1755 database pages
            +      171 rows per page
            +1755 database pages * 8192 bytes per page  =  14,376,960 bytes (14MB)
            +
            +
            +

            +¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ì¤Û¤É¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÍ׵ᤷ¤Þ¤»¤ó¤¬¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤µ¤ì¤ë¥Ç¡¼¥¿¤ò´Þ¤à°Ê¾å¡¢¤½¤ì¤Ê¤ê¤ËÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£
            +
            +

            +

            4.8) ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ËÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¤ä¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò¤É¤Î¤è¤¦¤Ë¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©

            +
            +
            +

             psql ¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¤³¤¦¤·¤¿¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤Î¼ïÎà¤ò¸«¤ë¤Ë¤Ï \? ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£

            +

             ¤Þ¤¿¡¢pgsql/src/tutorial/syscat.source ¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤½¤ì¤Ï¡¢Âô»³¤Î SELECT Ê¸¤Ë¤è¤êɬÍפʾðÊó¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¡¦¥Æ¡¼¥Ö¥ë¤«¤é¼è¤ê½Ð¤·¤ÆÎ㼨¤·¤Æ¤¯¤ì¤Þ¤¹¡£

            +
            +

            +

            4.9) Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«¡©

            +
            +
            +

             PostgreSQL ¤ÏÅý·×¾ðÊó¤ò¼«Æ°Åª¤Ë¤ÏÊݼ餷¤Þ¤»¤ó¡£Åý·×¾ðÊó¤ò¹¹¿·¤¹¤ë¤¿¤á¤Ë¤Ï¡¢VACUUM ¤òÁö¤é¤»¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£Åý·×¾ðÊ󤬹¹¿·¤µ¤ì¤¿¸å¤Ï¡¢¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¥Æ¡¼¥Ö¥ë¤Ë²¿¹Ô¤¢¤ë¤«¤òÃΤäơ¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ù¤­¤«¤Î·èÄê¤ò¤è¤êÎɤ¯²¼¤·¤Þ¤¹¡£¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¥Æ¡¼¥Ö¥ë¤¬¾®¤µ¤¯¤ÆÏ¢Â³¥¹¥­¥ã¥ó¤ÎÊý¤¬Â®¤¤¤Ç¤¢¤í¤¦¾ì¹ç¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤ï¤Ê¤¤¤³¤È¤Ë¤´Ãí°Õ²¼¤µ¤¤¡£

            +
            +

             ÎóÆÃÄê¤ÎºÇŬ²½Åý·×¤Î¤¿¤á¤ËVACUUM ANALYZE¤ò»È¤¤¤Þ¤¹¡£VACUUM ANALYZE¤ÏÊ£»¨¤ÊÊ£¹ç·ë¹ç(multi-join)Ì䤤¹ç¤ï¤»¤Î¤¿¤á¤ËÂçÀڤǤ¹¤Î¤Ç¡¢¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¤½¤ì¤¾¤ì¤Î¥Æ¡¼¥Ö¥ë¤«¤éÊÖ¤µ¤ì¤ë¹Ô¤Î¿ô¤ò¸«ÀѤ뤳¤È¤¬¤Ç¤­¡¢ÆÃÄê¤Î·ë¹ç½ç½ø¤òÁª¤Ó¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤Ï¤½¤ì¼«¿È¤Ç¤ÏÎó¤ÎÅý·×¤òÊÝ»ý¤·¤Ê¤¤¤Î¤Ç¡¢Äê´üŪ¤Ë¤½¤ì¤é¤ò½¸¤á¤ë¤¿¤á¤Ë¤Ï VACUUM ANALYZE ¤òÁö¤é¤»¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

            +
            +

             ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï ORDER BY Áàºî¤Î¤¿¤á¤Ë¤ÏÉáÄ̤ϻȤï¤ì¤Þ¤»¤ó¡£¤¹¤Ê¤ï¤Á¡¢½ç¼¡¥¹¥­¥ã¥ó¤Ë³¤¯ÌÀ¼¨Åª¥½¡¼¥È¤Ï¡¢¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤¬¤è¤ê¾¯¤Ê¤¯¤ÆºÑ¤à¤Î¤Ç¡¢µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÎÁ´·ï¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­¥ã¥ó¤¹¤ë¤è¤ê¤â¹â®¤Ç¤¹¡£

            +
            +

             LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»»»Ò(wild-card  operators)¤ò»È¤¦¤È¤­¡¢¸¡º÷¤Î³«»Ï¤¬Ê¸»úÎó¤Î»Ï¤á¤ÎÉôʬ¤Ë¸ÇÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Î¤ß¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤¹¡£

            +¤½¤¦¤¤¤¦¤ï¤±¤Ç¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢LIKE ¸¡º÷¤Ç¤Ï%¤Ç»Ï¤á¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¡¢¤Þ¤¿¡¢~(Àµµ¬É½¸½¸¡º÷)¤Ï^ ¤Ç»Ï¤á¤ë¤è¤¦¤Ë¤¹¤ë¤Ù¤­¤Ç¤¹¡£
            +
            +

            +

            4.10)   Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

            +
            +
            +

             ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£

            +
            +

            +

            4.11)   R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©

            +
            +

             R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï¥Ã¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À­¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤È¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦¤ÊÌ䤤¹ç¤ï¤»¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£

            +
            +

             R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:

            +
            +

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

            +Proc 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" 
            +       http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
            +   ¤ò¤´Í÷²¼¤µ¤¤¡£
            +    ]
            +
            +
            +

             Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤­¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree ¤Ï¤â¤Ã¤È¹â¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤­¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£

            +
            +

            +
            +    [ÌõÃí¡§
            +     ¥¤¥ó¥¿¡¼¥¦¥£¥º¤ÎÊÒ²¬¤µ¤ó¤¬Â¿¼¡¸µ´ö²¿¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î³ÈÄ¥ºî¶ÈÃæ¤Ç¤¹¡£¾Ü¤·¤¯¤Ï¡¢
            +   http://www.interwiz.koganei.tokyo.jp/software/geometric/index.html
            +   ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
            +    ]
            +
            +
            +
            +

            +

            4.12)   °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©

            +
            +
            +

             GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礭¤Ê·ë¹ç(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

            +
            +

            +

            4.13)   Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«¡©

            +
            +
            +

            +~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~* ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£ PostgreSQL 7.1 °Ê¹ß¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
            +
            +
            +
            +   WHERE lower(textfield) LIKE lower(pattern)
            +
            +
            +
            +

            +

            4.14)   Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

            +
            +
            +

             IS NULL¤Î¥«¥é¥à¤ò IS NOT NULL ¤Ç»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

            +
            +

            +

            4.15)   ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©

            +
            +
            +
            +Type            Internal Name   Notes
            +--------------------------------------------------
            +"char"          char            1 character
            +CHAR(#)         bpchar          »ØÄꤵ¤ì¤¿¸ÇÄêĹ¤È¤Ê¤ë¤è¤¦¤Ë¶õÇò¤¬µÍ¤á¤é¤ì¤ë
            +VARCHAR(#)      varchar         Ä¹¤µ¤Î¾å¸Â¤Î̵¤¤¥Æ¥­¥¹¥È
            +TEXT            text            Ä¹¤µ¤ÎÀ©¸Â¤ÏºÇÂç¹ÔŤˤè¤ë
            +BYTEA           bytea           ²ÄÊÑĹ¤Î¥Ð¥¤¥ÈÇÛÎó
            +
            +
            +

             ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤­¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤È¤­¤Ç¤¹¡£

            +
            +
            +

             ¾åµ­¤Î·¿¤Î¤¦¤Á¸å¤Î£´¤Ä¤Î·¿¤Ï "varlena" ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤Î¥Ç¡¼¥¿¤¬Â³¤­¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À¤µ¤ì¤¿Â礭¤µ¤è¤ê¤â¾¯¤·Â礭¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì¤µ¤ì¤¿¤êÊ£¿ô¹Ô¤ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£

            +
            +

            +

            4.16.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¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¤ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ëpg_dump ¤Ç -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

            +
            + Bruce Momjian ¤Î(http://www.PostgreSQL.org/docs/aw_pgsql_book)¤Î Numbering Rows¤Î¾Ï¤Ë¤¢¤ê¤¢¤Þ¤¹¡£
            +
            +
            +

            4.16.2)   SERIAL¥¤¥ó¥µ¡¼¥È¤ÎÃͤϤɤ¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©

            +

            +
            + ¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ÇÁÞÆþ¤¹¤ëÁ°¤Ë(before) SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤ÎSERIALÃͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£
            +4.16.1¤ÎÎã¤Ç»È¤Ã¤¿¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
            +
            +
            +   $newSerialID = nextval('person_id_seq');
            +   INSERT INTO person (id, name) VALUES ($newSerialID, 'Blaise Pascal');
            +
            +
            +¤½¤¦¤·¤Æ¡¢$newSerialID ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person ¥Æ¡¼¥Ö¥ë¤ËÂФ¹¤ë³°Éô¸°(foreign key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢<table>_<serialcolumn>_seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á¡¢table ¤È serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIALÎó¤Î̾Á°¤Ç¤¹¡£
            +

            +
            +¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after)¡¢ currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
            +
            +
            +   INSERT INTO person (name) VALUES ('Blaise Pascal');
            +   $newID = currval('person_id_seq');
            +
            +
            +ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢¤³¤ì¤ÏºÇ¤â°Ü¿¢À­¤ÎÄ㤤¤ä¤êÊý¤Ç¤·¤ç¤¦¡£Perl¤ÎDBI¤Ç Edmund Mergl ¤Î DBD::Pg ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->{pg_oid_status} ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡£
            +
            +

             

            +

            4.16.3)   Â¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤¿¤á¤Ë¤Ï¡¢currval() ¤È nextval() ¤Ï»È¤ï¤Ê¤¤¤Û¤¦¤¬¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©

            +

            +
            +¤¢¤ê¤Þ¤»¤ó¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤Ç½èÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
            +
            +
            +

             

            +

            4.17)   OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©

            +
            +
            +

             OID ¤È¤Ï°ì°Õ¤Î¹Ô ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì¤ë¤¹¤Ù¤Æ¤Î¹Ô¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤Ç(backend/access/transam.h ¤«¤é)ȯÀ¸¤µ¤ì¤ë OID ¤Ï¤¹¤Ù¤Æ 16384¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î 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¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤­¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò¼è¤ê½ü¤¯¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£

            +
            +

             TID ¤ÏÆÃÄê¤ÎʪÍý¹Ô¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£TID ¤Ï¹Ô¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID ¤Ï¡¢ÊªÍý¹Ô¤ò»Ø¤¹¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µ­ºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£

            +
            +

            +

            4.18)   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)
            • +
              +

              °ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§

              +href="http://www.comptechnews.com/~reaster/dbdesign.html">
              +http://www.comptechnews.com/~reaster/dbdesign.html
              +¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
              +
              +

              +

              4.19) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

              +
              +

              +¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¡¢¤¢¤ë¤¤¤Ï
              +¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤ÆÄ㤤À©¸ÂÃͤò»ý¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
              +postmaster ¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
              +
              +
              +   ulimit -d 262144
              +   limit datasize 256m
              +
              +
              +

               

              +¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ëºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL ¥¯¥é¥¤¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
              +
              +

              +

              4.20) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©

              +
              +

              +psql ¤«¤é select version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
              +

              +
              +
              +

              4.21)   ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©

              +
              +
              +

              ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤­¤Ï¡¢Á°¸å¤ËBEGIN WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ... lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£

              +
              +

              ¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Ï¥ó¥É¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥ë¡¼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢invalid large obj descriptor(¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤Îµ­½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤Î¤Ç¤¹¡£

              +
              +

              ¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commit off¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

              +

              +
              +
              +

              4.22) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤ÊÎó¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©

              +
              +

              now()¤ò»È¤¤¤Þ¤¹:

              +
              +   CREATE TABLE test (x int, modtime timestamp DEFAULT now() );
              +
              +

              +
              +
              +

              4.23)   ¤Ê¤¼¡¢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.24) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?

              +

              +PostgreSQL 7.1 °Ê¹ß¤Ç¤Ï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 ¤Ê¤É¤Î·ë¹ç¤ò²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
              +
              +
              +
              +
              +
              +
              +
              +
              +
              ++These identical queries join t1.col to t2.col, and also return any unjoined
              ++rows in t1 (those with no match in t2). A RIGHT join
              ++would add unjoined rows of t2. A FULL join would return
              ++the matched rows plus all unjoined rows from t1 and t2. The word OUTER
              ++is optional and is assumed in LEFT, RIGHT,
              ++and FULL joins. Ordinary joins are called INNER
              ++joins.
              +
              +
              +°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï³°Éô·ë¹ç(outer join)¤ò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
              +
              +
              +
              +

              +
              +

              PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä

              +

              +
              +

              5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

              +
              +
              +

               ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£

              +
              +
              +

              +

              5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¿è¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤Ï¡¢¤É¤¦¤¹¤ì¤Ð´ó£¤Ç¤­¤Þ¤¹¤«¡©

              +
              +
              +

               ³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬ contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£

              +
              +

              +

              5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©

              +
              +
              +

               ¸¶ÍýŪ¤Ë¤Ï²Äǽ¤Ç¤¹¤¬¡¢¤³¤ì¤Ë¤Ïµæ¶Ë¤Î̯µ»¤òÍפ·¤Þ¤¹¤Î¤Ç¡¢Ãø¼Ô¤Î¤Þ¤ï¤ê¤Ç¤Ï̤¤Àï¤â¤ä¤Ã¤¿¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£

              +
              +

              5.4)  ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©

              +
              +
              +

               ¤¤¤¯¤Ä¤«¤Î Makefile ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£make clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC ¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

              +
              +
              +