๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ์ผ๋ก, ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ฌ๋์ด ๊ณต์ ํ์ฌ ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ์ฒด๊ณํํด ํตํฉ, ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ์งํฉ
์ฆ, ์์ฑ๋ ๋ชฉ๋ก์ผ๋ก์จ ์ฌ๋ฌ ์์ฉ ์์คํ
๋ค์ ํตํฉ๋ ์ ๋ณด๋ค์ ์ ์ฅํ์ฌ ์ด์ํ ์ ์๋ ๊ณต์ฉ ๋ฐ์ดํฐ๋ค์ ๋ฌถ์์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ณ ์๋ฃ๋ฅผ ๊ตฌ์กฐํํ์ฌ ํจ์จ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๊ด๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ ๋ฌด์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์ปดํจํฐ ์ธ์ด๋ก ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ฉฐ ์ฑ์ด๋ ์น์ ํตํด ๊ณต์ ๊ฐ ๊ฐ๋ฅํ์ฌ ์ ์ธ๊ณ ๋๊ตฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ํธ์ง์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ๋ ๋ค๋ฅธ ๋ณ๋์ ๋ฏธ๋ค์จ์ด์ ์ํด ๊ด๋ฆฌ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ด๋ฌํ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(DBMS: Database Management System)์ด๋ผ๊ณ ํ๋ค.
- ์ฌ์ฉ์์ ์ง์์ ๋ํ์ฌ ์ฆ๊ฐ์ ์ธ ์ฒ๋ฆฌ์ ์๋ต์ด ์ด๋ฃจ์ด์ง๋ค.
- ์์ฑ(create), ์ฝ์ (insert), ๊ฐฑ์ (update), ์ญ์ (delete)๋ฅผ ํตํ์ฌ ํญ์ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ค.
- ์ฌ์ฉ์๋ค์ด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ณต์ ํ ์ ์๋ค.
- ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์๊ฐ ์๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ฐธ์กฐํ ์ ์๋ค.
- ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ ๋ฆฝ๋์ด ์์ผ๋ฏ๋ก, ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฐ๋ก ๋์๋๋ค.
ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ DB์ ํ ์ข ๋ฅ
- ํ ์ด๋ธ(Table)๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ด ํ ์ด๋ธ์ ํค(key)์ ๊ฐ(Value)์ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.
- ์ด์ฒ๋ผ ๋ฐ์ดํฐ์ ์ข ์์ฑ์ ๊ด๊ณ(relationship)๋ก ํํํ ๊ฒ์ด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง์ด๋ค.
- ํ ์ด๋ธ์ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ํ๊ณผ ์ด์ ๋์ํ๋ ๊ฐ(value)์ ๊ฐ์ง๋ค.
- ๊ด๊ณํ db๋ ์์ ๊ฐ์ด ๊ตฌ์ฑ๋ ํ ์ด๋ธ์ด ๋ค๋ฅธ ํ ์ด๋ธ๋ค๊ณผ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ๋ชจ์ฌ์๋ ์งํฉ์ฒด๋ก ์ดํดํ ์ ์๋ค.
ํ (row)
= ๋ ์ฝ๋ (record)
= ํํ (tuple)
* ํ์ ์ = ์นด๋๋๋ฆฌํฐ (cardinality) = ๊ธฐ์ = ๋์์
์ด (column)
= ์์ฑ (attribute)
= ํ๋ (field)
* ์ด์ ์ = ๋๊ทธ๋ฆฌ (degree) = ์ฐจ์
- ๋ฐ์ดํฐ์ ๋ถ๋ฅ, ์ ๋ ฌ, ํ์ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์ค๋ซ๋์ ์ฌ์ฉ๋ ๋งํผ ์ ๋ขฐ์ฑ์ด ๋๊ณ , ์ด๋ค ์ํฉ์์๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํด์ค๋ค.
- ๊ธฐ์กด์ ์์ฑ๋ ์คํค๋ง๋ฅผ ์์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
- db์ ๋ถํ๋ฅผ ๋ถ์ํ๋ ๊ฒ์ด ์ด๋ ต๋ค.
โ๏ธ SQL : MySQL
, SQLite
, PostgroSQL
, Oracle
etc.
โ๏ธ NON-SQL : mongoDB
, DynamoDB
, CouchDB
etc.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํํ๊ธฐ ์ํด ํน๋ณํ ๋์์ธ ๋ ์ธ์ด์ด๋ค.
db์์ ๋ฐ์ดํฐ๋ฅผ ์ ์, ์กฐ์, ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ SQL ๊ตฌ๋ฌธ๋ ๋ชฉ์ ์ ๋ง๊ฒ ํฌ๊ฒ 4๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋ค.
์์ฑ | ์ค๋ช | ์ฃผ์ ๋ช ๋ น์ด |
---|---|---|
๋ฐ์ดํฐ ์ ์์ด DDL: Data Definition Language | ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ์ด๋ธ ๋ฑ์ ์์ฑ, ์ญ์ ํ๊ฑฐ๋ ๊ทธ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํ ๋ช ๋ น์ด | CREATE, ALTER, DROP, TRUNCATE ๋ฑ |
๋ฐ์ดํฐ ์กฐ์์ด DML: Data Manipulation Language | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์กฐํ, ๊ฒ์, ์์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด | SELECT, INSERT, UPDATE, DELETE ๋ฑ |
๋ฐ์ดํฐ ์ ์ด์ด DCL: Data Control Language | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ์ฌ ๋ฐ์ดํฐ์ ๋ณด์์ฑ ๋ฐ ๋ฌด๊ฒฐ์ฑ ๋ฑ์ ์ ์ดํ๊ธฐ ์ํ ๋ช ๋ น์ด | GRANT, REVOKE ๋ฑ |
ํธ๋์ญ์
์ ์ด์ด TCL: Transaction Control Language | ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์๋ฅผ ๋ฌถ์ด์ DML์ ์ํด ์กฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ์์ ๋จ์(ํธ๋์ญ์ ) ๋ณ๋ก ์ ์ดํ๋ ๋ช ๋ น์ด | COMMIT, ROLLBACK, SAVEPOINT ๋ฑ |
MySQL
๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(RDBMS: Relational DBMS)์ด๋ค.
MySQL์ ์คํ์์ค์ด๋ฉฐ, ๋ค์ค ์ฌ์ฉ์์ ๋ค์ค ์ค๋ ๋๋ฅผ ์ง์ํ๋ค.
๋ํ, C์ธ์ด, C++, JAVA, PHP ๋ฑ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ํ ๋ค์ํ API๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
MySQL์ ์ ๋์ค, ๋ฆฌ๋ ์ค, ์๋์ฐ ๋ฑ ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํนํ PHP์ ํจ๊ป ์น ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋๋ค.
MySQL์ ์ฅ์
- ์คํ ์์ค ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค.
- ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ค.
- ํฌ๊ธฐ๊ฐ ํฐ ๋ฐ์ดํฐ ์งํฉ๋ ์์ฃผ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ๋๋ฆฌ ์๋ ค์ง ํ์ค SQL ํ์์ ์ฌ์ฉํ๋ค.
- MySQL ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์์ ์ฉ๋์ ๋ง๊ฒ ์์ ํ ์ ์๋ค.
Reference
์ถ์ฒ
์ฐธ๊ณ ํ ๊นํ๋ธ