SQL relation operations
๊ตฌ์กฐ์ ์ง์์ด(SQL) ์๋ฒฝ ๊ฐ์ด๋
์ถ์ ๋น๋: ์
๋น์ถ ํ๊ทธ: DDL, DML, DCL, ๊ด๊ณ ๋์, ๊ด๊ณ ํด์
SQL (Structured Query Language)
๊ธฐ๋ณธ ๊ฐ๋
- ์ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ดํ๋ ํ์ค ์ธ์ด (๊ด๊ณ๋์ ๊ธฐ์ด)
- ์๋ก์ด ํํ์ ๋ฆด๋ ์ด์ ์ ์ถ๋ ฅ
- ์์ฐ์ด์ ์ ์ฌํ ๊ตฌ์กฐ์ ๊ณ ๊ธ ์ธ์ด
- ์ ์, ์กฐ์, ์ ์ด ๊ธฐ๋ฅ์ด ๊ฐ๊ฐ DDL, DML, DCL๋ก ๊ตฌํ
๋ด์ฅ SQL
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํฌํจ๋ SQL (ํธ์คํธ ํ๋ก๊ทธ๋จ)
- ์ผ๋ฐ SQL์ ๋ค์ ํํ ๋ฐํ ๊ฐ๋ฅ, ๋ด์ฅ SQL์ ๋จ์ผ ํํ๋ง ๋ฐํ
- ๋ณ์-ํ๋ ์ด๋ฆ์ ๋ฌ๋ผ๋ ๋๋ ํ์ ์ ์ผ์น ํ์
SQL ๋ช ๋ น์ด ๋ถ๋ฅ
๋ฐ์ดํฐ ์ ์์ด (DDL: Data Definition Language)
- ์ฉ๋: ๋ฐ์ดํฐ ์กฐ์์ ์ํ ๊ณต๊ฐ(Database Object) ์ ์/์์ /๋ณ๊ฒฝ
- ์ฌ์ฉ์: DBA(Database Administration)
- ๋์: ์คํค๋ง, ๋๋ฉ์ธ, ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค ๋ฑ
โญ ์ฃผ์ ๋ช ๋ น์ด
CREATE
: DB๊ฐ์ฒด ์์ฑALTER
: DB๊ฐ์ฒด ์์ DROP
: DB๊ฐ์ฒด ์ ๊ฑฐTRUNCATE
: DB๊ฐ์ฒด ๋ฐ์ดํฐ ์ ์ฒด ์ญ์
๋ฐ์ดํฐ ์กฐ์์ด (DML: Data Markup Language)
- ๋ฐ์ดํฐ ๊ฒ์, ์ฝ์ , ๊ฐฑ์ , ์ญ์ ๊ธฐ๋ฅ
- TCL์ ํตํ ์คํ ์ ์ํ ๋ณต๊ตฌ ๊ฐ๋ฅ
โญ ์ฃผ์ ๋ช ๋ น์ด
INSERT
: ๋ฐ์ดํฐ ์ฝ์UPDATE
: ๋ฐ์ดํฐ ๊ฐฑ์DELETE
: ๋ฐ์ดํฐ ์ญ์ SELECT
: ๋ฐ์ดํฐ ์กฐํ
๋ฐ์ดํฐ ์ ์ด์ด (DCL: Data Control Language)
- ์ ๊ทผ ํต์ ์ ๋ณํ ์ํ(๊ณต์ )๋ฅผ ์ํ ์ ์ด ์ธ์ด
โญ ์ฃผ์ ๋ช ๋ น์ด
GRANT
: ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌREVOKE
: ์ฌ์ฉ์ ๊ถํ ํ์
ํธ๋์ญ์ ์ ์ด์ด (TCL: Transaction Control Language)
COMMIT
: ํธ๋์ญ์ ๊ฒฐ๊ณผ ๋ฐ์ROLLBACK
: ํธ๋์ญ์ ์์ ์ทจ์CHECKPOINT
: ํธ๋์ญ์ ๋ณต๊ท ์ง์ ์ค์
๊ด๊ณํด์ (Relation Calculus)
๊ธฐ๋ณธ ๊ฐ๋
- ์ ๋ณด๊ฐ ๋ฌด์(What)์ธ์ง ์ ์ํ๋ ๋น์ ์ฐจ์ ์ธ์ด
- ์ ์ด ํด์ ๊ธฐ๋ฐ (์คํ๊ฒฐ๊ณผ๊ฐ ์ฐธ/๊ฑฐ์ง์ผ๋ก ๋ํ๋จ)
- SQL๋ฌธ๊ณผ ๊ฐ์ ์ง์์ด ์ฌ์ฉ
- ํํ ๊ด๊ณ ํด์๊ณผ ๋๋ฉ์ธ ๊ด๊ณ ํด์์ผ๋ก ๊ตฌ์ฑ
๋ ผ๋ฆฌ ๊ธฐํธ
OR (โจ)
: ์์์ ๊ฐ์ โ๋๋โ ์ฐ๊ฒฐAND (โง)
: ์์์ ๊ฐ์ โ๊ทธ๋ฆฌ๊ณ โ ์ฐ๊ฒฐNOT (ยฌ)
: ์์์ ๋ถ์
์ ๋์
Universal Quantifier (โ)
: ๋ชจ๋ ๊ฒ์ ๋ํ์ฌ (for all)Existential Quantifier (โ)
: ์ด๋ ๊ฒ ํ๋๋ผ๋ ์กด์ฌ (there exists)
๊ด๊ณ๋์ (Relational Algebra) โญ๋น์ถโญ
๊ธฐ๋ณธ ๊ฐ๋
- ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ(How) ์ ๋ํ๋์ง ์ ์ํ๋ ์ ์ฐจ์ ์ธ์ด
- ์ฃผ์ด์ง ๋ฆด๋ ์ด์ ์ผ๋ก๋ถํฐ ์ํ๋ ๋ฆด๋ ์ด์ ์ ๋
์ฐ์ฐ์ ์ข ๋ฅ
- ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์: ํฉ์งํฉ(โช), ๊ต์งํฉ(โฉ), ์ฐจ์งํฉ(โ), ๊ต์ฐจ๊ณฑ(ร)
- ์์ ๊ด๊ณ ์ฐ์ฐ์: SELECT(ฯ), PROJECT(ฯ), JOIN(โจ), DIVISION(รท)
์งํฉ ์ฐ์ฐ
- ํฉ์งํฉ (Union)
R โช S = {e | e โ R โจ e โ S} = R UNION S
- ์ฐจ์์ ๋์ ์์ฑ์ ๋๋ฉ์ธ์ด ๋์ผํด์ผ ํจ
- ์ค๋ณต ์ ๊ฑฐํ์ฌ ํฉ์นจ
- ๊ต์งํฉ (Intersection)
R โฉ S = {e | e โ R โง e โ S} = R INTERSECT S
- ์ฐจ์์ ๋์ ์์ฑ์ ๋๋ฉ์ธ์ด ๋์ผํด์ผ ํจ
- ๋์ผ(์ค๋ณต) ํํ ์ถ์ถ
- ์ฐจ์งํฉ (Difference)
R - S = {e | e โ R โง e โ S} = R MINUS S
- ์ฐจ์์ ๋์ ์์ฑ์ ๋๋ฉ์ธ์ด ๋์ผํด์ผ ํจ
- ๊ฒฐ๊ณผ๋ ๋์ ๋ฆด๋ ์ด์ (R)์ ๋ถ๋ถ์งํฉ
- ๊ณฑ์งํฉ (Cartesian Product)
- ์์์ ์งํฉ ์์ฑ
- ์ฐจ์/๋๋ฉ์ธ์ด ๋ฌ๋ผ๋ ๊ฐ๋ฅ
- ๊ฒฐ๊ณผ: ๊ธฐ์๋ ๋ ๋ฆด๋ ์ด์ ์ ๊ณฑ, ์ฐจ์๋ ๋ ๋ฆด๋ ์ด์ ์ฐจ์์ ํฉ
- ์๊ธฐ๋ฒ: ์ด-์ฐจ (๋น)ํ-๊ธฐ
๊ด๊ณ ์ฐ์ฐ
- SELECT
- ์ํ์ (ํํ) ๋ถ๋ถ ์งํฉ ์ถ์ถ
- ํ๊ธฐ:
ฯ <์กฐ๊ฑด> (R)
- ์:
ฯ ๋์ฌํ์ > 7 (R)
- PROJECT
- ์์ง์ (์์ฑ) ๋ถ๋ถ ์งํฉ ์ถ์ถ
- ํ๊ธฐ:
ฯ <๋ฆฌ์คํธ> (R)
- ์:
ฯ ํ์๋ฒํธ, ์ด๋ฆ (R)
- JOIN
- ์กฐ๊ฑด์ ๋ง๋ ํํ์ ํฉ์ณ ์๋ก์ด ๋ฆด๋ ์ด์ ์์ฑ
- ๊ณตํต ์์ฑ ํ์
- ์ข
๋ฅ:
R โ ์์ฑ = ์์ฑ S
: ๋์ผ ์์ฑ ๊ธฐ์ค ์กฐ์ธ (์ค๋ณต ํฌํจ)R โ N S
: ๋์ผ ์์ฑ ๊ธฐ์ค ์กฐ์ธ (์ค๋ณต ์ ์ธ)R โ + S
: ์กฐ๊ฑด ๋ถ์ผ์น ํํ๋ ํฌํจ (NULL ์ฒ๋ฆฌ)R โ ฮธ S
: ๋ฑํธ ์ธ ์กฐ๊ฑด์ ๊ธฐ์ค ์กฐ์ธ
- DIVISION
R รท S
: S ์์ฑ๊ฐ ๊ธฐ์ค์ผ๋ก R์ ๋๋จธ์ง ์์ฑ ์ค S์ ๋ชจ๋ ๊ฐ ๋ง์กฑํ๋ ํํ ๋ฐํ
์ฟผ๋ฆฌ ์ต์ ํ ๊ท์น
์ฃผ์ ์์น
- ์ ๋์ ์ธ ์ต์ ํ ๊ท์น์ ์์
- Project(์์ง์ ) ์ฐ์ฐ์ ์ต๋ํ ์ผ์ฐ ์ํ
- Select(์ํ์ ) ์ฐ์ฐ๋ ๊ฐ๊ธ์ ์ผ์ฐ ์ํ
- Join ์ฐ์ฐ์ ์ฑ๋ฅ ์ํฅ์ด ํฌ๋ฏ๋ก ๋ง์ง๋ง์ ์ํ