°ü¸® ¾È³»¼­


µ¥ÀÌÅÍ ¾×¼¼½º °³³ä ¹× ÃÖÀûÈ­

SQL¹®À» ÄÄÆÄÀÏÇÒ ¶§, SQL ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ¿äûÀ» ÃæÁ·½ÃŰ´Â ¿©·¯ °¡Áö ¹æ¹ýÀÇ ½ÇÇà ºñ¿ëÀ» ÃßÁ¤ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Æò°¡¿¡ ±Ù°ÅÇÏ¿© ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº °¡Àå ÃÖÀûÀÇ ¾×¼¼½º Ç÷£À̶ó°í ¿©°ÜÁö´Â °ÍÀ» ¼±ÅÃÇÕ´Ï´Ù. ¾×¼¼½º Ç÷£Àº SQL¹®À» ÇØ¼®(resolve)ÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¶ÀÛ ¼ø¼­¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¹ÙÀεåµÇ¸é ÆÐŰÁö°¡ »ý¼ºµË´Ï´Ù. ÀÌ ÆÐŰÁö¿¡´Â ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¸ðµç Á¤Àû SQL¹®¿¡ ´ëÇÑ ¾×¼¼½º Ç÷£ÀÌ ÀÖ½À´Ï´Ù. µ¿Àû SQL¹®¿¡ ´ëÇÑ ¾×¼¼½º Ç÷£Àº ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â ½ÃÁ¡¿¡ »ý¼ºµË´Ï´Ù.

Å×À̺íÀÇ µ¥ÀÌÅÍ¿¡ ¾×¼¼½ºÇÏ´Â ¹æ¹ý¿¡´Â µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. °ð¹Ù·Î Å×À̺íÀ» Àд ¹æ¹ý(°ü°è ½ºÄµ)°ú Å×À̺íÀÇ »öÀÎÀ» ¸ÕÀú ¾×¼¼½ºÇÏ´Â ¹æ¹ý(»öÀÎ ½ºÄµ)ÀÔ´Ï´Ù.

°ü°è ½ºÄµÀº µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ Å×À̺íÀÇ ¸ðµç ÇàÀ» ¼øÂ÷ÀûÀ¸·Î ¾×¼¼½ºÇÒ ¶§ ¹ß»ýÇÕ´Ï´Ù. »öÀÎ ½ºÄµÀÌ µ¿ÀÛÇÏ´Â ¹æ½Ä¿¡ ´ëÇØ¼­´Â »öÀÎ ½ºÄµ °³³äÀ» ÂüÁ¶Çϰí, ¾î¶² Á¶°ÇÇÏ¿¡¼­ °¢°¢ÀÇ ½ºÄµ À¯ÇüÀÌ »ç¿ëµÇ´ÂÁö¿¡ ´ëÇØ¼­´Â °ü°è ½ºÄµ ´ë »öÀÎ ½ºÄµ¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

´ÙÀ½¿¡¼­´Â Å×À̺íÀÇ µ¥ÀÌÅÍ¿¡ ¾×¼¼½ºÇϰí Á¶È¸ °á°ú¸¦ ¾ò±â À§ÇÏ¿© ¾×¼¼½º Ç÷£¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Â ±âŸÀÇ ¹æ¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇÕ´Ï´Ù.

±âŸ °ü·Ã ÁÖÁ¦

»öÀÎ ½ºÄµ °³³ä

»öÀÎ ½ºÄµÀº µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ ´ÙÀ½ ³»¿ë Áß ÀϺΠ¶Ç´Â ¸ðµÎ¸¦ ¼öÇàÇϱâ À§ÇØ »öÀÎÀ» ¾×¼¼½ºÇÒ ¶§ ¹ß»ýÇÕ´Ï´Ù.

½ºÄµÀº »öÀÎÀÌ Á¤ÀÇµÈ °Í°ú ¹Ý´ë ¹æÇâÀ¸·Î ¼öÇàµÉ ¼öµµ ÀÖ½À´Ï´Ù. SQL ÂüÁ¶¼­ÀÇ CREATE INDEX¹®¿¡ ÀÖ´Â ALLOW REVERSE SCANS ¿É¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.

´ÙÀ½ Ãß°¡ ÁÖÁ¦°¡ Á¦°øµË´Ï´Ù.

»öÀÎ ±¸Á¶

µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº B+ Æ®¸® ±¸Á¶¸¦ »ç¿ëÇÏ¿© »öÀÎÀ» ÀúÀåÇÕ´Ï´Ù. B+ Æ®¸®´Â ´ÙÀ½ µµÇ¥(RID´Â Çà ID¸¦ ÀǹÌÇÔ)¿¡¼­Ã³·³ Çϳª ÀÌ»óÀÇ ·¹º§À» °¡Áö°í ÀÖ½À´Ï´Ù.

±×¸² 79. B+ Æ®¸® ±¸Á¶


SQLD1BTS

ÃÖ»óÀ§ ·¹º§À» ·çÆ® ³ëµå(root node)¶ó°í ÇÕ´Ï´Ù. ÃÖÇÏÀ§ ·¹º§Àº ¸®ÇÁ ³ëµå(leaf node)·Î ±¸¼ºµÇ´Âµ¥, ¿©±â¿¡´Â Å×ÀÌºí ³»ÀÇ ½ÇÁ¦ ÇàÀ¸·ÎÀÇ Æ÷ÀÎÅͻӸ¸ ¾Æ´Ï¶ó ½ÇÁ¦ »öÀΠ۰ªµµ ÀúÀåµË´Ï´Ù. ·çÆ® ³ëµå¿Í ¸®ÇÁ ³ëµå »çÀÌÀÇ ·¹º§Àº Áß°£ ³ëµå(intermediate node)¶ó°í ÇÕ´Ï´Ù.

ƯÁ¤ »öÀΠŰ °ªÀ» ãÀ¸·Á ÇÒ ¶§, »öÀÎ °ü¸® ÇÁ·Î±×·¥Àº ·çÆ® ³ëµå·ÎºÎÅÍ ½ÃÀÛÇÏ¿© »öÀÎ Æ®¸®¸¦ Ž»öÇÕ´Ï´Ù. ·çÆ® ³ëµå´Â ´ÙÀ½ ·¹º§ÀÇ °¢°¢ÀÇ ³ëµå¿¡ ´ëÇÑ ÇϳªÀÇ Å°¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌµé °¢°¢ÀÇ Å° °ªÀº ´ÙÀ½ ·¹º§¿¡ ÀÖ´Â ÇØ´ç ³ëµå¿¡ ´ëÇÑ Á¸ÀçÇÏ´Â °¡Àå Å« Ű °ªÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ±×¸² 79¿¡¼­Ã³·³ »öÀÎÀÌ ¼¼ °³ÀÇ ·¹º§·Î µÇ¾î ÀÖÀ» °æ¿ì, »öÀÎ °ü¸® ÇÁ·Î±×·¥Àº »öÀΠŰ °ªÀ» ã±â À§ÇØ, Ž»öµÇ´Â Űº¸´Ù Å©°Å³ª °°Àº ù¹øÂ° Ű °ªÀ» ·çÆ® ³ëµå¿¡¼­ Ž»öÇÕ´Ï´Ù. ÀÌ ·çÆ® ³ëµå Ű´Â ƯÁ¤ Áß°£ ³ëµå¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù. ÀÌ Áß°£ ³ëµå¿¡¼­ ¾î´À ¸®ÇÁ ³ëµå·Î °¡¾ß ÇÒÁö¸¦ °áÁ¤Çϱâ À§ÇØ ¶È°°Àº °úÁ¤ÀÌ ¹Ýº¹µË´Ï´Ù. ¸¶Áö¸· »öÀΠŰ´Â ¸®ÇÁ ³ëµå¿¡¼­ Ž»öµË´Ï´Ù. ±×¸² 79À» »ç¿ëÇÒ °æ¿ì, ãÀ» Ű´Â "I"ÀÔ´Ï´Ù. "I"º¸´Ù Å©°Å³ª °°Àº ·ÎÆ® ³ëµåÀÇ Ã¹¹øÂ° Ű´Â "N"ÀÔ´Ï´Ù. À̰ÍÀº ´ÙÀ½ ·¹º§¿¡ ÀÖ´Â Áß°£ ³ëµå¸¦ °¡¸®Åµ´Ï´Ù. "I"º¸´Ù Å©°Å³ª °°Àº Áß°£ ³ëµåÀÇ Ã¹¹øÂ° Ű´Â "L"ÀÔ´Ï´Ù. À̰ÍÀº "I"¿¡ ´ëÇÑ »öÀΠŰ¿Í ÇØ´ç Çà ID(±âº» Å×À̺íÀÇ ÇØ´ç ÇàÀÇ Çà ID)°¡ µé¾î Àִ ƯÁ¤ ¸®ÇÁ ³ëµå¸¦ °¡¸®Åµ´Ï´Ù.
ÁÖ:¸®ÇÁ ³ëµå ·¹º§¿¡´Â ÀÌÀü ¸®ÇÁ Æ÷ÀÎÅͰ¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â Æ®¸®¸¦ Ž»öÇÏ¿© »öÀο¡¼­ ƯÁ¤ Ű °ªÀ» ã±â ¶§¹®¿¡ Å« ÀåÁ¡ÀÌ µÉ ¼ö ÀÖÀ¸¸ç, »öÀÎ °ü¸® ÇÁ·Î±×·¥Àº ¾ç¹æÇâÀ¸·Î ¸®ÇÁ ³ëµå¸¦ ½ºÄµÇÏ¿© °ªÀÇ ¹üÀ§¸¦ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾ç¹æÇâ ½ºÄµ ±â´ÉÀº »öÀÎÀÌ ALLOW REVERSE SCANS ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÛ¼ºµÈ °æ¿ì¿¡¸¸ °¡´ÉÇÕ´Ï´Ù.

SQL ÂüÁ¶¼­¿¡¼­ CREATE INDEX¿¡ ´ëÇÑ ¿É¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.

¹üÀ§¸¦ Á¤Çϱâ À§ÇÑ »öÀÎ ½ºÄµ

ƯÁ¤ Á¶È¸¿¡ »öÀÎÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö¸¦ °áÁ¤Çϱâ À§ÇØ, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº »öÀÎÀÇ °¢ Ä÷³ÀÌ ´ÙÀ½À» ÃæÁ·½Ãų ¼ö ÀÖ´ÂÁö º¸±â À§ÇØ Ã¹¹øÂ° Ä÷³ºÎÅÍ Æò°¡ÇÕ´Ï´Ù.

¼ú¾î´Â WHEREÀý Ž»ö Á¶°ÇÀÇ ÇÑ ¿ä¼Ò·Î¼­, ºñ±³ Á¶ÀÛÀ» Ç¥ÇöÇϰųª ³»Æ÷ÇÕ´Ï´Ù. »öÀÎ ½ºÄµÀÇ ¹üÀ§¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Â ¼ú¾î´Â ´ÙÀ½ Áß ÇÑ °¡Áö°¡ ÂüÀÎ »öÀÎ Ä÷³°ú °ü·ÃµÈ °ÍÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº Á¤ÀǸ¦ °®´Â »öÀÎÀÌ Á¦°øµÇ¾úÀ» ¶§,

   INDEX IX1:  NAME    ASC,
               DEPT    ASC,
               MGR     DESC,
               SALARY  DESC,
               YEARS   ASC

´ÙÀ½ ¼ú¾î´Â »öÀÎ IX1ÀÇ ¹üÀ§¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

   WHERE  NAME  = :hv1
    AND   DEPT  = :hv2

¶Ç´Â

   WHERE  MGR  = :hv1
     AND  NAME = :hv2
     AND  DEPT = :hv3

µÎ¹øÂ° ¿¹¿¡¼­ WHERE ¼ú¾î°¡ »öÀο¡ Ű Ä÷³ÀÌ ³ªÅ¸³­ °Í°ú °°Àº ¼ø¼­·Î ¸í½ÃµÇ¾î ÀÖÀ» Çʿ䰡 ¾øÀ½¿¡ ÁÖÀÇÇϽʽÿÀ. ±×¸®°í ÀÌ ¿¹¿¡¼­ È£½ºÆ® º¯¼ö°¡ »ç¿ëµÇ´õ¶óµµ, ¸Å°³º¯¼ö Ç¥½Ã¹®ÀÚ, Ç¥Çö½Ä ¶Ç´Â »ó¼ö´Â µ¿ÀÏÇÑ È¿°ú¸¦ ³ªÅ¸³À´Ï´Ù.

CREATE INDEX¹®ÀÇ ALLOW REVERSE SCANS ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÛ¼ºµÈ ´ÜÀÏ »öÀÎÀº ¾ç¹æÇâÀ¸·Î ½ºÄµµÉ ¼ö ÀÖ½À´Ï´Ù. Áï, ÀÌ·¯ÇÑ »öÀÎ Áö¿øÀº »öÀÎÀÌ ÀÛ¼ºµÉ ¶§ Á¤ÀÇµÈ ¹æÇâÀ¸·Î ½ºÄµÇϸç, ¿ª¹æÇâÀ¸·Îµµ ½ºÄµµÉ ¼ö ÀÖ½À´Ï´Ù. ¸í·É¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.

   CREATE INDEX iname ON tname (cname DESC) ALLOW REVERSE SCANS

ÀÌ °æ¿ì, cnameÀÇ °ª¿¡ µû¶ó ³»¸²Â÷¼øÀ¸·Î »öÀÎ(iname)ÀÌ ±¸¼ºµË´Ï´Ù. Ä÷³ÀÇ »öÀÎÀÌ ³»¸²Â÷¼øÀ¸·Î ½ºÄµÇϵµ·Ï Á¤ÀǵǾî ÀÖ´õ¶óµµ, ¿ª½ºÄµÀÌ Çã¿ëµÇ¹Ç·Î ¿À¸§Â÷¼øÀ¸·Î ½ºÄµÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î »öÀÎÀ» ¾ç¹æÇâÀ¸·Î »ç¿ëÇÏ´Â °ÍÀº »ç¿ëÀÚ¿¡ ÀÇÇØ Á¦¾îµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¾×¼¼½º Ç÷£À» ÀÛ¼ºÇÏ°í °í·ÁÇÒ ¶§ ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ ÀÇÇØ Á¦¾îµË´Ï´Ù.

´ÙÀ½ WHEREÀý¿¡¼­, NAME ¹× DEPT¿¡ ´ëÇÑ ¼ú¾î´Â »öÀÎ ½ºÄµ ¹üÀ§¸¦ ºÐ¸®ÇÏ´Â µ¥ »ç¿ëµÇÁö¸¸, SALARY ¶Ç´Â YEARS¿¡ ´ëÇÑ ¼ú¾î´Â ±×·¸Áö ¾Ê½À´Ï´Ù.

   WHERE  NAME  = :hv1
    AND   DEPT  = :hv2
     AND  SALARY = :hv4
     AND  YEARS  = :hv5

À̰ÍÀº óÀ½ µÎ °³ÀÇ »öÀΠŰ Ä÷³À¸·ÎºÎÅÍ ÀÌ Ä÷³À» ºÐ¸®½ÃŰ´Â Ű Ä÷³(MGR)ÀÌ À־ ¼ø¼­È­ ÀÛ¾÷ÀÌ Á¾·áµÇ±â ¶§¹®ÀÔ´Ï´Ù. ±×·¯³ª, ÀÏ´Ü ¹üÀ§°¡ NAME = :hv1 ¹× DEPT = :hv2 ¼ú¾î¿¡ ÀÇÇØ °áÁ¤µÇ¸é, ³ª¸ÓÁö ¼ú¾î´Â ³ª¸ÓÁö »öÀΠŰ Ä÷³¿¡ ´ëÇØ Æò°¡µÉ ¼ö ÀÖ½À´Ï´Ù.

