[ Node.js ์ˆ™๋ จ์ฃผ์ฐจ1 (1-1)] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDB)

2023. 9. 1. 01:53ใ†3. Node.js

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ž€?

" ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ(..) "

https://www.ibm.com/kr-ko/topics/relational-databases

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€? | IBM

์ด ํ•ต์‹ฌ ์•ˆ๋‚ด์„œ์—์„œ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ๋ฌผ๋ก , ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ต์…˜๊ณผ ์ด์˜ ์ฐจ์ด์ ์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

www.ibm.com

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

๊ธฐ์กด์— ๋ฐฐ์šด ๋ชฝ๊ณ db๋Š” ์ธ ๋ฉ”๋ชจ๋ฆฌ(In-Memory) ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MongoDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ “ํ•ด์•ผ ํ•  ์ผ” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ–ˆ๋‹ค. ์ด๋Ÿฐ ์ €์žฅ ๋ฐฉ์‹์€ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์˜ ์ •๊ทœํ™”์™€ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉด์„œ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB, Relational DataBase)๊ฐ€ ํƒ„์ƒํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB, Relational DataBase)๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ‘ํ…Œ์ด๋ธ”’์ด๋ผ๋Š” ํ‘œํ˜•ํƒœ์˜ ๊ตฌ์กฐ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ, ๊ฐ ‘ํ…Œ์ด๋ธ”’์€ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ‘ํ…Œ์ด๋ธ”’๊ฐ„์— ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ, ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ํ…Œ์ด๋ธ”์€ ๊ณ ์œ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰(row)๊ณผ ๋ฐ์ดํ„ฐ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์—ด(column)์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  • ์ด ํ…Œ์ด๋ธ”๋“ค์€ ์„œ๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(NoSQL)์˜ ๊ฐœ๋…

MongoDB๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(NoSQL)์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.  MySQL์ด ๋ฐ”๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์— ํ•ด๋‹น (  ๊ด€๊ณ„ํ˜• DB์—์„œ table์€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ ๋ชฝ๊ณ  db์—์„œ fileld์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋‹ค. 

์—‘์…€์˜ ํ‘œ์™€ ๋น„์Šทํ•˜๋ฉฐ (์—‘์…€์˜ ํ‘œ์˜ ๋ฐ์ดํ„ฐ๋Š” ์ƒ๋‹จ์˜ ํ˜•์‹์— ๋งž์ถฐ์„œ ์ž‘์„ฑ) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ”(Table)์ด๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ํ…Œ์ด๋ธ”์€ ๊ณ ์œ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰(row)๊ณผ ๋ฐ์ดํ„ฐ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์—ด(column)์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ( * ์—‘์…€์˜ ํ‘œ์™€ ์œ ์‚ฌํ•˜๋‹ค ) 

ํ…Œ์ด๋ธ”๋“ค์€ ์„œ๋กœ ์—ฐ๊ด€๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ž‘ ์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(NoSQL)๊ฐ€ ๋‚˜์˜๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์—, ์ €์žฅ(Write)๊ณผ ์ฝ๊ธฐ(Read) ์ž‘์—…์ด ๋”์šฑ ๋น ๋ฅด๋ฉฐ, ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์—†์ด ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ์— ์ค‘์ ์„ ๋‘” ์„œ๋ฒ„์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋น…๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์ด๋‚˜ ๋‹จ์ˆœ ํŽ˜์ด์ง€๋ทฐ๊ฐ€ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๋ฐ˜๋ฉด, **๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)**๋Š” ๋”์šฑ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๋”์šฑ ์•ˆ์ „ํ•œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ธฐ์— ์ข‹๋‹ค ( * ํŠนํžˆ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๊ธฐ๊ด€์ด๋‚˜ ์€ํ–‰, ์•ˆ์ • ์ „์„ ์ค‘์š”์‹œํ•˜๋Š” ๊ธฐ๊ด€์—์„œ ๋‹ค์ˆ˜์‚ฌ์šฉ)