19-1.Æ®·£Àè¼Ç

1.ºÒ°¡Ç×·ÂÀûÀÎ ¿¡·¯

DBMS´Â Á¤¹ÐÇÏ°í ¼¶¼¼ÇÑ ½Ã½ºÅÛÀÌÁö¸¸ Ç×»ó Á¤»ó µ¿ÀÛÇÑ´Ù´Â º¸ÀåÀÌ ¾ø´Ù. »ç¶÷ÀÌ ¾û¶×ÇÑ ¸í·ÉÀ» ³»¸± ¼öµµ ÀÖ°í ÀúÀå ÀåÄ¡³ª ³×Æ®¿öÅ©ÀÇ ±â°èÀûÀÎ °íÀåµµ Á¾Á¾ ¹ß»ýÇÑ´Ù. ¿¡·¯³ª ³í¸®ÀûÀÎ ¿À·ù¿¡ ÀÇÇØ µ¥ÀÌÅÍÀÇ ÀÏ°ü¼ºÀÌ ±úÁö´Â ¸î °¡Áö ´ëÇ¥ÀûÀÎ °æ¿ì¸¦ º¸ÀÚ.

ÀüÇüÀûÀÎ ¿¹´Â °èÁ ÀÌüÀÌ´Ù. AÀÇ ÅëÀå¿¡¼­ BÀÇ ÅëÀåÀ¸·Î ¹é¸¸¿øÀ» ¼Û±ÝÇÑ´Ù¸é A°èÁ¿¡¼­ ¹é¸¸¿øÀ» »©´Â µ¿ÀÛ°ú BÀÇ °èÁ¿¡ ¹é¸¸¿øÀ» ÀÔ±ÝÇÏ´Â µÎ °³ÀÇ ¸í·ÉÀÌ ÇÊ¿äÇÏ´Ù. µÎ ¸í·ÉÀÌ ¸ðµÎ ¼º°øÇØ¾ß °èÁ ÀÌü°¡ ¹«»çÈ÷ ¿Ï·áµÈ´Ù.

ù ¹ø° Äõ¸®¸¸ ½ÇÇàÇÏ°í µÎ ¹ø° Äõ¸®¸¦ ½ÇÇàÇÏÁö ¸øÇß´Ù¸é Ãâ±Ý¸¸ ÇÏ°í ÀÔ±ÝÀº ÇÏÁö ¾Ê¾Æ Çö±ÝÀÌ ¿Âµ¥°£µ¥ ¾øÀÌ »ç¶óÁ® ¹ö¸°´Ù. ¼ø¼­¸¦ ¹Ù²Ù¾î ÀÔ±Ý ¸ÕÀú ÇÏ°í Ãâ±ÝÀ» À̾ ÇÑ´Ù°í ÇØ º¸ÀÚ. B °èÁ¿¡ 100¸¸¿ø ³Ö°í A °èÁ¸¦ º¸´Ï ÀÜ°í°¡ ºÎÁ·ÇØ ÀºÇàÀÌ ¼ÕÇظ¦ º¼ ¼öµµ ÀÖ´Ù.

´ë·®ÀÇ ÀÛ¾÷À» ÀÏ°ý ó¸®ÇÒ ¶§µµ ÀÏ°ü¼ºÀÌ ±úÁö±â ½±´Ù. Á÷¿ø 10¸¸¸íÀÇ ¿ù±ÞÀ» 10%¾¿ ÀλóÇÏ´Â ÀÛ¾÷À» ó¸®ÁßÀÌ´Ù. Á÷¿ø¼ö°¡ ¸¹¾Æ ½Ã°£ÀÌ ¿À·¡ °É¸®´Âµ¥ 23167¸í° ¼öÁ¤ Áß¿¡ °©ÀÚ±â Á¤ÀüÀÌ µÇ¾î ¹ö·È´Ù. ´Ù½Ã ÄÄÇ»Å͸¦ Äѵµ ¾îµð±îÁö ¼öÁ¤ÇÏ´Ù°¡ Áß´ÜÇß´ÂÁö µµ¹«Áö ¾Ë ¹æ¹ýÀÌ ¾ø´Ù.