À§¿¡¼­ ¼³¸íÇÑ µîÈ£(equality) ¼ú¾î¿Í ´õºÒ¾î, ƯÁ¤ ºÎµîÈ£ ¼ú¾î°¡ »öÀÎ ½ºÄµÀÇ ¹üÀ§¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº µÎ °¡Áö À¯ÇüÀÇ ºÎµîÈ£ ¼ú¾î, Áï ¿ÏÀüÇÑ(strict) ºÎµîÈ£¿Í Æ÷ÇÔ(inclusive) ºÎµîÈ£¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.

¿ÏÀüÇÑ ºÎµîÈ£ ¼ú¾î: ¹üÀ§ ±¸ºÐ ¼ú¾î¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿ÏÀüÇÑ ºÎµîÈ£(strict inequality) ¿¬»êÀÚ´Â > ¹× <ÀÔ´Ï´Ù.

»öÀÎ ½ºÄµÀ» À§ÇÑ ¹üÀ§¸¦ Á¤Çϱâ À§Çؼ­´Â ¿ÏÀü ºÎµîÈ£°¡ ¼ú¾î¸¦ °®´Â ´Ü ÇϳªÀÇ Ä÷³ÀÌ °í·ÁµË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼­´Â NAME ¹× DEPT Ä÷³¿¡ ´ëÇÑ ¼ú¾î°¡ ¹üÀ§¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖÁö¸¸, MGR Ä÷³Àº »ç¿ëµÉ ¼ö ¾ø½À´Ï´Ù.

   WHERE  NAME  = :hv1
     AND  DEPT   > :hv2
     AND  DEPT   < :hv3
     AND  MGR    < :hv4

Æ÷ÇÔ ºÎµîÈ£(Inclusive Inequality) ¼ú¾î: ´ÙÀ½Àº ¹üÀ§ ±¸ºÐ ¼ú¾î¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â Æ÷ÇÔ ºÎµîÈ£ ¿¬»êÀÚÀÔ´Ï´Ù.

»öÀÎ ½ºÄµÀÇ ¹üÀ§¸¦ Á¤Çϱâ À§Çؼ­´Â, Æ÷ÇÔ ºÎµîÈ£ ¼ú¾î¸¦ °®´Â ¿©·¯ °³ÀÇ Ä÷³ÀÌ °í·ÁµË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, ¸ðµç ¼ú¾î°¡ »öÀÎ ½ºÄµÀÇ ¹üÀ§¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

   WHERE  NAME  = :hv1
     AND  DEPT  >= :hv2
     AND  DEPT  <= :hv3
     AND  MGR   <= :hv4

ÀÌ ¿¹¸¦ Á»´õ ÀÚ¼¼È÷ ¼³¸íÇϱâ À§ÇØ, :hv2 = 404, :hv3 = 406 ¹× :hv4 = 12345¶ó°í °¡Á¤ÇϽʽÿÀ. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº 404 ¹× 405 ºÎ¼­¿¡ ´ëÇÑ »öÀÎÀ» ½ºÄµÇÕ´Ï´Ù. ±×·¯³ª, Á÷¿ø ¹øÈ£(MGR Ä÷³)°¡ 12345º¸´Ù Å« ù¹øÂ° °ü¸®ÀÚ¸¦ ¸¸³ª¸é 406 ºÎ¼­ÀÇ ½ºÄµÀ» ¸ØÃß°Ô µË´Ï´Ù.

Ãß°¡ Á¤º¸´Â ¹üÀ§ ±¸ºÐ ¼ú¾î ¹× »öÀÎ SARGable ¼ú¾î¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

µ¥ÀÌÅÍ ¼ø¼­È­¸¦ À§ÇÑ »öÀÎ ½ºÄµ

Á¶È¸½Ã ¼ø¼­È­¸¦ ÇØ¾ß ÇÏ´Â °æ¿ì, ¼ø¼­È­µÇ´Â Ä÷³ÀÌ Ã¹¹øÂ° »öÀΠŰ Ä÷³ºÎÅÍ ½ÃÀÛÇÏ¿© »öÀο¡ ¼ø¼­´ë·Î ³ªÅ¸³ª¸é, »öÀÎÀÌ µ¥ÀÌÅ͸¦ ¼ø¼­È­ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù(¼ø¼­È­ ¶Ç´Â Á¤·ÄÀº ORDER BY, DISTINCT, GROUP BY, "= ANY" subquery, "> ALL" ºÎ¼Ó Á¶È¸, "< ALL" ºÎ¼Ó Á¶È¸, INTERSECT ¶Ç´Â EXCEPT, UNION°ú °°Àº Á¶ÀÛ¿¡ ÀÇÇØ ¹ß»ýÇÕ´Ï´Ù). ÀÌ¿¡ ´ëÇÑ ¿¹¿Ü´Â »öÀΠŰ Ä÷³ÀÌ "»ó¼ö °ª"°ú °°ÀºÁö¸¦ ºñ±³ÇÏ´Â °æ¿ì(Áï, »ó¼ö¿Í ºñ±³ Æò°¡µÇ´Â Ç¥Çö½Ä)ÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡´Â ¼ø¼­È­µÇ´Â Ä÷³ÀÌ Ã¹¹øÂ° »öÀΠŰ Ä÷³ÀÌ ¾Æ´Ñ ´Ù¸¥ °ÍÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº Á¶È¸¿¡¼­

   WHERE NAME = 'JONES'
     AND DEPT = 'D93'
   ORDER BY MGR

NAME ¹× DEPT°¡ Ç×»ó °°Àº °ªÀ̰í ÀÌ·¸°Ô ¼ø¼­È­µÇ¹Ç·Î, »öÀÎÀÌ ÇàÀ» ¼ø¼­È­ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. À̸¦ ´Ù¸£°Ô Ç¥ÇöÇϸé, ¾Õ¿¡ ³ª¿À´Â WHERE ¹× ORDER BYÀýÀÌ ´ÙÀ½°ú °°´Ù´Â °ÍÀÔ´Ï´Ù.

   WHERE NAME = 'JONES'
     AND DEPT = 'D93'
   ORDER BY NAME, DEPT, MGR

¼ø¼­È­¿¡ ´ëÇÑ ¿ä±¸»çÇ×À» Àý´ÜÇϱâ À§ÇÏ¿© °íÀ¯ »öÀÎÀÌ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°ÀÌ »öÀÎ Á¤ÀÇ¿Í ORDER BYÀýÀÌ »ç¿ëµÈ °æ¿ì

   UNIQUE INDEX IX0:  PROJNO  ASC
   SELECT PROJNO, PROJNAME, DEPTNO
      FROM PROJECT
   ORDER BY PROJNO, PROJNAME

IXO »öÀÎÀÌ PROJNO°¡ °íÀ¯ÇÔÀ» º¸ÀåÇϰí ÀÖÀ¸¹Ç·Î, PROJNAME Ä÷³¿¡ ´ëÇÑ Ãß°¡ ¼ø¼­È­ ÀÛ¾÷Àº ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ °íÀ¯¼ºÀº °¢°¢ÀÇ PROJNO °ª¿¡ ´ëÇÏ¿© ´Ü ÇϳªÀÇ PROJNAMEÀÌ ÀÖÀ½À» º¸ÀåÇÏ´Â °ÍÀÔ´Ï´Ù.

»öÀÎ Àü¿ë ¾×¼¼½º

ÀϺΠ°æ¿ì¿¡´Â, ÇÊ¿äÇÑ ¸ðµç µ¥ÀÌÅ͸¦ Å×ÀÌºí¿¡ ¾×¼¼½ºÇÏÁö ¾Ê°í »öÀÎÀ¸·ÎºÎÅÍ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ »öÀÎ Àü¿ë ¾×¼¼½º¶ó°í ÇÕ´Ï´Ù.

»öÀÎ Àü¿ë ¾×¼¼½º¸¦ ¼³¸íÇϱâ À§ÇØ, ´ÙÀ½°ú °°Àº Á¤ÀǸ¦ °í·ÁÇØ º¸½Ê½Ã¿À.

   INDEX IX1:  NAME    ASC,
               DEPT    ASC,
               MGR     DESC,
               SALARY  DESC,
               YEARS   ASC

´ÙÀ½ Á¶È¸´Â ±âº» Å×À̺íÀº ÀÐÁö ¾Ê°í »öÀθ¸ ¾×¼¼½ºÇÏ¿© ÃæÁ·µÉ ¼ö ÀÖ½À´Ï´Ù.

   SELECT NAME, DEPT, MGR, SALARY
     FROM EMPLOYEE
    WHERE NAME = 'SMITH'

´Ù¸¥ °æ¿ì¿¡´Â, »öÀο¡ ¾ø´Â Ä÷³ÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ä÷³¿¡ ´ëÇÑ µ¥ÀÌÅ͸¦ ±¸Çϱâ À§Çؼ­´Â ±âº» Å×À̺íÀÇ ÇàÀ» Àоî¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, IX1 »öÀÎÀÌ Á¦°øµÉ ¶§, ´ÙÀ½ Á¶È¸´Â PHONENO ¹× HIREDATE Ä÷³ µ¥ÀÌÅ͸¦ ¾ò±â À§ÇØ ±âº» Å×ÀÌºí¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù.

   SELECT NAME, DEPT, MGR, SALARY, PHONENO, HIREDATE
     FROM EMPLOYEE
    WHERE NAME = 'SMITH'

Æ÷ÇÔ Ä÷³ÀÌ ÀÖ´Â °íÀ¯ »öÀÎÀ» ÀÛ¼ºÇϸé, ÀüÀûÀ¸·Î »öÀο¡ ±âÃÊÇÑ ¾×¼¼½ºÀÇ ¼ö¸¦ Áõ°¡½ÃÄÑ µ¥ÀÌÅÍ °Ë»ö ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

Æ÷ÇÔ Ä÷³ÀÇ »ç¿ëÀ» ¼³¸íÇϱâ À§ÇØ ´ÙÀ½ »öÀÎ Á¤ÀǸ¦ °í·ÁÇØ º¸½Ê½Ã¿À.

   CREATE UNIQUE INDEX IX1 ON EMPLOYEE
      (NAME ASC)
       INCLUDE (DEPT, MGR, SALARY, YEARS)

ÀÌ´Â NAME Ä÷³ÀÇ °íÀ¯¼ºÀ» °­¿äÇÏ´Â ¹Ý¸é DEPT, MGR, SALARY ¹× YEARS Ä÷³¿¡ ´ëÇÑ µ¥ÀÌÅ͸¦ ÀúÀåÇϰí À¯Áöº¸¼öÇÏ´Â °íÀ¯ »öÀÎÀ» ÀÛ¼ºÇÕ´Ï´Ù.

´ÙÀ½ Á¶È¸´Â ±âº» Å×À̺íÀº ÀÐÁö ¾Ê°í »öÀθ¸ ¾×¼¼½ºÇÏ¿© ÃæÁ·µÉ ¼ö ÀÖ½À´Ï´Ù.

   SELECT NAME, DEPT, MGR, SALARY
     FROM EMPLOYEE
      WHERE NAME='SMITH'

´ÙÁß »öÀÎ ¾×¼¼½º

À§ÀÇ ¸ðµç ¿¹¿¡¼­´Â °á°ú¸¦ »êÃâÇÏ´Â µ¥ ÇϳªÀÇ »öÀÎ ½ºÄµÀÌ ¼öÇàµÇ¾ú½À´Ï´Ù. WHEREÀýÀÇ ¼ú¾î¸¦ ÃæÁ·½Ã۱â À§ÇØ, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ´ÙÁß »öÀÎÀ» ½ºÄµÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº µÎ °³ÀÇ »öÀÎ Á¤Àǰ¡ Á¸ÀçÇÏ´Â °æ¿ì,

   INDEX IX2:  DEPT    ASC
   INDEX IX3:  JOB     ASC,
               YEARS   ASC

´ÙÀ½ ¼ú¾î´Â ÀÌµé µÎ »öÀÎÀ» »ç¿ëÇÏ¿© ÇØ°áµÉ ¼ö ÀÖ½À´Ï´Ù.

   WHERE DEPT = :hv1
     OR (JOB   = :hv2
     AND YEARS >= :hv3)

ÀÌ ¿¹¿¡¼­, ½ºÄ³´× »öÀÎ IX2´Â DEPT = :hv1 ¼ú¾î¸¦ ÃæÁ·½ÃŰ´Â ID(RID) Çà ¸ñ·ÏÀ» »ý¼ºÇÕ´Ï´Ù. ½ºÄ³´× »öÀÎ IX3Àº JOB = :hv2 AND YEARS >= :hv3 ¼ú¾î¸¦ ÃæÁ·½ÃŰ´Â RID ¸ñ·ÏÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ·¯ÇÑ µÎ Á¾·ùÀÇ RID ¸ñ·ÏÀÌ Å×ÀÌºí¿¡ ¾×¼¼½ºÇϱâ Àü¿¡ °áÇյǾî, Áߺ¹µÇ´Â °ÍÀÌ Á¦°ÅµË´Ï´Ù. À̸¦ »öÀÎ ORingÀ̶ó°í ÇÕ´Ï´Ù.

»öÀÎ ORingÀº ¾Æ·¡ÀÇ ¿¹¿¡¼­Ã³·³ IN Ç¥Çö½ÄÀ» »ç¿ëÇÏ´Â ¼ú¾îÀÇ °æ¿ì¿¡µµ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

   WHERE DEPT IN (:hv1, :hv2, :hv3)

»öÀÎ ORingÀÇ ¸ñÀûÀº Áߺ¹µÇ´Â RID¸¦ ¾ø¾Ö±â À§Çؼ­ÀÔ´Ï´Ù. ±×·¯³ª, »öÀÎ ANDingÀÇ ¸ñÀûÀº °øÅë RID¸¦ ã´Â °ÍÀÔ´Ï´Ù. »öÀÎ ANDingÀº °°Àº Å×ÀÌºí ³»ºÎÀÇ ÇØ´çÇÏ´Â Ä÷³¿¡ ÀÖ´Â ´ÙÁß »öÀÎÀÌ ÀÖ´Â ÀÀ¿ëÇÁ·Î±×·¥°ú ¹è¼ö "and" ¼ú¾î¸¦ »ç¿ëÇÏ´Â Á¶È¸°¡ ÇØ´ç Å×ÀÌºí¿¡ ´ëÇØ ¼öÇàµÇ´Â ÀÀ¿ëÇÁ·Î±×·¥°ú ÇÔ²² ¹ß»ýÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Á¶È¸¿¡¼­ °¢ »öÀÎ Ä÷³¿¡ ´ëÇÑ ´ÙÁß »öÀÎ °Ë»öÀº ºñÆ®¸ÊÀ» ÀÛ¼ºÇϱâ À§ÇØ ÇØ½³µÇ´Â °ªÀ» »êÃâÇÕ´Ï´Ù. µÎ¹øÂ° ºñÆ®¸ÊÀº ÃÖÁ¾ µ¥ÀÌÅÍ ¼¼Æ®¸¦ ÀÛ¼ºÇϵµ·Ï ºÒ·¯¿Â ±ÔÁ¤ ÇàÀ» »ý¼ºÇϱâ À§ÇØ, ù¹øÂ° ºñÆ®¸ÊÀ» °Ë»çÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº µÎ °³ÀÇ »öÀÎ Á¤Àǰ¡ Á¸ÀçÇÏ´Â °æ¿ì,

   INDEX IX4: SALARY   ASC
   INDEX IX5: COMM     ASC

