Normalization
์ ๊ทํ์ ๋ํด์ ์ค๋ช
ํด ์ฃผ์ธ์.
์ ๊ทํ(
Normailization) ๋ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ๋ฐ์ดํฐ์ ์ค๋ณต์ฑ์ ์ ๊ฑฐํ์ฌ ์ด์ ํ์์ ๋ฐฉ์งํ๊ณ , ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ์ ํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ๋ฌด์์ค ๋ถํดํ๋ ๊ณผ์ ์ด๋ค.์ ๊ทํ์ ๊ธฐ๋ณธ ๋ชฉํ๋ ํ ์ด๋ธ ๊ฐ์ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.
์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ง ์์์ผ๋ก์จ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ผ๋ฉฐ, DB์ ์ ์ฅ ์ฉ๋๋ ์ค์ผ ์ ์๋ค.
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ(
Integrity)๋ ๋ฐ์ดํฐ๊ฐ ์ ์ก, ์ ์ฅ๋๊ณ ์ฒ๋ฆฌ๋๋ ๋ชจ๋ ๊ณผ์ ์์ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์์๋์ง ์๊ณ ์์ ์ฑ, ์ ํ์ฑ, ์ผ๊ด์ฑ์ ์ ์งํจ์ ๋ณด์ฅํ๋ ํน์ฑ์ด๋ค.
์ ๊ทํ ๋จ๊ณ๋ฅผ ์ค๋ช
ํด ์ฃผ์ธ์.
ํ์ ๊ฐ๋
ํจ์ ์ข ์ ์ข ๋ฅ
๋ถ๋ถ ํจ์ ์ข ์ (Partial Functional Dependency)
๋ฆด๋ ์ด์ ์์ ๊ธฐ๋ณธ ํค๊ฐ ๋ณตํฉ ํค์ผ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ ์ค ์ผ๋ถ์๊ฒ ์ข ์๋ ๊ฒฝ์ฐ
์์ ํจ์ ์ข ์ (Full Functional Dependency)
๋ฆด๋ ์ด์
์์ X -> Y ๊ด๊ณ๊ฐ ์์ ๋, Y๋ X์ ์ ์ฒด ์์ฑ์ ๋ํด ์ข
์ํ๊ณ , ๋ถ๋ถ ์งํฉ ์์ฑ์ ์ข
์ํ์ง ์๋ ๊ฒฝ์ฐ
์ดํ ํจ์ ์ข ์ (Transitive Functional Dependency)
๋ฆด๋ ์ด์
์์ X -> Y, Y -> Z ์ข
์ ๊ด๊ณ๊ฐ ์์ ๋, X -> Z๊ฐ ์ฑ๋ฆฝ๋๋ ๊ฒฝ์ฐ
ํค ์ข ๋ฅ
๊ธฐ๋ณธ ํค (Primary Key)
ํ ์ด๋ธ์ ๊ฐ ํํ๋ค์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ์ปฌ๋ผ
๋์ฒด ํค (Alternate Key)
ํ๋ณด ํค ์ค์์ ๊ธฐ๋ณธ ํค๋ก ์ ํ๋์ง ์์ ํค
ํ๋ณด ํค (Candidate Key)
- ํ ์ด๋ธ์์ ๊ฐ ํํ์ ๊ตฌ๋ณํ๋ ๋ฐ ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ - ๊ธฐ๋ณธ ํค์ ๋์ฒด ํค๋ฅผ ํฉ์น ํค(๊ธฐ๋ณธ ํค โ ํ๋ณด ํค, ๋์ฒด ํค โ ํ๋ณด ํค)
์ํผ ํค (Super Key)
๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง, ์ต์์ฑ์ ๋ง์กฑํ์ง ๋ชปํ๋ ํค
์ธ๋ ํค (Foreign Key)
- ํ ์ด๋ธ ๊ฐ์ ์ฐธ์กฐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ํ ์ ์ฝ ์กฐ๊ฑด - ํ ๋ฆด๋ ์ด์ ์ ์ปฌ๋ผ์ด ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํค๋ก ์ด์ฉ๋๋ ํค
์ 1 ์ ๊ทํ
ํ ์ด๋ธ ๋ด์ ์์ฑ๊ฐ์ ์์๊ฐ(ํ๋์ ๊ฐ)์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
๋ชจ๋ ์์ฑ์ ๋ฐ๋ณต๋๋ ๊ทธ๋ฃน์ด ๋ํ๋์ง ์์์ผ ํ๋ค.
๊ธฐ๋ณธํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ๋ฐ์ดํฐ์ ๊ฐ ์งํฉ์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์์ด์ผ ํ๋ค.
๋ค์ ํ ์ด๋ธ์ "์ทจ๋ฏธ๋ค" ์ปฌ๋ผ์ ๋ํด ์์๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์์ ํ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ 1 ์ ๊ทํ์ ๋ง์กฑํ์ง ๋ชปํ๋ค.

์ 1 ์ ๊ทํํ์ฌ ๋ถํดํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.

