DB Tips

10649 ³ªµô¶ô
2010-07-09 15:41:39
[Âü°í] No Sql°ú ¿©ÀüÈ÷ »ì¾ÆÀÖ´Â SQL

´ÙÀ½Àº wikipedia¿¡ ±âÀçµÇ¾î ÀÖ´Â No SqlÀÇ Á¤ÀÇÀÌ´Ù.

NoSQL is a movement promoting a loosely defined class of non-relational data stores that break with a long history of relational databases. These data stores may not require fixed table schemas, usually avoid join operations and typically scale horizontally. Academics and papers typically refer to these databases as structured storage.[1][2][3][4]

Notable production implementations include Google's BigTable and Amazon's Dynamo. However, there are also many publicly available open source variants including MongoDB and Cassandra.

NoSQLÀ̶õ, °ü°è µ¥ÀÌŸº£À̽ºÀÇ ±ä ¿ª»çÀÇ Æ²À» ±ú´Â °ÍÀ¸·Î¼­ ³ÐÀº Àǹ̷ÎÀÇ ºñ°ü°è ¸ðµ¨¿¡ ¼ÓÇÏ´Â µ¥ÀÌÅÍ ½ºÅä¾îÀÇ ¹ßÀüÀ» ÃËÁø ½ÃŰ·Á°í ÇÏ´Â ¿îµ¿ÀÌ´Ù. ºñ°ü°è ¸ðµ¨ÀÇ µ¥ÀÌÅÍ ½ºÅä¾îÀÇ Æ¯Â¡À¸·Î¼­ °íÁ¤µÈ Å×ÀÌºí ½ºÅ°¸¶¸¦ ÇÊ¿ä·ÎÇÏÁö ¾Ê°í, JoinÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê°í ÀϹÝÀûÀÎ ¼öÆò ½ºÄÉÀÏÀ» È®º¸ÇÏ´Â °ÍÀ» µé ¼ö ÀÖ´Ù. Çмú ³í¹®À̳ª Á¤½Ä¹®¼­¿¡¼­´Â ÀÌ·± Á¾·ùÀÇ µ¥ÀÌŸº£À̽º¸¦ Structured Storage¶ó°í ºÎ¸£´Â °ÍÀÌ ¸¹´Ù.[1][2][3][4]

±¸±ÛÀÇ BigTable ,¾Æ¸¶Á¸ÀÇ Dynamo, ¿ÀÇ ¼Ò½º´Â MongoDB , CassandraµîÀÌ ÀÖ´Ù.

¾Æ¹«¸® »õ·Î¿î Áö½ÄÀ̳ª ±â¼úÀÌ ³ª¿Íµµ ±âÁ¸¿¡ ±¸ÃàµÇ¾î ÀÖ´Â ±â¹Ý±â¼ú¿¡ ´ëÇØ Àû°³½ÉÀ̳ª, ¹Ý°¨Àº µÇµµ·Ï °®Áö ¾Ê´Â°ÍÀÌ ÁÁ´Ù.

Facts and Fallacies of Software Engineering¿¡¼­ ¸»Çϴ ¼ÒÆ®ÇÁ¿þ¾î ¾÷°è¿¡´Â °ú´ë¼±ÀüÀÌ ¸¸¿¬ÇØ ÀÖ´Ù°í ÁÖÀåÇÏ´Â °Íµµ Àϸ®°¡ ÀÕ´Â ¸»ÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¼ÒÇÁÆ®¿þ¾î µµ±¸¿Í ±â¼úÀÇ Áøº¸·Î ÀÎÇØ »ý»ê¼º°ú ǰÁúÀÌ 5~35% Çâ»óµÈ´Ù°í Çϰí´Â ÀÖÁö¸¸, ±×·¯³ª ¿¹Àü¿¡µµ ÀÌ Á¤µµÀÇ Çâ»óÀº 10¹è ÀÌ»ó ¶Ù¾î³­ »ç¶÷ÀÌ ÀÖÀ¸¸é °¡´ÉÇÑ ÀÏÀ̾ú´Ù.

