๐ปRDB์ NoSQL์ ์ฐจ์ด์
1. Database์ DBMS ๊ทธ๋ฆฌ๊ณ SQL
Databse๋
- ์ผ๋ฐ์ ์ผ๋ก ์ปดํจํฐ ์์คํ ์ ์ ์ ๋ฐฉ์์ผ๋ก ์ ์ฅ๋ ๊ตฌ์กฐํ๋ ์ ๋ณด ๋๋ ๋ฐ์ดํฐ์ ์ฒด๊ณ์ ์ธ ์งํฉ์ ์๋ฏธํฉ๋๋ค.
DBMS๋(DataBase Management System)
- ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์์ ์ฌ์ฉ์์ ์๊ตฌ์ ๋ฐ๋ผ ์ ๋ณด๋ฅผ ์์ฑํด ์ฃผ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํด ์ฃผ๋ ์ํํธ์จ์ด์ ๋๋ค.
- RDBMS์๋ DBMS์์ R์ด ๋ถ์ด ์์ต๋๋ค. ์ด R์(Relational)์ ์ฝ์๋ก RDBMS๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์๋ฏธํฉ๋๋ค.
SQL์ด๋(Strucured Query Language)
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ํน์ ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์์ ์๋ฃ์ ๊ฒ์๊ณผ ๊ด๋ฆฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์์ฑ๊ณผ ์์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ์ ๊ทผ ์กฐ์ ๊ด๋ฆฌ๋ฅผ ์ํด ๊ณ ์๋์์ต๋๋ค. (DDL, DML, DCL)
2. NoSQL
NoSQL์ด๋(Not Only SQL)์ ์ฝ์๋ก ๋ง ๊ทธ๋๋ ์์์ ์ค๋ช ํ RDB ํํ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ๋ค๋ฅธ ํํ์ ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ์ ์๋ฏธํ๊ณ ์์ต๋๋ค. ๋ํ NoSQL์์๋ RDBMS์๋ ๋ฌ๋ฆฌ ํ ์ด๋ธ ๊ฐ ๊ด๊ณ๋ฅผ ์ ์ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๊ทธ๋ฅ ํ๋์ ํ ์ด๋ธ์ด๋ฉฐ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ์ง ์์ ์ผ๋ฐ์ ์ผ๋ก ํ ์ด๋ธ ๊ฐ Join๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
2.1 NoSQL ๋์จ ์ด์
NoSQL์ ์ ์ ๋น ๋ฐ์ดํฐ์ ๋ฑ์ฅ์ผ๋ก ์ธํด ๋ฐ์ดํฐ์ ํธ๋ํฝ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํจ์ ๋ฐ๋ผ RDBMS์ ๋จ์ ์ธ ์ฑ๋ฅ์ ํฅ์ํ๊ธฐ ์ํด์๋ ์ฅ๋น๊ฐ ์ข์์ผ ํ๋ Scale-Up์ ํน์ง์ด ๋น์ฉ์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ์ํค๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ํฌ๊ธฐํ๋ ๋น์ฉ์ ๊ณ ๋ คํ์ฌ ์ฌ๋ฌ ๋์ ๋ฐ์ดํฐ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ Scale-Out์ ๋ชฉํ๋ก ๋ฑ์ฅํ์์ต๋๋ค. (ex: mongoDB, Redis ๋ฑ)
3. RDB(Relational Database)
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database)๋ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋์ง ์๋๋ก ํ์ฌ ํ ์ด๋ธ์ ์ญํ ์ด ๋ช ํํ๊ฒ ๊ตฌ๋ถํ๊ณ ํ ์ด๋ธ ๊ฐ์๋ ์ธ๋ ํค(FK)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ผ๋ก ์๋ก ๊ด๊ณ๋ฅผ ๋งบ๋๋ก ์ค๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด๋ค. (ex: Oracle, MySQL ๋ฑ)
4. RDBMS์ NoSQL์ ์ฅ๋จ์
4.1 RDBMS
์ฅ์
- RDBMS๋ ์ ํด์ง ์คํค๋ง์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ์ผ ํ๋ฏ๋ก ๋ช ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฅํ๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๋ณด์ฅ๋๋ค.
- ๋ํ ๊ด๊ณ๋ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต์์ด ํ ๋ฒ๋ง ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ค๋ณต์ด ์์ด ์ฐ๊ธฐ ์๋๊ฐ ๋น ๋ฅด๋ค.
- UNDO์ REDO๋ฅผ ์ ๊ณตํ๋ค.
๋จ์
- ํ ์ด๋ธ๊ณผ ํ ์ด๋ธ ๊ฐ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์์ด ์์คํ ์ด ์ปค์ง ๊ฒฝ์ฐ JOIN๋ฌธ์ด ๋ง์ ๋ณต์กํ ์ฟผ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ํฅ์์ ์ํด์๋ ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์ํด์ผ ํ๋ Scale-up๋ง์ ์ง์ํฉ๋๋ค. ์ด๋ก ์ธํด ๋น์ฉ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋ ์ ์์ต๋๋ค.
- ์คํค๋ง๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์ ์ฐํ์ง ๋ชปํฉ๋๋ค. ๋์ค์ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๋ฒ๊ฑฐ๋กญ๊ณ ์ด๋ ต์ต๋๋ค.
UNDO : UNDO๋ ์์ ๋กค๋ฐฑ๊ณผ, ์ฝ๊ธฐ ์ผ๊ด์ฑ, ๋ณต๊ตฌ๋ฅผ ํฉ๋๋ค.
REDO : REDO๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณต๊ตฌ์ ์ญํ ์ ํฉ๋๋ค. ์ค๋ผํด ์๋ฒ์ ๋ฌด์จ ์์ ์ ํ๋ ์ง ๋ชจ๋ REDO์ ๊ธฐ๋ก์ด ๋ฉ๋๋ค.
4.2 NoSQL
์ฅ์
- NoSQL์์๋ ์คํค๋ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ์ฐํ๋ฉฐ ์์ ๋ก์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ธ์ ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ํ๊ณ ์๋ก์ด ํ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ๋ถ์ฐ์ด ์ฉ์ดํ๋ฉฐ ์ฑ๋ฅ ํฅ์์ ์ํ Saclue-up ๋ฟ๋ง์ด ์๋ Scale-out ๋ํ ๊ฐ๋ฅํฉ๋๋ค.
- ํ ์ด๋ธ ์กฐ์ธ์ ํ์ง์์์ ์ฝ๊ธฐ ์๋๊ฐ ๋น ๋ฅด๋ค.
๋จ์
- ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์์ ์ ๋ชจ๋ ์ปฌ๋ ์ ์์ ์ํ์ ํด์ผ ํฉ๋๋ค.
- ์คํค๋ง๊ฐ ์กด์ฌํ์ง ์๊ธฐ์ ๋ช ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฅํ์ง ์์ผ๋ฉฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ฒฐ์ ๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- UNDO์ REDO๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
5. RDBMS, NoSQL ์ธ์ ์ฌ์ฉํด์ผ ๋ ๊น์?
RDBMS๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ช ํํ๋ฉฐ ๋ณ๊ฒฝ ๋ ์ฌ์ง๊ฐ ์์ผ๋ฉฐ ๋ช ํํ ์คํค๋ง๊ฐ ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์์ด(๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ) ๋ณ๊ฒฝ์ด ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ ์ฐ๊ธฐ์ฐ์ฐ์ด ์์ฃผ ์ด๋ฃจ์ด์ง๋ ์์คํ ์ ์ ํฉํฉ๋๋ค.
NoSQL์ ์ ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ ์๊ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ/ํ์ฅ์ด ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ๋จ์ ์์๋ ๋ช ํํ๋ฏ์ด ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ์์๋ ๋ชจ๋ ์ปฌ๋ ์ ์์ ์์ ์ ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ํน์ง๋ค์ ๊ธฐ๋ฐ์ผ๋ก Update๊ฐ ๋ง์ด ์ด๋ฃจ์ด์ง์ง ์๋ ์์คํ ์ด ์ข์ผ๋ฉฐ ๋ํ Scale-out์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ ํ์ฉํด ๋ง๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํด์ Database๋ฅผ Scale-Out๋ฅผ ํด์ผ ๋๋ ์์คํ ์ ์ ํฉํฉ๋๋ค.
'DB > Mysql' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ป [SQL] ๋ ์ง์ ์๊ฐ(DATE and TIME) ์๋ฃํ (0) | 2022.07.19 |
---|---|
๐ป[SQL] Null ์ผ ๊ฒฝ์ฐ Default ๊ฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (0) | 2022.07.15 |
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.03 |
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.03 |
๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.02 |