°ü¸® ¾È³»¼
»ç¿ëÀÚ Á¤ÀÇ »öÀÎ À¯ÇüÀ» Áö¿øÇϱâ À§ÇØ, DB2 Universal Database´Â
»öÀÎÀÌ ÀÛ¾÷ÇÏ´Â ¹æ½ÄÀ» ±¸¼ºÇÏ´Â ±âº» ±¸¼º¿ä¼Ò¿¡ ´ëÇØ »ç¿ëÀÚ ÀÚ½ÅÀÇ ³í¸®¸¦ ÀÛ¼ºÇÏ¿©
Àû¿ëÇÏ°Ô ÇÕ´Ï´Ù. ´ëüµÉ ¼ö ÀÖ´Â ±¸¼º¿ä¼Ò´Â ´ÙÀ½°ú °°½À´Ï´Ù.
- »öÀÎ À¯Áöº¸¼ö. À̰ÍÀº »öÀÎ Ä÷³ ³»¿ëÀ» »öÀΠŰ¿¡ ¸ÊÇÎÇÏ´Â ±â´ÉÀ» Çã¿ëÇÕ´Ï´Ù.
±×·¯ÇÑ ¸ÊÇÎÀº »ç¿ëÀÚ Á¤ÀÇ ¸ÊÇÎ ±â´ÉÀ» ÅëÇØ ¼öÇàµË´Ï´Ù.
Á¤È®ÇÏ°Ô ÇϳªÀÇ ±¸¼º À¯Çü Ä÷³ÀÌ È®Àå »öÀο¡ Âü¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÏ¹Ý »öÀΰú ´Þ¸®, È®Àå »öÀÎÀ» Çà´ç µÑ ÀÌ»óÀÇ »öÀÎ Ç׸ñÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.
Çà´ç ¿©·¯ »öÀÎ Ç׸ñÀº ¹®¼¿¡ ÀÖ´Â °¢ Ű¿öµåÀÇ °¢ »öÀÎ Ç׸ñÀÌ ÀÖ´Â ¿ÀºêÁ§Æ®·Î¼ ÅØ½ºÆ® ¹®¼¸¦
ÀúÀåÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- »öÀÎ °³¹ß.
À̰ÍÀº ÀÀ¿ëÇÁ·Î±×·¥ µðÀÚÀ̳ʰ¡, ÀÓÀÇÀÇ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF)¿Í
ÇÊÅ͸µ Á¶°Ç(¹üÀ§ ¼ú¾î)À» ¿¬°ü½ÃŰ°Ô Çϸç, UDF´Â ÇÊÅ͸µ Á¶°Ç°ú ¿¬°üµÇÁö
¾ÊÀ¸¸é ÃÖÀûÈ ¾Ë°í¸®Áò¿¡ ºÒÅõ¸íÇÏ°Ô µË´Ï´Ù.
À̰ÍÀº DB2 °¢ Çà¿¡ ´ëÇÑ °³º° UDF È£ÃâÀ» ÀÛ¼ºÇÏÁö ¸øÇÏ°Ô Çϰí Ŭ¶óÀÌ¾ðÆ® ¹× ¼¹ö °£ÀÇ ¹®¸Æ ÀüȯÀ»
ÇÏÁö ¸øÇÏ°Ô ÇÏ¿©, ¼º´ÉÀ» Å©°Ô °³¼±½Ãŵ´Ï´Ù.
ÁÖ: | »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF) Á¤ÀÇ´Â °áÁ¤ÀûÀ̾î¾ß Çϸç ÃÖÀûÈ ¾Ë°í¸®ÁòÀ¸·Î
°Ë»öµÉ ¼ö ÀÖ´Â ¿ÜºÎ Á¶Ä¡¸¦ Çã¿ëÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù.
|
¼±ÅÃÀû µ¥ÀÌÅÍ ÇÊÅÍ ±â´Éµµ ÁöÁ¤µÉ ¼ö ÀÖ½À´Ï´Ù.
ÃÖÀûÈ ¾Ë°í¸®ÁòÀº »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF)°¡ Æò°¡µÇ±â Àü¿¡ ÆäÄ¡µÈ Æ©Çÿ¡ ´ëÇØ
ÇÊÅ͸¦ »ç¿ëÇÕ´Ï´Ù.
±¸Á¶ÈµÈ À¯ÇüÀ̳ª ±¸º° Ä÷³ À¯Çü¸¸ÀÌ »öÀÎ È®ÀåÀ» »ç¿ëÇÏ¿© ÀÌ ¿ÀºêÁ§Æ®¿¡¼ »ç¿ëÀÚ Á¤ÀÇ
È®Àå »öÀÎ À¯ÇüÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ Á¤ÀÇ È®Àå »öÀÎ À¯ÇüÀº ´ÙÀ½ÀÌ ¾Æ´Ï¾î¾ß ÇÕ´Ï´Ù.
- Ŭ·¯½ºÅÍµÈ »öÀΰú Á¤ÀÇµÈ »óÅÂ
- INCLUDE Ä÷³
CREATE INDEX EXTENSION¹®À» ÅëÇØ »öÀÎÀÇ Á¶ÀÛÀ» ±¸¼ºÇÏ´Â µÎ°³ÀÇ ±¸¼º¿ä¼Ò¸¦ Á¤ÀÇÇÕ´Ï´Ù.
»öÀÎ À¯Áöº¸¼ö´Â »öÀÎ Ä÷³ ³»¿ë(¶Ç´Â ¼Ò½º Ű)À» ¸ñÇ¥ »öÀΠŰ·Î º¯È¯ÇÏ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù.
º¯È¯ ÇÁ·Î¼¼½º´Â ÀÌÀü¿¡ µ¥ÀÌÅͺ£À̽º¿¡¼ Á¤ÀÇµÈ Å×À̺í ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Á¤Àǵ˴ϴÙ.
FROM SOURCE KEY ÀýÀº ÀÌ »öÀÎ È®ÀåÀ¸·Î Áö¿øµÇ´Â ¼Ò½º Ű Ä÷³¿¡ ´ëÇÑ ±¸Á¶ÈµÈ µ¥ÀÌÅÍ À¯ÇüÀ̳ª
±¸º° À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. ´ÜÀÏ ¸Å°³º¯¼ö À̸§ ¹× µ¥ÀÌÅÍ À¯ÇüÀÌ Á¦°øµÇ¸ç ¼Ò½º Ű Ä÷³°ú ¿¬°üµË´Ï´Ù.
GENERATE KEY USING ÀýÀº »öÀΠ۸¦ »ý¼ºÇϱâ À§ÇØ »ç¿ëµÇ´Â »ç¿ëÀÚ Á¤ÀÇ Å×À̺í ÇÔ¼ö¸¦
ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ÇÔ¼öÀÇ Ãâ·ÂÀº TARGET KEY Àý ½ºÆå(¾Æ·¡ Ç¥½ÃµÊ)¿¡ ÁöÁ¤µÇ¾î¾ß ÇÕ´Ï´Ù.
ÀÌ ÇÔ¼öÀÇ Ãâ·ÂÀº FILTER USING Àý¿¡¼ ÁöÁ¤ÇÑ »öÀÎ ÇÊÅ͸µ ÇÔ¼öÀÇ ÀÔ·ÂÀ¸·Î¼ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
»öÀÎ °Ë»öÀº °Ë»ö Àμö¸¦ °Ë»ö ¹üÀ§¿¡ ¸ÊÇÎÇÕ´Ï´Ù.
WITH TARGET KEY ÀýÀº GENERATE KEY USING Àý¿¡ ÁöÁ¤µÈ Ű »ý¼º ÇÔ¼öÀÇ Ãâ·ÂÀÎ ¸ñÇ¥ Ű
¸Å°³º¯¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ´ÜÀÏ ¸Å°³º¯¼ö À̸§ ¹× µ¥ÀÌÅÍ À¯ÇüÀÌ Á¦°øµÇ¸ç ¸ñÇ¥ Ű Ä÷³°ú ¿¬°üµË´Ï´Ù.
ÀÌ ¸Å°³º¯¼ö´Â GENERATE KEY USING ÀýÀÇ »ç¿ëÀÚ Á¤ÀÇ Å×À̺í ÇÔ¼öÀÇ
RETURNS Å×À̺í Ä÷³¿¡ ´ëÀÀÇÕ´Ï´Ù.
SEARCH METHODS ÀýÀº »öÀοëÀ¸·Î Á¤ÀÇµÈ Çϳª ÀÌ»óÀÇ °Ë»ö ¸Þ¼Òµå¸¦ ¼Ò°³ÇÕ´Ï´Ù.
°¢ °Ë»ö ¸Þ¼Òµå´Â ¸Þ¼Òµå À̸§, °Ë»ö Àμö, ÇÔ¼ö »ý¼º ¹üÀ§ ¹× ¼±ÅÃÀû »öÀÎ ÇÊÅÍ ÇÔ¼ö·Î
±¸¼ºµË´Ï´Ù. °¢ °Ë»ö ¸Þ¼Òµå´Â ÁÖ¿ä »ç¿ëÀÚ Á¤ÀÇ »öÀÎÀÇ »öÀÎ °Ë»ö ¹üÀ§°¡ »ç¿ëÀÚ
Á¤ÀÇ Å×À̺í ÇÔ¼ö¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¹æ½ÄÀ» Á¤ÀÇÇÕ´Ï´Ù. ´õ¿ì±â, °¢ °Ë»ö ¸Þ¼Òµå´Â ƯÁ¤
°Ë»ö ¹üÀ§¿¡ ÀÖ´Â »öÀÎ Ç׸ñÀÌ »ç¿ëÀÚ Á¤ÀÇ ½ºÄ®¶ó ÇÔ¼ö¿¡ ÀÇÇØ ÀÚ¼¼È÷ ±ÔÁ¤µÉ ¼ö ÀÖ´Â ¹æ½ÄÀ» Á¤ÀÇÇÕ´Ï´Ù.
- WHEN ÀýÀº ·¹À̺íÀ» °Ë»ö ¸Þ¼Òµå¿Í ¿¬°ü½Ãŵ´Ï´Ù. ·¹À̺íÀº »öÀÎ °Ë»ö ±ÔÄ¢(»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF)ÀÇ
PREDICATES Àý¿¡ ÀÖÀ½)¿¡ ÁöÁ¤µÈ ¸Þ¼Òµå À̸§°ú °ü·ÃµÈ SQL ½Äº°ÀÚÀÔ´Ï´Ù.
Çϳª ÀÌ»óÀÇ ¸Å°³º¯¼ö À̸§°ú µ¥ÀÌÅÍ À¯ÇüÀº ¹üÀ§ ÇÔ¼ö ¹×/¶Ç´Â »öÀÎ ÇÊÅ͸µ ÇÔ¼ö¿¡¼
Àμö·Î¼ »ç¿ëÇϵµ·Ï Á¦°øµË´Ï´Ù.
WHEN ÀýÀº CREATE FUNCTION¹®ÀÇ PREDICATES ÀýÀÌ ÀÔ·Â Á¶È¸¿Í ÀÏÄ¡ÇÒ ¶§ ÃÖÀûÈ ¾Ë°í¸®ÁòÀÌ
ÃëÇÒ ¼ö ÀÖ´Â Á¶Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
- RANGE THROUGH ÀýÀº »öÀΠŰ ¹üÀ§¸¦ »ý¼ºÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ¿ÜºÎ Å×À̺í ÇÔ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
À̰ÍÀº »öÀΠ۰¡ Ű ¹üÀ§¸¦ ¹þ¾î³¯ ¶§ ÃÖÀûÈ ¾Ë°í¸®ÁòÀÌ ¿¬°üµÈ UDF¸¦ È£ÃâÇÏÁö ¸øÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- FILTER USING ÀýÀº ¹üÀ§ »ý¼º ÇÔ¼ö¿¡¼ ¸®ÅÏµÈ »öÀÎ Ç׸ñÀ» ÇÊÅÍÇϱâ À§ÇØ »ç¿ëµÇ´Â CASE Ç¥Çö½Ä ¶Ç´Â
»ç¿ëÀÚ Á¤ÀÇ ¿ÜºÎ Å×À̺í ÇÔ¼ö¸¦ ÁöÁ¤ÇÏ´Â ¼±ÅÃÀû ¹æ¹ýÀÔ´Ï´Ù. »öÀÎ ÇÊÅÍ ÇÔ¼ö³ª CASE Ç¥Çö½Ä¿¡ ÀÇÇØ
¸®ÅÏµÈ °ªÀÌ 1À̸é, »öÀÎ Ç׸ñ¿¡ ´ëÀÀÇÏ´Â ÇàÀÌ Å×ÀÌºí¿¡¼ °Ë»öµË´Ï´Ù.
¸®ÅϵǴ °ªÀÌ 1ÀÌ ¾Æ´Ñ °æ¿ì, »öÀÎ Ç׸ñÀÌ »èÁ¦µË´Ï´Ù.
ÀÌ ±â´ÉÀº µÎ¹øÂ° ÇÊÅÍÀÇ ºñ¿ëÀÌ ¿ø·¡ ¸Þ¼Òµå¸¦ Æò°¡ÇÏ´Â ºñ¿ë°ú ºñ±³ÇÒ ¶§ ´õ ³·°í
º¸Á¶ ÇÊÅÍÀÇ ¼±ÅüºÀÌ »ó´ëÀûÀ¸·Î ³·À» ¶§ À¯¿ëÇÕ´Ï´Ù.
»öÀÎ °Ë»öÀº °Ë»ö ¸Þ¼ÒµåÀÇ Æò°¡¿¡¼ ¹ß»ýÇÕ´Ï´Ù.
CREATE FUNCTION(¿ÜºÎ ½ºÄ®¶ó)¹®Àº »öÀÎ È®Àå¿ëÀ¸·Î Á¤ÀÇµÈ °Ë»ö ¸Þ¼Òµå¿¡¼ »ç¿ëµÇ´Â
»ç¿ëÀÚ Á¤ÀÇ ¼ú¾î¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
PREDICATES ÀýÀº »öÀÎ È®ÀåÀ» °Ë»öÇÒ ¼ö ÀÖ´Â(±×¸®°í ¼ú¾îÀÇ °Ë»ö Á¶°Ç¿¡ ´ëÇØ ¼±ÅÃÀû
SELECTIVITY Àý »ç¿ë) ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¼ú¾î¸¦ ½Äº°ÇÕ´Ï´Ù. PREDICATES ÀýÀÌ ÁöÁ¤µÇ¸é,
ÇÔ¼ö´Â NO EXTERNAL ACTIONÀ» »ç¿ëÇÑ DETERMINISTICÀ¸·Î¼ Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù.
- WHEN ÀýÀº ºñ±³ ¿¬»êÀÚ(=, >, < ¹× ±âŸ) ¹× »ó¼ö³ª Ç¥Çö½Ä(EXPRESSION AS Àý »ç¿ë)ÀÌ
ÀÖ´Â ¼ú¾î¿¡¼ Á¤ÀǵǴ ÇÔ¼öÀÇ Æ¯¼öÇÑ »ç¿ëÀ» ¼Ò°³ÇÕ´Ï´Ù. ¼ú¾î°¡ µ¿ÀÏÇÑ
ºñ±³ ¿¬»êÀÚ¿Í Á¦°øµÈ »ó¼ö³ª Ç¥Çö½Ä°ú ÇÔ²² ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °æ¿ì,
ÇÊÅ͸µ ¹× »öÀÎ °Ë»öÀÌ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. »ó¼öÀÇ »ç¿ëÀº °á°ú À¯ÇüÀÌ 1 ¶Ç´Â 0 Áß
ÇϳªÀÎ ºÎ¿ï Ç¥Çö½ÄÀ» ÁÖ·Î ´Ù·ç±â À§ÇØ Á¦°øµË´Ï´Ù. ´Ù¸¥ ¸ðµç °æ¿ì¿¡´Â,
EXPRESSION AS ÀýÀÌ ´õ ³´½À´Ï´Ù.
- FILTER USING ÀýÀº °á°ú Å×À̺íÀÇ Ãß°¡ ÇÊÅ͸µÀ» ¼öÇàÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â
ÇÊÅÍ ÇÔ¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. ÇàÀÌ ±ÔÁ¤ÇÏ´ÂÁö ¿©ºÎ¸¦ ÆÇº°Çϱâ À§ÇØ »ç¿ëÀÚ Á¤ÀÇ ¼ú¾î¸¦ ½ÇÇàÇØ¾ß
ÇÏ´Â ÇàÀÇ ¼ö¸¦ °¨ÃàÇÏ´Â Á¤ÀÇµÈ ÇÔ¼ö(¼ú¾î¿¡¼ »ç¿ë)¸¦ ´ëüÇÏ´Â ´õ ºü¸¥ ¹öÀüÀÔ´Ï´Ù.
»ç¿ëÀÚ Á¤ÀÇ ¼ú¾î¿¡ ÀÇÇØ ¿¹»óµÇ´Â °á°ú¿¡ ±ÙÁ¢ÇÏ´Â »öÀÎÀ¸·Î °á°ú¸¦ »ý¼ºÇÑ °æ¿ì,
ÀÌ ÇÊÅÍ ÇÔ¼öÀÇ ÀÀ¿ëÇÁ·Î±×·¥Àº Áߺ¹µÉ ¼ö ÀÖ½À´Ï´Ù.
- »öÀÎ È®ÀåÀÇ °¢ °Ë»ö ¸Þ¼Òµå°¡ »öÀÎÀ» °Ë»öÇÏ´Â ±ÔÄ¢ ¼¼Æ®¸¦ ¼±ÅÃÀûÀ¸·Î Á¤ÀÇÇÒ ¼ö
ÀÖ½À´Ï´Ù. ¶ÇÇÑ °Ë»ö ¸ñÇ¥, °Ë»ö Àμö, ±×¸®°í »öÀÎ °Ë»öÀ» ¼öÇàÇϱâ À§ÇØ À̵éÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ»
±â¼úÇϱâ À§ÇØ »öÀÎ È®Àå¿¡¼ °Ë»ö ¸Þ¼Òµå¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
- SEARCH BY INDEX EXTENSION ÀýÀº »öÀÎ È®ÀåÀ» ½Äº°ÇÕ´Ï´Ù.
- ¼±ÅÃÀû EXACT ÀýÀº »öÀΠã¾Æº¸±â°¡ ¼ú¾î Æò°¡¿¡¼ ÀÏÄ¡ÇÔÀ» ³ªÅ¸³À´Ï´Ù.
ÀÌ ÀýÀº »öÀΠã¾Æº¸±â ÀÌÈÄ¿¡ µ¥ÀÌÅͺ£À̽º°¡ ÇÊÅÍ ÇÔ¼ö³ª ¿ø·¡ÀÇ »ç¿ëÀÚ Á¦°ø ¼ú¾î ÇÔ¼ö¸¦
Àû¿ëÇÏÁö ¾Êµµ·Ï ¾Ë¸³´Ï´Ù. »öÀΠã¾Æº¸±â°¡ »ç¿ëµÇÁö ¾Ê´Â °æ¿ì, ¿ø·¡ÀÇ ¼ú¾î ¹× ÇÊÅÍ ÇÔ¼ö°¡
Àû¿ëµÇ¾î¾ß ÇÕ´Ï´Ù. EXACT ÀýÀÌ »ç¿ëµÇÁö ¾Ê´Â °æ¿ì, ¿ø·¡ÀÇ »ç¿ëÀÚ Á¦°ø ¼ú¾î´Â »öÀΠã¾Æº¸±â ÀÌÈÄ¿¡
Àû¿ëµË´Ï´Ù. EXACT ¼ú¾î´Â »öÀΠã¾Æº¸±â°¡ ¼ú¾î¿Í µ¿ÀÏÇÑ °á°ú¸¦ ¸®ÅÏÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù. À̰ÍÀº
Á¶È¸ ½ÇÇà ½Ã »öÀΠã¾Æº¸±â¿¡¼ ȹµæÇÑ °á°ú¿¡ »ç¿ëÀÚ Á¤ÀÇ ¼ú¾î¸¦ Àû¿ëÇÏÁö ¸øÇÏ°Ô ÇÕ´Ï´Ù.
»öÀÎÀÌ ¼ú¾î¿Í ºñ½ÁÇÑ °Í¸¸À» Á¦°øÇϸ®¶ó°í ¿¹»óµÇ´Â °æ¿ì,
EXACT ÀýÀ» ÁöÁ¤ÇÏÁö ¸¶½Ê½Ã¿À.
- WHEN KEY ÀýÀº °Ë»ö ¸ñÇ¥¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ű¿¡ ´ëÇØ ¿ÀÁ÷ ÇϳªÀÇ °Ë»ö ¸ñÇ¥°¡
ÁöÁ¤µË´Ï´Ù. WHEN KEY Àý ´ÙÀ½¿¡ Á¦°øµÈ °ªÀº Á¤ÀǵǴ ÇÔ¼öÀÇ ¸Å°³º¯¼ö À̸§À»
½Äº°ÇÕ´Ï´Ù. À̸§ ÁöÁ¤µÈ ¸Å°³º¯¼öÀÇ °ªÀÌ ÁöÁ¤µÈ »öÀÎ È®Àå¿¡ ±Ù°ÅÇÑ »öÀÎÀ¸·Î ó¸®µÉ ¶§
ÀÌ ÀýÀº ÂüÀ¸·Î Æò°¡µË´Ï´Ù.
- USE ÀýÀº °Ë»ö Àμö¸¦ Á¤ÀÇÇÕ´Ï´Ù. °Ë»ö Àμö´Â »öÀÎ È®Àå¿¡ Á¤ÀÇµÈ ¾î¶² ¸Þ¼Òµå°¡
»ç¿ëµÇ´Â°¡¸¦ ½Äº°ÇÕ´Ï´Ù. ¿©±â¿¡¼ Á¦°øÇÑ ¸Þ¼Òµå À̸§Àº »öÀÎ È®Àå¿¡ Á¤ÀÇÇÑ ¸Þ¼Òµå¿Í
ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. Çϳª ÀÌ»óÀÇ ¸Å°³º¯¼ö °ªÀº Á¤ÀǵǴ ÇÔ¼öÀÇ ¸Å°³º¯¼ö À̸§À» ½Äº°Çϸç
¾î¶² °ÍÀÌ °Ë»ö ¸ñÇ¥¿¡ ÁöÁ¤ÇÑ ¸Å°³º¯¼ö À̸§°ú ´Þ¶ó¾ß ÇÏ´ÂÁö ³ªÅ¸³À´Ï´Ù.
¸Å°³º¯¼ö °ªÀÇ ¼ö¿Í °¢ µ¥ÀÌÅÍ À¯ÇüÀº »öÀÎ È®Àå¿¡¼ ¸Þ¼Òµå¿ëÀ¸·Î Á¤ÀÇÇÑ ¸Å°³º¯¼ö¿Í
ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. ³»Àå ¹× ±¸º° µ¥ÀÌÅÍ À¯ÇüÀÇ °æ¿ì ¿ÏÀüÈ÷ ÀÏÄ¡ÇØ¾ß ÇÏ¸ç µ¿ÀÏÇÑ
±¸Á¶ À¯Çü ³»¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
»öÀÎ È®ÀåÀ» Á¤ÀÇÇÏ´Â ½Ã³ª¸®¿À´Â ´ÙÀ½°ú °°½À´Ï´Ù.
- ±¸Á¶ÈµÈ À¯Çü(ÇüÅÂÀÇ °æ¿ì)À» Á¤ÀÇÇϽʽÿÀ. CREATE TYPE¹®À» »ç¿ëÇÏ¿©
ÇüŰ¡ supertype ¹× nullshape, Æ÷ÀÎÆ®, ¶óÀÎÀ̸ç, ´Ù°¢ÇüÀÌ ºÎ¼ÓÀ¯ÇüÀÎ À¯Çü
°èÃþ±¸Á¶¸¦ Á¤ÀÇÇϽʽÿÀ. À̰ÍÀº À¯Çü ¸ðµ¨ °ø°£ ¿£ÅÍÆ¼¸¦ ±¸Á¶ÈÇß½À´Ï´Ù. ¿¹¸¦ µé¾î,
»óÁ¡ÀÇ À§Ä¡´Â Æ÷ÀÎÆ®À̸ç, °ÀÇ °æ·Î´Â ¶óÀÎÀ̸ç, ºñÁö´Ï½º Á¸ÀÇ °æ°è´Â ´Ù°¢ÇüÀÔ´Ï´Ù.
ÃÖ¼Ò °æ°èÀÇ »ç°¢Çü(mbr)Àº ¼Ó¼ºÀÔ´Ï´Ù. gtype ¼Ó¼ºÀº ¿¬°üµÈ ¿£ÅÍÆ¼°¡ Æ÷ÀÎÆ®, ¶óÀÎ ¶Ç´Â ´Ù°¢ÇüÀÎÁö
¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Áö¸®ÀûÀÎ °æ°è´Â numpart, numpoint ¹× geometry ¼Ó¼ºÀ¸·Î ¸ðµ¨ÈµË´Ï´Ù. ´Ù¸¥ ¸ðµç
¼Ó¼ºÀº ÀÌ ½Ã³ª¸®¿À¿Í °ü·ÃÀÌ ¾øÀ¸¹Ç·Î ¹«½ÃµË´Ï´Ù.
- »öÀÎ È®ÀåÀ» ÀÛ¼ºÇϽʽÿÀ.
- CREATE FUNCTION¹®À» »ç¿ëÇÏ¿© Ű º¯È¯(gridentry), ¹üÀ§ »ý¼º(gridrange)
¹× »öÀÎ ÇÊÅÍ(checkduplicate ¹× mbroverlap)¿¡ »ç¿ëµÇ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇϽʽÿÀ.
- CREATE INDEX EXTENSION ¹®À» »ç¿ëÇÏ¿© »öÀÎÀÇ ±¸¼º¿ä¼Ò¿¡ ÇÊ¿äÇÑ ³ª¸ÓÁö¸¦ ÀÛ¼ºÇϽʽÿÀ.
- »öÀÎÀÇ »öÀÎ À¯Áöº¸¼ö ±¸¼º¿ä¼Ò¿¡ ´ëÀÀÇϴ Ű º¯È¯À» ÀÛ¼ºÇϽʽÿÀ.
CREATE INDEX EXTENSION iename (parm_name datatype, ..).
FROM SOURCE KEY (parm_name datatype)
GENERATE KEY USING table_function_invocation
...
FROM SOURCE KEY ÀýÀº Ű º¯È¯ÀÇ ¸Å°³º¯¼ö ¹× µ¥ÀÌÅÍ À¯ÇüÀ» ½Äº°ÇÕ´Ï´Ù.
GENERATE KEY USING ÀýÀº ÇÔ¼ö¿¡¼ »ý¼ºµÈ °ªÀ¸·Î ¼Ò½º ۸¦ ¸ÊÇÎÇÏ´Â µ¥ »ç¿ëµÇ´Â
ÇÔ¼ö¸¦ ½Äº°ÇÕ´Ï´Ù.
- »öÀÎÀÇ »öÀÎ °Ë»ö ±¸¼º¿ä¼Ò¿¡ ´ëÀÀÇÏ´Â ¹üÀ§ »ý¼º ¹× »öÀÎ ÇÊÅÍ ÇÔ¼ö¸¦ Á¤ÀÇÇϽʽÿÀ.
CREATE INDEX EXTENSION iename (parm_name datatype, ..).
...
WITH TARGET KEY
WHEN method_name (parm_name datatype, ..).
RANGE THROUGH range_producing_function_invocation
FILTER USING index_filtering_function_invocation
WITH TARGET KEY ÀýÀº °Ë»ö ¸Þ¼Òµå Á¤ÀǸ¦ ½Äº°ÇÕ´Ï´Ù. WHEN ÀýÀº ¸Þ¼Òµå À̸§À»
½Äº°ÇÕ´Ï´Ù. RANGE THROUGH ÀýÀº »ç¿ëµÇ´Â »öÀÎÀÇ ¹üÀ§¸¦ Á¦ÇÑÇÏ´Â µ¥ »ç¿ëµÇ´Â
ÇÔ¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. FILTER USING ÀýÀº °á°ú »öÀÎ °ª¿¡¼ ºÒÇÊ¿äÇÑ Ç׸ñÀ» Á¦°ÅÇÏ´Â µ¥
»ç¿ëµÇ´Â ÇÔ¼ö¸¦ ½Äº°ÇÕ´Ï´Ù.
ÁÖ: | FILTER USING ÀýÀº »öÀÎ ÇÊÅ͸µ ÇÔ¼ö ´ë½Å CASE Ç¥Çö½ÄÀ» ½Äº°ÇÒ ¼ö
ÀÖ½À´Ï´Ù.
|
- »öÀÎ È®ÀåÀ» °Ë»öÇÏ·Á¸é ¼ú¾î¸¦ Á¤ÀÇÇϽʽÿÀ.
CREATE FUNCTION within (x shape, y shape)
RETURNS INTEGER
...
PREDICATES
WHEN = 1
FILTER USING mbrWithin (x..mbr..xmin, ..).
SEARCH BY INDEX EXTENSION grid_extension
WHEN KEY (parm_name) USE method_name(parm_name)
PREDICATES ÀýÀº °¢ WHEN Àý·Î ½ÃÀ۵Ǵ Çϳª ÀÌ»óÀÇ ¼ú¾î¸¦ ¼Ò°³ÇÕ´Ï´Ù.
WHEN ÀýÀº »ó¼ö ¶Ç´Â EXPRESSION AS Àý Áß Çϳª°¡ ´ÙÀ½¿¡ ¿À´Â ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿©
¼ú¾î¿¡ ´ëÇÑ ½ºÆåÀ» ½ÃÀÛÇÕ´Ï´Ù. FILTER USING ÀýÀº °á°ú Å×À̺íÀÇ Ãß°¡ ÇÊÅ͸µÀ» ¼öÇàÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â
ÇÊÅÍ ÇÔ¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. À̰ÍÀº ±ÔÁ¤ÇÏ´Â ÇàÀ» ÆÇº°Çϱâ À§ÇØ »ç¿ëÀÚ Á¤ÀÇ ¼ú¾î°¡ ½ÇÇàµÇ¾î¾ß
ÇÏ´Â ÇàÀÇ ¼ö¸¦ °¨ÃàÇÏ´Â Á¤ÀÇµÈ ÇÔ¼ö(¼ú¾î¿¡¼ »ç¿ë)ÀÇ ºñ¿ëÀÌ Àú·ÅÇÑ ¹öÀüÀÔ´Ï´Ù. SEARCH
BY INDEX EXTENSION ÀýÀº »öÀÎ °Ë»öÀÌ ¹ß»ýÇÏ´Â °÷À» ÁöÁ¤ÇÕ´Ï´Ù.
»öÀÎ °Ë»öÀº »öÀÎÀ» °Ë»öÇϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´Â »öÀÎ È®ÀåÀÇ °Ë»ö ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿©
±ÔÄ¢ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. WHEN KEY ÀýÀº °Ë»ö ±ÔÄ¢À» ÁöÁ¤ÇÕ´Ï´Ù. °Ë»ö ±ÔÄ¢Àº
°Ë»ö ¸Þ¼Òµå¸¦ ÅëÇØ »öÀÎ °Ë»öÀ» ¼öÇàÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Â ¹æ¹ýÀº ¹°·Ð °Ë»ö ¸ñÇ¥ ¹×
°Ë»ö Àμö¸¦ ¼³¸íÇÕ´Ï´Ù.
- ÇÊÅÍ ÇÔ¼ö¸¦ Á¤ÀÇÇϽʽÿÀ.
CREATE FUNCTION mbrWithin (..).
¿©±â¿¡ Á¤ÀÇµÈ ÇÔ¼ö´Â »öÀÎ È®ÀåÀÇ ¼ú¾î¿¡¼ »ç¿ëÇϵµ·Ï ÀÛ¼ºµË´Ï´Ù.
Á¶È¸ ÃÖÀûÈ ¾Ë°í¸®ÁòÀÌ ÀÛ¼ºµÈ »öÀÎÀ» Á¤»óÀûÀ¸·Î °Ë»öÇÏ¿© Á¶È¸ ¼º´ÉÀ» °³¼±½Ã۱â À§ÇØ,
SELECTIVITY ¿É¼ÇÀÌ ÇÔ¼ö È£Ãâ¿¡¼ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
¼ú¾î°¡ ¸®ÅÏÇÒ ¼ö ÀÖ´Â ÇàÀÇ ¹éºÐÀ²¿¡ ´ëÇÑ ¾ÆÀ̵ð¾î°¡ ÀÖ´Â °æ¿ì¿¡, ÇÔ¼ö È£Ãâ¿¡¼
SELECTIVITY ¿É¼ÇÀ» »ç¿ëÇÏ¿© DB2 ÃÖÀûÈ ¾Ë°í¸®ÁòÀÌ ´õ È¿°úÀûÀÎ ¾×¼¼½º °æ·Î¸¦ ¼±ÅÃÇÒ ¼ö
ÀÖµµ·Ï µµ¿ï ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼, within »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö´Â Á᫐ ¹× ¹Ý°æ(°¢°¢ ù¹øÂ°¿Í µÎ¹øÂ° ¸Å°³º¯¼ö¿¡ ±Ù°ÅÇÏ¿©)À»
°è»êÇϰí ÀûÀýÇÑ ¼±ÅÃÀ¸·Î ¸í·É¹® ¹®ÀÚ¿À» ºôµåÇÕ´Ï´Ù.
SELECT * FROM customer
WHERE within(loc, circle(100, 100, 10) = 1 SELECTIVITY .05
ÀÌ ¿¹¿¡¼, Ç¥½ÃµÈ ¼ú¾î(SELECTIVITY .05)´Â customer Å×ÀÌºí¿¡¼ 95ÆÛ¼¾Æ® ÇàÀ»
ÇÊ´õ¸µÇÕ´Ï´Ù.
[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]