ÀÌ·± ÀÛ¾÷Àº ²À ¼ø¼­´ë·Î ó¸®ÇÏ´Â °Íµµ ¾Æ´Ï´Ù. °»½ÅÇÑ °Í°ú ±×·¸Áö ¾ÊÀº ·¹Äڵ尡 ¼¯¿© ÀÖ¾î Àç°³ÇÒ À§Ä¡¸¦ ã±â ½±Áö ¾Ê´Ù. ÀüÇô ¼öÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é óÀ½ºÎÅÍ ÇÏ¸é µÇÁö¸¸ ÇÏ´Ù°¡ ¸¸ ÀÛ¾÷À̶ó ±×·² ¼öµµ ¾ø´Ù. ¾î¿ ¼ö ¾øÀÌ ÀÌÀü µ¥ÀÌÅÍ¿Í ¼öÀÛ¾÷À¸·Î ºñ±³ÇØ¾ß ÇÏ¸ç ¹é¾÷Á¶Â÷ ¾ø´Ù¸é ±×¾ß¸»·Î ³¶ÆдÙ. ½Ç»ýÈ°¿¡¼­µµ "¾îµð±îÁö Çß´õ¶ó?" »óȲÀÌ Á¾Á¾ ¹ß»ýÇÑ´Ù.

ÄÄÇ»ÅÍ´Â ½Ç¼öÇÏÁö ¾ÊÁö¸¸ ¿ÜºÎÀûÀÎ ¿äÀο¡ ÀÇÇØ ½ÇÆÐÇÒ °¡´É¼ºÀº Ç×»ó ÀÖ´Ù. Çϵå¿þ¾îÀûÀÎ ¹®Á¦³ª õÀçÁöº¯ °°Àº ºÒ°¡Ç×·ÂÀûÀÎ ¿äÀεµ ÀÖ°í »ç¶÷ÀÇ ½Ç¼ö³ª Á¢¼ÓÀÚ ÆøÁÖ °°Àº ¿¹»óÄ¡ ¸øÇÑ »çŵµ Á¾Á¾ ¹ß»ýÇÑ´Ù. ¿¡·¯ ÀÚü¸¦ ¸·À» ¹æ¹ýÀº ¾øÁö¸¸ ¾î¶°ÇÑ °æ¿ì¶óµµ µ¥ÀÌÅÍ´Â ¾ÈÀüÇÏ°Ô ÁöÄÑ¾ß ÇÑ´Ù.

±Ø´ÜÀûÀÎ ¿¡·¯°¡ ¹ß»ýÇÒ È®·üÀº Áö±ØÈ÷ ³·Áö¸¸ ¼³»ç ¹é¸¸ ¹ø¿¡ ÇÑ ¹ø ÀϾ´Â ÀÏÀÌ¶óµµ Àý´ë ¹«½ÃÇÒ ¼ö ¾ø´Ù. 1¾ï¹ø¿¡ ÇÑ ¹ø ¹ß»ýÇÏ´Â ¿¡·¯°¡ ÀºÇàÀ̳ª ¼îÇθô ÀÔÀå¿¡¼­´Â Á×´À³Ä »ç´À³ÄÀÇ Àý´ëÀý¸íÇÑ ¹®Á¦ÀÌ´Ù. ±×·¡¼­ DBMS´Â ¹ß»ý °¡´ÉÇÑ ¸ðµç ¿¡·¯¿¡ ´ëóÇÏ¿© ¾î¶² °æ¿ì¶óµµ µ¥ÀÌÅÍÀÇ ÀÏ°ü¼ºÀ» À¯ÁöÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ÇÊ¿äÇÏ´Ù.

2.Æ®·£Àè¼ÇÀÇ Æ¯Â¡

DBMS´Â µ¥ÀÌÅ͸¦ ¾ÈÀüÇÏ°Ô ÁöÅ°°í ±Ø´ÜÀûÀÎ ¿¡·¯¿¡ ´ëóÇϱâ À§ÇÑ ¿©·¯ °¡Áö ÀåÄ¡¸¦ ÀÌÁß, »ïÁßÀ¸·Î Á¦°øÇϴµ¥ °¡Àå ±âº»ÀûÀÎ ÀåÄ¡´Â Æ®·£Àè¼Ç(Transaction)ÀÌ´Ù. Æ®·£Àè¼ÇÀº °ü·ÃµÈ SQL ¹®À» Çϳª·Î ¹­¾î ó¸®ÇÏ´Â ÀÛ¾÷ ´ÜÀ§ÀÌ¸ç ´ÙÀ½ 4°¡Áö Ư¡À» °¡Áø´Ù.

 

¿øÀÚ¼º(Atomicity)

