À̵¿: Home à ebook à eb05

 

ÁÖ¼Ò: http://www.kernel.bz/book/eb/eb05.htm

ÀÌÆäÀÌÁöÀÇ ÀúÀÛ±ÇÀº

Á¦¸ñ: ¿À¶óŬ ½Ç¹«È°¿ë SQL Æ©´×2 (Second Edition)

ÀúÀÚ¿¡°Ô ÀÖ½À´Ï´Ù

ÀÛ¼º: Á¤ÀçÁØ(rgbi3307(at)nate.com)

ÃÖ±Ù¼öÁ¤ÀÏ:2011-10-04

 

 

 

 

¸ñ   Â÷

 

Á¦1ºÎ SQL Æ©´×À» À§ÇÑ ¹è°æÁö½Ä

1

1. DBMS ¼­¹ö

2

 

1.1 DBMS ¼­¹ö ¼Ò°³

 

 

1.2 ¸Þ¸ð¸® ±¸Á¶Ã¼¿Í ÇÁ·Î¼¼½ºµé

 

 

1.3 µ¥ÀÌÅͺ£À̽º ±¸Á¶Ã¼¿Í ¹°¸®Àû ÀúÀåÀåÄ¡

 

 

1.4 ¿À¶óŬ ³×Æ®¿öÅ© ¼­ºñ½º

 

 

1.5 ±¸Á¶È­µÈ ÁúÀÇ ¾ð¾î(SQL)

 

 

 

2. DBMS ½ºÅ°¸¶

27

 

2.1 ½ºÅ°¸¶ °´Ã¼µé ¼Ò°³

 

 

2.2 Å×À̺í

 

 

2.3 ºä(Views)

 

 

2.4 À妽º

 

 

2.5 Á¶Á÷È­µÈ À妽º Å×À̺í

 

 

2.6 Ŭ·¯½ºÅÍ

 

 

2.7 ÇØ½Ã Ŭ·¯½ºÅÍ

 

 

 

3. SQL ¿ÉƼ¸¶ÀÌÀú ¹× ½ÇÇà°èȹ

65

 

3.1 SQL 󸮱¸Á¶ ÀÌÇØ

 

 

3.2 ¿ÉƼ¸¶ÀÌÀú ÀÌÇØ

 

 

3.3 ¿ÉƼ¸¶ÀÌÀúÀÇ SQL ½ÇÇà°èȹ(EXPLAIN PLAN)

 

 

3.4 ¿ÉƼ¸¶ÀÌÀúÀÇ Á¢±Ù¹æ½Ä ¹× ¸ñÇ¥¼±ÅÃ

 

 

3.5 ºñ¿ë±âÁØ ¿ÉƼ¸¶ÀÌÀú(CBO)ÀÇ ÀÌÇØ

 

 

3.6 CBO¿¡¼­ »ç¿ëÇÏ´Â Á¢±Ù°æ·Î¿¡ ´ëÇÑ ÀÌÇØ

 

 

3.7 Á¶Àο¡ ´ëÇÑ ÀÌÇØ

 

 

3.8 ¿ÉƼ¸¶ÀÌÀú ÈùÆ®

 

 

 

4. SQL ¿ÉƼ¸¶ÀÌÀú ¿¬»êÀÚµé

152

 

4.1 ¿ÉƼ¸¶ÀÌÀú°¡ ¿¬»êÀÚµéÀ» ½ÇÇàÇÏ´Â ¹æ¹ý

 

 

4.2 ¿ÉƼ¸¶ÀÌÀú°¡ SQL ¹®ÀåµéÀ» º¯È¯ÇÏ´Â ¹æ¹ý

 

 

 

5. ¿ÉƼ¸¶ÀÌÀú Åë°èÀÚ·á ¼öÁý

194

 

5.1 Åë°èÀÚ·á¿¡ ´ëÇÑ ÀÌÇØ

 

 

5.2 Åë°èÀÚ·á ¹ß»ý

 

 

5.3 Åë°èÀÚ·á »ç¿ë

 

 

5.4 È÷½ºÅä±×·¥ »ç¿ë

 

 

 

6. SQL Trace ¿Í TKPROF

217

 

6.1 SQL Trace ¿Í TKPROF ÀÌÇØ

 

 

6.2 SQL Trace ¿Í TKPROF »ç¿ë

 

 

6.3 TKPROF ÇØ¼®½Ã ÇÔÁ¤À» ÇÇÇÏ´Â ¹æ¹ý

 

 

6.4 TKPROF Ãâ·Â ¿¹Á¦

 

 

 

7. ¿À¶óŬ Æ©´× ÀýÂ÷

248

 

7.1 Æ©´× ÀýÂ÷ ¿ä¾à

 

 

7.2 SQL Æ©´× ¸ñÇ¥

 

 

7.3 ÀÚ¿ø Áý¾àÀûÀÎ SQL¿¡¼­ µ¥ÀÌÅÍ ¼öÁý°ú ½Äº°

 

 

7.4 SQL ¹®Àå Æ©´× ÀÌÇØ

 

 

 

Á¦2ºÎ SQL ¼º´É ºÐ¼®

268

8. Á¢±Ù³í¸® ¼º´É ºÐ¼®

269

 

8.1 µîÈ£ ¹× ºÎÁ¤Á¶°Ç ºÐ¼®

 

 

8.2 ¹üÀ§Á¶°Ç ºÐ¼®

 

 

8.3 ÁýÇÕ¿¬»êÀÚÀÇ Á¤·Ä(Sort) ºÐ¼®

 

 

 

9. À妽º ¼º´É ºÐ¼®

289

 

9.1 B-Tree À妽º ¼º´ÉºÐ¼®

 

 

9.2 °áÇÕ À妽º ¼º´ÉºÐ¼®

 

 

9.3 ÇÔ¼ö±â¹Ý À妽º ¼º´ÉºÐ¼®

 

 

9.4 À妽º »ç¿ëÁ¦¾î

 

 

 

