๋ฐ์ดํฐ๋ฒ ์ด์ค (DB, DataBase)
์ผ์ ํ ๊ท์น, ํน์ ๊ท์ฝ์ ํตํด ๊ตฌ์กฐํ๋์ด ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋ชจ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์๋ ๋ฐ์ดํฐ๋ค์ ํน์ DBMS๋ง๋ค ์ ์๋ ์ฟผ๋ฆฌ ์ธ์ด(query language)๋ฅผ ํตํด ์ฝ์ , ์ญ์ , ์์ , ์กฐํ ๋ฑ ์ํ
DBMS
: ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ด, ๊ด๋ฆฌํ๋ ํตํฉ ์์คํ
์ค์๊ฐ ์ ๊ทผ
๋์ ๊ณต์ ๊ฐ๋ฅ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ DBMS๊ฐ ์๊ณ , ๊ทธ ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์กด์ฌํ์ฌ ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
MySQL(DBMS) ์์ Node.js๋ php(์์ฉ ํ๋ก๊ทธ๋จ)์์ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์ง์ด๋ด ํด๋น ๋ฐ์ดํฐ ๊ด๋ จ ๋ก์ง ๊ตฌ์ถ
์ข ๋ฅ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค
1. ์ํฐํฐ (entity)
์ฌ๋, ์ฅ์, ๋ฌผ๊ฑด, ์ฌ๊ฑด, ๊ฐ๋ ๋ฑ ์ฌ๋ฌ ๊ฐ์ ์์ฑ์ ์ง๋ ๋ช ์ฌ
ex) ํ์ (์ํฐํฐ) - ์ด๋ฆ, ์์ด๋, ์ฃผ์, ์ ํ๋ฒํธ
- ์ํฐํฐ๋ ์ฝํ ์ํฐํฐ์ ๊ฐํ ์ํฐํฐ๋ก ๋๋๋ค.
- ์๋น์ค์ ์๊ตฌ ์ฌํญ์ ๋ง์ถฐ ์์ฑ์ด ์ ํด์ง๋ค.
- ์ฃผ์๋ผ๋ ์์ฑ์ด ์๋น์ค์ ์๊ตฌ ์ฌํญ๊ณผ ๋ฌด๊ดํ ์์ฑ์ด๋ผ๋ฉด, ์ฃผ์ ์์ฑ์ ์ฌ๋ผ์ง๊ฒ ๋๋ค.
์ฝํ ์ํฐํฐ, ๊ฐํ ์ํฐํฐ
์ฝํ ์ํฐํฐ : ์์ฒด์ ์ผ๋ก ํค๋ฅผ ๋ณด์ ํ์ง ๋ชปํ ์ํฐํฐ
๊ฐํ ์ํฐํฐ : ๊ธฐ๋ณธ ํค๋ฅผ ๊ฐ์ง ์ํฐํฐ
A๊ฐ ํผ์์๋ ์กด์ฌํ์ง ๋ชปํ๊ณ , B์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ์ข ์์ ์ด๋ผ๋ฉด A๋ ์ฝํ ์ํฐํฐ, B๋ ๊ฐํ ์ํฐํฐ
๋ฐฉ์ ๊ฑด๋ฌผ ์์๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐฉ์ ์ฝํ ์ํฐํฐ, ๊ฑด๋ฌผ์ ๊ฐํ ์ํฐํฐ
2. ๋ฆด๋ ์ด์ (relation)
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ๊ตฌ๋ถํ์ฌ ์ ์ฅํ๋ ๊ธฐ๋ณธ ๋จ์
์ํฐํฐ์ ๊ดํ ๋ฐ์ดํฐ๋ฅผ DB๋ ๋ฆด๋ ์ด์ ํ๋์ ๋ด์์ ๊ด๋ฆฌํ๋ค.
- ๋ฆด๋ ์ด์
== ํ
์ด๋ธ (๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์)
- ๋ฆด๋ ์ด์ == ์ปฌ๋ ์ (NoSQL์์)
- ํ์์ด๋ผ๋ ์ํฐํฐ๊ฐ DB์์ ๊ด๋ฆฌ๋ ๋ ๋ฆด๋ ์ด์ ์ผ๋ก ๋ณํ๋๋ค.
ํ ์ด๋ธ, ์ปฌ๋ ์
- ๋ํ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค - MySQL
- ๊ตฌ์กฐ : ๋ ์ฝ๋-ํ ์ด๋ธ-DB
- ๋ํ์ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค - MongoDB
- ๊ตฌ์กฐ : ๋ํ๋จผํธ-์ปฌ๋ ์ -DB
- ๋ ์ฝ๋๊ฐ ์์ฌ์ ํ ์ด๋ธ์ด ๋๊ณ , ํ ์ด๋ธ์ด ์์ฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๋ ๊ฒ์ด๋ค.
3. ์์ฑ (attribute)
๋ฆด๋ ์ด์ ์์ ๊ด๋ฆฌํ๋ ๊ตฌ์ฒด์ ์ด๋ฉฐ ๊ณ ์ ํ ์ด๋ฆ์ ๊ฐ๋ ์ ๋ณด
ex) '์ฐจ' ์ํฐํฐ
์์ฑ : ์ฐจ ๋๋ฒ, ๋ฐํด ์, ์์, ์ฐจ์ข
๋ฑ
์ด ์ค์์ ์๋น์ค์ ์๊ตฌ ์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌํด์ผ ํ ํ์๊ฐ ์๋ ์์ฑ๋ค๋ง ์ํฐํฐ์ ์์ฑ์ด ๋๋ค.
4. ๋๋ฉ์ธ (domain)
๋ฆด๋ ์ด์ ์ ํฌํจ๋ ๊ฐ๊ฐ์ ์์ฑ๋ค์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ์งํฉ
ex) '์ฑ๋ณ' ์์ฑ
๊ฐ์ ์งํฉ : [๋จ, ์ฌ]
- ๋ฆด๋ ์ด์ : ํ์
- ์์ฑ : ์ด๋ฆ, ์์ด๋, ์ฃผ์, ์ ํ๋ฒํธ, ์ฑ๋ณ
- ๋๋ฉ์ธ : ์ฑ๋ณ์ [๋จ, ์ฌ]
5. ํ๋์ ๋ ์ฝ๋
- ๋ ์ฝ๋ : ํ
์ด๋ธ์ ์์ด๋ ํ(raw) ๋จ์์ ๋ฐ์ดํฐ
- ํํ์ด๋ผ๊ณ ๋ ํ๋ค.
์์
์ํฐํฐ, ํ
์ด๋ธ : ์ฑ
์์ฑ : ์ ๋ชฉ, ๊ฐ๊ฒฉ, ISBN, ์ ์, ์ถํ๋
๋ ๋ฑ
๊ทธ ์ค ' ์ด๋ฆ, ์ ์์ ์์ด๋, ์ถํ๋
๋, ์ฅ๋ฅด, ์์ฑ์ผ์, ์
๋ฐ์ดํธ ์ผ์'๋ง ์๋ค๊ณ ๊ฐ์
์ด ์ํฐํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ์ด ํ ์ด๋ธ๋ก ๋ง๋ค๋ ค๋ฉด ์์ฑ์ ๋ง๋ ํ์ ์ ์ ์ํด์ผ ํ๋ค.
CREATE TABLE book (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
author_id INT,
phblishing_year VARCHAR(255),
genre VARCHAR(255),
created_at DATETIME,
update_at DATETIME,
PRIMARY KEY (id)
);
ํ๋ ํ์
- ์ซ์ ํ์ : TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT ๋ฑ
- ๋ ์ง ํ์
- DATE : ๋ ์ง ๋ถ๋ถ์ ์์ผ๋ ์๊ฐ ๋ถ๋ถ์ ์๋ ๊ฐ์ ์ฌ์ฉ
- DATETIME : ๋ ์ง ๋ฐ ์๊ฐ ๋ถ๋ถ์ ๋ชจ๋ ํฌํจํ๋ ๊ฐ์ ์ฌ์ฉ
- TIMESTAMP : ๋ ์ง ๋ฐ ์๊ฐ ๋ถ๋ถ์ ๋ชจ๋ ํฌํจํ๋ ๊ฐ์ ์ฌ์ฉ
- ๋ฌธ์ ํ์
- CHAR : ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด (0 ~ 255), ๋ ์ฝ๋๋ฅผ ์ ์ฅํ ๋ ๋ฌด์กฐ๊ฑด ์ ์ธํ ๊ธธ์ด ๊ฐ์ผ๋ก ๊ณ ์ ํด์ ์ ์ฅ๋๋ค.
- ์ ๋์ ์ด์ง ์์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์ ํจ์จ์
- VARCHAR : ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด (0 ~ 65,535), ์
๋ ฅ๋ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ฉ๋์ ๊ฐ๋ณ์์ผ ์ ์ฅํ๋ค.
- ์ ๋์ ์ธ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์ ํจ์จ์
- TEXT : ํฐ ๋ฌธ์์ด ์ ์ฅํ ๋ ์ฌ์ฉ (๊ฒ์ํ์ ๋ณธ๋ฌธ)
- BLOB : ์ด๋ฏธ์ง, ๋์์ ๋ฑ (AWS S3 ์ด์ฉํด ์๋ฒ์ ํ์ผ์ ์ฌ๋ฆฌ๊ณ , ํ์ผ์ ๊ดํ ๊ฒฝ๋ก๋ฅผ VARCHAR๋ก ์ ์ฅ)
- ENUM : ENUM('x-small', 'small', 'medium', ' large', 'x-large') ํํ
- ํ๋๋ง ์ ํ ๊ฐ๋ฅ
- ENUM ๋ฆฌ์คํธ์ ์๋ ์๋ชป๋ ๊ฐ์ ์ฝ์ ํ๋ฉด ๋น ๋ฌธ์์ด์ด ๋์ ์ฝ์ ๋๋ค.
- x-small ๋ฑ์ด 0, 1 ๋ฑ์ผ๋ก ๋งคํ๋์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒ ์ฌ์ฉํ๋ ์ด์
- ์ต๋ 65,535๊ฐ์ ์์๋ฅผ ๋ฃ์ ์ ์๋ค.
- SET : ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ ์ ํ ๊ฐ๋ฅ
- ๋นํธ ๋จ์์ ์ฐ์ฐ ๊ฐ๋ฅ
- ์ต๋ 64๊ฐ์ ์์๋ฅผ ๋ฃ์ ์ ์๋ค.
- ENUM์ด๋ SET์ ์ธ ๊ฒฝ์ฐ, ๊ณต๊ฐ์ ์ผ๋ก ์ด์ ์ ๋ณผ ์ ์์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ENUM์ด๋ SET์์ ์ ์ํ ๋ชฉ๋ก์ ์์ ํด์ผ ํ๋ค๋ ๋จ์ ์ด ์๋ค.
- CHAR : ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด (0 ~ 255), ๋ ์ฝ๋๋ฅผ ์ ์ฅํ ๋ ๋ฌด์กฐ๊ฑด ์ ์ธํ ๊ธธ์ด ๊ฐ์ผ๋ก ๊ณ ์ ํด์ ์ ์ฅ๋๋ค.
6. ๊ด๊ณ
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ด ์๊ณ , ์ด๋ฌํ ํ ์ด๋ธ์ ์๋ก์ ๊ด๊ณ๊ฐ ์ ์๋์ด ์๋ค. ์ด ๊ด๊ณ๋ฅผ ๊ด๊ณํ์ดํ๋ก ๋ํ๋ธ๋ค.
![[Pasted image 20230206100851.png]]
1:1 ๊ด๊ณ
ํ๋์ A๋ ํ๋์ B๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
ํ๋์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํ ๊ฐ์ ์ฐ๊ฒฐ๋์ด ์๋ค.
์๋ฅผ ๋ค์ด ์ ์ ๋น ์ ์ ์ด๋ฉ์ผ์ ํ ๊ฐ์ฉ ์กด์ฌํ๋ ๊ฒฝ์ฐ
- ์ ์ ํ ์ด๋ธ : ์ด๋ฆ, ์ ํ๋ฒํธ, ์ฃผ์
- ์ด๋ฉ์ผ ํ ์ด๋ธ : ์ด๋ฆ, ์ด๋ฉ์ผ
1:N(์ผ๋๋ค) ๊ด๊ณ
ํ๋์ ๋ ์ฝ๋๊ฐ ์๋ก ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋์ ์ฐ๊ฒฐ๋์ด ์๋ค.
ํ ๊ฐ์ฒด๊ฐ ๋ง์ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ๊ด๊ณ
์๋ฅผ ๋ค์ด ์ผํ๋ชฐ์ ์ด์ํ๋ค๊ณ ํ ๋, ํ ์ ์ ๋น ์ฌ๋ฌ ๊ฐ์ ์ํ์ ์ฅ๋ฐ๊ตฌ๋์ ๋ฃ์ ์ ์๋ ๊ฒฝ์ฐ์ด๋ค. ํ๋๋ ๋ฃ์ง ์๋ 0๊ฐ์ ๊ฒฝ์ฐ๋ ์์ผ๋ 0๋ ํฌํจ๋๋ ํ์ดํ๋ฅผ ํตํด ํํํ๋ค.
- ์ ์ ํ ์ด๋ธ : ์ด๋ฆ, ์ ํ๋ฒํธ, ์ฃผ์
- ์ํ ํ ์ด๋ธ : ์ด๋ฆ, ๊ฐ๊ฒฉ, ์ถ์์ผ
N:M(๋ค๋๋ค) ๊ด๊ณ
์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋์ ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ
์๋ฐฉํฅ์์ ๋ค์์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
์๋ฅผ ๋ค์ด ํ์๊ณผ ๊ฐ์์ ๊ด๊ณ๋ก ๋ณผ ๋, ํ์์ ๊ฐ์๋ฅผ ๋ง์ด ๋ค์ ์ ์๊ณ ๊ฐ์๋ ์ฌ๋ฌ ๋ช
์ ํ์์ ํฌํจํ ์ ์๋ค.
๋ค๋๋ค ๊ด๊ณ๋ ํ
์ด๋ธ ๋ ๊ฐ๋ฅผ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐํด์ ๊ตฌ์ถํ์ง๋ ์๊ณ 1:N, 1:M์ด๋ผ๋ ๊ด๊ณ๋ฅผ ๊ฐ๋ ํ
์ด๋ธ๋ก ๋๋ ์ ์ค์ ํ๋ค.
- ํ์ ํ ์ด๋ธ : ID, ์ด๋ฆ, ์ ํ๋ฒํธ, ์ฃผ์
- ๊ฐ์ ํ ์ด๋ธ : ID, ์ด๋ฆ, ๊ต์๋ช
- ํ์_๊ฐ์ ํ ์ด๋ธ : ํ์ID, ๊ฐ์ID
7. ํค
ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ ๋ช ํํ๊ฒ ํ๊ณ , ํ ์ด๋ธ ์์ฒด์ ์ธ๋ฑ์ค๋ฅผ ์ํด ์ค์ ๋ ์ฅ์น
๊ธฐ๋ณธํค, ์ธ๋ํค, ํ๋ณดํค, ์ํผํค, ๋์ฒดํค
![[Pasted image 20230206102104.png]]
์ํผํค๋ ์ ์ผ์ฑ์ด ์๊ณ ๊ทธ ์์ ํฌํจ๋ ํ๋ณดํค๋ ์ต์์ฑ๊น์ง ๊ฐ์ถ ํค๋ค.
ํ๋ณดํค ์ค์์ ๊ธฐ๋ณธํค๋ก ์ ํ๋์ง ๋ชปํ ํค๋ ๋์ฒดํค๊ฐ ๋๋ค.
- ์ ์ผ์ฑ : ์ค๋ณต๋๋ ๊ฐ์ด ์กด์ฌํ์ง ์๋๋ค.
- ์ต์์ฑ : ํ๋๋ฅผ ์กฐํฉํ์ง ์๊ณ ์ต์ ํ๋๋ง ์จ์ ํค๋ฅผ ํ์ฑํ ์ ์๋ค.
๊ธฐ๋ณธํค
์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ง์กฑํ๋ ํค๋ก, ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ค ๊ณ ์ ํ๊ฒ ์กด์ฌํ๋ ์์ฑ
๊ธฐ๋ณธํค์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ ์ค๋ณต๋์ด์๋ ์ ๋๋ค. ์ค๋ณต๋๋ค๋ฉด ๊ธฐ๋ณธํค๊ฐ ๋์ง ๋ง์์ผ ํ๋ค.
๊ทธ๋ฌ๋ ๋ง์ฝ ID๋ฅผ ๊ธฐ๋ณธํค๋ก ์ค์ ํ๋ค๋ฉด, ๋ฌผ๋ก {ID, name}์ด๋ผ๋ ๋ณตํฉํค๋ฅผ ๊ธฐ๋ณธํค๋ก ์ค์ ํ ์ ์์ง๋ง ๊ทธ๋ ๊ฒ ๋๋ฉด ์ต์์ฑ์ ๋ง์กฑํ์ง ์๋๋ค.
์์ฐํค ๋๋ ์ธ์กฐํค ์ค์ ๊ณจ๋ผ ์ค์ ํ๋ค.
์์ฐํค
์ค๋ณต๋ ๊ฐ๋ค์ ์ ์ธํ๋ฉฐ ์ค๋ณต๋์ง ์๋ ๊ฒ์ '์์ฐ์ค๋ ' ๋ฝ๋ค๊ฐ ๋์ค๋ ํค
์ธ์ ๊ฐ ๋ณํ๋ ์์ฑ์ ๊ฐ์ง๋ค.
- ์๋ฅผ ๋ค์ด ์ ์ ํ ์ด๋ธ๋ก ๊ฐ์ ํ๋ฉด, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ด๋ฆ, ์ฑ๋ณ ๋ฑ์ ์์ฑ์ด ์๋ค. ์ด ์ค ์ด๋ฆ, ์ฑ๋ณ ๋ฑ์ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด์ฌ ์ ์์ผ๋ฏ๋ก ๋ถ์ ์ ํ๋ฏ๋ก ๋จ๋ ๊ฒ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ด๋ค. ์ด๊ฐ ๊ธฐ๋ณธํค๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ธ์กฐํค
์ธ์์ ์ผ๋ก ์์ฑํ ํค
- ์์ฐํค์ ๋ค๋ฅด๊ฒ ๋์กฐ์ ์ผ๋ก ๋ณํ์ง ์์์ ๋ณดํต ๊ธฐ๋ณธํค๋ ์ธ์กฐํค๋ก ์ค์ ํ๋ค.
- ์๋ฅผ ๋ค์ด ์ ์ ํ ์ด๋ธ๋ก ๊ฐ์ ํ๋ฉด, ํ์ ํ ์ด๋ธ์ ์์ฑํ๋ค๊ณ ํ๋ค. ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ด๋ฆ, ์ฑ๋ณ ๋ฑ์ ์์ฑ์ด ์๋ค. ์ธ์์ ์ผ๋ก ์ ์ ์์ด๋๋ฅผ ๋ถ์ฌํ๋ค. ์ด๋ฅผ ํตํด ๊ณ ์ ์๋ณ์๊ฐ ์๊ฒจ๋๋ค.
- ์ค๋ผํด - sequenece, MySQL - auto increment ๋ฑ
์ธ๋ํค
๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ๊ทธ๋๋ก ์ฐธ์กฐํ๋ ๊ฐ
๊ฐ์ฒด์์ ๊ด๊ณ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ
- ์ค๋ณต๋์ด๋ ๊ด์ฐฎ๋ค.
- client ํ ์ด๋ธ : ๊ธฐ๋ณธํค - ID
- product ํ ์ด๋ธ : ์ธ๋ํค - user_id (client ํ ์ด๋ธ์ ID)
ํ๋ณดํค
- ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ํ๋ณด๋ค
- ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋์์ ๋ง์กฑํ๋ ํค
๋์ฒดํค
- ํ๋ณดํค๊ฐ ๋ ๊ฐ ์ด์์ผ ๊ฒฝ์ฐ, ์ด๋ ํ๋๋ฅผ ๊ธฐ๋ณธํค๋ก ์ง์ ํ๊ณ ๋จ์ ํ๋ณดํค๋ค
์ํผํค
- ๊ฐ ๋ ์ฝ๋๋ฅผ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์ ์ผ์ฑ์ ๊ฐ์ถ ํค
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)
ํ๊ณผ ์ด์ ๊ฐ์ง๋ ํ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- SQL ์ธ์ด๋ฅผ ์จ์ ์กฐ์ํ๋ค.
- ํ์ค SQL์ ์งํค๊ธฐ๋ ํ์ง๋ง, ๊ฐ๊ฐ์ ์ ํ์ ํนํ์ํจ SQL์ ์ฌ์ฉํ๋ค.
- ์ค๋ผํด - PL/SQL, SQL Server - T-SQL, MySQL - SQL
MySQL
: ๋๋ถ๋ถ์ ์ด์์ฒด์ ์ ํธํ๋๋ฉฐ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- c, c++๋ก ๋ง๋ค์ด์ก๋ค.
- MyISAM ์ธ๋ฑ์ค ์์ถ ๊ธฐ์ , B-ํธ๋ฆฌ ๊ธฐ๋ฐ์ ์ธ๋ฑ์ค, ์ค๋ ๋ ๊ธฐ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์คํ , ๋งค์ฐ ๋น ๋ฅธ ์กฐ์ธ, ์ต๋ 64๊ฐ์ ์ธ๋ฑ์ค ์ ๊ณต
- ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํด ์ค๊ณ๋์ด ์๋ค.
- ๋กค๋ฐฑ, ์ปค๋ฐ, ์ด์ค ์ํธ ์ง์ ๋ณด์ ๋ฑ์ ๊ธฐ๋ฅ ์ ๊ณต
์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ
- ์คํ ๋ฆฌ์ง ์์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฅ๊ณผ๋ ๊ฐ์ ์ญํ ์ ํ๋ ๊ณณ์ด๋ค. ๋ชจ๋์ ์ํคํ ์ฒ๋ก ์ฝ๊ฒ ์คํ ๋ฆฌ์ง ์์ง์ ๋ฐ๊ฟ ์ ์๋ค.
- ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ง, ํธ๋์ญ์ ์ฒ๋ฆฌ, ๊ณ ๊ฐ์ฉ์ฑ ์ฒ๋ฆฌ์ ๊ฐ์ ์ ๋๊ณ ์๋ค.
- ์คํ ๋ฆฌ์ง ์์ง ์์๋ ์ปค๋ฅํฐ API ๋ฐ ์๋น์ค ๊ณ์ธต์ ํตํด MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๊ฒ ์ํธ ์์ฉ ๊ฐ๋ฅ
PostgreSQL
- ๋์คํฌ ์กฐ๊ฐ์ด ์ฐจ์งํ๋ ์์ญ์ ํ์ํ ์ ์๋ ์ฅ์น์ธ VACUUM์ด ํน์ง
- ์ต๋ ํ ์ด๋ธ์ ํฌ๊ธฐ : 32TB
- SQL ๋ฟ๋ง ์๋๋ผ JSON์ ์ด์ฉํด์ ๋ฐ์ดํฐ์ ์ ๊ทผ ๊ฐ๋ฅ
- ์ง์ ์๊ฐ์ ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ, ๋ก๊น , ์ ๊ทผ ์ ์ด, ์ค์ฒฉ๋ ํธ๋์ญ์ , ๋ฐฑ์ ๋ฑ ๊ฐ๋ฅ
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค (Not only SQL)
SQL์ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ๋ํ์ ์ผ๋ก MongoDB์ redis ๋ฑ์ด ์๋ค.
MongoDB
: JSON์ ํตํด ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ณ , Binary JSON ํํ(BSON)๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉฐ ์์ด์ด๋ํ์ด๊ฑฐ ์์ง์ด ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ์์ง์ผ๋ก ์ฅ์ฐฉ๋ ํค-๊ฐ ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ํ์ฅ๋ ๋ํ๋จผํธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ค.
- ๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฑ๋ฅ์ด ์ข๋ค.
- ๊ณ ๊ฐ์ฉ์ฑ
- ์ค๋ฉ, ๋ ํ๋ฆฌ์นด์ ์ง์
- ์คํค๋ง๋ฅผ ์ ํด ๋์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ๋๋ฉ์ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ํ๊ฑฐ๋ ๋ก๊น ๋ฑ์ ๊ตฌํํ ๋ ๊ฐ์ ์ ๋ณด์ธ๋ค.
- ๋ํ๋จผํธ๋ฅผ ์์ฑํ ๋๋ง๋ค ๋ค๋ฅธ ์ปฌ๋ ์
์์ ์ค๋ณต๋ ๊ฐ์ ์ง๋๊ธฐ ํ๋ ์ ๋ํฌํ ๊ฐ์ธ ObjectID๊ฐ ์์ฑ๋๋ค.
- ๊ธฐ๋ณธํค๋ก ์ ๋์ค ์๊ฐ ๊ธฐ๋ฐ์ ํ์์คํฌํ(4๋ฐ์ดํธ), ๋๋ค ๊ฐ(5๋ฐ์ดํธ), ์นด์ดํฐ(3๋ฐ์ดํธ)๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
redis
: ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด์ ํค-๊ฐ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ํ์ ์ ๋ฌธ์์ด(string)์ด๋ฉฐ ์ต๋ 512MB๊น์ง ์ ์ฅ ๊ฐ๋ฅ
- ์ , ํด์ ์ง์
- pub/sub ๊ธฐ๋ฅ์ ํตํด ์ฑํ ์์คํ , ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋จ์ ๋์ด ์ฌ์ฉํ๋ ์บ์ฑ ๊ณ์ธต, ๋จ์ํ ํค-๊ฐ์ด ํ์ํ ์ธ์ ์ ๋ณด ๊ด๋ฆฌ, ์ ๋ ฌ๋ ์ (sorted set) ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ์ค์๊ฐ ์์ํ ์๋น์ค์ ์ฌ์ฉ
'๐ช CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTTP์ IP์ฃผ์ (0) | 2023.02.24 |
---|---|
ERD์ ์ ๊ทํ ๊ณผ์ (0) | 2023.02.23 |
์๊ฐ ๋ณต์ก๋ Big-O (0) | 2023.02.23 |
์ง๋ฌธ ๋ฆฌ์คํธ - ๋์์ธ ํจํด (0) | 2023.01.04 |
ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจ์ด (1) | 2023.01.04 |