Github & Portfolio
๐งช Computer Science/Database(12)
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํ๋ณต(Recovery)
์ฅ์ ์ ์ ํ ํธ๋์ญ์ ์ฅ์ : ํธ๋์ญ์ ์ ์คํ ์ ๋ ผ๋ฆฌ์ ์ธ ์ค๋ฅ๋ก ๋ฐ์ํ ์ ์๋ ์๋ฌ ์ํฉ ์์คํ ์ฅ์ : H/W ์์คํ ์์ฒด์์ ๋ฐ์ํ ์ ์๋ ์๋ฌ ์ํฉ ๋ฏธ๋์ด ์ฅ์ : ๋์คํฌ ์์ฒด์ ์์์ผ๋ก ๋ฐ์ํ ์ ์๋ ์๋ฌ ์ํฉ ํ๋ณต(Recovery) ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ์ด์ ์ ์ํ๋ก ๋ณต๊ตฌ์์ผ์ ์ผ๊ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ๋ง๋๋ ๊ฒ ํ๋ณต์ ์ํ ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์๋ ๋คํ(Dump)์ ๋ก๊ทธ(Log) ๋ ๊ฐ์ง๊ฐ ์๋ค. ๋คํ(Dump): ์ผ์ ์ฃผ๊ธฐ๋ก ์๋ณธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๋ด์ฉ์ ๋ค๋ฅธ ์ ์ฅ์ฅ์น์ ๋ณต์ฌํ๋ ๊ฒ ๋ก๊ทธ(Log): ๋ณ๊ฒฝ ์ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ณ๊ฒฝ ์ฐ์ฐ์ด ๋ฐ์ํ ๋๋ง๋ค ๋ก๊ทธ ํ์ผ์ ์์ฑํ์ฌ ๊ธฐ๋กํ๊ณ , ํ๋ณตํ ๋ ๋ก๊ทธ์ ์ ํ ๋ด์ฉ์ ์ฌ์ฉํ์ฌ ๋ณต์ํ๋ ๋ฐฉ๋ฒ ๋ก๊ทธํ์ผ(Log File..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์ ๊ณ ๋ฆฝ ์์ค(Transaction Isolation Level)
์ค์์ฝ๊ธฐ(Dirty Read) ์ฝ๊ธฐ ์์ ์ ํ๋ ํธ๋์ญ์ A๊ฐ ์์ ์ ํ๋ ํธ๋์ญ์ B์ ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์์ ์ค์ธ ํธ๋์ญ์ B๊ฐ ์์ ์ Rollbackํ ๊ฒฝ์ฐ ํธ๋์ญ์ A๋ ๋ฌดํจ๊ฐ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋๊ณ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ค. ๋ฐ๋ณต๋ถ๊ฐ๋ฅ ์ฝ๊ธฐ(Non-repeatable Read) ํธ๋์ญ์ A๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํธ๋์ญ์ B๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ (Update) ํธ๋์ญ์ A๊ฐ ๋ค์ ํ ๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ ์๊ธฐ๋ ๋ฌธ์ ํธ๋์ญ์ A๊ฐ ์ฝ๊ธฐ ์์ ์ ๋ค์ ํ ๋ฒ ๋ฐ๋ณตํ ๊ฒฝ์ฐ ์ด์ ์ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ํ์ ์ ๋ น๋ฐ์ดํฐ ์ฝ๊ธฐ(Phantom Read) ํธ๋์ญ์ A๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํธ๋์ญ์ B๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ (Insert) ํธ๋์ญ์ A๊ฐ ๋ค์ ํ ๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ ์๊ธฐ๋ ๋ฌธ์ ํธ๋์ญ์ A๊ฐ ..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋์์ฑ ์ ์ด(Currency Control)
๋์์ฑ์ ์ด ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์์ ๋ ์ด์์ ํธ๋์ญ์ ์ด ๋์์ ์ํ๋ ๋, ์ผ๊ด์ฑ์ ํด์น์ง ์๋๋ก ํธ๋์ญ์ ์ ๋ฐ์ดํฐ ์ ๊ทผ ์ ์ด ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์ ์ง์ํ๋ DBMS์ ๊ฒฝ์ฐ, ๋ฐ๋์ ์ง์ํด์ผ ํ๋ ๊ธฐ๋ฅ ๊ฐฑ์ ์์ค(Lost Update) ํ๋์ ํธ๋์ญ์ ์ด ๊ฐฑ์ ํ ๋ด์ฉ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋ฎ์ด์์ผ๋ก์จ ๊ฐฑ์ ์ด ๋ฌดํจํ๊ฐ ๋๋ ๊ฒ์ ์๋ฏธ ๋ ๊ฐ์ ํธ๋์ญ์ ์ด ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ฐฑ์ (Update)ํ ๋ ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ ๋ฐ์ํ๋ฉด ์๋๋ ํ์ ๋ชจ์์ฑ(Inconsistency) ๋ค๋ฅธ ํธ๋์ญ์ ๋ค์ด ํด๋น ํญ๋ชฉ ๊ฐ์ ๊ฐฑ์ ํ๋ ๋์ ํ ํธ๋์ญ์ ์ด ๋ ๊ฐ์ ํญ๋ชฉ ๊ฐ ์ค ์ด๋ค ๊ฒ์ ๊ฐฑ์ ๋๊ธฐ ์ ์ ๊ฐ์ ์ฝ๊ณ ๋ค๋ฅธ ๊ฒ์ ๊ฐฑ์ ๋ ํ์ ๊ฐ์ ์ฝ๊ฒ ๋์ด ๋ฐ์ดํฐ์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ ์ํฉ ์ฐ์ ๋ณต๊ท(Cascading Rollback..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์ (Transaction)
ํธ๋์ญ์ DBMS์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์ DB์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฅ์ ๊ฐ ์ผ์ด๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ์์ ์ ๋จ์๊ฐ ๋๋ค. DB์์ ์ฌ๋ฌ ์์ ์ด ๋์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋, ์ด ์์ ์ ์๋ก ๋ถ๋ฆฌํ๋ ๋จ์๊ฐ ๋๋ค. ํธ๋์ญ์ ์ ์ ์ฒด๊ฐ ์ํ๋๊ฑฐ๋ ๋๋ ์ ํ ์ํ๋์ง ์์์ผ ํ๋ค.(All or Nothing) ex) A๊ณ์ข์์ B๊ณ์ข๋ก ๋์ ์ด์ฒดํ๋ ๊ฒฝ์ฐ, A์์ ๋์ ๋นผ๊ณ B์์ ๋์ ๋ํ๋ ๋ ๊ฐ์ง์ Update๋ฌธ์ผ๋ก ๋๋๊ฒ ๋๋ค. ์ด๋ค์ ๊ฐ๋ณ์ํ์ด ์๋๋ผ ํ๋์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ด๊ฒ ๋๋ฉฐ ํ๋์ ํธ๋์ญ์ ์ด ์คํ๋ ๋ ํ๋์ SQL๋ง ์คํ๋๋ ์ํฉ์ ๋ฐ์ํ์ง ์๊ณ ๋ ๊ฐ์ SQL๋ฌธ์ด ์ฐ์์ ์ผ๋ก ์คํ๋๋ค. ์ด๋ฅผ All or Nothing์ด๋ผ๊ณ ํ๋ค. Commit: ํธ๋์ญ์ ์ ์ํ์ด ์..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ ๊ทํ(Normalization) / ์ด์ํ์, ํจ์์ข ์์ฑ, ์ ๊ทํ
**์ ๊ทํ๋ฅผ ํด์ผํ๋ ์ด์ ๋ ์๋ชป๋ ํ ์ด๋ธ ์ค๊ณ๋ก ์ธํด Anomaly(์ด์ ํ์)๊ฐ ๋ํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด์ํ์(Anomaly) ์ญ์ ์ด์: ํํ ์ญ์ ์ ๊ฐ์ด ์ ์ฅ๋ ๋ค๋ฅธ ์ ๋ณด๊น์ง ์ฐ์์ ์ผ๋ก ์ญ์ ๋๋ ํ์ ์ฝ์ ์ด์: ํํ ์ฝ์ ์ ํน์ ์์ฑ์ ํด๋นํ๋ ๊ฐ์ด ์์ด NULL์ ์ ๋ ฅํด์ผํ๋ ํ์ ์์ (๊ฐฑ์ ) ์ด์: ํํ ์์ ์ ์ค๋ณต๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ง ์์ ๋์ด ์ผ์ด๋๋ ๋ฐ์ดํฐ ๋ถ์ผ์น ํ์ ์ด์ํ์์ ์๋ก ๊ณต์ ํ๋ ๋ฐ์ดํฐ์์๋ ๋ถ๊ตฌํ๊ณ ๊ฐ์์ ํํ์ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ ์ด๋ธ์ ๋ถ๋ฆฌํ์ฌ ๊ทธ ํ ์ด๋ธ์ ํตํด ๊ฐ์ ์ ๋ชฉ์ด๋ ๊ฐ์์ค์ ์ฐธ๊ณ ํ๊ฒ๋ ํ๋ค๋ฉด ์ด์ํ์๋ค์ ํด๊ฒฐํ ์ ์๋ค. ํจ์ ์ข ์์ฑ(Functional Dependency) ํจ์ ์ข ์์ฑ์ด๋? ์ด๋ค ์์ฑ A์ ๊ฐ์ ์๋ฉด ๋ค๋ฅธ ์์ฑ..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Data Modeling)
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Data Modeling)์ ๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ช ์ฃผ๊ธฐ ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์ - ์ค๊ณ - ๊ตฌํ - ์ด์ - ๊ฐ์ ๋ฐ ๊ฐ์ ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์ ๋จ๊ณ ์ฌ์ฉ์๋ค์ ์๊ตฌ์ฌํญ์ ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์ถ์ ๋ฒ์๋ฅผ ์ ํ๋ค. ์ค๊ณ ๋ถ์๋ ์๊ตฌ์ฌํญ์ ๊ธฐ์ด๋ก ์ฃผ์ ๊ฐ๋ ๊ณผ ์ ๋ฌด ํ๋ก์ธ์ค ๋ฑ์ ์๋ณ(๊ฐ๋ ์ ์ค๊ณ)ํ๊ณ ์ฌ์ฉํ๋ DBMS์ ์ข ๋ฅ์ ๋ง๊ฒ ๋ณํํํ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๋์ถ(๋ ผ๋ฆฌ์ ์ค๊ณ)ํ๋ค. ์ฆ, ๊ฐ๋ ์ ๋ชจ๋ธ๋ง์ ํ์ฌ ER๋ค์ด์ด๊ทธ๋จ์ ๋์ถํ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ๊ด๊ณ ์คํค๋ง ๋ชจ๋ธ์ ๋์ถํ๋ฉฐ ์ด๋ฅผ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋งํ์ฌ ๊ด๊ณ ์คํค๋ง๋ฅผ ๋์ถํด๋ธ๋ค. ๊ตฌํ ์ค๊ณ ๋จ๊ณ์์ ์์ฑํ ์คํค๋ง๋ฅผ ์ค์ DBMS์ ์ ์ฉํ์ฌ ํ ์ด๋ธ ๋ฐ ๊ด๋ จ ๊ฐ์ฒด(๋ทฐ or ์ธ๋ฑ์ค)๋ฅผ ๋ง๋ ๋ค. ์ด์ ๊ตฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํํธ์จ..