10.Á¶ÀÎ ¼º´É ºÐ¼®

350

 

10.1 µå¶óÀ̺ù Å×ÀÌºí ºÐ¼®

 

 

10.2 Á¶ÀÎ ¹æ½Ä Á¦¾î

 

 

 

11.¼­ºêÄõ¸® ¼º´É ºÐ¼®

372

 

11.1 ¼­ºêÄõ¸® ºÐ¼®

 

 

11.2 IN, EXISTS ºÐ¼®

 

 

 

Á¦3ºÎ SQL Æ©´× ½Ç¹«»ç·Ê

387

12.À妽º Ȱ¿ë Æ©´×

388

 

12.1 À妽º ÈùÆ® »ç¿ë

 

 

12.2 È¿À²ÀûÀÎ À妽º Ä÷³ »ç¿ë

 

 

12.3 ¸Å°³º¯¼ö·Î Àü´ÞµÇ´Â °ª¿¡ ´ëÇÑ Æ©´×

 

 

 

13.Á¶ÀÎ Æ©´×

401

 

13.1 Nested Loop Á¶ÀÎ

 

 

13.2 Hash Á¶ÀÎ

 

 

13.3 Nested Loop Á¶Àΰú Hash Á¶ÀÎÀÇ Â÷ÀÌÁ¡

 

 

13.4 Á¶ÀÎ ¼ø¼­ÀÇ Á߿伺

 

 

13.5 󸮹üÀ§ÀÇ ÃÖ¼ÒÈ­

 

 

13.6 µå¶óÀ̺ù Å×À̺íÀÇ Á߿伺

 

 

13.7 ¿¬°á°í¸® Ä÷³ÀÇ Á߿伺

 

 

 

14.ORÁ¶°Ç Æ©´×

438

 

14.1 º¹ÀâÇÑ OR Á¶°Ç ´Ü¼øÈ­(Decode Ȱ¿ë)

 

 

14.2 OR Á¶°ÇÀ» Union All·Î ó¸®

 

 

14.3 Union AllÀ» Inlist Iterator·Î Æ©´×Çϱâ

 

 

 

15.ºÎºÐ¹üÀ§ ó¸®

445

 

15.1 ºÎºÐ¹üÀ§ 󸮷ΠÀ¯µµ

 

 

15.2 semi-join Æ©´×(EXISTS,IN Ȱ¿ë)

 

 

15.3 anti-join Æ©´×(NOT EXISTS, NOT IN Ȱ¿ë)

 

 

15.4 À¥°Ô½ÃÆÇ ÇüÅÂÀÇ ºÎºÐ¹üÀ§ ó¸®

 

 

 

16.´Ù¾çÇÑ Á¶°Ç¹® Æ©´×

473

 

16.1 Äõ¸®¹®¿¡¼­ if Á¶°Ç ó¸®

 

 

16.2 Case ¹®À» Ȱ¿ëÇÑ Äõ¸®

 

 

16.3 Çà¿­ º¯È¯ Äõ¸®

 

 

16.4 Äõ¸®¹® ÅëÇÕÀ¸·Î SQL È£Ã⠴ܼøÈ­

 

 

 

17.ÀûÀýÇÑ ÇÔ¼ö»ç¿ë Æ©´×

486

 

17.1 Á¶°ÇÀý(Where) ¾È¿¡¼­ ÇÔ¼ö »ç¿ëÀÇ ¿µÇâ

 

 

17.2 ÀûÀýÇÑ ÇÔ¼öÀÇ »ç¿ë

 

 

17.3 ÇÔ¼öÀ» »ç¿ëÇÏ¿© º¹ÀâÇÑ Äõ¸®À» ´Ü¼øÈ­

 

 

17.4 ºÐ¼®(Analytic) ¹× Åë°è(Ranking) ÇÔ¼öÀÇ È°¿ë

 

 

 

 

 

ºÎ·Ï

506

 

ºÎ·Ï1. ¿À¶óŬ10g Á¦Ç°ºñ±³ ¹× ¼³Ä¡

 

 

ºÎ·Ï2. »ç¿ø°ü¸®DB ½ºÅ°¸¶ »ý¼º

 

 

ºÎ·Ï3. SQL ±¸¹®ºÐ¼® Åë°è󸮱â SqlArt

 

 

 

 

 

 

Ã¥ ±¸¸Å

 


eb05. ¿À¶óŬ ½Ç¹«È°¿ë SQL Æ©´×2

 

 

Ã¥³»¿ë Àüü¿ä¾à (Second Edition)

 

 


Á¦1ºÎ´Â ¿À¶óŬ SQLÀ» Æ©´×Çϱâ À§Çؼ­ ¾Ë¾Æ¾ß ÇÏ´Â Áö½ÄµéÀ» ¼³¸íÇÑ´Ù.  1Àå°ú 2ÀåÀº DBMS ±¸¼º¿ø¸®¿¡ ´ëÇØ¼­ ¼³¸íÇϰí, 3ÀåºÎÅÍ 6Àå±îÁö´Â SQL ½ÇÇൿÀÛÀ» ½Ç½À¿¹Á¦¸¦ ÅëÇÏ¿© È®ÀÎÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ´Ù¸¶Áö¸·À¸·Î 7Àå¿¡¼­ ¿À¶óŬ Æ©´×ÀÇ ÀüüÀûÀÎ È帧¿¡ ´ëÇÏ¿© ±â¼úÇÑ´Ù.

 

l  Á¦1ÀåÀº ¿À¶óŬ DBMS ¼­¹öÀÇ ³í¸®Àû ¹× ¹°¸®Àû ±¸Á¶¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ùµ¥ÀÌÅͺ£À̽º ±¸Á¶Ã¼¿Í ÀúÀåÀåÄ¡°ü¸®, ¸Þ¸ð¸® ±¸Á¶Ã¼¿Í ÇÁ·Î¼¼½ºµé, ¿À¶óŬ ³×Æ®¿öÅ© ¼­ºñ½º µîÀÇ ¼³¸íÀ» ÅëÇÏ¿© ¿À¶óŬ ¼­¹öÀÇ ³»ºÎÀûÀÎ µ¿ÀÛÀ» ÀÌÇØÇÑ´Ù.

 