¶ÇÇÑ ¹º°¡ »õ·Î¿î °ÍÀ» ¹è¿ï ¶§ ºñ¿ëÀÌ ¼ö¹ÝµÇ´Â °ÍÀº ¸íÈ®ÇÑ ¹®Á¦À̱⵵ ÇÏ°í »õ·Î¿î Ä¿¹ö¸®Áö¸¦ »ç¿ëÇØ Å×½ºÆ® ÇÁ·Î¼¼½º¿¡ Áö´Ï´Â Àǹ̸¦ »ý°¢ÇÏ´Â °ÍÀ̵ç, XP¸¦ Çϸ鼭 »õ·Î¿î ±â¹ýÀ¸·Î °³¹ßÀ» Çϵç, ¿ì¸®°¡ ÀÎÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº ±âÁ¸ÀÇ ºñ È¿À²À» ¾Ë°í »õ·Î¿î µµ±¸ÀÇ È¿À²À» ¾Ë°í ÀÖÀ» ¶§ ¸ðµÎ°¡ ÀÎÁ¤ÇÒ ¼ö ÀÖ´Â ±âƲÀ» ¸¶·ÃÇØ ÁÙ ¼ö ÀÖÁö ¾ÊÀ»°¡ ÇÑ´Ù.

ÀÌ´Â No sql! No sql ´Ü¾î Çϳª¸¸À» º¸´õ¶óµµ ±âÁ¸ÀÇ SqlÀº ¿©ÀüÈ÷ °¡Ä¡°¡ ÀÖ´Ù´Â °­ÇÑ ¹ÝÁõÀ̱⵵ ÇÏ´Ù.
±× ÆÄ¿ö°¡ ¾ó¸¶³ª ¸·°­Çϸé No sql¿îµ¿±îÁö »ý°Ü³µÀ»±î? ±×·¡¼­ ¾î¶² »õ·Î¿î ÆÐ·¯´ÙÀÓÀÌ ³ª¿Ã ¶§ ±âÁ¸ÀÇ Áö½ÄÀ» ¿ÏÀüÈ÷ ¹ö¸®·Á´Â À§ÇèÇÑ »ý°¢Àº, ÀÚÄ© À߸ø »ý°¢ÇÏ¸é °í½º¶õÈ÷ ¹«´ë¾Õ¿¡¼­ È¥ÀÚ ÃãÃß´Â ²ÃÀ» º¸ÀÌ°Ô µÉ °ÍÀÌ´Ù. ±×¸®°í ±âÁ¸ÀÇ °ü³äÀ» ¹«½ÃÇÏ´Â °Íº¸´Ù Â÷Â÷ ¼­·Î º¯Çذ¡ÀÚ´Â °ÍÀÌ ¿ÀÈ÷·Á È£¼Ò¼º Àִ ÁÖÀåÀ̶ó ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.


´ë¿ë·® µ¥ÀÌÅͺ£À̽º 2¿¡¼­ SQLÀ» ´ëÇÏ´Â °³¹ßÀÚÀÇ ¿ªÇÒ¿¡ ´ëÇØ¼­ Àá±ñ »ìÆìº¸ÀÚ.


