[SQLD] SQL - Structured Query Language
โด๏ธ SQL
: SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์, ๋ฐ์ดํฐ ์กฐ์, ๋ฐ์ดํฐ ์ ์ด ๋ฑ์ ํ ์ ์๋ ์ ์ฐจํ ์ธ์ด
: ๊ด๊ณํ DB๋ DB๋ฅผ ์ฐ๊ฒฐํ๊ณ SQL๋ฌธ์ ์ฌ์ฉํ์ฌ DB๋ฅผ ๋๊ตฌ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํจ
: SQL์ ANSI/ISO ํ์ค์ ์ค์ํ๊ธฐ ๋๋ฌธ์ DBMS๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โด๏ธ SQL ์ข ๋ฅ
SQL ์ข ๋ฅ | |
DDL (Data Definition Language) | ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด CREATE, ALTER, DROP, RENAME |
DML (DataManipulation Language) | ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ, ์์ , ์ญ์ , ์กฐํ INSERT, UPDATE, DELETE, SELECT |
DCL (Data Control Language) | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํ์ GRANT, REVOKE, TRUNCATE |
TCL (Transaction Control Language) | ํธ๋์ ์
์ ์ ์ดํ๋ ๋ช
๋ น์ด COMMIT, ROLLBACK, SAVEPOINT |
• DDL : DB ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝ, ์ญ์ ํ๋ ๊ฒ
• DML : ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ DDL๋ก ์ ์๋๋ฉด ํด๋น ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ ์ ์๋ ์ธ์ด
• DCL : DDL๋ก ์ ์๋ ๊ตฌ์กฐ์ ์ด๋ค ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋์ง ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ
// ์์
์ ์์
1. DB์ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌ
2. ๊ถํ์ด ๋ถ์ฌ๋๋ฉด DDL๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์
3. ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ ์๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ
4. ๊ฐ๋ฐ์ ๋ฐ ์ฌ์ฉ์๊ฐ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์กฐํ
โด๏ธ ํธ๋์ ์ (Transaction)
: DB์ ์์ ์ ์ฒ๋ฆฌํ๋ ๋จ์
: DB์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ์๋ฏธ
ํน์ฑ | |
์์์ฑ (Atomicity) | ํธ๋์ ์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ์ฐ์ ์ ๋ถ๊ฐ ์คํ๋๊ฑฐ๋ ์ ํ ์คํ๋์ง ์์์ผํจ (All or Nothing) ์ฒ๋ฆฌ๊ฐ ์์ ํ ๋๋์ง ์์์ ๊ฒฝ์ฐ๋ ์คํ๋์ง ์์ ์ํ์ ๊ฐ์์ผ ํจ |
์ผ๊ด์ฑ (Consistency) | ์คํ ๊ฒฐ๊ณผ๋ก DB์ ์ํ๊ฐ ๋ชจ์๋์ง ์์์ผ ํจ ์คํ ํ์๋ ์ผ๊ด์ฑ์ด ์ ์ง๋์ด์ผ ํจ |
๊ณ ๋ฆฝ์ฑ (Isolation) == ๋ ๋ฆฝ์ฑ, ๊ฒฉ๋ฆฌ์ฑ |
์คํ ์ค์ ์์ฑํ๋ ์ฐ์ฐ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ ๋ค๋ฅธ ํธ๋์ ์
์ด ์ ๊ทผํ ์ ์์ ๋ถ๋ถ์ ์ธ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํธ๋์ ์ ์ด ๋ณผ ์ ์์ |
์์์ฑ (Durability) == ์ง์์ฑ |
์คํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ๋ณด์ฅ์ด ๋์ด์ผํจ |
โด๏ธ SQL๋ฌธ์ ์คํ ์์
: ๊ฐ๋ฐ์๊ฐ ์์ฑํ SQL๋ฌธ์ 3๋จ๊ณ๋ฅผ ๊ฑธ์ณ์ ์คํ
: SQL๋ฌธ์ ๋ฌธ๋ฒ์ ๊ฒ์ฌํ๊ณ ๊ตฌ๋ฌธ ๋ถ์
: ๊ตฌ๋ฌธ ๋ถ์ ์ดํ์ SQL์ ์คํ, ์คํ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ฒ ๋จ
SQL ์คํ ์์ | |
ํ์ฑ (Parsing) | SQL๋ฌธ์ ๋ฌธ๋ฒ์ ํ์ธํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ ๊ตฌ๋ฌธ ๋ถ์ํ SQL๋ฌธ์ Library Cache์ ์ ์ฅ |
์คํ (Execution) | Optimizer๊ฐ ์๋ฆฝํ ์คํ ๊ณํ์ ๋ฐ๋ผ SQL์ ์คํ |
์ธ์ถ (Fetch) | ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์ ์ก ํ ์ด๋ธ์์ ๋ ์ฝ๋ ํ๋ํ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ |
์ธ์ถ์ Fetch๋ ๊ฒ์์ Patch์ ๋ค๋ฆ → ๊ฒ์์ Patch๋ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ ๊ฒ!