Æ®·£Àè¼Ç³»ÀÇ ¸í·ÉÀ» ÇϳªÀÇ ¹­À½À¸·Î ó¸®ÇÏ¿© ¸ðµÎ ¼º°øÇϰųª ¾Æ´Ï¸é ¸ðµÎ ½ÇÆÐÇÑ´Ù. À̸¦ ÀüºÎ ¶Ç´Â Àü¹«ÀÇ ¿øÄ¢(All Or Nothing)À̶ó°í ÇÑ´Ù. Ãâ±Ý ¸í·É°ú ÀÔ±Ý ¸í·ÉÀ» °¢°¢ ½ÇÇàÇÏÁö ¾Ê°í ÀÌ µÑÀ» ¹­¾î ¼Û±ÝÀ̶ó´Â ´õ ÀÌ»ó ºÐ¸®ÇÒ ¼ö ¾ø´Â ¿øÀÚ·Î Ãë±ÞÇÑ´Ù.

ÀÏ°ü¼º(Consistency)

Æ®·£Àè¼ÇÀ¸·Î ó¸®ÇÏ´Â µ¥ÀÌÅÍ´Â ÀÏ°ü¼ºÀ» À¯ÁöÇÑ´Ù. ¼º°øÇÒ °æ¿ì´Â ¹°·Ð ¾Æ¹« ¹®Á¦°¡ ¾øÀ¸¸ç ½ÇÆÐÇÏ´õ¶óµµ ÃÖ¼ÒÇÑ ÇÏ´Ù°¡ ¸¸ ¾îÁ¤ÂÄÇÑ »óÅ·Π¹æÄ¡ÇÏÁö ¾Ê´Â´Ù. ¼Û±Ý¿¡ ½ÇÆÐÇÏ´õ¶óµµ µÎ °èÁÂÀÇ Àܾ×Àº º¯ÇÔÀÌ ¾ø¾î ´Ù½Ã ¼Û±ÝÇÏ¸é µÈ´Ù. ºÒ°¡Ç×·ÂÀûÀÎ »óȲÀ̳ª ³í¸®ÀûÀÎ ¿¡·¯°¡ ¹ß»ýÇÏ´õ¶óµµ µ¥ÀÌÅÍÀÇ ¹«°á¼ºÀ» ¹Ýµå½Ã ÁöŲ´Ù.

°Ý¸®¼º(Isolation)

µ¥ÀÌÅͺ£À̽º´Â ¿øÄ¢ÀûÀ¸·Î ´ÙÁß »ç¿ëÀÚ°¡ µ¿½Ã¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ¾î ¿©·¯ °³ÀÇ Æ®·£Àè¼ÇÀÌ µ¿½Ã¿¡ ½ÇÇàµÈ´Ù. À̶§ Æ®·£Àè¼Ç³¢¸® °Ý¸®µÇ¾î ¼­·Î ¹æÇØÇÏÁö ¾Ê´Â´Ù. Æ®·£Àè¼Ç ½ÇÇà ÀüÀ̳ª ÈÄÀÇ µ¥ÀÌÅ͸¦ ¿ÜºÎ¿¡¼­ Àаųª ÂüÁ¶ÇÒ ¼ö ÀÖÁö¸¸ Æ®·£Àè¼Ç ÁøÇà Áß¿¡´Â Áß°£ »óŸ¦ º¸°Å³ª º¯°æÇÒ ¼ö ¾ø´Ù. ÀÌü ÀüÀ̳ª ÈÄÀÇ »óȲÀº º¼ ¼ö À־ ÀÌü ÁøÇà ÁßÀÎ ¼ø°£Àº ¿ÜºÎ¿¡¼­ º¸ÀÌÁö ¾Ê´Â´Ù. DBMS´Â »ç¿ëÁßÀÎ DB ¿ÀºêÁ§Æ®¿¡ ¶ôÀ» °É¾î °Ý¸®¼ºÀ» ±¸ÇöÇÑ´Ù.

¿µ¼Ó¼º(Durability)

Æ®·£Àè¼ÇÀ» ¼º°øÀûÀ¸·Î ¼öÇàÇÏ¸é ¼öÁ¤µÈ µ¥ÀÌÅ͸¦ ½Ã½ºÅÛ¿¡ ¿µ±¸ÀûÀ¸·Î Àû¿ëÇÑ´Ù. Áß°£ °á°ú°¡ ¾Æ´Ï¶ó ¿Ï¼ºµÈ °á°ú¸¸ ÀúÀåÇÑ´Ù´Â ¶æÀÌ´Ù. ó¸® °á°ú°¡ ÆÄÀÏ¿¡ ±â·ÏµÇÁö ¾ÊÀº ä·Î ÀÌ»óÀÌ »ý°Üµµ ·Î±×¸¦ µÚÁ® ÀÚµ¿ º¹±¸(Roll Forward)ÇÑ´Ù. 󸮿¡ ½ÇÆÐÇÏ¸é ·Î±×ÀÇ ±â·ÏÀ» ÂüÁ¶ÇÏ¿© ¼öÁ¤Çϱâ ÀüÀÇ »óÅ·Π¾ÈÀüÇÏ°Ô Ãë¼ÒÇÑ´Ù.

 

