01-1. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋
๋ฐ์ดํฐ๋ฒ ์ด์ค๋
- ๋ ผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ์ผ์ ํ ํํ๋ก ์ ์ฅํด ๋์ ๊ฒ. ์ฆ, ์ฌ๋ฌ ์์คํ ๋๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ณต์ ํ๊ณ ์ฌ์ฉํ๊ธฐ ์ํด ํตํฉ ์ ์ฅํ ๋ฐ์ดํฐ์ ์งํฉ.
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ์ด์
- ๋ฐ์ดํฐ ์ค๋ณต์ ์ต์ํํด์ ์กฐ์ง์ ๋ชฉ์ ์ ๋ง๊ฒ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํจ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ISOS์ R1C3์ผ๋ก ์ ๋ฆฌํ๋ค.


๋ฐ์ดํฐ๋ฒ ์ด์ค๋ DBMS๋ก ๊ด๋ฆฌํ๋ค
DBMS: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ → ๋ฐ์ดํฐ์ ์ ๋ ฅ, ์์ , ์ญ์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ณ๋์ ์ํํธ์จ์ด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB): ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ํต
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS): ์ด ํต์ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด
01-2. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ๋ฅ
๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ชจ์ ์์ ๊ด๊ณ๋ฅผ ์ด๋ฃจ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ถ๋ชจ ๋ ์ฝ๋๊ฐ ์ฌ๋ฌ ์์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ง๋ค.

๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ๋ฐ์ดํฐ๋ ์ํ ์ข ์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง๋ฏ๋ก ์ด๊ธฐ์ ์ด ๋ฐฉ์์ ์ฑํํ๋ฉด ์ดํ ํ๋ก์ธ์ค ๋ณ๊ฒฝ์ด ์ด๋ ค์ ํ์ฌ๋ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋๋ค.
๋คํธ์ํฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋คํธ์ํฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ ธ๋๋ก ํํํ ๋ชจ๋ธ์ด๋ค. ๋ ธ๋๋ ๋คํธ์ํฌ์์ ์์ผ๋ฉฐ ์๋ก ๋๋ฑํ ๊ด๊ณ๋ค. ๋คํธ์ํฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋จ์ ์ธ ๋ฐ์ดํฐ ์ค๋ณต ๋ฌธ์ , ์ํ ์ข ์ ๊ด๊ณ๋ฅผ ํด๊ฒฐํ๋ค.

๋คํธ์ํฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ ์ฝ๋ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ผ๋๋ค ๋๋ ๋ค๋๋ค๋ก ํํํ ์ ์์ง๋ง ์ข ์์ฑ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ธฐ ์ฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๋ค.
ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ NoSQL์ ํ ์ข ๋ฅ๋ก ํค-๊ฐ์ ์ผ๋์ผ ๋์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ๋ฉฐ ๋น์ ํ ๋ฐ์ดํฐ ์ ์ฅ์ ์ ๋ฆฌํ๋ค.
- ๋น์ ํ ๋ฐ์ดํฐ๋ ์ฝ๊ฒ ๋งํด ํ์์ด ์๋ ๋ฐ์ดํฐ์ด๋ค. ํํ ํ ์คํธ, ์์ฑ, ์์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋น์ ํ ๋ฐ์ดํฐ ๋ฒ์์ ์ํ๋ค. ๋ฐ๋๋ก ์ ํ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํด์ง ๊ท์น์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ, ๊ฐ ๋ฐ์ดํฐ๋ ์ด ์ด๋ฆ์ผ๋ก ์๋ฏธ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค.
- NoSQL์ด๋ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋ฆฌํฌ ๋ ์ฌ์ฉํ๋ค. ๊ธฐ์กด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ๋ํ๋จผํธ, ๊ทธ๋ํ, ํค-๊ฐ, ๊ฒ์ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.


ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง์ ์คํค๋ง ์์ด ์๋ํ๋ค๋ ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํ ํ์๊ฐ ์์ผ๋ฉฐ ์๊ฐ์ด ์ง๋๋๋ผ๋ ์ธ์ ๋ ์ง ๋ฐ๊ฟ ์ ์์ผ๋ฏ๋ก ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ์ฅํ ์ ์๋ค.
- ์คํค๋ง๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ์ฌ ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ์ ๋งํ๋ค. ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ์๋ฃ ๊ฐ์ฒด์ ์ฑ์ง, ๊ด๊ณ, ์กฐ์, ์๋ฃ๊ฐ ๋ฑ์ ์ ์๋ฅผ ์ด์นญํ ๊ฒ์ด๋ค.
ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ NoSQL์ ํ ์ข ๋ฅ์ด๋ค. NoSQL์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ณ ๋์ด๊ฐ์.

๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ์ ํ๋์ด๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํ๋ค.

