· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
PostgreSQL On Gentoo


ÀÌ ¹®¼­´Â Gentoo¿¡¼­ PostgreSQLÀ» ¼³Ä¡Çϱâ À§ÇÑ ¹®¼­ÀÔ´Ï´Ù. http://www.gentoo.org/doc/en/postgres-howto.xml À» ¿øº»À¸·Î ÇÏ¿© ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù.

1. ¼Ò°³

1.1. PostgreSQL ¼Ò°³

´ëºÎºÐÀÇ °³¹ßÀÚ¿Í ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ¼Ö·ç¼Çµé¿¡ ´ëÇÏ¿© ´ëÈ­¸¦ ³ª´©¾î º¸¸é, µÎ °¡Áö Á¾·ùÀÇ µ¥ÀÌÅͺ£À̽º°¡ ÁÖ·Î ´ë´äÀ¸·Î ³ª¿É´Ï´Ù. Çϳª´Â MySQLÀÌ°í ´Ù¸¥ Çϳª´Â ÀÌ ¹®¼­¿¡¼­ ´Ù·ç°íÀÚ ÇÏ´Â PostgreSQLÀÔ´Ï´Ù. ¼­·Î°£ÀÇ Àå´ÜÁ¡¿¡ ´ëÇؼ­ ¿À·£ ½Ã°£µ¿¾È ³íÀïÀÌ ÀÖ¾î ¿ÔÁö¸¸, PostgreSQLÀÌ MySQLº¸´Ù ÁøÁ¤ÇÑ °ü°èÇü µ¥ÀÌÅͺ£À̽º ±¸Á¶¿¡´Â ´õ È®°íÇÏ´Ù´Â ¸»ÀÌ ÀÖ½À´Ï´Ù. FOREIGN KEY¿Í °°Àº ´ëºÎºÐÀÇ ±âº»ÀûÀΠƯ¡µéÀÌ MySQL 5¿¡¼­ Ãß°¡µÇ¾ú½À´Ï´Ù. ±×·¯³ª ¾î¶² »óȲÀÌ µÇµç, ÀÌ ¹®¼­´Â ¿©·¯ºÐÀÌ PostgreSQLÀ» »ç¿ëÇÒ µ¥ÀÌÅͺ£À̽º·Î ¼±ÅÃÇß´Ù°í °¡Á¤ÇÕ´Ï´Ù. óÀ½ ÇØ¾ß ÇÒ ÀÏÀº emerge °úÁ¤À» ½ÃÀÛÇÏ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½ ¼½¼Ç¿¡¼­´Â ±âº» ¼³Á¤ »Ó¸¸ ¾Æ´Ï¶ó emerge¸¦ ÅëÇÑ ¼³Ä¡ °úÁ¤À» ¼³¸íÇÒ °ÍÀÔ´Ï´Ù.

1.2. PostgreSQL ¼³Ä¡Çϱâ

½ÃÀÛÇÏ·Á¸é ¸ÕÀú PostgreSQL ÆÐÅ°Áö¸¦ emerge ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é ´ÙÀ½°ú °°Àº ÄÚµå·Î ¿É¼ÇÀÌ Á¦´ë·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ ¸ÕÀú È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

ÄÚµå ¸ñ·Ï 1.1: PostgreSQL ºôµå ¿É¼Ç È®ÀÎ
# emerge -pv postgresql

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] dev-db/postgresql-8.0.4  -doc -kerberos +libg++ +nls +pam +perl
-pg-hier -pg-intdatetime +python +readline (-selinux) +ssl -tcltk +xml2 +zlib 0 kB

¿©±â ¼­·Î ´Ù¸¥ ºôµå ¿É¼ÇÀÌ ³ªÅ¸³»´Â °ÍÀÇ ¸ñ·ÏÀÌ ÀÖ½À´Ï´Ù.

