๋ฌธ์ & ์ถ์ฒ |
ํ์ด๊ณผ์ |
(1) ๊ท์น
๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฆด๋ ์ด์ (Relation)์ ํํ(Tuple)์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ(Attribute) ๋๋ ์์ฑ์ ์งํฉ ์ค, ๋ค์ ๋ ์ฑ์ง์ ๋ง์กฑํ๋ ๊ฒ์ ํ๋ณด ํค(Candidate Key)๋ผ๊ณ ํ๋ค.
- ์ ์ผ์ฑ(uniqueness) : ๋ฆด๋ ์ด์ ์ ์๋ ๋ชจ๋ ํํ์ ๋ํด ์ ์ผํ๊ฒ ์๋ณ๋์ด์ผ ํ๋ค.
- ์ต์์ฑ(minimality) : ์ ์ผ์ฑ์ ๊ฐ์ง ํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ(Attribute) ์ค ํ๋๋ผ๋ ์ ์ธํ๋ ๊ฒฝ์ฐ ์ ์ผ์ฑ์ด ๊นจ์ง๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฆ, ๋ฆด๋ ์ด์ ์ ๋ชจ๋ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ๋ ๋ฐ ๊ผญ ํ์ํ ์์ฑ๋ค๋ก๋ง ๊ตฌ์ฑ๋์ด์ผ ํ๋ค.
์์ ์๋ฅผ ์ค๋ช ํ๋ฉด, ํ์์ ์ธ์ ์ฌํญ ๋ฆด๋ ์ด์ ์์ ๋ชจ๋ ํ์์ ๊ฐ์ ์ ์ผํ ํ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
๋ฐ๋ผ์ ํ๋ฒ์ ๋ฆด๋ ์ด์ ์ ํ๋ณด ํค๊ฐ ๋ ์ ์๋ค.
๊ทธ๋ค์ ์ด๋ฆ์ ๋ํด์๋ ๊ฐ์ ์ด๋ฆ(apeach)์ ์ฌ์ฉํ๋ ํ์์ด ์๊ธฐ ๋๋ฌธ์, ์ด๋ฆ์ ํ๋ณด ํค๊ฐ ๋ ์ ์๋ค.
๊ทธ๋ฌ๋, ๋ง์ฝ [์ด๋ฆ, ์ ๊ณต]์ ํจ๊ป ์ฌ์ฉํ๋ค๋ฉด ๋ฆด๋ ์ด์ ์ ๋ชจ๋ ํํ์ ์ ์ผํ๊ฒ ์๋ณ ๊ฐ๋ฅํ๋ฏ๋ก ํ๋ณด ํค๊ฐ ๋ ์ ์๊ฒ ๋๋ค.
๋ฌผ๋ก [์ด๋ฆ, ์ ๊ณต, ํ๋ ]์ ํจ๊ป ์ฌ์ฉํด๋ ๋ฆด๋ ์ด์ ์ ๋ชจ๋ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์์ง๋ง, ์ต์์ฑ์ ๋ง์กฑํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํ๋ณด ํค๊ฐ ๋ ์ ์๋ค.
๋ฐ๋ผ์, ์์ ํ์ ์ธ์ ์ฌํญ์ ํ๋ณดํค๋ ํ๋ฒ, [์ด๋ฆ, ์ ๊ณต] ๋ ๊ฐ๊ฐ ๋๋ค.
bit๋ฅผ ์ฌ์ฉ, ๊ฐ Attribute(column)๊ณผ ์๋์ 1์ ๋น๊ตํ์ฌ ํ๋ณดํค๋ฅผ ์ฐพ์ต๋๋ค.
0000 (0) |
X |
0001 (1) |
ํ๋ฒ |
0010 (2) |
์ด๋ฆ |
0011 (3) |
ํ๋ฒ,์ด๋ฆ |
0100 (4) |
์ ๊ณต |
0101 (5) |
ํ๋ฒ,์ ๊ณต |
0110 (6) |
์ด๋ฆ,์ ๊ณต |
0111 (7) |
ํ๋ฒ,์ด๋ฆ,์ ๊ณต |
1000 (8) |
ํ๋ |
1001 (9) |
ํ๋ฒ,ํ๋ |
1010 (10) |
์ด๋ฆ,ํ๋ |
1011 (11) |
ํ๋ฒ,์ด๋ฆ,ํ๋ |
1100 (12) |
์ ๊ณต,ํ๋ |
1101 (13) |
ํ๋ฒ,์ ๊ณต,ํ๋ |
1110 (14) |
์ด๋ฆ,์ ๊ณต,ํ๋ |
1111 (15) |
ํ๋ฒ,์ด๋ฆ,์ ๊ณต,ํ๋ |
(2) ์์
1๋ถํฐ(i) Attribute์ ๊ธธ์ด(1 << Attribute๊ธธ์ด) ๊น์ง, i ๊ฐ ํ๋ณดํค๋ฅผ ๋ง์กฑํ๋์ง ๊ฒ์ํฉ๋๋ค.
์๋ฅผ๋ค์ด i๊ฐ 5(0101)์ด๋ผ๋ฉด, ํ๋ฒ์ ์ค๋ณต์ด ์๋์ง ํ์ธ, ์ ๊ณต์ ์ค๋ณต์ด ์๋์ง ํ์ธํฉ๋๋ค.
ํ๋ณดํค ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด Attribute์ i ๊ฐ์ ์์๋ฒกํฐ์ push ํฉ๋๋ค.
(์ ์ผ์ฑ ์ฒดํฌ๋ฅผ ํ์ง ์์ผ๋ฏ๋ก 0001๊ณผ 0101 ๋๋ค ์์๋ฒกํฐ์ ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค)
1์ด ๋ง์ bit์์๋๋ก ๋ด๋ฆผ์ฐจ์ ํ ํ, ์์๋ฒกํฐ.front()(1์ด ์ ์ผ ๋ง์ bit) ์ ์์๋ฒกํฐ.back()(1์ด ์ ์ผ ์ ์ bit) ๋ฅผ ๋น๊ตํ์ฌ
์ ์ผ์ฑ์ ๋ง์กฑํ์ง ์๋ ํ๋ณดํค๋ ์ ๊ฑฐํฉ๋๋ค.(0001์ด ํ๋ณดํค๋ผ๋ฉด 0101์ ์ ๊ฑฐํฉ๋๋ค)
(3) ์ฝ๋
+ ๋ ์งง๊ณ ๊น๋ํ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ์ฌ ์ถ๊ฐํฉ๋๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค์ w*db , ํ*์ฉ , ์*์ญ , ์ฌํ , min**** Jeong ์ธ 3 ๋ช ๋ถ์ ์ฝ๋]