[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ ์ •๋ฆฌ

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