Æ®·£Àè¼ÇÀÇ ÀÌ·± 4°¡Áö Ư¡À» ù ÀÚ¸¸ µû ACID¶ó°í Ç¥ÇöÇÑ´Ù. ÇÙ½ÉÀº ¸í·ÉÀ» ¹­À½À¸·Î ó¸®ÇÏ´Â ¿øÀÚ¼ºÀ̸ç ÀÌ·Î ÀÎÇØ ÀÏ°ü¼º°ú ¿µ¼Ó¼ºÀ» ´Þ¼ºÇÑ´Ù. Æ®·£Àè¼ÇÀ» ³Ê¹« ¾î·Æ°Ô »ý°¢ÇÒ ÇÊ¿ä ¾ø´Ù. °°ÀÌ ½ÇÇàÇÒ ¸í·ÉÀÇ ÁýÇÕÀÌµÇ ¿øÀÚ¼ºÀ» °­Á¶ÇÑ ¿ë¾îÀ̹ǷΠ´ë°³ÀÇ °æ¿ì´Â SQL ¸í·É°ú °°Àº ¶æÀ̶ó°í »ý°¢Çصµ ¹«¹æÇÏ´Ù. ¹­À½À¸·Î ½ÇÇàÇÒ SQL ¸í·É ÁýÇÕÀÌ °ð Æ®·£Àè¼ÇÀÌ´Ù.

´ë¿ë·® DB´Â È¿À²À̳ª ¼º´É¸¸Å­ Æ®·£Àè¼ÇÀ» ¼¼½ÉÇÏ°Ô ´Ù·é´Ù. ÀºÇà °èÁ °ü¸® ½Ã½ºÅÛÀÌ ¾Æ¹«¸® ºü¸£°í È¿À²ÀûÀÌ´õ¶óµµ Æ®·£Àè¼ÇÀ» Á¦´ë·Î °ü¸®ÇÏÁö ¸øÇÏ¸é ¸»Â¯ ²ÎÀÌ´Ù. ¿À¶óŬÀº µðÆúÆ® ¸ðµå°¡ Ç×»ó Æ®·£Àè¼ÇÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î µÇ¾î ÀÖ¾î ±²ÀåÈ÷ ¸¹Àº °øÀ» µé¿´´Ù. SQL Serverµµ ÁúÀÇ ¾ð¾îÀÇ À̸§ÀÌ Transact SQLÀÏ Á¤µµ·Î Æ®·£Àè¼ÇÀ» Áß¿ä½ÃÇÑ´Ù.

3.Àӽà ÀÛ¾÷ ¿µ¿ª

¿øÀÚ¼ºÀ» ±¸ÇöÇÏ´Â ¾Ë°í¸®ÁòÀº º¹ÀâÇÒ »Ó¸¸ ¾Æ´Ï¶ó ¼º´É¿¡ Áö´ëÇÑ ¿µÇâÀ» ÁÖ´Â ÇÙ½É ±â¼úÀ̾ Á¦Ç°º°·Î °íÀ¯ÇÑ ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. Á¦°¢°¢ ´Ù¸¥ ±â¼úÀ» ¾²Áö¸¸ Æ®·£Àè¼Ç ó¸® °úÁ¤À» ¾îµò°¡¿¡ ÀúÀåÇØ µÎ´Â ¹æ½Ä¿¡¼­ Å©°Ô ¹þ¾î³ªÁö ¾Ê´Â´Ù. ó¸® ³»¿ªÀ» ÀúÀåÇØ ³õÁö ¾ÊÀ¸¸é ÀÛ¾÷À» Ãë¼ÒÇÒ ¹æ¹ýÀÌ ¾ø´Ù.

¿À¶óŬÀº ÀÌ ¿µ¿ªÀ» ¾ðµÎ ¼¼±×¸ÕÆ®(Undo Segment) ¶Ç´Â ·Ñ¹é ¼¼±×¸ÕÆ®¶ó°í ºÎ¸£¸ç SQL Server´Â Æ®·£Àè¼Ç ·Î±×(*.ldf)¶ó°í ºÎ¸¥´Ù. ³»ºÎÀûÀÎ ±¸Á¶³ª °ü¸® ¹æ¹ýÀº È®¿¬È÷ ´Ù¸£°ÚÁö¸¸ µÑ ´Ù ·¹ÄÚµåÀÇ º¯°æ »çÇ×À» ÀúÀåÇÏ´Â Àӽà ÀÛ¾÷ ¿µ¿ªÀ̶ó´Â Á¡Àº ¶È°°´Ù.

