|
||
1. Large Object¶õ ¹«¾ùÀΰ¡? Large Object´Â ¿ì¸®¸»·Î Ç¥ÇöÇÏ¸é °Å´ë °´Ã¼¶ó°í
ÇÒ ¼ö ÀÖ°Ú´Ù. PostgreSQL¿¡¼´Â ±âº» µ¥ÀÌÅÍ ÆäÀÌÁö°¡ 8K(8192¹ÙÀÌÆ®)·Î
ÇÑÁ¤µÇ¾î ÀÖ´Ù. ÀÌÁ¦ µ¥ÀÌÅÍ ÀúÀåÃø¸é¿¡¼ »ý°¢Çغ¸ÀÚ. ¿ì¸®°¡ ´Ù·ç±â¸¦ ¿øÇÏ´Â µ¥ÀÌÅÍ°¡ 8K º¸´Ù Å©´Ù°í ÇÏ´õ¶óµµ °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ó¸®ÇÒ ¼ö ÀÖ´Â °æ¿ì°¡ ÀÖ´Ù. °¡·É À̹ÌÁö¸¦ ´Ù·ç´Â °æ¿ì¸¦ »ý°¢Çغ»´Ù¸é, À̹ÌÁö¿¡ ´ëÇÑ °¢Á¾ Á¤º¸´Â Å×ÀÌºí¿¡ ÀúÀåÇÏ°í ½ÇÁ¦ À̹ÌÁö ÆÄÀÏÀº ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÆÄÀÏ·Î ±×³É ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ·² °æ¿ì¿¡ »ç¿ëÀÚ°¡ À̹ÌÁö ÆÄÀÏÀ» °Ë»öÇϱ⸦ ¿øÇÑ´Ù¸é Å×À̺í Á¤º¸¿¡¼ ¿øÇÏ´Â Å°¿öµå·Î °Ë»öÀ» ÇÑ´Ù. À½, ÀÌ¿¡ ÇØ´çÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛ»óÀÇ À̹ÌÁö ÆÄÀÏÀ» ÀÏ¹Ý UNIX ÆÄÀÏ Ã³¸® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀоîµéÀÏ ¼ö ÀÖ´Ù. ¹°·Ð, ¿øÇÑ´Ù¸é À¥ ºê¶ó¿ìÀú »ó¿¡ ±×³É Ãâ·ÂÇÒ ¼öµµ ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ÀÚÁÖ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ, ÀÌ·¸°Ô ¿øÇÏ´Â °Å´ë µ¥ÀÌÅ͸¦ ÆÄÀÏ ½Ã½ºÅÛ»ó¿¡ ÀúÀåÇÏ°í ÀÌ¿¡ ´ëÇÑ Á¤º¸¸¸ Å×ÀÌºí¿¡ ÀúÀåÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô¸¸ »ç¿ëÇÑ´Ù¸é °Å´ë°´Ã¼¸¦ ±»ÀÌ »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø¾îÁø´Ù. ±×¸®°í ÀÌ °æ¿ì¿¡ À̹ÌÁö ÆÄÀÏÀº ¾ö¹ÐÈ÷ µûÁø´Ù¸é RDBMSÀÇ ¿ÜºÎ¿¡ ÀÖ´Ù°í º¼ ¼ö ÀÖ´Ù. µû¶ó¼ µ¥ÀÌÅͺ£À̽ºÀÇ °ü¸® Ãø¸é¿¡¼ º¼ ¶§, µ¥ÀÌÅͺ£À̽ºÀÇ ¿ÜºÎ¿¡ ÀÖÀ½À¸·Î ÀÎÇØ µ¥ÀÌÅÍÀÇ ¹«°á¼ºÀÌ º¸ÀåµÇÁö ¾Ê°í, °Ë»ö µîÀÇ ÀÛ¾÷¿¡ ÀÖ¾î¼ µ¥ÀÌÅͺ£À̽ºÀÇ È¿À²¼ºÀ» È°¿ëÇÒ ¼ö ¾ø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ ´ÜÁ¡Àº RDBMSÀÇ »ç¿ë¿¡ ÀÖ¾î¼ Ä¡¸íÀûÀÎ ¼ÕÇØ°¡ ¾Æ´Ò ¼ö ¾ø´Ù. ÀÌ·Î ÀÎÇØ µîÀåÇÑ °ÍÀÌ °Å´ë°´Ã¼ÀÌ´Ù. ±×¸²¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ RDBMS´Â ³»ºÎ ÀúÀå ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Ù. °Å´ë µ¥ÀÌÅÍÀÇ °æ¿ì¿¡´Â ÆÄÀÏ À̹ÌÁö´Â µ¥ÀÌÅͺ£À̽ºÀÇ ³»ºÎ ÀúÀå ¸ÞÄ«´ÏÁò¿¡ µû¶ó ÀúÀå½Ã½ºÅÛ¿¡ ºÐ¸®µÇ¾î È¿À²ÀûÀ¸·Î ÀúÀåµÇ¸ç, ÀÌ¿¡ ´ëÇÑ Á¤º¸´Â Å×ÀÌºí ³»ÀÇ °´Ã¼ ½Äº°ÀÚ(oid)¿Í ¿¬°áµÇ¾î À¯ÁöÇÏ´Â °ÍÀÌ´Ù. Oid´Â PostgreSQL ¼¹ö°¡ µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¸ðµç ÀνºÅϽº¿¡ ÀÚµ¿ÀûÀ¸·Î ºÎ¿©ÇÏ´Â Áߺ¹µÇÁö ¾Ê´Â À¯ÀÏÇÑ ½Äº°ÀÚÀÌ´Ù. °Å´ë°´Ã¼ ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÒ ¶§ÀÇ ÀåÁ¡Àº µ¥ÀÌÅÍÀÇ ¹«°á¼ºÀ» º¸ÀåÇÏ°í, °Ë»ö½Ã¿¡ µ¥ÀÌÅͺ£À̽ºÀÇ È¿À²¼ºÀ» È®º¸ÇÒ ¼ö ÀÖ´Ù´Â Á¡ ¿Ü¿¡µµ ½Ã°£¿©Çà(time travel) ±â´ÉÀ» Á¦°øÇÑ´Ù. UNIX ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ÆÄÀÏÀÌ Áö¿öÁö¸é ³¡ÀåÀÌÁö¸¸, PostgreSQL µ¥ÀÌÅͺ£À̽º ¼¹ö ³»¿¡¼ Áö¿î ÆÄÀÏÀº ¿ÏÀüÈ÷ Áö¿öÁø°Ô ¾Æ´Ï¶ó¼ ½Ã°£¿©ÇàÀ» ÅëÇØ °í½º¶õÈ÷ º¹±¸ÇÒ ¼ö ÀÖ´Ù. PostgreSQL ¼¹öÀÇ °Å´ë°´Ã¼ÀÇ ÃÖ´ë ´ÜÁ¡Àº ÀÏ¹Ý UNIX Á¤±ÔÆÄÀÏÀ» °Å´ë°´Ã¼ ³»¿¡ Èí¼öÇϱâ À§ÇÏ¿© ÇÊ¿äÇÑ ¼öÀÔ(import)°ú ¼öÃâ(export)½Ã¿¡ ¸¹Àº ½Ã°£ÀÌ °É¸°´Ù´Â °ÍÀÌ´Ù. ¼ö ¸Þ°¡ ¹ÙÀÌÆ® ÀÌ»óÀÇ ÆÄÀÏÀ» ´Ù·ê ¶§, ¼öÀÔÀº ÇÑ ¹ø¸¸ ÇÏ°ÚÁö¸¸ ¼öÃâÀº ¿©·¯ ¹ø ÇÏ°Ô µÉ °ÍÀÌ´Ù. »ç¿ëÀÚ¿¡°Ô ¿Â¶óÀÎÀ¸·Î µ¥ÀÌÅ͸¦ µð½ºÇ÷¹ÀÌÇØ¾ß ÇÒ °æ¿ì°¡ ÀÚÁÖ ¹ß»ýÇÒ °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ·² °æ¿ì¿¡´Â Â÷¶ó¸® °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù°í »ý°¢ÇÑ´Ù. ³Ê¹« ÀÚÁÖ ¼öÃâÀ» ÇÏ°Ô µÇ¸é ÆÄÀÏÀ» º¹»çÇÏ´Â °Í ÀÌ»óÀÇ ÀÚ¿øÀ» Àâ¾Æ¸Ô±â ¶§¹®ÀÌ´Ù. ¶Ç ÇÑ°¡Áö´Â ´©±¸³ª ´À³¢´Â ¹®Á¦°ÚÁö¸¸ Á» ¹ø°Å·Ó´Ù´Â °ÍÀÌ´Ù. Å×ÀÌºí ³»¿¡ ÇÊ¿äÇÑ ¸ðµç µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °´Ã¼ ½Äº°ÀÚ¸¸ ÀúÀåÇÏ°í Á¤ÀÛ µ¥ÀÌÅÍ´Â µ¥ÀÌÅͺ£À̽º ³»ºÎÀÇ º°µµÀÇ ÀúÀå½Ã½ºÅÛ¿¡ ÀúÀåÇÑ´Ù´Â °Íµµ ±×·¸°í, ¼öÀÔ(import)°ú ¼öÃâ(export)ÀÌ ÇÊ¿äÇÏ´Ù´Â Á¡µµ ±×·¸´Ù. ¢Ñ °Å´ë°´Ã¼¸¦ ¼³¸íÇÒ ¶§ »ç¿ëµÇ´Â import¿Í
export¸¦ ´ëüÇÒ Àû´çÇÑ ¿ì¸®¸»ÀÌ ¾ø´Â °Í °°¾Æ,
2. ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅÍ¿Í °Ë»ö ±»ÀÌ ¸ÖƼ¹Ìµð¾î»Ó¸¸ÀÌ ¾Æ´Ï¶ó 8K¸¦ ³Ñ¾î°¡´Â ¹®ÀÚ, ¼ýÀÚ, Åë°è µ¥ÀÌÅÍ µîÀ» ´Ù·ç´Â µ¥¿¡µµ °Å´ë°´Ã¼¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ½À» ¾Õ¼ ¾ð±ÞÇÏ¿´´Ù. ±×¸®°í ÀÌµé °Å´ë°´Ã¼¸¦ »ç¿ëÇÏ´Â µ¥ÀÌÅÍ´Â oid¸¦ ÅëÇؼ Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í ¾ð±ÞÇÏ¿´´Ù. ¸ÖƼ¹Ìµð¾îµçÁö ¾Æ´Ï´øÁö ÀÌµé °Å´ë°´Ã¼ µ¥ÀÌÅÍÀÇ °Ë»öÀ̳ª ¼öÁ¤Àº ¸ðµÎ µ¿ÀÏÇÒ °ÍÀÌ´Ù. °Å´ë°´Ã¼¿¡ ´ëÇÑ ÁÖº¯ÀûÀÎ Á¤º¸´Â ±âº» Å×ÀÌºí¿¡ ÀúÀåÇÒ °ÍÀÌÁö¸¸ º»°Ý °Å´ë°´Ã¼ µ¥ÀÌÅÍ´Â Å×ÀÌºí ³»ÀÇ oid¸¦ ÅëÇØ Á¢±ÙµÉ °ÍÀ̱⠶§¹®ÀÌ´Ù. µû¶ó¼ ÀÌµé µ¥ÀÌÅ͸¦ °Ë»öÇÏ´Â ¹æ¹ýÀº ´ëü·Î µÎ °¡Áö°¡ ÀÖ´Ù°í º¼ ¼ö ÀÖ´Ù. ´Ü¼øÈ÷ ÁÖº¯ÀûÀÎ Å×ÀÌºí µ¥ÀÌÅ͸¦ °Ë»öÇÏ´Â ¹æ¹ý°ú Å×ÀÌºí ³»ÀÇ oid Çʵ带 ÅëÇÏ¿© °Å´ë°´Ã¼ µ¥ÀÌÅ͸¦ Á÷Á¢ °Ë»öÇÏ´Â ¹æ¹ýÀÌ´Ù. °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â µ¥ÀÌÅÍÀÇ À¯ÇüÀÌ ¿©·¯ °¡Áö°¡ ÀÖ°ÚÁö¸¸ ¿©±â¼´Â ³í¹®À» °ü¸®ÇÏ´Â µ¥ÀÌÅͺ£À̽ºÀÇ ¿¹¸¦ µé¾îº¸ÀÚ(±× ¿ÜÀÇ ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅ͵µ ¸¶Âù°¡ÁöÀÏ °ÍÀÌ´Ù). ¸ÕÀú, ³í¹®À̶ó´Â Å×À̺íÀ» Çϳª ¸¸µé °ÍÀÌ°í, Çʵå´Â ´ë·« ÁöÀºÀÌ, ³¯Â¥, Á¦¸ñ, ÀÚ·á¸í, Å©±â, Çü½Ä, OID Á¤µµ°¡ µÉ °ÍÀÌ´Ù. ¿ÜºÎ ³í¹® ÆÄÀÏÀ» ¼öÀÔ(import)ÇÏ¸é¼ Å×À̺íÀÇ ³ª¸ÓÁö Ç׸ñÀ» ä¿ì°Ô µÉ °ÍÀÌ´Ù. ¹°·Ð ¼öÀÔ(import)½Ã¿¡ ¹ÝȯÇÏ´Â oid¸¦ Å×À̺íÀÇ OID Çʵ忡 ÀúÀåÇÔÀ¸·Î½á oid¸¦ ÅëÇØ °Å´ë°´Ã¼¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¦ ±âº» °ñ°ÝÀº ´Ù ¸¸µé¾îÁ³´Ù°í °¡Á¤ÇÏÀÚ(ÀÚ¼¼ÇÑ ¹æ¹ýÀº ÀÌÈÄ¿¡ ¼³¸íÇÑ´Ù). »ç¿ëÀÚ°¡ °Ë»öÀ» ¿øÇÒ ¶§¿¡´Â Å×ÀÌºí ³»ÀÇ ¾î´À ÇÑ°¡Áö ÀÌ»óÀÇ Ç׸ñÀ» »ç¿ëÇÏ°ÚÁö¸¸, ÆíÀǸ¦ À§ÇØ Á¦¸ñÀ» ÅëÇØ °Ë»öÇÏ°í ½Í¾îÇÑ´Ù°í °¡Á¤ÇÑ´Ù. SELECT¸¦ »ç¿ëÇÏ¿© ³í¹® Å×À̺íÀÇ Á¦¸ñ Çʵ忡¼ ¿øÇÏ´Â ·¹Äڵ带 ã¾Ò´Ù¸é, OID Çʵ带 ÅëÇØ °Å´ë°´Ã¼¿¡ Á¢±ÙÇÒ °ÍÀÌ´Ù. ÀÌ ºÎºÐ¿¡¼ °Å´ë°´Ã¼¸¦ ¾î¶»°Ô ´Ù·ç´À³Ä¿¡ µû¶ó µÎ °¡Áö Á¢±Ù ¹æ¹ýÀÌ ÀÖ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¢º ³í¹®À̶ó´Â °Å´ë°´Ã¼¿¡ ´ëÇÑ Á¢±ÙÀ» ÇÏÁö
¾Ê´Â ¹æ¹ýÀÌ´Ù. º¸Åë ÀÌ °æ¿ì°¡ ¸¹ÀÌ »ç¿ëµÉ °Í ¢º ´Ù¸¥ ÇϳªÀÇ ¹æ¹ýÀº ³í¹®(°Å´ë°´Ã¼)¿¡ Á÷Á¢ÀûÀ¸·Î
Á¢±ÙÇÏ´Â ¹æ¹ýÀÌ´Ù. ³í¹®ÀÌ ps ÆÄÀÏ
3. °Å´ë°´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º °Å´ë°´Ã¼¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º´Â ÁÖ·Î C¾ð¾î·Î ÀÛ¼ºµÈ ÇÔ¼öÀÌ´Ù. °Å´ë°´Ã¼¿Í °ü·ÃµÈ ¸ðµç ÀÛ¾÷Àº °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¾ß ÇÑ´Ù. PostgreSQL¿¡¼´Â SQL¿¡¼ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¼öÀÔ(import)°ú ¼öÃâ(export) ÇÔ¼ö¸¦ Áö¿øÇÑ´Ù. À̵é ÇÔ¼ö´Â PostgreSQL ³»ºÎ¿¡ ¹Ì¸® µî·ÏÀÌ µÇ¾î ÀÖ¾î ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿©±â¼´Â ¸ÕÀú PostgreSQL ³»ºÎ¿¡ µî·ÏµÇ¾î ÀÖ´Â ¼öÀÔ(import)°ú ¼öÃâ(export)¿¡ °ü·ÃµÈ ÇÔ¼ö¸¦ »ìÆ캸µµ·Ï ÇÑ´Ù.
1) SQL ³»ºÎ µî·Ï ÇÔ¼ö PostgreSQL ³»ºÎ¿¡ µî·ÏµÇ¾î ÀÖ´Â ÇÔ¼ö´Â lo_export
ÀÌ´Ù. lo_import´Â ¼öÀÔÀ» ´ã´çÇÏ°í lo_export´Â ¼öÃâÀ» ´ã´çÇÑ´Ù.
lo_importÀÇ ¹Ýȯ°ªÀº ¼öÀÔÀ» ÇÑ °Å´ë°´Ã¼ÀÇ oid(°´Ã¼ ½Äº°ÀÚ Å¸ÀÔ)ÀÌ°í
lo_exportÀÇ ¹Ýȯ°ªÀº ¼öÇà°á°úÀÇ ¼º°ø¿©ºÎ¸¦ ³ªÅ¸³»´Â Âü °ÅÁþ°ªÀÌ´Ù.
ÀÌ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ¼öÀÔ°ú ¼öÃâÀº CÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°íµµ
ÇÒ ¼ö ÀÖÀ¸¹Ç·Î, °Å´ë°´Ã¼¿¡ ´ëÇÑ Á÷Á¢ÀûÀÎ °Ë»öÀ» ÇÏÁö ¾Ê´Â °æ¿ì¶ó¸é
°Å´ë°´Ã¼ÀÇ C ÀÎÅÍÆäÀ̽º¸¦ ÀüÇô »ç¿ëÇÏÁö ¾Ê¾Æµµ °Å´ë°´Ã¼¸¦ ±âº»ÀûÀ¸·Î
´Ù·ê ¼ö ÀÖ´Ù.
2) C ÀÎÅÍÆäÀ̽º °Å´ë°´Ã¼ÀÇ C ÀÎÅÍÆäÀ̽º¿¡´Â °Å´ë°´Ã¼¸¦ ´Ù·ç´Â µ¥ ÇÊ¿äÇÑ °ÅÀÇ ¸ðµç ÇÔ¼öµéÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¾Õ¼ ¾ð±ÞÇÑ °Å´ë°´Ã¼ÀÇ ¼öÀÔ°ú ¼öÃâÀ» ´Ù·ç´Â lo_import¿Í lo_export, °Å´ë°´Ã¼¸¦ ¸¸µé°í(lo_creat), ¿°í(lo_open), ´Ý°í(lo_close), À̵¿ÇÏ°í(lo_lseek), ¾²´Â(lo_write) ÇÔ¼öµéÀÌ ÀÖ´Ù. °Å´ë°´Ã¼¸¦ ´Ù·ç´Â ±âº»ÀûÀÎ ÇÔ¼ö´Â Ç¥ÁØ UNIXÀÇ Àú±Þ ÆÄÀÏ ±â¼úÀÚ¸¦ ´Ù·ç´Â ÇÔ¼öµé°ú ±× À̸§ÀÇ ¾ÕºÎºÐ¿¡¼ lo_¸¸ »©¸é µ¿ÀÏÇÏ´Ù. ¿©·¯ºÐµéÀº ÀÌ·¯ÇÑ lo_·ùÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¸¶Ä¡ UNIX ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ÆÄÀÏÀ» ¸¸µé°í(creat), ¿°í(open), À̵¿ÇÏ°í(lseek), ¾²°í(write), ´Ý´Â(close)°Íó·³ ÀÌ·¯ÇÑ °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ °Å´ë°´Ã¼¿¡ ´ëÇؼµµ µ¿ÀÏÇÑ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. UNIX ÆÄÀÏ°ú °Å´ë°´Ã¼¶ó´Â ´ë»ó¸¸ ´Ù¸¦ »ÓÀÌÁö Àû¿ëµÇ´Â °³³ä°ú ½ÇÁ¦ »ç¿ë¹ýÀº µ¿ÀÏÇϹǷΠ°Å´ë°´Ã¼¶ó´Â »ç½Ç¿¡ ´ëÇØ ³Ê¹« °ÆÁ¤ÇÏÁö ¸»±â¸¦ ¹Ù¶õ´Ù. ±×·³ °Å´ë°´Ã¼ÀÇ C ÀÎÅÍÆäÀ̽º ÇÔ¼ö¸¦ Çϳª¾¿ »ìÆ캸°í, ÀÌÈÄ¿¡ À̵é ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹Á¦¸¦ º¸µµ·Ï ÇÏ°Ú´Ù.
°Å´ë°´Ã¼ÀÇ »ý¼º Oid lo_creat (PGconn *conn, int mode) ÀÌ ÇÔ¼ö´Â °Å´ë°´Ã¼¸¦ »ý¼ºÇÏ¿© ±× oid(°´Ã¼ ½Äº°ÀÚ Å¸ÀÔ)¸¦ µ¹·ÁÁØ´Ù. UNIXÀÇ creat ÇÔ¼ö¿Í ¸¶Âù°¡Áö·Î ±×³É ºó °Å´ë°´Ã¼¸¦ »ý¼ºÇÑ´Ù°í º¸¾Æµµ ÁÁ´Ù. ½ÇÁ¦·Î´Â °ÅÀÇ ¾²ÀÌÁö ¾Ê´Â´Ù. °Å´ë°´Ã¼ÀÇ »ý¼ºÀº ÁÖ·Î ¼öÀÔ(lo_import)À» ÅëÇÏ¿© ¸¸µé¾îÁö±â ¶§¹®ÀÌ´Ù. °Å´ë°´Ã¼ÀÇ ¼öÀÔ Oid lo_import (PGconn *conn, text *filename) ¾Õ¼ ¼³¸íÇÑ °Å´ë°´Ã¼¸¦ ¼öÀÔ(import)ÇÏ´Â ÇÔ¼öÀÌ´Ù. filename À̶ó ºÒ¸®´Â ÆÄÀÏÀ» ¼öÀÔÇÏ¿©, ±× oid(°´Ã¼ ½Äº°ÀÚ Å¸ÀÔ)¸¦ ¹ÝȯÇÑ´Ù. ÆÄÀÏ ½Ã½ºÅÛ»ó¿¡ Á¸ÀçÇÏ´Â ¿ÜºÎ µ¥ÀÌÅÍ ÆÄÀÏÀ» µ¥ÀÌÅͺ£À̽º ³»ºÎ¿¡ °¡Áö°í ¿Ã ¶§ »ç¿ëµÈ´Ù. °Å´ë°´Ã¼ÀÇ ¼öÃâ int lo_export (PGconn *conn, Oid large_object_id, text *filename) ¾Õ¼ ¼³¸íÇÑ °Å´ë°´Ã¼¸¦ ¼öÃâ(export)ÇÏ´Â ÇÔ¼öÀÌ´Ù. oid(°Å´ë°´Ã¼ ½Äº°ÀÚ)·Î large_object_id¸¦ °¡Áö´Â °Å´ë°´Ã¼¸¦ ¿ÜºÎ ÆÄÀÏ ½Ã½ºÅÛ»ó¿¡ filenameÀ̶ó´Â À̸§À¸·Î ²ôÁý¾î ³½´Ù. µÇµ¹¸² °ªÀº ¼öÃâÀÇ ¼º°ø¿©ºÎ¸¦ ³ªÅ¸³»´Â Âü °ÅÁþ°ªÀÌ´Ù. °Å´ë°´Ã¼¸¦ ¿±â int lo_open (PGconn *conn, Oid large_object_id, int mode, ...) large_object_id´Â ¿·Á´Â °Å´ë°´Ã¼ ½Äº°ÀÚÀÌ´Ù. mode´Â Àбâ(INV_READ)³ª ¾²±â(INV_WRITE), ¶Ç´Â µÑ ´Ù¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °Å´ë°´Ã¼¸¦ lo_openÀ¸·Î ¿ ¼ö´Â ¾ø´Ù. lo_openÀÇ ¹Ýȯ°ªÀº °Å´ë°´Ã¼ ±â¼úÀÚ(UNIXÀÇ Àú¼öÁØ ÆÄÀÏ ±â¼úÀÚ¿Í µ¿ÀϽÃÇϱ⠹ٶõ´Ù)·Î, ³ªÁßÀÇ lo_read, lo_write, lo_write, lo_lseek, lo_tell, lo_close ÇÔ¼ö¿¡¼ ÀÎÀÚ·Î »ç¿ëµÈ´Ù. °Å´ë°´Ã¼¿¡¼ Àоî¿À±â int lo_read (PGconn *conn, int fd, char *buf, int len) °Å´ë°´Ã¼ ±â¼úÀÚ fd¿¡¼ len ±æÀ̸¸Å ÀÐ¾î¼ buf¿¡ ÀúÀåÇÑ´Ù. °Å´ë°´Ã¼¿¡ ¾²±â int lo_write (PGconn *conn, int fd, char *buf, int len) ÀÌ ÇÔ¼ö´Â buf¿¡¼ len ±æÀ̸¸ÅÀÇ ¹ÙÀÌÆ®¸¦ ÇöÀçÀÇ °Å´ë°´Ã¼ ±â¼úÀÚÀÎ fd¿¡ ¾´´Ù. ´ç¿¬ÇÑ À̾߱â°ÚÁö¸¸ fd´Â ÀÌÀüÀÇ lo_open¿¡¼ ¹ÝȯµÈ °ªÀ̾î¾ß ÇÑ´Ù. lo_writeÀÇ ¹Ýȯ°ªÀº ½ÇÁ¦·Î ¾²¿©Áø ¹ÙÀÌÆ® ¼öÀÌ´Ù. ¸¸ÀÏ ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù¸é À½¼ö¸¦ µ¹·ÁÁØ´Ù. °Å´ë°´Ã¼ ³»ºÎ¿¡¼ÀÇ À̵¿ int lo_lseek (PGconn *conn, int fd, int offset, int whence) ÀÌ ÇÔ¼ö´Â ±â¼úÀÚ fd·Î Ç¥ÇöµÇ´Â °Å´ë°´Ã¼ ³»ºÎ¿¡¼ ÇöÀçÀÇ Àбâ/¾²±â À§Ä¡¸¦ º¯°æÇÏ´Â µ¥ »ç¿ëµÈ´Ù. offsetÀº À̵¿°Å¸®ÀÌ´Ù. whence´Â UNIXÀÇ lseekó·³ SEEK_SET, SEEK_CUR, SEEK_END¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °Å´ë°´Ã¼ ³»ºÎ¿¡¼ÀÇ À§Ä¡ ÆÄ¾Ç int lo_tell (PGconn *conn, int fd) ÇöÀçÀÇ °Å´ë°´Ã¼ÀÇ ±â¼úÀÚÀÎ fd¿¡¼ÀÇ À§Ä¡¸¦ µ¹·ÁÁØ´Ù. °Å´ë°´Ã¼¸¦ ´Ý±â int lo_close (PGconn *conn, int fd) ÀÌ ÇÔ¼ö´Â °Å´ë°´Ã¼ ±â¼úÀÚ fd¸¦ ´Ý´Â ¿ªÇÒÀ» ÇÑ´Ù. lo_close°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¸é 0À» µ¹·ÁÁÖ°í, ¿¡·¯½Ã¿¡´Â À½¼ö°ªÀ» ¹ÝȯÇÑ´Ù. °Å´ë°´Ã¼¸¦ ¾ø¾Ö±â int lo_unlink (PGconn *conn, Oid large_object_id) °Å´ë°´Ã¼ ½Äº°ÀÚ·Î large_object_id °ªÀ» °¡Áö´Â °Å´ë°´Ã¼¸¦ ³»ºÎ ÀúÀå½Ã½ºÅÛ¿¡¼ Á¦°ÅÇÑ´Ù. Áö±Ý±îÁö °£´ÜÇÏ°Ô °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ »ìÆ캸¾Ò´Ù.
À̵é ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§Çؼ´Â libpq/libpq-fs.h Çì´õÆÄÀÏÀ» Æ÷ÇÔÇÏ¿©¾ß
ÇÑ´Ù. ¹°·Ð libpq¿Í ¸µÅ©¸¦ ½ÃÅ°´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.
4. ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ÀÛ¼º
1) °Å´ë°´Ã¼¸¦ »ç¿ëÇÒ °ÍÀΰ¡ ¸» °ÍÀΰ¡ °Å´ë°´Ã¼¸¦ »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ¾î¶»°Ô ¸¸µé °ÍÀΰ¡ ÇÏ´Â ¹®Á¦´Â ÀüüÀûÀÎ ¼³°è¸¦ ¾î¶»°Ô ÇÒ °ÍÀΰ¡ ÇÏ´Â ¹®Á¦´Ù. ¾Õ¿¡¼µµ »ìÆ캸¾ÒÁö¸¸ °Å´ë°´Ã¼¶ó°í Çؼ Ưº°ÇÑ °ÍÀº ¾ø´Ù. PostgreSQL ³»ºÎ¿¡¼ 8K ÀÌÇÏÀÇ µ¥ÀÌÅÍ´Â È¿À²ÀûÀ¸·Î ´Ù·ê ¼ö ÀÖ°í, ±× ÀÌ»óÀÇ µ¥ÀÌÅÍ´Â °Å´ë°´Ã¼¶ó´Â ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °Í»ÓÀÌ´Ù. ±×¸®°í °Å´ë°´Ã¼¿¡ ´ëÇÑ Á¢±ÙÀ» º¸ÀåÇϱâ À§ÇØ ¹Ù·Î À§¿¡¼ ¼³¸íÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â °ÍÀÌ´Ù. ¿©·¯ºÐµéÀº °Å´ë°´Ã¼¸¦ »ç¿ëÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀ» ¸¸µé°í ½Í¾îÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ ¿øÇÏ´Â µ¥ÀÌÅ͸¦ ´Ù·ç±â À§ÇÑ µ¥ÀÌÅͺ£À̽º¸¦ ±¸ÃàÇϴµ¥ °Å´ë°´Ã¼°¡ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù. ÇÊÀÚÀÇ °æ¿ì¿¡µµ ½Ç¹« ÇÁ·Î±×·¡¹Ö¿¡¼´Â ´ëºÎºÐ °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê¾Ò¾ú´Ù. ÀÌÀ¯´Â ´Ü ÇÑ°¡Áö, ±ÍÂú´Ù´Â °ÍÀ̾ú´Ù. ÀϰŸ®°¡ ¸¹¾ÆÁø´Ù´Â °ÍÀº ÇÁ·Î±×·¡¸Ó¿¡°Ô´Â Á¤¸» ±ÍÂúÀº ÀÏÀÌ´Ù. ¿©·¯ºÐÀÌ »ç¿ëÇÏ°íÀÚ ÇÏ´Â µ¥ÀÌÅÍ°¡ ´Ü¼øÈ÷ µ¢Ä¡¸¸ Å« µ¥ÀÌÅͶó¸é °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. ÆÄÀÏÀÇ À̸§¸¸ Å×ÀÌºí¿¡ ÀúÀåÇسõ°í ÇÊ¿äÇÒ ½Ã¿¡´Â ±× ÆÄÀÏÀ» º¸¿©ÁÖ¸é µÈ´Ù. ¶ÇÇÑ ¼öÃâ(export)ÀÌ ÀÚÁÖ ¹ß»ýÇÒ °ÍÀ̶ó¸é ÀÌ ¿ª½Ã °Å´ë°´Ã¼¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´ÜÁ¡ÀÌ µÈ´Ù. ¼ö ¸Þ°¡³ª µÇ´Â ¿ë·®ÀÇ ÆÄÀÏÀ» ÇÏ·ç¿¡ ¿©·¯ ¼ö½Ê ¹ø, ¾Æ´Ï ¿©·¯ ¼ö¹é ¹ø¾¿ ¼öÃâ(export)À» Çϱâ À§ÇØ º¹»ç¸¦ ÇÏ´Â °ÍÀº ¾îÂ¸é ´ë´ÜÈ÷ ºÒ¸¸½º·¯¿ï ¼öµµ ÀÖ´Ù. ÀÌ·± °æ¿ì¶ó¸é °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù´Â °ÍÀ» À̾߱âÇÏ°í ½Í´Ù. ÇÏÁö¸¸ ¿©·¯ºÐµéÀÇ µ¥ÀÌÅͺ£À̽º°¡ ¹«°á¼ºÀ» º¸ÀåÇÏ´Â °ÍÀ» ¿øÇÏ°í, ´ëÇüÀÇ ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ Àå¾Ç±Ç¿¡ È®½ÇÈ÷ µÎ°í ½Í´Ù¸é, ±×¸®°í ½Ã°£¿©Çà, À妽º¿Í °°Àº µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ È¿À²ÀûÀÎ ±â´ÉÀ» È°¿ëÇÏ°í ½Í´Ù¸é °Å´ë°´Ã¼¸¦ »ç¿ëÇÏÀÚ. ¾Æ¿ï·¯ ¿©·¯ºÐµéÀÇ ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅÍ¿¡ ´ëÇÑ È®½ÇÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù¸é, ȤÀº ÀÌ¿¡ ´ëÇÑ °Ë»ö, ¼öÁ¤ Ãß°¡¿¡ ´ëÇÑ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¸¦ ¸¸µé ¼ö¸¸ ÀÖ´Ù¸é, °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º´Â ¿©·¯ºÐµéÀÇ °úÁ¦¸¦ ÇØ°áÇϴµ¥ ÃÖ»óÀÇ ¼Ö·ç¼ÇÀ» Á¦°øÇÒ °ÍÀÌ´Ù. ¹Ï°Å³ª ¸»°Å³ª.
2) °£´ÜÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¾Õ¼ ¼³¸íÇÑ ÀÎÅÍÆäÀ̽º ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© °£´ÜÇÑ
¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ. PostgreSQL ¹èÆ÷ ÆÐÅ°Áö ¾ÈÀÇ src/examples/
µð·ºÅ丮¿¡ testlo.c¶ó´Â ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ´ÙÀ½¿¡ ³ª¿À´Â
¿¹Á¦ ÇÁ·Î±×·¥°ú ÇÔ²² »ìÆ캻´Ù¸é »ó´çÇÑ µµ¿òÀÌ µÇ¸®¶ó º»´Ù. ±×¸®°í
ÀÎÅÍÆäÀ̽º ÇÔ¼ö¿¡ ´ëÇÑ ¼³¸íÀ» Áï¼®¿¡¼ º¸°íÀÚ ÇÑ´Ù¸é man large_objects
¸í·ÉÀ¸·Î ¸Å´º¾ó ÆäÀÌÁö¸¦ Âü°íÇÏ´Â °Íµµ ÁÁ´Ù. ¸Å´º¾ó ÆäÀÌÁö¿¡´Â
¸î °³ÀÇ ÇÔ¼ö°¡ ºüÁ®ÀÖ´Ù. lo_tellÀ̳ª lo_unlinkµîÀÌ ±×·¸´Ù. º»
¿¹Á¦ÇÁ·Î±×·¥¿¡¼´Â °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º ÇÔ¼öÀÇ »ç¿ë¹ýÀ» º¸À̱â
À§ÇÑ ¸ñÀûÀ¸·Î ÀÛ¼ºÇÑ °ÍÀÌ´Ù. °Å´ë°´Ã¼ÀÇ »ý¼º - lo_creat ¡² ¸®½ºÆ® 1 ¡³lo.c
ÄÄÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. $ gcc -o lo lo.c -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -lpq -g -Wall; Å×½ºÆ® °á°ú´Â ´ÙÀ½°ú °°´Ù.
5. ³í¹® µ¥ÀÌÅͺ£À̽º ±¸Ãà ¿¹Á¦ ¾Õ¼ Àá½Ã ¾ð±ÞÇÑ ³í¹® µ¥ÀÌÅͺ£À̽º¸¦ Çϳª ±¸ÃàÇغ¸ÀÚ. óÀ½¿¡´Â °£´ÜÇÑ XPM ÆÄÀÏÀ» ¿¹Á¦·Î ´Ù·ç·Á°í ÇßÀ¸³ª Á» ´õ ½Ç¿ëÀûÀÎ ³í¹® µ¥ÀÌÅͺ£À̽º¸¦ ´Ù·ç¾î º¸µµ·Ï ÇÏ°Ú´Ù. ±×¸®°í °Å´ë°´Ã¼¸¦ »ç¿ëÇÒ ½Ã¿¡ °Å´ë°´Ã¼¿¡ ´ëÇÑ Àú±ÞÀûÀÎ Á¢±ÙÀº ÇÇÇϵµ·Ï ÇÏ°Ú´Ù. ÀÌÀ¯´Â ³í¹® µ¥ÀÌÅÍ ÆÄÀÏÀÇ Çü½Ä¿¡ ´ëÇÑ ¾î¶°ÇÑ Á¦ÇÑÀ» µÎ±â¿¡µµ Á» ±×·¸°í, Àú±ÞÀûÀÎ Á¢±ÙÀ» ÇÏ·Á¸é ¾î´À Á¤µµ ½Ã°£ µ¿¾ÈÀÇ ¿¬±¸°¡ ÇÊ¿äÇÏ´Ù°í º¸¿©Áö±â ¶§¹®ÀÌ´Ù. ³í¹® µ¥ÀÌÅͺ£À̽º¸¦ À¥°ú ¿¬µ¿À» ÇÒ °æ¿ìµµ ¹«½ÃÇÏÁö ¸øÇϴµ¥, ÀÌ·² °æ¿ì¿¡ ³í¹® ÆÄÀÏ Çü½Ä¿¡ ´ëÇÑ CGI ÇÊÅ͸µÀÌ ÇÊ¿äÇÒ Áöµµ ¸ð¸¥´Ù. °¡±î¿î ¿¹¸¦ Çϳª µé¸é PSÆÄÀÏÀ» CGI ÇÁ·Î±×·¥¿¡¼ HTML ÆÄÀÏ·Î º¯È¯ÇÏ¿© ½Ç½Ã°£À¸·Î À¥ ºê¶ó¿ìÀú »ó¿¡ º¸¿©ÁÖ´Â °æ¿ì¸¦ µé ¼ö ÀÖ´Ù. (¶Ç ÇϳªÀÇ ¿¹·Î ƯÁ¤ ȸ»çÀÇ ÀüÀ¯¹°À̱ä ÇÏÁö¸¸ HWP Çü½ÄÀÇ ÆÄÀÏÀ» ½Ç½Ã°£À¸·Î À¥ ºê¶ó¿ìÀú »ó¿¡ HTML·Î Ãâ·ÂÇØÁÖ´Â HWP CGI ¼¹ö µîÀÌ ÀÖ´Ù.) À¥ ºê¶ó¿ìÀú »ó¿¡¼ °ð¹Ù·Î ó¸®ÇÏÁö ¸øÇÏ´Â ÆÄÀÏ Çü½ÄÀ» °¡Áö´Â °Å´ë°´Ã¼¸¦ À¥ »ó¿¡ Ãâ·ÂÇÏ·Á¸é ÀÌ·¯ÇÑ Áß°£ CGI ÀÎÅÍÆäÀ̽º°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ º¯È¯Àº ¿©·¯ºÐÀÇ ¸òÀÌ´Ù. ¿©±â¼´Â °Å´ë°´Ã¼¿¡ ´ëÇؼ´Â import¿Í export¸¸À» »ç¿ëÇÒ °ÍÀÌ´Ù. ³ª¸ÓÁö °Ë»öÀº ³í¹® µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â Å×À̺íÀ» ÅëÇؼ ÀÌ·ç¾îÁú °ÍÀÌ´Ù. ¸ÕÀú µ¥ÀÌÅͺ£À̽º¿¡ ÇÊ¿äÇÑ Å×À̺íÀ» Á¤ÀÇÇÏ¿© º¸ÀÚ. µ¥ÀÌÅͺ£À̽º´Â mydb¸¦ »ç¿ëÇÒ °ÍÀÌ°í, Å×À̺íÀº ³í¹®À̶ó°í ¸í¸íÇÒ °ÍÀÌ´Ù. ³í¹® Å×À̺íÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù. CREATE TABLE ³í¹® ( ÀÌ¿Ü¿¡µµ Å×ÀÌºí¿¡ ³í¹®¿¡ ´ëÇÑ ¼³¸í Çʵ峪 ºÐ·ùÄÚµå µîÀÌ µé¾î°¥ ¹ýÇÏÁö¸¸ °£´ÜÇÏ°Ô Çϱâ À§Çؼ »ý·«Çϵµ·Ï ÇÑ´Ù. ÀÌÁ¦ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇغ¸ÀÚ. psqlÀÇ ¡¬copy ¸í·ÉÀ» »ç¿ëÇÏ¸é º¸ÅëÀÇ µ¥ÀÌÅÍ´Â ½±°Ô Áý¾î ³ÖÀ» ¼ö Àִµ¥, lo_import ¶§¹®¿¡ µÇÁö ¾Ê´Â °Í °°´Ù. ±ÍÂú´õ¶óµµ ´ÙÀ½ÀÇ ¸í·ÉÀ» ÀÏÀÏÀÌ ÃÄÁֱ⠹ٶõ´Ù. ¾Æ´Ï¸é ÆÄÀÏ¿¡ ´ã¾Æ¼ psqlÀÇ ¡¬i ¸í·ÉÀ» »ç¿ëÇصµ ÁÁ´Ù. ÀÔ·Â ÀÎÅÍÆäÀ̽º´Â ½ÇÁ¦·Î´Â À¥À» ÅëÇÏ´Â °ÍÀÌ Á¦ÀÏ °£ÆíÇÏ°í Çö´ëÀûÀÎ ¹æ½ÄÀÏ °ÍÀÌ´Ù. ±× ¿Ü¿¡µµ PostgreSQLÀ» Áö¿øÇÏ´Â X¿ë ÇÁ·ÐÆ® ¿£µå ÇÁ·Î±×·¥À» »ç¿ëÇÏ¸é ½±°Ô ÇÒ ¼ö ÀÖ´Â °Íµµ ÀÖÀ¸´Ï ã¾Æº¸±â ¹Ù¶õ´Ù. lo_import ÇÔ¼ö ¾ÈÀÇ ÆÄÀϸíÀº ¹Ì¸® ÆÄÀÏ ½Ã½ºÅÛ»ó¿¡ ¾Æ¹« °ÍÀ̳ª º¹»çÇؼ ¸¸µé¾î µÎµµ·Ï ÇÏÀÚ. INSERT INTO ³í¹® VALUES ('¹Ì½Ä°¡', '1980-02-20', '¹ÙÄû¹ú·¹ µÞ´Ù¸®¿¡ ´ëÇÑ ¿µ¾çÇÐÀû ºÐ¼®', '¹ÙÄû¹ú·¹.html', 234500, 'HTML', lo_import('/tmp/¹ÙÄû¹ú·¹.ps')); INSERT INTO ³í¹® VALUES ('ÀüÀϼö', '1995-05-05', '°´Ã¼ÁöÇâ µ¥ÀÌÅÍ ¸ðµ¨¿¡¼ Ŭ¶ó½º °èÃþ ¹× Ŭ¶ó½º ÇÕ¼º °èÃþÀÇ ÁýÁßÈ ±â¹ý', 'object_class.html', 101010, 'HTML', lo_import('/tmp/object_class.html')); INSERT INTO ³í¹® VALUES ('µ¿¼®È£', '1995-06-30', 'BÇü °£¿° ¹ÙÀÌ·¯½ºÀÇ ¹ßÇö ¹× Áõ½Ä¿¡ ÀÖ¾î¼ X À¯ÀüÀÚÀÇ ¿ªÇÒ', 'xgene.html', 41098, 'HTML', lo_import('/tmp/xgene.html')); INSERT INTO ³í¹® VALUES ('Àåżº', '1995-09-25', '2´Ü°è µð½ºÅ© ij½¬ ¸ðÇü¿¡ °üÇÑ ¿¬±¸', 'disk_cache.html', 141342, 'HTML', lo_import('/tmp/disk_cache.html')); INSERT INTO ³í¹® VALUES ('¾ÈÀ̱â', '1995-10-15', 'ºñÁ¤»ó ¹Ú¸®¿¡ °üÇÑ ½ÇÇèÀû ¿¬±¸', 'tunnel.html', 874345, 'HTML', lo_import('/tmp/tunnel.html')); ÀÌÁ¦ Å×ÀÌºí¿¡ µ¥ÀÌÅÍ°¡ »ðÀԵǾúÀ» °ÍÀÌ´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ »ç¿ëÀÚ°¡ ƯÁ¤ Àι°À̳ª ³¯Â¥±â°£, Á¦¸ñ µî¿¡ ´ëÇÑ °Ë»öÀ» ÅëÇؼ ¿øÇÏ´Â ³í¹®À» ã°í ½Í´Ù°í ÇÏÀÚ. ½ÇÁ¦·Î´Â ¿©±â¿¡ ¸î °¡Áö ´õ Á¤º¸°¡ Ãß°¡µÇ°í ¿Â¶óÀÎÀ¸·Î ³í¹® ³»¿ëÀ» °Ë»öÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÁÁÁö¸¸, ±×·² ¿©·ÂÀÌ ¾øÀ¸¹Ç·Î °£´ÜÇÑ SELECT¸¸ Çغ¸µµ·Ï ÇÑ´Ù. ´«À¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Â °Íó·³, °Å´ë°´Ã¼¸¦ ¿ÜºÎ ÆÄÀÏ·Î exportÇÏ¿´´Ù. ¿øÇÑ´Ù¸é »ç¿ëÀÚ°¡ º¼ ¼ö ÀÖµµ·Ï Çϰųª ³»·Á¹Þ±â¸¦ Çϵµ·Ï ÇÏ´Â °Íµµ »ý°¢Çغ¼ ¼ö ÀÖ´Ù.
¢Ñ PHP/FI ¿Í °Å´ë°´Ã¼ ¾ó¸¶ Àü¿¡ PHP/FI¿¡¼ °Å´ë°´Ã¼¸¦ ´Ù·ê ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´À³Ä´Â ¾î´À ºÐÀÇ Áú¹®ÀÌ ÀÖ¾ú´Âµ¥, ±íÀÌ »ý°¢Çغ¸Áö ¾Ê¾Æ¼ ´äº¯À» µå¸®Áö ¸øÇß´Ù. °á·ÐÀº PHP/FI¿¡¼ °Å´ë°´Ã¼¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º´Â SQL¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â lo_export¿Í lo_import ¹Û¿¡ ¾ø´Ù´Â °ÍÀÌ´Ù. À̰͸¸ »ç¿ëÇصµ °Å´ë°´Ã¼ÀÇ ÀÔÃâ·ÂÀº ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¾Æ½¬¿î ´ë·Î »ç¿ëÇÒ ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ °Å´ë°´Ã¼¿¡ ´ëÇÑ Àú±ÞÀûÀÎ Á¢±Ù ¹æ¹ýÀ» PHP/FI¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø´Ù. PHP/FI¿¡¼ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ C¾ð¾î Á¤ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ±ä ÇÏÁö¸¸, PostgreSQLÀÇ C¾ð¾î °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ PHP/FI¿¡ °¡Á®´Ù ºÙÀδٴ °ÍÀº »ó´çÈ÷ Èûµé´Ù°í º¼ ¼ö ÀÖ´Ù. °á·ÐÀûÀ¸·Î, PHP/FI¿¡¼µµ SQL¿¡¼¿Í ¸¶Âù°¡Áö·Î ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º ³»ºÎ¿¡ µÑ ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ Àú±ÞÀûÀÎ Á¢±ÙÀº ÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¦ÇÑÀÌ ÀÖÀ» ¼ö¹Û¿¡ ¾ø´Ù. ¢Ñ Áö¿öÁø °Å´ë°´Ã¼ÀÇ º¹±¸ ¾î¼´Ù°¡ µ¥ÀÌÅÍ°¡ Áö¿öÁö´Â ¿øÄ¡ ¾Ê´Â °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù. Æ®·£Àè¼ÇÀÌ »ì¸± ¼ö ¾ø´Â µ¥ÀÌÅ͵µ ½Ã°£¿©ÇàÀ» ÅëÇؼ ¶ó¸é »ì¸± ¼ö ÀÖ´Ù. ´Ù¸¸ Å×À̺íÀ̳ª µ¥ÀÌÅͺ£À̽ºÀÇ »èÁ¦°¡ ¾Æ´Ñ Å×ÀÌºí ³»ÀÇ µ¥ÀÌÅÍÀÇ »èÁ¦À̾î¾ß ÇÏ°í, vacuumÀÌ ½ÇÇàµÇ±â ÀüÀ̾î¾ß ÇÑ´Ù. ÀÌ·² °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº SQL¹®À» »ç¿ëÇÏ¿© ¿ø»ó º¹±¸½Ãų ¼ö ÀÖ´Ù. insert into ³í¹® select *from ³í¹®['epoch', 'now'];
6. ¿ä¾à Áö±Ý±îÁö °£´ÜÇÏ°Ô PostgreSQLÀÇ °Å´ë°´Ã¼ ÀÎÅÍÆäÀ̽º¿¡ °üÇØ »ìÆ캸¾Ò´Ù. °Å´ë°´Ã¼¿¡ ´ëÇÑ °³³ä°ú °Å´ë°´Ã¼¸¦ »ç¿ëÇÒ ¶§ÀÇ Àå´ÜÁ¡, °Å´ë°´Ã¼ ÇÔ¼ö ÀÎÅÍÆäÀ̽º¿Í ½ÇÁ¦ »ç¿ë ¿¹¸¦ »ìÆ캸¾Ò´Ù. ±×¸®°í »ó´çÈ÷ Ãʺ¸ÀûÀ̱ä ÇÏÁö¸¸ °£´ÜÇÑ ¸ÖƼ¹Ìµð¾î(¶ó°í ÇÒ ¼öµµ ¾øÀ» °Í°°Áö¸¸) µ¥ÀÌÅ͸¦ °Å´ë°´Ã¼¿¡¼ ¾î¶»°Ô ´Ù·ç´ÂÁö¿¡ ´ëÇؼµµ »ç·Ê¸¦ ÅëÇؼ »ìÆ캸¾Ò´Ù. »ç½Ç ÀÌ°ÍÀº ¾ÆÁÖ ±âÃÊÀûÀÎ °Í¿¡ Áö³ªÁö ¾Ê´Â´Ù. ½ÇÁ¦·Î ÀÌ·¯ÇÑ µ¥ÀÌÅ͸¦ ´Ù·ç·Á¸é À¥ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ Çö½ÇÀûÀÌ°í, ±×·¸´Ù°í ÇÑ´Ù¸é À¥ »ó¿¡¼ ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×°Ô HTMLÀÌ µÇ´ø SGMLÀÌ µÇµç °£¿¡ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÏ°íÀÚ ÇÏ´Â ÀÌ¿¡°Ô ÃÖ´ëÇÑÀÇ ³»¿ëÀ» º¸¿©ÁÖ´Â °ÍÀÌ Áß¿äÇÏ´Ù°í º¼ ¼ö ÀÖ´Ù. óÀ½¿¡´Â °£´ÜÇϳª¸¶ À¥ »ó¿¡¼ º¸¿©ÁÙ ¼ö ÀÖ´Â Àڱ׸¶ÇÑ °Å´ë°´Ã¼ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇغ¸·Á°í ÇßÁö¸¸, ªÀº ½Ã°£ ¾È¿¡ ÀÌ°ÍÀú°Í ÇÏ·Á´Ï ¶æ´ë·Î µÇÁö ¾Ê¾Ò´Ù. Á¤¸» ¸®´ª½º¿¡¼´Â ÇÒ °ÍÀÌ ³Ê¹« ¸¹¾Æ Æò»ýÀ» Çصµ ´Ù ¸øÇÒ °Í °°´Ù. :) ¾Æ, ÀÌÁ¦ ¾Æ½¬¿î ¼³ ¿¬ÈÞµµ PostgreSQL°ú ÇÔ²² ³¡³ª°¡°í ÀÖ´Ù.
¸®´ª½º ¿ùµå¿¡ ¿¬ÀçµÇ´Â PostgreSQL ±â»çÀÇ ÇÁ·Î±×·¥ ¼Ò½º¿Í Áö³ 12¿ù¿¡ ¿¬ÀçµÇ¾ú´ø PHP/FI ÇÁ·Î±×·¥ ¼Ò½º´Â ÇÊÀÚÀÇ È¨ÆäÀÌÁö(http://free.sense.co.kr/CGI_database/)¿Í ÇÏÀÌÅÚ ¸®´ª½º µ¿È£È¸ ÀÚ·á½Ç¿¡ Á¤±âÀûÀ¸·Î ¿Ã·ÁµÎ°í ÀÖ´Ù. ¼Ò½º°¡ ÇÊ¿äÇϽŠºÐÀº Âü°íÇϱ⠹ٶõ´Ù. |