์ด์ ํฌ์คํ
https://rkdrkd-history.tistory.com/22
10. ์ ๊ทํ(Normalization)
์ ๊ทํ: ๋ ผ๋ฆฌ์ ์ค๊ณ ๋จ๊ณ์์ ๋ฐ์ ํ ์ ์๋ ์ข ์์ผ๋ก ์ธํ ์ด์ ํ์์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด, ์์ฑ๋ค ๊ฐ์ ์ข ์ ๊ด๊ณ๋ฅผ ๋ถ์ํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฆด๋ ์ด์ ์ผ๋ก ๋ถํดํ๋ ๊ณผ์
์ ๊ทํ: ์ ๊ทํ๋๋ ๊ณผ์
์ ๊ทํ์ ์ข ๋ฅ: ์ 1 ์ ๊ทํ, ์ 2 ์ ๊ทํ, ์ 3 ์ ๊ทํ, ์ 4 ์ ๊ทํ, BCNF, ์ 5 ์ ๊ทํ
1. ์ ๊ทํ์ ์ข ๋ฅ
1-1. ์ 1 ์ ๊ทํ(1NF: First Normal Form)
์ ์: ํ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋๋ฉ์ธ์ด ์์๊ฐ๋ง์ผ๋ก ๊ตฌ์ฑ๋๊ณ ๋ก ํ๋ ์ ๊ทํ
1-2. ์ 2 ์ ๊ทํ
์ ์: ์ 1 ์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ์์ ํจ์ ์ข ์์ด ๋๋๋ก ๋ถํดํ๋ ๊ณผ์
1-3. ์ 3 ์ ๊ทํ(3NF: Third Normal Form)
์ ์: ์ 2์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ์์ฑ๋ค ๊ฐ์ ์ดํ์ ํจ์ ์ข ์ ๊ด๊ณ๋ฅผ ๋ถํดํ์ฌ ๋น์ดํ์ ํจ์ ์ข ์์ด ๋๋๋ก ํ๋ ๊ณผ์
1-4. ๋ณด์ด์ค-์ฝ๋ ์ ๊ทํ(BCNF: Boyce-Codd Normal Form)
์ ์: ์ 3์ ๊ทํ์ ๋ง์กฑํ๋ฉด์, ๋ฆด๋ ์ด์ ์์ ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณด ํค๊ฐ ๋๋๋ก ํ๋ ๊ณผ์
1-5. ์ 4 ์ ๊ทํ(4NF: Fourth Normal Form)
์ ์: ๋ฆด๋ ์ด์ ์์ ๋ค์น ์ข ์(MVD) ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ๋๋ ๊ฒฝ์ฐ ๋ถํดํ๋ ์ ๊ทํ
๋ค์น ์ข ์ ๊ด๊ณ: ๋ฆด๋ ์ด์ ๋ด์ ๋ ์ดํธ๋ฆฌ๋ทฐํธ ์งํฉ ์ฌ์ด ์ฑ๋ฆฝํ๋ ์ ์ฝ์กฐ๊ฑด ์ค์ ํ๋, ์ด๋ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ์ด ๋ฆด๋ ์ด์ ์์ ์์ ๊ฒ์ ์๊ตฌํ๋ค.
1-6. ์ 5 ์ ๊ทํ(5NF: Fifth Normal Form)
์ ์: ๋ฆด๋ ์ด์ ์ ์กด์ฌํ๋ ์กฐ์ธ ์ข ์(Join Dependency)์ด ํ๋ณด ํค๋ฅผ ํตํด์๋ง ์ฑ๋ฆฝ์ด ๋๋๋ก ํ๋ ์ ๊ทํ
์กฐ์ธ ์ข ์: ์๋ด์ ๋ฆด๋ ์ด์ ์ ๋ถํดํ ๋ค ์์ฐ ์กฐ์ธํ ๊ฒฐ๊ณผ๊ฐ ์๋์ ๋ฆด๋ ์ด์ ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์ข ์์ฑ
11. ํธ๋์ญ์ (Transection)
ํธ๋์ญ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ฐ์ฐ๋ค์ ์งํฉ
- ํ๋์ ์์ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ ผ๋ฆฌ์ ์์ ๋จ์
1. ํธ๋์ญ์ ์ ์ฑ์ง
1-1. ์์์ฑ(Atomicity)
์ ์: ํธ๋์ญ์ ๋ด์ ์ฐ์ฐ์ ๋ฐ๋์ ๋ชจ๋ ์ํ๋์ด์ผ ํ๋ฉฐ, ๊ฒฐ๊ณผ์ ๋ชจ์์ด ์๊ฒจ์๋ ์๋๋ค.
1-2. ์ผ๊ด์ฑ(Consistency)
์ ์: ํธ๋์ญ์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋ ํ ์ธ์ ๋ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๊ฐ ๋์ด์ผ ํ๋ฉฐ, ๊ฒฐ๊ณผ์ ๋ชจ์์ด ์๊ธฐ๋ฉด ์๋๋ค.
1-3. ๊ฒฉ๋ฆฌ์ฑ(Isolation)
์ ์: ํ๋์ ํธ๋์ญ์ ์ด ์ํ ์ค์๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ทผ ํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ํธ๋์ญ์ ์ ๋ ๋ฆฝ์ ์ด์ด์ผ ํ๋ค.(=๋ ๋ฆฝ์ฑ)
1-4. ์์์ฑ(Durability)
์ ์: ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ ๊ฒฐ๊ณผ๋ ์ง์์ ์ผ๋ก ์ ์ง๋์ด์ผ ํ๋ค.(=์ง์์ฑ)
2. ํธ๋์ญ์ ์ฐ์ฐ
2-1. COMMIT
์ ์: ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃ๋ ํ ์์ ๋ ๋ด์ฉ์ ์ง์์ ์ผ๋ก ์ ์งํ๊ธฐ ์ํ ์ฐ์ฐ.
2-2. ROLLBACK์ ์: ํธ๋์ญ์ ์ด ๋น์ ์์ ์ผ๋ก ์ํ๋์๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋, ์ํ ์์ ์ ์ทจ์ํ๊ณ ์ด์ ์ํ๋ก ๋๋๋ฆฌ๋ ์ฐ์ฐ
3. ํธ๋์ญ์ ์ ์ํ๋
ํธ๋์ญ์ ์ ์ํ ๊ตฌ๋ถ
์คํ | ํ์ฌ ์งํ ์ค์ธ ์ํ |
๋ถ๋ถ์๋ฃ | ์คํ์ ๋ชจ๋ ๋ง์น๊ณ , ๋ฐ์ดํฐ๋ฒต์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ธฐ ์ง์ ์ํ |
์๋ฃ | ํธ๋์ญ์ ์ ์ฐ์ฐ์ ์ ์์ ์ผ๋ก ๋ง์น๊ณ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ํ |
์คํจ | ํธ๋์ญ์ ์คํ ์ค ์ค๋ฅ์ ์ํด ๋ ์ด์ ์งํ๋ ์ ์๋ ์ํ |
์ฒ ํ | ํธ๋์ญ์ ์คํ์ด ์คํจ๋์ด ๋ณต๊ท๋๋ ์ํ |
12. ํ๋ณต ๊ธฐ๋ฒ๊ณผ ๋ณํ ์ ์ด
ํ๋ณต: ์ฌ๋ฌ ๊ฐ์ง ์์ธ์ผ๋ก ์ธํด ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์๋๊ธฐ ์ด์ ์ ์ํ๋ก ๋ณต๊ตฌ์ํค๋ ์์
1. ํ๋ณต ๊ธฐ๋ฒ
- ์ฆ์ ๊ฐฑ์ ๊ธฐ๋ฒ: ํธ๋์ญ์ ์ด ์คํ ์ํ์์ ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ๊ทธ๋๊ทธ๋ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ์ฉํ๋ ๊ธฐ๋ฒ
- ์ง์ฐ ๊ฐฑ์ ๊ธฐ๋ฒ: ํธ๋์ญ์ ์ด ์ํ๋์ด ๋ถ๋ถ์๋ฃ ๋ ๋๊น์ง ์ง์ฐ์ํจ ํ ๋ถ๋ถ์๋ฃ๊ฐ ๋๋ฉด ๋ก๊ทธ ๋ด์ฉ์ ํ ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ๋ ๊ธฐ๋ฒ
- ๊ฒ์ฌ ์์ ๊ธฐ๋ฒ: ํธ๋์ญ์ ์ด ์คํ๋๋ ์ค๊ฐ์ ๊ฒ์ฌ ์์ ์ ์ง์ ํ์ฌ ๊ฒ์ฌ ์์ (Check Point)์ ์ง์ ํ์ฌ ์์ ๊น์ง ์ํ ํ ์๋ฃ๋ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ๋ ๊ธฐ๋ฒ
- ๊ทธ๋ฆผ์ ํ์ด์ง(Shadow Paging) ๊ธฐ๋ฒ: ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ผํ ํฌ๊ธฐ์ ๋จ์์ธ ํ์ด์ง๋ก ๋๋์ด ๊ฐ ํ์ด์ง๋ง๋ค ๋ณต์ฌํ์ฌ ๊ทธ๋ฆผ์ ํ์ด์ง๋ฅผ ๋ณด๊ดํ๋ค.
1-1. REDO(์ฌ์ํ)๊ณผ UNDO(์ทจ์)
- REDO: ํธ๋์ญ์ ์ด ์ํ๋์ด COMMIT์ด ๋๋ฉด ๋ก๊ทธ์ ๋ด์ฉ์ ํ ๋๋ก ๋ณ๊ฒฝ๋ ๋ด์ฉ ์ฌ์ํํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ๊ฒ ๋๋ค.
- UNDO: ํธ๋์ญ์ ์ ์ํํ๋ค๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ ํธ๋์ญ์ ์ด ์์๋ ์์ ์ผ๋ก ๋์๊ฐ๋ ๊ณผ์
2. ๋ณํ ์ ์ด(Concurrency Control)
๋ณํ ์คํ: ๋์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๊ฒฝ์ฐ
๋ณํ ์ ์ด: ๋ณํ ์คํ์ ํธ๋์ญ์ ๊ฐ์ ๊ฒฉ๋ฆฌ์ฑ์ ์ ์งํ์ฌ ํธ๋์ญ์ ์ํ์ ๋ฌธ์ ๊ฐ ๋ฐ์๋์ง ์๋๋ก ์ ์ดํ๋ ๊ฒ
๋ํ์ ์ธ ๋ฐฉ๋ฒ: ๋กํน(Locking)
2-1. ๋กํน(Locking)
๋กํน(Locking) ๊ธฐ๋ฒ: ํ๋์ ํธ๋์ญ์ ์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ
- ํ๋์ ํธ๋์ญ์ ์ด ์คํ๋ ๋์๋ 'LOCK' ์ ์ค์ ํด ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋ฐ์ดํฐ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์ ๊ทผ ํ ์คํํ๊ณ , ์คํ์ด ์๋ฃ๋๋ฉด 'UNLOCK' ์ ํตํด ํด์ ํ๋ค.
LOCK -> ํธ๋์ญ์
์คํ -> ํธ๋์ญ์
์๋ฃ -> UNLOCK
2-2. ๋กํน ๋จ์
- LOCK์ ์ค์ ํ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ธ๋ค.
- ๋กํน ๋จ์๋ ํ ์ด๋ธ, ์์ฑ, ํํ ๋จ์๋ก ์ค์ ํ ์ ์๋ค.
- ๋กํน ๋จ์๊ฐ ํฌ๋ฉด ๋ง์ ์์ ๋ฐ์ดํฐ์ LOCK ์ค์ ์ด ๊ฐ๋ฅํ๊ณ , ๋กํน ๋จ์๊ฐ ์์ผ๋ฉด ์ ์ ์์ ๋ฐ์ดํฐ์ LOCK ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
- ๋กํน ๋จ์๊ฐ ํฌ๋ฉด LOCK์ผ๋ก ์ค์ ํ ๊ฐ์ง์๊ฐ ์ ์ด์ง๊ณ , ๋กํน ๋จ์๊ฐ ์์ผ๋ฉด LOCK์ผ๋ก ์ค์ ํ ๊ฐ์ง์๊ฐ ๋ง์์ง๋ค.
- ๋กํน ๋จ์๊ฐ ํฌ๋ฉด ๋ณํ์ฑ ์์ค์ด ๋ฎ์์ง๊ณ , ๋กํน ๋จ์๊ฐ ์์ผ๋ฉด ๋ณํ์ฑ ์์ค์ด ๋์์ง๋ค.
2-3. ๋ณํ ์ ์ด๋ฅผ ํ์ง ์์์๋์ ๋ฌธ์ ์
๊ฐฑ์ ๋ถ์ค(Lost Update) | ๋ ๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ์ํ๋๋ ๊ณผ์ ์์ ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ผ๋ถ ์์ด์ง๋ ํ์ |
๋ชจ์์ฑ(Inconsistency) | ๋ ๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ์ํ๋์ด ์ป์ด์ง ๊ฒฐ๊ณผ๊ฐ ์ผ๊ด์ฑ ์์ด ์๋ก ๋ค๋ฅธ ํ์ |
์ฐ์ ๋ณต๊ท(Cascading Rollback) | ๋ ๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ์ํ๋๋ ์ค ํ๋์ ํธ๋์ญ์ ์ด ์ทจ์๋์ด ์ฐ์์ ์ผ๋ก ๋ค๋ฅธ ํธ๋์ญ์ ๋ ์ทจ์๋๋ ํ์ |