๐Ÿ“š Study/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[DB๊ตฌ์กฐ ๋ฐ ์„ค๊ณ„] RDB์™€ NoSQL

์ ์ด 2022. 5. 27. 16:40
๋ฐ˜์‘ํ˜•

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDB)

  • ์‚ฌ์ „์— ์—„๊ฒฉํ•˜๊ฒŒ ์ •์˜๋œ DB schema๋ฅผ ์š”๊ตฌํ•˜๋Š” table ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ์—„๊ฒฉํ•œ schema๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์ค‘๋ณต์ด ์—†์Œ → update๊ฐ€ ๋งŽ์„ ๋•Œ ์œ ๋ฆฌ

NoSQL

  • tableํ˜•์‹์ด ์•„๋‹Œ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ update ์‹œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ ์ˆ˜์ •์ด ํ•„์š” → update๊ฐ€ ์ ๊ณ , ์กฐํšŒ๊ฐ€ ๋งŽ์„ ๋•Œ ์œ ๋ฆฌ
  RDB NoSQL
๋ฐ์ดํ„ฐ ์ €์žฅ ๋ชจ๋ธ table json document / key-value / ๊ทธ๋ž˜ํ”„ 
๊ฐœ๋ฐœ ๋ชฉ์  ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๊ฐ์†Œ ์• ์ž์ผ / ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ / ์ˆ˜์ • ๊ฐ€๋Šฅ์„ฑ
์˜ˆ์‹œ MySQL, Oracle MongoDB, DynamoDB
Schema ์—„๊ฒฉํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
์žฅ์  - ๋ช…ํ™•ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ณด์žฅ
- ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์—†์ด ํ•œ๋ฒˆ๋งŒ ์ €์žฅ (๋ฌด๊ฒฐ์„ฑ)
- ๋ฐ์ดํ„ฐ ์ค‘๋ณต์ด ์—†์–ด์„œ ๋ฐ์ดํ„ฐ update ์šฉ์ด
- ์œ ์—ฐํ•˜๊ณ  ์ž์œ ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
- ์ƒˆ๋กœ์šด ํ•„๋“œ ์ถ”๊ฐ€ ์ž์œ ๋กœ์›€
- ์ˆ˜ํ‰์  ํ™•์žฅ ์šฉ์ด
๋‹จ์  - ์‹œ์Šคํ…œ์ด ์ปค์ง€๋ฉด Join๋ฌธ์ด ๋งŽ์€ ๋ณต์žกํ•œ query ํ•„์š”
- ์ˆ˜ํ‰์  ํ™•์žฅ์ด ๊นŒ๋‹ค๋กœ์›Œ ๋น„์šฉ์ด ํฐ ์ˆ˜์ง์  ํ™•์žฅ(Scale up)์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋จ.
- ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์œ ์—ฐํ•˜์ง€ ๋ชปํ•จ
- ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฐœ์ƒ ๊ฐ€๋Šฅ
- ์ค‘๋ณต ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•จ
- ๋ช…ํ™•ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ณด์žฅ X
์‚ฌ์šฉ - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ์—ฌ์ง€ ์—†์ด ๋ช…ํ™•ํ•œ ๊ฒฝ์šฐ
- ๋ฐ์ดํ„ฐ update๊ฐ€ ์žฆ์€ ์‹œ์Šคํ…œ
- ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ
- Update๊ฐ€ ์ž์ฃผ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
- ๋ฐ์ดํ„ฐ ์–‘์ด ๋งค์šฐ ๋งŽ์€ ๊ฒฝ์šฐ (scale up)
๋ฐ˜์‘ํ˜•