์ ๊ทํ(Normalization)
- ๋ฆด๋ ์ด์ ์ ์ฌ๋ฌ ๊ฐ๋ก ๋ถ๋ฆฌํ๋ ๊ณผ์
- ๋ฆด๋ ์ด์ ๊ฐ ์๋ชป๋ ํจ์ ์ข ์ ๊ด๊ณ๋ก ๋ฐ์ํ๋ ๊ฐ์ข ์ฝ์ /๊ฐฑ์ /์ญ์ ์ด์ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํจ
- ๋ถํ์ํ ๋ฐ์ดํฐ ์ ๊ฑฐ๋ฅผ ํตํด ์ ์ฅ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ
- ํจ์ ์ข ์ ๊ด๊ณ๋ ๋ฆด๋ ์ด์ ๋ถ๋ฆฌ(์ ๊ทํ)์ ๊ธฐ์ค์ด ๋จ
โป ์ฝ์
/๊ฐฑ์ /์ญ์ ์ด์ ํ์์ ๊ดํ ๋ด์ฉ์ ์๋ ํฌ์คํธ ์ฐธ๊ณ
https://zu-techlog.tistory.com/141
์ 1์ ๊ทํ(1NF)
- ๋ฆด๋ ์ด์ ์ ๋ชจ๋ ๋๋ฉ์ธ์ด ๋ ์ด์ ๋ถํด๋ ์ ์๋ ์์ ๊ฐ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด์ผ ํจ
- ์ ๊ทธ๋ฆผ์ Telephone Number์ ๋๋ฉ์ธ์ด ์์ ๊ฐ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ 1์ ๊ทํ ๋ง์กฑ X
- ๋ฆด๋ ์ด์ ์ ์์ฑ ๊ฐ ์ค์์ ํ ๊ฐ์ ๊ธฐ๋ณธํค์ ๋ํด ๋ ๊ฐ ์ด์์ ๊ฐ์ ๊ฐ์ง๋ ๋ฐ๋ณต ์งํฉ์ด ์๋ค๋ฉด ์ ๊ฑฐ
- ์ ๊ทธ๋ฆผ์ Telephone Number์ ๋ํด 2๊ฐ์ ๋ฐ๋ณต ์งํฉ์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์ 1์ ๊ทํ ๋ง์กฑ X
์ 2์ ๊ทํ(2NF)
- ์ 1์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ ์์ ํจ์ ์ข ์์ ๋ง์กฑํด์ผ ํจ
- ๋ถ๋ถ์ ํจ์ ์ข ์ ์ ๊ฑฐ
๐ก ํจ์ ์ข ์์ด๋?
- ์์ ํจ์ ์ข ์: ๊ธฐ๋ณธํค๊ฐ ๋จ์ผํค ์ผ ๊ฒฝ์ฐ X -> Y ๋ง์กฑ, ๊ธฐ๋ณธํค๊ฐ ๋ณตํฉํค ์ผ ๊ฒฝ์ฐ {X1,X2} -> Y ๋ง์กฑ
- ๋ถ๋ถ ํจ์ ์ข ์: ๊ธฐ๋ณธํค๊ฐ ๋ณตํฉํค ์ผ ๊ฒฝ์ฐ X1, X2 ์ค ํ๋๋ง์ผ๋ก๋ Y์ ๊ฐ์ ๊ฒฐ์
- ์ดํ์ ํจ์ ์ข ์: X -> Y์ธ๋ฐ, Y -> Z ๋ค. ๊ฒฐ๊ตญ X -> Z์ธ ๊ฒ์ ์ ์ ์๋ ๊ฒฝ์ฐ
์์)
Model Full Name์ ๋ณตํฉํค์ธ Manufacturer์ Model์ ๋ํด ์์ ํจ์ ์ข ์์ ๋ง์กฑํ์ง๋ง Manufacturer Country๋ Manufacturer์ ๋ฐ๋ผ์๋ง ๊ฒฐ์ ๋๋ ๋ถ๋ถ ํจ์ ์ข ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง
๋ฐ๋ผ์, ์์ ๊ฐ์ด ํ ์ด๋ธ์ ๋ถ๋ฆฌํ์ฌ ๋ถ๋ถ ํจ์ ์ข ์์ ์ ๊ฑฐํ๋ฉด ์ 2์ ๊ทํ ๋ง์กฑ ๊ฐ๋ฅ
์ 3์ ๊ทํ(3NF)
- ์ 2์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ๋ํด ์ดํ์ ํจ์ ์ข ์์ ๋ง์กฑํ์ง ์๋๋ก ํจ
์์)
Winner Date of Birth ์์ฑ์ ๊ธฐ๋ณธํค๊ฐ ์๋ ์์ฑ Winner์๊ฒ ์ข ์๋๊ณ , Winner๋ ๊ธฐ๋ณธํค์ธ Tournament์ Year์ ์ข ์๋๋ฏ๋ก ๊ฒฐ๊ตญ Winner Date of Birth๋ {Tournament, Year}์ ์์กดํ๊ฒ ๋๋ ์ดํ์ ํจ์ ์ข ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง
๋ฐ๋ผ์, ์์ ๊ฐ์ด ํ ์ด๋ธ์ ๋ถ๋ฆฌํ์ฌ ์ดํ์ ํจ์ ์ข ์์ ์ ๊ฑฐํ๋ฉด ์ 3์ ๊ทํ ๋ง์กฑ ๊ฐ๋ฅ
BCNF
- ์ 3์ ๊ทํ์ ๋ง์กฑํ๋ฉด์ ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค ์งํฉ์ ์ํด์ผ ํจ
์์)
๊ต์๋ ํ๋์ ๊ณผ๋ชฉ๋ง ๊ฐ์ํ ์ ์๋ค๊ณ ๊ฐ์ ํ ๋, ๊ฒฐ์ ์๋ '๊ต์' (๊ต์์ ๋ฐ๋ผ ๊ณผ๋ชฉ์ด ์ ํด์ง๊ธฐ ๋๋ฌธ) ์ด์ง๋ง ํ๋ณดํค๋ {ํ์, ๊ณผ๋ชฉ}๋ก '๊ต์'๊ฐ ํฌํจ๋์ง ์์
๋ฐ๋ผ์, ์์ ๊ฐ์ด ํ ์ด๋ธ์ ๋ถ๋ฆฌํ์ฌ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค๊ฐ ๋๋๋ก ํ๋ฉด BCNF ๋ง์กฑ ๊ฐ๋ฅ
๋ฐ์ ๊ทํ(De-Normalization)
- ์ ๊ทํ๋ ๋ฆด๋ ์ด์ ๋ถ๋ฆฌ๋ก ์ธํด ๋ฆด๋ ์ด์ ๊ฐ JOIN ์ฐ์ฐ์ด ๋ง์์ ธ ์ง์์ ๋ํ ์๋ต ์๊ฐ์ด ๋๋ ค์ง ์ ์์
- ๋ฐ์ดํฐ ์กฐํ ์ฑ๋ฅ ํฅ์์ ์ํด ๋ฐ์ดํฐ ์ค๋ณต์ ํ์ฉํ๋ฉฐ ๋ฆด๋ ์ด์ ์ ํฉ์น๋ ๊ณผ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฒฝํ ๊ตฌ์กฐ ์ค๊ณ๋ฅผ ํฌ๊ธฐํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๊นจ๋จ๋ฆฌ๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฝ๊ธฐ ์ฑ๋ฅ์ ํฅ์
- ๋ฐ์ดํฐ ์ค๋ณต์ผ๋ก ์ฝ์ , ์์ , ์ญ์ ์ ์ฑ๋ฅ์ ๋ฎ์์ง ์ ์์
- ์ํฉ์ ๋ฐ๋ผ ํ์ ์ ๋ฐ์ ๊ทํ ์ํ
- ์ ๊ทํ์ ์ถฉ์คํ์ฌ ์ข ์์ฑ, ํ์ฉ์ฑ์ ํฅ์๋์์ง๋ง, ์ํ์๋๊ฐ ๋๋ ค์ง ๊ฒฝ์ฐ
- ๋ค๋์ ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ์์ฃผ ์ฒ๋ฆฌํด์ผํ๋ ๊ฒฝ์ฐ
- ํน์ ๋ฒ์์ ๋ฐ์ดํฐ๋ง ์์ฃผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ
- ์์ฝ/์ง๊ณ ์ ๋ณด๊ฐ ์์ฃผ ์๊ตฌ๋๋ ๊ฒฝ์ฐ
์์)
๊ฐ์ฌ, ์์ , ์๊ฐ๋ฃ 3๊ฐ์ ํ ์ด๋ธ์ JOINํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ณผ์ ์์ ์๋ ์ ํ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ ๊ทํ๋ฅผ ํตํด ์ผ๋ถ ๋ฐ์ดํฐ ์ค๋ณต์ ํ์ฉํ๋ฉฐ ์กฐํ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์
'Computer Science > ๐พ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] ์ด์ ํ์(Anomaly) ๊ฐ๋ , ์ข ๋ฅ (0) | 2023.03.31 |
---|---|
[DB] SQL ์กฐ์ธ(Join) ๊ฐ๋ , ์ข ๋ฅ (0) | 2023.03.24 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด ์ฉ์ด, ํค(Key)์ ๊ฐ๋ ๊ณผ ์ข ๋ฅ (0) | 2023.03.23 |
[DB] ํธ๋์ญ์ (Transaction) ๊ฐ๋ , ํน์ง, ์ฐ์ฐ, ์ํ (0) | 2023.03.22 |
[DB] RDBMS์ SQL๊ณผ NoSQL ์ฐจ์ด (0) | 2023.03.21 |