ํ‹ฐ์Šคํ† ๋ฆฌ

์•ž๋™๋„คJIHOON
{RepoJI}
์•ž๋™๋„คJIHOON
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (37)
    • ๐Ÿ–ฅ๏ธSW Engineer (29)
      • DataBase (0)
      • System Programming (0)
      • Algorithm (12)
      • DataStructure (0)
      • Computer Architechure (0)
      • Operating System (0)
      • Distributed System (11)
    • ๐ŸฆBackend (0)
      • Web (0)
    • ๐Ÿ—‚๏ธData Science (7)
      • Statistic (1)
      • Aritificial Intelli (5)
      • Probability Theory (0)
      • Information Retrieval (0)
      • Linear Algebra (0)
    • ๐ŸซUnderGraduate (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ๐Ÿ—‚๏ธGithub

ํƒœ๊ทธ

  • ์—ฐ๊ด€์„ฑ๋ถ„์„
  • ์†Œ์ผ“
  • ํŒŒ์ผ ์‹œ์Šคํ…œ
  • pthread
  • ๋ฐ์ดํ„ฐ ์ฒญ๋…„ ์บ ํผ์Šค
  • shared memory
  • ๊ณต๋ถ„์‚ฐ
  • PCA
  • q-learning algorithm
  • ๋ฐ์ฒญ์บ 
  • Message Queue
  • ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ
  • ๊ฐ•ํ™”ํ•™์Šต
  • Apriori algorithm
  • ํŒจํ„ด๋ถ„์„
  • ์„ธ๋งˆํฌ์–ด
  • ๋ ˆ์ฝ”๋“œ ๋ฝํ‚น
  • ๋‹จ์–ด ์ •๋ ฌ
  • ์Šค๋ ˆ๋“œ
  • mini shell project
  • Value function
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์‹œ์Šคํ…œ Chap13
  • Q-learning
  • ์ƒ๋ช…๋Œ€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณผ์ •
  • Pipe
  • ๋ฉ”์„ธ์ง€ ํ
  • Shemaphore
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์‹œ์Šคํ…œ Chap12
  • ์ฃผ์„ฑ๋ถ„๋ถ„์„
  • association rule
hELLO ยท Designed By ์ •์ƒ์šฐ.
์•ž๋™๋„คJIHOON

{RepoJI}

[ADV_db]Chap 4. Query-processing
๐Ÿ–ฅ๏ธSW Engineer/Distributed System

[ADV_db]Chap 4. Query-processing

2023. 5. 21. 19:03

# ์งˆ์˜ ์ฒ˜๋ฆฌ ์ˆœ์„œ


Parsing and Translation

  • ๋“ค์–ด์˜จ ์งˆ์˜๋ฌธ์—์„œ ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ด€๋ จ ๋ฆด๋ ˆ์ด์…˜๋“ค์„ ํ™•์ธํ•œ๋‹ค.
  • DBMS๋‚ด๋ถ€์—์„œ ์ž‘๋™๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ฒˆ์—ญํ•˜๊ณ , relational algebra๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • View์—ฐ์‚ฐ์ด ํฌํ•จ๋œ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ, View๋ฅผ ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ๊ด€๊ณ„ ๋Œ€์ˆ˜ ๋ณ€ํ™˜์‹์œผ๋กœ ๋Œ€์ฒด๋œ๋‹ค.

Optimizer

  • ์—ฌ๋Ÿฌ relational algebra ์ค‘์—์„œ ๊ฐ€์žฅ ์ข‹์€ Execution plan์„ ๊ณ ๋ฅธ๋‹ค.
  • ๊ณ ๋ฅด๋Š” ๊ธฐ์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŒŒ์ผ์ด ์ €์žฅ๋œ ๋ฐฉ์‹์ด๋‚˜ ์ธ๋ฑ์Šค์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” Cost๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ Cost๋ฅผ ๊ฐ€์ง„ Execution plan์„ ์„ ํƒํ•œ๋‹ค.

Evaluation

  • ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ฃผ์„์ด ๋‹ฌ๋ฆฐ relational-algebra operation์„ evaluation primitive(ํ‰๊ฐ€ ๊ธฐ๋ณธ ๋‹จ์œ„)๋ผ๊ณ  ํ•œ๋‹ค.
  • ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ์—ฐ์‚ฐ๋“ค์˜ ์ผ๋ จ ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ฑธ Query-execution plan ๋˜๋Š” Query-evaluation plan์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • Evaluation Engine์—์„œ๋Š” Query-execution plan์„ ๊ฐ€์ง€๊ณ  ์‹คํ–‰ํ•œ ํ›„, ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

# Query Cost ์ธก์ •


  • Time Cost์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์š”์†Œ๋“ค
    • Disk access
    • CPU์ฒ˜๋ฆฌ
    • ๋„คํŠธ์›Œํฌ
  • Cost๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ธฐ์ค€
    • Response Time
    • Resource Consumption
      • ์—ฌ๊ธฐ์„œ๋Š” ์ด ์ž์› ์†Œ๋น„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰
      • ์ธก์ • ์‹œ ๋งˆ์ง€๋ง‰์— ๋””์Šคํฌ๋กœ flush ํ•˜๋Š” ๊ณผ์ •์€ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ์ง„ํ–‰
  • Disk Cost
    • ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ, ์•„๋ž˜์˜ ๊ธฐ์ค€์„ ์ด์šฉ 
      • Number of block transfers
        • t(T)
        • ์ด ๋•Œ Read์™€ Write์†๋„๋Š” ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
      • Number of Seeks
        • t(S)
        • disk seek time๊ณผ rotational latency๋ฅผ ํ•ฉ์ณ์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
      • ๋”ฐ๋ผ์„œ b๊ฐœ์˜ Block Transfer๊ณผ S๋ฒˆ์˜ Seek๊ณผ์ •์ด ์žˆ๋‹ค๋ฉด b * t(T) + S * t(S)
      • ๋งŒ์•ฝ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋‹ค๋ฉด, Disk I/O๋Š” ์—†๋‹ค.
       

# Selection Operation


Algorithm A1 Linear search

  • ๋ชจ๋“  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋งŒ์•ฝ ํ‚ค ์†์„ฑ์„ ์ด์šฉํ•ด ํŠน์ • ์†์„ฑ์„ ์ฐพ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, ํ‰๊ท ์ ์œผ๋กœ,

Index Scan

  • B+tree๋กœ ์ด๋ฃจ์–ด์ง„ index๋ฅผ ํ™œ์šฉํ•œ ํƒ์ƒ‰

Algorithm A2(clustering index, equality on key)

  • index๋œ ํ‚ค์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต

  • h(i)๋Š” ํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Algorithm A3(clustering index, equality on non-key)

  • index๋œ ํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต
  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์–ป๊ฒŒ ๋˜์ง€๋งŒ, ๋ชจ๋‘ ์—ฐ์†์ ์ธ ๋ธ”๋ก์— ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก์„ ์ฐพ์€ ํ›„์— b๊ฐœ์˜ ์—ฐ์†์ ์ธ ๋ธ”๋ก์„ ๋ณด๋ฉด ๋œ๋‹ค.

Algorithm A4(secondary index, equality on key/non-key)

  • ํ‚ค ์†์„ฑ์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต์ธ ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ ๋ ˆ์ฝ”๋“œ๋งŒ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋œ๋‹ค

  • ํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต์ธ ๊ฒฝ์šฐ, ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๋Š”๋ฐ ๋ชจ๋‘ ๋‹ค๋ฅธ ๋ธ”๋ก์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
    • n๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • ์ด ๊ฒฝ์šฐ๋Š” ์‚ฌ์‹ค ์•„์ฃผ ๋น„ํšจ์œจ์ ์ด๋‹ค.

Comparison(๋น„๊ต ์—ฐ์‚ฐ)

Algorithm A5(clustering index, comparison)

  • ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ํŠœํ”Œ์„ ์ฐพ๊ณ  ์ดํ›„ ์—ฐ์†์œผ๋กœ ๋ชจ๋‘ ์ฝ์œผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— A3์™€ ๋˜‘๊ฐ™๋‹ค.

Algorithm A6(secondary index, comparison)

  • ์ด ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ํŠœํ”Œ์„ ์ฐพ๊ณ  ์ด ํ›„ ์—ฐ์†์ ์œผ๋กœ ํฌ์ธํ„ฐ๋“ค์ด ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ’์„ ์ฝ์œผ๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, A4์˜ ํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต์™€ ๋˜‘๊ฐ™๋‹ค.
  • ์„ ํ˜• ํƒ์ƒ‰ํ•˜๋Š”๊ฒŒ ๋” ํšจ์œจ์ ์ด๋‹ค.

Conjunction(๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ)

Algorithm A7(ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ)

  • ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ A2~A6 ์ค‘ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๊ฒƒ(Cost๊ฐ€ ์ตœ์†Œ์ธ ๊ฑฐ)์„ ์ฐพ๋Š”๋‹ค. n-1๊ฐœ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ ํ›„ n๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ฒ€์‚ฌํ•œ๋‹ค.

Algorithm A8(์—ฌ๋Ÿฌ(composite) ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ)

  • ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ด ๋‘ ๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์— ๋Œ€ํ•œ ๋™๋“ฑ ๋น„๊ต ์กฐ๊ฑด์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ , ๋ณตํ•ฉ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ A2,A3,A4์ค‘ ํ•˜๋‚˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Algorithm A9(์‹๋ณ„์ž๋‚˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ)

  • ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์‹๋ณ„์ž๊ฐ€ ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์‹๋ณ„์ž๋‚˜ ํฌ์ธํ„ฐ๋ฅผ ์กฐ๊ฑด ๋ณ„๋กœ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ตฌํ•œ๋‹ค.
  • ๋งŒ์•ฝ ๋ช‡ ๊ฐœ์˜ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ ์ ˆํ•œ ์‹๋ณ„์ž๋‚˜ ํฌ์ธํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์กฐ๊ฑด๋“ค๋กœ ๊ฐ€์ ธ์˜จ ๋ ˆ์ฝ”๋“œ๋“ค์„ ๊ฐ€์ง€๊ณ  ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์กฐ๊ฑด๋“ค์„ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š”๋‹ค.

Disjunction(๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ)

Algorithm A10(์‹๋ณ„์ž๋‚˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ)

  • ๋ชจ๋“  ์กฐ๊ฑด๋“ค์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋‹ค.
    • ๋งŒ์•ฝ ํ•˜๋‚˜์˜ ์กฐ๊ฑด์ด๋ผ๋„ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์„ ํ˜• ํƒ์ƒ‰ํ•œ๋‹ค.
    • ๋”ฐ๋ผ์„œ, ํ•˜๋‚˜๋ผ๋„ ์ ‘๊ทผ ๊ฒฝ๋กœ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ํšจ์šธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์„ ํ˜• ํƒ์ƒ‰์ด๋‹ค.
  • ๋ชจ๋“  ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ๊ทธ ํ›„ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ๋‹ค.

Negation(๋ถ€์ • ์—ฐ์‚ฐ)

  • ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„ ํ˜• ์Šค์บ”์„ ํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด, ์กฐ๊ฑด์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ๋จผ์ € ์ฐพ์€ ํ›„์— ๊ทธ๊ฑธ ์ œ์™ธํ•œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ถ€์ • ์—ฐ์‚ฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋งŽ๋‹ค๋ฉด, ์„ ํ˜• ํƒ์ƒ‰์ด ์ข‹๊ณ , ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๊ฒŒ ์ข‹๋‹ค.
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ–ฅ๏ธSW Engineer > Distributed System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ADV_db]Chap 12-14. ์—ฐ์Šต๋ฌธ์ œ  (0) 2023.04.20
[ADV_db]Chap 3. Hash index  (0) 2023.04.20
[ADV_db]Chap 3. Indexing - B+Tree ์ถ”๊ฐ€๋‚ด์šฉ๋“ค  (0) 2023.04.19
[ADV_db]Chap 3. Indexing - B+tree ๊ฒ€์ƒ‰,์‚ฝ์ž…,์‚ญ์ œ  (0) 2023.04.17
[ADV_db]Chap 3. Indexing - B+Tree ์†Œ๊ฐœ  (0) 2023.04.17
    '๐Ÿ–ฅ๏ธSW Engineer/Distributed System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ADV_db]Chap 12-14. ์—ฐ์Šต๋ฌธ์ œ
    • [ADV_db]Chap 3. Hash index
    • [ADV_db]Chap 3. Indexing - B+Tree ์ถ”๊ฐ€๋‚ด์šฉ๋“ค
    • [ADV_db]Chap 3. Indexing - B+tree ๊ฒ€์ƒ‰,์‚ฝ์ž…,์‚ญ์ œ
    ์•ž๋™๋„คJIHOON
    ์•ž๋™๋„คJIHOON
    Every step repository / Data && Engineering

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”