USE Ç÷¡±× ÀǹÌ
doc ÀÌ USE Ç÷¡±×´Â Ç¥ÁØ man ÆäÀÌÁöÀÇ ¿ÜºÎ ¹®¼­ ¼³Ä¡¸¦ ÄѰųª ²ü´Ï´Ù. °ø°£ÀÌ Àû°Å³ª ¹®¼­¸¦ ¾òÀ» ¼ö ÀÖ´Â ´Ù¸¥ ¹æ¹ý(¿Â¶óÀÎ µî)ÀÌ ÀÖÀ¸½Ã¸é ÀÌ°ÍÀ» ²ô½Ã¸é µË´Ï´Ù.
kerberos µ¥ÀÌÅͺ£À̽º¿¡ ÀÌ ¿É¼ÇÀ» ÄѼ­ Á¢¼ÓÇϸé adminÀÌ µ¥ÀÌÅͺ£À̽º·ÎÀÇ »ç¿ëÀÚ/¼­ºñ½º¸¦ °ËÁõÇÒ ¶§, kerberos¸¦ »ç¿ëÇÏ´Â ¿É¼ÇÀ» °®½À´Ï´Ù.
libg++ ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é PostgreSQLÀÇ C++ ¹ÙÀεùÀÌ ¼³Ä¡µË´Ï´Ù. C++ ÇÁ·Î±×·¡¸Ó°¡ ¿¬°áÇÒ ¼ö ÀÖ´Â libpq++°¡ ¼³Ä¡µË´Ï´Ù.
nls ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é ¿µ¾î¸¦ »ç¿ëÇÏÁö ¾Ê´Â »ç¿ëÀÚ¸¦ À§ÇÏ¿© ¹ø¿ªµÈ ¹®ÀÚ¿­À» ¾µ ¼ö ÀÖ½À´Ï´Ù.
pam ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖ°í, adminÀÌ PostgreSQL ¼³Á¤ ÆÄÀÏÀ» Á¦´ë·Î ¼³Á¤ÇÏ¸é »ç¿ëÀÚ/¼­ºñ½º´Â PAM(Pluggable Authentication Module)À» ÀÌ¿ëÇÏ¿© PostgreSQL¿¡ ·Î±×ÀÎ ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
perl ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é PostgreSQLÀÇ ÆÞ ¹ÙÀεùÀÌ ¼³Ä¡µË´Ï´Ù.
pg-hier ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é ¿À¶óŬ µ¥ÀÌÅͺ£À̽ºÀÇ CONNECT ¹®¿¡¼­ º¼ ¼ö ÀÖ´Â °èÃþÀû ÁúÀǸ¦ ÄÑ´Â ÆÐÄ¡¸¦ Àû¿ëÇÏ°Ô µË´Ï´Ù. ¿À¶óŬ ÂüÁ¶ ¾È³»¼­¿¡ °èÃþÀû ÁúÀÇ¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸°¡ ÀÖ½À´Ï´Ù.
pg-intdatetime ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é PostgreSQLÀº 64ºñÆ® Á¤¼ö ³¯Â¥ Çü½ÄÀ» Áö¿øÇÏ°Ô µË´Ï´Ù.
python ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, PostgreSQLÀº ÆÄÀ̽㠹ÙÀεùÀ» ¼³Ä¡ÇÏ°Ô µË´Ï´Ù.
readline ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, PostgreSQLÀº readline ½ºÅ¸ÀÏÀÇ ¸í·ÉÁÙ ÆíÁýÀ» Áö¿øÇÏ°Ô µË´Ï´Ù. ÀÌ°ÍÀº ¸í·É È÷½ºÅ丮¿Í isearch ±â´ÉÀ» Æ÷ÇÔÇÕ´Ï´Ù.
selinux ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, PostgreSQLÀÇ selinux Á¤Ã¥ÀÌ ¼³Ä¡ µË´Ï´Ù.
ssl ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, PostgreSQLÀº OpenSSL ¶óÀ̺귯¸®·Î PostgreSQL Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö »çÀÌÀÇ Æ®·¡ÇÈÀ» ¾ÏȣȭÇÏ°Ô µË´Ï´Ù.
tcltk ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, PostgreSQLÀº tcl/tk ¹ÙÀεùÀ» ¼³Ä¡ÇÏ°Ô µË´Ï´Ù.
xml2 ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖÀ¸¸é, XPATH ½ºÅ¸ÀÏ xml Áö¿øÀÌ ¼³Ä¡µÇ°Ô µË´Ï´Ù. PostgreSQLÀÇ xml Áö¿ø¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â PostgreSQL°ú XML¿¡¼­ ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
zlib ÀÌ°ÍÀº PostgreSQL ÀÚü¿¡¼­´Â »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù¸¸ pg_dump¿¡¼­ »ý¼ºÇÏ´Â ´ýÇÁ¸¦ ¾ÐÃàÇÕ´Ï´Ù.

ÁÖÀÇ: pg-hier ÆÐÄ¡ ÀÛ¼ºÀÚ´Â ÆÐÄ¡ ¾÷¹«¸¦ Áß´ÜÇÏ¿´À¸¸ç, ´ÙÀ½ ¹öÀü¿¡¼­´Â »èÁ¦µÉ °ÍÀÔ´Ï´Ù.

PostgreSQLÀ» ¿©·¯ºÐÀÇ ÇÊ¿ä¿¡ µû¶ó¼­ Ä¿½ºÅ͸¶ÀÌ¡ ÇÏ¿´´Ù¸é °è¼Ó ÁøÇàÇÏ¿© emerge¸¦ ½ÃÀÛÇϽʽÿÀ.

ÄÚµå ¸ñ·Ï 1.2: PostgreSQL emerge Çϱâ
# emerge postgresql
(Output shortened)
>>> /usr/lib/libecpg.so.5 -> libecpg.so.5.0
>>> /usr/bin/postmaster -> postgres
 * Make sure the postgres user in /etc/passwd has an account setup with /bin/bash as the shell
 *
 * Execute the following command
 * emerge --config =postgresql-8.0.4
 * to setup the initial database environment.
 *
>>> Regenerating /etc/ld.so.cache...
>>> dev-db/postgresql-8.0.4 merged.

einfo Ãâ·Â¿¡¼­ ³ªÅ¸³µµíÀÌ, ¼³Ä¡ ÈÄ¿¡ ÇØ¾ß ÇÒ ÀÛ¾÷µéÀÌ ÀÖ½À´Ï´Ù. ´ÙÀ½ Àå¿¡¼­ PostgreSQLÀÇ ½ÇÁ¦ ¼³Á¤¿¡ ´ëÇؼ­ »ìÆ캼 °ÍÀÔ´Ï´Ù.

2. PostgreSQL ¼³Á¤Çϱâ