´ÙÀ½ ¼ú¾î´Â ÀÌµé µÎ »öÀÎÀ» »ç¿ëÇÏ¿© ÇØ°áµÉ ¼ö ÀÖ½À´Ï´Ù.

   WHERE SALARY BETWEEN 20000 AND 30000
      AND COMM BETWEEN 1000 AND 3000

ÀÌ ¿¹¿¡¼­, »öÀÎ IX4¸¦ ½ºÄµÇϸé SALARY BETWEEN 20000 AND 30000 ¼ú¾î¸¦ ÃæÁ·½ÃŰ´Â ºñÆ®¸Ê »öÀÎÀ» »ý¼ºÇÕ´Ï´Ù. IX5¸¦ ½ºÄµÇϰí IX4¿ë ºñÆ®¸ÊÀ» Á¶»çÇϸé ÀÌ µÎ ¼ú¾î¸¦ ÃæÁ·½ÃŰ´Â ±ÔÁ¤ RID ¸ñ·ÏÀÌ »ý±é´Ï´Ù. ¶ÇÇÑ "µ¿Àû ºñÆ®¸Ê ANDing"À¸·Îµµ ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. Å×ÀÌºí¿¡ ±âº» Çà¼ö(cardinality)°¡ ÃæºÐÈ÷ ÀÖÀ¸¸ç, Ä÷³ÀÌ ±ÔÁ¤ ¹üÀ§¿¡¼­ ÃæºÐÇÑ °ª ¶Ç´Â °°Àº ¼ú¾î°¡ »ç¿ëµÇ´Â °æ¿ì ÃæºÐÇÑ Áߺ¹ÀÌ ÀÖ°Ô µÇ¸é, ÀÌ·¯ÇÑ °æ¿ì¿¡¸¸ ¹ß»ýÇÕ´Ï´Ù.
ÁÖ:¸ðµç ´ÜÀÏ Å×À̺íÀÇ ¾×¼¼½º¿¡¼­, DB2´Â »öÀÎ ANDing°ú »öÀÎ ORingÀ» °áÇÕÇÏÁö ¾Ê½À´Ï´Ù.

Ŭ·¯½ºÅÍµÈ »öÀÎ

¾×¼¼½º Ç÷£À» ¼±ÅÃÇÒ ¶§, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº µð½ºÅ©·ÎºÎÅÍ ¹öÆÛ Ç®·Î ÆäÀÌÁö¸¦ °¡Á®¿À´Â ÀÔÃâ·Â ºñ¿ëÀ» °í·ÁÇÕ´Ï´Ù. °è»ê °úÁ¤À» ÅëÇØ ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Á¶È¸¸¦ ÃæÁ·½ÃŰ´Â µ¥ ÇÊ¿äÇÑ ÀÔÃâ·Â Ƚ¼ö¸¦ ÃßÁ¤ÇÕ´Ï´Ù. ÀÌ¹Ì ¹öÆÛ Ç®¿¡ µé¾î ÀÖ´Â ÆäÀÌÁöÀÇ ÇàÀ» Àд µ¥´Â ÀÔÃâ·ÂÀÌ Ãß°¡·Î ÇÊ¿äÇÏÁö ¾Ê±â ¶§¹®¿¡, ÀÌ·¯ÇÑ ÃßÁ¤¿¡´Â ¹öÆÛÇ® »ç¿ë¿¡ ´ëÇÑ ¿¹»óÄ¡µµ Æ÷ÇԵ˴ϴÙ.

»öÀÎ ½ºÄµÀ» À§ÇÏ¿© ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ½Ã½ºÅÛ Ä«Å»·Î±× Å×À̺í(SYSCAT.INDEXES)ÀÇ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿©, µ¥ÀÌÅÍ ÆäÀÌÁö¸¦ ÀÐ¾î ¹öÆÛ Ç®¿¡ ³Ö´Â ÀÔÃâ·Â ºñ¿ëÀÇ »êÃâÀ» µµ¿ÍÁÝ´Ï´Ù. ´ÙÀ½°ú °°Àº SYSCAT.INDEXES Å×À̺íÀÇ Ä÷³ÀÌ »ç¿ëµË´Ï´Ù.

Åë°è¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¸é, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ »öÀο¡ ´ëÇÑ µ¥ÀÌÅÍÀÇ À߸øµÈ Ŭ·¯½ºÅ͸µÀ¸·Î °£ÁÖÇÏ°í ±âº»°ªÀ» »ç¿ëÇÕ´Ï´Ù. ±×¸®°í ½Ã½ºÅÛ Ä«Å»·Î±× Åë°è ¹× RUNSTATS À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¿© Åë°è ¼öÁý¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Å×À̺í À籸¼º ÀÛ¾÷Áß¿¡ ÇàÀ» Ŭ·¯½ºÅ͸µÇÏ°í »ðÀÔ Ã³¸®Áß¿¡ ÀÌ·¯ÇÑ Æ¯¼ºÀ» º¸Á¸Çϱâ À§ÇØ »ç¿ëµÉ Ŭ·¯½ºÅ͸µÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù(Å×À̺í ÀçÀνĿ¡ °üÇÑ Á¤º¸´Â īŻ·Î±× ¹× »ç¿ëÀÚ Å×À̺í À籸¼º¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ). ÀÌÈÄÀÇ °»½Å ¹× »ðÀÔ ÀÛ¾÷À¸·Î ÀÌ·¯ÇÑ »öÀÎÀÇ Å¬·¯½ºÅ͸µÀ» ÁÙÀÏ ¼öµµ ÀÖÀ¸¹Ç·Î(RUNSTATS·Î ¼öÁýµÈ Åë°è¿¡ ÀÇÇØ ¼öÁýµÈ), Á¤±âÀûÀ¸·Î Å×À̺íÀ» À籸¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ºñÈֹ߼º µ¥ÀÌÅͺ£À̽º¿¡¼­ÀÇ À籸¼º Ƚ¼ö¸¦ ÁÙÀÌ·Á¸é, Å×À̺íÀ» º¯°æÇÒ ¶§ PCTFREE ¸Å°³º¯¼ö¸¦ »ç¿ëÇϽʽÿÀ. ±×·¯¸é, ±âÁ¸ µ¥ÀÌÅÍ¿¡ ´ëÇØ Ŭ·¯½ºÅ͸µµÇµµ·Ï Ãß°¡·Î »ðÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

µ¥ÀÌÅÍÀÇ Å¬·¯½ºÅ͸µÀº ¼º´É¿¡ Å« ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖÀ¸¹Ç·Î, Å×ÀÌºí¿¡ ´ëÇÑ »öÀÎ Áß Çϳª´Â 100ÆÛ¼¾Æ®¿¡ °¡±î¿î Ŭ·¯½ºÅ͸µ ºñÀ²À» À¯ÁöÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.

ÀϹÝÀûÀ¸·Î, ÇϳªÀÇ »öÀθ¸ ¹éÆÛ¼¾Æ® Ŭ·¯½ºÅ͸µµÉ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ۰¡ Ŭ·¯½ºÅ͸µ »öÀÎÀÇ Å° ¼öÆÛ¼¼Æ®ÀÎ °æ¿ì ¶Ç´Â µÎ »öÀÎÀÇ Å° Ä÷³°£ÀÇ facto »ó°üÀÌ ÀÖ´Â °æ¿ì´Â Á¦¿ÜµË´Ï´Ù.

Ŭ·¯½ºÅ͸µ »öÀÎ »ç¿ë¿¡ ´ëÇÑ ¼º´É»óÀÇ ÀÌÀ¯¿¡ ´ëÇØ¼­´Â »öÀÎ °ü¸®½Ã ¼º´É¿¡ °ü·ÃµÈ Ãß°¡ Á¤º¸¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. Ŭ·¯½ºÅ͸µ »öÀÎÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â SQL ÂüÁ¶¼­, CREATE INDEX¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸ñ·Ï ÇÁ¸®ÆäÄ¡¸¦ ÅëÇÑ ÆäÀÌÁö Àбâ Ŭ·¯½ºÅ͸µ ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ »öÀÎÀ» »ç¿ëÇÏ¿© Çà¿¡ ¾×¼¼½ºÇÒ °æ¿ì, »öÀο¡¼­ ¸ðµç RID(Çà ½Äº°ÀÚ)°¡ ÃëµæµÉ ¶§±îÁö µ¥ÀÌÅÍ ÆäÀÌÁö Àб⸦ ¿¬±âÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¾Õ¼­ Á¤ÀÇµÈ »öÀÎ IX1ÀÌ ÀÖÀ» °æ¿ì,

   INDEX IX1:  NAME    ASC,
               DEPT    ASC,
               MGR     DESC,
               SALARY  DESC,
               YEARS   ASC

±×¸®°í ´ÙÀ½°ú °°Àº Ž»ö ±âÁØÀÌ ÀÖÀ» ¶§,

   WHERE NAME BETWEEN 'A' and 'I'

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº °Ë»öÇÒ Çà(¹× µ¥ÀÌÅÍ ÆäÀÌÁö)À» °áÁ¤Çϱâ À§ÇØ IX1¿¡ ´ëÇÑ »öÀÎ ½ºÄµÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅͰ¡ ÀÌ »öÀο¡ ÀǰÅÇÏ¿© Ŭ·¯½ºÅ͵Ǿî ÀÖÁö ¾ÊÀº °æ¿ì, ¸ñ·Ï ÇÁ¸®ÆäÄ¡´Â »öÀÎ ½ºÄµ¿¡¼­ ¾ò¾îÁø RID ¸ñ·ÏÀ» Á¤·ÄÇÏ´Â °úÁ¤À» Æ÷ÇÔÇÕ´Ï´Ù. ¸ñ·Ï ÇÁ¸®ÆäÄ¡ÀÇ ÀÌÇØ¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

»öÀÎ ÆäÀÌÁö ÇÁ¸®ÆäÄ¡

ÀûÀýÇÒ °æ¿ì, µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ »öÀÎ ÆäÀÌÁö·ÎÀÇ ¼øÂ÷ ¾×¼¼½º¸¦ °ËÃâÇϰí ÇÁ¸®ÆäÄ¡ ¿äûÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ´Â »öÀÎÀÇ Áß¿äÇÑ ºÎºÐ¿¡ ¾×¼¼½ºÇÏ´Â ¼±ÅÃÀû »öÀÎ ½ºÄµ°ú ºñ¼±ÅÃÀû »öÀÎ ½ºÄµ¿¡ ´ëÇÑ °æ°ú ½Ã°£À» ÁÙÀÔ´Ï´Ù.

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº, DENSITY ¹× SEQUENTIAL_PAGES¿Í °°Àº »öÀÎ Åë°è, »öÀÎÀÌ »óÁÖÇÏ´Â Å×ÀÌºí °ø°£ÀÇ Æ¯¼º, ¼ú¾îÀÇ ÇѰ踦 Á¦ÇÑÇÏ´Â ¹üÀ§ ¿µÇâÀ» »ç¿ëÇÏ¿©, ¹ß»ýÇÒ »öÀÎ ÆäÀÌÁö ÇÁ¸®ÆäÄ¡ ¾çÀ» ÃßÁ¤ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÃßÁ¤Ä¡´Â ƯÁ¤ »öÀÎÀ» »ç¿ëÇϱâ À§ÇÑ Àü¹ÝÀûÀÎ ºñ¿ë ÃßÁ¤ÀÇ ¿ä¼Ò°¡ µË´Ï´Ù.

ÀÚ¼¼È÷ ¾Ë·Á¸é ¼øÂ÷Àû ÇÁ¸®ÆäÄ¡ÀÇ ÀÌÇØ¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

°ü°è ½ºÄµ ´ë »öÀÎ ½ºÄµ

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Á¶È¸¿¡ »öÀÎÀÌ »ç¿ëµÉ ¼ö ¾ø°Å³ª »öÀÎ ½ºÄµ¿¡ µå´Â ºñ¿ëÀÌ ´õ Å©´Ù°í ÆÇ´ÜµÉ °æ¿ì, °ü°è ½ºÄµÀ» ¼±ÅÃÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº °æ¿ì, »öÀÎ ½ºÄµÇÏ´Â µ¥ µû¸£´Â ºñ¿ëÀÌ ´õ Å®´Ï´Ù.

¾×¼¼½º Ç÷£ÀÌ °ü°è ½ºÄµÀ» »ç¿ëÇÒÁö »öÀÎ ½ºÄµÀ» »ç¿ëÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÏ·Á¸é, SQL Explain ±â´ÉÀ» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. SQL Explain ±â´É¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

¼ú¾î¿¡ °ü·ÃµÈ ¿ë¾î

»ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥Àº ¼ú¾î¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÇàÀ¸·Î ¹üÀ§¸¦ Á¦ÇÑÇϸ鼭, SQL¹®À» »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡¼­ ÀÏ·ÃÀÇ ÇàÀ» °Ë»öÇϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ SQL¹®ÀÇ Æò°¡ ¹æ¹ýÀ» °áÁ¤ÇÒ ¶§, °¢ ¼ú¾î´Â ´ÙÀ½ÀÇ ³× °¡Áö ¹üÁÖ Áß Çϳª¿¡ ¼ÓÇÏ°Ô µË´Ï´Ù. ¹üÁÖ´Â Æò°¡ ÇÁ·Î¼¼½ºÁß¿¡ ¼ú¾î°¡ ¾î¶»°Ô, ¾ðÁ¦ »ç¿ëµÇ´ÂÁö¿¡ µû¶ó °áÁ¤µË´Ï´Ù. ÀÌ·¯ÇÑ ¹üÁÖ°¡ ¼º´ÉÀÌ °¡Àå ¶Ù¾î³­ °ÍºÎÅÍ ³ª»Û °ÍÀÇ ¼ø¼­·Î ¾Æ·¡¿¡ Ç¥½ÃµÇ¾î ÀÖ½À´Ï´Ù.

  1. ¹üÀ§ ±¸ºÐ ¼ú¾î
  2. »öÀÎ SARGable ¼ú¾î
  3. µ¥ÀÌÅÍ SARGable ¼ú¾î
  4. À׿© ¼ú¾î

SARGableÀº Ž»ö Àμö(search argument)·Î »ç¿ëµÉ ¼ö ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

¼ú¾î »ç¿ë ¿ä¾à¿¡¼­´Â ´Ù¾çÇÑ ¼ú¾î ¹üÁÖÀÇ ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â Ư¼ºÀ» ºñ±³ÇÏ¿© º¸¿©ÁÝ´Ï´Ù.

¹üÀ§ ±¸ºÐ ¼ú¾î ¹× »öÀÎ SARGable ¼ú¾î

