April 13, 2021
์ธ๋ฑ์ค๋ ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๋ ค๊ณ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ด๋ฏธ์ง์ ์ผ๋ก ์์ธ๊ณผ ๊ฐ๊น๋ค.
RDB์ ์ธ๋ฑ์ค๋ ์กฐ๊ธ ๋ ๋๋ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒ์์ ์ํํ๋ค. B+ํธ๋ฆฌ๋ฅผ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
B+ํธ๋ฆฌ๋ ๋ฐ์ดํฐ(์ธ๋ฑ์ค์ ๊ฐ)๊ฐ ์ ์ฅ๋ ๋ฆฌํ ๋ ธ๋์ ๋ฆฌํ ๋ ธ๋๊น์ง์ ๊ฒฝ๋ก ์ญํ ์ ํ๋ ๋ ผ๋ฆฌํ ๋ ธ๋๋ก ๊ตฌ์ฑ๋๋ค. ๊ฒฝ๋ก์ ์ถ๋ฐ์ ์ด ๋๋ ๋ ธ๋๋ ๋ฃจํธ ๋ ธ๋๋ผ๊ณ ํ๋ค. ๋ ผ๋ฆฌํ ๋ ธ๋์๋ ์์ ๋ ธ๋๊ฐ ๋ณด์ ํ๋ ๊ฐ ์ค์ ์ต์๊ฐ์ด ์ ์ฅ๋ผ ์๋ค.
๋ํ, ์์ ๋ ธ๋์๋ ํฌ์ธํฐ(๋๋ถ๋ถ ํ์ด์ง ID)๊ฐ ์ ์ฅ๋๊ณ โ์ด๋ค ๊ฒฝ๋ก๋ฅผ ๊ฒ์ํ๋ฉด ์ํ๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๊ฐโ๋ฅผ ์ ์ ์๋ค.
โ B+ํธ๋ฆฌ์ ๊ฒ์์ ๋ฃจํธ ๋ ธ๋์์ ์ด๋ค ๋ฆฌํ ๋ ธ๋์ ์ด๋ฅด๋ ํ ๊ฐ์ ๊ฒฝ๋ก๋ง ๊ฒ์ํ๋ฉด ๋๋ฏ๋ก ๊ต์ฅํ ํจ์จ์ ์ด๋ค.
์ด ์ฑ์ง์ ์๋ฌด๋ฆฌ ํธ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ํฌ๊ฑฐ๋ ๊ณ์ธต์ด ์ฆ๊ฐํด๋ ๋ณํ์ง ์๋๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค์๋ ๋ ๋ค๋ฅธ ์ฌ๋ฏธ์๋ ํน์ง์ด ์๋ค. ๊ทธ๊ฒ์ ์ธ๋ฑ์ค์ ์๋ ํญ๋ชฉ์ ์๊ฐ ํ ์ด๋ธ์ ํ ์์ ๋๊ฐ๋ค๋ ์ ์ด๋ค. โ ํ ์ด๋ธ์ ํ์ด ๋์ด๋๋ฉด ์ธ๋ฑ์ค๋ ์ปค์ง๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ ๋ฑ๊ฐ ๋น๊ต์ ๋ฒ์ ๊ฒ์์ ์ฌ์ฉํ ์ ์๋ค. ๋ฑ๊ฐ ๋น๊ต๋ ํค์ ๊ฐ์ด ์์ ์ผ์นํ๋ ํ์ ์ฐพ๋ ๊ฒ์ด๋ค. ๊ตฌ์ฒด์ ์ผ๋ก WHERE key = 123์ฒ๋ผ ๊ฐ์(=equal)์ผ๋ก ๊ฒ์ํ๋ค. ๋ฒ์ ๊ฒ์์ ๋ถ๋ฑํธ๋ BETWEEN ์ ์ ์ฌ์ฉํด ๋ฒ์๋ฅผ ์ง์ ํ๋ค.
LIKE ์ ์ ์ฌ์ฉํ ๊ฒ์๋ ๋ฒ์ ๊ฒ์์ด๋ค. ์๋ฅผ ๋ค์ด WHERE key LIKE โa%โ๋ฅผ ๊ฒ์ํ๋ฉด โaโ์ด์ โbโ๋ฏธ๋ง์ ๋ฒ์์ ์๋ ํญ๋ชฉ์ด ๊ฒ์๋๋ค. ๊ทธ๋ฌ๋ LIKE ์ ์ ์ด์ฉํ ๊ฒ์์ ์์ผ๋์นด๋๋ฅผ ๋ฐฐ์นํ๋ ์์น๊ฐ ๋ฌธ์ ๊ฐ ๋๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๊ฒ์ํ ๋ ์์ผ๋์นด๋์ ์ง์ ์ ์ ๋ฐฉ ์ผ์น๋ก ์์ผ๋์นด๋๊ฐ ๊ตฌ์ฒด์ ์ธ ๋ฌธ์์ด ๋ค์ ๋์์ผ ํ๋ค. ์ ๋ฐฉ ์ผ์น์ฌ์ผ ํ๋ ์ด์ ๋ B+ํธ๋ฆฌ์ ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ ๋๋ฌธ์ด๋ค.
B+ํธ๋ฆฌ๋ ์ผ์ชฝ์ ๋ฌธ์๋ถํฐ ์์๋๋ก ์ ๋ ฌ๋ผ ์๋ค.
โ ์ผ์ชฝ ์ด์ธ์ ๋ฌธ์๋ก ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค.
์๋ฅผ ๋ค์ด ์ธ๋ฑ์ค์์ WHERE name LIKE โ๊ฐ%โ ๋ผ๋ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ๋ ๊ฒฝ์ฐ
๋งจ ์์ ๋ฌธ์๋ฅผ ์๊ณ ์์ผ๋ฏ๋ก ๋ ผ๋ฆฌํ ๋ ธ๋๋ฅผ ๋ณด๋ฉด ๋ณด๋ฉด ์ด๋ค ์์ ๋ ธ๋์ ํด๋นํ๋ ํญ๋ชฉ์ด ์๋์ง ์ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ํ๋ฐฉ ์ผ์น๋ WHERE name LIKE โ%์ธ์ดโ์ ๊ฐ์ด ์์ ์์ผ๋์นด๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ผ๋ฆฌํ ๋ ธ๋๋ฅผ ๋ด๋ ํด๋นํ๋ ํญ๋ชฉ์ด ์ด๋์ ์๋์ง ์ ์ ์๋ค. ๊ฐ์ ๊ฒ์ํ๋ ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ค์บํด์ผ ํ๋ค.
์ค๊ฐ ์ผ์น๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค์บํ์ง ์์ผ๋ฉด ๊ฐ์ ์ ์ ์๋ค. WHERE name LIKE โ%์ธ์ด%โ
๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค(๋ณตํฉ ์ธ๋ฑ์ค)๋ ๋ฌธ์์ด์ LIKE ๊ฒ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ฐํ ์ ์๋ค.
์๋ฅผ ๋ค์ด (lastname, middlename, firstname)๋ผ๊ณ ์ ์๋ ์ธ๋ฑ์ค๊ฐ ์์ ๋ ๋ฑ๊ฐ ๋น๊ต๋ผ๋ middleindex์ด๋ first_name๋ง ์ง์ ํ๋ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๊ฒ์ํ ์ ์๋ค.
๊ฒ์์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ผ์ชฝ ๋์ ์ปฌ๋ผ๋ถํฐ ์์๋๋ก ์ธ๋ฑ์ค๋ฅผ ์ง์ ํด์ผ ํ๋ค.
์ผ์ชฝ ๋์ ์ปฌ๋ผ์ ๊ฐ์ด ์ง์ ๋๋ฉด ๋๋จธ์ง ๊ฐ์ ๋ชฐ๋ผ๋ ๋ฒ์ ๊ฒ์์ ์ธ๋ฑ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ค.
์๋ฅผ ๋ค์ด lastname, middlename์ด ์ง์ ๋ ๊ฒฝ์ฐ ์ ๋ฐฉ ์ผ์น๊ฐ ๋๊ณ first_name์ด ์ง์ ๋์ง ์์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ฒ์ ๊ฒ์์ ํ ์ ์๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด ์์ฉ์๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํด์ผํ๋ค. ์ญ์ค์ ์ด์ง๋ง ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ ์ปฌ๋ผ์ ์์๋ ๋งค์ฐ ์ค์ํ๋ค.
๋๋ถ๋ถ ๊ธฐ๋ณธํค์ ๊ฐ์ ํ๋ฒ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋ ๋ค์์๋ ์์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ๋ณด์กฐ ์ธ๋ฑ์ค๋ ๊ฐฑ์ ์ด ์์ฃผ ์ผ์ด๋ ์ ์๋ค. ์ ๊ทธ๋ฆผ์์ โ๋ฐ์ดํฐ ๊ตฌ์กฐโ๋ผ๋ ์ธ๋ฑ์ค ํญ๋ชฉ์ โ๊ฐ์ฒดโ๋ก ๋ฐ๊พธ๋ ์ฒ๋ฆฌ๋ฅผ ์๊ฐํด๋ณด์.
์ด๋ค ๋ฆฌํ ๋ ธ๋์์ โ๋ฐ์ดํฐ ๊ตฌ์กฐโ๋ผ๋ ํญ๋ชฉ์ ์ง์ฐ๊ณ ๋ค๋ฅธ ๋ฆฌํ ๋ ธ๋์ โ๊ฐ์ฒดโ๋ผ๋ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
โ ๋ณด์กฐ ์ธ๋ฑ์ค์ ๊ฐฑ์ ์ ์ญ์ ์ ์ฝ์ ์ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒ๊ณผ ๋น์ฉ์ ์ผ๋ก๋ ๋ค๋ฅด์ง ์๋ค.
์ธ๋ฑ์ค๋ฅผ ๊ฐฑ์ ํ๋ ๋น์ฉ์ด ๋น์ธ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์. ์ธ๋ฑ์ค๊ฐ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก ๊ฐ์ข ๊ฐฑ์ ์ ๋๋ ์ค๋ฒํค๋๋ ์ฆ๊ฐํ๊ฒ ๋๋ค.
์ธ๋ฑ์ค๋ B+ํธ๋ฆฌ์ด๋ฉฐ, DB ์ค๊ณ ์์ B+์ธ๋ฑ์ค ์ด์ธ์ ์ธ๋ฑ์ค๋ฅผ ์ฑ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค. ์ด๋ค ์ธ๋ฑ์ค๊ฐ ๊ตฌํ๋ผ ์๋์ง๋ RDB ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ฑ๋ฅ๊ณผ ํน์ง์ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฏ๋ก ์ ์ฌ์ฉํ๋ ค๋ฉด ์ ํ์ ์์งํด์ผ ํ๋ค.
ํด์ ์ธ๋ฑ์ค๋ ํด์ ํ ์ด๋ธ์ ์ด์ฉํ ์ธ๋ฑ์ค๋ค. ํด์๊ฐ์ ์ฌ์ฉํ๋ฏ๋ก ๋ฒ์ ๊ฒ์์๋ ์ฌ์ฉํ ์ ์๋ค.
โ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ๋ฑ๊ฐ ๋น๊ต์ ์ํ ๊ฒ์๋ฟ์ด์ง๋ง ๊ฒ์ ์๋๊ฐ ๊ต์ฅํ ๋น ๋ฅด๋ค๋ ํน์ฑ์ด ์๋ค.
์ฌ์ฉ์ฒ๋ ๊ฐ๋จํ์ฌ ๋ฑ๊ฐ ๋น๊ต๋ง ํ์ํ๊ณ ๋ฒ์ ๊ฒ์์ ํ์ ์๋ ๊ณณ์ด๋ฉฐ, RDB ์ ํ์ด ์ง์ํ๋ค๋ฉด ์ฌ์ฉ์ ๊ฒํ ํ๋ ๊ฒ๋ ์ข๋ค.
ํด์ ์ธ๋ฑ์ค๋ ๋ฒ์ ๊ฒ์์ ํ ์ ์์ด์ B+ํธ๋ฆฌ ์ธ๋ฑ์ค์ ๊ฐ์ด ํค์ ์ผ์ชฝ ๋์ ์ง์ ํด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ธ ์ ์๋ค. ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค์๋ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
โ ํค์ ํฌํจ๋ ์ปฌ๋ผ ๋ชจ๋์ ๋ํด์ ๋ฑ๊ฐ ๋น๊ต๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ ํ๋ฐฉ ์ผ์น๋ ์ค๊ฐ ์ผ์น ๋ฑ์ ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค. ๊ทธ๋ ์ง๋ง ์ค์ ์์ฉํ๋ก๊ทธ๋จ์์๋ โxx ๋ผ๋ ๋จ์ด๋ฅผ ํฌํจํ ํ์ ๊ฒ์โ์ ๊ฐ์ ์๊ตฌ๊ฐ ๋ง๋ค. ์ด๋ฐ ์๊ตฌ์ ์ํ๋ ๊ฒ์ด ์ ๋ฌธ ๊ฒ์(ํ ํ ์คํธ)์ธ๋ฑ์ค๋ค.
์ ๋ฌธ ๊ฒ์ ์ธ๋ฑ์ค๋ ์ ์น ์ธ๋ฑ์ค๋ก ๊ตฌํ๋๋ค. ์ ์น ์ธ๋ฑ์ค๋ ํ์ ํฌํจ๋ ๋จ์ด๋ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ทธํ์ ํฌ์ธํฐ(ROWID๋ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธํค)๊ฐ ์ ์ฅ๋ ๊ตฌ์กฐ์ ์ธ๋ฑ์ค๋ค. ๋ฌผ๋ก ๋จ์ด์ ํ์ 1:1๋ก ๋์ํ์ง ์์ผ๋ฏ๋ก ์ ์น ์ธ๋ฑ์ค์ ํญ๋ชฉ ์๋ ํ ์ด๋ธ์ ํ ์๋ณด๋ค ํจ์ฌ ๋ง์์ง๋ค.
row_id | text |
---|---|
1 | Relational Model |
2 | Model View Controller |
3 | Materialized View |
word | row_id |
---|---|
Controller | 2 |
Materialized | 3 |
Model | 1 |
Model | 2 |
Relational | 1 |
View | 1 |
View | 2 |
์คํ์ด์ค๋ก ๋จ์ด๊ฐ ๊ตฌ๋ถ๋๋ ์์ด์ ๊ฐ์ ์ธ์ด๋ผ๋ฉด ๋ฌธ์ฅ์์ ๋จ์ด๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ ๊ฐ๋จํ๋ค. ํ์ง๋ง ๋์ด์ฐ๊ธฐ๊ฐ ์๋ ์ธ์ด์์๋ ์ ์น ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ์์ฑํด์ผ ํ ๊น?
โ ๊ฐ ํ์ ํฌํจ๋ ํ ์คํธ์์ ๋จ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌ๋ถํ๋์ง๊ฐ ๊ณผ์ ๋ค.
ํํ ๋ถ์๋ฒ์ ์ฌ์ ์ ์ฌ์ฉํด ๋ฌธ์ฅ์ ๋ฌธ๋ฒ์ ๋ถ์ํ์ฌ ๋จ์ด๋ฅผ ์ถ์ถํ๋ ๊ธฐ์ ์ด๋ค. ๋จ์ด๋ฅผ ๋ฑ ๋ง๊ฒ ๊ตฌ๋ถํ ์ ์์ผ๋ฏ๋ก ๋ญ๋น๊ฐ ์ ๊ณ ์ธ๋ฑ์ค์ ์ฌ์ด์ฆ๊ฐ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ ์๋ค๊ณ ํด๋ ํ ํ ์คํธ ์ธ๋ฑ์ค ์ค์์ ์์ ๊ฒ์ด๊ณ ์ผ๋ฐ์ ์ธ B+์ธ๋ฑ์ค์ ๋น๊ตํ๋ฉด ์ฌ์ด์ฆ๊ฐ ํฌ๋ค.
ํํธ ํํ ๋ถ์๋ฒ์ ๋จ์ ์ผ๋ก ๋จ์ด๋ฅผ ์ถ์ถํ๋ ๋ฅ๋ ฅ์ ํ๊ณ๋ค. ์ฌ์ ์ ์ค๋ ค ์์ง ์์ ๋จ์ด๋ ์ถ์ถํ ์ ์๋ค. ๋ํ, ๊ตฌ๋ถ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ์ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ ์ด๋ ์ชฝ ๋จ์ด๋ฅผ ์ถ์ถํด์ผ ์ข์์ง ์ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค. ex) ์๋ฒ์ง๊ฐ๋ฐฉ์๋ค์ด๊ฐ์ ๋ค
์์ชฝ์ ๋จ์ด์ ์ ์น ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด ์์ชฝ ๋จ์ด ๋ชจ๋ ๊ฒ์์ ๊ฑธ๋ฆฌ๋ฏ๋ก ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋ ์ง๋ ๋ชจ๋ฅธ๋ค. ๋ํ, ๋ถ์์ ์ ํ๋๊ฐ ์์ ํ์ง ์์์ ๊ตฌ์ด์ฒด ๋ฑ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ค์ธ ๋๋ ์๋ค.
์ด ์ด์ ๋ก ๊ฒ์์ ์ค์๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ฌ์ ์ ํ์ง์ ๋ฐ๋ผ ๊ฒ์์ ์ ํ๋๊ฐ ๋ค๋ฅผ ์ ์๋ค.
N ๊ทธ๋จ์ ๋ฌธ์ฅ์ ๋จ์ํ N ๋ฌธ์์ฉ ๋ถ๋ถ ๋ฌธ์์ด๋ก ๋๋๋ ๋ฐฉ๋ฒ์ด๋ค. N์๋ ๋จ์ด๋ฅผ ๊ตฌ๋ถํ๋ ๋ฌธ์์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ค. 2๋ฌธ์์ ๊ฒฝ์ฐ๋ ๋ฐ์ด๊ทธ๋จ, 3๋ฌธ์์ ๊ฒฝ์ฐ๋ ํธ๋ฆฌ๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค.
ํํ ๋ถ์๋ฒ์ฒ๋ผ ๋จ์ด ๋จ์๋ก ๋ถ๋ถ ๋ฌธ์์ด์ ์ถ์ถํ ์ ์์ผ๋ฏ๋ก ์๋ฏธ๊ฐ ์๋ ๋ฌธ์์ด๋ก ์๋ฆด ๋๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ด๊ทธ๋จ์ด๋ผ๋ฉด โ์ธ๊ตญ์ธ์ฐธ์ ๊ถโ ์ด๋ผ๋ ๋จ์ด๋ โ์ธ๊ตญโ, โ๊ตญ์ธโ, โ์ธ์ฐธโ, โ์ฐธ์ โ, โ์ ๊ถโ์ 5๊ฐ์ ๋ถ๋ถ ๋ฌธ์์ด๋ก ๋ถํด๋๋ค.์ด๋ก ์ธํด ์๋ํ์ง ์์ โ์ธ์ฐธโ์ด๋ผ๋ ๋จ์ด๋ ๊ฒ์์ด ๋๋ค.
N ๊ทธ๋จ์ ํฌ๊ด์ ์ด์ง๋ง ๊ฒ์ ๋ ธ์ด์ฆ๊ฐ ๋ง๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค. ๋ํ, ์๋นํ ๋ง์ ๋ฌธ์์ด๋ก ๋ถํดํ๋ฏ๋ก ์ธ๋ฑ์ค์ ํฌ๊ธฐ๋ ์ปค์ง๋ค.
Rํธ๋ฆฌ ์ธ๋ฑ์ค๋ ์ง๋์์ ์ง์ ์ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ๋ฑ์ค๋ค. ๊ณต๊ฐ(Spatial) ์ธ๋ฑ์ค๋ผ๊ณ ๋ ํ๋ฉฐ ํ ๊ฐ์ ํ๋ฉด์์ ์ด๋ค ๋ํ์ด ๋ค๋ฅธ ๋ํ์ ํฌํจ๋๋์ง? ์ค๋ณต๋๋์ง ๋ฑ์ ํ๋ณํ ๋ ์ฌ์ฉํ๋ค.
Rํธ๋ฆฌ์ R์ Rectangle์ ์ ๋ฌธ์๋ก ์ต์ ๊ฒฝ๊ณ ์ฌ๊ฐํ(Minimum Bounding Rectangle, MBR)์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํด ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ค. MBR์ด๋ ์ด๋ค ๋ํ์ ๋๋ฌ ์ผ ์ต์์ ์ฌ๊ฐํ(์ง์ฌ๊ฐํ)์ด๋ค.
Rํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋จผ์ ์์๊ฐ๋๋ ๋ํ ์ ๋ถ๋ฅผ MBR๋ก ๋ฐ๊พผ๋ค. ๋ค์์ ์ฃผ๋ณ์ ์๋ ์์์ ์ฌ๊ฐํ์ ๋ชจ๋ ํฌํจํ๋ ์ฌ๊ฐํ์ ์๋กญ๊ฒ ์์ฑํ๋ค. ์ด ์ฌ๊ฐํ์ ๋ด๋ถ์ ํฌํจ๋ ์ฌ๊ฐํ์ ๋ถ๋ชจ ๋ ธ๋๊ฐ ๋๋ค.
์์ ๋ ธ๋๊ฐ ๋๋ MBR์ด ๋ง์ ๊ฒฝ์ฐ ๊ฑฐ๋ฆฌ๊ฐ ๋จ์ด์ ธ ์๋ ์์ ๋ ธ๋ MBR์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ถ๋ชจ ๋ ธ๋ MBR์ ํฌํจ์ํจ๋ค. ์ด๋ ๊ฒ ํ์ฌ ๋ชจ๋ ์์ ๋ ธ๋ MBR์ด ์ด๋๊ฐ์ ๋ถ๋ชจ ๋ ธ๋ MBR์ ํฌํจ๋๊ฒ ํ๋ค. ๋ถ๋ชจ ๋ ธ๋์ ํฌํจ๋ ์์ ๋ ธ๋๋ ์ ๋นํ ์๊ฐ ๋๋๋ก ์กฐ์ ํ๋ค.
๋ถ๋ชจ ๋ ธ๋์ ์๊ฐ ๋ง์ ๋๋ ์์์ ๋ถ๋ชจ ๋ ธ๋๊ฐ ๋๋ MBR์ ๋ง๋ค๋๋ก ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ค. ์ต์ข ์ ์ผ๋ก ๋ชจ๋ ์ฌ๊ฐํ์ ๋ด๋ถ์ ํฌํจํ๋ MBR์ด ๋ฃจํธ ๋ ธ๋๊ฐ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก WHERE year(date_col) = 2013๊ณผ ๊ฐ์ด ์ปฌ๋ผ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํ WHERE ์ ์ B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์์ ํ ์ ์๋ค. ํจ์๋ฅผ ์ ์ฉํ ์ฟผ๋ฆฌ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ํธ๋ฆฌํ ๊ฒ์ด ํจ์ ์ธ๋ฑ์ค๋ค.
์ผ๋ฐ ์ธ๋ฑ์ค๋ ํ ์ด๋ธ ๋ด์ ์ปฌ๋ผ์ ๊ฐ ์์ฒด์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ์ง๋ง, ํจ์ ์ธ๋ฑ์ค๋ year(date_col)๊ณผ ๊ฐ์ด ํจ์๋ฅผ ํ๊ฐํ ๋ค์์ ๊ฐ์ ๋ํด B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค.
โ ํจ์๋ฅผ ํ๊ฐํ ๊ฐ์ ์ฌ์ฉํด ๊ฒ์ํ ์ ์์ผ๋ฏ๋ก WHERE year(date_col) = 2013์ด๋ผ๋ ๊ฒ์ ์กฐ๊ฑด๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
OLAP(Online Analytical Processing, ์จ๋ผ์ธ ๋ถ์ ์ฒ๋ฆฌ) ๋ฑ์ ์ฌ์ฉ๋๋ ์ธ๋ฑ์ค๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ ํ๋ณ๋ก ๋์ํ๋ ์ธ๋ฑ์ค ํญ๋ชฉ์ด ์์ฑ๋๊ณ ๊ฐ ํญ๋ชฉ์ ํ์ ํฌ์ธํฐ(๋๋ ROWID)๊ฐ ์ ์ฅ๋๋ค. ๋นํธ๋งต ์ธ๋ฑ์ค๋ ์ด๊ฒ๊ณผ๋ ๋ค๋ฅด๋ค.
์ปฌ๋ผ๋ณ๋ก ์ฌ๋ฌ ๊ฐ์ ๋นํธ๋งต์ด ์์ฑ๋๋ค. ์ปฌ๋ผ๋ณ๋ก ์ฌ๋ฌ ๊ฐ์ ๋นํธ๋งต์ด ์์ฑ๋๋ค. ๋นํธ ์ค์ 1์ด ์์ผ๋ฉด ๊ทธ ํ์ ๊ฐ์ด ๋นํธ๋งต์ ๊ฐ์ด ๋์ด ์๋ค๋ ๊ฒ์ ๋ํ๋ธ๋ค.
name | grade |
---|---|
์ด์ ์ | 1 |
์ ์์ค | 2 |
ํํ๋ฆฐ | 4 |
ํ์ค์ | 3 |
์์ ์ | 2 |
์ ์นํจ | 3 |
๋ฐฑํ์ | 4 |
value | bitmap |
---|---|
1 | 1000000 |
2 | 0100100 |
3 | 0001010 |
4 | 0010001 |
grade๊ฐ 2์ธ ๋นํธ๋งต์ 2๋ฒ์งธ์ 5๋ฒ์งธ์ ๋นํธ๊ฐ 1์ด๋ฏ๋ก 2๋ฒ์งธ์ 5๋ฒ์งธ ํ์ ํ์์ด 2ํ๋ ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. ๊ฐ ๋นํธ๋งต์ B+ํธ๋ฆฌ์ ๋นํด ํจ์ฌ ํฌ๊ธฐ๊ฐ ์์์ง๋ฏ๋ก ์ธ๋ฑ์ค ์ค์บ์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
๊ทธ๋ฌ๋ ๋นํธ๋งต์ ๊ฐฑ์ ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก OLTP(Online Transaction Processing, ์จ๋ผ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ)์ ๊ฐ์ด ๊ฐฑ์ ์ด ๋ง์ ์์ ์๋ ์ ํฉํ์ง ์๋ค. ๋ํ, ์ปฌ๋ผ์ด ์ป๋ ๊ฐ์ด ๋ง์ ๋๋ ํ์ํ ๋นํธ๋งต์ ์๊ฐ ์ฆ๊ฐํ๋ฏ๋ก ์ํ๋ ์ฑ๋ฅ์ด ๋์ค์ง ์์ ์ ์๋ค.
ํ ์ด๋ธ ์์ฒด๊ฐ ์ธ๋ฑ์ค ๋์ด ์๋ ๊ฒ์ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค ๋๋ ์ธ๋ฑ์ค ๊ตฌ์ฑ ํ ์ด๋ธ(Index Organized Table)์ด๋ผ๊ณ ํ๋ค.
ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ ๊ธฐ๋ณธํค์ ๋ฆฌํ ๋ ธ๋์ ํค ๊ฐ๋ฟ ์๋๋ผ ๋ค๋ฅธ ์ปฌ๋ผ์ ๊ฐ๋ ๊ฐ์ด ์ ์ฅํ๋ค. ๋ฐ๋ผ์ ๊ธฐ๋ณธํค์ ๊ฐ์ ๊ฒ์ํ๋ฉด ๊ฐ์ ํ์ด์ง์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ด์ ์์ฒด์ ์์ธ์ค ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค.
ํํธ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์, ์ฆ ์ผ๋ฐ์ ์ธ ํ ์ด๋ธ์ ํ์ ํฌ์ธํฐ(ํ์ด์ง ๋ฒํธ, ์คํ์ ๋ฑ)๋ก ์์ธ์คํ๋ฉด ๋๋ฏ๋ก 1ํ์ด์ง๋ง ์์ธ์คํ๋ฉด ๋์ง๋ง, ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ ํธ๋ฆฌ๋ฅผ ๊ฑฐ์น์ง ์์ผ๋ฉด ์ ๋๋ฏ๋ก ์ฝ๊ฐ ์ค๋ฒํค๋๊ฐ ์ปค์ง๋ค. ๊ธฐ๋ณธํค์ ์ํ ์์ธ์ค๊ฐ ๋ฉ์ธ์ด๋ผ๋ฉด(RDB ์ ํ์ด ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ) ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ ๋งค์ฐ ์ข์ ์ ํ์ง๊ฐ ๋ ๊ฒ์ด๋ค.
MySQL์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ชจ๋ ํ ์ด๋ธ์ด ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ก ์์ฑ๋๋ฉฐ ๊ทธ ์ธ์ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ ์๋ค.
์ธ๋ฑ์ค๋ ์์์ ํค ๊ฐ์ ๋ฐ๋ผ์ ํ ๋ฐ์ดํฐ์ ์์น๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๋ค. ํํธ ํํฐ์ ๋์ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ ํํฐ์ ์ผ๋ก ๋ถํ ํ๊ณ ํค์ ๊ฐ์ ๋ฐ๋ผ ์ด๋ค ํํฐ์ ์ ์ํ๋ ํ์ธ์ง ๋ฐฐ๋ถํ๋ค.
ํํฐ์ ์ ๊ฐ๊ฐ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ด๋ฉฐ ์ธ๋ฑ์ค๋ ํํฐ์ ๋ง๋ค ์กด์ฌํ๋ค.
์ธ ๊ฐ์ ํํฐ์ ์ด ์ ์๋ผ ์๊ณ ๋ ์ง์ ๋ฐ๋ผ ํํฐ์ ์ด ๋๋์ด์ ธ ์์ ๊ฒ์ด๋ค. ์ด๋ค ํํฐ์ ์ ์ํ ๊ฒ์ธ์ง ์ ํ๋ ํค(ํํฐ์ ํค)๋ฅผ ๊ฒ์ ์กฐ๊ฑด์ผ๋ก ์ง์ ํ๋ฉด ํด๋น ํํฐ์ ๋ง ๊ฒ์ํ๋ฉด ๋๋ฏ๋ก ๊ฒ์ ํจ์จ์ด ํฅ์๋๋ค.
์ด์ฒ๋ผ ๊ฒ์ ๋์ ํํฐ์ ์ ์ขํ๊ฐ๋ ๋์์ ํํฐ์ ํ๋ฃจ๋(Patition Pruning)์ด๋ผ๊ณ ํ๋ค. ํ๋ฃจ๋์ ๊ฐ์ง์น๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
ํํฐ์ ํ๋ฃจ๋์ ๋ฒ์ ๊ฒ์์๋ ์ ์ฉํ๋ค. ์๋ฅผ ๋ค์ด
key BETWEEN '2013-10-01' AND '2014-02-01';
์กฐ๊ฑด์ ๋ฌ๋ฉด ํด๋นํ๋ ํํฐ์ ๋ง ๊ฒ์ ๋์์ด ๋ ๊ฒ์ด๋ค.
๋ํ ๊ฐ ํํฐ์ ์๋ ๊ฐ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฏ๋ก ํํฐ์ ํ๋ฃจ๋์ ํ ๋ค์์ ๋์์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์์ ์ํํ ์ ์๋ค. ํํฐ์ ๋์ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ๋ถํ ํ ๊ฒ์ธ์ง์ ๋ฐ๋ผ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋๋ ์ ์๋ค.
ํํฐ์ ๋์ ์ฌ์ฉํ ์ง์ ๊ฐ์ฅ ํฐ ํ๋จ ๊ธฐ์ค์ ํํฐ์ ํ๋ฃจ๋์ ํ ์ ์๋ ๊ฒ์ ์กฐ๊ฑด์ ํฌํจํ ์ฟผ๋ฆฌ์ ์คํ๋น๋๋ค. ํํฐ์ ํ๋ฃจ๋์ด ์ ํจํ ์ฟผ๋ฆฌ๊ฐ ๋๋ถ๋ถ์ผ ๋๋ ํํฐ์ ๋์ ์ํ ์ฒ๋ฆฌ ์ ์ฒด์ ํจ์จํ๊ฐ ๊ธฐ๋๋๋ค.
๊ทธ๋ฌ๋ ํํฐ์ ๋์ด ์ ํฉํ๋ค๊ณ ์๊ฐ๋ ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ถ์ด๋ ๊ฒ๋ง์ผ๋ก ์ถฉ๋ถํ ๋๊ฐ ๋๋ถ๋ถ์ด๋ค. ํํฐ์ ๋์ ์ฐ๋ ํธ์ด ๋ช ํํ๊ฒ ์ฑ๋ฅ์ด ํฅ์๋ ๋๋ ํค์ ์นด๋๋๋ฆฌํฐ๊ฐ ๋ฎ์ ๋
โ ๊ฒ์์ผ๋ก ๋๋์ ๋ฐ์ดํฐ๊ฐ ํจ์น ๋๋ ๊ฒฝ์ฐ๋ค.
์นด๋๋๋ฆฌํฐ๊ฐ ๋ฎ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์์ ๋๋์ ํ์ด ์ผ์นํ๋ฏ๋ก ์ธ๋ฑ์ค ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ด์ง๋ฅผ ๋ช ๋ฒ์ด๊ณ ์๋ณตํ๊ฒ ๋์ด ํจ์จ์ด ๋์ง ์๋ค. ํํฐ์ ์ด๋ผ๋ฉด ํ ๊ฐ์ ํํฐ์ ์ ์ค์บํ๋ฉด ๋๋ฏ๋ก ํจ์ฌ ๋น์ฉ์ด ๋ฎ์์ง๋ค.
๊ทธ๋ฌ๋ OLTP ํ ์์ฉํ๋ก๊ทธ๋จ์์ ์ด์ ๊ฐ์ ๋๋์ ํ์ ํจ์นํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ์ด์ ํํฐ์ ๋์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ ์ ๊ฒ์ด๋ค. ๋ง์ฝ OLTP ํ ์์ฉํ๋ก๊ทธ๋จ์์ ์ค์บ์ ์ฌ๋ฌ ๋ฒ ์ํํด์ผ ํ๋ฉด ํ ์ด๋ธ์ ์ ๊ทํ๊ฐ ์ถฉ๋ถํ์ง ์์ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์ ์ ์์ผ๋ฏ๋ก ๋จผ์ ์ด๋ฅผ ํด๊ฒฐํด์ผ ํ๋ค.
์ต์ ๋ฐ์ดํฐ๋ฅผ ํญ์ ์ฐธ์กฐํ ๋๋ ํํฐ์ ๋์ด ์ ์ฉํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฐจ๋ก๋ก ์ถ๊ฐํ๋ ์์ฉํ๋ก๊ทธ๋จ์ด๋ฉฐ ๊ณผ๊ฑฐ์ ๋ฐ์ดํฐ์ ๊ทธ๋ค์ง ์ ๊ทผํ์ง ์์ ๋๋ ๋ ์ธ์ง ํํฐ์ ๋์ ์ํํด ์์ธ์ค๋๋ ๋์์ ๋ฐ์ดํฐ ๊ตญ์์ฑ์ ์ต๋ํ ํ์ฉํ ์ ์๋ค. ํํฐ์ ๋์ ์ฌ์ฉํ๋ฉด ํํฐ์ ๋๋ณ๋ก ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์์ธ์ค์ ๊ตญ์์ฑ์ด ์๋ค๋ฉด ์บ์์ ํจ์จ์ด ๋งค์ฐ ํฅ์๋๋ค.
โ ๋๋ถ๋ถ ๊ฒ์์ด ๋ฉ๋ชจ๋ฆฌ๋ง์ผ๋ก ์ฒ๋ฆฌ๋๊ณ ๋์คํฌ I/O๋ฅผ ์ค์ฌ์ ์ฑ๋ฅ ํฅ์์ ์คํํ ์ ์๋ค.
์ธ๋ฑ์ค๊ฐ ํํฐ์ ๋๋ณ๋ก ์์ฑ๋ผ ์๋ค. ์ด์ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ก์ปฌ ์ธ๋ฑ์ค ๋ผ๊ณ ํ๋ค. ์ธ๋ฑ์ค๊ฐ ํํฐ์ ๋ณ๋ก ์กด์ฌํ๋ฏ๋ก ๊ฐ์ฅ ๊ณค๋ํ ๊ฒ์ด ๊ณ ์ ์ฑ ์ ์ฝ์ด๋ค.
๊ณ ์ ์ฑ ์ ์ฝ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๊ตฌํํ๋ค.๋ก์ปฌ ์ธ๋ฑ์ค์์ ๊ณ ์ ์ฑ์ ๋ณด์ฅํ๋ ๋ฒ์๋ ๊ทธ ์ธ๋ฑ์ค๊ฐ ์ํ ํํฐ์ ๋์ผ๋ก ์ ํ๋๋ค.
โ ํ ์ด๋ธ ์ ์ฒด์ ๊ณ ์ ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
์ด ๋ฌธ์ ๋๋ฌธ์ ๋ง์ DB์์ ํํฐ์ ๋๋ ํ ์ด๋ธ์ ๋ํด ๊ธฐ๋ณธํค๋ ์ ๋ํฌ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๋์ ํํฐ์ ํค์ ํฌํจํด์ผ ํ๋ค๋ ์ ํ์ด ์๋ค.
ํํฐ์ ํค๊ฐ ๊ธฐ๋ณธํค๋ ์ ๋ํฌ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ปฌ๋ผ์ ํฌํจ๋ผ ์์ผ๋ฉด ํํฐ์ ๋ณ๋ก ํํฐ์ ํค์ ๊ฐ์ด ๋ค๋ฅด๋ฏ๋ก ๋ค๋ฅธ ํํฐ์ ์๋ ๊ฐ์ ๊ฐ์ ํค๊ฐ ํฌํจ๋ ๊ฐ๋ฅ์ฑ์ ์์ ๊ฒ์ด๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๊ณ ์ ์ฑ ์ ์ฝ์ ๊ธฐ๋ฅ์ ๋ฐ๋ฅด๊ฒ ๋์ํ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ํํฐ์ ํค๋ฅผ ํฌํจํ ํค๋ ๊ทธ ํ ์ด๋ธ์ ์ค๊ณ์ ์ ๋ง๋ก ์ ์ผํ์ง ์์ผ๋ฉด ์๋๋ค. ์ด ๊ฒฝ์ฐ ํํฐ์ ํค๋ฅผ ์ ๋ํฌ ์ธ๋ฑ์ค์ ๋ฃ์ด๋ ์๋ฌด๋ฐ ํด๊ฒฐ์ฑ ์ด ๋์ง ์๋๋ค.
ํํฐ์ ๋์ ์ํํด ๊ณ ์ ์ฑ์ ๋ณด์ฅํ ์ ์๋ค๋ฉด ํํฐ์ ๋์ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
ํํฐ์ ๋์ ์ํํ๊ณ ์์ ๋๋ ์ ์์ ์ผ๋ก ๊ณ ์ ์ฑ ์ ์ฝ์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ๋ณ ํํฐ์ ์ด ์๋ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ๋์์ผ๋ก ํ๋ ์ธ๋ฑ์ค๊ฐ ํ์ํ๋ค. โ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค ๋ผ๊ณ ํ๋ค.
๊ธ๋ก๋ฒ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ ํ์ด๋ผ๋ฉด ํํฐ์ ๋์ ์ํ ๊ณ ์ ์ฑ ์ ์ฝ์ด ์์๋์ง ์๊ณ ํฐ ๋ฌธ์ ์์ด ํํฐ์ ๋์ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฐ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค๋ ๋ชจ๋ ํํฐ์ ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋๋ฏ๋ก ์ด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์์ ํํฐ์ ํ๋ฃจ๋์ ํ ์ ์๋ค. ๋ํ, ์ด๋ ํํฐ์ ์ ํ์ ๊ฐฑ์ ํด๋ ๋ฐ๋์ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค๋ ๊ฐฑ์ ํด์ผ ํ๋ค. ์์ธ์ค์ ๊ตญ์์ฑ๋ ํ์ฉ ํ ์ ์๋ค.
โ ํํฐ์ ๋์ ์๋ฏธ๊ฐ ์ค์ด๋ค ๊ฐ๋ฅ์ฑ์ด ์๋ค.
ํํฐ์ ๋์ ๊ดํ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์คํด๋ ํํฐ์ ๋๋ง์ผ๋ก ์์ธ์ค๊ฐ ๋นจ๋ผ์ง๋ค๋ ์๊ฐ์ด๋ค.
ํํฐ์ ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ํํฐ์ ํ๋ฃจ๋์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋ฏธ๊ฐ ์๋ค. ํํฐ์ ๋์ ์ํํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋์คํฌ๋ฅผ ๋๋๊ฑฐ๋ ์ฒ๋ฆฌ๋ฅผ ํํฐ์ ๋๋ณ๋ก ๋ณํํ ์ ์๋ ์ ํ๋ ์์ง๋ง, ์ด๋ฐ ์ ํ์ด ์๋ ์ด์ ๋ฌด์กฐ๊ฑด ํํฐ์ ๋์ ํด์๋ ์๋ฏธ๊ฐ ์๋ค.
์คํ๋ ค ํํฐ์ ๋ ๋๋ฌธ์ ์ฒ๋ฆฌ๊ฐ ๋ฆ์ด์ง ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. ํํฐ์ ํ๋ฃจ๋์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๊ณ ์ํ๊ฐ ์คํ๋์ง๋ง ํํฐ์ ํ๋ฃจ๋์ ์ฌ์ฉํ ์ ์์ ๋๋ ๋ชจ๋ ํํฐ์ ์ ๋ํ ๊ฒ์์ ์คํํด์ผ ํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ํํฐ์ ๋์ ํ์ง ์๋ ๊ฒฝ์ฐ, ๋ฒ์ ๊ฒ์์ ์ธ๋ฑ์ค๋ฅผ ํ ๋ฒ ๊ฒ์ํ๋ฉด ์ถฉ๋ถํ๋ค. ๊ทธ๋ฌ๋ ์๋ฅผ ๋ค์ด 100๊ฐ์ ํํฐ์ ์ด ์๋ ํ ์ด๋ธ์ ํํฐ์ ํ๋ฃจ๋ํด์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๋ก์ปฌ ์ธ๋ฑ์ค๋ฅผ 100๋ฒ ๊ฒ์ํด์ผ ํ๋ค.
์ด์ ๊ฐ์ ์ค๋ฒํค๋๋ ํจ์น๋ ํ ์๊ฐ ์ ์ ๋ ๋ฌธ์ ๊ฐ ๋๋ค. ๋ก์ปฌ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ๋๋ผ๋ ๋น ์ง(ํด๋น ๋ฐ์ดํฐ๊ฐ ์๋)๊ฐ๋ฅ์ฑ์ด ์ปค์ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ธ๋ฑ์ค๋ ๋ ผ๋ฆฌ์ ์ธ ์ค๊ณ๊ฐ ์๋๊ณ ๋ฌผ๋ฆฌ์ ์ธ ์ค๊ณ์ ์ด์ผ๊ธฐ(๊ตฌํ)๋ค.
๋ ผ๋ฆฌ์ ์ธ ์ค๊ณ๋ ์ด๋ค ๊ฐ์ด ํ ์ด๋ธ์ ์ ์ฅ๋๋๊ฐ ๋ฟ์ด๋ค. ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ์ ์ด๋ค ๊ฐ์ ์ป์ ์ ์๋์ง, ์ฆ ํ ์ด๋ธ์ ํฌํจ๋ ๊ฐ ๊ฐ์ด ๋ฌด์์ธ์ง๊ฐ ํ ์ด๋ธ์ ๋ ผ๋ฆฌ์ ์ธ ์ค๊ณ๋ค.
ํํธ ์ธ๋ฑ์ค๋ ์คํ ๊ณํ๊ณผ ๊ด๋ จ๋ ์ค๋ธ์ ํธ๋ค. ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์์ธ์ค๋ ๋น ๋ฅด์ง๋ง, ์ธ๋ฐ์คใ ก์ด ์ ๋ฌด์ ๋ฐ๋ผ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง์ง๋ ์๋๋ค. ์ธ๋ฑ์ค๋ ๋ฌผ๋ฆฌ์ ์ค๊ณ(๊ตฌํ)์ ์ผ๋ถ๋ค.
์๋๋
์ฟผ๋ฆฌ๊ฐ ์ ํด์ง๊ณ ๋์(์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐ์ ํ๊ณ ๋์) ๊ณ ์ํํ๊ธฐ ์ํ ์ธ๋ฑ์ค๋ฅผ ์ค๊ณํ๋ค.
์ด์ง๋ง ์ค๋ฌด์์๋ ๊ฐ๋
์ธ๋ฑ์ค๋ฅผ ์ ํ ๋ค์์ ์ด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์์ฑํ ๊น
๋ผ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค. ๋๋ถ๋ถ SQL ์๋ จ์๊ฐ ์์ฃผ ํ๋ ์ค์ ์ค ํ๋๋ค.
์ธ๋ฑ์ค๋ ๊ด๊ณํ ๋ชจ๋ธ ์ธ๋ถ ์ธ๊ณ์ ๊ฐ๋ ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋จผ์ DB์ ๋ ผ๋ฆฌ ์ค๊ณ๋ฅผ ํ๊ณ ๊ทธ ๋ค์์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ์ธ๋ฑ์ค์ ๋ํด ์๊ฐํ๋ ๊ฒ์ด ์ข๋ค. DB ์ค๊ณ๋ ์ฟผ๋ฆฌ๋ก ๋ฌด์์ ์ป์ ๊ฒ์ธ์ง๋ ๋ ผ๋ฆฌ์ค๊ณ์ด๋ฉฐ ์ธ๋ฑ์ค๋ ๋ฌผ๋ฆฌ ์ค๊ณ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
DB๋ฅผ ์ค๊ณํ ๋ ํ๋ณดํค๋ ์ ์ ์์ผ๋ฏ๋ก ๊ทธ๊ฒ๋ง์ ์ฒ์๋ถํฐ ๊ธฐ๋ณธํค๋ก ์ ์ํด๋ ๋๋ค.
์ง๊ฐ์ผ๋ก โ์ด ์ปฌ๋ผ์ ๊ฒ์ํ ์ผ์ด ๋ง์ ๊ฑฐ์ผโ ๋ผ๋ฉด ์ธ๋ฑ์ค๋ฅผ ์์ฑํด๋ ๊ด์ฐฎ์ผ๋ ๊ฒฐ์ ํ ์ธ๋ฑ์ค์ ์ฝ๋งค์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ์ผ์ด ์๋๋ก ํด์ผํ๋ค.
ํนํ ์ธ๋ฑ์ค๋ ๋ฆฌํฉํฐ๋ง๋ ๊ฐ๋จํ๋ฏ๋ก ์ฒ์์ ์ ํ ์ธ๋ฑ์ค์ ์ง์ฐฉํ ํ์๋ ์๋ค.
์ธ๋ฑ์ค์ ์ ์๋ ์ ์ฐํ๊ฒ ์ฌ๊ฒํ ํด๋ ์๊ด์๋ค.
์ธ๋ฑ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด DB ์ค๊ณ๊ฐ ๋งค์ฐ ์ค์ํ๋ค. ํนํ ์ ๊ทํ๋ ์ ๋๋ก ๊ตฌํํด์ผ ํ๋ค.
์ ๊ทํ๋์ง ์์ ํ ์ด๋ธ์ ์ปฌ๋ผ์ด ๋งค์ฐ ๋ง๋ค. ๊ทธ ๊ฒฐ๊ณผ ํ์ํ ์ธ๋ฑ์ค๋ ๋์ด๋๊ฒ ๋๋ค. ์ธ๋ฑ์ค๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ๊ฐฑ์ ์ฑ๋ฅ์ด ๋๋น ์ง๊ณ ํ์ํ ๋์คํฌ ๊ณต๊ฐ๋ ๋ง์์ง๋ฏ๋ก ์ธ๋ฑ์ค ๊ด์ ์์ ๋ณด๋๋ผ๋ ์ ๊ทํ๋ ํ์ํ๋ค.
์ ๊ทํ๋ ํ ์ด๋ธ์๋ ์ ์ด๋ ํ ๊ฐ์ ํ๋ณดํค๊ฐ ์กด์ฌํ๋ฏ๋ก ๊ทธ ํ ์ด๋ธ์๋ ๋ช ์์ ์ผ๋ก ๊ธฐ๋ณธํค๋ฅผ ์์ฑํ ์ ์๋ค. SQL์์๋ ํค๋ณธํค๊ฐ ์๋ ํ ์ด๋ธ๋ ํ์ฉํ์ง๋ง, ์ค๋ณตํ๋ ํ์ ๊ฐ์ง๊ฒ ๋๋ฏ๋ก ๋ฐ๋์งํ์ง ์๋ค.
์ค๋ณตํ๋ ํ์ ๊ฐ์ง ํ ์ด๋ธ์ ๊ด๊ณํ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฐ์ฐ์ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ๊ทํํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋๋ ๊ฒ์ด NULL์ ์กด์ฌ๋ค.
1NF ๋์ด ์์ง ์์ ํ ์ด๋ธ์๋ NULL์ด ๋์ฌ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
NULL์ ๊ด๊ณํ ๋ชจ๋ธ์์๋ ์ฒ์ ์ผ ๋ฟ๋ง์๋๋ผ ์ธ๋ฑ์ค์๋ ๊ถํฉ์ด ์ข์ง ์๋ค. SQL์์๋ NULL ๋ผ๋ฆฌ์ ๋น๊ต๋ ํ ์ ์๊ณ , ์ธ๋ฑ์ค์ ๊ตฌํ์๋ NULL๊ณผ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ํญ๋ชฉ์ ์ธ๋ฑ์ค์ ๋งจ ์ ๋๋ ๋งจ ๋ค์ ๋ชจ์์ ๋์ด๊ฒ ๋๋ค.
๋งจ ์๊ณผ ๋งจ ๋ค ์ค ์ด๋ ์ชฝ์ ๋ฐฐ์นํ ์ง๋ ์ ํ์ ๊ตฌํ(์ ๋ ฌ ์์)์ ๋ฌ๋ ค์๋ค. NULL์ ๊ฐ์ ๊ฒ์ํ๋ ๊ฒ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ์๋ ์์ญ์ ์ค์บํ๋ ๊ฒ์ ๋ถ๊ณผํ๋ค. ๊ทธ ์ปฌ๋ผ์ ๊ฐ ์ค์ ์ด๋ ์ ๋์ ๋น์จ์ด NULL์ธ์ง์ ๋ฐ๋ผ, NULL์ ๋น์จ์ด ๋์ ๋๋ ๊ทธ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์์ด ๋งค์ฐ ๋นํจ์จ์ ์ด๊ฒ ๋๋ค.
์ปฌ๋ผ์ ๊ฐ์ด NULL์ผ ๋์ ๋ฌธ์ ๋ ๋น๊ต๊ฐ 3VL์ด ๋๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด NOT NULL์ด ์๋ age๋ผ๋ ์ปฌ๋ผ์ด ์๊ณ 20์ธ ๋ฏธ๋ง์ ๋ชจ๋ ์ฌ๋์ ์ฐพ๋ ๊ฒฝ์ฐ age๊ฐ NULL์ธ ์ฌ๋๋ ํฌํจํ ๊ฒ์ธ์ง ์๋์ง์ ๋ฐ๋ผ ๊ฒ์์ด ๋ฌ๋ผ์ง๋ค.
NULL์ด ํฌํจ๋ผ ์์ผ๋ฉด ์ธ๋ฑ์ค์ ํจ๊ณผ๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋ค.
์ธ๋ฑ์ค ์ค๊ณ์ ์์ด ๊ฐ์ฅ ์ค์ํ ์ ์ ๋ง์ ์ปฌ๋ผ์ค์์ ์ด๋ค ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์๊ฐ์ด๋ค.
์ธ๋ฑ์ค์ ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๋ ค๋ฉด ๊ฒ์์กฐ๊ฑด์ ์ ํฉํ ์ธ๋ฑ์ค๊ฐ ํ์ํ๋ค. ์กฐ๊ฑด์ ๋ง๋ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ํ ์ด๋ธ์ ์ค์บํด ๊ฒ์ํ๋ ๋ฐฉ๋ฒ๋ฐ์ ์๋ค. ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ์ค์บ์ ๋๋ ๋น์ฉ๋ ์ปค์ง๋ค. ํฌ๊ธฐ๊ฐ ํฐ ํ ์ด๋ธ์ ์ธ๋ฑ์ค์ ์ํ ๊ฒ์ ์๋์ ๊ฐ์ ํจ๊ณผ๊ฐ ํฌ๋ค.
๊ทธ๋ฌ๋ ๊ฒ์์ด ๋นจ๋ผ์ง๋ค๊ณ ํด์ ์ด๋ค ๊ฒ์ด๋ ์ง ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด ์๋๋ค. ์ธ๋ฐ์ค๊ฐ ๋์ด๋ ์๋ก ํ ์ด๋ธ์ ๊ฐฑ์ ํ ๋์ ์ค๋ฒํค๋๋ ์ปค์ง๊ณ ํ์ํ ๋์คํฌ ๊ณต๊ฐ๋ ๋์ด๋๋ค. ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ์ฆ๊ฐํด ๋ฒํผํ์ ํํธ์จ๋ ๋ฎ์์ง ๊ฒ์ด๋ค. ๊ฒ์์ ํ์ํ ์ปฌ๋ผ์ด ํฌํจ๋ ์ธ๋ฑ์ค์ ์กฐํฉ ์ค์ ๊ฐ์ฅ ํจ์จ์ด ๋์ ๊ฒ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํ๋ค.
์ธ๋ฑ์ค๊ฐ ํ์ํ ์ด์ ๋ ํ ์ด๋ธ ์ค์บ์ ํผํ๊ธฐ ์ํด์์ง๋ง ํ ์ด๋ธ ์ค์บ์ด ์คํ ๊ณํ์ ๋ฐ๋์ ๋์ ์ ํ์ด๋ผ๊ณ ๋ ํ ์ ์๋ค. ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด๋ฉด ํ ์ด๋ธ ์ค์บ์ ํ๋ ํธ์ด ์์คํ ์ ์ฒด์ ์ฒ๋ฆฌ๋์ด ๋ง์์ง๋ค.
๋ง์ง๋ง์ ๊ฒฝ์ฐ๋ ๋ค์ ์ค๋ช ํ๋ ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด ๋น ๋ฅด๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์์ ๋๋ ์คํ ๊ณผ์ ์์ ์ธ๋ฑ์ค์ ํ ์ด๋ธ์ ์ค๊ฐ๋ฉฐ ์์ธ์คํ๊ฒ ๋๋ฏ๋ก ํ ์ด๋ธ ์์ฒด์ ์์ธ์คํ๊ธฐ ์ํด ๋๋ค ์์ธ์ค๊ฐ ๋ฐ์ํ๊ฒ ๋๊ณ , ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์คํ๋ ค ๋๋ฆด ๋๊ฐ ๋ง๋ค.
์ด๋ค ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํ ์ง ๊ณ ๋ฏผํ๊ธฐ ์ ์ ์ด๋ค SQL์ ๊ตฌ๋ฌธ์ ๋ํด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์๊ณ ์์ด์ผ ํ๋ค. ์ง๊ธ์ SELECT๋ฅผ ๋์์ผ๋ก ์ค๋ช ํ์ง๋ง, UPDATE, DELETE, INSERT ๋ฑ์ ๊ตฌ๋ฌธ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ค.
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ WHERE ์ ์ด๋ค. WHERE ์ ์ ์ปฌ๋ผ์ด ๋ฑํธ๋ ๋ถ๋ฑํธ๋ก ๋น๊ตํ๊ณ ์์ผ๋ฉด ์ธ๋ฑ์ค๋ก ๋นจ๋ผ์ง ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๊ฐ์ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ด WHERE ์ ๋ก ์ง์ ๋ผ ์๋ค๋ฉด ํด๋น ์ปฌ๋ผ์ ๋ํด์ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ์ป์ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง ๊ฒ์ด๋ค.
๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผ ํ ์ ์ ๊ฒ์ ์กฐ๊ฑด์ด ์ ๋ฐฉ ์ผ์นํด์ผ ํ๋ค๋ ์ ์ด๋ค. ํนํ ๋ฑํธ๋ ๋ถ๋ฑํธ๊ฐ ์์ฌ ์์ ๋๋ ์ฃผ์๊ฐ ํ์ํ๋ค.
## ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ์ ํฉํ ๋ฒ์ ๊ฒ์
SELECT * FROM t WHERE col1 > 100 AND col2 = 'abc';
์ด ์ฟผ๋ฆฌ๋ฅผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ค๋ฉด (col2, col1)์ ์์๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํ๋ค.
(col2, col1)์ ์์๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑํด๋ col1>100์ ๋ถ๋ถ๋ง B+ํธ๋ฆฌ๋ก ํด๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋ถ๋ฑ์์ ํ์ชฝ์ด ์ด๋ ค์์ด์ ๋ง์ ํ์ด ๊ฒ์ ๊ฒฐ๊ณผ๋ก ๋์ฌ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
์ด์ ๋ฐ๋ผ ์์์ ๋งํ ๊ฒ๊ณผ ๊ฐ์ด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ์ฅ์ ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๋ฐ๋๋ก (col2, col1)์ ์์๋ก ์์ฑ๋ ์ธ๋ฑ์ค๋ผ๋ฉด ์์ชฝ์ ๊ฒ์ ์กฐ๊ฑด์ ์ธ๋ฑ์ค๋ก ํด๊ฒฐํ ์ ์๋ค.
์์) (โabcโ, 100) < (col2, col1) < (โabdโ, col1์ ์ต์๊ฐ)์ด๋ผ๋ ๋ฒ์๋ฅผ ์ธ๋ฑ์ค์์ ๊ฒ์ ๊ฐ๋ฅ
JOIN์์ ์ค์ํ ๊ฒ์ ๊ฒฐํฉํ๋ ํ ์ด๋ธ์ ์์๋ค. ๋ด๋ถ ํ ์ด๋ธ(๊ฒฐํฉํ๋ ์ชฝ์ ํ ์ด๋ธ)์ ๋ํ ์์ธ์ค๋ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ์ค์ํ ๊ฒ์ด JOIN์ ๊ฒฐํฉ ์กฐ๊ฑด ์ด์ธ์ ๊ฒ์ ์กฐ๊ฑด์ด๋ค.
SELECT * FROM t1
JOIN t2 ON t1.col1 = t2.col2
WHERE t1.col3 = 100 AND t2.col4 = 'abc';
์ด ์ฟผ๋ฆฌ์์ ๊ตฌ๋ ํ ์ด๋ธ์ด t1, ๋ด๋ถ ํ ์ด๋ธ์ด t2๋ผ๋ ์์์ ์คํ ๊ณํ์ด ์ ํํ์ ๋ t2 ํ ์ด๋ธ์์ (col2, col4)๋ผ๋ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด col2์ ์ธ๋ฑ์ค๋ณด๋ค ์์ธ์ค๊ฐ ํจ๊ณผ์ ์ผ ์ ์๋ค.
col2๋ JOIN์ ON์ ์, col4๋ WHERE ์ ์ ๊ฐ๊ฐ ์์นํ๊ณ ์๋ค. ์ด ๊ฒ์ t2.col2๊ฐ ๊ธฐ๋ณธํค๊ฑฐ๋ ์ ๋์ค ์ธ๋ฑ์ค๊ฐ ์๋ ๋ ํนํ ํจ๊ณผ์ ์ด๋ค.
๊ธฐ๋ณธํค๋ ์ ๋ํฌ ์ธ๋ฑ์ค์์๋ ๋ฑ๊ฐ ๋น๊ต๋ก ํ ์ด๋ธ์์ ์ ํ๋ ๋ฐ์ดํฐ๋ ์ต๋ 1์ค์ด๋ค.
โ ๋ค๋ฅธ ์กฐ๊ฑด์ด ์๋ค๊ณ ํด๋ ํจ์จ์ ํฌ๊ฒ ์ฐจ์ด ์๋ค. ์ญ์ ๋ด๋ถ ํ ์ด๋ธ์ ๋ํ ์์ธ์ค๊ฐ ๊ธฐ๋ณธํค๋ ์ ๋์ค ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ์ํํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ด๋ค.
๊ทธ๋ฌ๋ WHERE ์ ๊ฒ์ ์กฐ๊ฑด์ผ๋ก ์ขํ์ง ์ ๋(์ขํ์ง ํ์ ํ ์)์ ๋ฐ๋ผ ์ตํฐ๋ง์ด์ ๋ JOIN์ ์ํํ๋ ์์
โ ์ด๋ ์ชฝ์ด ๊ตฌ๋ ํ ์ด๋ธ์ด ๋ ๊ฒ์ธ์ง๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
์ด ๊ฒฝ์ฐ๋ t2.col2 ์ปฌ๋ผ์ ์ ๋ํฌ๊ฐ ์๋ ๋ณด์กฐ ์ธ๋ฑ์ค๊ฐ ์์์ง๋ ๋ชจ๋ฅธ๋ค. t2.col2๊ฐ ์ ๋ํฌ๊ฐ ์๋๋ผ๋ฉด JOIN์ t1.col1 = t2.col2๋ผ๋ ์กฐ๊ฑด์ ํด๋นํ๋ ํ์ด ์ฌ๋ฌ ๊ฐ ๋์จ๋ค. ์ด ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด JOIN์ ์กฐ๊ฑด์ ๋ฐ๋ผ์ t2์์ ํ์ ์ ํํ ๋ค์์ WHERE ์ ์ t2.col4 = โabcโ๋ผ๋ ์กฐ๊ฑด์ผ๋ก ์ขํ์ ๊ฒ์ํด์ผ ํ๋ค.
๋ง์ฝ t2 ํ ์ด๋ธ์ (col2, col4)๋ผ๋ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์์ ์ JOIN์ t1.col1 = t2.col2, WHERE ์ ์ t2.col4 = โabcโ์ด๋ผ๋ ๋ ์กฐ๊ฑด ๋ชจ๋๊ฐ ์ ์ฉ๋๊ฒ ๋๊ณ ํ ์ด๋ธ์์ ํ์ ์ ํํ ๋ค์์ WHERE ์ ์ ์กฐ๊ฑด์ผ๋ก ๋์์ ์ขํ๋๊ฐ๋ ๋ถํ์ํ ์์ ์ด ์์ด์ง๊ฒ ๋๋ค.
JOIN์์ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ์ ์ฉํ ๋๊ฐ ์๋ค๋ ๊ฒ์ ์์ธ์ ๋งน์ ์ด๋ฏ๋ก ๋ช ์ฌํด์ผ ํ๋ค.
JOIN์ ๊ฒฝ์ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ด ์๋ธ์ฟผ๋ฆฌ๋ WHERE ์ ์ ์กฐ๊ฑด๊ณผ ์๋ธ์ฟผ๋ฆฌ ์์ชฝ ๋ชจ๋๋ฅผ ๊ณ ๋ คํ ์ธ๋ฑ์ค ์ค๊ณ๊ฐ ์๊ตฌ๋๋ค.
SELECT * FROM t1 WHERE t1.col1 IN (
SELECT col2 FROM t2 WHERE col3 = 100)
AND t1.col4 = 'abc';
์๋ธ์ฟผ๋ฆฌ์ WEHRE ์ ์ ์ง์ ๋ col3์ select list์ ์๋ col2๊ฐ ์ธ๋ฑ์ค์ ๋์์ด ๋๋ค. col2๋ t1.col1๊ณผ ๋น๊ต๋๊ธฐ ๋๋ฌธ์ด๋ค.
โ t2 ํ ์ด๋ธ์ (col2, col3) ๋๋ (col3, col2)๋ผ๋ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ์ด ์๊ด ์๋ธ์ฟผ๋ฆฌ๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ํด๊ฒฐํ ์ ์๋ค.
์ฐธ๊ณ ๋ก IN ์๋ธ์ฟผ๋ฆฌ๋ EXISTS ์๋ธ์ฟผ๋ฆฌ๋ก ๊ฐ๋จํ๊ฒ ์ฌ์์ฑํ ์ ์๋ค.
SELECT * FROM t1 WHERE EXISTS (
SELECT col2 FROM t2 WHERE col3 = 100
AND t2.col2 = t1.col1)
AND t1.col4 = 'abc';
์ด๋ ๊ฒ ๋ณด๋ฉด t2 ํ ์ด๋ธ์ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ ์ ์๋ค.
B+ํธ๋ฆฌ๋ ํค์ ์์๋ก ์ ๋ ฌ๋์ด ์ ์ฅ๋ผ ์์ผ๋ฏ๋ก ์ธ๋ฑ์ค์ ์์๋ก ํญ๋ชฉ์ ์ฝ์ผ๋ฉด ์ ๋ ฌ์ ๊ณ ์ํ์ ๋์์ด ๋๋ค. WHERE ์ ์์ ์ ๋ฐฉ์ผ์นํ๋๋ก ์กฐ๊ฑด์ ์ง์ ํ๋ฉด ๋ฒ์ ๊ฒ์๊ณผ ์ ๋ ฌ ๋ชจ๋๋ฅผ ํ ๋ฒ์ ์ธ๋ฑ์ค๋ก ํด๊ฒฐํ ์ ์๋ค.
SELECT * FROM t WHERE name LIKE '์%'
ORDER BY name;
์ด ์ฟผ๋ฆฌ๋ (name)์ด๋ผ๋ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด name์ ๋ํ ๊ฒ์์ด ์ ๋ฐฉ์ผ์น์ด๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ฒ์ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค. ์ ๋ ฌ์ ์ด ๋ฒ์์ ์์์๋ถํฐ ์์๋๋ก ์ธ๋ฑ์ค๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด ๋๋ฏ๋ก ์ ๋ ฌ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ฒ์๊ฐ ๋ช ํํ๋ค๋ฉด ์ ๋ ฌ์ ์์๋ ASC์ฌ๋ ๋๊ณ , DESC์ฌ๋ ๋๋ค.
๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฒ์๊ฐ ๋ช ํํ๋ค๋ ๊ฒ๊ณผ ๊ทธ ๋ฒ์์ ์ธ๋ฑ์ค๊ฐ ์ ๋ ฌํค๊ฐ ์์๋ก ๋์ดํ๋ค๋ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด ์ธ๋ฑ์ค๋ก ์ ๋ ฌ์ ํด๊ฒฐํ ์ ์๋ค.
์๋ฅผ ๋ค์ด (col1, col2, col3)๋ผ๋ ์ธ๋ฑ์ค๊ฐ ์์ ๋ WHERE col1 = 100 AND col2 = โabcโ ORDER BY col3๋ผ๋ ์กฐ๊ฑด์ด ์๋ค๋ฉด ์ ๋ ฌ์ ์ธ๋ฑ์ค๋ก ํด๊ฒฐํ ์ ์๋ค. ๊ทธ๋ฌ๋ WHERE col1 = 100 ORDER BY col3์ ๊ฐ์ด col2๊ฐ ๋น ์ ธ์์ ๋๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ ฌ์ ํ ์ ์๋ค. WHERE ์ ์ ์ง์ ๋ ๋ฒ์ ์ธ๋ฑ์ค ํญ๋ชฉ์ ์ ๋ ฌํค์ col3๊ฐ ์๋๊ณ , col2๊ฐ ์์ชฝ์ ์ค๋ ์์๋ก ์ ๋ ฌ๋ผ ์๊ธฐ ๋๋ฌธ์ด๋ค.
col1 | col2 | col3 |
---|---|---|
99 | abc | 1 |
99 | xyz | 1 |
100 | aaa | 1 |
100 | aaa | 2 |
100 | abc | 1 |
100 | abc | 2 |
100 | abc | 3 |
100 | abc | 4 |
100 | xyz | 1 |
101 | abc | 1 |
101 | abc | 2 |
WHERE col1 = 100 AND col2 = โabcโ ORDER BY col3๋ผ๋ ์กฐ๊ฑด์ ํด๋นํ๋ 4์ค์ด๋ค. ์ ๋ ฌ์ ์์๊ฐ ASC๋ผ๋ฉด ๋ค ๊ฐ์ ํ์ ์์์๋ถํฐ ์์๋๋ก, DESC๋ผ๋ฉด ์๋์์๋ถํฐ ์์๋๋ก ์ฝ์ผ๋ฉด ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
ํํธ WHERE col1 = 100 ORDER BY col3๋ผ๋ ์กฐ๊ฑด์ ํด๋นํ๋ ํ์ 7์ค์ด๋ค. ๊ทธ๋ฌ๋ ๊ทธ 7์ค์ ๋ํด col3์ ์์๋ก ์ ๋ ฌ๋ผ ์์ง ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ์์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ ์ ๋ ฌ๋์ง ์๋๋ค. ์ด๋ด ๋ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ค์์ ๋ค์ ์ ๋ ฌ์ ์ํํด์ผ ํ๋ค.
์ฟผ๋ฆฌ์ ์คํ์ ํ์ํ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ๋ชจ๋ ํฌํจ๋ผ ์๋ค๋ฉด ํ ์ด๋ธ ์์ฒด์ ์์ธ์คํ์ง ์๊ณ ์ธ๋ฑ์ค์๋ง ์์ธ์คํ๋ฉฐ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. โ ์ปค๋ฒ๋ง ์ธ๋ฑ์ค ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ฟผ๋ฆฌ(์ธ๋ฑ์ค ์จ๋ฆฌ ์ค์บ)๋ ๋งค์ฐ ๋น ๋ฅด๋ค.
โ ์ธ๋ฑ์ค์ ์ฌ์ด์ฆ๊ฐ ์ปค์ง ๊ฒ์ ๊ฐ์คํ๊ณ ์ผ๋ถ๋ฌ ์ฌ๋ถ์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค์ ๋ฃ์ด์ ์์ฃผ ์คํํ๋ ์ฟผ๋ฆฌ๊ฐ ์ธ๋ฑ์ค๋ง ๊ฒ์๋๊ฒ ํ๋ ๊ธฐ์ ์ด ์๋ค.
๋์คํฌ ๊ณต๊ฐ๊ณผ ๊ฐฑ์ ์ฑ๋ฅ์ ์กฐ๊ธ ๋จ์ด์ง์ง๋ง, ์ปค๋ฒ๋ง ์ธ๋ฑ์ค์ ํจ๊ณผ๋ ํฌ๋ค. ๋์ ๋น๋๋ก ์คํ๋๋ ์ฟผ๋ฆฌ๊ฐ ์๋ค๋ฉด ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํด๋ณด์.
๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ก ํจ๊ณผ๊ฐ ์๋ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒ์ ์กฐ๊ฑด์ด AND๋ก ๊ฒฐํฉํ ๊ฒฝ์ฐ๋ฟ์ด๋ค.
(col1, col2)์ด๋ผ๋ ์ธ๋ฑ์ค๋ col1 = val1 AND col2 = val2์ ๊ฐ์ด AND๋ก ์กฐ๊ฑด์ ๊ฒฐํฉํ์ ๋๋ง ํจ๊ณผ๊ฐ ์๋ค.
ํํธ col1 = val1 OR col2 = val2 ๋ฑ OR๋ก ๊ฒฐํฉํ์ ๋๋ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ก๋ ํด๊ฒฐํ ์ ์๋ค. OR์ ํด๊ฒฐํ ์ ์๋ ๊ฒ์ OR๋ก ๊ฒฐํฉํ ๊ฐ ์กฐ๊ฑด์ ์ธ๋ฑ์ค๊ฐ ์์ ๋๋ค.
col1 = val1 OR col2 = val2๋ผ๋ ๊ฒ์์กฐ๊ฑด์ (col1)๊ณผ (col2)๋ผ๋ ๋ ๊ฐ์ ์ธ๋ฑ์ค๊ฐ ์์ด์ผํ๋ค. ์ด ์คํ ๊ณํ์ ๊ฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๊ตฌํ ROWID์ ์งํฉ์ ๋ํด์ ํฉ์งํฉ(UNION)์ ์คํํด ์ต์ข ์ ์ผ๋ก ํ์ํ ํ์ด ์ด๋ ๊ฒ์ธ์ง ํ๋จํ๋ค.
โ ์ธ๋ฑ์ค ๋จธ์ง ๋ผ๊ณ ํ๋ค.
์ธ๋ฑ์ค ๋จธ์ง๊ฐ ๊ตฌํ๋ผ ์๋์ง๋ ์ ํ์ ๋ฌ๋ ค์๋ค. ์ฌ์ฉํ ์ ์๋ ์ ํ์ผ ๊ฒฝ์ฐ WHERE ์ ์ ๊ฒ์ ์กฐ๊ฑด์ OR๋ฅผ ์ฌ์ฉํด ๊ฒฐํฉํ๋ ๋์ UNION DISTINCT๋ฅผ ์ฌ์ฉํด ๋ ๊ฐ์ SELECT๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ํํ๋ฉด ์ข๋ค.
OR์ ๋ํด์ ์ธ๋ฑ์ค ๋จธ์ง๊ฐ ์ ์ฉํ ๋ AND์๋ ์์ฉ์ด ๋ ๊น?
col1 = val1 AND col2 = val2๋ผ๋ ๊ฒ์ ์กฐ๊ฑด์ ๋ํด (col1)๊ณผ (col2)๋ผ๋ ๋ ๊ฐ์ ์ธ๋ฑ์ค๊ฐ ์์ ๋ ์์ชฝ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ํด๊ฒฐํ ์ ์๋์ง๋ค. ๊ทธ๋ฌ๋ AND๋ฅผ ๋ ๊ฐ์ ์ธ๋ฑ์ค๋ก ํด๊ฒฐํ๋ ๊ฒ์ ํจ์จ์ ์ด์ง ์๋ค.
ํ์ชฝ์ ์ธ๋ฑ์ค, col1์ ์ฌ์ฉํด ํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌํ ๋ค์์ ํ ๋ฐ์ดํฐ์ ํฌํจ๋ ์ปฌ๋ผ์ ๊ฐ์ ๋ํด์ ๋ค๋ฅธ ๊ฒ์ ์กฐ๊ฑด์ธ (col2 = val2)๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ผ ๋๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ง๊ธ๊น์ง๋ ์ฃผ๋ก โ๊ฐ ์ธ๋ฑ์ค๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋ ๊น? ๋ผ๋ ์ ์ ์ค์ ์ผ๋ก ์ค๋ช ํ๋ค. ์ด ๋ค์์ ์ต์ ์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ฐ ํ์ํ ์ ๋ต์ ์๊ฐํ๋ค.
๋ฆด๋ ์ด์ ์ ํ๋ณดํค๋ง ์ธ๋ฑ์ค๊ฐ ๋๋ ๊ฒ์ ์๋๋ค. ๋๋ถ๋ถ ์ธ๋ฑ์ค๋ WHERE ์ ์ ๊ฒ์ ์กฐ๊ฑด๊ณผ ๊ฐ์ ์ ์ฝ์ ๋น ๋ฅด๊ฒ ์คํํ๋ ๋ฐ ํ์ ํ๋ค. ์ ์ฝ์ ๋ณด์กฐํค = ๊ธฐ๋ณธํค์ ๋ํ ๋ฑ๊ฐ๋น๊ต๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋๋ฉด ์ธ๋ฑ์ค์ ๊ตฌ์กฐ์ ๋ฒ์ ๊ฒ์์ด ๋๋ค. ์ด๊ฒ์ ์ธ๋ฑ์ค์ ๊ฐ์ด ์ค๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ธ๋ฑ์ฌ๋ฅด ์ ์ค๊ณํ๊ธฐ ์ํ ์ต๋์ ๋ชฉ์ ์
์ด๋ป๊ฒ ํ๋ฉด ๋ฒ์ ๊ฒ์์ ํ์ํ ์ธ๋ฑ์ค๋ฅผ ์ค๊ณํ๋๊ฐ
๋ฒ์ ๊ฒ์์ ์ํ ๋ณด์กฐ ์ธ๋ฑ์ค๊ฐ ์ ํ์ด๋ผ๋ฉด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ ์ฌ์ฉ(ํ๋ก์ ์ )์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ์ธ๋ฑ์ค์ ํฌํจ๋ ์ปฌ๋ผ์ ์ ์ ํ๊ฒ ์ค์ ํ๋ฉด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค์ ์ํด ์ ํ๊ณผ ์ฌ์์ ๋์์ ๋นจ๋ผ์ง๊ฒ ํ ์ ์๋ค.
B+ํธ๋ฆฌ ์ธ๋ฑ์ค๋ ์ปฌ๋ผ์ ์์๊ฐ ์ค์ํ์ง๋ง, ํํธ์ผ๋ก ๊ด๊ณํ ๋ชจ๋ธ์์ ํ๋ณดํค๋ ์ํผํค๋ ์งํฉ์ด๋ฏ๋ก ์์ ์ฌ์ด์ ์์๊ฐ ์๋ค.
โ ์ด๋ค ์์๋ก ์ปฌ๋ผ์ ์ ๋ ฌํ ๊ฒ์ธ์ง๊ฐ ์ค์ํ๋ค.
์ด๋ค ์์๋ก ์ปฌ๋ผ์ ์ ๋ ฌํด์ผ ํ ์ง๋ ์ฟผ๋ฆฌ์ ๋ฌ๋ ค์๋ค. ๋ฒ์ ๊ฒ์์ด๋ ์ ๋ ฌ์ด ์์ ๋๋ ๊ทธ๋ฌํ ๊ฒ์ ์กฐ๊ฑด์ด ์ ๋ฐฉ์ผ์น๊ฐ ๋๊ฒ ์ปฌ๋ผ์ ๋ฐฐ์นํด์ผ ํ๋ค. ๊ฐ์ ์ปฌ๋ผ์ผ๋ก ์กฐํฉํ ์ธ๋ฑ์ค๋ผ๋ ์์๊ฐ ๋ค๋ฅธ ๊ฒ์ด ํ์ํ ๋๋ ์๋ค.
์ ์ฒด์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค๋ฉด ๊ฐ์ ์ปฌ๋ผ์ ์กฐํฉ์ผ๋ก ์์๋ง ๋ค๋ฅธ ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํ๋ค.
์ด๋ค ์ปฌ๋ผ์ ์ธ๋ฑ์ค์ ํฌํจ์ํฌ ๊ฒ์ธ๊ฐ๋ฅผ ํ๋จํ๋ ๋ฐ ์์ด ํฌ์ธํธ๊ฐ ๋๋ ๊ฒ์ด ์นด๋๋๋ฆฌํฐ(์งํฉ์ ๋ฐ๋)์ด๋ค. ์นด๋๋๋ฆฌํฐ๋ ์งํฉ์ ํฌํจ๋ ์์์ ๊ฐ์๋ค. ์งํฉ์ ์์์์ด๋ฏ๋ก ์ค๋ณต์ ๋ฐฐ์ ๋๋ค.
์๋ฅผ ๋ค์ด WHERE ์ ์์ col1, col2, col3๋ผ๋ ์ธ ๊ฐ์ ์ปฌ๋ผ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ col1๊ณผ col2์ ์นด๋๋๋ฆฌํฐ๊ฐ ์ถฉ๋ถํ ๋๋ค๋ฉด col3์ ๊ตณ์ด ์ธ๋ฑ์ค์ ๋ฃ์ง ์์๋ ๋๋ค.
์ถฉ๋ถํ ๋น ๋ฅด๋ค๋ฉด ์ผ๋ถ๋ฌ ๋ชจ๋ ์ปฌ๋ผ์ ํฌํจํ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ํ์๋ ์๋ค.
์ฌ๋ฌ ๊ฐ์ง ๊ฒ์ ์กฐ๊ฑด์ ๋ํด ์ต๋๊ณต์ฝ์์ ๊ฐ์ด ์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ก ๋ง๋๋ ๊ธฐ์ ๋ ์ค์ํ๋ค.
SQL ๊ตฌ๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ณณ์ ๋ํด์๋ ๋ชจ๋ ์ธ๋ฑ์ค ์์ฑ์ ๊ฒํ ํ ํ์๊ฐ ์๋ค.
โ ์ฐ์ ํ์ํ ๊ฒ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์๋ผ ์ ์๋์ง๊ฐ ์ค์ํ ํฌ์ธํธ๊ฐ ๋๋ค.
๋ค์์ ํ์ํ ์ธ๋ฑ์ค๋ง ๋จ๊ธด๋ค. ์ธ๋ฑ์ค๊ฐ ๋์ด๋๋ฉด ๊ฐฑ์ ์ ์ค๋ฒํค๋๊ฐ ์ปค์ง๊ณ , ๋ง์์๋ก ์ข์ง ์๋ค.
โ ํ์ํ ์ธ๋ฑ์ค๋ฅผ ํ๋ณํ๋ ๊ฒ์ด ์ค์ํ๋ค.
์ด๋ค ์ปฌ๋ผ์ ์ธ๋ฑ์ค์ ํฌํจํด์ผ ํ๋์ง์ ๋ํ ํ๋จ์ ๊ฐ ์ปฌ๋ผ์ ์นด๋๋๋ฆฌํฐ, ํ ์ด๋ธ์ ์ฌ์ด์ฆ ๋๋ ์ฟผ๋ฆฌ์ ์คํ๋น๋ ๋ฑ์ ๊ฒํ ํด ์ค์ํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ค๊ณํ ๋์ ์ด๋ ค์ด ์ ์ ๋ฐ์ดํฐ์ ํ์ง(์ฌ์ด์ฆ๋ ์นด๋๋๋ฆฌํฐ)์ด๋ ์ฟผ๋ฆฌ์ ์คํ๋น๋์ ๋ฐ๋ผ ๊ฒฐ์ ์ด ์ข์ฐ๋๋ค๋ ์ ์ด๋ค. ํ ์ด๋ธ ์ค๊ณ, DB ์ค๊ณ ๋๋ ์ฟผ๋ฆฌ๋ง์ ๋ด์๋ ์ต์ ์ ์ธ๋ฑ์ค ์กฐํฉ์ด ์ด๋ค ๊ฒ์ธ์ง ํ๋จํ ์ ์๋ค.
๋ํ ํ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ๋นจ๋ผ๋ ๊ทธ ๋๋ฌธ์ ๊ฐฑ์ ์ด ๋ฆ์ด์ ธ ์ ์ฒด์ ์ผ๋ก ์ฑ๋ฅ์ด ์ ํ๋๋ค๋ฉด ์ฃผ๊ฐ์ด ์ ๋๋ ๊ผด์ด ๋๋ค. ์ธ๋ฑ์ค ํ๋์ ํ ๋ ์ ์ฒด์ ์ธ ์ฑ๋ฅ์ด ์ข์์ง๊ฒ ๊ท ํ์ ์ก์์ผ ํ๋ค.
๊ฐ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋ก๋ฐ๋ก ๋ด์๋ ์ ์ฒด์ ์ธ ์ฑ๋ฅ์ด ์ด๋ค์ง ํ๋จํ ์ ์๋ค.
โ ๋ฒค์น๋งํฌ๋ฅผ ์ฌ์ฉํ๋ค. ๋ฒค์น๋งํฌ๋ฅผ ์ํํด ์์ฉํ๋ก๊ทธ๋จ ์ ์ฒด์ ์ฑ๋ฅ์ด ๊ฐ์ ๋๋๋ก ๊ท ํ์ ์กฐ์ ํด์ผ ํ๋ค.
์ธ๋ฑ์ค์ ์ค๊ณ๋ ์กฐํฉ ์ต์ ํ์ ๋ฌธ์ ๋ผ๊ณ ํ ์ ์๋ค.
์ฌ๊ธฐ์ ์๊ฐํ ๊ธฐ๋ณธ์ ์ ๋๋ก ์ต๋ํ๊ณ ์ธ๋ฑ์ค๋ฅผ ์ค๊ณํด๋ณด์.
์ธ๋ฑ์ค ์ค๊ณ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๊ธฐ๋ฐ์ด ๋๋ DB์ ๋ ผ๋ฆฌ์ค๊ณ(DB์ค๊ณ์ ์ฟผ๋ฆฌ)๊ฐ ์ ๋๋ก ๋์ด ์์ด์ผ ํ๋ค.