2.1. Ãʱ⠵¥ÀÌÅͺ£À̽º ȯ°æ ¼³Á¤Çϱâ


ÀÌÀüÀÇ emerge Ãâ·Â¿¡¼­ ¾Ë·ÁÁØ ´ë·Î, Ãʱ⠵¥ÀÌÅͺ£À̽º ȯ°æÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ°ÍÀ» Çϱâ Àü¿¡ ÇÑ °¡Áö °í·ÁÇØ¾ß ÇÒ Á¡ÀÌ ÀÖ½À´Ï´Ù. MySQL °°Àº °Í°ú´Â ´Ù¸£°Ô, PostgreSQLÀÇ "root" Æнº¿öµå´Â ½ÇÁ¦ »ç¿ëÀÚÀÇ Æнº¿öµå¶ó´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª ebuild°¡ »ý¼ºÇÑ »ç¿ëÀÚ´Â Æнº¿öµå°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. µû¶ó¼­ ½ÃÀÛÇϱâ Àü¿¡ postgres »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.1: Æнº¿öµå ¼³Á¤
# passwd postgres
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully

ÀÌÁ¦ ¼³Á¤ÀÌ µÇ¾ú°í, Ãʱ⠵¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.2: emerge --config·Î µ¥ÀÌÅͺ£À̽º ȯ°æ ¼³Á¤Çϱâ
# emerge --config =postgresql-8.0.4


Configuring pkg...

 * Creating the data directory ...
 * Initializing the database ...
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale C.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating directory /var/lib/postgresql/data/global ... ok
creating directory /var/lib/postgresql/data/pg_xlog ... ok
creating directory /var/lib/postgresql/data/pg_xlog/archive_status ... ok
creating directory /var/lib/postgresql/data/pg_clog ... ok
creating directory /var/lib/postgresql/data/pg_subtrans ... ok
creating directory /var/lib/postgresql/data/base ... ok
creating directory /var/lib/postgresql/data/base/1 ... ok
creating directory /var/lib/postgresql/data/pg_tblspc ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 1000
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/data/base/1 ... ok
initializing pg_shadow ... ok
enabling unlimited row size for system tables ... ok
initializing pg_depend ... ok
creating system views ... ok
loading pg_description ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/bin/postmaster -D /var/lib/postgresql/data
or
    /usr/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start

 *
 * You can use /etc/init.d/postgresql script to run PostgreSQL instead of pg_ctl.
 *

ÀÌÁ¦ Ãʱ⠵¥ÀÌÅͺ£À̽º°¡ ¼³Á¤µÇ¾ú½À´Ï´Ù. ´ÙÀ½ ¼½¼Ç¿¡¼­´Â ¼³Ä¡¸¦ °ËÁõÇÏ°í µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÒ »ç¿ëÀÚ¸¦ ¼³Á¤ÇÏ´Â °ÍÀ» ÇÏ°Ú½À´Ï´Ù.

2.2. PostgreSQL µ¥ÀÌÅͺ£À̽º ¼³Á¤


ÀÌÁ¦ PostgreSQLÀÌ ¼³Á¤µÇ¾ú½À´Ï´Ù. ÀÌÁ¦ ¼³Ä¡¸¦ °ËÁõÇØ º¸´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. ¸ÕÀú, ¼­ºñ½º°¡ Á¦´ë·Î ½ÃÀ۵ǴÂÁö È®ÀÎÇØ º¾½Ã´Ù.

ÄÚµå ¸ñ·Ï 2.3: PostgreSQL ¼­ºñ½º ½ÃÀÛÇϱâ
# /etc/init.d/postgresql start
* Starting PostgreSQL ...                                          [ ok ]

ÀÌ°ÍÀÌ Á¦´ë·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÀÌ µÇ¸é, ºÎÆÃµÉ ¶§¸¶´Ù ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï ±âº» runlevel¿¡ Ãß°¡ÇØ ÁÖ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.4: ±âº» runlevel¿¡ Ãß°¡Çϱâ
# rc-update add postgresql default
* postgresql added to runlevel default

ÀÌÁ¦ ¼­ºñ½º°¡ ½ÃÀ۵Ǿú°í µ¥ÀÌÅͺ£À̽º¸¦ °Ë»çÇØ º¼ ½Ã°£ÀÔ´Ï´Ù. ½ÃÀÛÇÏ·Á¸é createdb ¸í·ÉÀ» ½á¼­ test µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé¾î º¾½Ã´Ù. -U ¿É¼ÇÀ» ³Ñ°Ü¼­ »ç¿ëÀÚ À̸§(³Ñ±âÁö ¾ÊÀ¸¸é ±âº»°ªÀ¸·Î ÇöÀç »ç¿ëÀÚ À̸§ÀÌ µË´Ï´Ù)¸¦ Á¤ÇÏ°í, -W ¿É¼ÇÀ¸·Î ÀÌÀü¿¡ ¸¸µé¾ú´ø ¾ÏÈ£¸¦ ¿äûÇÕ´Ï´Ù. °á±¹ ¸¸µé°íÀÚ ÇÏ´Â µ¥ÀÌÅͺ£À̽º¿¡ À̸§À» Á¤ÇØ ÁÖ¾ú½À´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.5: createdb·Î µ¥ÀÌÅͺ£À̽º »ý¼ºÇϱâ
$ createdb -U postgres -W test
Password:
CREATE DATABASE