¹üÀ§ ÁöÁ¤ ¼ú¾î´Â »öÀÎ ½ºÄµÀ» ¹­¾îÁÖ´Â µ¥ »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº »öÀΠŽ»ö¿¡ ´ëÇÑ ½ÃÀÛ ¹× Á¾·á Ű °ªÀ» Á¦°øÇÕ´Ï´Ù. »öÀÎ SARGable ¼ú¾î´Â Ž»öÀ» ¹­¾îÁÖ´Â ¿ªÇÒÀ» ÇÏ´Â µ¥ »ç¿ëµÇÁö´Â ¾ÊÁö¸¸, ¼ú¾î¿Í °ü·ÃµÈ Ä÷³ÀÌ »öÀΠŰÀÇ ÀϺÎÀ̱⠶§¹®¿¡ »öÀÎÀ¸·ÎºÎÅÍ Æò°¡µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌÀü¿¡ Á¤ÀÇµÈ »öÀÎ IX1(»öÀÎ ½ºÄµ °³³ä ºÎºÐ)°ú ´ÙÀ½ÀÇ WHEREÀýÀÌ ÀÖÀ» ¶§,

   WHERE  NAME  = :hv1
    AND   DEPT  = :hv2
    AND   YEARS > :hv5

óÀ½ µÎ ¼ú¾î(NAME = :hv1, DEPT = :hv2)´Â ¹üÀ§ ±¸ºÐ ¼ú¾îÀÎ ¹Ý¸é, YEARS > :hv5´Â »öÀÎ SARGable ¼ú¾îÀÔ´Ï´Ù.

µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº ±âº» Å×À̺íÀ» Àд °Íº¸´Ù ÀÌ·¯ÇÑ ¼ú¾î¸¦ Æò°¡ÇÏ´Â µ¥ »öÀÎ µ¥ÀÌÅ͸¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ »öÀÎ SARGable ¼ú¾î´Â Å×À̺í·ÎºÎÅÍ Àоî¾ß ÇÒ ÇàÀÇ ¼¼Æ®¸¦ ÁÙÀÓÀ¸·Î½á, ¾×¼¼½ºµÇ´Â µ¥ÀÌÅÍ ÆäÀÌÁöÀÇ ¼ö¸¦ °¨¼Ò½Ãŵ´Ï´Ù. ÀÌ·¯ÇÑ À¯ÇüÀÇ ¼ú¾î´Â ¾×¼¼½ºµÇ´Â »öÀÎ ÆäÀÌÁöÀÇ ¼ö¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.

µ¥ÀÌÅÍ SARGable ¼ú¾î

»öÀÎ °ü¸® ÇÁ·Î±×·¥¿¡ ÀÇÇØ¼­´Â Æò°¡µÉ ¼ö ¾øÁö¸¸ µ¥ÀÌÅÍ °ü¸® ¼­ºñ½º¿¡ ÀÇÇØ¼­´Â Æò°¡µÉ ¼ö ÀÖ´Â ¼ú¾î¸¦ µ¥ÀÌÅÍ SARGable ¼ú¾î¶ó°í ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÀÌ·¯ÇÑ ¼ú¾î´Â ±âº» Å×À̺íÀÇ ÇàÀ» °³º°ÀûÀ¸·Î ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù. ÇÊ¿äÇÑ °æ¿ì, µ¥ÀÌÅÍ °ü¸® ¼­ºñ½º´Â »öÀο¡¼­ ¾òÀ» ¼ö ¾ø´Â, SELECT ¸ñ·ÏÀÇ Ä÷³À» ÃæÁ·½Ã۱â À§ÇÑ ´Ù¸¥ °Í»Ó ¾Æ´Ï¶ó ¼ú¾î¸¦ Æò°¡ÇÏ´Â µ¥ ÇÊ¿äÇÑ Ä÷³µµ °Ë»öÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, ÇϳªÀÇ »öÀÎÀÌ PROJECT Å×ÀÌºí¿¡ Á¤ÀǵǾî ÀÖ´Â °æ¿ì,

    INDEX IX0:  PROJNO ASC

±×¸®°í ´ÙÀ½°ú °°Àº Á¶È¸¸¦ ÇØ¾ß ÇÏ´Â °æ¿ì, DEPTNO = 'D11' ¼ú¾î´Â µ¥ÀÌÅÍ SARGble·Î °£Áֵ˴ϴÙ.

    SELECT PROJNO, PROJNAME, RESPEMP
      FROM PROJECT
     WHERE DEPTNO = 'D11'
     ORDER BY PROJNO

À׿© ¼ú¾î

À׿© ¼ú¾î´Â ÀϹÝÀûÀ¸·Î ±âº» Å×À̺í·ÎÀÇ ´Ü¼øÇÑ ¾×¼¼½º ÀÌ»óÀÇ ÀÔÃâ·ÂÀ» ¿ä±¸ÇÏ´Â ¼ú¾î¸¦ ¸»ÇÕ´Ï´Ù. À׿© ¼ú¾îÀÇ ¿¹¿¡´Â »ó°ü ºÎ¼Ó Á¶È¸¸¦ »ç¿ëÇÏ´Â °Í, ¾çÀû ºÎ¼Ó Á¶È¸(ANY, ALL, SOME, IN µîÀ» »ç¿ëÇÏ´Â ºÎ¼Ó Á¶È¸)¸¦ »ç¿ëÇÏ´Â °Í ¶Ç´Â (Å×À̺í°ú ´Ù¸¥ ÆÄÀÏ¿¡ ÀúÀåµÇ¾î ÀÖ´Â) LONG VARCHAR ¶Ç´Â LOB µ¥ÀÌÅ͸¦ Àд ¼ú¾î µîÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¼ú¾î´Â °ü°èÇü µ¥ÀÌÅÍ ¼­ºñ½º¿¡ ÀÇÇØ Æò°¡µË´Ï´Ù.

¶§¶§·Î »öÀο¡¸¸ Àû¿ëµÈ ¼ú¾î´Â µ¥ÀÌÅÍ ÆäÀÌÁö°¡ ¾×¼¼½ºµÉ ¶§ ÀçÀû¿ëµÇ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, »öÀÎ ORing ¶Ç´Â »öÀÎ ANDingÀ» »ç¿ëÇÏ´Â ¾×¼¼½º Ç÷£Àº(´ÙÁß »öÀÎ ¾×¼¼½º ÂüÁ¶) µ¥ÀÌÅÍ ÆäÀÌÁö°¡ ¾×¼¼½ºµÉ ¶§ Ç×»ó À׿© ¼ú¾î·Î¼­ ¼ú¾î¸¦ ÀçÀû¿ëÇÕ´Ï´Ù.

¼ú¾î »ç¿ë ¿ä¾à

Á¶È¸¿¡ À־ ¼ú¾î¸¦ »ç¿ëÇÔÀ¸·Î½á, Á¶È¸¸¦ ÃæÁ·½Ã۱â À§ÇØ Àоî¾ß ÇÏ´Â µ¥ÀÌÅÍÀÇ ¾çÀ» °¨¼Ò½Ãų ¼ö ÀÖ½À´Ï´Ù. ¼­·Î ´Ù¸¥ ¹üÁÖÀÇ ¼ú¾î´Â Á¶È¸ÀÇ ¼º´É¿¡ ´Ù¸¥ Á¤µµÀÇ ¿µÇâÀ» ¹ÌÄ¡¸ç, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ÀÌ·¯ÇÑ ¿µÇâÀ» °í·ÁÇÕ´Ï´Ù. ´ÙÀ½ Ç¥¿¡¼­´Â ¼­·Î ´Ù¸¥ Á¾·ùÀÇ ¼ú¾îÀÇ ¼øÀ§ ¹× À̵éÀÌ °¢°¢ ¾î¶»°Ô ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¡´ÂÁö¸¦ º¸¿©ÁÝ´Ï´Ù.

Ç¥ 49. ¼ú¾îÀÇ À¯Çüº° Ư¡ ¿ä¾à
Ư¼º ¼ú¾î À¯Çü
¹üÀ§ ÁöÁ¤ »öÀÎ SARGable µ¥ÀÌÅÍ SARGable »óÁÖ
»öÀÎ ÀÔÃâ·Â °¨¼Ò ¿¹ ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À
µ¥ÀÌÅÍ ÆäÀÌÁö ÀÔÃâ·Â °¨¼Ò ¿¹ ¿¹ ¾Æ´Ï¿À ¾Æ´Ï¿À
³»ºÎÀûÀ¸·Î Àü´ÞµÈ ÇàÀÇ ¼ö °¨¼Ò ¿¹ ¿¹ ¿¹ ¾Æ´Ï¿À
±ÔÁ¤ ÇàÀÇ ¼ö °¨¼Ò ¿¹ ¿¹ ¿¹ ¿¹

Á¶ÀÎ °³³ä

Á¶ÀÎÀº ¾î¶² Å×À̺íÀÇ ÇàÀÌ Çϳª ÀÌ»óÀÇ ´Ù¸¥ Å×À̺íÀÇ Çà°ú º´ÇյǴ °ÍÀ» ¸»ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡¿Í °°ÀÌ µÎ °³ÀÇ Å×À̺íÀÌ ÀÖ´Â °æ¿ì,

         TABLE1                     TABLE2
    -----------------          -----------------
     PROJ     PROJ_ID          PROJ_ID     NAME
    ------    -------          -------    ------
      A          1                1        Sam
      B          2                3        Joe
      C          3                4        Mary
      D          4                1        Sue
                                  2        Mike

ID Ä÷³ÀÌ ¶È°°Àº Á¶ÀÎ Å×À̺í 1°ú Å×À̺í 2´Â ´ÙÀ½ SQL¹®¿¡ ÀÇÇØ ³ªÅ¸³³´Ï´Ù.

   SELECT PROJ, x.PROJ_ID, NAME
     FROM TABLE1 x, TABLE2 y
     WHERE x.PROJ_ID = y.PROJ_ID

±×¸®°í, À̰ÍÀº ´ÙÀ½°ú °°Àº °á°ú ÇàÀ» »êÃâÇÕ´Ï´Ù.

     PROJ     PROJ_ID     NAME
    ------    -------    ------
      A          1        Sam
      A          1        Sue
      B          2        Mike
      C          3        Joe
      D          4        Mary

µÎ °³ÀÇ Å×À̺íÀ» Á¶ÀÎÇÒ ¶§, ÇϳªÀÇ Å×À̺íÀº ¿ÜºÎ Å×À̺í·Î, ´Ù¸¥ Çϳª´Â ³»ºÎ Å×À̺í·Î ¼±Åõ˴ϴÙ. ¿ÜºÎ Å×À̺íÀº ¸ÕÀú ¾×¼¼½ºµÇ°í, ´Ü Çѹø ½ºÄµµË´Ï´Ù. ³»ºÎ Å×À̺íÀÌ ¿©·¯ ¹ø ½ºÄµµÇ´ÂÁöÀÇ ¿©ºÎ´Â Á¶ÀÎÀÇ À¯Çü°ú ¾î¶² »öÀÎÀÌ Á¸ÀçÇÏ´ÂÁö¿¡ µû¶ó °áÁ¤µË´Ï´Ù. Á¶È¸½Ã µÎ °³ÀÇ Å×À̺íÀ» Á¶ÀÎÇϵç, µÎ °³ ÀÌ»óÀÇ Å×À̺íÀ» Á¶ÀÎÇϵçÁö¿¡ »ó°ü¾øÀÌ, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ÇÑ ¹ø¿¡ µÎ °³ÀÇ Å×ÀÌºí¸¸À» Á¶ÀÎÇÕ´Ï´Ù. ÇÊ¿äÇÑ °æ¿ì, ÀÓ½ÃÀÇ Áß°£ °á°ú Å×À̺íÀÌ »ý¼ºµË´Ï´Ù.

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº (º´ÇÕ Á¶Àο¡ Á¤ÀǵÈ) Á¶ÀÎ ¼ú¾îÀÇ Á¸Àç ¿©ºÎ ¹× Å×À̺í°ú »öÀÎ Åë°è¿¡ ÀÇÇØ °áÁ¤µÇ´Â ´Ù¾çÇÑ ºñ¿ë µî¿¡ µû¶ó, µÎ Á¾·ùÀÇ ¹æ¹ý Áß Çϳª¸¦ ¼±ÅÃÇÕ´Ï´Ù.

Áßø ·çÇÁ Á¶ÀÎ

Áßø ·çÇÁ Á¶ÀÎÀº ´ÙÀ½ÀÇ µÎ ¹æ¹ý Áß ÇÑ °¡Áö¿¡ ÀÇÇØ ¼öÇàµË´Ï´Ù.

  1. °¢°¢ÀÇ ¾×¼¼½ºµÈ ¿ÜºÎ Å×À̺íÀÇ Çà¿¡ ´ëÇÏ¿© ³»ºÎ Å×À̺íÀ» ½ºÄµÇÔÀ¸·Î½á ¼öÇà

    ¿¹¸¦ µé¾î, Å×À̺í T1 ¹× T2ÀÇ Ä÷³ A°¡ ´ÙÀ½°ú °°Àº °ªÀ» °¡Áö°í ÀÖ´Â °æ¿ì,

        ¿ÜºÎ Å×À̺í T1: Ä÷³ A        ³»ºÎ Å×À̺í T2: Ä÷³ A
        ------------------------      ------------------------
                  2                             3
                  3                             2
                  3                             2
                                                3
                                                1
    

    Áßø ·çÇÁ¸¦ ¼öÇàÇÏ´Â ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.

  2. °¢°¢ÀÇ ¾×¼¼½ºµÈ ¿ÜºÎ Å×À̺íÀÇ Çà¿¡ ´ëÇÏ¿© ³»ºÎ Å×À̺í»óÀÇ »öÀÎÀ» ãÀ½À¸·Î½á ¼öÇàµË´Ï´Ù.

    ´ÙÀ½ Çü½ÄÀÇ ¼ú¾î°¡ Á¸ÀçÇÒ °æ¿ì, ÁöÁ¤µÈ ¼ú¾î¿¡ ´ëÇØ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

       expr(outer_table.column)  relop  inner_table.column
    

    ¿©±â¼­, relop´Â °ü°è ¿¬»êÀÚ(¿¹: =, >, >=, < ¶Ç´Â <=)À̸ç exprÀº ¿ÜºÎ Å×ÀÌºí¿¡¼­ À¯È¿ÇÑ Ç¥Çö½ÄÀÔ´Ï´Ù. ´ÙÀ½Àº ¿¹ÀÔ´Ï´Ù.

       OUTER.C1 + OUTER.C2 <= INNER.C1
    

    ±×¸®°í

       OUTER.C4 < INNER.C3
    

    ÀÌ ¹æ¹ýÀº ¿ÜºÎ Å×À̺íÀÇ °¢ ¾×¼¼½º¿¡ ´ëÇÏ¿© ³»ºÎ Å×ÀÌºí¿¡¼­ ¾×¼¼½ºµÇ´Â ÇàÀÇ ¼ö¸¦ »ó´çÈ÷ °¨¼Ò½ÃŰ´Â ¹æ¹ýÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù(±×·¯³ª, ÀÌ´Â Á¶ÀÎ ¼ú¾îÀÇ ¼±Åà °¡´É¼º µî°ú °°Àº ¼ö¸¹Àº ¿äÀο¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù).

