๐ Database๋?
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ๊ตฌ์กฐ๋ก ์ ์ฅํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ค์์ ์ฌ์ฉ์๊ฐ ๋์์ ์ ๊ทผํ๊ณ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ถ๊ฐ, ์์ , ์ญ์ , ๊ฒ์ํ ์ ์๋๋ก ์ค๊ณ๋ ์์คํ ์ด๋ค. ์ด๋ฅผ ํตํด ์กฐ์ง์ด๋ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ์ค๋ณต์ฑ์ ์ต์ํํ๋ฉฐ, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๋ค. ํนํ ๋๊ท๋ชจ ์์คํ ์์๋ ๋น ๋ฅธ ๊ฒ์, ์ ํํ ๋ฐ์ดํฐ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์์์ ์์ ์ฑ ํ๋ณด๊ฐ ํ์์ ์ด๋ค.
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํน์ง
- ์ค์๊ฐ ์ ๊ทผ์ฑ (Real-Time Accessibility / ์ฌ์ฉ์์ ์ง์์ ๋ํด ์ฆ๊ฐ์ ์ธ ์๋ต ์ ๊ณต)
- ๊ณ์์ ์ธ ๋ณํ (Continuous Evolution / ๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ , ๊ฐฑ์ ์ ํตํด ์ต์ ์ํ๋ฅผ ์ ์ง)
- ๋์ ๊ณต์ฉ (Concurrent Sharing / ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐ์ดํฐ ํ์ฉ ๊ฐ๋ฅ)
- ๋ด์ฉ ๊ธฐ๋ฐ ์ฐธ์กฐ (Content Reference / ๋ฐ์ดํฐ์ ์์น๊ฐ ์๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ ๊ทผ์ด ๊ฐ๋ฅ)
+ ์ถ๊ฐ ์ง์
๋ฐ์ดํฐ
~> ๋ฐ์ดํฐ๋ ๊ฐ๊ณต๋์ง ์์ ์ฌ์ค์ด๋ ๊ฐ์ ์งํฉ
~> ๊ทธ ์์ฒด๋ก๋ ์๋ฏธ๊ฐ ์๋ ์ซ์, ๋ฌธ์, ๊ธฐํธ ๋ฑ์ ๋ชจ์
~> ๋ฌธ๋งฅ์ด๋ ํด์ ์์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๊ธฐ๋ก์ ๋ถ๊ณผ
์ ๋ณด
~> ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณต, ํด์, ์ ๋ฆฌํด์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ๊ฒ
~> ๋ฐ์ดํฐ์ ๋งฅ๋ฝ๊ณผ ์๋ฏธ๊ฐ ๋ํด์ ธ์ ์์ฌ๊ฒฐ์ ์ ์ ์ฉํ ํํ๋ก ๋ณํ
~> ์ ๋ณด๋ ํด์๊ณผ ๋ถ์์ ํตํด ๋์ถ
๐ DBMS(Database Management System)๋?
DBMS๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ์ํํธ์จ์ด๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ณ , ์ ์งํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ฒ์, ์์ , ์ญ์ ํ ์ ์๋๋ก ์ง์ํ๋ค. ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ, ์ผ๊ด์ฑ, ๋ณด์์ฑ, ๋์์ฑ ๋ฑ์ ๋ณด์ฅํ๋ฉด์ ๋ค์ํ ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ๋๋ ์์คํ ์ด๋ค.
โ DBMS์ ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ (๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌ / ํ ์ด๋ธ, ํ, ์ด ๋ฑ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์)
- ๋ฐ์ดํฐ ์กฐ์ ๊ธฐ๋ฅ (C(Create)R(Read)U(Update)D(Delete) ์ฐ์ฐ / SQL ๋ช ๋ น์ด๋ก ๋ฐ์ดํฐ ์ฒ๋ฆฌ)
- ๋ฐ์ดํฐ ๋ณด์ ๋ฐ ์ ๊ทผ ์ ์ด (์ฝ๊ธฐ ์ ์ฉ, ์ฐ๊ธฐ ๊ถํ ๋ฑ ์ฌ์ฉ์ ๊ถํ ์ค์ / ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ๋ก ๊ด๋ฆฌ)
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง (๋ฐ์ดํฐ ์ค๋ณต ๋ฐฉ์ง, ์ธ๋ ํค ์ค์ ๋ฑ ๋ฐ์ดํฐ์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ ์ ์ง)
- ํธ๋์ญ์ ๊ด๋ฆฌ (๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ ํ๋์ ๋จ์๋ก ๋ฌถ์ด ๊ด๋ฆฌ / ์คํจ ์ ์ด์ ์ํ๋ก ๋๋๋ฆฌ๋ Rollback ๊ธฐ๋ฅ ์ ๊ณต)
โ DBMS์ ํต์ฌ ๊ฐ๋
- ์คํค๋ง (๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ, ๊ตฌ์ฑ, ์ ์ฝ ์กฐ๊ฑด, ๊ด๊ณ ๋ฑ์ ์ ์ํ ํ)
- ํค (๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๊ธฐ ์ํ Primary Key, ๋ค๋ฅธ ํ ์ด๋ธ์ Primary Key๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํ Foreign Key)
- ์ธ๋ฑ์ค (๋ฐ์ดํฐ ๊ฒ์ ์๋ ํฅ์์ ์ํ ๊ธฐ๋ฅ)
- ํธ๋์ญ์ (์ฌ๋ฌ ์์ ์ ํ๋์ ๋จ์๋ก ๋ฌถ์ด์ ์ฒ๋ฆฌ / A(Atomicity)C(Consistency)I(Isolation)D(Durability) ์์น์ ๋ฐ๋ผ ์์ ์ฑ ๋ณด์ฅ)
โ DBMS์ ์ข ๋ฅ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS / ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํํ๋ก ์ ์ฅ / SQL์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ)
- ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (NoSQL / ๋ฐ์ดํฐ๋ฅผ ์ ์ฐํ ๊ตฌ์กฐ(๋ฌธ์, ํค-๊ฐ, ๊ทธ๋ํ ๋ฑ)๋ก ์ ์ฅ / ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋์ ์ํ์ ํ์ฅ์ฑ)
- ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค (In-Memory DB / ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด ๋น ๋ฅธ ์๋ ์ ๊ณต / ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ต์ ํ)
๐ SQL(Structured Query Language)์ด๋?
SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํตํ๊ธฐ ์ํ ํ์ค ์ธ์ด๋ค. ์ฃผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ณ ์กฐ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.
๋ช ๋ น์ด ์ข ๋ฅ | ๋ช ๋ น์ด | ์ค๋ช |
๋ฐ์ดํฐ ์กฐ์์ด (DML: Data Manipulation Language) |
SELECT INSERT UPDATE DELETE |
๋ฐ์ดํฐ ์กฐํ, ์ฝ์ , ์์ , ์ญ์ |
๋ฐ์ดํฐ ์ ์์ด (DDL : Data Definition Language) |
CREATE ALTER DROP RENAME TRUNCATE |
ํ
์ด๋ธ ์์ฑ, ์์ , ์ญ์ , ์ด๋ฆ ๋ณ๊ฒฝ (DROP์ ํ ์ด๋ธ ์ญ์ , TRUNCATE๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ญ์ ) |
๋ฐ์ดํฐ ์ ์ด์ด (DCL : Data Control Language) |
GRANT REVOKE |
๊ถํ ๋ถ์ฌ, ์ทจ์ |
ํธ๋์ญ์
์ ์ด์ด (TCL : Transaction Control Language) |
COMMIT ROLLBACK SAVEPOINT |
ํธ๋์ญ์ ์๋ฃ ๋ฐ ์ ์ฅ, ์ทจ์, ์ค๊ฐ ์ ์ฅ์ ์ค์ |
+ ์ถ๊ฐ ์ง์
Query
~> Query๋ฅผ ์ง์ญํ๋ฉด '์ง๋ฌธํ๋ค', '๋ฌธ์ํ๋ค'๋ ๋ป์ผ๋ก, ์ง๋ฌธ์ ๋ํ ๋ต์ ์์ฒญํ๋ ๊ฒ์ด๋ค.
~> ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ์์ฒญํ๊ฑฐ๋ ๋ช ๋ น์ ์ ๋ฌํ๋ ์ง์๋ฌธ์ ์๋ฏธํ๋ค.
+ ์ถ์ฒ
https://1-day-1-coding.tistory.com/2
'๐ Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS #10] Rendering์ ๋ํ์ฌ (0) | 2025.03.07 |
---|---|
[๊ฐ๋ฐ ๋๊ตฌ #1] Node.js์ ๋ํ์ฌ (0) | 2025.03.05 |
[CS #8] Ping, Jitter, Packet Loss์ ๋ํ์ฌ (0) | 2025.02.19 |
[CS #7] TCP์ UDP์ ๋ํ์ฌ (0) | 2025.02.19 |
[CS #6] Process์ Thread์ ๋ํ์ฌ (0) | 2025.02.18 |