l  Á¦2ÀåÀº µ¥ÀÌÅͺ£À̽º¸¦ ³í¸®ÀûÀÎ ±¸Á¶Ã¼µé·Î Ç¥ÇöÇÏ´Â ½ºÅ°¸¶¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù½ºÅ°¸¶ °´Ã¼µé, Å×À̺í, ºä, À妽º, Ŭ·¯½ºÅÍ µîÀÇ ±¸Á¶¿¡ ´ëÇÏ¿© ÀÌÇØÇÑ´Ù.

 

l  Á¦3ÀåÀº ¿À¶óŬ ¿ÉƼ¸¶ÀÌÀú¿¡ ´ëÇØ¼­ ÀÌÇØÇϰí, ¿ÉƼ¸¶ÀÌÀú°¡ »êÃâÇÏ´Â SQL ½ÇÇà°èȹ¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù½ÇÇà°èȹ ÆÇµ¶À» ÅëÇÏ¿©, ¿ÉƼ¸¶ÀÌÀú°¡ SQL ¹®ÀåµéÀ» ¾î¶»°Ô ½ÇÇàÇÏ´ÂÁö ÀÌÇØÇϰí, ½ÇÇà°èȹÀ» ¿øÇÏ´Â ¹æÇâÀ¸·Î Á¦¾îÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

 

l  Á¦4ÀåÀº ¾Õ¿¡¼­ ¼Ò°³ÇÑ À̷еéÀ» È®ÀåÇØ¼­, ¿ÉƼ¸¶ÀÌÀú°¡ ÇÏ´Â Àϵé(¿¬»êÀÚ)¿¡ ´ëÇØ¼­ »ó¼¼ÇÏ°Ô ¼³¸íÇÑ´Ùºñ¿ë±âÁØ ¿ÉƼ¸¶ÀÌÀú(CBO)°¡ ¾î¶»°Ô Ç¥Çö½ÄµéÀ» Æò°¡Çϰí Á¤ÇØÁø ¿¬»êµéÀ» ¼öÇàÇÏ´ÂÁö ±â¼úÇÑ´Ùµ¿ÀÏÇÑ ¸ñÇ¥¸¦ Á» ´õ È¿À²ÀûÀ¸·Î ´Þ¼ºÇϱâ À§ÇÏ¿©, CBO°¡ ¾î¶»°Ô SQL ¹®ÀåµéÀ» ´Ù¸¥ °ÍÀ¸·Î º¯È¯ÇÏ´ÂÁö¿¡ ´ëÇØ¼­µµ ¼³¸íÇÑ´Ù.

 

l  Á¦5ÀåÀº ºñ¿ë±âÁØ ¿ÉƼ¸¶ÀÌÀú(CBO)¸¦ À§ÇÑ Åë°èÀÚ·áµé ¼öÁý°ú, À̰ÍÀÇ »ç¿ëÀÌ ¿Ö Áß¿äÇÑÁö¸¦ ¼³¸íÇÑ´ÙÅë°èÀÚ·á ¼öÁý¹æ¹ý°ú µ¥ÀÌÅÍ »çÀü¿¡ »êÃâµÇ¾î ÀÖ´Â Åë°èÀÚ·áµéÀ» Ȱ¿ëÇÏ´Â °Í¿¡ ´ëÇØ¼­ ÀÌÇØÇÑ´Ù.

 

l  Á¦6ÀåÀº sql_trace¸¦ ÅëÇÏ¿© SQL ½ÇÇàÀ» ÃßÀûÇÑ ³»¿ëÀ» ÆÇµ¶ÇÏ´Â µµ±¸ÀÎ TKPROF¿¡ ´ëÇÏ¿© ¼³¸íÇÑ´Ù.   À̰ÍÀ» »ç¿ëÇÏ¿© ¼­¹ö¿¡¼­ ½ÇÇàµÇ´Â SQLµéÀÇ ½ÇÇà ºñ¿ëÀ» Æò°¡Çϰí, SQL Æ©´×¿¡ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

 

l  Á¦7ÀåÀº ¿À¶óŬ Æ©´×ÀÇ ÀüüÀûÀÎ È帧¿¡ ´ëÇÏ¿© ±â¼úÇÑ´Ù¿À¶óŬ Æ©´× ÀýÂ÷¿¡ °üÇÑ Á¤º¸µéÀ» ¼Ò°³Çϰí, ¿À¶óŬ SQL Æ©´×¿¡ ´ëÇÏ¿© ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÑ´Ù.

 

Á¦2ºÎ´Â SQL ¿¹Á¦µéÀ» ½Ç½ÀÇϸ鼭, Á¦1ºÎ¿¡¼­ ÇнÀÇÑ À̷еéÀ» ½ÇÁ¦ÀûÀ¸·Î È®ÀÎÇϰí, SQLÀÇ ¼º´ÉÀ» Æò°¡ÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ´Ù.  ½Ç½Ã°£À¸·Î SQL ½ÇÇàºñ¿ëÀ» Æò°¡Çϱâ À§Çؼ­ sql_trace, TKPROF ¸í·ÉÀ» Ȱ¿ëÇϹǷÎ, ¹Ýµå½Ã Á¦6ÀåÀÇ ³»¿ëµéÀ» ÀÌÇØÇϰí ÀÖ¾î¾ß ÇÑ´Ù.

 