Áßø ·çÇÁ Á¶ÀÎÀ» Æò°¡ÇÒ ¶§, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Á¶ÀÎÀ» ¼öÇàÇϱâ Àü¿¡ ¿ÜºÎ Å×À̺íÀ» Á¤·ÄÇÒ °ÍÀÎÁöÀÇ ¿©ºÎµµ ¿ª½Ã °áÁ¤ÇÏ°Ô µË´Ï´Ù. Á¶ÀÎ Ä÷³À» ±âÁØÀ¸·Î ¿ÜºÎ Å×À̺íÀ» ¼ø¼­È­ÇÔÀ¸·Î½á, ³»ºÎ Å×ÀÌºí¿¡ ´ëÇÏ¿© µð½ºÅ©·ÎºÎÅÍ ÆäÀÌÁö¸¦ ¾×¼¼½ºÇϱâ À§ÇÑ Àбâ Á¶ÀÛ È½¼ö°¡ ÁÙ¾îµé ¼ö Àִµ¥, ÀÌ´Â ÆäÀÌÁö°¡ ÀÌ¹Ì ¹öÆÛ Ç®¿¡ µé¾î ÀÖÀ» °¡´É¼ºÀÌ ³ô±â ¶§¹®ÀÔ´Ï´Ù. Á¶Àο¡¼­ ³»ºÎ Å×À̺íÀ» ¾×¼¼½ºÇÏ´Â µ¥ Ŭ·¯½ºÅ͸µ ºñÀ²ÀÌ ³ôÀº »öÀÎÀ» »ç¿ëÇÏ´Â °æ¿ì, ¿ÜºÎ Å×À̺íÀÌ Á¤·ÄµÇ¾î ÀÖ´Ù¸é ¾×¼¼½ºµÇ´Â »öÀÎ ÆäÀÌÁöÀÇ ¼ö´Â ÃÖ¼ÒÈ­µÉ ¼ö ÀÖ½À´Ï´Ù.

¶ÇÇÑ, ³ªÁß¿¡ Á¤·ÄÇÏ´Â °ÍÀÌ ´õ Å« ºñ¿ëÀ» ¼Ò¸ðÇÏ°Ô µÉ °ÍÀ̶ó°í ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ ÆÇ´ÜÇÏ°Ô µÇ´Â °æ¿ì, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Á¶ÀÎ Àü¿¡ Á¤·Ä ÀÛ¾÷À» ÇÏ´Â °ÍÀ» ¼±ÅÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù. GROUP BY, DISTINCT, ORDER BY ¶Ç´Â º´ÇÕ Á¶ÀÎÀ» Áö¿øÇÑ ÈÄ¿¡ ÈÄ Á¤·Ä(late sort)ÀÌ ¿ä±¸µÉ ¼öµµ ÀÖ½À´Ï´Ù.

º´ÇÕ Á¶ÀÎ

º´ÇÕ Á¶ÀÎ(º´ÇÕ ½ºÄµ Á¶ÀÎ ¶Ç´Â Á¤·Ä º´ÇÕ Á¶ÀÎÀ̶ó°íµµ ÇÔ)Àº table1.column = table2.column ¾ç½ÄÀÇ ¼ú¾î°¡ ÇÊ¿äÇÕ´Ï´Ù. À̸¦ µîÈ£ Á¶ÀÎ ¼ú¾î¶ó°í ÇÕ´Ï´Ù. º´ÇÕ Á¶Àο¡¼­´Â »öÀÎ ¾×¼¼½º¸¦ ÅëÇØ¼­ ¶Ç´Â Á¤·ÄÀ» ÅëÇÏ¿©, Á¶ÀεǴ Ä÷³¼øÀ¸·Î ¼ø¼­È­µÈ ÀÔ·ÂÀÌ ÇÊ¿äÇÕ´Ï´Ù. º´ÇÕ Á¶ÀÎÀ» »ç¿ëÇϱâ À§Çؼ­´Â Á¶ÀÎ Ä÷³ÀÌ LONG ÇʵåÀÇ Ä÷³À̰ųª ´ëÇü ¿ÀºêÁ§Æ®(LOB) Ä÷³À̾´Â ¾È µË´Ï´Ù.

Á¶ÀÎµÈ Å×À̺íÀº µ¿½Ã¿¡ ½ºÄµµË´Ï´Ù. º´ÇÕ Á¶ÀÎÀÇ ¿ÜºÎ Å×À̺íÀº ´Ü Çѹø ½ºÄµµË´Ï´Ù. ¿ÜºÎ Å×ÀÌºí¿¡ ¹Ýº¹µÇ´Â °ªÀÌ ¾ø´Â °æ¿ì, ³»ºÎ Å×ÀÌºí ¿ª½Ã ´Ü Çѹø¸¸ ½ºÄµµË´Ï´Ù. ¿ÜºÎ Å×ÀÌºí¿¡ ¹Ýº¹µÇ´Â °ªÀÌ ÀÖ´Â °æ¿ì, ³»ºÎ Å×À̺íÀÇ Çà ±×·ìÀÌ ´Ù½Ã °Ë»öµÉ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Å×À̺í T1 ¹× T2ÀÇ Ä÷³ A°¡ ´ÙÀ½°ú °°Àº °ªÀ» °¡Áö°í ÀÖ´Â °æ¿ì,

    ¿ÜºÎ Å×À̺í T1: Ä÷³ A        ³»ºÎ Å×À̺í T2: Ä÷³ A
    ------------------------      ------------------------
              2                             1
              3                             2
              3                             2
                                            3
                                            3

º´ÇÕ Á¶ÀÎÀ» ¼öÇàÇϱâ À§ÇÑ ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.

ÇØ½¬ Á¶ÀÎ

ÇØ½¬ Á¶Àο¡¼­´Â table1.columnX = table2.columnYÀÇ ¾ç½ÄÀ¸·Î µÈ ¼ú¾î°¡ Çϳª ÀÌ»ó ÇÊ¿äÇϰí Ä÷³ À¯ÇüÀº °°½À´Ï´Ù. CHAR À¯ÇüÀÇ Ä÷³¿¡ ´ëÇØ ±æÀÌ´Â °°¾Æ¾ß ÇÕ´Ï´Ù. DECIMAL À¯ÇüÀÇ Ä÷³¿¡ ´ëÇØ Á¤¹Ðµµ¿Í ½ºÄÉÀÏÀº °°¾Æ¾ß ÇÕ´Ï´Ù. Ä÷³ À¯ÇüÀº LONG Çʵå Ä÷³ ¶Ç´Â ´ëÇü ¿ÀºêÁ§Æ®(LOB) Ä÷³ÀÏ ¼ö ¾ø½À´Ï´Ù.

¸ÕÀú, Å×À̺í Çϳª(INNER Å×À̺íÀ̶ó°í ÇÔ)°¡ ½ºÄµµÇ°í ÇàÀº Á¤·Ä Èü ÇÒ´ç¿¡¼­ ÆÄ»ýµÈ ¸Þ¸ð¸® ¹öÆÛ·Î º¹»çµË´Ï´Ù(Á¤·Ä Èü Å©±â(sortheap) µ¥ÀÌÅͺ£À̽º ±¸¼º ¸Å°³º¯¼ö ÂüÁ¶). ¸Þ¸ð¸® ¹öÆÛ´Â Á¶ÀÎ ¼ú¾î(µé)ÀÇ Ä÷³(µé)¿¡¼­ °è»êµÈ "ÇØ½¬ ÄÚµå"¸¦ ±âÃÊ·Î ÆÄƼ¼ÇÀ¸·Î ³ª´©¾îÁý´Ï´Ù. ù¹øÂ° Å×À̺íÀÇ Å©±â°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â Á¤·Ä Èü °ø°£À» ÃʰúÇϸé, ¼±ÅÃµÈ ÆÄƼ¼ÇÀÇ ¹öÆÛ´Â Àӽà Å×ÀÌºí¿¡ ±â·ÏµË´Ï´Ù. INNER Å×À̺íÀ» ¸ðµÎ ó¸®ÇÑ ÈÄ µÎ¹øÂ° Å×À̺í(OUTER Å×À̺íÀ̶ó°í ÇÔ)ÀÌ ½ºÄµµË´Ï´Ù. OUTER Å×À̺íÀÇ ÇàÀº ¸ÕÀú Á¶ÀÎ ¼ú¾î(µé)ÀÇ Ä÷³¿¡¼­ »ý¼ºµÈ "ÇØ½¬ ÄÚµå"¸¦ ºñ±³ÇÏ¿© INNER Å×À̺íÀÇ Çà°ú ´ëÀÀµË´Ï´Ù. ±×·± ´ÙÀ½, OUTER ÇàÀÇ "ÇØ½¬ ÄÚµå"°¡ INNER ÇàÀÇ "ÇØ½¬ ÄÚµå"¿Í ÀÏÄ¡Çϸé, ½ÇÁ¦ Á¶ÀÎ ¼ú¾î Ä÷³ÀÌ ºñ±³µË´Ï´Ù.

Àӽà Å×ÀÌºí¿¡ ±â·ÏµÇÁö ¾ÊÀº ÆÄƼ¼Ç¿¡ ÇØ´çÇÏ´Â OUTER Å×À̺í ÇàÀº Áï½Ã ¸Þ¸ð¸®ÀÇ INNER Å×À̺í Çà°ú ´ëÀÀµË´Ï´Ù. ¶Ç´Â ÇØ´ç INNER Å×ÀÌºí ÆÄÆ¼¼ÇÀÌ Àӽà Å×ÀÌºí¿¡ ±â·ÏµÇ¸é, OUTER Ç൵ Àӽà Å×ÀÌºí¿¡ ±â·ÏµË´Ï´Ù. °á±¹, Àӽà Å×ÀÌºí¿¡¼­ ÀÏÄ¡ÇÏ´Â ÆÄƼ¼Ç ½ÖÀÌ ÀÐÈ÷°í ÇØ´ç ÇàÀÇ "ÇØ½¬ ÄÚµå"°¡ ´ëÀÀµÇ¸ç Á¶ÀÎ ¼ú¾î´Â È®Àε˴ϴÙ.

ÇØ½¬ Á¶ÀÎÀÇ ¼º´É»óÀÇ ÀåÁ¡À» ÀÌÇØÇÏ·Á¸é, sortheap µ¥ÀÌÅͺ£À̽º ±¸¼º ¸Å°³º¯¼ö¿Í sheapthres µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ ±¸¼º ¸Å°³º¯¼öÀÇ °ªÀ» º¯°æÇϽʽÿÀ.

°áÁ¤ Áö¿ø Á¶È¸ÀÇ °æ¿ì, ÇØ½¬ Á¶ÀÎ ¾×¼¼½º Ç÷£Àº ºñÇØ½¬ Á¶ÀÎ Ç÷£º¸´Ù ´õ ¸¹Àº Á¤·Ä Èü(heap) °ø°£À» »ç¿ëÇÕ´Ï´Ù. sheapthres°¡ »ó´ëÀûÀ¸·Î sortheap(Áï, µ¿½Ã Á¶È¸´ç 2-3°³º¸´Ù ¿ä¼Ò°¡ ÀûÀ½)¿¡ ±ÙÁ¢ÇÏ°Ô ¼³Á¤µÈ °æ¿ì, ÇØ½¬ Á¶ÀÎÀº ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ ¿¹»óÇÏ´Â °Íº¸´Ù ¸Þ¸ð¸®¸¦ ´ú »ç¿ëÇÏ°Ô µË´Ï´Ù. Á¦ÇÑµÈ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ¿© ½ÇÇàÇÒ °æ¿ì, ÇØ½¬ Á¶ÀÎÀº ´À¸®°Ô ¼öÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ ¹øÀÇ Á¤·Ä ¹× ÇØ½¬ Á¶ÀÎÀÌ ÀÖ´Â Á¶È¸¿¡¼­ ¹®Á¦Á¡ÀÌ ¹ß»ýÇϸç, ÀÌ ¶§ Á¤·ÄÀ̳ª ÇØ½¬ Á¶Àο¡¼­ ´ëºÎºÐÀÇ »ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸®¸¦ È®º¸ÇÕ´Ï´Ù.

¼Ö·ç¼ÇÀº sheapthres¸¦ (sortheap¿¡ ºñÇØ) ÃæºÐÈ÷ Å©°Ô ±¸¼ºÇÏ´Â °ÍÀÔ´Ï´Ù.

¿ÜºÎ ¹× ³»ºÎ Å×ÀÌºí °áÁ¤

Á¶ÀÎÀ» ¼öÇàÇÒ ¶§, ¾î¶»°Ô ³»ºÎ Å×À̺í°ú ¿ÜºÎ Å×À̺íÀÌ °áÁ¤µÇ´Â °ÍÀϱî¿ä? ´ÙÀ½Àº ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡¼­ ¾î¶² Å×À̺íÀÌ ³»ºÎ Å×À̺íÀÌ µÇ°í, ¾î¶² Å×À̺íÀÌ ¿ÜºÎ Å×À̺íÀÌ µÉÁö¸¦ °áÁ¤ÇÏ´Â ¹æ½Ä¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ÁöħÀÔ´Ï´Ù.

ÇØ½¬ Á¶ÀÎÀÇ °æ¿ì, ³»ºÎ Å×À̺íÀº ¸Þ¸ð¸® ¹öÆÛ ³»ºÎ¿¡ º¸Á¸µË´Ï´Ù. ¸Þ¸ð¸® ¹öÆÛ ¼ö°¡ ³Ê¹« ÀûÀ¸¸é, ÇØ½¬ Á¶ÀÎÀÌ °­Á¦·Î À¯ÃâµË´Ï´Ù. ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº À̸¦ ÇÇÇÏ·Á°í ÇϹǷΠµÎ Å×À̺í Áß ´õ ÀÛÀº °ÍÀ» ³»ºÎ Å×À̺í·Î ¼³Á¤Çϰí Å« Å×À̺íÀ» ¿ÜºÎ Å×À̺í·Î ¼±Á¤ÇÕ´Ï´Ù.

Áßø ·çÇÁ Á¶Àο¡ À־ Å×À̺íÀÌ ¾×¼¼½ºµÇ´Â ¼ø¼­´Â ƯÈ÷ Áß¿äÇѵ¥, ÀÌ´Â ¿ÜºÎ Å×À̺íÀº ÇÑ ¹ø ¾×¼¼½ºµÇ´Â µ¥ ´ëÇØ, ³»ºÎ Å×À̺íÀº ¿ÜºÎ Å×À̺íÀÇ °¢ Çà¿¡ ´ëÇÏ¿© °¢°¢ Çѹø¾¿ ¾×¼¼½ºµÇ±â ¶§¹®ÀÔ´Ï´Ù. ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ ºñ¿ë ÃßÁ¤Ä¡¿¡ ±Ù°ÅÇÏ¿© ¿ÜºÎ Å×À̺í°ú ³»ºÎ Å×À̺íÀ» °áÁ¤ÇÕ´Ï´Ù. ÀÌ ºñ¿ë ÃßÁ¤Ä¡´Â ´ÙÀ½ ¿äÀÎÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù.

