Skip to content

Latest commit

ย 

History

History

08. Relational Algebra and Relational Calculus

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 

Relational Algebra and Relational Calculus

  • ์—ฐ์‚ฐ๊ณผ ๋ฐ์ดํƒ€ ์–ธ์–ด
    • ์—ฐ์‚ฐ : ์‹œ์Šคํ…œ ์ž…์žฅ
    • ๋ฐ์ดํƒ€ ์–ธ์–ด : ์‚ฌ์šฉ์ž ์ž…์žฅ
  • ๊ด€๊ณ„ ๋ฐ์ดํƒ€ ์–ธ์–ด
    • ๊ด€๊ณ„ ๋Œ€์ˆ˜(relational algebra)
      • ์ ˆ์ฐจ ์–ธ์–ด : how + what
    • ๊ด€๊ณ„ํ•ด์„(relational calculus)
      • ๋น„ ์ ˆ์ฐจ ์–ธ์–ด : what
      • ํˆฌํ”Œ ๊ด€๊ณ„ํ•ด์„
      • ๋„๋ฉ”์ธ ๊ด€๊ณ„ํ•ด์„
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ด€๊ณ„ ํ•ด์„๊ณผ ๊ด€๊ณ„ ๋Œ€์ˆ˜๋Š” ํ‘œํ˜„์ด๋‚˜ ๊ธฐ๋Šฅ ๋ฉด์—์„œ ๋™๋“ฑ
    • relationally complete
    • complete set : {ฯƒ, ฮ , โˆช, -, ร—}
๊ตฌ๋ถ„ ๊ด€๊ณ„๋Œ€์ˆ˜ ๊ด€๊ณ„ํ•ด์„
ํŠน์ง• ์ ˆ์ฐจ์  ์–ธ์–ด(์ˆœ์„œ/๊ณผ์ • ๋ช…์‹œ) Predicate Calculus ๊ธฐ๋ฐ˜
๋น„์ ˆ์ฐจ์  ์–ธ์–ด(๊ณ„์‚ฐ์ˆ˜์‹์˜ ์œ ์—ฐ์  ์‚ฌ์šฉ)
๋ชฉ์  How What
๊ตฌ๋ถ„ ์ˆœ์ˆ˜๊ด€๊ณ„์—ฐ์‚ฐ์ž, ์ผ๋ฐ˜์ง‘ํ•ฉ์—ฐ์‚ฐ์ž ํŠœํ”Œ ๊ด€๊ณ„ํ•ด์„, ๋„๋ฉ”์ธ ๊ด€๊ณ„ํ•ด์„
  • ๊ด€๊ณ„ ๋Œ€์ˆ˜
    • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์›ํ•˜๋Š” ์ •๋ณด์™€ ๊ทธ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์œ ๋„ํ•˜๋Š”๊ฐ€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ์ ˆ์ฐจ์ ์ธ ์–ธ์–ด
    • ๋ฆด๋ ˆ์ด์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ๊ทœ์น™์„ ์ œ๊ณตํ•˜๋Š” ์–ธ์–ด๋กœ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฆด๋ ˆ์ด์…˜์ด๊ณ  ๊ฒฐ๊ณผ๋„ ๋ฆด๋ ˆ์ด์…˜์ž„
    • ์—ฐ์‚ฐ์ž๋กœ๋Š” ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž์™€ ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Œ
    • ์งˆ์˜์— ๋Œ€ํ•œ ํ•ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์—ฐ์‚ฐ์˜ ์ˆœ์„œ๋ฅผ ๋ช…์‹œํ•จ
  • ๊ด€๊ณ„ ํ•ด์„
    • ์ˆ˜ํ•™์˜ Predicate Calculus์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  relational database๋ฅผ ์œ„ํ•ด ์ œ์•ˆ
    • ๊ด€๊ณ„ํ•ด์„์€ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์‚ฐ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ •์˜ํ•  ๋•Œ๋Š” ๊ณ„์‚ฐ ์ˆ˜์‹์„ ์‚ฌ์šฉ
    • ๊ด€๊ณ„ํ•ด์„์€ ์›ํ•˜๋Š” ์ •๋ณด๊ฐ€ ๋ฌด์—‡(What)์ด๋ผ๋Š” ๊ฒƒ๋งŒ ์ •์˜ํ•˜๋Š” ๋น„์ ˆ์ฐจ์  ํŠน์„ฑ์„ ์ง€๋‹˜
    • ํŠœํ”Œ ๊ด€๊ณ„ํ•ด์„๊ณผ ๋„๋ฉ”์ธ ๊ด€๊ณ„ํ•ด์„์ด ์žˆ์Œ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ด€๊ณ„ํ•ด์„๊ณผ ๊ด€๊ณ„๋Œ€์ˆ˜๋Š” ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๋Šฅ๋ ฅ๋ฉด์—์„œ ๋™๋“ฑํ•˜๋ฉฐ ๊ด€๊ณ„ ๋Œ€์ˆ˜๋กœ ํ‘œํ˜„ํ•œ ์‹์€ ๊ด€๊ณ„ํ•ด์„์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ด€๊ณ„ ๋Œ€์ˆ˜ (Relational Algebra)

  • ๋ฆด๋ ˆ์ด์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์˜ ์ง‘ํ•ฉ
    • ๋ฆด๋ ˆ์ด์…˜ : ํˆฌํ”Œ์˜ ์ง‘ํ•ฉ
  • ๊ธฐ๋ณธ ์—ฐ์‚ฐ
    • ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž (relational operators)
      • ์…€๋ ‰ํŠธ(SELECT, ๏€€ )
      • ํ”„๋กœ์ ํŠธ(PROJECT, ฮ  )
      • ์กฐ์ธ(JOIN, โ‹ˆ )
      • ๋””๋น„์ „(DIVISION, รท)
    • ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž (set operators)
      • ํ•ฉ์ง‘ํ•ฉ(UNION, โˆช)
      • ๊ต์ง‘ํ•ฉ(INTERSECT, โˆฉ)
      • ์ฐจ์ง‘ํ•ฉ(DIFFERENCE, -)
      • ์นดํ‹ฐ์…˜ ํ”„๋กœ๋•ํŠธ(CARTESIAN PRODUCT, ร—)
  • ํ์‡„ ์„ฑ์งˆ (closure property)
    • ํ”ผ์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋ชจ๋‘ ๋ฆด๋ ˆ์ด์…˜
    • ์ค‘์ฒฉ(nested)๋œ ์ˆ˜์‹์˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅ

๊ด€๊ณ„ ํ•ด์„ (Relational Calculus)

  • โ€œ์–ด๋–ป๊ฒŒ ๊ฒ€์ƒ‰ํ•  ๊ฒƒ์ธ๊ฐ€โ€ ๋ณด๋‹ค โ€œ๋ฌด์—‡์„ ๊ฒ€์ƒ‰ํ•  ๊ฒƒ์ธ๊ฐ€โ€ ๋งŒ์„ ๊ธฐ์ˆ ํ•˜๋Š” ์„ ์–ธ์  ํ‘œํ˜„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋น„์ ˆ์ฐจ์  ์งˆ์˜์–ด
  • SQL์„ ํฌํ•จํ•œ ๋งŽ์€ ์ƒ์—…์šฉ ๊ด€๊ณ„ ์–ธ์–ด๋“ค์ด ๊ด€๊ณ„ ํ•ด์„์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์Œ
  • ํˆฌํ”Œ ๊ด€๊ณ„ ํ•ด์„(tuple relational calculus)๊ณผ ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„ (domain relational calculus)์œผ๋กœ ๊ตฌ๋ถ„๋จ
  • ๊ด€๊ณ„ ๋Œ€์ˆ˜์™€์˜ ์ฐจ์ด์ 
    • ๊ด€๊ณ„ ํ•ด์„์€ ํ•˜๋‚˜์˜ ์„ ์–ธ์ (declarative) ํ•ด์„์‹์œผ๋กœ ๊ฒ€์ƒ‰ ์งˆ์˜๋ฅผ ๋ช…์‹œํ•˜๋ฉฐ, ๋น„์ ˆ์ฐจ์ ์ธ ์–ธ์–ด์ž„
    • ๊ด€๊ณ„ ๋Œ€์ˆ˜์—์„œ๋Š” ์—ฐ์‚ฐ๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ ˆ์ฐจ์ ์ธ ์„ฑ์งˆ์„ ๊ฐ€์ง
    • ๋‘ ์–ธ์–ด์˜ ํ‘œํ˜„๋ ฅ(expressive power)์€ ๋™๋“ฑํ•จ
  • ๊ด€๊ณ„์  ์™„์ „์„ฑ(relationally completeness)
    • ์–ด๋–ค ๊ด€๊ณ„ ์งˆ์˜์–ด L์ด ์žˆ์„ ๋•Œ, L์ด ๊ด€๊ณ„ ํ•ด์„(๋˜๋Š” ๊ด€๊ณ„ ๋Œ€์ˆ˜)์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์–ด๋–ค ์งˆ์˜๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด L์€ โ€œ๊ด€๊ณ„์ ์œผ๋กœ ์™„์ „(relationally complete)ํ•˜๋‹คโ€๋ผ๊ณ  ํ•œ๋‹ค.
    • ๋Œ€๋ถ€๋ถ„์˜ ๊ด€๊ณ„ ์งˆ์˜์–ด๋“ค์€ ๊ด€๊ณ„์ ์œผ๋กœ ์™„์ „(ํ•ด์•ผ)ํ•˜๋ฉฐ, ์ง‘๋‹จ ํ•จ์ˆ˜(aggregate functions), ๊ทธ๋ฃนํ™”(grouping), ์ˆœ์„œํ™”(ordering) ๋“ฑ์˜ ์—ฐ์‚ฐ๋“ค์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๊ด€๊ณ„ ํ•ด์„๋ณด๋‹ค ํ‘œํ˜„๋ ฅ์ด ๊ฐ•ํ•ด์ง„๋‹ค.

