2021. 4. 19. 23:13ใ์ ๊ณต ์์ /๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ(data structure), ์ฐ์ฐ(operation), ์ ์ฝ์กฐ๊ฑด(constraint)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ด ํฌ์คํ ์์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฐ์ฐ(operation)์ ๋ํด ์ ๋ฆฌํ๋ค. ์ฑ '๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ก (2ํ)'(๊น์ฐํฌ ์ )๋ก ๋ด์ฉ์ ํฐ๋ํ๋ค.
์ฐ์ฐ(operation)์ด๋?
: ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ๋ฆด๋ ์ด์ ์ ํ์ํ ์ฒ๋ฆฌ ์๊ตฌ๋ฅผ ์ํํ๋ ๊ฒ.
๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฐ์ฐ == ๊ด๊ณ ๋ฐ์ดํฐ ์ฐ์ฐ(relationship data operation)
๊ด๊ณ ๋ฐ์ดํฐ ์ฐ์ฐ์ ์ข ๋ฅ - ๊ด๊ณ ๋์, ๊ด๊ณ ํด์
๊ด๊ณ ๋์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ณผ์ ์ ์์๋๋ก ๊ธฐ์ ํ๋ ์ ์ฐจ ์ธ์ด, ๊ด๊ณ ํด์์ ์ฒ๋ฆฌ๋ฅผ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง๋ง ๊ธฐ์ ํ๋ ๋น์ ์ฐจ ์ธ์ด์ด๋ค. ์ด๋ ๊ด๊ณ ๋์๊ฐ ์ฒ๋ฆฌ ๊ณผ์ ์ ๊ธฐ์ ํ๊ธฐ ๋๋ฌธ์ ๊ด๊ณ ํด์๋ณด๋ค ๋์ ๋ฅ๋ ฅ์ ์๊ตฌํ๋ค๊ณ ์ฐฉ๊ฐํ๊ธฐ ์ฌ์ด๋ฐ, ๊ด๊ณ ๋์์ ๊ด๊ณ ํด์์ ๋๋ฑํ๋ค.์ฆ, ๊ด๊ณ ๋์๋ก ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ตฌ๋ ๊ด๊ณ ํด์์ผ๋ก๋ ๊ธฐ์ ํ ์ ์๊ณ , ๊ทธ ๋ฐ๋๋ ๊ฐ๋ฅํ๋ค.
์ด๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ตฌ๋ฅผ ์ง์(query)๋ผ๊ณ ํ๋ค.
๋ํ, ๊ด๊ณ ๋์์ ๊ด๊ณ ํด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ค์ ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฐ๋ ์ด๋ค. ์ด ๋์ ์๋ก์ด ๋ฐ์ดํฐ ์ธ์ด๊ฐ ์ ์ ๋์์ ๋, '์ธ์ด์ ์ ์ฉ์ฑ์ ๊ฒ์ฆ'ํ๊ธฐ ์ํ ๊ธฐ์ค ์ญํ ์ ํ๋ค. ์๋ก์ด ๋ฐ์ดํฐ ์ธ์ด๊ฐ ๊ด๊ณ ๋์๋ ๊ด๊ณ ํด์์ผ๋ก ๊ธฐ์ ํ ์ ์๋ ๋ชจ๋ ์ง์๋ฅผ ๊ธฐ์ ํ ์ ์๋ค๋ฉด ๊ด๊ณ์ ์ผ๋ก ์์ ํ๋ค๊ณ ํ๋ค. ์ด๋ ์๋ก์ด ๋ฐ์ดํฐ ์ธ์ด๊ฐ ์ด๋ ์ ๋ ๊ฒ์ฆ ๋์๋ค๋ ๋ป์ด๋ค.
๊ด๊ณ ๋์ ์ฐ์ฐ์์ ์ข ๋ฅ
๊ด๊ณ ๋์ ์ฐ์ฐ์๋ ํฌ๊ฒ ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์, ์์ ๊ด๊ณ ์ฐ์ฐ์๋ก ๋๋๋ค.
ํฉ๋ณ ๊ฐ๋ฅ์ฑ(union-compatible)
๋ณธ๊ฒฉ์ ์ผ๋ก ์ฐ์ฐ์์ ๋ํด ์๊ฐํ๊ธฐ ์ ์, ํฉ๋ณ ๊ฐ๋ฅ์ฑ์ด๋ผ๋ ๊ฐ๋ ์ ์ง๊ณ ๋์ด๊ฐ์ผ ํ๋ค.
๋ ๊ฐ์ง ์กฐ๊ฑด์ด ์๋ค.
1) ๋ ๋ฆด๋ ์ด์ ์ ์ฐจ์๊ฐ ๊ฐ์์ผ ํ๋ค.(== ์์ฑ ๊ฐ์๊ฐ ๊ฐ์์ผ ํ๋ค.)
2) 2๊ฐ์ ๋ฆด๋ ์ด์ ์์ ์๋ก ๋์๋๋ ์์ฑ์ ๋๋ฉ์ธ์ด ๊ฐ์์ผ ํ๋ค.(๋๋ฉ์ธ์ด ๊ฐ์ผ๋ฉด ์์ฑ์ ์ด๋ฆ์ ๋ฌ๋ผ๋ ๋จ)
ํฉ์งํฉ, ๊ต์งํฉ, ์ฐจ์งํฉ์ ์ฐ์ฐํ๊ณ ์ ํ๋ ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ์ด ํฉ๋ณ ๊ฐ๋ฅ์ฑ์ ๋ง์กฑํด์ผ ํ๋ค.
์ด๋, ์นดํฐ์ ํ๋ก๋ํธ๋ ํฉ๋ณ ๊ฐ๋ฅ ์ฌ๋ถ์ ์๊ด์์ด ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
<์ผ๋ฐ ์งํฉ ์ฐ์ฐ์ 01 - ํฉ์งํฉ>
R ∪ S
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
1001 | ์ฐจ์์ฐ |
R
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
1003 | ๋๊ฒฝ์ |
S
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
1001 | ์ฐจ์์ฐ |
1003 | ๋๊ฒฝ์ |
๊ฒฐ๊ณผ: R ∪ S
์ด๋ ๊ฒฐ๊ณผ์์ ์ ์ ์ ๋ฏ์ด '1000, ๊ฐ์ฌ๊ธฐ'๋ผ๋ ํฌํ์ด ๋ ๊ฐ๋ก ์ค๋ณต ๋๊ธฐ ๋๋ฌธ์ ๋ฆด๋ ์ด์ ์ ํน์ฑ์(์ค๋ณต ํฌํ์ด ์กด์ฌํ ์ ์๋ค) ๊ฒฐ๊ณผ๋ก ๋ํ๋๋ ํฌํ์ ๋จ ํ ๊ฐ์ด๋ค. ๋ํ R ∪ S ๋ S ∪ R๊ณผ ๊ฒฐ๊ณผ๊ฐ ๋์ผํ๋ค(==๊ฒฐํฉ์ ํน์ง).
๋ํ ์ฐจ์(์์ฑ์ ๊ฐ์)๊ฐ ํผ์ฐ์ฐ์์ธ R๊ณผ S์ ๋์ผํ๊ณ , ์นด๋๋๋ฆฌํฐ(ํฌํ์ ๊ฐ์)๋ R๊ณผ S์ ํฌํ ๊ฐ์๋ฅผ ๋ํ ๊ฒ๊ณผ ๊ฐ๊ฑฐ๋ ์์์ง๋ค.
<์ผ๋ฐ ์งํฉ ์ฐ์ฐ์ 02 - ๊ต์งํฉ>
R ∩ S
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
๊ฒฐ๊ณผ
๊ฒฐ๊ณผ๋ก ์ป๊ฒ ๋๋ ๋ฆด๋ ์ด์ ์ ์ฐจ์๋ ํผ์ฐ์ฐ์์ธ ๋ฆด๋ ์ด์ R๊ณผ S์ ์ฐจ์์ ๊ฐ๋ค. ๋ํ ์นด๋๋๋ฆฌํฐ๋ ๋ฆด๋ ์ด์ R๊ณผ S์ ์ด๋ค ์นด๋๋๋ฆฌํฐ๋ณด๋ค ํฌ์ง ์๋ค. ๋ํ ํฉ์งํฉ๊ณผ ๋์ผํ๊ฒ ๊ฒฐํฉ์ ํน์ง์ ๊ฐ์ง๋ค.
<์ผ๋ฐ ์งํฉ ์ฐ์ฐ์ 03 - ์ฐจ์งํฉ>
R - S
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
1001 | ์ฐจ์์ฐ |
1002 | ๋ฐ์์ |
R
๋ฒํธ | ์ด๋ฆ |
1000 | ๊ฐ์ฌ๊ธฐ |
1003 | ๋๊ฒฝ์ |
1004 | ์ฃผ์ฐ์ฌ |
S
R - S
๋ฒํธ | ์ด๋ฆ |
1001 | ์ฐจ์์ฐ |
1002 | ๋ฐ์์ |
S - R
๋ฒํธ | ์ด๋ฆ |
1003 | ๋๊ฒฝ์ |
1004 | ์ฃผ์ฐ์ฌ |
์ด๋ ๊ฒ ์ฐจ์งํฉ์ ๊ฒฐํฉ์ ํน์ง์ด ์๋ค.
<์ผ๋ฐ ์งํฉ ์ฐ์ฐ์ 03 - ์ฐจ์งํฉ>
R x S
: ๋ฆด๋ ์ด์ R์ ์ํ ๊ฐ ํฌํ๊ณผ ๋ฆด๋ ์ด์ S์ ์ํ ๊ฐ ํฌํ์ ๋ชจ๋ ์ฐ๊ฒฐํ์ฌ ๋ง๋ค์ด์ง ์๋ก์ด ํฌํ
๋ฆด๋ ์ด์ R, S
R.๋ฒํธ | R.์ด๋ฆ | S.๋ฒํธ | S.๋์ด |
1000 | ๊ฐ์ฌ๊ธฐ | 1000 | 23 |
1000 | ๊ฐ์ฌ๊ธฐ | 1001 | 26 |
1000 | ๊ฐ์ฌ๊ธฐ | 1002 | 25 |
1001 | ์ฐจ์์ฐ | 1000 | 23 |
1001 | ์ฐจ์์ฐ | 1001 | 26 |
1001 | ์ฐจ์์ฐ | 1002 | 25 |
1002 | ๋ฐ์์ | 1000 | 23 |
1002 | ๋ฐ์์ | 1001 | 26 |
1002 | ๋ฐ์์ | 1002 | 25 |
์์ ์ธ๊ธํ๋ฏ์ด ํฉ๋ณ ๊ฐ๋ฅ์ฑ์ ๋ฌด์ํ๊ณ ์ฐ์ฐ์ด ์งํ๋๋ค.
๋ํ, ๋ฆด๋ ์ด์ ์ ์์ฑ์ '๋ฆด๋ ์ด์ ์ด๋ฆ.์์ฑ์ด๋ฆ' ํ์์ผ๋ก ํ๊ธฐ๋์๋ค. ์ด๋ ๊ฒ ์์ ๋ฆด๋ ์ด์ ์์ฑ์ ๋ถ์์ผ๋ก์จ ์ฐ์ฐ ๊ฒฐ๊ณผ์์ ์ค๋ณต๋๋ ๊ฐ์ด ์์ด๋ ๊ตฌ๋ถํ ์ ์๋ค.
๊ฒฐ๊ณผ๋ก ์ป๊ฒ ๋๋ ์ฐจ์๋ R๊ณผ S์ ์ฐจ์๋ฅผ ๋ํ ๊ฒ๊ณผ ๊ฐ๊ณ ,(๊ฒฐ๊ณผ -> 2 + 2)
์นด๋๋๋ฆฌํฐ๋ R๊ณผ S์ ์นด๋๋๋ฆฌํฐ๋ฅผ ๊ณฑํ ๊ฒ๊ณผ ๊ฐ๋ค. (๊ฒฐ๊ณผ -> 3 * 3)
๋ํ R x S ์ ๊ฐ๊ณผ S x R์ ๊ฐ์ ๋์ผํ๊ธฐ ๋๋ฌธ์, ๊ฒฐํฉ์ ํน์ฑ์ ๊ฐ์ง๋ค.
<์์ ๊ด๊ณ ์ฐ์ฐ์ 01 - ์ ๋ ํธ>
∂์กฐ๊ฑด์(๋ฆด๋ ์ด์ ): ๋ฆด๋ ์ด์ ์์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํฌํ๋ง ์ ํํ์ฌ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑ
์ํ์ ์ธ ์ฐ์ฐ์
์ด๋ ์กฐ๊ฑด์์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๊ตฌ์ฑํ๋ฉฐ, ์กฐ๊ฑด์์ ๋น๊ต์ ๋๋ ํ๋ ๋ํท(predicate)์ด๋ผ๊ณ ๋ ํ๋ค. ์กฐ๊ฑด์์ ๋ค๋ฅธ ์์ฑ๋ค ๊ฐ์ ๋น๊ต๋ก ๊ตฌ์ฑํ ๋๋ ์์ฑ๋ค์ ๋๋ฉ์ธ์ด ๊ฐ์์ผ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค. ๋ํ ๋ ผ๋ฆฌ ์ฐ์ฐ์(∧(and), ∨(or), (not ํน์๋ฌธ์ ๋ชจ์์ด ํฐ์คํ ๋ฆฌ์ ์๋ค))๋ฅผ ์ฌ์ฉํด ์กฐ๊ฑด์์ ์กฐ๊ธ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค ์ ์๋ค.
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
์์ด๋ | ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ ๋ฆฝ๊ธ |
crystal | ์ ์์ | 26 | gold | 4500 |
jjssk | ์กฐ์ ์ | 30 | silver | 3100 |
kmtaetae | ๊นํ๋ฆฌ | 28 | gold | 0 |
๊ณ ๊ฐ ๋ฆด๋ ์ด์
์์ ๋ฑ๊ธ์ด gold์ด๊ณ , ์ ๋ฆฝ๊ธ์ด 2000์ด์์ธ ํฌํ์ ๊ฒ์ํด๋ณด์.
โก๏ธ ∂ ๋ฑ๊ธ = 'gold' ∧์ ๋ฆฝ๊ธ ≥2000(๊ณ ๊ฐ)๋๋ ๊ณ ๊ฐ where ๋ฑ๊ธ = 'gold' and ์ ๋ฆฝ๊ธ ≥2000
์์ด๋ | ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ ๋ฆฝ๊ธ |
crystal | ์ ์์ | 26 | gold | 4500 |
<์์ ๊ด๊ณ ์ฐ์ฐ์ 02 - ํ๋ก์ ํธ>
π์์ฑ๋ฆฌ์คํธ(๋ฆด๋ ์ด์ ): ์ ํํ ์์ฑ์ ํด๋นํ๋ ๊ฐ์ผ๋ก ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑ
์์ง์ ์ฐ์ฐ์
์์ด๋ | ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ ๋ฆฝ๊ธ |
crystal | ์ ์์ | 26 | gold | 4500 |
jjssk | ์กฐ์ ์ | 30 | silver | 3100 |
kmtaetae | ๊นํ๋ฆฌ | 28 | gold | 0 |
๊ณ ๊ฐ ๋ฆด๋ ์ด์ ์์ ๋ฑ๊ธ์ ๊ฒ์ํด๋ณด์.
โก๏ธ π ๋ฑ๊ธ(๊ณ ๊ฐ) ๋๋ ๊ณ ๊ฐ(๋ฑ๊ธ)
๋ฑ๊ธ |
gold |
silver |
์ค๋ณต๋๋ ํฌํ์ด ์กด์ฌํ ์ ์๋ค๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํน์ฑ์ ์ ์งํ๋ค.
<์์ ๊ด๊ณ ์ฐ์ฐ์ 03 - ์กฐ์ธ>
โ: ๊ด๊ณ๊ฐ ์๋ ์ฌ๋ฌ ๋ฆด๋ ์ด์ ์ ํจ๊ป ์ฌ์ฉํ ๋ ์ฌ์ฉ. ์กฐ์ธ ์์ฑ์ ์ด์ฉํด ๋ ๋ฆด๋ ์ด์ ์ ์กฐํฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑ.
- ์กฐ์ธ ์์ฑ(join attribute): ๋ ๋ฆด๋ ์ด์ ์ด ๊ณตํต์ผ๋ก ๊ฐ์ง๊ณ ์๋ ์์ฑ. ๋ ๋ฆด๋ ์ด์ ์ด ๊ด๊ณ๊ฐ ์์์ ๋ํ๋ธ๋ค.
1) ์์ฐ ์กฐ์ธ:
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ |
apple | ๊น์ค๋ฉด | 20 | gold |
watermelon | ๋ฐฐ์ฃผํ | 27 | vip |
carrot | ์๋์ฐ | 23 | gold |
orange | ์ ์งํ | 22 | silver |
<์ฃผ๋ฌธ ๋ฆด๋ ์ด์ >
์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ๊ณ ๊ฐ | ์ฃผ๋ฌธ์ ํ | ์๋ |
1001 | apple | ์ผ๋ผ์ฐ๋ | 10 |
1002 | carrot | ์ด์ฝํ์ด | 5 |
1003 | watermelon | ๊ฐ์๋ง๋ | 8 |
์ฃผ๋ฌธ ๋ฆด๋ ์ด์ ์ '์ฃผ๋ฌธ๊ณ ๊ฐ' ์์ฑ์ ์ธ๋ํค๋ก ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ์ฃผ๋ฌธ๊ณ ๊ฐ ์์ฑ์ ๊ณ ๊ฐ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค์ธ ๊ณ ๊ฐ ์์ด๋๋ฅผ ์ฐธ์กฐํ ๊ฒ์ด๋ฉฐ, ๋ ๋ฆด๋ ์ด์ ์ ๊ด๊ณ๋ฅผ ์ฑ์ฌ์ํจ๋ค. ์ฆ, ์ฌ๊ธฐ์๋ ๊ณ ๊ฐ์ ์์ด๋, ์ฃผ๋ฌธ ๊ณ ๊ฐ์ด ์กฐ์ธ ์์ฑ์ด๋ค.
๋ ๋ฆด๋ ์ด์ ์ ์กฐ์ธํ ๋๋ ์กฐ์ธ ์์ฑ์ ๊ฐ์ด ๊ฐ์ ํฌํ๋ง ์ฐ๊ฒฐํ์ฌ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํด์ผ ํ๋ค.
<๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ์ ํ | ์๋ |
apple | ๊น์ค๋ฉด | 20 | gold | 1001 | ์ผ๋ผ์ฐ๋ | 10 |
watermelon | ๋ฐฐ์ฃผํ | 27 | vip | 1003 | ๊ฐ์๋ง๋ | 8 |
carrot | ์๋์ฐ | 23 | gold | 1002 | ์ด์ฝํ์ด | 5 |
๊ทธ๋์ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์์๋ 'orange'๋ผ๋ ์์ด๋๋ฅผ ๊ฐ์ง ํํ์ ์ฐพ์ ์ ์๋ค. ์กฐ์ธ ์์ฑ์ ๊ฐ์ด ๊ฐ์ ํฌํ๋ง ์ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด '์กฐ์ธ'์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น? ์๋ฅผ ๋ค์ด ๊น์ค๋ฉด ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํ ์ ํ์ ๊ฒ์ํ๋ ค๋ฉด ๊ณ ๊ฐ ๋ฐ์ดํฐ์ ๊ณ ๊ฐ๊ณผ ๊ด๋ จ๋ ์ฃผ๋ฌธ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ํ์ํ๋ฏ๋ก, ๊ณ ๊ฐ ๋ฆด๋ ์ด์ ๊ณผ ์ฃผ๋ฌธ ๋ฆด๋ ์ด์ ์ ์กฐ์ธํ์ฌ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ ํ ์กฐ๊ฑด์ ๋ง๋ ํฌํ์ ์ฐพ๊ธฐ ์ํด์์ด๋ค.
๋ํ ์กฐ์ธ ์์ฑ์ ์ค๋ณต๋์ง ์๊ณ ํ ๋ฒ๋ง ํํ๋๋ค.
2) ์ธํ ์กฐ์ธ
A θ B๋ ์กฐ์ธ ์กฐ๊ฑด์ผ๋ก, A ๋ ๋ฆด๋ ์ด์ 1์ ์์ฑ, B๋ ๋ฆด๋ ์ด์ 2์ ์์ฑ์ด๋ค.
์ธํ์๋ ๋น๊ต ์ฐ์ฐ์๊ฐ ๋ค์ด๊ฐ๋ค.
A์ B๋ ๊ฐ์ ๋๋ฉ์ธ์ด์ด์ผ ํ๊ณ , ์ฐ์ฐ ๊ฒฐ๊ณผ์ ๋ฆด๋ ์ด์ ์ฐจ์๋ ๋ฆด๋ ์ด์ 1์ ์ฐจ์์ ๋ฆด๋ ์ด์ 2์ ์ฐจ์๋ฅผ ๋ํ ๊ฐ์ด๋ค. ๋ํ ๋ฆด๋ ์ด์ 1๊ณผ ๋ฆด๋ ์ด์ 2์ ๊ฐ์ ์์ฑ์ด ์๋ค๋ฉด '๋ฆด๋ ์ด์ ์ด๋ฆ. ์์ฑ ์ด๋ฆ' ์ ํ์์ผ๋ก ๊ตฌ๋ณํ๋ค.
์ธํ ์กฐ์ธ์์ '=' ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ์ธํ ์กฐ์ธ์ ๋์ผ ์กฐ์ธ(equi-join)๋ผ๊ณ ํ๋ค.(์ ์ฌ์ง์ example์ ์จ์ ธ ์๋ ์์)
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ |
apple | ๊น์ค๋ฉด | 20 | gold |
watermelon | ๋ฐฐ์ฃผํ | 27 | vip |
carrot | ์๋์ฐ | 23 | gold |
orange | ์ ์งํ | 22 | silver |
<์ฃผ๋ฌธ ๋ฆด๋ ์ด์ >
์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ๊ณ ๊ฐ | ์ฃผ๋ฌธ์ ํ | ์๋ |
1001 | apple | ์ผ๋ผ์ฐ๋ | 10 |
1002 | carrot | ์ด์ฝํ์ด | 5 |
1003 | watermelon | ๊ฐ์๋ง๋ | 8 |
<๋์ผ ์กฐ์ธ ์ฐ์ฐ์ ์>
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ๊ณ ๊ฐ | ์ฃผ๋ฌธ์ ํ | ์๋ |
apple | ๊น์ค๋ฉด | 20 | gold | 1001 | apple | ์ผ๋ผ์ฐ๋ | 10 |
watermelon | ๋ฐฐ์ฃผํ | 27 | vip | 1003 | watermelon | ๊ฐ์๋ง๋ | 8 |
carrot | ์๋์ฐ | 23 | gold | 1002 | carrot | ์ด์ฝํ์ด | 5 |
๋์ผ ์กฐ์ธ ์ฐ์ฐ์์๋ ์ผ๋ฐ ์์ฐ ์กฐ์ธ๊ณผ ๋ฌ๋ฆฌ ์์ฑ์ด ์ค๋ณต๋์ด ๋ํ๋๋ค.
3) ์ธ๋ฏธ ์กฐ์ธ
โ: R โ S ๋ ๋ฆด๋ ์ด์ S์ ์กฐ์ธ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑํ ๋ฆด๋ ์ด์ ์ ๋ฆด๋ ์ด์ R์ ์์ฐ ์กฐ์ธํ๋ ๊ฒ.
์ธ๋ฏธ ์กฐ์ธ์ ๋ฌธ์ฅ์ผ๋ก ์๋ฒฝํ๊ฒ ์ดํดํ๊ธฐ ๋ค์ ์ด๋ ต์ง๋ง, ์์๋ง ๋ณด๋ฉด ๊ธ๋ฐฉ ์ดํดํ ์ ์๋ค.
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด |
apple | ๊น์ค๋ฉด | 20 |
watermelon | ๋ฐฐ์ฃผํ | 27 |
carrot | ์๋์ฐ | 23 |
orange | ์ ์งํ | 22 |
<์ฃผ๋ฌธ ๋ฆด๋ ์ด์ >
์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ๊ณ ๊ฐ | ์ฃผ๋ฌธ์ ํ | ์๋ |
1001 | apple | ์ผ๋ผ์ฐ๋ | 10 |
1002 | carrot | ์ด์ฝํ์ด | 5 |
1003 | watermelon | ๊ฐ์๋ง๋ | 8 |
โฌ๏ธ ์กฐ์ธ ์์ฑ์ธ ์ฃผ๋ฌธ๊ณ ๊ฐ ์์ฑ์ผ๋ก ํ๋ก์ ํธ ์ฐ์ฐ ์ํ. π์ฃผ๋ฌธ๊ณ ๊ฐ(์ฃผ๋ฌธ)
์ฃผ๋ฌธ ๊ณ ๊ฐ |
apple |
carrot |
watermelon |
โฌ๏ธ ์ด ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ๊ณผ ๊ณ ๊ฐ ๋ฆด๋ ์ด์ ์ ์์ฐ ์กฐ์ธํ ๊ฒ์ด ์ต์ข ๊ฒฐ๊ณผ
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด |
apple | ๊น์ค๋ฉด | 20 |
watermelon | ๋ฐฐ์ฃผํ | 27 |
carrot | ์๋์ฐ | 23 |
๊ฒฐ๊ณผ์ ์ผ๋ก ์ธ๋ฏธ ์กฐ์ธ์ ๊ณ ๊ฐ ๋ฆด๋ ์ด์ ์์ ์์ฐ ์กฐ์ธ ์ฐ์ฐ์ ์ฐธ์ฌํ ์ ์๋ ํฌํ๋ง ์ ํํ์ฌ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ค.
์ฆ, ์ฃผ๋ฌธ์ ํ ์ ์๋ ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ง ๊ฒ์ํ๊ณ ์ถ์ ๋ ์ธ๋ฏธ ์กฐ์ธ์ ์ด์ฉํ๋ฉด ์ฐ์ฐ ๋น์ฉ์ ์ค์ผ ์ ์๊ณ ํธ๋ฆฌํ๋ค๋ ๊ฑธ ์ ์ ์๋ค.
ํ์ง๋ง ๊ตํ์ ํน์ฑ์ด ์์ด์ R โ S ์ S โ R ์ ๊ฐ์ด ๋ค๋ฅด๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค.
4) ์ธ๋ถ ์กฐ์ธ
(์ธ๋ถ์กฐ์ธ์ ๋ถํธ๋ฅผ ์ด๋ป๊ฒ ํํํด์ผ ํ ์ง ๋ชฐ๋ผ์.. ์ด๊ฒ๋ ์ง์ ๊ทธ๋ ค์ ์ฒจ๋ถํ๋ค)
์ธ๋ถ์กฐ์ธ์ ์กฐ์ธ ์ฐ์ฐ์ ์ํํ ๋ ์กฐ์ธ ์์ฑ ๊ฐ์ด ๊ฐ์ ํฌํ์ด ์๋ ๋ฆด๋ ์ด์ ์ ์กด์ฌํ์ง ์์ ์กฐ์ธ ์ฐ์ฐ์์ ์ ์ธ๋ ๋ชจ๋ ํฌํ์ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ํฌํจ์ํจ๋ค.
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด |
apple | ๊น์ค๋ฉด | 20 |
watermelon | ๋ฐฐ์ฃผํ | 27 |
carrot | ์๋์ฐ | 23 |
orange | ์ ์งํ | 22 |
<์ฃผ๋ฌธ ๋ฆด๋ ์ด์ >
์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ๊ณ ๊ฐ | ์ฃผ๋ฌธ์ ํ | ์๋ |
1001 | apple | ์ผ๋ผ์ฐ๋ | 10 |
1002 | carrot | ์ด์ฝํ์ด | 5 |
1003 | watermelon | ๊ฐ์๋ง๋ | 8 |
<๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ์ ํ | ์๋ |
apple | ๊น์ค๋ฉด | 20 | 1001 | ์ผ๋ผ์ฐ๋ | 10 |
watermelon | ๋ฐฐ์ฃผํ | 27 | 1003 | ๊ฐ์๋ง๋ | 8 |
carrot | ์๋์ฐ | 23 | 1002 | ์ด์ฝํ์ด | 5 |
orange | ์ ์งํ | 22 | NULL | NULL | NULL |
4. ๋๋น์
R โS : ๋ฆด๋ ์ด์ S์ ๋ชจ๋ ํฌํ๊ณผ ๊ด๋ จ ์๋ ๋ฆด๋ ์ด์ R์ ํฌํ๋ก ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ค. ๋จ, ๋ฆด๋ ์ด์ R์ด ๋ฆด๋ ์ด์ S์ ๋ชจ๋ ์์ฑ์ ํฌํจํ๊ณ ์์ด์ผ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.(S์ ๋ชจ๋ ์์ฑ๊ณผ ๋๋ฉ์ธ์ด ๊ฐ์ ์์ฑ์ R์ด ํฌํจํ๊ณ ์์ด์ผ ํ๋ค๋ ๋ป)
<๊ณ ๊ฐ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ๋ฑ๊ธ | ์ง์ | ์ ๋ฆฝ๊ธ |
apple | ๊น์ค๋ฉด | 20 | gold | ํ์ | 1000 |
NULL | ๋ฐฐ์ฃผํ | 25 | vip | ๋ณํธ์ฌ | 2500 |
carrot | ๋์ฌ๋ฏผ | 28 | gold | ๊ต์ฌ | 4500 |
NULL | ํ์ง๋ฏผ | 22 | silver | ํ์ | 0 |
<์ฐ์๋ฑ๊ธ ๋ฆด๋ ์ด์ >
๋ฑ๊ธ |
gold |
<๊ณ ๊ฐ โ์ฐ์๋ฑ๊ธ ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ >
๊ณ ๊ฐ์์ด๋ | ๊ณ ๊ฐ์ด๋ฆ | ๋์ด | ์ง์ | ์ ๋ฆฝ๊ธ |
apple | ๊น์ค๋ฉด | 20 | ํ์ | 1000 |
carrot | ๋์ฌ๋ฏผ | 28 | ๊ต์ฌ | 4500 |
'์ ๊ณต ์์ > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ก ์ ๋ฆฌ (0) | 2021.04.21 |
---|