º´ÇÕ Á¶Àο¡ À־ Å×À̺íÀÌ ¾×¼¼½ºµÇ´Â ¼ø¼­´Â º°·Î Áß¿äÇÏÁö ¾ÊÀºµ¥, ÀÌ´Â ³»ºÎ ¹× ¿ÜºÎ Å×À̺íÀÌ ¸ðµÎ Çѹø¾¿¸¸ ÀÐÈ÷±â ¶§¹®ÀÔ´Ï´Ù. ±×·¯³ª ¿ÜºÎ Å×À̺íÀÇ Áߺ¹µÇ´Â Á¶ÀÎ °ª¿¡ ´ëÀÀµÇ´Â ³»ºÎ Å×À̺íÀÇ ºÎºÐÀº ¸Þ¸ð¸® ¹öÆÛ¿¡¼­ À¯ÁöµË´Ï´Ù. ´ÙÀ½ ¿ÜºÎ ÇàÀÌ ÀÌÀü ¿ÜºÎ Çà°ú °°Àº °æ¿ì ¹öÆÛ´Â ´Ù½Ã ÀÐÇôÁö°í, ±×·¸Áö ¾ÊÀº °æ¿ì ¹öÆÛ´Â Àç¼³Á¤µË´Ï´Ù. Áߺ¹µÇ´Â Á¶ÀÎ °ªÀÇ ¼ö°¡ ¸Þ¸ð¸® ¹öÆÛ ¿ë·®À» ÃʰúÇÏ´Â °æ¿ì, Áߺ¹ °ªÀÌ ¸ðµÎ À¯ÁöµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ¸ðµç Áߺ¹ °ªÀÌ Å©°í °ªÀÌ ¿ÜºÎ Å×ÀÌºí¿¡ ÀÏÄ¡ÇÏ´Â °ªÀ» °¡Áø °æ¿ì¿¡¸¸ ÀϾ ¼ö ÀÖ½À´Ï´Ù.

Áߺ¹ °ª¿¡ ´ëÇÑ ¸ðµç °í·Á»çÇ×À¸·Î, ´ëºÎºÐ °æ¿ì¿¡¼­ Á¶ÀÎÀÇ ¿ÜºÎ Å×À̺í·Î ¼±ÅÃµÉ Áߺ¹ °ªÀÌ °ÅÀÇ ¾ø´Â Å×À̺íÀÔ´Ï´Ù. ±×·¯³ª, °á±¹ ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº »ó¼¼ÇÑ ºñ¿ë ÃßÁ¤Ä¡¿¡ ±Ù°ÅÇÏ¿© ¿ÜºÎ ¹× ³»ºÎ Å×À̺íÀ» ¼±ÅÃÇÕ´Ï´Ù.

ÃÖÀûÀÇ Á¶ÀÎÀ» ¼±ÅÃÇϱâ À§ÇÑ Å½»ö Àü·«

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ´Ù¾çÇÑ Å½»ö Àü·«À» »ç¿ëÇÏ¿© ÃÖÀûÀÇ Á¶ÀÎ ¹æ¹ýÀ» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÇÒ Å½»ö Àü·«Àº »ç¿ëÁßÀÎ ÃÖÀûÈ­ Ŭ·¡½º¿¡ ÀÇÇØ °áÁ¤µË´Ï´Ù(ÃÖÀûÈ­ Ŭ·¡½º Á¶Á¤ ÂüÁ¶). Ž»ö Àü·«°ú ÇØ´ç Ư¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

Á¶ÀÎ °è»ê ¾Ë°í¸®ÁòÀÌ ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ ÀÇÇØ Ž»öµÇ´Â Ç÷£ Á¶ÇÕÀÇ ¼ö¸¦ °áÁ¤ÇÏ´Â ÁÖµÈ ¿ä¼Ò°¡ µË´Ï´Ù.

½ºÅ¸ Á¶ÀÎÀÇ °Ë»ö Àü·«

ÀϹÝÀûÀ¸·Î, Á¶È¸½Ã ÂüÁ¶µÇ´Â Å×À̺íÀº Á¶ÀÎ ¼ú¾î¿¡ ÀÇÇØ ¿¬°áµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. Á¶ÀÎ ¼ú¾î ¾øÀÌ µÎ °³ÀÇ Å×À̺íÀÌ °áÇÕµÉ °æ¿ì, µÎ Å×À̺íÀÇ Cartesian Á¦Ç°ÀÌ ±¸¼ºµË´Ï´Ù. Áï, ù¹øÂ° Å×À̺íÀÇ ¸ðµç ±ÔÁ¤ ÇàÀº µÎ¹øÂ° Å×À̺íÀÇ ¸ðµç ±ÔÁ¤ Çà°ú Á¶ÀεǾî, º¸Åë ¸Å¿ì Å« µÎ Å×À̺íÀÇ Å©±â·Î µÈ cross Á¦Ç°À¸·Î ±¸¼ºµÈ °á°ú Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °èȹÀÌ Á¦´ë·Î ¼öÇàµÈ´Ù´Â °ÍÀº ºÒ°¡´ÉÇϹǷÎ, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº ±×·¯ÇÑ ¾×¼¼½º Ç÷£ÀÇ ºñ¿ëÀ» °áÁ¤ÇÏ´Â °ÍÁ¶Â÷ ÇÇÇÕ´Ï´Ù. ¿¹¿Ü°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡´Â ÃÖÀûÈ­ Ŭ·¡½º°¡ 9¿¡ ¼³Á¤µÇ°Å³ª, µÚµû¸£´Â "½ºÅ¸ ½ºÅ°¸¶"ÀÇ Æ¯¼öÇÑ °æ¿ì»ÓÀÔ´Ï´Ù. ÃÖÀûÈ­ Ŭ·¡½º Á¶Á¤¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Cartesian Á¦Ç°À» Æ÷ÇÔÇÏ´Â ¾×¼¼½º Ç÷£ÀÌ Á¦´ë·Î ¼öÇàµÇ´Â °æ¿ì´Â º¸Åë ½ºÅ¸ ½ºÅ°¸¶ ±â¼ú·Î ¼³°èµÈ ´ëÇü ÀÇ»ç °áÁ¤ Áö¿ø µ¥ÀÌÅͺ£À̽ºÀÇ °æ¿ìÀÔ´Ï´Ù. ½ºÅ¸ ½ºÅ°¸¶´Â ´ë·®ÀÇ ¿ø½Ã µ¥ÀÌÅͰ¡ ¿©·¯ Ä÷³À¸·Î ±¸¼ºµÇ¸ç º¸Åë "»ç½Ç(fact)" Å×À̺íÀ̶ó ¾Ë·ÁÁ® ÀÖ´Â ÇϳªÀÇ Å« Å×ÀÌºí¿¡ º¸°üµÇ´Â µ¥ÀÌÅͺ£À̽º ¼³°èÀÔ´Ï´Ù. ¸¹Àº Ä÷³¿¡ »ç½Ç Å×ÀÌºí¿¡ ÀúÀåµÈ ƯÁ¤ µ¥ÀÌÅÍÀÇ Â÷¿ø Ư¼ºÀ» ³ªÅ¸³»´Â ÄÚµåÈ­µÈ °ªÀÌ µé¾î ÀÖ½À´Ï´Ù. »ç½Ç(fact)ÀÇ ÀϺΠºÎ¼Ó ÁýÇÕÀ» ½±°Ô ºÐ¼®ÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇØ, ÄÚµåÈ­µÈ °ªÀ» ÇØµ¶ÇÏ´Â µ¥ Â÷¿ø Å×À̺íÀÌ »ç¿ëµË´Ï´Ù. ÀüÇüÀûÀÎ Á¶È¸´Â Â÷¿ø Å×À̺íÀÇ ÇØµ¶µÈ °ªÀ» ÂüÁ¶ÇÏ´Â º¹¼öÀÇ Áö¿ª ¼ú¾î·Î ±¸¼ºµÇ¸ç, Â÷¿ø Å×À̺íÀ» »ç½Ç Å×ÀÌºí¿¡ ¿¬°áÇÏ´Â Á¶ÀÎ ¼ú¾î°¡ µé¾î ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Á¾·ùÀÇ Á¶È¸ÀÎ °æ¿ì, ´ëÇüÀÇ »ç½Ç Å×À̺íÀ» ¾×¼¼½ºÇϱâ Àü¿¡ ¿©·¯ °³ÀÇ ÀÛÀº Â÷¿ø Å×À̺íÀ» °®´Â Cartesian Á¦Ç°À» ¼öÇàÇÏ´Â °ÍÀÌ À¯ÀÍÇÕ´Ï´Ù. ÀÌ ±â¹ýÀº ¿©·¯ Á¶ÀÎ ¼ú¾î°¡ ´ÙÁß Ä÷³ »öÀο¡ ÀÏÄ¡µÉ ¶§ À¯¿ëÇÕ´Ï´Ù.

DB2´Â ÃÖ¼ÒÇÑ 2Â÷¿ø Å×À̺íÀ» °¡Áø ½ºÅ¸ ½ºÅ°¸¶·Î ¼³°èµÈ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Á¶È¸¸¦ ÀνÄÇÒ ¼ö ÀÖÀ¸¸ç, Â÷¿ø Å×À̺íÀÇ Cartesian Á¦Ç° Çü¼º °úÁ¤¿¡ °ü·ÃµÈ ÀáÀçÀû Ç÷£À» Æ÷ÇÔÇÒ ¼ö ÀÖµµ·Ï Ž»ö °ø°£À» ´Ã¸± ¼öµµ ÀÖ½À´Ï´Ù. Cartesian Á¦Ç°À» Æ÷ÇÔÇÏ´Â Ç÷£ÀÌ ÃÖÀú ÃßÁ¤ ºñ¿ëÀ» °®´Â °æ¿ì, ÀÌ Ç÷£ÀÌ ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ ÀÇÇØ ¼±Åõ˴ϴÙ.

À§¿¡¼­ ³íÀÇµÈ ½ºÅ¸ ½ºÅ°¸¶ ±â¼úÀº Á¶Àο¡ ±âº» Ű »öÀÎÀÌ »ç¿ëµÈ °ÍÀ¸·Î °¡Á¤ÇÑ °ÍÀÔ´Ï´Ù. ¶Ç´Ù¸¥ ½Ã³ª¸®¿À·Î´Â ¿ÜºÎ Ű »öÀΰú °ü·ÃµÈ °ÍÀÌ ÀÖ½À´Ï´Ù. »ç½Ç Å×À̺íÀÇ ¿ÜºÎ Ű Ä÷³ÀÌ ´ÜÀÏ Ä÷³ »öÀÎÀ̸ç, ¸ðµç Â÷¿ø Å×À̺íÀÌ »ó´ëÀûÀ¸·Î ¸¹ÀÌ ¼±ÅõǴ ÆíÀ̶ó¸é, ´ÙÀ½ÀÇ ½ºÅ¸ Á¶ÀÎ ±â¼úÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

  1. °¢ Â÷¿ø Å×À̺íÀº ´ÙÀ½ ÀÛ¾÷¿¡ ÀÇÇØ 󸮵˴ϴÙ.
  2. °¢ ºñÆ®¸ÊÀº ÀÌÀü ºñÆ®¸Ê¿¡ ´ëÇØ "and" ¼ú¾î·Î »ç¿ëµË´Ï´Ù(´ÙÁß »öÀÎ ¾×¼¼½º ÂüÁ¶).
  3. ¸¶Áö¸· ºñÆ®¸ÊÀ» ó¸®ÇÑ ÈÄ ³²¾Æ ÀÖ´Â RID ÆÇÁ¤
  4. ÀÌ RID¸¦ ¼±ÅÃÀûÀ¸·Î Á¤·Ä
  5. ±âº» Å×À̺í Çà ÆäÄ¡
  6. SELECTÀý¿¡ ÇÊ¿äÇÑ Â÷¿ø Å×À̺íÀÇ Ä÷³À» ¾×¼¼½ºÇϸ鼭 °¢ Â÷¿ø Å×À̺íÀ» °¡Áø »ç½Ç Å×À̺í ÀçÁ¶ÀÎ
  7. ¼ú¾î(À׿© ¼ú¾î) ÀçÀû¿ë

ÀÌ ±â¼úÀ» »ç¿ëÇϸé, ´ÙÁß Ä÷³ÀÇ »öÀÎÀ» ÃëÇØ¾ß ÇÑ´Ù´Â ¿ä±¸»çÇ×ÀÌ ÇÊ¿ä¾ø½À´Ï´Ù. »ç½Ç Å×À̺í°ú Â÷¿ø Å×ÀÌºí »çÀÌÀÇ ¸í½ÃÀû ÂüÁ¶ ¹«°á¼º Á¦ÇÑÁ¶°ÇÀº ÀÌ ±â¼úÀ» ¼±ÅÃÇÒ °æ¿ì¿¡ »ç½Ç Å×À̺í°ú Â÷¿ø Å×ÀÌºí »çÀÌÀÇ °ü°è°¡ ÀÌ·¯ÇÑ Æ¯¼ºÀ» °¡Áö°í ÀÖ¾î¾ß ÇÏ´õ¶óµµ ¹Ýµå½Ã ¿ä±¸µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.

º¹ÇÕ Å×À̺í

¶Ç´Ù¸¥ Áß¿äÇÑ ¸Å°³º¯¼ö°¡ Á¶È¸ ³»ÀÇ Á¶ÀÎ ¼ø¼­ ¸ð¾çÀ» °áÁ¤ÇÕ´Ï´Ù. ÇÑ ½ÖÀÇ Å×À̺íÀ» Á¶ÀÎÇÑ °á°ú º¹ÇÕü¶ó´Â »õ·Î¿î Å×À̺íÀÌ ¸¸µé¾îÁý´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÀÌ·¯ÇÑ °á°ú º¹ÇÕ Å×À̺íÀº ¶Ç´Ù¸¥ ³»ºÎ Å×À̺íÀ» °®´Â Á¶ÀÎÀÇ ¿ÜºÎ Å×À̺íÀÌ µË´Ï´Ù. À̸¦ "º¹ÇÕ ¿ÜºÎ"¶ó°í ÇÕ´Ï´Ù. ÀϺΠ»óȲ¿¡¼­´Â, Greedy Á¶ÀÎ °è»ê ±â¹ý »ç¿ë½Ã µÎ Å×À̺íÀÇ Á¶ÀÎ °á°ú·Î ³ªÁß Á¶ÀÎÀÇ ³»ºÎ Å×À̺íÀ» ¸¸µå´Â °ÍÀÌ À¯¿ëÇÕ´Ï´Ù. Á¶ÀÎ ÀÚüÀÇ ³»ºÎ Å×À̺íÀÌ µÑ ÀÌ»óÀÇ Å×À̺íÀ» Á¶ÀÎÇÑ °á°ú·Î ±¸¼ºµÈ °ÍÀ̶ó¸é, Ç÷£¿¡´Â "º¹ÇÕ ³»ºÎ"°¡ Æ÷ÇԵ˴ϴÙ. ¿¹¸¦ µé¾î, ´ÙÀ½ Á¶È¸ÀÇ °æ¿ì,

SELECT COUNT(*)
FROM T1, T2, T3, T4
WHERE T1.A = T2.A AND
      T3.A = T4.A AND
      T2.Z = T3.Z

ÀÌ´Â Å×À̺í T1°ú T2(T1xT2)¸¦ Á¶ÀÎÇÑ ÈÄ T3À» T4(T3xT4)¿¡ Á¶ÀÎÇϸç, ¸¶Áö¸·À¸·Î ù¹øÂ° Á¶ÀÎ °á°ú¸¦ ¿ÜºÎ·Î, µÎ¹øÂ° Á¶ÀÎ °á°ú¸¦ ³»ºÎ·Î ¼±ÅÃÇÏ´Â µ¥ À¯¸®ÇÕ´Ï´Ù. ¸¶Áö¸· Ç÷£¿¡¼­, ((T1xT2) x (T3xT4)) Á¶ÀÎ °á°ú(T3xT4)´Â º¹ÇÕ ³»ºÎ¶ó°í ÇÕ´Ï´Ù. Á¶È¸ ÃÖÀûÈ­ Ŭ·¡½º¿¡ µû¶ó, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ ´Ù¸¥ Á¦ÇÑÁ¶°ÇÀ» Á¶ÀÎÀÇ ³»ºÎ Å×À̺íÀÌ µÉ ¼öµµ ÀÖ´Â ÃÖ´ë¼öÀÇ Å×ÀÌºí¿¡ ³õ½À´Ï´Ù. º¹ÇÕ ³»ºÎ´Â ÃÖÀûÈ­ Ŭ·¡½º 5, 7 ¶Ç´Â 9¿¡¼­ Çã¿ëµË´Ï´Ù.

