# ์ง์ ์ฒ๋ฆฌ ์์
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(๋ถ์ ์ฐ์ฐ)
- ๋๋ฑ ๋น๊ต ์ฐ์ฐ์ด ์๋ ๊ฒฝ์ฐ ์ ํ ์ค์บ์ ํ๋ค.
- ๋ง์ฝ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด, ์กฐ๊ฑด์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ๋จผ์ ์ฐพ์ ํ์ ๊ทธ๊ฑธ ์ ์ธํ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๊ณ ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์ ์๋ค.
- ๋ถ์ ์ฐ์ฐ์ ํด๋นํ๋ ๋ ์ฝ๋๊ฐ ๋ง๋ค๋ฉด, ์ ํ ํ์์ด ์ข๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ์ฌ ์กฐ๊ฑด์ ํด๋นํ๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋ ๊ฒ ์ข๋ค.