l  Á¦8ÀåÀº Where Á¶°ÇÀýÀÌ ´ÜÀÏ ¼ú¾î·Î µÇ¾î ÀÖ´Â Äõ¸®¹®ÀÇ ¼º´ÉÀ» ºñ±³ ºÐ¼®ÇÑ´Ù´ÜÀÏ ¼ú¾î ³í¸®°¡ µîÈ£, ºÎÁ¤, ¹üÀ§ Á¶°ÇÀ¸·Î µÇ¾îÀÖ´Â Äõ¸®¹®¿¡ ´ëÇØ¼­, ¿ÉƼ¸¶ÀÌÀú°¡ ¾î¶² ½ÇÇà°èȹÀ» »êÃâÇÏ´ÂÁö ÀÌÇØÇÑ´Ù¶ÇÇÑ, ÁýÇÕ¿¬»êÀÚÀÇ Á¤·Ä(Sort) ÀÛ¾÷¿¡ ´ëÇÑ ºñ¿ëµµ ºÐ¼®ÇÑ´Ù.

 

l  Á¦9ÀåÀº ½Ç½À¿¹Á¦µéÀ» ÅëÇÏ¿© À妽º¿¡ ´ëÇÑ ¼º´ÉÀ» ºÐ¼®ÇÏ°í Æ©´×¿¡ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÑ´Ù¿ÉÆ¼¸¶ÀÌÀú°¡ À妽º¸¦ Ȱ¿ëÇÒ ¶§, Ŭ·¯½ºÅ͸µ ÆÑÅÍ(Clustering Factor), ¼±Åõµ(Selectivity), ¹Ðµµ(Density), ¹°¸®ÀûÀÎ disk I/O µîÀ» ¾î¶»°Ô Æò°¡ÇÏ´ÂÁö ¼³¸íÇѴپƿ﷯, °áÇÕ À妽º¿Í ÇÔ¼ö±â¹Ý À妽º¸¦ ½Ç½À¿¹Á¦¸¦ ÅëÇÏ¿© ÀÌÇØÇϰí, À妽º »ç¿ëÀ» Á¦¾îÇÏ´Â ¹æ¹ýµéÀ» ±â¼úÇÑ´Ù.

 

l  Á¦10ÀåÀº 2°³ ÀÌ»óÀÇ Å×ÀÌºí¿¡ ÀÖ´Â Çà(rows)µéÀ» »óÈ£ ¿¬°áÇÏ´Â Á¶ÀÎ(Join)¿¡ ´ëÇØ¼­ ¼º´É ºÐ¼®ÇÑ´Ù.  SQL ¿¹Á¦µéÀ» ½Ç½ÀÇϸ鼭, Á¶ÀÎÀÇ ¼º´ÉÀ» Æò°¡ÇÏ´Â ¹æ¹ýµéÀ» ±â¼úÇϰí, ½ÇÇà È¿À²À» ÃÖÀûÈ­ÇÏ´Â ¿ä¼Òµé¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù.

 

l  Á¦11ÀåÀº ¿ÉƼ¸¶ÀÌÀú°¡ ¼­ºêÄõ¸®¸¦ ¾î¶»°Ô ó¸®ÇÏ´ÂÁö ½Ç½ÀÇÑ´Ù.  SQL¹®¾È¿¡ ¶Ç ´Ù¸¥ SQL¹®ÀÌ ÁßøµÈ ÇüÅ·ΠµÇ¾î ÀÖ´Â ¼­ºêÄõ¸®¸¦ ¿ÉƼ¸¶ÀÌÀú°¡ ¾î¶»°Ô Æò°¡ÇÏ´ÂÁö È®ÀÎÇϰí, ÃÖÀûÈ­ ÇÏ´Â ¿ä¼Òµé¿¡ ´ëÇÏ¿© ¼³¸íÇѴپƿ﷯, ¼­ºêÄõ¸® ÇüÅ·ΠSQLÀ» ºÎºÐ¹üÀ§ ó¸®ÇÏ´Â IN°ú EXISTS ±¸¹®À» ¿¹Á¦¸¦ ÅëÇÏ¿© ½Ç½ÀÇϰí, ½ÇÇàºñ¿ëÀ» Æò°¡ÇÑ´Ù.

 

Á¦3ºÎ´Â ½Ç¹«¿¡¼­ SQL Æ©´×ÇÑ »ç·ÊµéÀ» ¼³¸íÇÑ´Ù.  ½Ç¹«¿¡¼­ »ç¿ëÇÑ Äõ¸®¹®µéÀÇ ¹®Á¦Á¡À» ºÐ¼®ÇÏ¿©, ¾î¶»°Ô ½ÇÇàºñ¿ëÀ» ÃÖÀûÈ­ ÇÏ´ÂÁö ±â¼úÇÑ´Ù.

 

l  Á¦12ÀåÀº À妽º¸¦ Ȱ¿ëÇÑ Æ©´×»ç·Ê¸¦ ¼³¸íÇÑ´ÙÀ妽º ÈùÆ® »ç¿ë, È¿À²ÀûÀÎ À妽º Ä÷³ »ç¿ë, ¸Å°³º¯¼ö·Î Àü´ÞµÇ´Â °ª¿¡ ´ëÇÑ Æ©´×»ç·Ê¸¦ º¸¿©ÁØ´Ù.

 

l  Á¦13ÀåÀº Á¶ÀÎ Æ©´×»ç·Ê¸¦ ¼³¸íÇÑ´ÙNested Loop,  Hash Á¶ÀÎ Â÷ÀÌÁ¡, Á¶ÀÎ ¼ø¼­ÀÇ Á߿伺, 󸮹üÀ§ÀÇ ÃÖ¼ÒÈ­, µå¶óÀ̺ù Å×ÀÌºí ¹× ¿¬°á°í¸® Ä÷³ÀÇ Á߿伺¿¡ ´ëÇÑ »ç·Ê¸¦ º¸¿©ÁØ´Ù.

 

l  Á¦14ÀåÀº ORÁ¶°Ç Æ©´×»ç·Ê¸¦ ¼³¸íÇÑ´Ùº¹ÀâÇÑ ORÁ¶°Ç ´Ü¼øÈ­(Decode Ȱ¿ë), OR Á¶°ÇÀ» Union All·Î ó¸®, Union AllÀ» Inlist Iterator·Î Æ©´×ÇÑ »ç·Ê¸¦ º¸¿©ÁØ´Ù.

 