๋ฌธ์ œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

(2017๋…„ ์ œ1ํšŒ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ 1๋ฒˆ)

  • ๋‹ค์Œ ๊ด€๊ณ„๋Œ€์ˆ˜ ์ค‘ ์ˆœ์ˆ˜ ๊ด€๊ณ„์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€? โ‘ 
    • โ‘  ์ฐจ์ง‘ํ•ฉ (difference)
    • โ‘ก ํ”„๋กœ์ ํŠธ (project)
    • โ‘ข ์กฐ์ธ (join)
    • โ‘ฃ ๋””๋น„์ „ (division)
  • [์„ค๋ช…] ์ˆœ์ˆ˜ ๊ด€๊ณ„์—ฐ์‚ฐ์ž๋Š” ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน๋ณ„ํžˆ ๊ฐœ๋ฐœํ•œ ๊ด€๊ณ„์—ฐ์‚ฐ์ž๋กœ Select, Project, Join, Division์ด ์žˆ๋‹ค.

(2017 ์ œ2ํšŒ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ 2๋ฒˆ)

  • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ์ˆ˜ํ‰์  ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์—ฐ์‚ฐ์ž์˜ ๊ธฐํ˜ธ๋Š” ๊ทธ๋ฆฌ์Šค ๋ฌธ์ž ์‹œ๊ทธ๋งˆ(ฯƒ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๊ณ„๋Œ€์ˆ˜ ์—ฐ์‚ฐ์€? โ‘ 
    • โ‘  Select
    • โ‘ก Project
    • โ‘ข Join
    • โ‘ฃ Division
  • [์„ค๋ช…] ๊ฐ ๊ด€๊ณ„๋Œ€์ˆ˜ ์—ฐ์‚ฐ์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
  • โ‘  Select : ฯƒ โ‘ก Project : ฯ€ โ‘ข Join : โ‹ˆ โ‘ฃ Division : รท

(2017 ์ œ2ํšŒ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ 5๋ฒˆ)

  • ๊ด€๊ณ„ ํ•ด์„์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ํ‹€๋ฆฐ ๊ฒƒ์€? โ‘ก
    • โ‘  ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„๊ณผ ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„์ด ์žˆ๋‹ค.
    • โ‘ก ์งˆ์˜์— ๋Œ€ํ•œ ํ•ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์—ฐ์‚ฐ์˜ ์ˆœ์„œ๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•˜๋Š” ์ ˆ์ฐจ์ ์ธ ์–ธ์–ด์ด๋‹ค.
    • โ‘ข ๋ฆด๋ ˆ์ด์…˜์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
    • โ‘ฃ ์ˆ˜ํ•™์˜ predicate calculus์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋‹ค.
  • [์„ค๋ช…] ๊ด€๊ณ„ ํ•ด์„์€ ๋น„์ ˆ์ฐจ์ ์ธ ์–ธ์–ด๋กœ โ‘ก์˜ ์ ˆ์ฐจ์ ์ธ ์–ธ์–ด์™€ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค.

Source

  1. Fundamentals of Database Systems 7th Edition by Ramez Elmasri, Shamkant B. Navathe.