-> ๋ฐ์ดํฐ ์ ์ฅ์, ์ค์ฌ์ DB
ํ๋ง๋๋ก ๋ฐ์ดํฐ์ ์งํฉ์ด๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ผ์์ํ ์ ๋ณด์ ๋๋ถ๋ถ์ด ์ ์ฅ๋๊ณ ๊ด๋ฆฌ๋๋ค.
- ํตํฉ ๋ฐ์ดํฐ : ์๋ฃ์ ์ค๋ณต์ ์ต์ํํ๊ณ ํต์ ๊ฐ ๊ฐ๋ฅํ ์ค๋ณต์ ํ์ฉํ๋ ๋ฐ์ดํฐ
- ์ ์ฅ ๋ฐ์ดํฐ : ์ปดํจํฐ๊ฐ ์ ๊ทผํ ์ ์๋ ๋งค์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํฐ
- ์ด์ ๋ฐ์ดํฐ : ์กฐ์ง์ ์ ๋ฌด๋ฅผ ์ํํ๋ ๊ฒ์ ์์ด์ ๊ผญ ํ์ํ๊ณ ์ง์์ ์ธ ์ ์ง๊ฐ ํ์ํ ๋ฐ์ดํฐ
- ๊ณต์ฉ ๋ฐ์ดํฐ : ์ฌ๋ฌ ์์ฉ ์์คํ ๋ค์ด ๊ณต๋์ผ๋ก ์์ ํ๊ณ ์ด์ฉํ๋ ๋ฐ์ดํฐ
- ๋์ ๊ณต์ : ์ฌ์ฉ์๋ค์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ณต์
- ๊ณ์์ ์ธ ๋ณํ : ์์ฑ, ์์ , ์ญ์ ๋ฅผ ํตํ์ฌ ํญ์ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ง
- ์ค์๊ฐ ์ ๊ทผ์ฑ : ์ฌ์ฉ์์ ์ง์์ ๋ํ ์ฆ๊ฐ์ ์ธ ์ฒ๋ฆฌ์ ์๋ต
- ๋ด์ฉ์ ์ํ ์ฐธ์กฐ : ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์๊ฐ ์๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ฐธ์กฐ
๐ ๋๊ณ์ค๋ด๋ก ์ธ์ฐ๊ธฐ !
- ์ ํ ๋ฐ์ดํฐ : ๋ฏธ๋ฆฌ ์ ํด์ง ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ ์ฅ๋ ๋ฐ์ดํฐ
excel์ ์คํ๋ ๋ ์ํธ, RDBMS์ ํ ์ด๋ธ
- ๋ฐ์ ํ ๋ฐ์ดํฐ : ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ ์ฅ๋ ๋ฐ์ดํฐ์ง๋ง ๋ฐ์ดํฐ ๋ด์ฉ ์์ ๊ตฌ์กฐ์ ๋ํ ์ค๋ช ์ด ์กด์ฌ
html, xml, json ๋ฌธ์๋ค, ์น ๋ก๊ทธ
- ๋น์ ํ ๋ฐ์ดํฐ : ์ ํด์ง ๊ตฌ์กฐ๊ฐ ์์ด ์ ์ฅ๋ ๋ฐ์ดํฐ
ํ ์คํธ, ์์, ์ด๋ฏธ์ง
-> ํฌ๊ฒ ๊ด๊ณํ(RDB), ๋น๊ด๊ณํ(NoSQL)์ผ๋ก ๋๋๋ค.
- ๋คํธ์ํฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ณ์ธตํ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ฑ์ฅ, ๊ณ์ธต๊ณผ๋ ๋ฌ๋ฆฌ, N:N(๋ค ๋ ๋ค)์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฌ๋ ๊ณ์ธตํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ์ด๋ ต๋ค.
- ๊ณ์ธตํ
๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๊ฐ ํธ๋ฆฌ ํํ์ ๊ตฌ์กฐ, ํธ๋ฆฌ๋ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ก ํํ๋๋ฉฐ 1๋N(์ผ ๋ ๋ค)์ผ๋ก ๊ตฌ์ฑ๋๋ค. ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํด ๊ตฌํ, ์์ , ๊ฒ์์ด ์ฝ์ง๋ง, N:N(๋ค ๋ ๋ค) ์ฒ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ์ด๋ ต๋ค.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ๋ฅ์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ํ(Row),์ด(Column)์ Table ํํ๋ก, ์ ํด์ง ๋ฐ์ดํฐ ์คํค๋ง์ ๋ฐ๋ผ ํ ์ด๋ธ์ ์ ์ฅํ๋ค. ๋ฐ์ดํฐ์ ์ข ์์ฑ์ ๊ด๊ณ๋ก ํํํ๋ค. ์ด๋ ๊ฒ ํํ๋ ๋ฐ์ดํฐ๋ฅผ SQL์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ์ ๊ทผ์ ํ๋ค.
๊ธฐ์กด์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ํ์ผ์ ์์ฑ,์ญ์ ,์์ ,๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด์ธ ํ์ผ์์คํ (Filt System) ์ ์ฌ์ฉํ์ง๋ง, ํ๋ก๊ทธ๋จ๋ง๋ค ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ ํ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ด์ฉ์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํ์ผ์ ์ค๋ณต ์ ์ฅ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด DBMS๋ผ๋ ์ํํธ์จ์ด๊ฐ ์ ์๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ๋ ๋ค๋ฅธ ๋ณ๋์ ๋ฏธ๋ค์จ์ด์ ์ํด ๊ด๋ฆฌ๋๋๋ฐ, ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ , DBMS(Database Management System) ์ด๋ผ๊ณ ํ๋ค. ์ฌ์ฉ์๋ค์ DMNS์ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ ์ : ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ญ์ ๋ฐ ๋ณ๊ฒฝ ๊ธฐ๋ฅ ์ํ
- ๋ฐ์ดํฐ ์กฐ์ : ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ์ํํธ์จ์ด๊ฐ ์์ฒญํ๋ ๋ฐ์ดํฐ์ ์ฝ์ , ์์ , ์ญ์ ์์ ์ง์
- ๋ฐ์ดํฐ ์ ์ด : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ๋ชจ๋ํฐ๋งํ๋ฉฐ ์ ๊ทผ์ ์ ์ด, ๋ฐฑ์ ๊ณผ ํ๋ณต, ๋์์ฑ ์ ์ด ๋ฑ์ ๊ธฐ๋ฅ ์ํ
- ๋ฐ์ดํฐ ์ถ์ถ : ์ฌ์ฉ์๊ฐ ์กฐํํ๋ ๋ฐ์ดํฐ ํน์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ
- MySQL
- MariaDB
- PostgreSQL
- Oracle
- SQL Server
- DB2
- Access
- SQLite
---
DBMS๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ์ธ์ด๊ฐ SQL์ด๋ค. SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ค.
SQL์ ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ์์ SQL์ ๋ํ ํ์ค์ ์ ํด๋๊ณ ์๋ค. ํ์ง๋ง DBMS๋ฅผ ๋ง๋๋ ํ์ฌ๋ ์ฌ๋ฌ ๊ณณ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ฌ๋ ํ์ค SQL์ ๋ฐ๋ฅด๋ฉด์ ์์ ๋ค์ ์ ํ์ ํน์ฑ์ ๋ฐ์ํ์ฌ SQL์ ์ฌ์ฉํ๋ค.
<์ถ์ฒ : ์ฐ์ฌ๋จ, ใํผ์ ๊ณต๋ถํ๋ SQLใ, ํ๋น๋ฏธ๋์ด(2021),p16 >SQL์ ๊ตฌ์กฐํ๋ ์ฟผ๋ฆฌ ์ธ์ด (Structured Query Language) ์ด๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐ ํ์ํ ์ฟผ๋ฆฌ ์ธ์ด์ด๋ค.
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง
- ์๊ฒฉํ ์คํค๋ง๋ฅผ ๋ฐ๋ผ ์ ์ฅ
- ๊ด๊ณ๋ฅผ ํตํด ๋ถ์ฐ๋ ํ ์ด๋ธ์ ์ ์ฅ
๋ฐ์ดํฐ์ ์ค๋ณต์ ํผํ๊ธฐ ์ํด, ๋ฐ์ดํฐ๋ค์ ์ฌ๋ฌ ํ ์ด๋ธ๋ก ๋๋์ด ์ ์ฅํ๋ค. ๋ฐ์ดํฐ ํ๋๋ ํ๋์ ํ ์ด๋ธ์์๋ง ๊ด๋ฆฌํ๋ค.
๐ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ค ๋๋, ๋์ ๋ถํ์ ๊ฐ๋ฅ์ฑ์ด ์์ ๋ SQL์ ์ฌ์ฉํฉ๋๋ค.
-> ์ฝ๊ฒ ๋งํด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ๋์ด๋ค. ๊ด๊ณ๋ ์๊ณ , ์คํค๋ง๋ ์๋ค. ํ ์ด๋ธ(Table)์ ์ปฌ๋ ์ (Collection)์ผ๋ก, ๋ ์ฝ๋(Record)๋ฅผ ๋ฌธ์(Document)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ผ๋ก ๋๋๋ค.
SQL์์๋ ์ ํด์ง ์คํค๋ง๋ฅผ ๋ฐ๋ฅด์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์์์ง๋ง, NoSQL์์๋ ๋ค๋ฅธ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ์ปฌ๋ ์ ์ ์ถ๊ฐํ ์ ์๋ค. sql์์๋ ์ฌ๋ฌ ํ ์ด๋ธ๋ก ๋๋์๋ ๊ฒ์ no sql์์๋ ํ๊บผ๋ฒ์ ์ ์ฅํ๋ค. ๋ฐ๋ผ์ ์กฐ์ธ ์์ด ๋ชจ๋ ๊ฒ์ ๊ฐ์ถ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์๋ค.
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง
- ์ ์ฐ์ฑ - ์คํค๋ง ์ ์ธ ์์ด ํ๋์ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ฐ ์์ ๋ก์ด schema-less ๊ตฌ์กฐ
- ํ์ฅ์ฑ - ์๋ฒ ํ์ฅ์ด ์ฉ์ด
- ๊ณ ์ฑ๋ฅ - ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๊ฐ์ฉ์ฑ - ์ฌ๋ฌ๋์ ๋ฐฑ์ ์๋ฒ ๊ตฌ์ฑ์ด ๊ฐ๋ฅ, ๋ฌด์ค๋จ ์๋น์ค ๊ฐ๋ฅ
๐ ์ฒ์์ ์คํค๋ง๋ฅผ ์ ์ํ๊ธฐ ํ๋ค ๋, ๋ฐ์ดํฐ๊ฐ ์์ฒญ๋๊ฒ ๋ง์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ์ค์ํ์ง ์์ ๊ฒฝ์ฐ์ NoSQL์ ์ฌ์ฉํฉ๋๋ค.
- DML(Data Manipulation Language) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์ ํ๋ ๋ฑ์ ๊ธฐ๋ณธ์ ์ธ ์กฐ์์ ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด
CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME
- DDL(Data Definition Language) : ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ๋ช ๋ น์ด๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ญ์ ํ๋ ๋ช ๋ น์ด
SELECT, INSERT, UPDATE, DELETE, MERGE, CALL
- DCL(Data Control Language) : ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ๋ ๋ช ๋ น์ด๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๊ด๋ฆฌํ๋ ๋ช ๋ น์ด
GRANT, REVOKE
- TCL(Transaction Control Language) : ํธ๋์ญ์ ์ ๋ค๋ฃจ๋ ๋ช ๋ น์ด๋ก DML๋ก ์คํํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ
COMMIT, ROLLBACK, SAVEPOINT
SHOW DATABASES; -- ์๋ฒ์ ์๋ DB๋ฅผ ๋ณด์ฌ์ค
USE databaseName; -- ์ฌ์ฉํ DB ์ง์
SHOW TABLE; -- ํ์ฌ USEํ๊ณ ์๋ DB์ ํ
์ด๋ธ ๋ณด์ฌ์ค
SHOW TABLE STATUS -- DB์ ํ
์ด๋ธ ์ ๋ณด ์กฐํ
DESCRIBE tablename; -- ํ
์ด๋ธ์์ ๊ฐ ์ด์ ๋ํ ์ ๋ณด ์กฐํ
DESC tablename; -- ์์ ๊ฐ์(ํ
์ด๋ธ์์ ๊ฐ ์ด์ ๋ํ ์ ๋ณด ์กฐํ)
SELECT * FROM tablename; -- ํ
์ด๋ธ ์ ์ฒด ์กฐํ
SELECT table1, table2 FROM tablename; -- ํ
์ด๋ธ์ ์๋ ์ด1,์ด2 ์กฐํ
SELECT * FROM tablename WHERE fieldname = '๋ด์ฉ'; -- ํด๋น ํ๋์์ ๊ฐ์ด ๋ด์ฉ์ธ ๋ ์ฝ๋ ์กฐํ
SELECT * FROM tablename WHERE fieldname LIKE '%๋ฌธ์์ด%'; -- ๋ฌธ์์ด ํฌํจ๋ ๋ ์ฝ๋ ์กฐํ
SELECT DISTINCT fieldname FROM tablename; // ํด๋น ํ๋ ๊ธฐ์ค์ผ๋ก ์ค๋ณต๋ ๋ ์ฝ๋์ ๊ฑฐ
CREATE databasename; -- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
DROP DATABASES databasename; -- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์
DROP TABLE tablename; -- ํ
์ด๋ธ ์ญ์
CREATE TABLE tablename(
ํ๋๋ช
๋ฐ์ดํฐํ์
(๋ณด์ด๋ ์๋ฆฌ์) ์กฐ๊ฑด;
ํ๋๋ช
๋ฐ์ดํฐํ์
์กฐ๊ฑด;
PRIMARY KEY(key๋ก ์ ํ ํ๋๋ช
)
)
INSERT INTO tablename VALUES(1,2,3,4,5,,);
INSERT INTO tablename (field1, field2) VALUES (fieldvalue1, fieldvalue2); -- ํ
์ด๋ธ์ ์ ๋ ์ฝ๋ ์ถ๊ฐ
UPDATE tablename SET fieldname1 = fieldvalue1 WHERE ์กฐ๊ฑด; -- ํ
์ด๋ธ์์ ์กฐ๊ฑด์ ํด๋นํ๋ ๋ ์ฝ๋ ์์
DELETE FROM tablename WHERE ์กฐ๊ฑด; -- ํ
์ด๋ธ์์ ์กฐ๊ฑด์ ํด๋นํ๋ ๋ ์ฝ๋ ์ญ์