º¹Á¦µÈ ¿ä¾à Å×À̺í

ÆÄƼ¼ÇµÈ µ¥ÀÌÅͺ£À̽º ȯ°æ¿¡¼­ º¹Á¦µÈ ¿ä¾à Å×À̺íÀ» »ç¿ëÇϸé, µ¥ÀÌÅͺ£À̽º °ü¸®¿¡¼­ ±âº» Å×ÀÌºí µ¥ÀÌÅÍÀÇ °ªÀ» »çÀü¿¡ °è»êÇÔÀ¸·Î ¼º´ÉÀÌ Çâ»óµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡ÀÇ Á¶È¸´Â ¾Æ·¡ÀÇ º¹Á¦µÈ ¿ä¾à Å×À̺íÀ» ÀÛ¼ºÇÏ´Â ÇýÅÃÀ» ¾ò°Ô µË´Ï´Ù. ´ÙÀ½ »çÇ×À» °¡Á¤ÇÕ´Ï´Ù.

±×¸®°í ³ª¼­, EMPLOYEE Å×À̺íÀÇ Á¤º¸¸¦ ±âÃÊ·Î º¹Á¦µÈ ¿ä¾à Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.

  CREATE TABLE R_EMPLOYEE
    AS (
        SELECT EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT
        FROM   EMPLOYEE
       )
  DATA INITIALLY DEFERRED REFRESH IMMEDIATE
  IN REGIONTABLESPACE
  REPLICATED;

º¹Á¦µÈ ¿ä¾à Å×À̺íÀÌ ÀÛ¼ºµÇ¸é, ÀÌ Å×À̺íÀÇ ³»¿ëÀº ´ÙÀ½ ¸í·É¹®À» ¼öÇàÇÏ¿© °»½ÅµË´Ï´Ù.

  REFRESH TABLE R_EMPLOYEE;

´ÙÀ½ ¿¹´Â »ç¿øº° ÆÇ¸Å¾×, ºÎ¼­º° ÃÑ°è ¹× À̸¦ ÇÕÇÑ ÃѰ踦 °è»êÇÕ´Ï´Ù.

  SELECT d.mgrno, e.empno, SUM(s.sales)
  FROM   department AS d, employee AS e, sales AS s
  WHERE  s.sales_person = e.lastname
     AND e.workdept = d.deptno
  GROUP BY ROLLUP(d.mgrno, e.empno)
  ORDER BY d.mgrno, e.empno;

ÇϳªÀÇ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡¸¸ ÀÖ´Â EMPLOYEE Å×À̺íÀ» »ç¿ëÇÏ´Â ´ë½Å µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº R_EMPLOYEE Å×À̺íÀ» »ç¿ëÇϸç, SALE Å×À̺íÀÌ ÀÖ´Â °¢ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡¼­ º¹Á¦µÇ´Â R_EMPLOYEE Å×À̺íÀ» »ç¿ëÇÕ´Ï´Ù. »ç¿ø Á¤º¸°¡ Á¶ÀÎ °è»êÀ» À§ÇØ ³×Æ®¿öÅ©¸¦ °ÅÃÄ °¢ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡ À̵¿µÉ Çʿ䰡 ¾øÀ¸¹Ç·Î ¼º´ÉÀÌ Çâ»óµË´Ï´Ù.

ÆÄƼ¼ÇÀÌ ³ª´©¾îÁø µ¥ÀÌÅͺ£À̽º¿¡¼­ÀÇ Á¶ÀÎ Àü·«

´ÙÀ½ Àý¿¡¼­´Â ÆÄƼ¼ÇÀÌ ³ª´©¾îÁø µ¥ÀÌÅͺ£À̽º ȯ°æ¿¡¼­ °¡´ÉÇÑ Á¶ÀÎ Àü·«À» ¼³¸íÇÕ´Ï´Ù. DB2 ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº °¢ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¿ä±¸»çÇ׿¡ µû¶ó ÃÖÀûÀÇ Á¶ÀÎ Àü·«À» ÀÚµ¿À¸·Î ¼±ÅÃÇÕ´Ï´Ù. ¿©±â¿¡ Á¶ÀÎ Àü·«À» ¼Ò°³ÇÏ´Â °ÍÀº °¢ Àü·«¿¡¼­ ¹ß»ýÇÏ´Â »çÇ׿¡ ´ëÇÑ »ç¿ëÀÚÀÇ ÀÌÇØ¸¦ µ½±â À§ÇÑ °ÍÀÔ´Ï´Ù. "Å×ÀÌºí ´ë±âÇà·Ä"Àº µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç »çÀÌ·Î ¶Ç´Â ÇϳªÀÇ ÆÄƼ¼Ç µ¥ÀÌÅͺ£À̽ºÀÇ ÇÁ·Î¼¼¼­ »çÀÌ·Î ÇàÀ» Àü¼ÛÇÏ´Â ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù.

´ÙÀ½ ¼³¸í¿¡¼­, Áö½Ã Å×ÀÌºí ´ë±âÇà·ÄÀ̶õ ÇàÀÌ ¼ö½Å µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç Áß Çϳª·Î ÇØ½¬µÇ´Â ´ë±âÇà·ÄÀÔ´Ï´Ù. ºê·Îµåij½ºÆ® Å×ÀÌºí ´ë±âÇà·ÄÀº ÇàÀÌ ¼ö½Å µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç ¸ðµÎ·Î Àü¼ÛµÇ´Â (Áï, ÇØ½¬µÇÁö ¾Ê´Â) Å×À̺íÀÔ´Ï´Ù. ÀÌ q1 ¼½¼Ç¿¡ ´ëÇÑ µµÇ¥¿¡¼­, q2¿Í q3´Â ¿¹¿¡ ÀÖ´Â Å×ÀÌºí ´ë±âÇà·ÄÀ» ³ªÅ¸³À´Ï´Ù. ¶ÇÇÑ, ¾ð±ÞµÈ Å×À̺íÀº ÀÌ·¯ÇÑ ½Ã³ª¸®¿ÀÀÇ ¸ñÀû¿¡ ¸ÂÃß¾î µÎ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡ °ÉÃÄ ÆÄƼ¼ÇµË´Ï´Ù. È­»ìÇ¥´Â Å×ÀÌºí ´ë±âÇà·ÄÀÌ Àü¼ÛµÇ´Â ¹æÇâÀ» ³ªÅ¸³À´Ï´Ù. Á¶Á¤ÀÚ(coordinator) ³ëµå´Â ÆÄƼ¼Ç 0ÀÔ´Ï´Ù.

ÆÄƼ¼ÇÀÌ ³ª´©¾îÁø µ¥ÀÌÅͺ£À̽ºÀÇ ÀæÀº Á¶Àΰú °ü·ÃµÈ ÇØ´ç Å×ÀÌºí¿¡ ´ëÇÑ °í·Á»çÇ×Àº Å×ÀÌºí ¹èÄ¡ÀÇ °í·Á»çÇ×ÀÌ µË´Ï´Ù. Å×ÀÌºí ¹èÄ¡´Â ÆÄƼ¼ÇÀÌ ³ª´©¾îÁø µ¥ÀÌÅͺ£À̽º¿¡¼­ µ¥ÀÌÅ͸¦ µ¥ÀÌÅ͸¦ °¡Áø Å×À̺í·ÎºÎÅÍ °°Àº ÆÄƼ¼Ç Ű¿¡ ±âÃÊÇÑ °°Àº ÆÄƼ¼ÇÀÇ ´Ù¸¥ Å×À̺í·Î À§Ä¡ÁöÁ¤ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ÀÏ´Ü ¹èÄ¡µÇ¸é, Á¶ÀÎµÈ µ¥ÀÌÅÍ´Â Á¶È¸ Ȱµ¿ÀÇ ÀϺηΠ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼ÇÀ¸·Î À̵¿ÇÏÁö ¾Ê°í Á¶È¸¿¡ Âü¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶Àο¡ ´ëÇÑ ÀÀ´ä ¼¼Æ®¸¸ÀÌ Á¶Á¤ÀÚ(coordinator) ³ëµå·Î À̵¿µË´Ï´Ù. ÀÌ ÁÖÁ¦¿¡ ´ëÇØ¼­´Â °ü¸® ¾È³»¼­: °èȹÀÇ "Å×À̺í Á¶ÇÕ"¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Á¶ÀÎ Á¾¼Ó¼º¿¡ °üÇÑ Á¤º¸´Â SQL ÂüÁ¶¼­ ¸Å´º¾óÀ» ÂüÁ¶ÇϽʽÿÀ.

Á¶ÇÕ Á¶ÀÎ

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ Á¶ÇÕ Á¶ÀÎÀ» °í·ÁÇÏ·Á¸é, Á¶ÀÎµÈ Å×À̺íÀÌ Á¶ÇյǾî ÀÖ¾î¾ß Çϸç, ´ëÀÀÇÑ ¸ðµç ÆÄƼ¼Ç Ű ½ÖÀÌ equijoin ¼ú¾î¿¡ Âü¿©Çϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹´Â ±×¸² 80¿¡ ÀÖ½À´Ï´Ù.
ÁÖ:º¹Á¦µÈ ¿ä¾à Å×À̺íÀº Á¶ÇÕ Á¶ÀÎÀÇ °¡´É¼ºÀ» Çâ»ó½Ãŵ´Ï´Ù. º¹Á¦µÈ ¿ä¾à Å×ÀÌºí¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ

±×¸² 80. Á¶ÇÕ Á¶ÀÎ ¿¹


sqlx0cj

¿ÜºÎ Å×ÀÌºí ºê·Îµåij½ºÆ® Á¶ÀÎ

Á¶ÀÎµÈ Å×ÀÌºí°£¿¡ equijoin ¼ú¾î°¡ ¾øÀ» °æ¿ì, ÀÌ·¯ÇÑ º´Çà Á¶ÀÎ Àü·«À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÌ ¹æ¹ýÀÌ °¡Àå Àú·ÅÇÑ Á¶ÀÎ ¹æ¹ýÀÌ µÈ´Ù¸é, ´Ù¸¥ »óȲ¿¡¼­µµ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¸Å¿ì Å« Å×À̺í°ú ¾ÆÁÖ ÀÛÀº Å×À̺íÀÌ Àִµ¥, Á¶ÀÎ ¼ú¾î ÆÄƼ¼Ç¿¡¼­ ÆÄƼ¼ÇÀÌ ³ª´©¾îÁöÁö ¾ÊÀº °æ¿ì¿¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. µÎ Å×À̺íÀ» ÆÄƼ¼Ç ³ª´©´Â °Íº¸´Ù ´õ ÀÛÀº Å×À̺íÀ» ´õ Å« Å×À̺í·Î ºê·Îµåij½ºÆ®ÇÏ´Â °ÍÀÌ "ºñ¿ëÀÌ Àû°Ô" µì´Ï´Ù. ¿¹´Â ±×¸² 81¿¡ ÀÖ½À´Ï´Ù.

±×¸² 81. ¿ÜºÎ Å×ÀÌºí ºê·Îµåij½ºÆ® Á¶ÀÎ ¿¹


sqlx0boj

¿ÜºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ

ÀÌ Á¶ÀÎ Àü·«¿¡¼­, ¿ÜºÎ Å×À̺íÀÇ °¢ ÇàÀº ³»ºÎ Å×À̺íÀÇ ÇÑ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡ Àü¼ÛµË´Ï´Ù(³»ºÎ Å×À̺íÀÇ ÆÄƼ¼Ç ¼Ó¼º¿¡ ÀǰÅÇÏ¿©). ÀÌ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡¼­ Á¶ÀÎÀÌ ¹ß»ýÇÕ´Ï´Ù. ¿¹´Â ±×¸² 82¿¡ ÀÖ½À´Ï´Ù.

±×¸² 82. ¿ÜºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ ¿¹


sqlx0doj

³»ºÎ Å×ÀÌºí ¹× ¿ÜºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ

ÀÌ Àü·«¿¡¼­, ¿ÜºÎ ¹× ³»ºÎ Å×À̺í ÇàÀº Á¶ÀÎ Ä÷³ÀÇ °ª¿¡ µû¶ó, µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç ¼¼Æ®·Î °æ·ÎÁöÁ¤µË´Ï´Ù. ÀÌµé µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡¼­ Á¶ÀÎÀÌ ¹ß»ýÇÕ´Ï´Ù. ¿¹´Â ±×¸² 83¿¡ ÀÖ½À´Ï´Ù.

±×¸² 83. ³»ºÎ Å×ÀÌºí ¹× ¿ÜºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ ¿¹


sqlx0dio

³»ºÎ Å×ÀÌºí ºê·Îµåij½ºÆ® Á¶ÀÎ

ÀÌ °æ¿ì, ³»ºÎ Å×À̺íÀº ¿ÜºÎ Á¶ÀÎµÈ Å×À̺íÀÇ ¸ðµç µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡ ºê·Îµåij½ºÆÃµË´Ï´Ù. ¿¹´Â ±×¸² 84¿¡ ÀÖ½À´Ï´Ù.

±×¸² 84. ³»ºÎ Å×ÀÌºí ºê·Îµåij½ºÆ® Á¶ÀÎ ¿¹


sqlx0bij

³»ºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ

ÀÌ Á¶ÀÎ Àü·«¿¡¼­, ³»ºÎ Å×À̺íÀÇ °¢ ÇàÀº ¿ÜºÎ Á¶ÀÎ Å×À̺íÀÇ ÇÑ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡ Àü¼ÛµË´Ï´Ù(¿ÜºÎ Å×À̺íÀÇ ÆÄƼ¼Ç ¼Ó¼º¿¡ ÀǰÅÇÏ¿©). ÀÌ µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç¿¡¼­ Á¶ÀÎÀÌ ¹ß»ýÇÕ´Ï´Ù. ¿¹´Â ±×¸² 85¿¡ ÀÖ½À´Ï´Ù.

±×¸² 85. ³»ºÎ Å×ÀÌºí °æ·ÎÁöÁ¤ Á¶ÀÎ ¿¹


sqlx0dij

Å×ÀÌºí ´ë±âÇà·Ä

Å×ÀÌºí ´ë±âÇà·ÄÀº ´ÙÀ½°ú °°Àº °æ¿ì¿¡ »ç¿ëµË´Ï´Ù.

°¢ Å×ÀÌºí ´ë±âÇà·ÄÀº ÇÑ ¹æÇâÀ¸·Î µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

