์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ฌธ์์ด
- ๋ฐ์ดํฐํ์
- ๋ฐฑ์ค9093
- ์ฟ ํกDB
- ํ๋ฐฉ์ฟผ๋ฆฌ
- java
- ์ฐ์ฐ์
- ์คํ
- ๋ฐฑ์ค9012
- ๋
- stream
- StringBuffer
- ์๋ฐ
- ์ฐ
- ์คํธ๋ฆผ
- ๋ฐฐ์ด
- ์คํ์์ด
- ์ฟ ํกERD
- StringBuilder
- ์
- ๋ฐฑ์ค1874
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- Today
- Total
Tech Log ๐ ๏ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ๋(ํจ์ ์ข ์,๊ฐ๋ ,์ข ๋ฅ) ๋ณธ๋ฌธ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ๋(ํจ์ ์ข ์,๊ฐ๋ ,์ข ๋ฅ)
sehaan 2024. 1. 13. 02:26
๋ฐฐ๊ฒฝ์ง์ : ํจ์ ์ข ์
๋ ํํ์ X๊ฐ์ด ๊ฐ๋ค๋ฉด Y๊ฐ๋ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฆ X ๊ฐ์ ๋ฐ๋ผ์ Y์ ๊ฐ์ด ๊ฒฐ์ ๋๋ ๊ฒ์ธ๋ฐ, X์ Y๋ฅผ์ ํจ์ ์ข ์ ๊ด๊ณ๋ผ๊ณ ํ๋ค.
๊ด์ ์ ๋ฐ๋ผ์ X๊ฐ Y๋ฅผ ํจ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ค. ๋ผ๊ณ ํ ์๋ ์๊ณ Y๊ฐ X์ ํจ์์ ์ผ๋ก ์์กดํ๋ค. ๋ผ๊ณ ํํํ ์๋ ์๋ค.
์ด๋ฌํ ๊ด๊ณ๋ฅผ ํจ์ ์ข ์ ํน์ Funtional Dependency(FD)๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด ์๋ ํ ์ด๋ธ์์๋ ํ์์ด๋ฆ๊ณผ ํ๋ก๊ทธ๋จ์ด primary key์ด๋ฉฐ ์ด๋ ๊ฐ๊ฒฉ์ ๊ฒฐ์ ํ๋ค.
(ํ์ ๋ฒํธ๊ฐ ์ข ๋ ์์ฐ์ค๋ฝ์ง๋ง ์ค๋ช ์ ์ํด ๋ค๋ฅธ ํค๋ฅผ ์์๋ก ๋ ๋ค.)
์ด ๋์ FD ๊ด๊ณ๋ผ๊ณ ํ ์ ์์ผ๋ฉฐ ๊ธฐํธ๋ก๋ {ํ์์ด๋ฆ,ํ๋ก๊ทธ๋จ} -> ๊ฐ๊ฒฉ ์ผ๋ก ํ์ํ๋ค.
ํ์๋ฒํธ | ํ์์ด๋ฆ | ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ |
101 | ๋ฏผ์ | ํ ๋์ค | 5000 |
102 | ์ฒ ์ | ๋๊ตฌ | 7000 |
103 | ์ํฌ | ์ถ๊ตฌ | 4000 |
103 | ์ํฌ | ๋๊ตฌ | 7000 |
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ FD๋ฅผ ํ์ ํ ๋๋ ์คํค๋ง์ ์๋ฏธ๋ฅผ ๋ณด๊ณ ํ์ ํด์ผํ๋ฉฐ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ค์ ๋ณด๊ณ ์ถ๋ก ํด์๋ ์๋๋ค.
์๋ํ๋ฉด ํ์ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ ๋ฐ์ดํฐ๊ฐ FD์ฒ๋ผ ๋ณด์ธ๋ค๊ณ ์๊ฐํด๋ ๋๋ช ์ด์ธ์ด๋ผ๋ ๋ณ์๊ฐ ์์ ์ ์๊ณ ์ฌ๋ฌ ์์ธ ์ํฉ๋ค์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ ๊ฒ ๊ตฌ์ถํ๋ ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑ(์ ํธ๋ฆฌ๋ทฐํธ)๊ฐ ๊ด๊ณ์ ์ผ๋ก ์ด๋ค ์๋ฏธ๋ฅผ ์ง๋์ง์ ๋ฐ๋ผ์ FD๋ค์ด ๋ฌ๋ผ์ง๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ(or state)๋ง ๋ณด๊ณ ํ๋จํ๊ธฐ๋ณด๋จ ์คํค๋ง๋ฅผ ๋ณด๊ณ ์๋ฏธ์ ์ผ๋ก ์กด์ฌํ๋ ์ง ํ์ ํด์ผํ๋ค.
๋ ํ๊ฐ์ง ์ค์ํ ์ ์ FD๋ ์ญ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.
X -> Y ๊ด๊ณ๋ผ๊ณ ํด์ Y->X๊ฐ ์ฑ๋ฆฝํ์ง๋ ์๋๋ค. ์๋ฅผ ๋ค์ด๋ณด๋ฉด ํ๋ก๊ทธ๋จ์ด ๊ฐ๊ฒฉ์ ๊ฒฐ์ ์ง๋ ๋ค๊ณ ํด์ ๊ฐ๊ฒฉ์ด ํ๋ก๊ทธ๋จ์ ๊ฒฐ์ ํ๋ ๊ฒ์ ์๋๋ค!
{ํ๋ก๊ทธ๋จ} -> ๊ฐ๊ฒฉ (O)
{๊ฐ๊ฒฉ} -> ํ๋ก๊ทธ๋จ (X)
*{}-> Y ๋ "Y์ ์ธ์ ๋ ํ๋์ ๊ฐ๋ง์ ๊ฐ์ง๋ค"๋ ์๋ฏธ์ด๋ค.
Trivial Funtional Dependcy
X -> Y์ ๊ด๊ณ์์ Y๊ฐ X์ ๋ถ๋ถ ์งํฉ์ด๋ผ๋ฉด ์ด ๊ด๊ณ๋ฅผ Trivial Funtional Dependcy๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด, {a,b,c} -> {c} ๊ฐ์ด c๊ฐ a,b,c์ ๋ถ๋ถ์งํฉ์ธ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋ฐ๋์ ๊ฒฝ์ฐ๋ก๋ ๋น์ฐํ non-Trivial Funtional Dependcy (์์ ์๊ฒน์น๋ฉด completely-non) ๊ฐ์ ๊ด๊ณ๊ฐ ์๋ค.
Partial Functional Dependency
X->Y์ ๊ด๊ณ์์ X์ ๋ถ๋ถ์งํฉ(์ ์ฒด๋ฅผ ์ ์ธํ)๋ง์ผ๋ก Y๋ฅผ ๊ฒฐ์ ์ง์ ์ ์๋ค๋ฉด ์ด๋ฅผ Partial Functional Dependency๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด, {a,b,c} -> {c} ์์ {a} -> {c}๊ฐ ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋ฐ๋์ ๊ฒฝ์ฐ๋ Full Funtional Dependcy๊ฐ ์๋ค.
DB ์ ๊ทํ๋
๋ฐ์ดํฐ ์ค๋ณต๊ณผ insertion , update , deletion anomaly๋ฅผ ์ต์ํํ๊ธฐ ์ํด ํจ์์ ์ข ์์ฑ์ ์ด์ฉํด์ relational DB๋ฅผ ๊ตฌ์ฑํ๋ ๊ณผ์ ์ด๋ค.
์ฝ์ ์ด์ : ์๋ฃ๋ฅผ ์ฝ์ ํ ๋ ์๋์น ์์ ์๋ฃ๊น์ง ์ฝ์ ํด์ผํ๋ค. (ex. null)
๊ฐฑ์ ์ด์ : ์ค๋ณต๋ ๋ฐ์ดํฐ ์ค ์ผ๋ถ๋ง ์์ ๋์ด ๋ชจ์์ด ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
์ญ์ ์ด์ : ์ด๋ค ์ ๋ณด๋ฅผ ์ญ์ ํ๋ฉด ์๋์น ์์ ๋ค๋ฅธ ์ ๋ณด๊น์ง ์ญ์ ๋๋ค.
์ ๊ทํ๋ฅผ ์งํํ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ ์์ ์์ ์ฌ๋ฌ ์ด์ ํ์๋ค์ ์ค์ผ ์ ์๊ณ , ํ์ฅ์ ์ฉ์ดํ์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ต์ํ์ ์ํฅ๋ง์ ๋ฏธ์น๋ค.
์ ๊ทํ์๋ ๋ช ๋จ๊ณ์ nf(normal forms)๊ฐ ์๋๋ฐ ์ฒ์ ๋จ๊ณ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์งํํ๋ฉฐ ์ ๋จ๊ณ๋ฅผ ๋ง์กฑํด์ผ ๋ค์ ๋จ๊ณ๋ฅผ ์งํํ ์ ์๋ค.
๋ณดํต ์ค๋ฌด์์ 3nf๊น์ง ํ๋ฉด ์ ๊ทํ๋์๋ค๋ผ๊ณ ๋งํ๋ค.
์ 1 ์ ๊ทํ(1NF)
๋ชจ๋ attribute์ value๋ ๋ ์ด์ ๋๋ ์ง ์ ์๋ ๊ฐ์ด์ด์ผํ๋ค. -> ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด ์๋๋ค.
ํ์๋ฒํธ | ํ์์ด๋ฆ | ํ๋ก๊ทธ๋จ |
101 | ๋ฏผ์ | ํ ๋์ค |
102 | ์ฒ ์ | ๋๊ตฌ |
103 | ์ํฌ | ์ถ๊ตฌ,๋๊ตฌ |
(์์ ์ฐธ๊ณ : ์ฝ๋ฉ์ ํ)
์ํฌ์ ํด๋นํ๋ ํ๋ก๊ทธ๋จ ๋ฐ์ดํฐ๊ฐ ๋ ๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์ด๋ ์ 1 ์ ๊ทํ์ ์๋ฐํ๋ค.
์ 2 ์ ๊ทํ(2NF)
๋ชจ๋ non-prime attribute๋ ๋ชจ๋ key์ ๋ํด full funtional dependentํด์ผํ๋ค.
(ํ์ฌ ํ ์ด๋ธ๊ณผ ์๊ด์๋ ์ปฌ๋ผ๋ค์ ๋ถ๋ฆฌํ๋ค.)
์ 1 ์ ๊ทํ์ ์ ์ฉํ์์ผ๋ฉด ์ด์ ์ 2 ์ ๊ทํ์ ์งํํ ์ฐจ๋ก์ด๋ค.
ํ์ฌ ํ ์ด๋ธ์์๋ ํ์ ์ ๋ณด์ ํ๋ก๊ทธ๋จ ์ ๋ณด๊ฐ ํผ์ฌํด์๋ค. ์ด๋ฐ ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํด์ผํ ์์ ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์ธ ์ ์๋ค.
ํ์๋ฒํธ | ํ์์ด๋ฆ | ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ |
101 | ๋ฏผ์ | ํ ๋์ค | 5000 |
102 | ์ฒ ์ | ๋๊ตฌ | 7000 |
103 | ์ํฌ | ์ถ๊ตฌ | 4000 |
103 | ์ํฌ | ๋๊ตฌ | 7000 |
(์์ ์ฐธ๊ณ : ์ฝ๋ฉ์ ํ)
์์์์๋ ๊ฐ๊ฒฉ ์ปฌ๋ผ์ด ํ๋ก๊ทธ๋จ์ partial funtional dependentํ๋ค.
{ํ์์ด๋ฆ,ํ๋ก๊ทธ๋จ} -> ๊ฐ๊ฒฉ
{ํ๋ก๊ทธ๋จ} -> ๊ฐ๊ฒฉ
primary key๊ฐ ํ์๋ฒํธ,ํ๋ก๊ทธ๋จ์ด์ง๋ง ๊ฐ๊ฒฉ์ ํ๋ก๊ทธ๋จ ํ๋๋ง์ผ๋ก ๊ฒฐ์ ๋ ์ ์๋ค. -> ํ์ฌ ํ ์ด๋ธ์ ์๊ด ์๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ๊ฒ์ด๋ค!
์ด ์ํฉ์์ ๊ฐ๊ฒฉ์ด ๋ณ๊ฒฝ๋จ์ ๋๋ฉด ์ปฌ๋ผ์ ์ผ์ผ์ด ์์ ํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฆฌํ ์ ์๋ค.
ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ |
ํ ๋์ค | 5000 |
๋๊ตฌ | 7000 |
์ถ๊ตฌ | 4000 |
์ด์ ๊ฐ๊ฒฉ์ ํ๋ก๊ทธ๋จ์ full functional dependencyํ๋ฉฐ ํ๋ก๊ทธ๋จ ํ ์ด๋ธ์ ์ฐ๊ด์๋ ์ปฌ๋ผ๋ค๋ง ๋ค์ด๊ฐ ์๋ค.
๋ง์ฝ ๊ฐ๊ฒฉ์ด ์์ ๋๋ค๊ณ ํ๋๋ผ๋ ์ด ํ ์ด๋ธ์ ๊ฐ๋ง ์์ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ 3 ์ ๊ทํ (3NF)
๋ชจ๋ non-prime attribute(ํค๋ฅผ ์ ์ธํ)๋ ์ด๋ค key์๋ transitive FD(์ดํ์ ํจ์ ์ข ์) ํ๋ฉด ์๋๋ค.
transitive FD(์ดํ์ ํจ์ ์ข ์) ์ด๋, X -> Y ์ด๊ณ Y -> Z์ด๋ฉด X -> Z ์ธ ๊ฒฝ์ฐ์ด๋ค.
ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ | ๊ฐ์ฌ | ์ ํ๋ฒํธ |
ํ ๋์ค | 5000 | ํ์์ | 010-xxxx |
๋๊ตฌ | 7000 | ์ด์ง์ | 010-xxxx |
์ถ๊ตฌ | 4000 | ์ด๋ช ํ | 010-xxxx |
์ด ๊ฒฝ์ฐ์๋ ํ๋ก๊ทธ๋จ์ ํตํด ๊ฐ์ฌ๊ฐ ๊ฒฐ์ ๋๋๋ฐ ๋์์ ๊ฐ์ฌ๊ฐ ์ ํ๋ฒํธ ๋ํ ๊ฒฐ์ ํ ์ ์๋ค.
ํ๋ก๊ทธ๋จ -> ๊ฐ์ฌ
๊ฐ์ฌ -> ์ ํ๋ฒํธ
=> ํ๋ก๊ทธ๋จ -> ์ ํ๋ฒํธ ๊ฐ์ ์ดํ์ ํจ์ ์ข ์์ด ๋ฐ์ํ๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์ฌ๊ฐ ์ฌ๋ฌ ๊ฐ์ ๊ณผ๋ชฉ์ ๋ด๋นํ๋ค๊ณ ๊ฐ์ ํ์์ ๋ ์ค๋ณต๋ ๊ฐ์ฌ๋ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ | ๊ฐ์ฌ | ์ ํ๋ฒํธ |
ํ ๋์ค | 5000 | ํ์์ | 010-xxxx |
ํ ๋์ค ์ ๋ฌธ | 3000 | ํ์์ | 010-xxxx |
๋๊ตฌ | 7000 | ์ด์ง์ | 010-xxxx |
์ถ๊ตฌ | 4000 | ์ด๋ช ํ | 010-xxxx |
๊ทธ๋ ๋ค๋ฉด ๋ง์ฝ ํด๋น ๊ฐ์ฌ๊ฐ ์ ํ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์์ ๊ฒฝ์ฐ ์ผ์ผ์ด ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ฉฐ ์ด๋ ๊ฐฑ์ ์ด์์ด ๋ฐ์ํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ํด๋น ์ปฌ๋ผ์ ๋ถ๋ฆฌํด์ค์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
๊ฐ์ฌ | ์ ํ๋ฒํธ |
ํ์์ | 010-xxxx |
์ด์ง์ | 010-xxxx |
์ด๋ช ํ | 010-xxxx |
๋ณดํต ์ฌ๊ธฐ๊น์ง ์ค๋ฉด ์ ๊ทํ ๋์๋ค๊ณ ๋งํ ์ ์์ง๋ง BCNF๊น์ง๋ง ๋ ์์๋ณด๋ ค๊ณ ํ๋ค.
BCNF
๋ชจ๋ ์ ํจํ non-trivial FD X -> Y ๋ X๊ฐ ์ํผํค์ฌ์ผํ๋ค.
๋ง์ฝ ํ ์ด๋ธ์ ๊ฐ์์ค ์ ๋ณด๊น์ง ์ถ๊ฐ๋์๋ค๊ณ ๊ฐ์ ํด๋ณด์
ํ๋ก๊ทธ๋จ | ๊ฐ๊ฒฉ | ๊ฐ์ฌ | ๊ฐ์์ค |
ํ ๋์ค | 5000 | ํ์์ | 207ํธ |
ํ ๋์ค ์ ๋ฌธ | 3000 | ํ์์ | 207ํธ |
๋๊ตฌ | 7000 | ์ด์ง์ | 211ํธ |
์ถ๊ตฌ | 4000 | ์ด๋ช ํ | 213ํธ |
์ด์ ๊ฐ์์ค์ ํตํด ํด๋น ๊ฐ์ฌ์ ์ ๋ณด๋ฅผ ์ ์ ์๋ค. ํ์ง๋ง ๊ตณ์ด ์ค๋ณต๋ ๊ฐ์ฌ์ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ง๊ณ ์์ด์ผํ ๊น? ๋ผ๋ ์๋ฌธ์ด ๋๋๋ฐ ์ด์ ๊ด๋ จ๋ ๊ฐ๋ ์ด BCNF์ด๋ค.
ํ ์ด๋ธ์ ๋ณด๋ฉด ๊ฐ์์ค์ ํตํด ํ์ฌ ์ด๋ค ๊ฐ์ฌ๊ฐ ๋ฐฐ์ ๋์๋ ์ง ์ ์ ์์ผ๋ฏ๋ก ๊ฐ์์ค -> ๊ฐ์ฌ๋ non-trivial FD ๋ผ๊ณ ํ ์ ์๋ค.
ํ์ง๋ง ๊ฐ์์ค์ ์ํผํค๊ฐ ์๋๋ฏ๋ก BCNF๋ฅผ ์๋ฐํ๋ค.
๊ฐ์์ค | ๊ฐ์ฌ |
207ํธ | ํ์์ |
2011ํธ | ์ด์ง์ |
213ํธ | ์ด๋ช ํ |
ํ ์ด๋ธ์ ๋ถ๋ฆฌํ ๊ฒฐ๊ณผ ๊ฐ์์ค์ ์ํผํค๊ฐ ๋์๊ณ ๋ ์ด์ ์๋ ํ ์ด๋ธ์ ์ค๋ณต๋ ๊ฐ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ง ์์๋ ๋๋ค.
์ด๋ ๊ฒ ํด๋๋ฉด BCNF๋ฅผ ์งํค๋ฉด์ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ค์ ์ต์ํ ํ ์ ์๋ค.
'Computer Science > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค๋ (์ธ๋ฑ์ค์ ๊ฐ๋ ๊ณผ ์ข ๋ฅ) (1) | 2024.01.15 |
---|