๐Ÿ’ป/CS

[DB] ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ

ruhz 2020. 10. 28. 14:07

0. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ์˜ ๊ฐœ๋…

๋ฐ์ดํ„ฐ ๋ชจ๋ธ(data model)
  - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ํ‘œํ˜„ํ•˜๋Š” ๋„๊ตฌ
  - ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(ex. E-R ๋ชจ๋ธ)
  - ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(ex. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ)
  - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ = ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ + ์—ฐ์‚ฐ + ์ œ์•ฝ์กฐ๊ฑด

 

๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ
  - ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์—ฐ์‚ฐ
  - ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ฆด๋ ˆ์ด์…˜์— ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ ์š”๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ
  - ๊ด€๊ณ„ ๋Œ€์ˆ˜(๋ฐ์ดํ„ฐ์˜ ์ฒ˜๋ฆฌ๊ณผ์ •์„ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ์ˆ )์™€ ๊ด€๊ณ„ ํ•ด์„(์ฒ˜๋ฆฌ๋ฅผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋งŒ ๊ธฐ์ˆ )๋กœ ๊ตฌ๋ถ„
  - ๋ฐ์ดํ„ฐ ์–ธ์–ด์˜ ์œ ์šฉ์„ฑ์„ ๊ฒ€์ฆ
  - ๊ด€๊ณ„๋Œ€์ˆ˜, ๊ด€๊ณ„ํ•ด์„์œผ๋กœ, ๋ชจ๋“  ์งˆ์˜(query)๋ฅผ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์–ธ์–ด = ๊ด€๊ณ„์ ์œผ๋กœ ์™„์ „(relationally complete)

 

 

 

1. ๊ด€๊ณ„ ๋Œ€์ˆ˜

๊ด€๊ณ„ ๋Œ€์ˆ˜(relational algebra)
  - ์ ˆ์ฐจ ์–ธ์–ด(procedural language) : ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ฆด๋ ˆ์ด์…˜์˜ ์ฒ˜๋ฆฌ๊ณผ์ •์„ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ์ˆ ํ•˜๋Š” ์–ธ์–ด
  - ๋ฆด๋ ˆ์ด์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฐ์‚ฐ์ž๋“ค์˜ ๋ชจ์ž„(๋Œ€ํ‘œ์—ฐ์‚ฐ์ž 8๊ฐœ, ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž์™€ ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋กœ ๋ถ„๋ฅ˜)
  - ํ์‡„ ํŠน์„ฑ(closure property) : ํ”ผ์—ฐ์‚ฐ์ž๋„ ๋ฆด๋ ˆ์ด์…˜์ด๊ณ  ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋„ ๋ฆด๋ ˆ์ด์…˜

 

๊ด€๊ณ„ ๋Œ€์ˆ˜์˜ ์—ฐ์‚ฐ์ž
  - ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž

  - ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž
  - ์กฐ์ธ

 

์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž(set operation)
: ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 2๊ฐœ ํ•„์š”, ํ•ฉ๋ณ‘ ๊ฐ€๋Šฅ(union-compatible)ใ…ก์ฐจ์ˆ˜์™€ ์†์„ฑ ๋„๋ฉ”์ธ์ด ๊ฐ™์Œ

  - ํ•ฉ์ง‘ํ•ฉ : ํŠœํ”Œ ๋‹จ์œ„ OR์—ฐ์‚ฐ, ๊ตํ™˜๋ฒ•์น™, ๊ฒฐํ•ฉ๋ฒ•์น™ ๊ฐ€๋Šฅ
  - ๊ต์ง‘ํ•ฉ : ํŠœํ”Œ ๋‹จ์œ„ AND์—ฐ์‚ฐ, ๊ตํ™˜๋ฒ•์น™, ๊ฒฐํ•ฉ๋ฒ•์น™ ๊ฐ€๋Šฅ
  - ์ฐจ์ง‘ํ•ฉ : ํŠœํ”Œ ๋‹จ์œ„ ์ฐจ์ง‘ํ•ฉ์—ฐ์‚ฐ, ๊ตํ™˜๋ฒ•์น™, ๊ฒฐํ•ฉ๋ฒ•์น™ ๋ถˆ๊ฐ€๋Šฅ
  - ์นด๋””์…˜ ํ”„๋กœ๋•ํŠธ : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ์„ ๋ชจ๋‘ ์—ฐ๊ฒฐํ•˜์—ฌ ๋งŒ๋“  ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ๋ฐ˜ํ™˜, ๊ตํ™˜๋ฒ•์น™, ๊ฒฐํ•ฉ๋ฒ•์น™ ๊ฐ€๋Šฅ