์ 2 ์ ๊ทํ
์ 1 ์ ๊ทํ๋ฅผ ์งํํ ํ ์ด๋ธ์ ๋ํด ์์ ํจ์ ์ข ์์ ๋ง์กฑํ๋๋ก ํ ์ด๋ธ์ ๋ถํดํ๋ค.
์์ ํจ์ ์ข ์ : ๊ธฐ๋ณธ ํค์ ๋ถ๋ถ์งํฉ์ด ๊ฒฐ์ ์๊ฐ ๋์ด์ ์ ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
ํ ์ด๋ธ์์ ๊ธฐ๋ณธ ํค๊ฐ ๋ณตํฉ ํค(ํค1, ํค2)๋ก ๋ฌถ์ฌ์์ ๋, ๋ ํค ์ค ํ๋์ ํค๋ง์ผ๋ก ๋ค๋ฅธ ์ปฌ๋ผ์ ๊ฒฐ์ ์ง์ ์ ์์ผ๋ฉด ์ ๋๋ค.
๊ธฐ๋ณธ ํค์ ๋ถ๋ถ์งํฉ ํค๊ฐ ๊ฒฐ์ ์๊ฐ ๋์ด์ ์ ๋๋ค.

๊ธฐ๋ณธ ํค๋
(ํ์ ๋ฒํธ, ๊ฐ์ข์ด๋ฆ)์ผ๋ก ๋ณตํฉ ํค์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๋ณธ ํค๋ "์ฑ์ "์ ๊ฒฐ์ ํ๊ณ ์๋ค.๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ "๊ฐ์์ค" ์ปฌ๋ผ์ ๊ธฐ๋ณธ ํค์ ๋ถ๋ถ์งํฉ์ธ "๊ฐ์ข์ด๋ฆ"์ ์ํด ๊ฒฐ์ ๋ ์ ์๋ค.
์ฆ, ๊ธฐ๋ณธ ํค์ ๋ถ๋ถ ํค์ธ "๊ฐ์ข์ด๋ฆ"์ด ๊ฒฐ์ ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์์ค์ ๋ถํดํด ๋ณ๋์ ํ ์ด๋ธ๋ก ๊ด๋ฆฌํ์ฌ ์ 2 ์ ๊ทํ์ ๋ง์กฑ์ํฌ ์ ์๋ค.

์ 3 ์ ๊ทํ
์ 2 ์ ๊ทํ๋ฅผ ์งํํ ํ ์ด๋ธ์ ๋ํด ์ดํ์ ์ข ์์ ์์ ๋๋ก ํ ์ด๋ธ์ ๋ถํดํ๋ค.

ํ์ ๋ฒํธ๋ ๊ฐ์ข ์ด๋ฆ์ ๊ฒฐ์ ํ๊ณ ์๊ณ , ๊ฐ์ข ์ด๋ฆ์ ์๊ฐ๋ฃ๋ฅผ ๊ฒฐ์ ํ๊ณ ์๋ค.
์ธ ์ปฌ๋ผ์ ํ ํ ์ด๋ธ์ ๋๋ ๊ฒ์ ์ดํํจ์ ์ข ์์ฑ์ผ๋ก ์ธํด 3์ฐจ ์ ๊ทํ๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๋ค.
ํ์๋ฒํธ๋ ์๊ฐ๋ฃ์ ์ง์ ์ํฅ์ ์ฃผ๋ ๊ด๊ณ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ (
ํ์๋ฒํธ, ๊ฐ์ข์ด๋ฆ) ํ ์ด๋ธ๊ณผ (๊ฐ์ข์ด๋ฆ, ์๊ฐ๋ฃ) ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ์ฌ ์ดํ ํจ์ ๊ด๊ณ๋ฅผ ์ ๊ฑฐํ์ฌ 3์ฐจ ์ ๊ทํ๋ฅผ ๋ง์กฑํ๋ค.

ํ์ ๋ฒํธ๋ฅผ ํตํด ๊ฐ์ข์ด๋ฆ์ ์ฐธ์กฐํ๊ณ , ๊ฐ์ข์ด๋ฆ์ ํตํด ์๊ฐ๋ฃ๋ฅผ ์ฐธ์กฐํ๋๋ก ๋ถํดํ๋ค.
๋ณด์ด์ค-์ฝ๋ ์ ๊ทํ(BCNF)
BCNF ์ ๊ทํ๋ ์ 3 ์ ๊ทํ๋ฅผ ์งํํ ํ ์ด๋ธ์ ๋ํด ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค๊ฐ ๋๋๋ก ํ ์ด๋ธ์ ๋ถํดํ๋ค.

๊ธฐ๋ณธ ํค๋
(ํ์๋ฒํธ, ํน๊ฐ์ด๋ฆ)์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ ํค๋ "๊ต์"๋ฅผ ๊ฒฐ์ ํ๊ณ ์๊ณ , "๊ต์"๋ "ํน๊ฐ์ด๋ฆ"์ ๊ฒฐ์ ํ๊ณ ์๋ค.๋ฌธ์ ๋ "๊ต์"๊ฐ "ํน๊ฐ์ด๋ฆ"์ ๊ฒฐ์ ํ๋ ๊ฒฐ์ ์์ด์ง๋ง, ํ๋ณด ํค๊ฐ ์๋๋ผ๋ ์ ์ด๋ค.
๋๋ฌธ์ BCNF ์ ๊ทํ๋ฅผ ๋ง์กฑ์ํค๊ธฐ ์ํด ํ ์ด๋ธ์ ๋ถ๋ฆฌํ ์ ์๋ค.

"ํน๊ฐ์ ์ฒญ" ํ ์ด๋ธ๊ณผ "ํน๊ฐ๊ต์" ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ค.
์ฐธ๊ณ
Last updated