Çѵ¿ÈÆ/KLUG ȸÀå
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. µé¾î°¡´Â¸» ¿äÁòÀº ÇÑÂü RDBMS°¡ À¯ÇàÀÌ´Ù. ´«¸¸ ¶ß°í ÀϾ¸é
µ¥ÀÌÅÍ º£À̽º ¼Ö·ç¼ÇÀÌ´Ï ¹¹´Ï ÇÏ¸é¼ ¸¶Ä¡ RDBMS¸¦ ¸ð¸£¸é ÀÌ
¼¼»óÀ» »ì¾Æ °¥¼ö ¾ø´Â °Íó·³ ¸¸µç´Ù. Àû¾îµµ ±× ´ë»óÀ» ÇÁ·Î±×·¡¸Ó·Î
±¹ÇÑÀ» ½ÃÅ°´õ¶óµµ ¸»ÀÌ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷µµ Àڱ׸¶ÇÑ Áß¼Ò±â¾÷¿¡¼´Â Ŭ¸®ÆÛ³ª DB+ °°Àº °ÍÀ» »ç¿ëÇÏ¿© ¸¸µç µ¥ÀÌÅÍ º£À̽º ÇÁ·Î±×·¥À» »ç¿ëÇϱ⵵ ÇÑ´Ù. ¹«¸© ¾î¶°ÇÑ Çʿ伺ÀÌ ¾î¶°ÇÑ ¹ß¸íÀ̳ª ¹ßÀüÀ» ÀÖ°Ô ÇÏ´Â °Í °°´Ù. ¿äÁòÀº µ¥ÀÌÅÍ º£À̽º ºÐ¾ß¿¡µµ °ü°èÇü °³³äÀ» ³Ñ¾î °´Ã¼ÁöÇâ °³³äÀ̳ª ºÐ»ê°³³äÀÌ µµÀԵDZ⵵ ÇÑ´Ù. °¡¸é °¥¼ö·Ï ¼¼»óÀº ºü¸£°Ô º¯ÇÏ´Â °Í °°°í, ´õ¿í ´õ ¸¹Àº ´É·ÂÀ» ÇÁ·Î±×·¡¸Ó¿¡°Ô ¿ä±¸ÇÏ´Â °Í °°´Ù. ¿ì¸®°¡ ÀϹÝÀûÀ¸·Î ¾Ë°í ÀÖ´Â RDBMS Áß¿¡´Â ¿À¶óŬ, ÀÎÆ÷¹Í½º °°Àº ¼ö¹é¸¸¿øÀ» È£°¡ÇÏ´Â º»°Ý »ó¿ë µ¥ÀÌÅÍ º£À̽º ½Ã½ºÅÛÀÌ ¸¹ÀÌ ¾Ë·ÁÁ® ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ¿¡ ¸øÁö ¾ÊÀº µ¥ÀÌÅÍ º£À̽º ½Ã½ºÅÛÀÌ °ø°³¿ëÀ¸·Î ¿©·¯ºÐ °¡±îÀÌ¿¡ ÀÖ´Ù°í ÇÏ¸é ¾î¶»°Ô ÇÒ °ÍÀΰ¡ ? ¸®´ª½º »ç¿ëÀÚ¶ó¸é PostgreSQLÀ̶ó´Â °·ÂÇÑ
RDBMS ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù.
2.PostgreSQL ÀÇ °³¿ä ¹× Ư¡ PostgreSQL ÀÇ °ø½Ä »çÀÌÆ®ÀÎ 'http://www.PostgreSQL.org" ÀÇ ´ë¹®Â¦¿¡´Â ´ÙÀ½°ú °°Àº ±ÛÀÌ Ä¿´Ù¶þ°Ô ¾²¿©ÀÖ´Ù. " PostgreSQL´Â °·ÂÇÑ Â÷ ¼¼´ë °´Ã¼ - °ü°èÇü DBMS·Î¼ Berkeley Postgres µ¥ÀÌÅͺ£À̽º °ü¸® ½Ã½ºÅÛ¿¡¼ ÆÄ»ýµÇ¾ú´Ù. PostgreSQL´Â °·ÂÇÑ °´Ã¼-°ü°èÇü µ¥ÀÌÅÍ ¸ðµ¨°ú dzºÎÇÑ µ¥ÀÌÅÍ Å¸ÀÔ, ½¬¿î È®À强À» °¡Áö°í ÀÖÀ¸¸ç, PostQuel ÁúÀÇ ¾ð¾î¸¦ È®ÀåµÈ SQLÀÇ ºÎºÐ ÁýÇÕÀ¸·Î ´ëüÇÏ°í ÀÖ´Ù." PostgreSQLÀº ÇѸ¶µð·Î °´Ã¼ÁöÇâ ±â´ÉÀ» °¡Áö°í ÀÖ´Â °ü°èÇü µ¥ÀÌÅÍ º£À̽º ½Ã½ºÅÛÀÌ´Ù. PostgreSQLÀÇ ¸ðÅ°¡ µÇ´Â ÃÖÃÊÀÇ Postgres ÇÁ·ÎÁ§Æ®´Â 1986³â ¸¶ÀÌŬ ½ºÅæºê·¹ÀÌÄ¿(Michale Stonebraker) ±³¼ö¿¡ ÀÇÇØ ÁÖµµµÇ¾úÀ¸¸ç. DRAPA(¹æÀ§ Áøº¸ ¸®¼Ä¡ ±â°ü ), ARO(À°±º ¸®¼Ä¡¿¬±¸¼Ò). NSF(¹Ì ±¹¸³ °úÇÐ Àç´Ü) µî ¿©·¯ ±â°üÀ¸·ÎºÎÅÍ ÈÄ¿øÀ» ¹Þ¾Ò´Ù. Áï, ¾ÖÃÊ¿¡ »ó¾÷ÀûÀÎ ¸ñÀûÀ¸·Î °³¹ßµÈ °ÍÀÌ ¾Æ´Ï¶ó ±³À° ¿¬±¸Â÷¿ø¿¡¼ °³¹ßµÈ °ÍÀÌ¿´´Ù. ³ªÁß¿¡ ¼³¸íÇÏ°ÚÁö¸¸ ÀÌ·¯ÇÑ Æ¯Â¡Àº PostgreSQLÀÇ µ¥ÀÌÅÍ Å¸ÀÔ¿¡¼µµ ³ªÅ¸³´Ù. ±×¸®°í ¾ÆÀÌ·¯´ÏÄà ÇÏ°Ôµµ PostgreSQL¿¡ °ü·ÃµÈ ¹®¼´Â Á÷Á¢ÀûÀ¸·Î »ç¿ëÀÚ ¸Å´º¾ó¿¡ ³ªÅ¸³ °Íº¸´Ùµµ °¢Á¾ ³í¹®À¸·Î ¹ßÇ¥µÈ °ÍÀÌ ÈξÀ ¸¹´Ù. PostgreSQL´Â ¸Å¿ì ´Ù¾çÇÑ ¿¬±¸¿Í ¿©·¯ ÀÀ¿ë °á°ú¸¦ ±¸ÇöÇϴµ¥ »ç¿ëµÇ¾îÁ® ¿ÔÀ¸¸ç, ±ÝÀ¶»óÀÇ µ¥ÀÌÅÍ ºÐ¼® ½Ã½ºÅÛ, Á¦Æ®¿£ÁøÀÇ ¼º´ÉÀ» ¸ð´ÏÅ͸µ ÇÏ´Â ÆÐÅ°Áö, ¼ÒÇ༺ÀÇ ¿îµ¿À» ÃßÀûÇÏ´Â µ¥ÀÌÅÍ º£À̽º, ÀÇÇÐÁ¤º¸ µ¥ÀÌÅÍ º£À̽º, ¸î °³ÀÇ Áö¸®Á¤º¸ ½Ã½ºÅÛ µî¿¡ °ü·ÃµÈ ¾÷¹«¿¡ ÀÌ¿ëµÇ¾îÁ® ¿Ô´Ù. Postgres´Â ¶ÇÇÑ ¿©·¯ ´ëÇп¡¼ ±³À°¿ëÀ¸·Î ¾²¿©Á®
¿Ô´Ù. ¸¶Ä§³» Illustra Information Technologies ¿¡¼´Â ÀϺÎÀÇ
Äڵ带 »ç¿ëÇÏ¿© ±×°ÍÀ» »ó¾÷ÈÇÏ¿´´Ù PostgreSQL´Â ÀÌ·¯ÇÑ PostgresÀÇ ¸¶Áö¸· ¸±¸®ÁîÀÎ
¹öÀü4.2¿¡¼ ÆÄ»ýµÇ¾úÀ¸¸ç, ¹öŬ¸® ¼ÒÀç Ķ¸®Æ÷´Ï¾Æ ´ëÇп¡¼ °³¹ßµÇ¾ú´Ù.
PostgreSQL6.0 ÀÌÀüÀÇ ¹öÀüÀº ÈçÈ÷ Postgre95¶ó°í ºÒ·¯¿Ô´Ù. PostgreSQLÀÇ ÄÚµå´Â ÇöÀç ¿ÏÀüÈ÷ ANSI C·Î ÀÛ¼ºµÇ¾úÀ¸¸ç, ÄÚµåÀÇ Å©±âµµ ¾à25%°¡ ÁÙ¾ú°í, ¼º´É°³¼±°ú ÄÚµåÀ¯Áö ºÎºÐ¿¡ ´ëÇÑ ¸¹Àº ³»ºÎÀû º¯È°¡ ÀÖ¾ú´Ù. PostgreSQL ¹öÀüÀº ÀÌÀüÀÇ Postgres¿¡ ºñ±³Çغ¼ ¶§ »ó´çÇÑ ¼Óµµ»óÀÇ ÀÌÁ¡ÀÌ ÀÖ´Ù°í ÇÑ´Ù. PostgreSQLÀÇ ¼¼°¡Áö Áß¿äƯ¡Àº ´ÙÀ½°ú °°´Ù. ¢Ä °ü°èÇü ¸ðµ¨ : Postgres ÇÁ·ÎÁ§Æ® ¸®¼Ä¡ÀÇ ÃÖÃÊÀÇ ¸ñÀû ÁßÀÇ Çϳª´Â º¹ÇÕ°´Ã¼(complex object), ±ÔÄ¢(rule) µîÀ» ´Ù·ê ¼ö ÀÖÀ¸¸ç, °í¼öÁØÀ¸·Î È®Àå°¡´ÉÇÑ °ü°èÇü DBMS¸¦ Á¦ÀÛÇÏ·Á´ø °ÍÀ̾ú´Ù. µû¶ó¼ PostgreSQL´Â °ü°èÇü DBMS°¡ °¡Áö°í ÀÖ´Â °ÅÀÇ ¸ðµç ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. ¿¹¸¦ µé¸é SQL¿¡¼ ¼¼úÀûÀÎ ÁúÀǾîÀÇ »ç¿ë°ú ÁúÀÇ ÃÖÀûÈ, µ¿½Ã¼ºÁ¦¾î, Æ®·£Àè¼Çó¸®, ¸ÖƼ À¯Àú ±â´É µîÀ» Á¦°øÇÏ°í ÀÖ´Ù. ¢Ä °í¼öÁØ È®À强 : PostgreSQL´Â »ç¿ëÀÚ Á¤ÀÇ ¿ÀÆÛ·¹ÀÌÅÍ¿Í Å¸ÀÔ, ÇÔ¼ö, ¿¢¼¼½º ¸Þ½îµå¸¦ Áö¿øÇÑ´Ù. ¢Ä °´Ã¼ÁöÇâ : PostgreSQL´Â »ó¼Ó, °´Ã¼¿Í °°Àº °´Ã¼ÁöÇâ°³³ä¿¡¼ º¼ ¼ö ÀÖ´Â ¿©·¯ Ư¡À» Ãʺ¸ÀûÀ̳ª¸¶ ±¸ÇöÇÏ°í ÀÖ´Ù. ÀÌ·¯ÇÑ Æ¯Â¡ ¶§¹®¿¡ ¾î¶² »ç¶÷µéÀº PostgreSQL¸¦ ¼³¸íÇÒ ¶§ ORDBMS¶ó°í ¸»Çϱ⵵ ÇÑ´Ù. PostgreSQL´Â ÀϹÝÀûÀÎ ±¸Á¶´Â postmaster. postgres. frontend ÀÇ 3°¡Áö ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ¢Ä postmaster´Â ÃÖ»óÀ§ µ¥¸ó ÇÁ·Î¼¼½ºÀÌ´Ù. ÀÌ°ÍÀº frontend¿Í backend ÇÁ·Î¼¼½º »çÀÌÀÇ Åë½ÅÀ» ´ã´çÇϸç, °øÀ¯¹öÆÛ Ç®(°øÀ¯¸Þ¸ð¸® ³»ºÎ¿¡)À» ÇÒ´çÇϸç. ½ÃÀÛ ½Ã¿¡ ´Ù¸¥ ÃʱâÈ ºÎºÐÀ» ¼öÇàÇÑ´Ù. ¢Ä postgres´Â backend µ¥ÀÌÅͺ£À̽º ¼¹ö ÇÁ·Î¼¼½ºÀÌ´Ù. ÁúÀÇ(query)¸¦ ¼öÇàÇÏ´Â µîÀÇ ½ÇÁ¦ ÀÛ¾÷À» ó¸®ÇÑ´Ù. postmaster´Â ÇØ´ç frontend Á¢¼Ó¸¶´Ù »õ·Î¿î backend ÇÁ·Î¼¼½º¸¦ ½ÃÀÛ½ÃŲ´Ù. postgres backend´Â Ç×»ó ¼¹ö¸Ó½®¿¡¼ ¼öÇàµÈ´Ù. ¢Ä frontend ÀÀ¿ëÇÁ·Î±×·¥(¿¹¸¦µé¸é psql)Àº ¾Æ¸¶ ¶Ç ´Ù¸¥ ¸Ó½Å(¿¹¸¦ µé¸é Ŭ¶óÀ̾ðÆ® ¿öÅ©½ºÅ×À̼Ç)»ó¿¡¼ µ¹¾Æ °¥¼ö ÀÖÀ¸¸ç, postmaster¸¦ °ÅÃļ postgres backend ¿¡°Ô Á¢¼ÓÀ» ¿äûÇÑ´Ù. ¿©±â¿¡¼ backend¶ó´Â ¿ë¾î´Â ¾î¶°ÇÑ (µ¥ÀÌŸº£À̽º)½Ã½ºÅÛ¿¡¼ ½ÇÁúÀûÀ¸·Î »ç¿ëÀÚÀÇ ¿äûÀ» ó¸®ÇÏ´Â ¿£Áø°ú À¯»çÇÑ ºÎºÐÀ̶ó°í º¸¸é µÈ´Ù. frontend´Â »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾Æ µéÀ̰ųª ¿äûÀ» Á¢¼öÇÏ¿© backend·Î Àü´ÞÇÏ´Â ÀÎÅÍÆäÀ̽º ºÎºÐÀ» ÀÏÄ´´Ù. PostgreSQL¿¡¼ backend´Â postgres ÇÁ·Î¼¼½ºÀÌ°í, frontend´Â psql À̳ª ¿©Å¸ÀÇ PostgreSQL »ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ´Ù. PostgreSQL´Â Á¤¸» ´Ù¾çÇÑ API¸¦ Áö¿øÇÑ´Ù. ÀÌÁß¿¡¼ ¾Æ¸¶µµ ¾ÕÀ¸·Î ÁÖ·Î »ç¿ëÇÏ°Ô µÉ API°¡ Çϳª ÀÌ»ó¾¿Àº ÀÖÀ» °ÍÀÌ´Ù. ¸¶À½¿¡ µå´Â °ÍÀ» °ñ¶ó¼ ¸¶À½²¯ »ç¿ëÇغ¸±â ¹Ù¶õ´Ù. ¡¤C API ¡¤C ++ API ¡¤Tcl API ¡¤Perl API ¡¤Python API ÀÌÁß¿¡¼ C¿Í C ++ API´Â ÀϹÝÀûÀÎ ¶óÀ̺귯¸®¿Í
Ŭ·¡½º ÇüÅ·ΠÁ¦°øÇÑ´Ù. PostgreSQL°¡ °ø°³ÀûÀÎ ¼º°ÝÀ» ¶ç°í ÀÖ´Ù´Â
Á¡ ¶§¹®¿¡ Á¤¸» ¼öµµ Çì¾Æ¸± ¼ö ¾øÀ» Á¤µµÀÇ Áö¿ø ÅøÀÌ Àü¼¼°èÀÇ
¿©·¯ »ç¶÷¿¡ ÀÇÇØ °³¹ßµÇ¾î »ç¿ëµÇ°í ÀÖ´Ù. ¡¤ODBC, UDBC, JDBC µå¶óÀ̹ö ¡¤ÀÚ¹Ù ·¹Æ®µÑ, Àڹ٠Ŭ·¡½º ¡¤WISQL- À©µµ¿ìÁî »óÈ£´ëÈ½Ä ÁúÀÇ Åø ¡¤ISQL- »óÈ£´ëÈ½Ä ÁúÀÇ Åø ¡¤AppGEN °³¹ß½Ã½ºÅÛ- PostgreSQL 4GL À¥ µ¥ÀÌÅͺ£À̽º ¾îÇø®ÄÉÀÌ¼Ç ¡¤EARP - À¥ Å×ÀÌŸ º£À̽º µðÀÚÀÎ /±¸Çö Åø ¡¤dbengine- À¥ ÀÎÅÍÆäÀ̽º ¡¤NeoSoft NeoWebScript - Apache À¥¼¹ö ¸ðµâ ¡¤PHP/FI - ¼¹ö Ãø html ¿¥º£µðµå ½ºÅ©¸³Æ® ¾ð¾î ¡¤WDB -P95 -PostgreSQL ¿Í À¥ÀÇ °ÔÀÌÆ® ¿þÀÌ ¡¤ESQL/C ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» ¾Ë°í ½ÍÀ¸¸é, ¾ó¸¶ Àü¿¡ ³ª¿Â "Linux Database HOWTO" ¹®¼¸¦ ÂüÁ¶ÇÏ°Ô ¹Ù¶õ´Ù. ´ÙÀ½¿¡¼ ±¸ÇÒ ¼ö ÀÖ´Ù.
3. PostgresSQL ÀúÀÛ±Ç PostgresSQL´Â ±âº»ÀûÀ¸·Î ¼Ò½º¼öÁرîÁöµµ °ø°³ÀûÀÎ ¼º°ÝÀ» ¶ç°í ÀÖ´Ù. GPLÀº ¾Æ´ÏÁö¸¸ »ç¿ë, º¹»ç, ¼öÁ¤, ¹èÆ÷¿¡ ÀÖ¾î¼ ÀÚÀ¯·Î¿ì¸ç ¹«·á·Î ±¸ÇÒ ¼ö ÀÖ´Ù. ¾Æ¿ï·¯ COPYRIGHT¹®¼¿¡´Â, ¼ÒÇÁÆ®¿þ¾î »ç¿ëÀ¸·Î ÀÎÇÑ ¼ÕÇØ¿¡ ´ëÇØ ¾î¶°ÇÑ º¸Áõµµ ÇÏÁö ¾ÊÀ¸¸ç, »ó¾÷ÀûÀÎ ÀÌ¿ëÀ̳ª ¾î¶² Ưº°ÇÑ ¸ñÀû¿¡ÀÇ »ç¿ë¿¡ ´ëÇؼµµ º¸Áõ(warranties)À» °ÅºÎÇÑ´Ù°í ¸í½ÃÇÏ°í ÀÖ´Ù. Áï »ó½ÄÀûÀÎ ¼öÁØ¿¡¼ °ø°³ ¼ÒÇÁÆ®¿þ¾îÀÇ ¹üÁÖ¿¡ Æ÷ÇÔµÈ´Ù°í º¸¸é µÉ °Í °°´Ù.
4. PostgresSQL ÀÇ ¼³Ä¡ PostgresSQL´Â ´ÙÀ½ÀÇ Ç÷§Æû¿¡¼ µ¿ÀÛÇÑ´Ù.
part 1 PostgerSQL¸¦ ¼Ò½º ÆÄÀÏ·Î ¼³Ä¡Çϱâ ÇöÀç±îÁö ³ª¿Â PostgresSQL 6.1.1ÀǼҽº ÆÄÀÏÀÇ ¾ÐÃàºÐ·®Àº ´ë·« 2¸Þ°¡ ÀÌ´Ù. ¼Ò½ºÆÄÀÏÀÇ ¾ÐÃàÀ» Ç®¸é ´ë·« 10¸Þ°¡Á¤µµ µÈ´Ù. ¼³Ä¡½Ã¿¡´Â ÃּҸ޸𸮠8¸Þ°¡¿Í ¼Ò½º ¹ÙÀ̳ʸ® »ç¿ëÀÚ µ¥ÀÌÅÍ º£À̽º¿¡ ´ë·« 45¸Þ°¡ Á¤µµÀÇ µð½ºÅ© °ø°£À» ÇÊ¿ä·Î ÇÑ´Ù ´ë¿ë·®ÀÇ µ¥ÀÌÅÍ º£À̽º¸¦ ±¸ÃàÇÏÁö ¾ÊÀ» °Å¶ó¸é »ç½Ç ÀÌÁ¤µµ ±îÁöµµ ÇÊ¿äÇÏÁö ¾Ê´Ù. ¼Ò½ºÆÄÀÏÀ» Ç®°í ÄÄÆÄÀÏÇÏ¿© ¹ÙÀ̳ʸ®¸¦ µÑ °ø°£°ú ¾à°£ÀÇ µ¥ÀÌÅÍ º£À̽º ÀúÀå°ø°£¸¸ ÀÖÀ¸¸é µÈ´Ù. Áö±Ý 9¿ù 30ÀÏ ÇöÀç±îÁö ³ª¿Â ÃÖ½ÅÀÇ °ø½Ä¹öÀüÀº 6.1.1ÀÌ´Ù º£Å¸¹öÁ¯Àº 6.2b11±îÁö ³ª¿ÍÀÖ´Ù. 10¿ù ÃÊ°æ¿¡´Â 6.2.°¡ ³ª¿Ã ¿¹Á¤ÀÌ°í 12¿ù °æ¿¡´Â 6.3ÀÌ ³ª¿Ã ¿¹Á¤À̶ó°í ÇÑ´Ù »ç½Ç PostgresSQL°ú ´Ù¸¥ °ø°³¿ë DRBMS¸¦ ºñ±³Çغ¼ ¶§, PostgresSQLÀº ºñÇ¥ÁØÀûÀÎ ºÎºÐÀ» ¸¹ÀÌ Áö¿øÇØ¿Ô´ø °ÍÀÌ »ç½ÇÀÌ´Ù. ±×¸®ÇÏ¿© »ç¿ëÀÚ È®À强Àº Á¤¸» ¶Ù¾î³ª°Ô µÇ¾úÀ¸³ª ±âº» Ç¥ÁØÀÎ ANSI SQLÀ» ¿©ÀüÈ÷ ¿ÏÀüÇÏ°Ô´Â Áö¿øÇÏÁö ¸øÇÏ°í ÀÖ´Ù. ¾Æ¸¶µµ ±×Áß¿¡¼ Á¤¸» ¿ä±äÇÏ°Ô »ç¿ëµÇ´Â °ÍÀº subselects, primary/secondary key, constraint Á¤µµ °¡ µÉ °ÍÀÌ´Ù. ÇÏÁö¸¸ »ç½Ç ÀÌ·± ±â´ÉÀÇ ´ëºÎºÐÀº PostgresSQL¿¡¼ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¿Í À妽º »ý¼ºÀ» ÅëÇÏ¿© ÇØ°áÇÒ ¼ö ÀÖ´Â ºÎºÐµéÀÌ´Ù. ÀÌÁ¦ 6.2 ¹öÀüºÎÅÍ ÀÌ·¯ÇÑ Ç¥ÁØ SQLºÎºÐÀ» º»°ÝÀûÀ¸·Î Áö¿øÇÏ°Ú´Ù°í ÇÑ´Ù. 6.2 º£Å¸ ¹öÀü¿¡¼µµ ¹ú½á Å×À̺íÀÇ Çʵå³×¿¡¼ ±âº» DEFAULT °ªÀ» ÁöÁ¤Çϰųª NOT NULLÅ°¿öµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. 6.2 ¹öÀüÀ» ¼Õ²Å¾Æ ±â´Ù·Áº¼¸¸ ÇÏ´Ù. ÇÏÁö¸¸ ¿©±â¼´Â ÇöÀç±îÁöÀÇ °ø½Ä¹öÀüÀÎ 6.1.1 ÀÇ ¼³Ä¡¸¦ ±âÁØÀ¸·Î ¼³¸íÇÏ°Ú´Ù. PostgresSQL¿¡¼ÀÇ ÇÑ±Û »ç¿ë¹®Á¦µµ ÀÖ°í Ãß°¡ÀûÀÎ ±â´ÉÀº ³ªÁß¿¡ Ž¹ÌÇصµ ÃæºÐÇÒ °Í °°±â ¶§¹®ÀÌ´Ù. ÀÌ¹Ì PostgresSQL¸¦ ¼³Ä¡ÇÏ¿´´Ù¸é ÀÌ ºÎºÐÀ» °Ç³Ê¶Ù¸é µÈ´Ù. ±¦È÷ º» °Í ¶Ç º¸¸é ¸Ó¸®¸¸ ¾ÆÇÁ°í ½Ä¿å¸¸ ¶³¾îÁú »ÓÀÌ´Ù. ¼³Ä¡¸¦ Çϱâ·Î ¸¶À½ ¸Ô¾ú´Ù¸é PostgresSQL »çÀÌÆ®³ª
±¹³»BBS Linux µ¿È£È¸¿¡¼ PostgresSQL ÃֽŹöÀüÀ» ¹Þ¾Æ¿ÀÀÚ. ¿¹ÀüÀÇ
Postgres 95 ¿Í ÇöÀçÀÇ PostgresSQL 6.x ´ë ¹öÀüÀº ¼·Î ¼³Ä¡¹æ¹ýÀÌ
Á¶±Ý ´Ù¸£Áö¸¸, PostgresSQL 6.x ´ë¿¡¼´Â °ÅÀÇ °°´Ù. Ȥ½Ã º£Å¸¹öÀüÀ»
¼³Ä¡ÇÏ·Á´Â ºÐÀ̳ª ¸çÄ¥ ÀÖÀ¸¸é ³ª¿Ã PostgresSQL 6.2¸¦ ¼³Ä¡ÇÏ°í
½Í´Ù¸é ±×°ÍÀ¸·Î ¼³Ä¡Çصµ »ó°üÀº ¾ø´Ù. ftp://ftp.sra.co.jp/pub/cmd/postgres/ »ç½Ç, PostgresSQLÀÇ ±âº» ¼³Ä¡´Â ./configure, make, make install, initab ¸¸À¸·Îµµ ÃæºÐÇÏ´Ù. ¹°·Ð Postgres ÀÌ·± ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÑ´Ù´Â°Ô Áß¿äÇÏ´Ù. ȯ°æº¯¼ö¸¦ Àâ´Â´Ù´øÁö ¿©Å¸ÀÇ °ÍµéÀº ÀÌÁ¦ ÇϳªÇϳª ¼³¸íÇÏ°Ú´Ù. 1) postgres
°èÁ¤ÀÌ ¾ø´Ù¸é ¸¸µç´Ù. 2) µð½ºÅ©
¿ë·®ÀÌ ÃæºÐÇÑÁö üũÇÑ´Ù. 3) ÀÏ´Ü postgresql-v6.1.1.tar.gzÀ» postgres Ȩ µð·ºÅ丮¿¡ °¡Á®´Ù ³õÀÚ 4) Linux¸¦
ºñ·ÔÇÑ ¸î¸î ½Ã½ºÅÛ¿¡¼´Â flex¸¦ »ç¿ëÇÑ´Ù. flex - version flex°¡ ¾ø´Ù¸é ¾Æ¸¶µµ ±×°ÍÀÌ ÇÊ¿ä¾øÀ» °ÍÀÌ´Ù. 2.5.2³ª 2.5.4. ÀÌ»óÀ̸é O.K. 2.5.3. À̳ª 2.5.2. ÀÌÀüÀÇ ¹öÀüÀ̸é flex¸¦ ¾÷±×·¹À̵å ÇØ¾ß ÇÑ´Ù. ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz¿¡¼ ±¸ÇÒ ¼ö ÀÖ´Ù. 5) ÀÌÁ¦ postgres Ȩ µð·ºÅ丮(/home/postgres)¿¡ ÀÖ´Â PostgresSQL¹èÆ÷º»ÀÇ ¾ÐÃàÀ» Ç®¾îº¸ÀÚ. cd Ȥ½Ã GUN tar°¡ ¾Æ´Ï¸é, gzip °ú tar ¸í·ÉÀ» µÎ¹øÀ¸·Î ³ª´©¾î »ç¿ëÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÌ´Ù. 6) ÇѱÛÀ»
»ç¿ëÇÏ·Á¸é gzip -dc jp.patch.gz | patch -p0 src/ µð·ºÅ丮¿¡ Makefile.customÆÄÀÏÀ» ¸¸µé¾î¼ JP=1 À̶ó°í ÇÑ ÁÙ Àû¾îÁØ´Ù. 7) /usr/local/pgsql µð·ºÅ丮¸¦ postgres ¼ÒÀ¯·Î ¸¸µé¾îµÐ´Ù. su -l Password : *********** mkdir/usr/local/pgsql chown postgres.postgres /usr/local/pgsql 8) ¾ÕÀ¸·Î´Â
°è¼Ó postgres »ç¿ëÀÚ °èÁ¤À¸·Î ·Î±äÇÏ¿© ÀÛ¾÷ÇØ¾ß ÇÑ´Ù! chown -R postgres.postgres POSTGRES_ INSTALL_DIRECTORY src µð·ºÅ丮·Î µé¾î°¡¼ ./configure¸¦ ½ÇÇàÇÏ¿© ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â »ç¾çÀ» °í¸£¸é µÈ´Ù. Linux »ç¿ëÀÚ¶ó¸é ¿£Å͸¸ µÎ¼¼ ¹ø µÎµé±â¸é ¾Ë¾Æ¼ Àâ¾ÆÁØ´Ù. cd cd postgresql-v6.1.1/src /configure ¿©±â¿¡¼ Àá½Ã readline ¶óÀ̺귯¸®¿¡ ´ëÇؼ ¤°í ³Ñ¾î°¡ÀÚ. readlineÀº bash.psql °ú °°Àº ¸í·ÉÇà ±â¹Ý ÇÁ·Î±×·¥¿¡¼ È÷½ºÅ丮 ±â´É°ú ÆíÁý±â´ÉÀ» Á¦°øÇØÁÖ´Â ¾ÆÁÖ Æí¸®ÇÑ ¶óÀ̺귯ÀÌÀÌ´Ù. readline ¶óÀ̺귯¸®´Â Ȩµð·ºÅ丮ÀÇ .inputrc¿¡¼ ¼³Á¤À» Àоî¿À±â ¶§¹®¿¡ 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ ó¸®ÇÏ·Á¸é ~/.inputrc ¿¡ ´ÙÀ½ÀÇ ÇÑ ÁÙÀ» Àû¾îÁÖ¸é ÇѱÛÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. set eightbit readline ¶óÀ̺귯¸®´Â ÁÖÀ§¿¡¼ ½±°Ô ±¸ÇÏ¿© ¼³Ä¡ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. 9) ÄÄÆÄÀÏÇÑ´Ù. make "All of PostgreSQL is successfully made. Ready to install"À̶ó´Â ¸Þ½ÃÁö°¡ º¸ÀÎ´Ù¸é ¼º°øÇÑ °ÍÀÌ´Ù . make install º¸Åë º° ¹«¸®¾øÀÌ Àß ¼³Ä¡µÉ °ÍÀÌ´Ù. ¼³Ä¡µÇÁö ¾Ê´Â ´ëºÎºÐÀÇ °æ¿ì´Â /usr/local/pgsql µð·ºÅ丮¸¦ ¸¸µé¾î µÎ´Â °ÍÀ» ±ôºý Ç߰ųª, postgres ÀÇ ¼ÒÀ¯·Î µÇ¾î ÀÖÁö ¾Ê¾Æ¼ ±×·² °ÍÀÌ´Ù. 10) ½Ã½ºÅÛÀÌ °øÀ¯ ¶óÀ̺귯¸®¸¦ Àß Ã£À» ¼ö ÀÖµµ·Ï root·Î ·Î±äÇÏ¿© /etc/ld.so.conf ÆÄÀÏ¿¡ ´ÙÀ½ÀÇ ÇÑ ÁÙÀ» Ãß°¡ÇÑ´Ù. /usr/local/pgsql/lib ±×¸®°í /sbin/ldconfig¸¦ ½ÇÇàÇÑ´Ù. bash ÀÇ °æ¿ì : export LD_LIBRARY_PATH=/usr/local/pgsql/lib csh ÀÇ °æ¿ì : setenv LD_LiBRARY_PATH /usr/local/pgsql/lib µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ ¶§ "pg_id:can't load library 'libpq.so'" ¶ó´Â ¸Þ½ÃÁö¸¦ ¹Þ´Â´Ù¸é À§ÀÇ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. 11) postgre·Î ·Î±äÇÏ¿© postgreSQLÀ» À§ÇÑ È¯°æº¯¼ö ¼³Á¤À» ÇÑ´Ù. ÀÌÈÄÀÇ ¸ðµç ÀÛ¾÷Àº postgres»ç¿ëÀÚ·Î ·Î±äÇÏ¿© ¼öÇàÇÏ¿©¾ß ÇÑ´Ù. PostgreSQL¸¦ »ç¿ëÇÏ·Á¸é ¹Ýµå½Ã ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. °¡²û ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏÁö ¾Ê°í PostgreSQL°¡ ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù°í À̾߱âÇÏ´Â ºÐµéÀÌ ¸¹´Ù. bash »ç¿ëÀÚ¶ó¸é, ´ÙÀ½ÀÇ ³»¿ëÀ» ~/.bash_profile¿¡ Àû¾î³Ö´Â´Ù. PATH-$PATH:/usr/local/pgslq/bin MANPATH=/usr/local/pgsql/man PGLIB=/usr/local/pgsql/lib PGDATA=/usr/local/pgsql/data export PATH MANPATH PGLIB PGDATA csh »ç¿ëÀÚ¶ó¸é setenv¸¦ »ç¿ëÇÏ¿©
¶È°°ÀÌ È¯°æº¯¼ö¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. source~/.bash_profile 12) µ¥ÀÌÅÍ º£À̽º¸¦ ÃʱâÈÇÑ´Ù. initdb 13) µ¥ÀÌÅÍ
º£À̽º¿¡ Á¢±ÙÇÒ Æ۹̼ÇÀ» ¼³Á¤ÇÑ´Ù. 14) postmaster µ¥¸óÀ» ¼öÇàÇÑ´Ù. postmaster > server.log 2> & 1 & 15) postgers¸¦
ºÎÆýÿ¡ ÀÚµ¿À¸·Î ¶ç¿ì°Ô ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇϸéµÈ´Ù. su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data " RedHat ¸®´ª½º °°Àº °æ¿ì¿¡´Â rc.d ±¸Á¶°¡ Á¶±Ý ´Ù¸£±ä ÇÏÁö¸¸ rc.local ÆÄÀÏ¿¡ ±×³É Àû¾îÁÖ´Â °ÍÀÌ ÆíÇÏ´Ù. 16) ÀÌ¿Õ
¸»ÀÌ ³ª¿Â ±è¿¡ postmaster¸¦ Á»´õ È¿À²ÀûÀ¸·Î ¶ç¿ì´Â ¿É¼ÇÀ»
Àá±ñ »ìÆ캸ÀÚ. ÇÊÀÚ´Â ´ÙÀ½°ú °°Àº postmaster Ãʱ⠺ÎÆà ¿É¼Ç °ªÀ» »ç¿ëÇÏ°í ÀÖ´Ù. su -l postgres -c "/usr/local/bin/postmaster -S -B 512 -o -F -D /usr/local/pgsql/data " 17) ±× ¿ÜÀÇ ¿©·¯ ½Ã½ºÅÛ¿¡¼ ÇÊ¿äÇÑ »çÇ×À» Àá±ñ »ìÆ캸ÀÚ. Ultrix4.x : Ultrix4.x ¿¡ µ¿Àû ·Î´õ°¡ ¾ø´Ù¸é libdl-1.1 ÆÐÅ°Áö¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº ´ÙÀ½¿¡¼ ±¸ÇÒ ¼ö ÀÖ´Ù. Linux
: Linux-elf ´Â Àß ¼³Ä¡µÈ´Ù. i486ÀÌ»óÀÇ ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ°í
ÀÖ´Ù¸é, template/LInux-elf¿¡ "-m486"À» ÄÄÆÄÀÏ
¿É¼Ç¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. BSD/OS : BSD/OS 2.0 ¿Í 2.01¿¡¼´Â GNU dld ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. NeXT
: NeXT Æ÷Æ®´Â Tom R Hageman tom@basil.icce.rug.nlÀÌ
Á¦°øÇÑ´Ù. 18) PostgreSQL¸¦
¿î¿µÇÏ·Á¸é »ç¿ëÇÒ µ¥ÀÌÅÍ º£À̽º¿Í »ç¿ëÀÚ¸¦ µî·ÏÇØ¾ß ÇÑ´Ù.
$ createdb test linuxer¶ó´Â »ç¿ëÀÚ¸¦ µî·ÏÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. $ createuser linuxer Enter user's postgres ID or RETURN to use unix user ID : 514 -> [Enter] ls user " inuxer " allowed to create to database (y/n) y ls user " inuxer " allowed to create to add users?(y/n) y createuser : linuxer was successfully added linuxer¶ó´Â »ç¿ëÀÚ¿¡°Ô µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ ±Ç¸®¸¦ Á¦°øÇßÁö¸¸, ¶Ç ´Ù¸¥ »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ±Ç¸®¸¦ ÁÖÁö ¾Ê¾Ò´Ù. Âü°íÀûÀ¸·Î À̾߱âÇÏ¸é »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ±Ç¸®¸¦ ÁÖÁö ¾ÊÀ¸¸é ÇØ´ç»ç¿ëÀÚ´Â ÀÚ½ÅÀÇ µ¥ÀÌÅͺ£À̽º¸¦ »èÁ¦ÇÒ ¼ö ¾ø°Ô µÈ´Ù. createdb¿Í createuser¿¡ ¹Ý´ëµÇ´Â ¸í·ÉÀº destrotdb¿Í destroyuser ¸í·ÉÀÌ´Ù. test¶ó´Â µ¥ÀÌÅÍ º£À̽º¸¦ ¸¸µé¾úÀ¸¸é ÀÌÁ¦ Àá±ñ Å×½ºÆ®ÇØ º¸ÀÚ $psql test Welcome to the POSTGRESQL interactive sql monitor : Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for help on slash commands type \q to quit type \g or terminate with semicolon to execute query You are currently connected to the database : test test => craeat table ¿¬½À( test -> À̸§ test test -> ¹øÈ£ int4 test -> ); CREATE test =>\d ¿¬½À
Table=¿¬½À
test => inster into ¿¬½À values ('²¨º¡ÀÌ'.1); INSERT 154615 test => inster into ¿¬½À values ('¸ÛûÀÌ'.2); INSERT 154616 test => select*from ¿¬½À :
(2 rows) test => part 2 PostgreSQL¸¦ ¹ÙÀ̳ʸ®·Î ¼³Ä¡Çϱâ PostgreSQL¸¦ º»°ÝÀûÀ¸·Î È°¿ëÃø¸é¿¡¼ »ìÆì º¸±â Àü¿¡ PostgreSQL¸¦ ¹ÙÀ̳ʸ®·Î ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ» Àá½Ã »ìÆ캻´Ù. ¹ÙÀ̳ʸ®´Â ÁÖ·Î rpmÀ¸·Î ¹èÆ÷µÈ´Ù. ¹°·Ð µ¥ºñ¾È ÆäÅ°ÁöÇü½ÄÀÎ deb·Î ¹èÆ÷µÇ±ä ÇÏÁö¸¸ ¿©±â¼´Â PostgreSQL ÀÇ rpm ¹èÆ÷ÆÇÀ» ´Ù·ç°Ú´Ù. ÇÊÀÚ´Â ÁÖ·Î ½½·º¿þ¾î¸¦ »ç¿ëÇÏ´Â µ¥ ½½·º¿þ¾î¿¡ rpm ÆÐÅ°Áö¸¦ ¼³Ä¡ °ü¸®ÇÒ¼ö ÀÖµµ·Ï ÇØÁÖ´Â rpm ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ°í PostgreSQL 6.1 rpm ÆÇÀ» ¼³Ä¡ÇÏ·Á´Ù Àß µÇÁö ¾Ê¾Ò´Ù. »ç¿ëÇÏ°í ÀÖ´Â rpm ¹öÀüÀÌ ³·¾Æ¼ ±×·±Áö ¸ð¸£°Ú´Ù. PostgreSQL rpm ÆÐÅ°Áö´Â ¿ª½Ã ·¹µåÇò¿¡¼ ¼³Ä¡°¡ ÀߵȴÙ. ±¹³» BBS ¸®´ª½º µ¿È£È¸³ª ·¹µåÇÞ¿¡¼ PostgreSQL rpm ÆÐÅ°Áö¸¦ ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù. root·Î ·Î±äÇÏ¿© ÀÏ»óÀûÀÎ rpm ¸í·ÉÀ¸·Î ¼³Ä¡ÇÏ¸é µÈ´Ù. $rpm -ivh pgsql61.rpm ÆÐÅ°ÁöÀÇ À̸§Àº ´Ù¸¦ ¼ö ÀÖ´Ù. ÇÊÀÚ°¡ ¼³Ä¡Çغ» PostgreSQL rpm ÆÇÀº °ü·ÃÆÄÀÏÀ» ¿©·¯°÷À¸·Î ºÐ»ê½ÃÅ°´Â °æÇâÀÌ ÀÖ¾ú´Ù. ¹ÙÀ̳ʸ®´Â /user/bin ¿¡, µ¥ÀÌÅÍÆÄÀÏ°ú ¸®¼Ò½º ÆÄÀÏÀº /var/lib/postgresql¿¡ µé¾î°£´Ù. ÀÌ¹Ì µ¥ÀÌÅͺ£À̽º ÃʱâÈ°¡ µÇ¾î ÀÖÀ¸¹Ç·Î initdb·Î ÇÒ ÇÊ¿ä¾ø´Ù. PostgreSQL rpm ÆÐÅ°Áö¿¡´Â ¸î °¡Áö ¹®Á¦°¡ ÀÖ´Ù.
postmaster¸¦ ½ÇÇà½ÃÅ°·Á¸é ÆÛ¹Ì¼Ç ¿¡·¯°¡ ¶³¾îÁö´Âµ¥ ÀÌ´Â ´ÙÀ½À»
¼öÇàÇÏ¿© ÇØ°áÇÒ ¼ö ÀÖ´Ù. $chown -R postgres /var/lib/postgresql ¶Ç ÇϳªÀÇ ¿¹»óÄ¡ ¸øÇÑ ¹®Á¦Á¡Àº PostgreSQLÀÇ ½´ÆÛÀ¯Àú ±ÇÇÑÀÌ postgres ¿¡°Ô ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó deamon¿¡°Ô ÀÖ´Ù´Â °ÍÀÌ´Ù. PostgreSQL¸¦ rpmÀ¸·Î ¼³Ä¡ÇÏ°í µ¥ÀÌÅÍ º£À̽º¿Í »ç¿ëÀÚ¸¦ ¾Æ¹«¸® Ãß°¡ÇÏ·Á°í Çصµ µÇÁö ¾Ê¾Æ¼ data µð·ºÅ丮ÀÇ pg_user µ¥ÀÌÅ͸¦ ¹Ù¸®³Ê¸® ¿¡µðÅÍ·Î »ìÆ캸´Ï Ȳ´çÇÏ°Ôµµ deamonÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀÌ ¾Æ´Ñ°¡? ÆÐŰ¡ÇÑ »ç¶÷ÀÌ ¾î¶² ÀÌÀ¯·Î ÀÌ·¸°Ô ÇÑ °ÍÀÎÁö ¾Ë ¼ö´Â ¾øÁö¸¸ ¿ì¸®´Â ÀÌ·± »óȲÀ» ¹Ù·Î Àâ¾Æº¸ÀÚ ¸ÕÀú root »óÅ¿¡¼ deamonÀ¸·Î ·Î±äÇØ¾ß ÇÑ´Ù. deamonÀº ÀϹÝÀûÀÎ °èÁ¤ÀÌ ¾Æ´Ï¶ó ½Ã½ºÅÛÀÇ È¿À²ÀûÀÎ ¿î¿µÀ» À§ÇØ »ý¼ºµÇ´Â °èÁ¤ÀÌ´Ù. $ su -I deamon $ createuser postgres postgres¿¡°Ô µ¥ÀÌÅÍ º£À̽º¿Í »ç¿ëÀÚ Ãß°¡±ÇÇÑÀ» ºÎ¿©ÇÑ´Ù. ÀÌÁ¦ postgres °èÁ¤À¸·Î ·Î±äÇÏ¿© ¾Õ¼¿Í ¸¶Âù°¡Áö·Î µ¥ÀÌÅÍ º£À̽º¿Í »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ¸é µÈ´Ù. ÇÏÁö¸¸ ÀÌ·¸°Ô ÇÑ´Ù°í Çؼ ¸ðµç ¹®Á¦°¡ ÇØ°áµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ±×³É °£´ÜÇÏ°Ô ¹è¿ì±â¿¡´Â º°¹®Á¦°¡ ¾ø°ÚÁö¸¸ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀ» ±¸ÃàÇÑ´Ù´Â Ãø¸é¿¡¼ º¸¸é ²À ¼Ò½ºÆÄÀÏ·Î ¼³Ä¡ÇÏ´øÁö, Á¦´ë·Î µÈ ¹ÙÀ̳ʸ® ÆÐÅ°Áö¸¦ ±¸Çؼ ¼³Ä¡Çϱ⠹ٶõ´Ù.
5. PostgreSQL ±âÃÊ »ç¿ë¹ý PostgreSQL ÀÇ Æ¯Â¡ÀÎ ºÎºÐµéÀ» È°¿ëÇϱâ ÀÌÀü¿¡
¸ÕÀú PostgreSQL¿¡¼ Áö¿øÇÏ´Â SQL ÀÇ ±âº» »ç¿ë¹ýÀ» Àá±ñ »ìÆ캸ÀÚ.
PostgreSQLÀº ¾ÆÁ÷Àº ANSI SQLÀ» ¿Ïº®ÇÏ°Ô Áö¿øÇÏÁö ¾Ê´Â´Ù. ´Ù¸¥
ÀÚÀ¯·Ó°Ô ±¸ÇÒ ¼ö ÀÖ´Â RDBMS¿¡ ºñÇغ¼ ¶§ Ç¥ÁØ ºÎºÐ¿¡¼´Â Á¶±Ý
¶³¾îÁö´Â°Ô »ç½ÇÀÌ´Ù. ÇÏÁö¸¸, ÀϹÝÀûÀÎ »ç¿ë¿¡´Â ÀüÇô ÁöÀåÀÌ ¾øÀ¸¸ç,
´Ù¸¥ RDBMS¿¡¼´Â Áö¿øÇÏÁö ¾Ê´Â ´Ù¾çÇÑ ºñÇ¥Áرâ´ÉµéÀ» ¸¹ÀÌ Áö¿øÇÑ´Ù. °ü°èÇü µ¥ÀÌÅÍ º£À̽º¿¡¼´Â º¸Åë ·¹ÄÚµå(recoard)¿Í
Çʵå(field)¶ó´Â ¿ë¾î´ë½Å¿¡ Å×À̺í(Ç¥-table), ·Î¿ì(Çà-row), Ä÷³(¿-column)À̶ó´Â
¿ë¾î¸¦ »ç¿ëÇÑ´Ù.
ÀÌ ÆÄÀÏÀ» weather.sqlÀ¸·Î ÀúÀåÇÑ´Ù. . $ createdb mydb ÀÌÁ¦ µ¥ÀÌÅÍ º£À̽º¿¡ Á¢¼ÓÇÑ´Ù. $ psql mydb ¾à°£ÀÇȯ¿µ ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ¾Õ¼ ÀúÀåÇß´ø SQL ÁúÀǾ ´ã±ä ÆÄÀÏÀ» ºÒ·¯¼ ½ÇÇàÇÏ´Â ¸í·ÉÀº '¡¬i filename'ÀÌ´Ù. mydb=> ¡¬i weather.sql Á¤»óÀûÀ¸·Î Å×À̺íÀ» ¸¸µé°í ÇØ´ç °ªÀ» »ðÀÔÇÒ °ÍÀÌ´Ù. SQL ÁúÀǾ ´ëÇÑ °£´ÜÇÑ ¿Â¶óÀÎ µµ¿ò¸»Àº '¡¬ hcommand'Çü½ÄÀ¸·Î ¾òÀ» ¼ö ÀÖ´Ù. psql ¸ð´ÏÅ͸µÀº ÇÁ·Î±×·¥¿¡¼ Á¦°øÇÏ´Â ¸î °¡Áö ¸í·É¾î´Â '¡¬?'¸¦ »ç¿ëÇÏ¸é ¾Ë ¼ö ÀÖ´Ù. ±â¾ïÀÌ Àß ¾È³¯ ¶§ ÀÚÁÖ »ç¿ëÇϱ⠹ٶõ´Ù.
1) select '³¯¾¾' Å×ÀÌºí¿¡ ÀÔ·ÂÇÑ ¸ðµç µ¥ÀÌÅ͸¦ °Ë»öÇغ¸ÀÚ mydb => select * from ³¯¾¾ ;
À̹ø¿¡´Â ÃÖÀú ¿Âµµ°¡ °¡Àå ³·Àº ¼ø¼´ë·Î °Ë»öÇغ¸ÀÚ mydb => select *from ³¯¾¾ order by ÃÖÀú¿Âµµ asc; asc´Â ¿À¸§Â÷¼øÀ¸·Î Á¤¸®ÇÏ´Â °ÍÀÌ´Ù. ³»¸²Â÷¼øÀ¸·Î Á¤¸®ÇÏ·Á¸é desc¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¿©±â¿¡¼ Á¤·ÄÀº order by¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¿©±â¿¡¼ Á¤·ÄÀº order by¸¦ »ç¿ëÇÏ¿© ÃÖÀú¿Âµµ¿¡ Àû¿ëÇÏ¿´´Ù. À̹ø¿¡´Â °¼ö·®ÀÌ 0.1¿¡¼ 0.3»çÀÌÀÎ ÇàÀÇ µµ½Ã¿Í °¼ö·®À» ±¸Çغ¸ÀÚ. mydb => select µµ½Ã, °¼ö·® from ³¯¾¾
where °¼ö·® > 0.1 and °¼ö·® < 0.3 ;
´ÙÀ½À» 10¿ù´ÞÀÇ ±â·Ï Áß¿¡ ÃÖÀú¿Âµµ ÃÖ°í¿ÂµµÀÇ Â÷ÀÌ°¡ 10µµ ¹Ì¸¸ÀÎ ÇàÀ» ã¾Æ¼ µµ½Ã¿Í ³¯Â¥¿Í µµ½Ã¿Í ³¯Â¥¿¡ ´ëÇÑ Á¤º¸¸¦ ³¯Â¥¿Í ´ëÇÑ Á¤º¸¸¦ ³¯¾¾2 ¶ó´Â Å×ÀÌºí¿¡ ÀúÀåÇØ º¸ÀÚ mydb = > select µµ½Ã,³¯Â¥ into table ³¯¾¾2 from ³¯¾¾ mydb = > where ³¯Â¥ > = '1997/10/1' mydb = >and ³¯Â¥ <= '1997/10/3' mydb = >and (ÃÖ°í¿Âµµ- ÃÖÀú¿Âµµ) < 10; SELECT mydb = > select *from ³¯¾¾2;
2) update 10¿ù 1ÀÏ ³¯ÀÇ ÃÖÀú¿Âµµ¸¦ 2µµ ´õÇÏ°í ÃÖ°í¿Âµµ¸¦ 2µµ »©º¸ÀÚ mydb => update ³¯¾¾ set ÃÖÀú¿Âµµ=ÃÖÀú¿Âµµ+2, ÃÖ°í¿Âµµ=ÃÖ°í¿Âµµ-2 mydb => where ³¯Â¥ = '1997/10/1'; UPDATE 3) delete delete ¸í·ÉÀº ³»ºÎ µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù Å×À̺í Àüü¸¦ »èÁ¦ÇÏ·Á¸é drop¸¦ ½á¾ß ÇÑ´Ù. mydb => delete from ³¯¾¾2 DELETE mydb => select * from ³¯¾¾2 ;
DROP mydb => select*from ³¯¾¾2; WARN: ³¯¾¾2: Table does not exist. 4) alter '¹è±â °¡½º À¯Ãâ·®' À̶ó´Â Ä®·³À» Çϳª »ðÀÔÇغ¸ÀÚ. mydb => alter table ³¯¾¾ add column ¹è±â°¡½ºÀ¯Ãâ·® int; ADD mydb =>¡¬d ³¯¾¾
Table = ³¯¾¾
ÇöÀç PostgresSQL 6.1.1 ±îÁöÀÇ ¹öÀü¿¡´Â ƯÁ¤ Ä÷³À» Á¦°ÅÇÏ´Â ¸í·ÉÀº ¾ø´Ù. 6.2 À̻󿡼 Ä÷³À» Á¦°ÅÇÏ·Á¸é, Á¦°ÅÇÏ°íÀÚ ÇÏ´Â Ä÷³À» Á¦¿ÜÇÑ ³ª¸ÓÁö Ä÷³À» ¸ðµÎ select ÇÏ¿© ´Ù¸¥ µ¥À̺í·Î ÀúÀåÇÑ ´ÙÀ½, ÀÌÀü Å×À̺íÀ» »èÁ¦ÇÏ°í, »õ·Î ¸¸µç Å×À̺íÀ» ÀÌÀü Å×À̺íÀÇ ¸íĪÀ¸·Î º¯°æÇÏ¸é µÈ´Ù. 5) ÀüüÇÔ¼ö PostgreSQL´Â count, sum, average, max min °ú°°Àº ÀüüÇÔ¼ö¸¦ Áö¿øÇÑ´Ù. mydb => select max(°¼ö·®) from ³¯¾¾ ; max ----- 0.73 6) psqlÀÇ ¸ð´ÏÅ͸µ ¸í·É¾î psqlÀº libpq¿¡ ±â¹ÝÇÑ SQL ¸ð´ÏÅ͸µ ÇÁ·Î±×·¥ÀÌ´Ù.
¿©·¯ °¡Áö ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇϱ⠶§¹®¿¡ È°¿ëÀ» Çغ¼ ¸¸ÇÏ´Ù.
. ¡¬? : µµ¿ò¸» ¡¬a : Çʵå Á¤·ÄÀÚ Åä±Û ¡¬C : html3 ĸ¼Ç ¼³Á¤ ¡¬c : µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼Ó ¡¬d : ÇöÀç µ¥ÀÌÅÍ º£À̽ºÀÇ Àüü Å×ÀÌºí ¶Ç´Â Æ¯Á¤ Å×À̺í Ãâ·Â ¡¬di :µ¥ÀÌÅÍ º£À̽º ³»ºÎÀÇ À妽º¸¸ Ãâ·Â ¡¬ds :µ¥ÀÌÅÍ º£À̽º ³»ºÎÀÇ ½ÃÄö½º¸¸ Ãâ·Â ¡¬dt :µ¥ÀÌÅÍ º£À̽º³»ºÎÀÇ Å×ÀÌºí¸¸ Ãâ·Â ¡¬e : ÇöÀç¹öÆÛ¿¡ ÀÖ´Â ÁúÀǾ ÆÄÀÏÀ» ÆíÁý ¡¬f : ÇÊµå ±¸ºÐÀÚ º¯°æ (º¸ÅëÀº '|') ¡¬h : SQL ¸í·É¾î¿¡ ´ëÇÑ ¹®¹ýÀû µµ¿ò¹ßÃâ·Â ¡¬H : ÁúÀÇÀÇ °á°ú¸¦ html3 À¸·Î Ãâ·ÂÇÒÁöÀÇ ¿©ºÎ °áÁ¤ ¡¬i : ¿ÜºÎ ÆÄÀÏ¿¡¼ ÁúÀǸ¦ ÀÐ¾î¼ ½ÇÇàÇÔ ¡¬l : ½Ã½ºÅÛÀÇ ¸ðµç µ¥ÀÌÅÍ º£À̽º¸¦ Ãâ·Â ¡¬p : ÇöÀçÀÇ ÁúÀÇ ¹öÆÛ¸¦ Ãâ·Â ¡¬q : Á¾·Î ¡¬r : ÁúÀÇ ¹öÆÛ¸¦ û¼Ò ¡¬t : Çì´õÁ¤º¸¿Í ÇàÀÇ °¹¼ö¸¦ Ãâ·ÂÇÒÁöÀÇ ¿©ºÎ°áÁ¤ ¡¬T : html3.0 <Table...> ¿É¼Ç°áÁ¤ ¡¬z : ÇöÀçÀÇ Çã¿ë/Ãë¼Ò ±ÇÇÑ Ãâ·Â ¡¬! : ½© ¸í·É¾î ½ÇÇà ÀÌÁß¿¡¼ ¡¬i ¿Í ¡¬d, ¡¬h Á¤µµ¸¦ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù. 7) psql ¿ÜºÎ¿É¼Ç psql ¸ð´ÏÅ͸µ ÇÁ·Î±×·¥Àº ¾ÆÁÖ À¯¿ëÇÑ ¿ÜºÎ¿É¼ÇÀ» ¸¹ÀÌ Á¦°øÇÑ´Ù. ÀÌ°É »ç¿ëÇÏ¸é ½©½ºÅ©¸³Æ®·Î PostgreSQL¸¦ »ç¿ëÇÑ CGI ÇÁ·Î±×·¥À» °£´ÜÇÏ°Ô Â© ¼ö ÀÖ´Ù. -c ÁúÀǾî
: psql ¸í·ÉÇàÀ¸·Î µé¾î°¡Áö ¾Ê°í ÁúÀǾ Àü´ÞÇÏ¿©
ÀÛ¾÷ÇÒ ¼ö ÀÖ´Ù. -d µðºñÀ̸§
: Á¢¼ÓÇÒ µ¥ÀÌÅÍ º£À̽º¸¦ ÁöÁ¤ÇÑ´Ù. -e : backend·Î
º¸³½ ÁúÀǾ echo ÇÑ´Ù. -f ÆÄÀÏÀ̸§
: psql ³»ºÎ¿¡¼ ¡¬i ¸í·ÉÀ» »ç¿µÇϵíÀÌ, ¿ÜºÎ¿¡¼µµ SQL ÁúÀǾ
´ã±ä -H È£½ºÆ® À̸§
: postmaster °¡ ¼öÇàµÇ°í Àִ ȣ½ºÆ®¿¡ Á¢¼ÓÇÑ´Ù ±âº»°ªÀº -l : »ç¿ë°¡´ÉÇÑ
µ¥ÀÌÅ× º£À̽º ¸ñ·ÏÀ» Ãâ·ÂÇÑ´Ù. -n : psql
³»ºÎ ¸í·ÉÇà¿¡¼ readline ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. -p Æ÷Æ® :
postmaster °¡ µ¹¾Æ°¡°í ÀÖ´Â ÀÎÅÍ³Ý tcp Æ÷Æ®¸¦ ÁöÁ¤ÇÑ´Ù.
-q : ¿©·¯
°¡Áö ºÎ°¡ÀûÀÎ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. -s : ½Ì±Û
½ºÅܸðµå·Î psqlÀ» ½ÇÇàÇÑ´Ù. ÁúÀǾ ½ÇÇàÇϱâ Àü¿¡ ¿£ÅÍÅ°¸¦
Çѹø ´õ ½©¿¡¼ ¾î¶°ÇÑ ¸ñÀûÀ¸·Î psql ³»ºÎ¿¡ µé¾î°¡Áö ¾Ê°í ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. $ psql mydb -e -c "select * from ³¯¾¾" ´ÙÀ½È£¿¡¼´Â ½ÇÁ¦ÀûÀÎ ¾÷¹«¿¡¼ »ç¿ëµÉ ¹ýÇÑ Á»´õ º¹ÀâÇÑ µ¥ÀÌÅÍ º£À̽º¸¦ PostgreSQL·Î ´Ù·ç¾î º¸¸é¼ È°¿ë¹æ¾ÈÀ» »ìÆ캸°Ú´Ù. |