ÀÌ¹Ì »ç¿ëÇÑ SQLÀÇ ½ÇÇà°èȹÀ» °³¼±½ÃÄÑ ¼öÇà¼Óµµ¸¦ Çâ»ó½ÃŰ´Â °Íµµ Áß¿äÇÏÁö¸¸ ¿ì¸®´Â ¹«¾ùº¸´Ùµµ ¸ÕÀú SQLÀ» Àß È°¿ëÇÏ´Â ¹æ¹ýÀ» ÀÍÇô µÎ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. SQLÀ» Àß »ç¿ëÇÑ´Ù´Â »ç½ÇÀº »ó´çÈ÷ ¸¹Àº Àǹ̸¦ ³»Æ÷Çϰí ÀÖ´Ù. Á¦´ë·Î SQLÀ» Ȱ¿ëÇÑ´Ù´Â °ÍÀº ¾î¼¸é Áö±Ý±îÁö ±¸ÇöÇØ ¿Ô´ø °ÅÀÇ ¸ðµç ó¸® ¹æ¹ýÀÇ ±Ùº»ÀûÀÎ º¯È­¸¦ ÀǹÌÇÑ´Ù. Çõ½ÅÀÌ ÇÊ¿äÇÏ´Ù´Â À̾߱â´Ù. ±×·¯³ª ´ëºÎºÐÀÇ °³¹ßÀÚµéÀº óÀ½ Á¤º¸½Ã½ºÅÛÀ» Á¢Çϸ鼭ºÎÅÍ Áö±Ý±îÁö ÀýÂ÷ÇüÀ¸·Î ó¸®ÇÏ´Â ¹æ¹ý¸¸ Á¢ÇؿԱ⠶§¹®¿¡ ºñÀýÂ÷ÇüÀ̸鼭 ÁýÇÕÀûÀ¸·Î ó¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â ¸Å¿ì ³·¼³´Ù. ¶ÇÇÑ ±×µéÀº ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó¸é ´ç¿¬È÷ ÇÑ ·¹ÄÚµå ¾¿ Â÷·Ê·Î ÀÐ¾î °¡¸é¼­ °¢°¢ÀÇ °æ¿ì¿¡ µû¶ó ¸¶Ä¡ °î¿¹¸¦ ÇϵíÀÌ ¸ðµç ó¸® ¹æ¹ýÀ» ÀÏÀÏÀÌ ÀÚ½ÅÀÌ ±â¼úÇØ¾ß¸¸ ÇÑ´Ù´Â ±×¸©µÈ Ã¥ÀÓ°¨À» ¹ö¸®Áö ¸øÇϰí ÀÖ´Ù.

1. SQLȰ¿ëÀÇ ´çÀ§¼º

¾î¶² 󸮸¦ À§ÇØ ¿©·¯ ¹øÀÇ SQLÀ» ¹Ýº¹ ¼öÇà½ÃŰ°Å³ª ¿©·¯ °¡Áö SQLÀ» »ç¿ëÇÏ´Â °ÍÀº ÇѵΠ°¡ÁöÀÇ SQL·Î 󸮵ǵµ·Ï ÇÏ´Â °Íº¸´Ù ºÒ¸®ÇÏ´Ù. À̰ÍÀº ´ÜÁö SQL ¼öÇà Ƚ¼ö¿¡ ´ëÇÑ Â÷ÀÌ ¿Ü¿¡µµ ÈξÀ ´Ù¾çÇϰí Áß¿äÇÑ ÀÌÀ¯µéÀ» °¡Áö°í ÀÖ´Ù.

2. SQL ¼öÇà Ƚ¼öÀÇ Â÷ÀÌ

¿ì¸®°¡ 10000°ÇÀÇ µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇØ ÇѰǾ¿ Àо´Â SQL·Î 10000¹øÀ» ¼öÇàÇÑ °æ¿ì¿Í ÇϳªÀÇ SQL·Î 10000°ÇÀ» ¹üÀ§ 󸮷Π¼öÇàÇÑ °æ¿ì¸¦ ¼­·Î ºñ±³ÇØ º¸ÀÚ. ÀÌ µÎ°¡ÁöÀÇ °æ¿ì´Â ó¸® ¹æ¹ýÀÇ Â÷À̸¸ ÀÖÀ» »ÓÀÌÁö ó¸®ÇÑ ·Î¿ìÀÇ ¼ö´Â µ¿ÀÏÇÏ´Ù. ±×·¯³ª SQLÀÌ ¼öÇàµÈ ȸ¼ö¸¸ ³õ°í ºñ±³ÇØ º¸¸é 10000¹èÀÇ Â÷À̰¡ ³­´Ù.