- ์ด: ๊ฐ ์ด์ ๊ณ ์ ํ ์ด๋ฆ์ ๊ฐ์ง๋ฉฐ ์์ ๋ง์ ํ์ ์ ๊ฐ์ง๋ค. ์ด์ ํ๋(field) ๋๋ ์ ํธ๋ฆฌ๋ทฐํธ(attribue)๋ผ๊ณ ๋ ํ๋ค.
- ํ: ๊ด๊ณ๋ ๋ฐ์ดํฐ์ ๋ฌถ์์ ์๋ฏธํ๋ฉฐ ํ ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ๊ฐ์ ์์ ์ด์ ๊ฐ์ง๋ค. ํ์ ํํ(tuple) ๋๋ ๋ ์ฝ๋(record)๋ผ๊ณ ๋ ํ๋ค.
- ํ ์ด๋ธ: ํ๊ณผ ์ด ๊ฐ๋ค์ ๋ชจ์์ ๋ํ๋ด๋ฉฐ, ๋๋ฉ์ธ ํน์ฑ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ทธ๋ฃนํํด ๋์ ๊ฒ์ด๋ค.
ERD๋ก ์ดํดํ๋ ํ ์ด๋ธ ๊ด๊ณ
- ํ
์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ๊ทธ๋ฆผ์ ERD๋ผ๊ณ ํ๋ค.
- ๋ ผ๋ฆฌ ๋ชจ๋ธ: ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฒซ ๋จ๊ณ๋ก ๊ณ ๊ฐ์ ์๊ตฌ ์ฌํญ์ ์์ง, ๋ถ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด ๋ชจ์์ ๊ตฌ์ฑํ๋ ๊ฒ
- ๋ฌผ๋ฆฌ ๋ชจ๋ธ: ๋ ผ๋ฆฌ ๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ชจ๋ธ์ ํํํ ๊ฒ

01-3. SQL์ด๋ ๋ฌด์์ธ๊ฐ
SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. 1970๋ ๋์ IBM์์ ์ต์ด ๊ฐ๋ฐํ์ผ๋ฉฐ ๊ด๊ณํ ๋ชจ๋ธ์ด๋ผ๋ ์ด๋ก ์์ ํ์ํ๋ค.
DBMS ์ข ๋ฅ์ ๋ฐ๋ฅธ SQL ์ข ๋ฅ
SQL์ ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ์์ ํ์คํํ ๋ฌธ๋ฒ์ ANSI SQL์ด๋ผ๊ณ ๋ฐํํ๋ค. ํ์ง๋ง SQL์ ANSI SQL๋ง ์๋ ๊ฒ์ด ์๋๋ฉฐ DBMS ๊ฐ๋ฐ์ฌ๋ง๋ค ๊ฐ๋ฐํ ๊ณ ์ SQL๋ ์๋ค. ๋ฌผ๋ก ๊ทธ SQL์ ๊ฐ๋ฆฌํค๋ ๋ช ์นญ ๋ํ ๋ค๋ฅด๋ค. ์ ๋ช ํ DBMS์ ํด๋น DBMS์์ ์ด๋ฆ ๋ถ์ธ SQL์ ๋ค์๊ณผ ๊ฐ๋ค.
- SQL Server: Transact-SQL(T-SQL)
- Oracle: PL/SQL
- MySQL: SQL
- ๊ตญ์ ํ์ค: ANSI SQL
DBMS ๊ฐ๋ฐ์ฌ๋ ANSI SQL์ ๋ฐ๋ฆ๋ ์๋ ์ ํ์ ํนํํ ๋ฌธ๋ฒ์ด๋ ๋ช ์ธ๋ฅผ ์ถ๊ฐํ SQL์ ์ฌ์ฉํ๋ค.
SQL ๋ฌธ๋ฒ ์ข ๋ฅ
๋ฐ์ดํฐ ์ ์ ์ธ์ด(DDL)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๋ ์ธ์ด์ด๋ค. ๋ฐ์ดํฐ ์ ์ ์ธ์ด๋ ํ
์ด๋ธ ์คํค๋ง๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ฉฐ, ๋ค์ ํญ๋ชฉ์ ํฌํจํ๋ค.
- CREATE
- ALTER
- DROP
- TRUNCATE
๋ฐ์ดํฐ ์กฐ์ ์ธ์ด(DML)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์
๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์
๋ ฅ, ์์ , ์ญ์ ํ๋ฉฐ, ๋ค์ ํญ๋ชฉ์ ํฌํจํ๋ค.
- SELECT
- INSERT
- UPDATE
- DELETE
๋ฐ์ดํฐ ์ ์ด ์ธ์ด(DCL)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ฑฐ๋ ๊ฐ์ฒด์ ๊ถํ์ ๋ถ์ฌํ๋ ๋ฑ์ ์ญํ ์ ํ๋ฉฐ, ๋ค์ ํญ๋ชฉ์ ํฌํจํ๋ค.
- GRANT
- REVOKE
- COMMIT
- ROLLBACK