l  Á¦15ÀåÀº ºÎºÐ¹üÀ§ 󸮸¦ »ç¿ëÇÑ Æ©´×»ç·Ê¸¦ º¸¿©ÁشٺκйüÀ§ 󸮷ΠÀ¯µµ, semi-join Æ©´×(EXISTS,IN Ȱ¿ë), anti-join Æ©´×(NOT EXISTS, NOT IN Ȱ¿ë), À¥°Ô½ÃÆÇ ÇüÅÂÀÇ ºÎºÐ¹üÀ§ ó¸® »ç·Ê¸¦ ¼³¸íÇÑ´Ù.

 

l  Á¦16ÀåÀº ´Ù¾çÇÑ Á¶°Ç¹® Æ©´×»ç·Ê¸¦ º¸¿©ÁØ´ÙÄõ¸®¹®¿¡¼­ if Á¶°Ç ó¸®, Case ¹®À» Ȱ¿ëÇÑ Äõ¸®,  Çà¿­ º¯È¯ Äõ¸®, Äõ¸®¹® ÅëÇÕÀ¸·Î SQL È£Ã⠴ܼøÈ­µîÀÇ »ç·Ê¸¦ ±â¼úÇÑ´Ù.

 

l  Á¦17ÀåÀº ÀûÀýÇÑ ÇÔ¼ö»ç¿ë Æ©´×»ç·Ê¸¦ ¼³¸íÇÑ´ÙÁ¶°ÇÀý(Where) ¾È¿¡¼­ ÇÔ¼ö »ç¿ëÀÇ ¿µÇâ, ÀûÀýÇÑ ÇÔ¼öÀÇ »ç¿ë, ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© º¹ÀâÇÑ Äõ¸®¸¦ ´Ü¼øÈ­, ºÐ¼®(Analytic) ¹× Åë°è(Ranking) ÇÔ¼öÀÇ È°¿ëµîÀ» º¸¿©ÁØ´Ù.

 

ºÎ·Ï¿¡¼­´Â ¿À¶óŬ10g¿Í »ç¿ø°ü¸®DB ½ºÅ°¸¶ ¼³Ä¡¹æ¹ýÀ» ¼³¸íÇÑ´Ù.  À̰ÍÀ¸·Î ½Ç½À¿¹Á¦µéÀ» ½ÇÇàÇÒ ¼ö Àִ ȯ°æÀÌ ±¸ÃàµÈ´Ù¾Æ¿ï·¯ SQL ±¸¹® Åë°è󸮱âÀÎ SqlArt¸¦ ¼Ò°³ÇÑ´Ù.

 

 

Ã¥ ±¸¸Å

 


eb05. ¿À¶óŬ ½Ç¹«È°¿ë SQL Æ©´×2

 

 

¹®¼­ Ç¥ÁØ

 


Á¦#Àå ´ëÁ¦¸ñ Ç¥ÁØ ¹ÙÅÁ 20 ÁøÇϰÔ, ¹®¼­Ç¥ÁØ

º»¹® ³»¿ë(contents) ÆùÆ®´Â Ç¥ÁØ ¹ÙÅÁ Å©±â 10

 

#.# ÁßÁ¦¸ñ Ç¥ÁØ ¹ÙÅÁ ÆùÆ® Å©±â 16 ÁøÇϰÔ

º»¹® ³»¿ë(contents) ÆùÆ®´Â Ç¥ÁØ ¹ÙÅÁ Å©±â 10

 

¼ÒÁ¦¸ñ Ç¥ÁØ ¹ÙÅÁ ÆùÆ® Å©±â 14 ÁøÇϰÔ

º»¹® ³»¿ë(contents) ÆùÆ®´Â Ç¥ÁØ ¹ÙÅÁ Å©±â 10

 

¿¹Á¦´Â »ç°¢Çü Å׵θ® ¾È¿¡ ÀÖÀ½¿¹Á¦ÄÚµå ¸íĪ(Caption)ÀÌ ÀÖ´Â °ÍÀº ¿ÜºÎÆÄÀÏ·Î Á¸ÀçÇÔ.

 

¿¹Á¦ÄÚµå ¸íĪ(Caption)Àº (½Ç½ÀÄõ¸®¹®)SQL##_###.sql (SQL#Àå_#¼ø¹ø .sql ÇüÅÂÀÇ ÆÄÀϸí)

¿¹Á¦ÄÚµå ¸íĪ(Caption)Àº (TKPROF)SQL##_###.prf (SQL#Àå_#¼ø¹ø .prf ÇüÅÂÀÇ ÆÄÀϸí)

¿¹Á¦ ¾ÈÀÇ ³»¿ëÀº MS Gothic ÆùÆ® Å©±â´Â 9.  ¿¹Á¦ ³»¿ëÀº ÆíÁý¾øÀÌ ±×´ë·Î...

 

(½Ç½ÀÄõ¸®¹®)SQL01_001.sql

(TKPROF)SQL01_001.prf

MS Gothic ÆùƮũ±â 9

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          1          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        2      0.26       0.26          0       6237          0           1

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.26       0.26          0       6238          0           1

 

Rows     Row Source Operation

-------  ---------------------------------------------------

      1  SORT AGGREGATE (cr=6237 pr=0 pw=0 time=260076 us)

1000000   TABLE ACCESS FULL TBL_NORMAL (cr=6237 pr=0 pw=0 time=1000028 us)

 

Ç¥¾ÈÀÇ ³»¿ëÀº MS Gothic ÆùÆ® Å©±â´Â 9

Ç¥¿¡ ´ëÇÑ ¸íĪ(Caption)Àº ¾øÀ½

Å×À̺í¸í

½ÇÇà°èȹ

count

cpu

elapsed

disk

query

current

rows

TBL_NORMAL

TABLE ACCESS FULL

5

2.29

2.90

1476

6238

4

1

TBL_RANDOM

SORT GROUP BY

5

4.84

5.71

6377