µ¥ÀÌÅͺ£À̽º°¡ ¼º°øÀûÀ¸·Î ¸¸µé¾îÁ³À¸¸ç, µ¥ÀÌÅͺ£À̽º°¡ ±âº»ÀûÀÎ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´ÂÁö È®ÀÎÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. °è¼ÓÇؼ­ dropdb ¸í·ÉÀ¸·Î µ¥ÀÌÅͺ£À̽º¸¦ ¶³¾î¶ß¸®°í(Áö¿ö¹ö¸®°í) ´ÙÀ½¿¡ ´Ù½Ã ¾µ µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.6: dropdb·Î µ¥ÀÌÅͺ£À̽º ¶³¾î¶ß¸®±â
$ dropdb -U postgres -W test
Password:
DROP DATABASE

ÀÌÁ¦, postgres »ç¿ëÀÚ¸¸ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ºÐ¸íÈ÷ ´ÙÁß »ç¿ë ȯ°æÀº ¼³Á¤ÀÇ ÀÏÁ¾Àº ¾Æ´Õ´Ï´Ù. ´ÙÀ½ ¼½¼Ç¿¡¼­ »ç¿ëÀÚ °èÁ¤¿¡ ´ëÇÑ °ÍÀ» »ìÆ캼 °ÍÀÔ´Ï´Ù.