3. ·£´ý ¾×¼­½º ¹ß»ýÀÇ Â÷ÀÌ

°ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÇ ¼öÇà¼Óµµ¿¡ °¡Àå ¸¹Àº ¿µÇâÀ» ¹ÌÄ¡´Â °æ¿ì´Â À妽º¸¦ °æÀ¯ÇÏ¿© ³ÐÀº ¹üÀ§ÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇϰíÀÚ ÇÒ ¶§ÀÌ´Ù. ±× ÀÌÀ¯´Â À妽º¸¦ ¾×¼¼½ºÇÏ´Â ºÎ´ã¶§¹®ÀÌ ¾Æ´Ï¶ó À妽º¿¡ ÀÖ´Â ROWID·Î Å×À̺íÀ» ·£´ýÀ¸·Î ¾×¼¼½ºÇϱ⠶§¹®ÀÌ´Ù. ¸¸¾à ¿ì¸®°¡ À§ÀÇ ¿¹¿Í °°ÀÌ À妽º±îÁöµµ ·£´ýÀ¸·Î ³ÐÀº ¹üÀ§¸¦ ¾×¼¼½ºÇØ¾ß ÇÑ´Ù¸é ÀÌ¹Ì ¼öÇà ¼ÓµµÀÇ Çâ»óÀº µµÀúÈ÷ ±â´ëÇÒ ¼ö°¡ ¾øÀ» °ÍÀÌ´Ù.
±×¸®°í ±× Â÷ÀÌ´Â ¸î ¹éÃÊ, ¸î ½Ã°£ÀÇ Â÷ÀÌ·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â °ÍÀÌ´Ù. À̰ÍÀº °³¹ßÀÚ°¡ °áÁ¤ÇÒ ¼ö ÀÖ´Â ¹®Á¦´Â ¾Æ´Ï´Ù. °í°´Àº Ç×»ó ºü¸¥ °ÍÀ» ¿øÇϱ⠶§¹®ÀÌ´Ù.

4. 󸮰æ·Î ÃÖÀûÈ­ÀÇ Â÷ÀÌ

°¢°¢ÀÇ ÃÖÀûÈ­°¡ ÀüüÀÇ ÃÖÀûÀÏ ¼ö´Â ¾ø´Ù. °¡·É »ý»êÀÚÀÇ ÀÔÀå¿¡¼­ ÃÖÀûÀº ÆÇ¸Å°¡ µÇµç ¸»µç Áö¼ÓÀûÀ¸·Î ´Ù·®À» »ý»êÇÏ´Â °ÍÀÌ °¡Àå ÃÖÀûÀÏ °ÍÀÌ¿ä, ÆÇ¸ÅÀÚÀÇ ÀÔÀå¿¡¼­ º¸¸é ±¸¸ÅÀÚ°¡ ¿ä±¸ÇÏ´Â ´Ù¾çÇÑ Á¦Ç°À» Áï½Ã »ý»êÇØ ÁÖ´Â °ÍÀÌ ÃÖÀûÀÏ °ÍÀÌ´Ù. ÀüüÀûÀÎ ÀÔÀå¿¡¼­ÀÇ ÃÖÀûÀÌ ¾Æ´Ï¶ó ƯÁ¤ ºÎºÐ¿¡ ´ëÇÑ ÃÖÀûÀÌ °­¿äµÇ¸é ¿ÀÈ÷·Á ÀüüÀûÀÎ ÃÖÀûÈ­¿¡ ¿ªÇàµÇ´Â °æ¿ì°¡ ¸¹´Ù. ¿ì¸®°¡ ¿øÇÏ´Â °ÍÀº ÀüüÀûÀΠ󸮰¡ ÃÖÀûÈ­µÇ´Â °ÍÀÌÁö ƯÁ¤ÇÑ ´Ü°èÀÇ ÃÖÀûÈ­´Â ¾Æ´Ï´Ù.

5. Ŭ¶óÀÌ¾ðÆ® / ¼­¹öȯ°æ¿¡¼­ÀÇ SQL ¿ªÇÒ