6259

4

1

 

 

º»¹®¾ÈÀÇ ±×¸²Àº MS-Word ¿¡¼­ ÆíÁýµÈ °Í°ú JPG ÆÄÀÏ·Î »ðÀÔµÈ °Í 2°¡Áö Á¾·ù°¡ ÀÖÀ½.

 

¾Æ·¡ ±×¸²Àº MS-Word ¿¡¼­ ÆíÁýµÈ °ÍÀ̹ǷΠ¿ÜºÎÆÄÀÏÀÌ ¾øÀ½.

MS-Word ¿¡¼­ ÆíÁýµÈ ±×¸²Àº ¸íĪ(Caption)ÀÌ ¾øÀ½.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


¾Æ·¡ ±×¸²Àº JPG ÆÄÀÏ·Î ¸¸µé¾îÁø °ÍÀ̹ǷΠ¿ÜºÎÆÄÀÏ·Î Á¸ÀçÇÔ.(JPGÆÄÀÏ »ðÀÔ)

±×¸² ¸íĪ(Caption)Àº ¿ÜºÎÆÄÀÏ À̸§°ú µ¿ÀÏÇÔ.

 

 (±×¸²)IMG##_###  (IMG#Àå_#¼ø¹ø .jpg ÇüÅÂÀÇ ÆÄÀϸí)

(±×¸²)IMG01_001

 

 

ÀúÀÚ ¼Ò°³

 


Á¤ÀçÁØ

 