2.3. µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ °èÁ¤ ¼³Á¤Çϱâ


ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ, postgres »ç¿ëÀÚ·Î ·Î±×ÀÎ ÇØ¾ß ÇÑ´Ù´Â °ÍÀº ´ÙÁß »ç¿ëÀÚ È¯°æ¿¡¼­´Â ÀûÇÕÇÏÁö ¾Ê½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì¿¡ ´Ù¾çÇÑ »ç¿ëÀÚ¿Í ¼­ºñ½º°¡ ¼­¹ö¿¡ Á¢±ÙÇÒ °ÍÀÌ°í °¢°¢Àº ¼­·Î ´Ù¸¥ Æ۹̼ÇÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. µû¶ó¼­ ÀÌ°ÍÀ» ´Ù·ç·Á¸é createuser ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸í·ÉÀº ¸î¸î SQL ÁúÀǹ®À» ¼öÇàÇÏ´Â ´ë½Å¿¡ ¾µ ¼ö ÀÖ°í, adminÀÇ °üÁ¡¿¡¼­ ÈξÀ ´õ À¯¿¬ÇÕ´Ï´Ù. °è¼ÓÇؼ­ µÎ ¸íÀÇ »ç¿ëÀÚ, Áï ´Ù¸¥ »ç¿ëÀÚ¿Í °ü¸®ÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â 'superuser'¿Í ÀÏ¹Ý »ç¿ëÀÚ¸¦ »ý¼ºÇÒ °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 2.7: superuser ¼³Á¤Çϱâ
(replace chris with the username you'd like to use)
$ createuser -a -d -P -E -U postgres -W chris
Enter password for new user:
Enter it again:
Password:
CREATE USER

ÀÌÁ¦ superuser¸¦ »ý¼ºÇÏ¿´½À´Ï´Ù. ¸í·ÉÁÙ ¿É¼Ç -a´Â ´Ù¸¥ »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ¶ó´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. -d´Â µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé ¼ö ÀÖ´Â »ç¿ëÀÚ¶ó´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. -P´Â ÀÌ »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ°Ô ÇØ ÁÖ°í, -E´Â º¸¾È ¸ñÀûÀ» À§ÇÏ¿© ±×°ÍÀ» ¾ÏȣȭÇÕ´Ï´Ù. ÀÌÁ¦ ÀÏ¹Ý »ç¿ëÀÚ¸¦ ¼³Á¤Çϸ鼭 ÀÌ »õ·Î¿î »ç¿ëÀÚÀÇ Æ۹̼ÇÀ» °Ë»çÇØ º¾½Ã´Ù.

ÄÚµå ¸ñ·Ï 2.8: ÀÏ¹Ý »ç¿ëÀÚ ¼³Á¤Çϱâ
(replace chris with the username you've just created)
$ createuser -A -D -P -E -U chris -W testuser
Enter password for new user:
Enter it again:
Password:
CREATE USER

¼º°øÇß½À´Ï´Ù! »õ »ç¿ëÀÚ¸¦ ÀÌÀü¿¡ ¸¸µé¾ú´ø superuser¸¦ ÅëÇÏ¿© ¸¸µé¾ú½À´Ï´Ù. -A¿Í -D ¿É¼ÇÀº -a¿Í -dÀÇ ¹Ý´ë·Î½á, ´Ù¸¥ »ç¿ëÀÚ¿Í µ¥ÀÌÅͺ£À̽ºÀÇ »ç¿ëÀ» °ÅºÎÇÕ´Ï´Ù. ÀÌÁ¦ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ°¡ ¸¸µé¾îÁ³°í »õ·Î¿î µ¥ÀÌÅͺ£À̽º°¡ ¸¸µé¾îÁ³À¸¹Ç·Î ´ÙÀ½ Àå¿¡¼­´Â »õ µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µå´Â °ÍÀ» »ìÆ캸°Ú½À´Ï´Ù.

3. PostgreSQL »ç¿ëÇϱâ


3.1. ÆÛ¹Ì¼Ç ¼³Á¤Çϱâ

»õ µ¥ÀÌÅͺ£À̽º¿¡ µ¥ÀÌÅͺ£À̽º¸¦ »õ·Î ¸¸µé°í ´Ù¸¥ »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ°¡ ÀÖ°í ¹«¾ùÀ̵ç ÇÒ ¼ö ÀÖ´Â ¸ÞÀÎ postgres »ç¿ëÀÚ°¡ ÀÖ½À´Ï´Ù. ÀÌÀü¿¡ ¸¸µé¾ú´ø »ç¿ëÀÚ´Â ÇöÀç ¼­¹ö¿¡ ·Î±×ÀÎÇÒ ¼ö ÀÖ°í, ±×°Í¿¡ ´ëÇÑ °ÍÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î »ç¿ëÀÚ´Â µ¥ÀÌÅ͸¦ »ðÀÔÇÏ°í ²¨³¾ ¼ö ÀÖ¾îÇá Çϸç, ¶§·Î´Â ´Ù¸¥ ¿©·¯ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. µû¶ó¼­ ÀÌ »õ »ç¿ëÀÚ°¡ ¾î¶² °ÍÀ̵ç ÇÒ ¼ö ÀÖ¾î¾ß ÇÏ°í, ÀûÇÕÇÑ Æ۹̼ÇÀ» ¼³Á¤ÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº -O ¸Å°³º¯¼ö¸¦ createdb¿¡ ³Ñ°ÜÁÖ´Â °ÍÀ¸·Î ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. superuser·Î MyDB¶ó´Â »õ µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé°í ±×°ÍÀ» ÀÌÀüÀÇ testuserÀÇ ¼ÒÀ¯·Î ¸¸µå´Â °ÍºÎÅÍ ½ÃÀÛÇÒ °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.1: MyDB µ¥ÀÌÅͺ£À̽º ¸¸µé±â
$ createdb -O testuser -U chris -W MyDB
Password:
CREATE DATABASE

µÇ¾ú½À´Ï´Ù. ÀÌÁ¦´Â »õ MyDB µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé¾ú°í, testuser°¡ ±×°Í¿¡ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀ» °Ë»çÇϱâ À§ÇÏ¿© testuser·Î ÀÌ »õ MyDB µ¥ÀÌÅͺ£À̽º¿¡ ·Î±×ÀÎÇÏ¿© º¼ °ÍÀÔ´Ï´Ù. psql ÇÁ·Î±×·¥À¸·Î ÀÌ°ÍÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¸í·ÉÁÙ¿¡¼­ PostgreSQL µ¥ÀÌÅͺ£À̽º·Î ¿¬°áÇϴµ¥ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. µû¶ó¼­ »õ µ¥ÀÌÅͺ£À̽º¿¡ ÀÌ·¸°Ô ¿¬°áÇÕ´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.2: testuser·Î MyDB µ¥ÀÌÅͺ£À̽º¿¡ ·Î±×ÀÎÇϱâ
$ psql -U testuser -W MyDB
Password:
Welcome to psql 8.0.4, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

MyDB=>

ÀÌÁ¦ testuser·Î µ¥ÀÌÅͺ£À̽º¿¡ ·Î±×ÀÎÇÏ¿´À¸¸ç, ¸î °¡Áö ¸í·ÉÀ» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. PostgreSQLÀ» ÀÌ¿ëÇÏ´Â ´À³¦À» ¹ÞÀ¸·Á¸é ´ÙÀ½ ¼½¼Ç¿¡¼­ psql Ŭ¶óÀ̾ðÆ®¸¦ µ¹¾Æ´Ù´Ï´Â ±âº» ¸í·É¿¡ ´ëÇÏ¿© »ìÆ캸½Ê½Ã¿À.

3.2. ±âº» PostgreSQL ¸í·É°ú Å×À̺í ÀÛ¼ºÇϱâ


MySQLÀ» »ç¿ëÇØ º» ÀûÀÌ ÀÖÀ¸½Å ºÐµéÀ» À§ÇÏ¿© ²À Àоî¾ß ÇÒ °ÍÀÌ ÀÖ½À´Ï´Ù. ¿©±â¼­ PostgreSQLÀÌ ¸í·ÉÀ» ¼öÇàÇÏ´Â °Í°ú °ü·ÃÇÏ¿© µ¶Æ¯ÇÑ ¹«¾ð°¡¸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ½ÃÀÛÇÏ·Á¸é ¿©±â¿¡¼­ ³íÀÇÇÏ°íÀÚ ÇÏ´Â ¸í·ÉÀÇ ¸ñ·ÏÀ» º¸½Ê½Ã¿À.

¸í·É »ç¿ë¹ý µ¿µîÇÑ MySQL ¸í·É
\connect [DBNAME|- USER ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÑ´Ù USE DATABASE
\q psql Ŭ¶óÀ̾ðÆ®¸¦ Á¾·áÇÑ´Ù quit
\i FILE FILE¿¡¼­ ¸í·ÉÀ» ¼öÇàÇÑ´Ù source FILE
\o FILE ÁúÀǹ®ÀÇ °á°ú¸¦ FILE·Î º¸³½´Ù INTO OUTFILE, but outputs everything (not just SELECTS)
\d NAME (´Ù¸¥ ¾ÆÀÌÅÛµµ ¹°·ÐÀ̸ç) µ¥ÀÌÅͺ£À̽º³ª Å×À̺íÀ» ¹¦»çÇÑ´Ù DESC(RIBE)
\db PATTERN PATTERN¿¡ ¸Â´Â ¾µ ¼ö ÀÖ´Â Å×À̺íÀÇ ¸ñ·ÏÀ» ³ª¿­ÇÑ´Ù (ÆÐÅÏÀ» ÁÖÁö ¾ÊÀ¸¸é ¸ðµç Å×À̺íÀ» ³ª¿­) SHOW TABLES

\connect¸¦ Á¦¿ÜÇÏ°í ¸ðµç ¸í·ÉÀº ÀÌ ¼½¼ÇÀÇ µÚ¿¡¼­ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù. µû¶ó¼­ Áö±ÝÀº µ¥ÀÌÅͺ£À̽º°¡ ºñ¾î ÀÖ½À´Ï´Ù. ±× ¸»Àº µ¥ÀÌÅ͸¦ »ðÀÔÇÒ ÇÊ¿ä°¡ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª µ¥ÀÌÅ͸¦ »ðÀÔÇϴ ù °ÉÀ½Àº Å×ÀÌºí¿¡ ³Ö´Â °ÍÀÔ´Ï´Ù. Áö±Ý ÇöÀç·Î¼­´Â Å×À̺íÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ¾øÀ¸¹Ç·Î, ÀÌ°ÍÀ» ¸ÕÀú ¸¸µé¾î¾ß ÇÕ´Ï´Ù. CREATE TABLE ¸í·ÉÀ¸·Î ÀÌ°ÍÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç׸ñÀÇ Å×À̺íÀ» ¸¸µé °ÍÀÔ´Ï´Ù. »óÇ° ID¿Í ¼³¸í, °¡°ÝÀÌ µé¾î°£ Å×À̺íÀ» ¸¸µé °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.3: »óÇ° Å×ÀÌºí ¸¸µé±â
MyDB=> CREATE TABLE products (
MyDB(>   product_id SERIAL,
MyDB(>   description TEXT,
MyDB(>   price DECIMAL
MyDB(> );
NOTICE:  CREATE TABLE will create implicit sequence "products_product_id_seq"
for serial column "products.product_id"
CREATE TABLE

NOTICE´Â ¹«½ÃÇÏ¿©µµ µÇ°í ¿ÏÀüÈ÷ ¹«ÇØÇÕ´Ï´Ù. ÇÔ¼öÀÇ ¸¶Áö¸· ÁÙÀÎ CREATE TABLEÀ» º¸¸é ¸í·ÉÀÌ ¼º°øÀûÀ¸·Î ÀÌ·ç¾îÁ³´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª °è¼ÓÇؼ­ Å×À̺íÀÌ Á¤¸» ¼º°øÀûÀ¸·Î ¸¸µé¾îÁ³´ÂÁö \d ¸í·ÉÀ» ÅëÇÏ¿© ¾Ë¾Æº¾½Ã´Ù.

ÄÚµå ¸ñ·Ï 3.4: »õ·Î ÀÛ¼ºÇÑ Å×ÀÌºí »ìÆ캸±â
MyDB=> \d products
                                 Table "public.products"
   Column    |  Type   |                            Modifiers
-------------+---------+------------------------------------------------------------------
 product_id  | integer | not null default nextval('public.products_product_id_seq'::text)
 description | text    |
 price       | numeric |

Á¤¸»·Î Å×À̺íÀÌ ¸¸µé¾îÁ³½À´Ï´Ù. ÀÌÁ¦ Å×À̺íÀÌ ¸¸µé¾îÁ³À¸´Ï µ¥ÀÌÅ͸¦ Áý¾î³Ö¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½ ¼½¼Ç¿¡¼­ µ¥ÀÌÅͺ£À̽º¿¡ µ¥ÀÌÅ͸¦ Áý¾î³Ö´Â °ÍÀ» »ìÆ캼 °ÍÀÔ´Ï´Ù.

3.3. µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º¿¡ »ðÀÔÇϱâ


ÀÌ ¼½¼ÇÀº »õ·Î ¸¸µé¾îÁø Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ Áý¾î³Ö´Â µÎ °¡Áö ¹æ¹ýÀ» »ìÆ캼 °ÍÀÔ´Ï´Ù. ù ¹ø°·Î °¡Àå ±âº»ÀûÀÎ ¸í·ÉÀÎ INSERT¸¦ ¾Ë¾Æº¾½Ã´Ù.

ÄÚµå ¸ñ·Ï 3.5: INSERT ±¸¹®
INSERT INTO [tablename] (column1,column2,column3) VALUES(value1,value2,value3)

Å×À̺í À̸§Àº µ¥ÀÌÅ͸¦ Áý¾î³ÖÀ» Å×À̺íÀÇ À̸§À» Æ÷ÇÔÇÕ´Ï´Ù. (column1,column2,column3)Àº ƯÁ¤ Ä÷³¿¡ °ªÀ» ³ÖÀ» ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. VALUES(value,value2,value3)Àº °ªÀÇ ³ª¿­ÀÔ´Ï´Ù. ÀÌ °ªµéÀº Ä÷³°ú °°Àº ¼ø¼­(column1ÀÌ value1À» °®°í, column2°¡ value2¸¦ °®°í, column3ÀÌ value3¸¦ °®´Â´Ù)°¡ µË´Ï´Ù. À̵éÀÇ ¼ö´Â ¼­·Î °°¾Æ¾ß ÇÕ´Ï´Ù. °è¼ÓÇؼ­ Ç׸ñÀ» Å×ÀÌºí¿¡ ³Ö¾î º¾½Ã´Ù.

Áß¿ä: µ¥ÀÌÅͺ£À̽º¿¡¼­ ¿À·§µ¿¾È ÀÛ¾÷Çϸ鼭 °³ÀÎÀûÀ¸·Î INSERT ¸í·É¹®À» À§¿Í °°ÀÌ Á¤È®ÇÏ°Ô ÇÒ °ÍÀ» ÃßõÇÕ´Ï´Ù. °³¹ßÀÚµéÀº INSERT INTO¿¡¼­ Ä÷³ À̸§À» ¸í½ÃÇÏÁö ¾Ê°í ½Ç¼ö·Î Á¾Á¾ »ç¿ëÇÕ´Ï´Ù. »õ Ä÷³ÀÌ µ¥ÀÌÅͺ£À̽º¿¡ Ãß°¡µÉ ¼öµµ À־ ÀÌ°ÍÀº ºñ»ý»êÀûÀÔ´Ï´Ù. °ª°ú Ä÷³ÀÇ ¼ö°¡ ¼­·Î °°Áö ¾Ê¾Æ¼­ ¿¡·¯°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ·Î¿î Ä÷³À» Ãß°¡ÇÒ °ÍÀ» 300% È®½ÅÇÏÁö ¾Ê´Â´Ù¸é Ç×»ó Ä÷³À» ¸í½ÃÇØ ÁÖ¼¼¿ä.

ÄÚµå ¸ñ·Ï 3.6: Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ »ðÀÔÇϱâ
MyDB=> INSERT INTO products (description,price) VALUES('A test product', 12.00);
INSERT 17273 1

¸¶Áö¸· ÁÙÀº ¾à°£ ¼³¸íÀÌ ÇÊ¿äÇÕ´Ï´Ù. insert ¸í·ÉÀÇ ¹Ýȯ°ªÀº OID (°´Ã¼ ½Äº°ÀÚ)¿Í »ðÀÔµÈ ÁÙÀÇ ¼öÀÔ´Ï´Ù. OID´Â ÀÌ °¡À̵åÀÇ ¹üÀ§¸¦ Á¶±Ý ³Ñ¾î¼± °ÍÀÌ°í PostgreSQL ¸Å´º¾ó¿¡ ÁÁÀº Á¤º¸°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌÁ¦ 20,000 »óÇ°À» °¡Áö°í ÀÖ´Â »óȲ¿¡¼­ ÀÌ insert ¹®Àº Á¶±Ý ¹ø°Å·Î¿ï ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ¸ðµç °ÍÀ» ÀÒ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. COPY ¸í·ÉÀÌ ÆÄÀÏÀ̳ª stdin¿¡¼­ Å×À̺íÀ» »ðÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â csv(Äĸ¶·Î ±¸ºÐµÈ °ª) ÆÄÀÏÀÌ ÀÖ´Ù°í ÇÏ°í, ÀÌ°Í¿¡ »óÇ° id, ¼³¸í, °¡°ÝÀÌ ÀÖ´Ù°í ÇսôÙ. ÆÄÀÏÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.7: products.csv
2,meat,6.79
3,soup,0.69
4,soda,1.79

ÀÌÁ¦ COPY ¸í·ÉÀ¸·Î µ¥ÀÌÅ͸¦ Áý¾î³Ö¾î º¾½Ã´Ù.

Áß¿ä: postgres »ç¿ëÀÚ¸¸ÀÌ ÆÄÀÏ¿¡¼­ µ¥ÀÌÅ͸¦ Áý¾î³ÖÀ» ¼ö Àֱ⠶§¹®¿¡ COPY FROM STDIN ¸í·ÉÀ» »ç¿ëÇÏ¿´½À´Ï´Ù. (¸í¹éÇÑ º¸¾È»óÀÇ ÀÌÀ¯)

ÄÚµå ¸ñ·Ï 3.8: COPY¸¦ »ç¿ëÇÏ¿© »óÇ° Å×ÀÌºí¿¡ Áý¾î³Ö´Â ¸ð½À
MyDB=> COPY products FROM STDIN WITH DELIMITER AS ',';
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 2,meat,6.79
>> 3,soup,0.69
>> 4,soda,1.79
>> \.

ºÒÇàÈ÷µµ, ÀÌ ÁÙÀÌ INSERT INTO ¸í·É¾î¿Í °°Àº »óÅ Á¤º¸¸¦ º¸¿©ÁÖÁö´Â ¾Ê½À´Ï´Ù. µ¥ÀÌÅÍ°¡ µé¾î°¬´ÂÁö ¾î¶»°Ô ¾Ë ¼ö ÀÖÀ»±î¿ä? ´ÙÀ½ ¼½¼Ç¿¡¼­ µ¥ÀÌÅ͸¦ È®ÀÎÇϱâ À§ÇÏ¿© ½ÇÇàÇÏ´Â ÁúÀǹ®À» »ìÆ캼 °ÍÀ̺ó´Ù.

3.4. PostgreSQL ÁúÀÇ »ç¿ëÇϱâ


À̹ø ¼½¼Ç¿¡¼­´Â Å×ÀÌºí ³»¿¡ ÀÖ´Â Á¤º¸¸¦ º¸´Â SELECT¹®¿¡ ´ëÇÏ¿© ¼³Æì º¼ °ÍÀÔ´Ï´Ù. ±âº»ÀûÀÎ SELECT Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.9: SELECT ±¸¹®
SELECT (column1,column2|*) FROM (table) [WHERE (conditionals)]

Ä÷³À» ¼±ÅÃÇÏ´Â ¹æ¹ýÀº µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. ù ¹ø° °ÍÀº *·Î ¸ðµç Ä÷³À» ¼±ÅÃÇÏ´Â ¹æ¹ýÀÌ°í µÎ ¹ø°´Â º¸°íÀÚ Çϴ ƯÁ¤ Ä÷³ÀÇ ¸ñ·ÏÀ» ¸í½ÃÇÏ´Â °ÍÀÔ´Ï´Ù. µÎ ¹ø°´Â Å« ¸ñ·ÏÀ» º¸±âº¸´Ù´Â ƯÁ¤ Ä÷³¸¸ º¸·Á°í ÇÏ´Â °æ¿ì¿¡ ²Ï³ª Æí¸®ÇÕ´Ï´Ù. SELECT¿¡ *·Î ¸ðµç Ä÷³À» ¸í½ÃÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇØ º¾½Ã´Ù.

ÄÚµå ¸ñ·Ï 3.10: »óÇ° Å×ÀÌºí º¸±â
MyDB=> SELECT * FROM products;
 product_id |  description   | price
------------+----------------+-------
          1 | A test product | 12.00
          2 | meat           |  6.79
          3 | soup           |  0.69
          4 | soda           |  1.79
(4 rows)

¿©±â¼­ ³ªÅ¸³­ ´ë·Î, ¸ðµç µ¥ÀÌÅÍ°¡ Á¤¸»·Î Å×ÀÌºí¿¡ µé¾î°¬½À´Ï´Ù. ÀÌÁ¦ ¼³¸í°ú °¡°Ý¸¸ º¸°íÀÚ ÇÑ´Ù°í ÇÏ°í, »óÇ° id´Â º¸°í ½ÍÁö ¾Ê´Ù°í ÇսôÙ. ÀÌÁ¦ Ä÷³À» ¸í½ÃÇÑ SELECT ÇüŸ¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.11: »óÇ° Å×ÀÌºí¿¡¼­ ƯÁ¤ Ä÷³À» º¸±â
MyDB=> SELECT description,price FROM products;
  description   | price
----------------+-------
 A test product | 12.00
 meat           |  6.79
 soup           |  0.69
 soda           |  1.79
(4 rows)

ÀÌÁ¦ »óÇ°°ú °¡°Ý¸¸ º¸À̱⠶§¹®¿¡ Áß¿äÇÑ ÀÚ·á¿¡ ÁýÁßÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ÀÌÁ¦ $2.00ÀÌ ³Ñ´Â Ç׸ñ¸¸À» º¸°íÀÚ ÇÑ´Ù°í ÇսôÙ. ¿©±â WHERE ÀýÀ» °£ÆíÇÏ°Ô ¾µ ¼ö ÀÖ½À´Ï´Ù.

ÄÚµå ¸ñ·Ï 3.12: »óÇ° Å×À̺íÀÇ Æ¯Á¤ ÇàÀ» º¸±â
MyDB=> SELECT description,price FROM products WHERE price > 2.00;
  description   | price
----------------+-------
 A test product | 12.00
 meat           |  6.79
(2 rows)

ÀÌÁ¦ $2.00ÀÌ ³Ñ´Â »óÇ°ÀÌ È­¸é¿¡ ³ªÅ¸³ª¼­ ´õ¿í ÁýÁßÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. Á¤º¸ ÁúÀÇÀÇ ÀÌ·± ÇüÅ´ ¾ÆÁÖ °­·ÂÇÏ°í ±Øµµ·Î À¯¿ëÇÑ º¸°í¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.

3.5. ¸ÎÀ½¸»


PostgreSQLÀÇ °¡À̵尡 ¿©±â¼­ ³¡ÀÌ ³³´Ï´Ù. ÀúÀÇ Áú¹®¿¡ ´ë´äÀ» ÇØ ÁÖ½Ã¾î µµ¿ÍÁֽŠÁ¨Åõ PostgreSQL À¯Áö¸¦ ¸Ã°í ÀÖ´Â ¸¶»çµµ¸ð ³ª°¡³ë¾¾¿¡°Ô Å©°Ô °¨»çÇÕ´Ï´Ù. ÀÌ °¡À̵忡 ¾î¶² Á¦¾ÈÀÌ¶óµµ ÀÖÀ¸½Ã¸é chriswhite@gentoo.org ¿¡ º¸³» ÁֽʽÿÀ. ´õ È®ÀåÀûÀÎ ¹®¼­¸¦ ¿øÇϽøé PostgreSQL À¥»çÀÌÆ®¸¦ º¸½Ê½Ã¿À.



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-02-07 11:25:32
Processing time 0.0112 sec