´©Â÷ °­Á¶ÇßÁö¸¸ SQLÀÌ ºÐ¸®µÇ¸é ±× »çÀÌ¿¡´Â ¾öû³­ ±íÀÌÀÇ °è°îÀÌ ÆÄ¿© ÀÖ´Â °Í°ú °°¾Æ¼­ ¼ö¸¹Àº »ç¿ëÀÚÀÇ ÀýÂ÷Çü 󸮰¡ ÀÖ¾î¾ß ¸Þ¿öÁö°Ô µÇ¾î ÀÖ´Ù. °ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÇ ÀåÁ¡À» »ì¸®·Á¸é ¹Ýµå½Ã ´ëºÎºÐÀÇ Ã³¸®¸¦ µ¥ÀÌÅͺ£À̽º°¡ °¡Àå È¿À²ÀûÀ¸·Î ó¸®Çϵµ·Ï Á¾ÇÕÀûÀÎ SQLÀ» ¸¸µé¾î¾ß ÇϰԾ´µ¥ µµ´ëü ÀÌ·¯ÇÑ SQLÀ» »ç¿ëÇÒ ¼ö°¡ ¾ø°Ô ¸¸µé¾îÁ® ÀÕÀ¸´Ï ÂüÀ¸·Î ³­°¨ÇÏÁö ¾ÊÀ» ¼ö ¾ø¾ú´Ù.

6. 󸮰æ·Î °³¼±ÀÇ ¿ëÀ̼º

ºñ·Ï ¹®Á¦´Â ÀÖÁö¸¸ SQLÀÇ È°¿ëÀ» Á¦´ë·Î ÇÑ °æ¿ì¿¡´Â ¹®Á¦ÀÇ Çٽɸ¸ ã¾Æ³»¾î ¾×¼¼½º È¿À²À» °³¼±ÇØÁÖ¸é ¼ö ¹è¿¡¼­ ¸¹°Ô´Â ¼ö¹é ¹èÀÇ È¿À²ÀÌ ½±°Ô Çâ»óµÈ´Ù. ÇѹøÀÇ SQL¼öÇàÀº ÃÖÀûÈ­µÇ¾úÀ¸³ª ¼öÇàÇÑ È½¼ö¸¦ º¸¸é õ¹®ÇÐÀûÀÎ ¼ýÀÚ°¡ ³ª¿ÍÀÖ´Â °ÍÀÌ º¸ÅëÀÌ´Ù. ¾Æ¹«¸® Çѹø ¼öÇà¿¡ 0.01ÃÊ ÀÌÇÏ·Î ÃÖÀûÈ­µÇ¾ú´õ¶óµµ À̰ÍÀÌ 10000,100000,1000000¹ø ¼öÇàµÇ¾ú´Ù¸é Ƽ²øÀÌ ¸ð¿©¼­ Å»êÀÌ µÈ´Ù. ¾î¶² ÇÁ·ÎÁ§Æ®¿¡¼­´Â Á¶ÀÎÀÌ ÀüÇô ¾ø´Â °÷µµ ÀÖÀ¸¸ç ´õ¿í ³î¶ó¿î °ÍÀº  Group By°¡ ÀüÇô ¾ø´Â °÷µµ ÀÕ´Ù´Â °ÍÀÌ´Ù. ¾×¼¼½º¸¦ È¿À²È­½ÃŰ´Â ¹æ¹ýÀº ´ë¿ë·® µ¥ÀÌÅͺ£À̽º ¼Ö·ç¼ÇÀÇ ÀüÆí¿¡ °ÉÃÄ ¼³¸íµÇ¾úÀ¸¹Ç·Î ¿©±â¼­´Â ´Ù½Ã ¾ð±ÞÇÏÁö ¾Ê°Ú´Ù.

7. º´·Ä󸮿¡¼­ SQLÀÇ ¿ªÇÒ