ÄÄÆÄÀÏ·¯´Â ¾îµð¿¡ Å×ÀÌºí ´ë±âÇà·ÄÀÌ ÇÊ¿äÇÑÁö ÆÇÁ¤Çϰí, À̸¦ Ç÷£¿¡ ³Ö½À´Ï´Ù. Ç÷£ÀÌ ½ÇÇàµÇ¸é, µ¥ÀÌÅͺ£À̽º ÆÄƼ¼Ç°£ÀÇ ¿¬°áÀÌ Å×ÀÌºí ´ë±âÇà·ÄÀ» ÃʱâÈ­ÇÕ´Ï´Ù. Å×ÀÌºí ´ë±âÇà·ÄÀº ÇÁ·Î¼¼½º°¡ Á¾·áµÉ ¶§ ´ÝÈü´Ï´Ù.

´ÙÀ½ÀÇ ¿©·¯ Å×ÀÌºí ´ë±âÇà·Ä À¯ÇüÀÌ ÀÖ½À´Ï´Ù.

Á¤·ÄÀÌ ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ ¹ÌÄ¡´Â ¿µÇâ

ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ ¾×¼¼½º Ç÷£À» ¼±ÅÃÇÒ ¶§, µ¥ÀÌÅÍÀÇ Á¤·ÄÀÌ ¼º´É¿¡ ¹ÌÄ¡°Ô µÉ ¿µÇâÀ» °í·ÁÇÕ´Ï´Ù. ÆäÄ¡µÈ ÇàÀÇ ¿äûµÈ ¼ø¼­¸¦ ÃæÁ·½ÃŰ´Â »öÀÎÀÌ ¾øÀ» °æ¿ì Á¤·ÄÀÌ ¹ß»ýÇÕ´Ï´Ù. »öÀÎ ½ºÄµº¸´Ù ºñ¿ëÀ» ´ú µéÀ̱â À§ÇØ ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ Á¤·ÄÀ» °áÁ¤Çϸé Á¤·ÄÀÌ ¶ÇÇÑ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº µ¥ÀÌÅ͸¦ Á¤·ÄÇÒ ¶§ ´ÙÀ½ Á¶Ä¡ Áß Çϳª¸¦ ¼öÇàÇÕ´Ï´Ù.

ÆÄÀÌÇÁ Á¤·Ä ¹× ºñÆÄÀÌÇÁ Á¤·Ä

Á¤·ÄÀÇ ¿Ï·á ½ÃÁ¡¿¡¼­, µ¥ÀÌÅͰ¡ ÃÖÁ¾ÀûÀ¸·Î Á¤·ÄµÈ ¸ñ·ÏÀ» ÇϳªÀÇ ¼ø¼­ ÆÐ½º¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Â °æ¿ì, °á°ú´Â ÆÄÀÌÇÁÈ­µÈ °ÍÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀÌÇÎÀº Á¤·Ä °á°ú¸¦ Åë½ÅÇÏ´Â µ¥ ´Ù¸¥(ÆÄÀÌÇÁÈ­°¡ ¾Æ´Ñ) ¹æ¹ýÀ» »ç¿ëÇÏ´Â °Íº¸´Ù ´õ ºü¸¨´Ï´Ù. ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº °¡´ÉÇϸé Á¤·ÄÀÇ °á°ú ÆÄÀÌÇÁÈ­¸¦ Ç×»ó ¼±ÅÃÇÕ´Ï´Ù.

Á¤·ÄÀÌ ÆÄÀÌÇÁÈ­µÇ¾ú´ÂÁöÀÇ ¿©ºÎ¿Í´Â »ó°ü¾øÀÌ, Á¤·ÄÇÏ´Â µ¥ °É¸®´Â ½Ã°£Àº Á¤·ÄµÉ ÇàÀÇ ¼ö, ŰÀÇ Å©±â ¹× ÇàÀÇ Æø µîÀÇ ¸¹Àº ¿äÀο¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ¸¸ÀÏ Á¤·ÄµÇ¾î¾ß ÇÒ ÇàÀÌ Á¤·Ä Èü¿¡ »ç¿ë °¡´ÉÇÑ °ø°£º¸´Ùµµ ´õ ¸¹ÀÌ Â÷ÁöÇÑ´Ù¸é, ¸î Â÷·ÊÀÇ Á¤·Ä ´Ü°è°¡ ¼öÇàµÇ´Âµ¥, °¢°¢ÀÇ ´Ü°è´Â Àüü Çà ¼¼Æ®ÀÇ ÀϺθ¦ Á¤·ÄÇÏ°Ô µË´Ï´Ù. °¢°¢ÀÇ Á¤·Ä ´Ü°è´Â ¹öÆÛ Ç®ÀÇ Àӽà Å×ÀÌºí¿¡ ÀúÀåµË´Ï´Ù(¹öÆÛ Ç® °ü¸®ÀÇ ÀÏȯÀ¸·Î, ÆäÀÌÁö¸¦ ÀÌ Àӽà Å×À̺í·ÎºÎÅÍ µð½ºÅ©·Î ¾²´Â °Íµµ °¡´ÉÇÕ´Ï´Ù). ÀÏ´Ü ¸ðµç Á¤·Ä ´Ü°è°¡ ¿Ï·áµÇ¸é, À̵é Á¤·ÄµÈ ºÎºÐÀº ÇϳªÀÇ Á¤·ÄµÈ ÇàÀÇ ¼¼Æ®·Î ÇÕÃÄÁ®¾ß ÇÕ´Ï´Ù. ÆÄÀÌÇÁ Á¤·ÄÀÎ °æ¿ì, ÇàÀº º´ÇյǸ鼭 ¹Ù·Î °ü°èÇü µ¥ÀÌÅÍ ¼­ºñ½º·Î ³Ñ¾î°©´Ï´Ù.

Á¤·Ä ¼º´É ¹®Á¦Á¡ÀÇ Ç¥½Ã °ËÅä ¶Ç´Â Á¶È¸ ÃÖÀûÈ­¿¡ ¿µÇâÀ» ÁÖ´Â ±¸¼º ¸Å°³º¯¼öÀÇ sortheap ±¸¼º ¸Å°³º¯¼ö ³íÀÇ¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

ÃÑ°è ¹× Á¤·Ä Ǫ½Ã´Ù¿î ¿¬»êÀÚ

°£È¤, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÌ °ü°èÇü µ¥ÀÌÅÍ ¼­ºñ½º ±¸¼º¿ä¼Ò·ÎºÎÅÍ µ¥ÀÌÅÍ °ü¸® ¼­ºñ½º ±¸¼º¿ä¼Ò·Î Á¤·Ä ¶Ç´Â ÃÑ°è ¿¬»êÀ» Ǫ½Ã´Ù¿îÇϵµ·Ï ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿¬»êÀÚ¿¡ Ǫ½Ã´Ù¿îÀ» Àû¿ëÇÏ¸é µ¥ÀÌÅÍ °ü¸® ¼­ºñ½º ±¸¼º¿ä¼Ò°¡ µ¥ÀÌÅ͸¦ °ð¹Ù·Î Á¤·Ä ¶Ç´Â ÃÑ°è ·çÆ¾À¸·Î ³Ñ°ÜÁÙ ¼ö ÀÖÀ¸¹Ç·Î ¼º´ÉÀÌ Çâ»óµË´Ï´Ù. ÀÌ·¯ÇÑ Çª½Ã´Ù¿îÀ» Àû¿ëÇÏÁö ¾ÊÀ¸¸é, µ¥ÀÌÅÍ °ü¸® ¼­ºñ½º´Â ¸ÕÀú ÀÌ µ¥ÀÌÅ͸¦ °ü°èÇü µ¥ÀÌÅÍ ¼­ºñ½º·Î ³Ñ±â°í °ü°èÇü µ¥ÀÌÅÍ ¼­ºñ½º´Â ´Ù½Ã Á¤·Ä ¶Ç´Â ÃÑ°è ·çÆ¾°ú ÀÎÅÍÆäÀ̽º¸¦ ÇÏ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ Á¶È¸´Â ÀÌ·± ÃÖÀûÈ­ÀÇ ÀåÁ¡À» ÀÌ¿ëÇÏ°Ô µË´Ï´Ù.

   SELECT WORKDEPT, AVG(SALARY) AS AVG_DEPT_SALARY
     FROM EMPLOYEE
   GROUP BY WORKDEPT

Á¤·Ä¿¡¼­ÀÇ ÃѰè

GROUP BY Á¶ÀÛ¿¡ ´ëÇØ ÇÊ¿äÇÑ ¼ø¼­¸¦ »ý¼ºÇϱâ À§ÇØ Á¤·ÄÀÌ »ç¿ëµÉ °æ¿ì, ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Á¤·ÄÀ» ¼öÇàÇÏ´Â µ¿¾È GROUP BY ÃѰèÀÇ ÀϺγª Àüü¸¦ ¼öÇàÇÏ´Â ¿É¼ÇÀ» ¼ö¹ÝÇÕ´Ï´Ù. À̰ÍÀÌ °¢ ±×·ìÀÇ Çà ¼ö°¡ Å« °æ¿ìÀÇ ÀÌÁ¡ÀÔ´Ï´Ù. ÀÌ´Â Á¤·ÄÇÏ´Â µ¿¾È ±×·ìÈ­¸¦ ¼öÇàÇÏ¿© µð½ºÅ©·Î Á¤·ÄÀ» À¯ÃâÇØ¾ß ÇÏ´Â Çʿ伺ÀÌ °¨¼ÒµÇ°Å³ª ¾ø¾îÁø °æ¿ì¿¡ ´õ¿í À¯¸®ÇÕ´Ï´Ù.

Á¤·Ä¿¡¼­ÀÇ ÃѰ谡 »ç¿ëµÉ °æ¿ì, ÀûÀýÇÑ °á°ú°¡ °è»êµÇµµ·Ï Çϱâ À§ÇØ ÇÊ¿äÇÑ ÃÖ´ë ¼¼ °³±îÁöÀÇ ÃÑ°è ´Ü°è°¡ ÀÖ½À´Ï´Ù. ÃѰèÀÇ Ã¹¹øÂ° ´Ü°èÀÎ "ºÎºÐ ÃѰè"´Â Á¤·Ä ÈüÀÌ Ã¤¿öÁú ¶§±îÁö ÃÑ°è °ªÀ» °è»êÇÕ´Ï´Ù. ºÎºÐ ÃѰè´Â ÃѰèµÇÁö ¾ÊÀº µ¥ÀÌÅͰ¡ ÃëÇØÁö°í ºÎºÐ ÃѰ谡 »ý¼ºµÇ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù. Á¤·Ä ÈüÀÌ Ã¤¿öÁú °æ¿ì, ³ª¸ÓÁö µ¥ÀÌÅÍ´Â µð½ºÅ©·Î À¯ÃâµÇ°í Á¤·Ä ÈüÀÇ ÇöÀç ä¿ì±â¿¡¼­ °è»êµÈ ¸ðµç ºÎºÐ ÃѰ谡 Æ÷ÇԵ˴ϴÙ. Á¤·Ä ÈüÀÇ Àç¼³Á¤ ÀÌÈÄ¿¡ »õ·Î¿î ÃѰ谡 ½ÃÀ۵˴ϴÙ.

ÃѰèÀÇ µÎ¹øÂ° ´Ü°èÀÎ "Áß°£ ÃѰè"¿¡¼­´Â À¯ÃâµÈ ¸ðµç Á¤·Ä ¼öÇàÀ» ÃëÇÏ°í ±×·ìÈ­ Ű¿¡ ´ëÇØ Ãß°¡·Î ÃѰèÇÕ´Ï´Ù. ±×·ìÈ­ Ű Ä÷³Àº ÆÄƼ¼Å´× Ű Ä÷³ÀÇ ºÎ¼Ó ÁýÇÕÀ̹ǷÎ, ÃѰ谡 ¿Ï·áµÉ ¼ö ¾ø½À´Ï´Ù. Áß°£ ÃѰ迡¼­´Â ±âº»ÀÇ ºÎºÐ ÃѰ踦 ÃëÇÏ°í »õ·Î¿î ºÎºÐ ÃѰ踦 »ý¼ºÇÕ´Ï´Ù. ÀÌ ´Ü°è´Â »ý·« °¡´ÉÇÑ ´Ü°è·Î, ÆÄƼ¼Ç ³» º´·Ä ó¸®¿Í ÆÄƼ¼Ç°£ º´·Ä ó¸® µÑ´Ù¿¡ »ç¿ëµË´Ï´Ù. ¸¶Áö¸· °æ¿ì¿¡, ±×·ìÈ­´Â Àü¿ª ±×·ìÈ­ ۰¡ »ç¿ë °¡´ÉÇÒ ¶§ ¿Ï·áµË´Ï´Ù. ÆÄƼ¼Ç°£ º´·Ä 󸮿¡¼­, ÀÌ´Â ±×·ìÈ­ ۰¡ ÆÄƼ¼Ç¿¡¼­ ±×·ìÀ» ³ª´©´Â ÆÄƼ¼Å´× ŰÀÇ ºÎ¼Ó ÁýÇÕÀ̹ǷΠ´Ù½Ã ÆÄƼ¼Å´×ÇÏ¿© ÃѰ踦 ¿Ï·áÇØ¾ß ÇÒ °æ¿ì¿¡ ¹ß»ýÇÕ´Ï´Ù. °¢ ¿¡ÀÌÀüÆ®°¡ ÃѰ踦 ¿Ï·áÇϱâ À§ÇØ ´ÜÀÏ ¿¡ÀÌÀüÆ®·Î ÁÙÀ̱â Àü¿¡ ÇØ´çµÇ´Â À¯ÃâµÈ Á¤·Ä ¼öÇàÀÇ º´ÇÕÀ» ¿Ï·áÇÒ ¶§ À¯»çÇÑ °æ¿ì°¡ ÆÄƼ¼Ç ³» º´·Ä 󸮿¡¼­ ¹ß»ýÇÕ´Ï´Ù.

ÃѰèÀÇ ¸¶Áö¸· ´Ü°èÀÎ "ÃÖÁ¾ ÃѰè"¿¡¼­´Â ¸ðµç ºÎºÐ ÃѰ踦 ÃëÇϰí ÃѰ踦 ¿Ï·áÇÕ´Ï´Ù. ÃÖÁ¾ ÃѰè´Â ºÎºÐ ÃѰ迡¼­ ÃëÇØÁö¸ç ÃÖÁ¾ ÃѰè»çÇ×À» »ý¼ºÇÕ´Ï´Ù. ÀÌ ´Ü°è´Â Ç×»ó GROUP BY ¿¬»êÀÚ¿¡¼­ ¹ß»ýÇÕ´Ï´Ù. Á¤·ÄÀº ¿ÏÀüÇÑ ÃѰ踦 ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù. Á¤·ÄÀÌ À¯ÃâµÇÁö ¾Êµµ·Ï ÇÏ´Â È®½ÇÇÑ ¹æ¹ýÀÌ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ¿ÏÀüÇÑ ÃѰè´Â ÃѰèµÇÁö ¾ÊÀº µ¥ÀÌÅÍ¿¡¼­ ÃëÇØÁö¸ç ÃÖÁ¾ ÃѰ踦 »ý¼ºÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÃÑ°è ¹æ¹ýÀº º¸Åë ÀÌ¹Ì ¿Ã¹Ù¸¥ ¼ø¼­·Î µÇ¾î ÀÖ´Â µ¥ÀÌÅ͸¦ ±×·ìÈ­ÇÏ°í ÆÄÆ¼¼Å´×À¸·Î »ç¿ëÀ» ¹æÇØÇÒ ¶§ »ç¿ëµË´Ï´Ù.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]