์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž(relational operation)
: ํ”ผ์—ฐ์‚ฐ์ž 1๊ฐœ, ์กฐ๊ฑด ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ๋งŒ ์„ ํƒ(select)ํ•ด ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜์„ ๊ตฌ์„ฑ

  - ์ˆ˜ํ•™์  ํ‘œํ˜„๋ฒ•, ๋ฐ์ดํ„ฐ ์–ธ์–ด์  ํ‘œํ˜„๋ฒ•์œผ๋กœ ํ‘œํ˜„ (ex. ์‹œ๊ทธ๋งˆ<sub>์กฐ๊ฑด์‹</sub>(๋ฆด๋ ˆ์ด์…˜), ๋ฆด๋ ˆ์ด์…˜ where ์กฐ๊ฑด์‹)
  - ์…€๋ ‰ํŠธ : ์กฐ๊ฑด์— ๋งž๋Š” ํŠœํ”Œ ์„ ํƒใ…ก์ˆ˜ํ•™์ (์‹œ๊ทธ๋งˆ), ๋ฐ์ดํ„ฐ์–ธ์–ด์ (where), ใ……(and), V(or) ใ„ฑ(not)๋กœ ๋ณตํ•ฉ์กฐ๊ฑด
  - ํ”„๋กœ์ ํŠธ : ์„ ํƒํ•œ ์†์„ฑ๊ฐ’์„ ๊ฒฐ๊ณผ๋กœใ…ก์ˆ˜ํ•™์ (ํŒŒ์ด), ๋ฐ์ดํ„ฐ์–ธ์–ด์ (๋ฆด๋ ˆ์ด์…˜[์†์„ฑ])


์กฐ์ธ(join)

  - ์ž์—ฐ์กฐ์ธ : ์กฐ์ธ์†์„ฑ ๊ฐ’์ด ๊ฐ™์€ ํŠœํ”Œ๋ผ๋ฆฌ ์—ฐ๊ฒฐ ํ›„ ์ค‘๋ณต์†์„ฑ ์ œ๊ฑฐใ…ก๋ฆด๋ ˆ์ด์…˜1 >< N(r, s) ๋ฆด๋ ˆ์ด์…˜2
    โ€ป ์กฐ์ธ์†์„ฑ : ๋‘ ๋ฆด๋ ˆ์ด์…˜์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง„ ์†์„ฑ
  - ์„ธํƒ€์กฐ์ธ : ์กฐ์ธ์†์„ฑ ๊ฐ’์„ ์กฐ๊ฑด(์„ธํƒ€)์— ๋งž์ถฐ๋น„๊ต ํ›„ ํŠœํ”Œ์—ฐ๊ฒฐ ใ…ก๋ฆด๋ ˆ์ด์…˜1 >< A=B ๋ฆด๋ ˆ์ด์…˜2
  - ๋™๋“ฑ์กฐ์ธ : ์ž์—ฐ์กฐ์ธ๊ณผ ๊ฐ™์ง€๋งŒ, ์ค‘๋ณต์†์„ฑ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Œใ…ก๋ฆด๋ ˆ์ด์…˜1 >< ๋ฆด๋ ˆ์ด์…˜2

  - ์„ธ๋ฏธ์กฐ์ธ : ์กฐ์ธ์†์„ฑ๋งŒ ํ”„๋กœ์ ํŠธ ํ›„ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜๊ณผ ์ž์—ฐ์กฐ์ธใ…กโ–ท<
  - ์™ธ๋ถ€์กฐ์ธ : ์ž์—ฐ์กฐ์ธ์—์„œ ์ œ์™ธ๋˜๋Š” ํŠœํ”Œ๋„ ๊ฒฐ๊ณผ์— ํฌํ•จํ•˜๋Š” ๋Œ€์‹ , ๊ฐ’์ด ์—†๋Š” ์†์„ฑ์—๋Š” NULL๊ฐ’(์™ผ์ชฝ, ์™„์ „, ์˜ค๋ฅธ์ชฝ)

 

 

 

2. ๊ด€๊ณ„ ํ•ด์„(relational calculus)

๊ด€๊ณ„ํ•ด์„
  - ์ฒ˜๋ฆฌ๋ฅผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋งŒ ๊ธฐ์ˆ ํ•˜๋Š” ์–ธ์–ด(๋น„์ ˆ์ฐจ์–ธ์–ด)
  - ์ˆ˜ํ•™์˜ ํ”„๋ ˆ๋””ํ‚ท ํ•ด์„(predicate calculus)์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์Œ
  - ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„, ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„์œผ๋กœ ๋ถ„๋ฅ˜