º´·Ä ó¸®ÀÇ ¼öÇà¼Óµµ¿¡ Å« ¿µÇâÀ» ÁÖ´Â ¿ä¼Ò´Â Á¤·Ä ¿µ¿ª»Ó¸¸ ¾Æ´Ï¶ó µ¥ÀÌÅͰ¡ ¹°¸®ÀûÀ¸·Î ¾ó¸¶³ª Àß ºÐ»êµÇ¾î ÀÖ¾î I/OÀÇ °æÇÕÀ» ÇÇÇÒ ¼ö ÀÖ´À³Ä´Â °Íµµ ¸Å¿ì Áß¿äÇÏ´Ù. µ¥ÀÌÅÍÀÇ ºÐ»êÀ» À§Çؼ­ µ¥ÀÌÅͺ£À̽º¿¡ µû¶ó µ¥ÀÌÅ͸¦ ºÐ»ê ÀúÀåÇÏ´Â ¹æ¹ýÀÌ ¼­·Î ´Ù¸£´Ù. Á¤¸» Áß¿äÇÑ °ÍÀº SQLÀ» ¾î¶»°Ô »ç¿ëÇÏ¿´´À³Ä¿¡ ÀÖ´Ù. º´·Ä󸮴 SQL·Î ¼öÇàµÈ´Ù. ¿ì¸®°¡ ÇØ¾ßÇÒ ÀüüÀûÀΠó¸® Áß¿¡¼­ ¾ó¸¶³ª ¸¹Àº ºÎºÐÀÌ SQL·Î ÅëÇյǾú´À³Ä°¡ °á±¹ ¾ó¸¶³ª ¸¹Àº 󸮸¦ º´·Ä·Î ó¸®ÇÒ ¼ö ÀÖ´À³ÄÀÇ °ü°ÇÀÌ µÈ´Ù. µ¿ÀÏÇÑ µ¥ÀÌÅÍ 100¸¸°ÇÀ» ´Ü¼øÇÏ°Ô ¾×¼¼½º¸¸ Çϰųª Á¤·ÄÀ» Çϴµ¥ ¾î¶² µ¥ÀÌÅͺ£À̽º°¡ Á¶±Ý ´õ ºü¸£´õ¶ó¶ó´Â »ç½ÇÀº ±×·¸°Ô Áß¿äÇÑ °ÍÀÌ ¾Æ´Ï´Ù.
.. ±×·¸´Ù¸é ¿ì¸®´Â ÀÚ½ÅÀÌ ÇØ¾ß ÇÒ Ã³¸®¸¦ SQL³»·Î ÅëÇÕÇÒ ¼ö ÀÖµµ·Ï ¿¬±¸¸¦ ÇØ¾ß ÇÒ °ÍÀÌ¸ç ±×·¯ÇÑ Ã³¸®°¡ °¡´ÉÇϵµ·Ï µ¥ÀÌÅͺ£À̽ºÀÇ ¿ì¼öÇÑ SQL±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÌ¾ß ¸»·Î º´·Ä ó¸®ÀÇ ¼öÇà¼Óµµ Çâ»ó¿¡ º¸´Ù Å« ºñÁßÀ» Â÷ÁöÇÑ´Ù°í ÇϰڴÙ.

Tag
tag´Â °Ô½Ã¹°ÀÇ ¼º°ÝÀ» ³ªÅ¸³»´Â Ű¿öµå¸¦ ÀÔ·ÂÇÏ´Â °ø°£ÀÔ´Ï´Ù.
tag´Â ·Î±×ÀÎ ÈÄ »ç¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½±Û mysql utf8 ¼³Á¤
>> 367 [Âü°í] No Sql°ú ¿©ÀüÈ÷ »ì¾ÆÀÖ´Â SQL  [0] ³ªµô¶ô 2874 2010-07-09 15:41:39
ÀÌÀü±Û SQLGate2010 for MSSQL °¡º±°í ºü¸¥ ½ÇÇà ¼ÓµµÀÇ Developer v 1.02