DBMS´Â Àӽà ¿µ¿ª¿¡ µ¥ÀÌÅÍ º¯°æ Àü, ÈÄÀÇ »óÅ¿¡ ´ëÇÑ º¹»çº»À» ºüÁü¾øÀÌ ±â·ÏÇÑ´Ù. ¸ðµç ¸í·ÉÀÌ ¼º°øÇÏ¸é º¯°æ ÈÄÀÇ µ¥ÀÌÅ͸¦ ±â·ÏÇÏ¿© ¿µ±¸ÀûÀ¸·Î È®Á¤Çϴµ¥ À̸¦ Ä¿¹Ô(Commit)À̶ó°í ÇÑ´Ù. Çϳª¶óµµ ½ÇÆÐÇÏ¸é º¯°æ ÀüÀÇ µ¥ÀÌÅ͸¦ ´Ù½Ã ½á ³Ö¾î ¾ÈÀüÇÏ°Ô Ãë¼ÒÇϴµ¥ À̸¦ ·Ñ¹é(RollBack)À̶ó°í ÇÑ´Ù.

°èÁ ÀÌü ÀÛ¾÷À» Æ®·£Àè¼ÇÀ¸·Î ¹­¾úÀ» °æ¿ì DBMS´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ ³»¿ªÀ» ±â·ÏÇÑ´Ù. A, B ¸ðµÎ Æ®·£Àè¼Ç Àü¿¡´Â 200¸¸¿øÀÌ µé¾î ÀÖ¾ú´Ù°í ÇÏÀÚ. A °èÁÂÀÇ Ãâ±Ý ÀüÈÄ, B °èÁÂÀÇ ÀÔ±Ý ÀüÈÄ »óŸ¦ ±â·ÏÇØ µÐ´Ù. Å×ÀÌºí¿¡ ¹Ù·Î Àû¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Àӽà ¿µ¿ª¿¡ ¸ÕÀú ±â·ÏÇÏ°í Æ®·£Àè¼ÇÀÇ Ä¿¹Ô ¿©ºÎ¿¡ µû¶ó ´ÙÀ½ µ¿ÀÛÀ» °áÁ¤ÇÑ´Ù.

ÀÌ »óÅ¿¡¼­ Ä¿¹ÔÇÏ¸é ·Î±×¿¡¼­ ó¸® ÈÄÀÇ ·¹ÄÚµå »óŸ¦ °¡Á®¿Í Àû¿ëÇÏ°í ·Ñ¹éÇÏ¸é ¿ø·¡ÀÇ µ¥ÀÌÅ͸¦ À¯ÁöÇÑ´Ù. ÀÌ·¸°Ô ÇÏ¸é µÑ Áß Çϳª°¡ ½ÇÆÐÇÏ´õ¶óµµ µ¥ÀÌÅÍ°¡ ±úÁöÁö ¾ÊÀ¸¸ç ¾ÈÀüÇÏ°Ô Àç½ÃµµÇÒ ¼ö ÀÖ´Ù. ¾÷µ¥ÀÌÆ®ÇÏ´Â Áß¿¡ Àü¿øÀÌ Â÷´ÜµÇ¾îµµ ½ÇÁ¦ Å×À̺íÀ» Á¶ÀÛÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ º° ¹®Á¦¾ø´Ù.

¸ðµç º¯°æ»çÇ×À» Àӽà ¿µ¿ª¿¡ ÀÏÀÏÀÌ ±â·ÏÇÑ ÈÄ Àû¿ëÇÏ¸é ¼öÁ¤ ¼Óµµ´Â ´À·ÁÁø´Ù. ±×·¯³ª °íµµ·Î Áö´ÉÈ­µÈ DBMS´Â Ä¡¹ÐÇÑ ¾Ë°í¸®ÁòÀ¸·Î ¿À¹öÇìµå¸¦ ÃÖ¼ÒÈ­ÇÏ¿© ¼º´É ¹®Á¦¸¦ ±Øº¹ÇÑ´Ù. DBMS¸¶´Ù ¶Ç´Â SQL ¸í·É¿¡ µû¶ó ·Î±×¸¦ ÀÛ¼ºÇÏ°í °ü¸®ÇÏ´Â ¹æ¹ýÀº ´Ù¸£Áö¸¸ Ãë¼Ò¸¦ À§ÇÑ ¿Ïº®ÇÑ Á¤º¸¸¦ Àӽà ÀÛ¾÷ ¿µ¿ª¿¡ ±â·ÏÇÏ´Â ¹æ½ÄÀº µ¿ÀÏÇÏ´Ù.