ÇÊÀÚ´Â ÇÐâ½ÃÀý ¸¶ÀÌÅ©·Î¸¶¿ì½º¸¦ ¸¸µé¾ú°í, 10³âµ¿¾È ½×¾Æ¿Â IT°ü·Ã °³¹ß °æÇèÀ» ¹ÙÅÁÀ¸·Î ¡°¿À¶óŬ½Ç¹«È°¿ëSQLÆ©´×(ÇýÁö¿ø)¡±À̶ó´Â Ã¥À» ÁýÇÊÇÏ¿´´Ù¼­¿ï´ëº´¿ø Àü»ê½Ç¿¡¼­ µ¥ÀÌÅͺ£À̽º °ü·Ã ÀÏÀ» Çϸ鼭, ÇÐâ½ÃÀýºÎÅÍ ²ÙÁØÈ÷ ÇØ¿Â ¸®´ª½º ¿¬±¸¸¦ °è¼ÓÇϰí ÀÖ´ÙÆ¯È÷, ½ºÅÄÆ÷µå´ëÇб³ÀÇ John L. Hennessy ±³¼öÀÇ Àú¼­ ¡°Computer Organization and Design¡± Ã¥À» ÀÐ°í ±íÀº °¨¸íÀ» ¹Þ¾ÒÀ¸¸ç, ÄÄÇ»Åͱ¸Á¶ ¹× ÀڷᱸÁ¶ È¿À²¼º ¿¬±¸¸¦ ÅëÇÑ ±â¼ú¼­Àû ÁýÇÊ¿¡ ³ë·ÂÇϰí ÀÖ´Ù¶ÇÇÑ, ¿Â¶óÀÎ »ó¿¡¼­ Ä¿³Î¿¬±¸È¸(http://www.kernel.kr/) À¥»çÀÌÆ®¸¦ ¿î¿µÇÏ¸ç °ü·Ã±â¼úµéÀ» °øÀ¯Çϰí ÀÖ´Ù.

 

 

ÀúÀÚ ¼­¹®

ÇÊÀÚ´Â ÁßÇб³ ½ÃÀý, 8ºñÆ® ÄÄÇ»Å͸¦ óÀ½À¸·Î Á¢Çϸ鼭 ½ÅºñÇÑ ¸¶·Â°úµµ °°Àº È£±â½É¿¡ ºüÁ³´ø ±â¾ïÀÌ ¾ÆÁ÷µµ »ý»ýÇÏ´Ù±× ´ç½Ã¿¡´Â °í°¡¿´´ø ÄÄÇ»Å͸¦ »ç°í ½Í¾î, »õº®¿¡ ½Å¹®¹è´ÞÇÏ´Â ¾ÆµéÀÇ ¸ð½ÀÀÌ ¾È¾²·¯¿ö ºÎ¸ð´ÔÀº 8ºñÆ® ÄÄÇ»Å͸¦ »çÁ̴ּÙÇÏÁö¸¸, ÇÊÀÚ´Â ±×°ÍÀ» ±×³É Àç¹ÌÀÖ´Â °ÔÀÓ±â Á¤µµ·Î¸¸ »ç¿ëÇß´ø °ÍÀ» Áö±Ýµµ ÈÄȸÇϰí ÀÖ´Ù±×¶§´Â 8ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­(CPU)·Î ¾ÖÇûçÀÇ 6502, ÀÚÀÌ·Î±× Z80 ÀÌ Ãâ½ÃµÇ´ø ½Ã±â¿´°í, ÀÎÅÚÀÇ 16ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­ÀÎ 8086ÀÌ °³¹ßµÇ¾î, µð½ºÅ© µå¶óÀ̺ê¿Í °°Àº ÁÖº¯ÀåÄ¡µéÀ» ±¸µ¿ÇÏ´Â ¿î¿µÃ¼Á¦ÀÎ DOS(Disk Operating System)°¡ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®»ç¿¡ ÀÇÇØ¼­ °³¹ßµÇ¾î PC½ÃÀåÀÌ Çü¼ºµÇ´ø ½Ã±â¿´´Ù´ç½ÃÀÇ ÇÊÀÚ´Â ÄÄÇ»ÅÍÀÇ ±¸¼º¿ø¸®¸¦ ÀÌÇØÇÏÁö ¸øÇϰí ÀÖ¾ú´Ù.

 

ÀÌÈÄ, ´ëÇÐÀ» ´Ù´Ï¸é¼­ 1¼¼´ë ±â°è¾î(Assembly)·Î ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¸¦ ÅëÇÑ Á¦¾î±â¼úÀ» ¹è¿ì¸é¼­ ¹Ì·Î¸¦ ã¾Æ´Ù´Ï´Â ¼ÒÇü ·Îº¿Á¦ÀÛ¿¡ ÁýÁßÇØ º¸±âµµ Çϰí,  FORTRAN, COBOL, C++, Delphi µîÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¡¹ÖÀ» Çϱ⵵ Çß¾ú´ÙÇÏÁö¸¸, À̶§µµ ¿î¿µÃ¼Á¦°¡ Á¦°øÇØ ÁÖ´Â °³¹ßȯ°æ°ú ¼ÒÇÁÆ®¿þ¾î °³¹ßµµ±¸(SDK)µé¿¡ ´ëÇÑ È°¿ë¹ý¸¸ Áß¿äÇÏ°Ô »ý°¢ÇÏ´Ù º¸´Ï, ¿øÃµ ±â¼úÀ» ÀÍÈ÷°íÀÚ ÇÏ´Â ³ë·ÂÀÌ ºÎÁ·Çß´ÙÇÊÀÚ°¡ ÇöÀç ´À³¢°í ÀÖ´Â ÄÄÇ»ÆÃÀÇ ±âº» ±â¼úÀº, ÄÄÇ»ÅͰ¡ ÀÌÇØÇÏ´Â ÀڷᱸÁ¶¸¦ ¾î¶»°Ô È¿À²ÀûÀ¸·Î ±¸¼ºÇϴ°¡À̴ٿüÁ¦(OS)´Â °¢Á¾ ÄÄÇ»ÅÍ Çϵå¿þ¾îµéÀ» È¿À²ÀûÀ¸·Î Á¦¾îÇϱâ À§ÇÑ ÀڷᱸÁ¶ÀÇ ÁýÇÕüÀ̸ç, ÇÁ·Î±×·¡¹ÖÀº ÄÄÇ»ÅͰ¡ ¿øÇÏ´Â ÀڷᱸÁ¶¸¦ ÄÚµùÇÏ´Â ÀÛ¾÷ÀÌ´Ù.  DBMS(DataBase Management System)´Â ÄÄÇ»Å͸¦ ÅëÇÏ¿© ÀڷḦ ÅëÇÕÀûÀ¸·Î °ü¸®Çϱâ À§Çؼ­ ÀÚ·á󸮸¦ Ç¥ÁØÈ­ÇÑ ¼ÒÇÁÆ®¿þ¾îÀ̸ç, ÄÄÇ»ÅͰ¡ ÀÌÇØÇÏ´Â ÀڷᱸÁ¶¸¦ È¿À²ÀûÀ¸·Î ÄÚµùÇϴ ȯ°æÀ» Á¦°øÇØ ÁØ´Ù.

 

±¹¾î,¿µ¾î,¼öÇÐ ¼ºÀûÀ» Çлý¼ö¸¸Å­ ÀÔ·Â ¹Þ¾Æ¼­ °ú¸ñ¸¶´Ù ÇÕ°è, Æò±ÕÀ» »êÃâÇÏ¿© ÆòÁ¡À» ¸Å±â°í µî¼öÀ» °è»êÇÏ´Â ¼ºÀûó¸® ÇÁ·Î±×·¡¹ÖÀ» ÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ¼ºÀû ÀÚ·á°¡ ÀúÀåµÇ¾î ÀÖ´Â ÆÄÀÏ¿¡¼­ µ¥ÀÌÅ͸¦ ÀÐÀ¸¸é¼­, ÀýÂ÷ÀûÀ¸·Î for loop¹®À» µ¹¸®°í, ÇÕ°è¿Í Æò±ÕÀ» °è»êÇÏ¿© sortingÀ» ÅëÇÏ¿© µî¼ö¸¦ Á¤Çϰí, ¿øÇÏ´Â µ¥ÀÌÅ͸¦ search ÇÏ´Â °ÍÀ» ÀÏÀÏÈ÷ ÄÚµùÇÏ¿© ±¸ÇöÇØ¾ß ÇÑ´Ù±×·¯³ª, DBMS°¡ ÀÌ·¯ÇÑ ÀÛ¾÷À» È¿À²ÀûÀ¸·Î ó¸®ÇÒ ¼ö Àִ ǥÁØÀ» Á¦°øÇϱ⠶§¹®¿¡, ´ëºÎºÐÀÇ µ¥ÀÌÅÍ Ã³¸®´Â DBMSÀ» ÅëÇÏ¿© Çϰí ÀÖ°í, ¸¹Àº ¹ßÀüÀ» °ÅµìÇϰí ÀÖ´Ù.  DBMSÀ» Ȱ¿ëÇÒ ¶§, ÀýÂ÷ÀûÀÎ ÇÁ·Î±×·¥ ÄÚµùÇϵíÀÌ ¹Ýº¹(loop)°ú Á¶°Ç(if)À» ¹«ºÐº°ÇÏ°Ô »ç¿ëÇϸé ó¸®È¿À²ÀÌ ½É°¢ÇÏ°Ô ÀúÇϵǹǷÎ, DBMS ³»ºÎ¿¡¼­ 󸮵Ǵ ÀڷᱸÁ¶¸¦ ÀÌÇØÇϰí, À̰ÍÀ» Çѹø¿¡ È¿À²ÀûÀ¸·Î Äõ¸®ÇÏ´Â °ÍÀÌ ¹«¾ùº¸´Ù Áß¿äÇÏ´Ù.

 

µ¥ÀÌÅÍó¸®ÀÇ ÇÙ½ÉÀº sorting °ú search ÀÌ´ÙÀ̰ÍÀº ó¸®ÇϰíÀÚ ÇÏ´Â µ¥ÀÌÅÍÀÇ ¼ö¿Í ³»ºÎ ¾Ë°í¸®Áò¿¡ µû¶ó¼­ ¾öû³­ ½ÇÇà¼Óµµ Â÷À̰¡ ¹ß»ýÇÑ´Ù¼ö¹é¸¸~¼öõ¸¸°³ÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇϰíÀÚ ÇÑ´Ù¸é, ÀڷᱸÁ¶¸¦ ÃÖ´ëÇÑ È¿À²ÀûÀ¸·Î ¼³°èÇØ¾ß Çϸç, Åë°èºÐÆ÷, ÀúÀ广½Ä ¶ÇÇÑ °í·ÁÇØ¾ß ÇÑ´Ù. DBMS Æ©´×Àº ÀÚ·á󸮸¦ ºñÈ¿À²ÀûÀ¸·Î ÇÏ´Â ºÎºÐÀ» ã¾Æ¼­ ¹Ù·ÎÀâ¾Æ °¡´Â ÀÛ¾÷À̸ç, ¸íÈ®ÇÑ ¿ø¸® ÀÌÇØ¸¦ ¹ÙÅÁÀ¸·Î ÇÑ´Ù.

 

¿ì¸®´Â ÇÁ·Î±×·¥À» ´«¿¡ º¸ÀÌ´Â ¿ÜÇüÀ̳ª µðÀÚÀΰú °°Àº ½Ã°¢ÀûÀÎ ¸é¸¸ °­Á¶ÇÏ´Â °æÇâÀÌ ÀÖ´ÙÇÏÁö¸¸ °ÇÃ๰ ³»ºÎÀÇ ¼³°è¿Í ±âÃʰø»ç¸¦ ưưÈ÷ ÇÏÁö ¾ÊÀ¸¸é, °ÇÃ๰¿¡ ´ëÇÑ ¾ÈÁ¤¼º°ú ½Å·Úµµ°¡ ¶³¾îÁ®, Àå±âÀûÀÎ ¹ßÀüÀ» ±â´ëÇÒ ¼ö ¾øµíÀÌ, ÇÁ·Î±×·¡¹Ö ¶ÇÇÑ ±âÃÊÁö½ÄÀÌ µÇ´Â ÀڷᱸÁ¶¿Í ³»ºÎ ¾Ë°í¸®ÁòÀÇ ¸íÈ®ÇÑ ÀÌÇØ¸¦ ¹ÙÅÁÀ¸·Î ÄÚµùÇØ¾ß ÇÑ´Ù¿À´Ã³¯ Á¤º¸Ã³¸®¸¦ ÇϰíÀÚ ÇÏ´Â ¸ðµç ¾÷¹«ºÐ¾ß¿¡¼­ DBMS¸¦ Ȱ¿ëÇϰí ÀÖ°í, ¿À¶óŬÀº ¼±µµÀûÀÎ ¿ªÇÒÀ» Çϰí ÀÖ´ÙÁ¤º¸Ã³¸® ºÐ¾ß¿¡¼­ °æÀï·ÂÀ» °®Ãß¾î ³ª°¡±â À§Çؼ­ ¿À¶óŬ DBMS¸¦ ÀÌÇØÇϰí, Àß È°¿ëÇÏ´Â °ÍÀº Áß¿äÇÑ °¡Ä¡°¡ µÇ¾ú´Ù¾Æ¿ï·¯, µ¥ÀÌÅͺ£À̽ºÀÇ ¿ø¸®¸¦ ÀÌÇØÇÏ°í °³¹ßÇØ ³ª°¡°íÀÚ ÇÏ´Â ³ë·ÂÀÌ ÇÊ¿äÇÏ´Ù.

 

ÀÌ Ã¥ÀÚ´Â ÇÊÀÚ°¡ ½Ç¹«¿¡¼­ ¿À¶óŬ DBMS¸¦ »ç¿ëÇϸ鼭 ½×¾Æ¿Â Áö½ÄµéÀ» Á¤¸®Çϰí, ¿À¶óŬ ±â¼ú¹®¼­ ¿ø¹®À» Âü°íÇϸ鼭 ¿öµå·Î ÇϳªÇϳª ŸÀÌÇÎÇÏ¿© ÁýÇÊÇÑ °ÍÀÌ´Ù¹®À帶´Ù ÇÊÀÚÀÇ ¶¡¹æ¿ïÀÌ ½º¸ç ÀÖÀ½À» ÀÌÇØÇØ ÁÖ±æ ¹Ù¶õ´Ù³»¿ëÀ» Á¤È®ÇÏ°í °£°áÇÏ°Ô Ç¥ÇöÇϰíÀÚ ³ë·ÂÇßÀ¸³ª, ¿À·ù³ª ¹ÌÈíÇÑ Á¡µéÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ Á¡µéÀÌ ¹ß°ßµÇ¸é ¸¹Àº Á¶¾ð°ú Ãæ°í Àֱ⸦ ¹Ù¶õ´Ù¾Æ¿ï·¯, Ã¥ÃâÆÇ¿¡ ¸¹Àº µµ¿òÀ» ÁֽŠÇýÁö¿øÀÇ °ü°èÀںеé°ú ÀÌ¿µÈñ ºÎÀå´Ô²² °¨»çÀÇ ¸¶À½À» ÀüÇÑ´Ù.

 

Á¤ÀçÁØ(³×ÀÌÆ®¿Â ¸Þ½ÅÀú: rgbi3307@nate.com)

 

 

Ã¥ ±¸¸Å

 


eb05. ¿À¶óŬ ½Ç¹«È°¿ë SQL Æ©´×2

 

 

 

 

À̵¿: Home à ebook à eb05

 

ÁÖ¼Ò: http://www.kernel.bz/book/eb/eb05.htm

ÀÌÆäÀÌÁöÀÇ ÀúÀÛ±ÇÀº

Á¦¸ñ: ¿À¶óŬ ½Ç¹«È°¿ë SQL Æ©´×2 (Second Edition)

ÀúÀÚ¿¡°Ô ÀÖ½À´Ï´Ù

ÀÛ¼º: Á¤ÀçÁØ(rgbi3307(at)nate.com)

ÃÖ±Ù¼öÁ¤ÀÏ:2011-10-04