Ã¥ÀÇ ±¸¼º°ú °³¿ä
SQLÀÇ Àü¹ÝÀ» ±ò²ûÇÏ°Ô ±×¸®°í ´Ü°èº°·Î Àß Á¤¸®ÇÑ Ã¥ÀÌ´Ù. ´Ù·ç°í ÀÖ´Â ³»¿ëÀ» °£´ÜÈ÷ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
RDBMS°¡ ź»ýÇϱâ±îÁö ¿ª»çÀÇ Àü¹Ý°ú ½Ã´ëÀû Çʿ伺À» ÈȾ ÈÄ µ¥ÀÌÅͺ£À̽º¸¦ ¼³Ä¡ÇÏ°í ½Ç½ÀÇÒ µ¥ÀÌÅ͸¦ ¸¶·ÃÇÑ´Ù. ÀÌÈÄ ±âº»ÀûÀÎ
CRUD
¸¦ ´Ù·é ÈÄ,
Where
Àý¿¡ ÇØ´çÇÏ´Â ÇÊÅ͸µÀ» ¹è¿î´Ù.
´ÙÁß Å×À̺íÀ» ±â¹ÝÀ¸·Î ÇÑ ±âº»
Á¶ÀÎ
, µ¥Ä«¸£Æ® ¿¬»ê¿¡ ¼ÓÇÏ´Â
¼öÇÐÀÇ ÁýÇÕ ¿¬»ê
, ÀÚÁÖ È°¿ëÇÏ´Â µ¥ÀÌÅÍÀÇ
±âº» Á¶ÀÛ
À» ´Ù·é´Ù. ÀÌ¾î¼ SQL ¿¬»ê Áß °¡Àå ¸¹ÀÌ È°¿ëµÇ´Â
Áý°è
¿¬»ê°ú ¸ñÀûÀ» ´Þ¼ºÇϱâ À§ÇÑ Àӽà °Åó
¼ºêÄõ¸®
¸¦ ÀÍÈù´Ù.
10ÀåºÎÅÍ´Â Áß±Þ ¼öÁØ¿¡ ù ¹ßÀ» ³»µó´Âµ¥ OUTER JOIN°ú °°Àº
½ÉȰúÁ¤ÀÇ Á¶ÀÎ
¿¡ ´ëÇØ ÇнÀÇÑ´Ù. RDBMSÀÇ À̸§¿¡¼µµ ¾Ë ¼ö ÀÖµí ¿©·¯ Å×ÀÌºí °£ÀÇ °ü°è°¡ °¡Àå Áß¿äÇÑ °³³äÀ̱⠶§¹®¿¡ ÀÌ Join ¿¬»êÀ» ÀÚÀ¯ ÀÚÀç·Î ´Ù·ê ¼ö ÀÖ¾î¾ß ÀǹÌÀÖ´Â µ¥ÀÌÅÍ È°¿ëÀ̳ª ºÐ¼®À» À§ÇÑ ³»°øÀ» ½×À» ¼ö ÀÖ´Ù. °³ÀÎÀûÀ¸·Î 10ÀåÀº °¡Àå Áß¿äÇÑ ÀåÀ̶ó »ý°¢ÇÑ´Ù.
À̾î¼
Case
¹®À» ÇнÀÇϰí
Æ®·£Àè¼Ç
ÀÇ ±âº» °³³äÀ» ´Ù·é´Ù. Æ®·£Àè¼Ç ¶ÇÇÑ RDBMSÀÇ Áß¿äÇÑ °³³ä Áß ÇϳªÀε¥ ACID¸¦ º¸ÀåÇϱâ À§ÇØ ÇϳªÀÇ Æ®·£Àè¼ÇÀ» LockÀ» ÅëÇØ º¸È£ÇÏ´Â °úÁ¤À» ½±°Ô Àß ¼³¸íÇϰí ÀÖ´Ù.
´ÙÀ½À¸·Î ¼³¸íÇÏ´Â
À妽º
¿Í °¢Á¾
Á¦¾àÁ¶°Ç
Àº ¼º´É°ú RDBMSÀÇ Æ¯¼ºÀ» À¯ÁöÇϱâ À§ÇÑ ¼ö´ÜÀ¸·Î Áß¿äÇÑ °³³äµéÀ̸ç
View, Metadata
·Î º¸´Ù Æí¸®ÇÑ µ¥ÀÌÅÍ È°¿ë ¹æ¹ýÀ» ÀÍÈù´Ù. ±× ¿Ü ÇÑ Â÷¿ø ³ôÀº ºÐ¼®À» À§ÇÑ
µ¥ÀÌÅÍ À©µµ¿ì³ª ¸®Æ÷ÆÃ ÇÔ¼ö
¸¦ ÀÍÈ÷¸ç
ÆÄƼ¼Ç
À» ÅëÇÑ ´ë¿ë·® µ¥ÀÌÅͺ£À̽º ó¸® ±â¼úÀ» ÀÍÈù´Ù.
¸¶Áö¸·À¸·Î´Â ¾ÆÆÄÄ¡ ¿ÀÇ ¼Ò½ºÀÎ
µå¸±
À» ¼Ò°³Çϸç MongoDB¸¦ SQL·Î Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ÀÍÈ÷°Ô µÇ´Âµ¥ RDBMS ÀÚü¿¡ ±×Ä¡Áö ¾Ê°í NoSQL Áø¿µ°úÀÇ È£È¯¼ºÀ» °í·ÁÇÑ Á¡ÀÌ ÀλóÀûÀ̾ú´Ù.
SQLÀÇ Á߿伺
SQLÀ» ½ÇÀü¿¡¼ 20³â °¡±îÀÌ ´Ù·ï¿Â »ç¶÷À¸·Î½á ÀÌ Á¤µµ¸é SQLÀ» °í±ÞÀ¸·Î ´Ù·ç´Â µ¥ ÇÊ¿äÇÑ 80%ÀÇ ±âÃÊ´Â Ãæ½ÇÈ÷ ¹Ý¿µÇÑ Ã¥À̶ó°í Æò°¡ÇÏ°í ½Í´Ù.
SQLÀº RDBMS¸¦ ´Ù·ç±â À§ÇÑ Å»ýÀûÀÎ ¸ñÀûÀ¸·Îµµ Áß¿äÇÏÁö¸¸, ƯÈ÷ ¿äÁòÀº ´õ Áß¿äÇÑ ½ºÅ³ÀÌ µÈ °Í °°´Ù. AI¿Í ºòµ¥ÀÌÅÍ ½Ã´ë¿¡ ¼ö¿ä°¡ ³ô¾ÆÁ³±â ¶§¹®ÀÌ´Ù. µ¥ÀÌÅÍ´Â ¼º°Ý¿¡ µû¶ó RDBMS¿Í °°Àº Tabular ¼º°ÝÀÇ Á¤Çüµ¥ÀÌÅ͸¸ Á¸ÀçÇÏ´Â °Íµµ ¾Æ´Ï°í, Json°ú °°Àº ¹ÝÁ¤Çü µ¥ÀÌÅÍ¿¡¼ºÎÅÍ À̹ÌÁö, ÅØ½ºÆ®¿Í °°Àº ºñÁ¤Çü µ¥ÀÌÅ͵µ Á¸ÀçÇÑ´Ù.
Áö±Ý±îÁö Àηù°¡ ½×¾Æ ¿Â ´ë´Ù¼öÀÇ À¯ÀǹÌÇÑ Áö½ÄµéÀÌ ¿©ÀüÈ÷ RDBMS·Î ±¸ÃàµÇ¾î Àִµ¥´Ù SQLÀÌ °¡Áö°í ÀÖ´Â ±ò²ûÇÔ°ú ½¬¿î ³À̵µ¶ó´Â ÀåÁ¡ ¶§¹®¿¡ NoSQL Áø¿µ ¹ÝÁ¤Çü µ¥ÀÌÅÍÀÇ ¿µ¿ªµµ SQL·Î Á¢±ÙÇÏ·Á´Â ½Ãµµ°¡ Áö¼ÓÀûÀ¸·Î À̾îÁö°í ÀÖ´Ù. ÀÌ Ã¥ 18Àå¿¡¼ ´Ù·ç´Â ¾ÆÆÄÄ¡ µå¸±ÀÌ ±×·± ½Ãµµ Áß ÇϳªÀÌ´Ù. Hadoop ¿¡ÄÚ Áø¿µÀÇ Hiveµµ ¸¶Âù°¡Áö´Ù.
µ¥ÀÌÅÍ ºÐ¼® Áø¿µ¿¡¼ÀÇ º¯È¿¡¼µµ SQLÀÇ Á߿伺À» ´À³¥ ¼ö ÀÖ´Ù. RÀÇ µ¥ÀÌÅÍÇÁ·¹ÀÓÀº Á¤Çü µ¥ÀÌÅ͸¦ ºÐ¼®Çϴµ¥ °¡Àå ¸¹ÀÌ È°¿ëÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶Àε¥ ÀÚü ±â´É ¿Ü SQLÀ» Ȱ¿ëÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇϰí ÀÖÀ¸¸ç, PythonÀÇ Pandas´Â SQLÀ» Áö¿øÇÏÁö´Â ¾ÊÁö¸¸, SQL·Î ÇÊ¿ä·Î ÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶¿¡ °¡±õ°Ô ¹Ì¸® ÃßÃâÇØ ³õ´Â´Ù¸é À̾îÁö´Â PandasÀÇ ºÐ¼®ÀÌ ¾ó¸¶³ª ¼ö¿ùÇØÁö´ÂÁö´Â ½ÇÀü¿¡¼ °æÇèÇØ º» »ç¶÷À̶ó¸é ´©±¸³ª °ø°¨ÇÒ °ÍÀÌ´Ù.
PythonÀÇ Æ¯¼ºÀÌ ¾î¶² Ç¥ÇöÀÌµç »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â À¯¿¬¼º¿¡ ÀÖ´Ù¸é ±×¸¸Å ´Ù¾çÇÑ ºÐ¼® ¹æ¹ýÀÌ Á¸ÀçÇÏ¿© À¯Áöº¸¼öÇϰųª Ä¿¹Â´ÏÄÉÀÌ¼Ç ÇÏ´Â Ãø¸é¿¡¼´Â ¾î·Á¿òÀÌ ÀÖ´Â °Í ¶ÇÇÑ »ç½ÇÀÌ´Ù. ´Ü ¸î ÁÙÀÇ SQLÀÇ ½ÇÇà°á°ú¿Í µ¿ÀÏÇÑ °á°ú¸¦ ±¸ÇöÇϱâ À§ÇØ Pandas·Î Á¢±ÙÇϸé ÄÚµå ¶óÀÎÀÌ ±æ¾îÁö°Å³ª Áߺ¹ ´Ü¾î¸¦ ¿©·¯¹ø ÁßÃ¸ÇØ¼ »ç¿ëÇØ¾ß ÇÏ´Â ºÒÆíÇÔÀÌ Àֱ⠶§¹®ÀÌ´Ù.
¹°·Ð SQLÀº Åë°èÇп¡¼ ¸»ÇÏ´Â ±âÃÊ Åë°è ¼öÁØÀÇ ¿¬»ê°ú °¡°øÀ» ¿Ïº®ÇÏ°Ô Áö¿øÇϱ⿡´Â ºñ È¿À²ÀûÀÎ Ãø¸éÀÌ ºÐ¸íÈ÷ ÀÖÀ¸¸ç, ³ª¾Æ°¡ Ãß·Ð Åë°è¿¡ Àû¿ëÇϱ⿡ ÀûÇÕÇÑ ÇüŰ¡ ¾Æ´Ï¸ç, 2Â÷¿øÃ³·³ º¸ÀÌÁö¸¸ Ä÷³ ÃàÀÇ º¯È¯ÀÌ ºÒ°¡´ÉÇÑ °íÁ¤ÇüÀ¸·Î µÇ¾îÀÖ´Ù. ³ª¾Æ°¡ ¸Ó½Å·¯´×¿¡ Àû¿ëÇÏ´Â °ÍÀº ´õ¿í ºñÈ¿À²ÀûÀÌ¸ç µö·¯´×°ú °°Àº ºñÁ¤Çü µ¥ÀÌÅÍ´Â Ä¿¹ö¸¦ ¸øÇÑ´Ù.
µû¶ó¼ ÀÌ·± Àå´ÜÁ¡À» ½ÊºÐ Ȱ¿ëÇÏ¿© Python(R)°ú SQL °£ ÀûÁ¤ °æ°è¼±À» ã´Â ´É·ÂÀÌ Áß¿äÇÏ´Ù. µ¥ÀÌÅÍ ºÐ¼® Áø¿µÀÇ ÃÖ±Ù ÇÖÇÑ ÇÁ·Î±×·¥µéÀÌ Ä¿¹öÇϱ⠺ñÈ¿À²ÀûÀÎ ºÎºÐÀ» SQL·Î Ä¿¹öÇÑ´Ù¸é ½Ã°£ÀÌ »ý¸íÀÎ ¿äÁò »ý»ê¼ºÀ̳ª °¡µ¶¼ºÀ» ³ôÀ̴µ¥ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
ÀÌ Ã¥À» ÃßõÇÏ°í ½ÍÀº ÀÌÀ¯ Áß Çϳª´Â ÀÌ·± ½Ã´ëÀû Çʿ伺À» ¹Ý¿µÇÏ´Â ¸ñÀû¿¡ Ãæ½ÇÇϵµ·Ï ¾²¿©Á³´Ù´Â Á¡À» µé ¼ö ÀÖ°Ú´Ù.
Ã¥ÀÇ ÀåÁ¡
Ã¥ÀÇ °¡Àå Å« ÀåÁ¡Àº SQLÀ» ½±°Ô ÀÍÈú ¼ö ÀÖµµ·Ï ´Ü°èÀûÀ¸·Î ±ò²ûÇÏ°Ô ¼³¸íÇÏ´Â ±¸¼ºÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ½±°í ±¸Çö °¡´ÉÇÑ ´«¿¡ º¸ÀÌ´Â °ÍÀ» ¸ÕÀú ½ÃÀÛÇÏ¿©
Á¶±Ý¾¿ »ìÀ» ºÙ¿©³ª°¡¸ç Áß°£Áß°£ »ó¼¼ÇÑ ¼³¸íÀ¸·Î º¸Ãæ
Çϰí ÀÖ¾î °¡µ¶¼ºÀÌ ¶Ù¾î³ Ã¥À̶ó´Â »ý°¢ÀÌ µé¾ú´Ù.
¿À¶óŬ Áß½ÉÀÇ SQL Ã¥Àº ½ÃÁß¿¡ ¸¹Áö¸¸,
MySQLÀÌ Áß½É
ÀÌ µÈ Ã¥Àº ã±â ¾î·Æ´Ù.
MySQL¸¸ ´Ù·ç°í ±×Ä¡´Â °ÍÀÌ ¾Æ´Ï¶ó
OracleÀ̳ª SQL¼¹ö¿¡¼ Ȱ¿ë ¹æ½ÄÀÌ ´Ù¸¥ °æ¿ì
ÇÔ²² ¼³¸íÇϰí ÀÖ¾î SQL Áø¿µ Á¾»çÀÚ¶ó¸é ´©±¸¿¡°Ô³ª µµ¿òÀÌ µÉ ¸¸ÇÑ Ã¥ÀÌ´Ù. MariaDB´Â ÀÌ¹Ì ¸¹Àº ºÐµéÀÌ ¾Ë°í ÀÖµí ¾ÆÆÄÄ¡ Àç´Ü°úÀÇ ½Î¿ò³¡¿¡ MySQL ¿ø³â °³¹ßÀÚµéÀÌ ¶ÙÃijª¿Í ¸¸µç DBÀ̱⿡ ±»ÀÌ Ãß°¡ÀûÀÎ ¼³¸íÀº ÇÊ¿ä ¾øÀ» µí ÇÏ´Ù.
RDBMS¿¡¸¸ ±¹ÇѵǴ °ÍÀÌ ¾Æ´Ï¶ó ¿¬°èµÇ¾î Ȱ¿ëµÉ ¼ö ÀÖ´Â
È®À强
µµ °í·ÁÇÑ Á¡ÀÌ ¸¶À½¿¡ µé¾ú´Ù. ¾ÆÆÄÄ¡ µå¸±À» ´Ù·é °ÍÀÌ ±×·± ¿¹½Ã¶ó ÇÒ ¼ö ÀÖ´Ù.
°¢ ´Ü¿ø ¸¶Áö¸·¿¡
¿¹½Ã
µéÀÌ ¹è¿î ³»¿ëÀ» º¹½ÀÇϰí Á¤¸®Çϴµ¥ ¾Ë¸ÂÀº ¼öÁØÀ¸·Î Àß ±¸¼ºµÇ¾î ÀÖ´Ù.
Ã¥ÀÇ ´ÜÁ¡
10Àå Á¶ÀÎ ½ÉÈ ºÎºÐÀÇ ³»¿ëÀÌ ¾Æ½¬¿ü´Ù. SQLÀ» Á¢ÇÏ¸é¼ Áß±Þ¿¡¼ °í±ÞÀ¸·Î ³Ñ¾î°¡´Â °É¸²µ¹ÀÌ Çϳª ÀÖ´Ù¸é Outer JoinÀ» µé ¼ö ÀÖ°Ú´Ù. ´Ü¼ø Outer JoinÀ̶ó¸é ±×¸® ¾î·Á¿ï °ÍÀÌ ¾øÀ¸³ª
ÀϺΠÄ÷³¿¡¸¸ Outer Join
ÀÌ °É¸°´Ù¸é ¸Ó¸´¼ÓÀ¸·Î Àüü µ¥ÀÌÅÍ °á°úÀÇ Çü»óÀÌ Á÷°üÀûÀ¸·Î ¶° ¿À¸£Áö ¾Ê°Ô µÈ´Ù. ±×·± ºÎºÐµéÀ» º¸´Ù ½ÉµµÀÖ°Ô ´Ù·ð´Ù¸é ´õ¿í °¢±¤À» ¹ÞÁö ¾Ê¾ÒÀ»±î ½Í´Ù.
SQL92 Ç¥ÁØÀ» ´Ù·é °ÍÀº ÁÁ¾ÒÀ¸³ª
ANSI
Ç¥ÁØ Àü¹ÝÀ» °°ÀÌ ¾ð±Þ, ºñ±³ÇÏ´Â ½Ãµµµµ ÀÖ¾úÀ¸¸é Çß´Ù. ÀÌ Ã¥ÀÇ Å« ÀåÁ¡ Áß Çϳª°¡ À§¿¡¼ ¾ð±ÞÇÑ´ë·Î °¢ ºÐ¾ßÀÇ ¿¬°èºÎºÐµµ °í·ÁÇÑ È£È¯¼ºÀ̶ó ÇÒ ¼ö Àְڴµ¥, SQL92¸¸ ´Ù·é Á¡Àº ´ëÅëÇÕ¿¡ 2% ºÎÁ·ÇÑ ¾à°£ ¾Æ½¬¿î ´À³¦ÀÌ´Ù.
Áø¿µ¸¶´Ù ¸»Àº ¸¹Áö¸¸ outer joinÀ» ´Ü¼øÈ÷ (+) ±âÈ£·Î¸¸ Ç¥ÇöÇÑ´Ù´Â °ÍÀº °¡µ¶¼º Ãø¸é¿¡ µµ¿òÀÌ µÇ°í, ÄÚµå¶óÀÎÀÇ ±æÀ̸¦ ÁÙ¿© ¿À·ù¿¡ ´ëÇÑ ÀáÀç°¡´É¼ºÀ» ³·ÃçÁشٴ Á¡¿¡¼ ºÐ¸í ´Ù·ê¸¸ÇÑ °¡Ä¡°¡ Àֱ⠶§¹®ÀÌ´Ù.
¾î´À Ã¥À̳ª ±×·¸µíÀÌ ¸íÀÛµµ ³À̵µ¿Í ´«³ôÀ̸¦ ¸ÂÃßÁö ¸øÇÑ µ¶ÀÚ°¡ ÀÐÀ¸¸é Á¹ÀÛÀÌ µÇ´Â ¹ýÀ̱⿡ ³À̵µµµ Ãß°¡·Î ¾ð±ÞÇÏ·Á ÇÑ´Ù.
µ¥ÀÌÅͳª SQLÀ» ÀüÇô ´Ù·çÁö ¾ÊÀº ¿ÕÃʺ¸ ºÐµéÀ̶ó¸é Á¶±Ý ¾î·Æ°Ô ´À²¸Áú ¼ö ÀÖÀ¸¸ç, SQLÀÌ Ã³À½ÀÏÁö¶óµµ ¿¢¼¿ µîÀ¸·Î µ¥ÀÌÅÍ¿¡ Ä£¼÷Çϰųª °¨ÀÌ ÁÁÀº ºÐµéÀ̶ó¸é óÀ½ºÎÅÍ ÀÌ Ã¥À¸·Î ½ÃÀÛÇØµµ ±¦ÂúÀ» °Å¶ó »ý°¢ÇÑ´Ù. ¹Ý¸é ÀϺΠÄ÷³¸¸ Ȱ¿ëÇÑ Outer Join¿¡ ´É¼÷ÇÑ ºÐÀ̶ó¸é ȤÀº ±× ÀÌ»óÀÇ ½Ç·ÂÀÌ ÀÖ´Â ºÐµé²²´Â ³Ê¹« ½¬¿î Ã¥ÀÌ µÇ¾î ¸¹Àº °ÍÀ» ¾òÁö´Â ¸øÇÒ °ÍÀÌ´Ù.
ÃÑÆòÀ» ³»¸®ÀÚ¸é
Àü¹ÝÀûÀ¸·Î SQLÀ» Áö½ÄÀÇ È帧¿¡ ¸ÂÃç ±ò²ûÇÏ°Ô Á¤¸®Çϰí ÀÖ¾î SQLÀ» óÀ½À¸·Î ÀÍÈ÷´Â ºÐµéÀÌ ÁÁÀº ¸ÞŸ Áö½ÄÀ» Çü¼ºÇϱ⿡ µµ¿òÀÌ µÉ ¸¸ÇÑ Ã¥
À̶ó´Â ÆòÀ» ³»¸®°í ½Í´Ù. SQL¿¡ ÀÔ¹®Çϰųª µ¥ÀÌÅÍ ºÐ¼® ¾÷°è Á¾»çÀÚ ºÐµé Áß SQLÀ» óÀ½À¸·Î ¹è¿ì´Â ºÐµé²² ÃßõÇÏ°í ½Í´Ù.
Ã¥¼Ò°³ - ·¯´× SQL
ÇѺû¹Ìµð¾î ¡°³ª´Â ¸®ºä¾î´Ù¡± Ȱµ¿À» À§Çؼ Ã¥À» Á¦°ø¹Þ¾Æ ÀÛ¼ºµÈ ¼ÆòÀÔ´Ï´Ù.
´Ý±â