๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Database

25 NoSQL

by Dowon Kang 2024. 1. 18.

NoSQL์€ "Not Only SQL"์˜ ์•ฝ์ž๋กœ, ์ „ํ†ต์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ์Šคํ‚ค๋งˆ์™€ SQL ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์นญํ•ฉ๋‹ˆ๋‹ค. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋Œ€๋Ÿ‰์˜ ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

 

๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

์ธํ„ฐ๋„ท๊ณผ ๋ชจ๋ฐ”์ผ ๊ธฐ์ˆ ์˜ ๊ธ‰๊ฒฉํ•œ ๋ฐœ์ „์œผ๋กœ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด๋Ÿฌํ•œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ณ ์ •๋œ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ณ€๊ฒฝ์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„๋Œ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด์„œ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ํ•„์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. 

 

๋˜ ํ•œ, ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ๊ณผ ์„œ๋น„์Šค์—์„œ๋Š” ๊ณ ๊ฐ€์šฉ์„ฑ, ํ™•์žฅ์„ฑ, ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋†’์€ ์„ฑ๋Šฅ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด๋Ÿฌํ•œ ์š”๊ตฌ๋ฅผ ์ถฉ์กฑํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ํŠนํ™”๋˜์–ด ์žˆ์—ˆ์ง€๋งŒ, ํ˜„๋Œ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•˜๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, JSON ๋“ฑ์ด ๊ทธ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

 

  • ๋ฌธ์„œ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Document Stores): MongoDB, CouchDB
  • ํ‚ค-๊ฐ’ ์Šคํ† ์–ด(Key-Value Stores): Redis, DynamoDB
  • ์—ด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Column-family Stores): Apache Cassandra, HBase
  • ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Graph Databases): Neo4j, Amazon Neptune

 

 


 

NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฃผ์š” ํŠน์ง•

  1. ์Šคํ‚ค๋งˆ ์œ ์—ฐ์„ฑ (Schema Flexibility): NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์Šคํ‚ค๋งˆ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์šฉํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Distributed Database): ๋งŽ์€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ™•์žฅ์„ฑ๊ณผ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ์ง€์›: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ”๊ณผ ์—ด์˜ ํ˜•ํƒœ๋กœ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ๊ฐ•์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— NoSQL์€ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ํ˜•ํƒœ์ธ ๋ฌธ์„œ, ๊ทธ๋ž˜ํ”„, ์—ด ์ง€ํ–ฅ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋†’์€ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ: NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํŠน์ • ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์ž‘์—…์— ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•œ ์„ฑ๋Šฅ์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  5. ์œ ์—ฐํ•œ ์ผ๊ด€์„ฑ ๋ชจ๋ธ: NoSQL์€ ์ผ๊ด€์„ฑ ๋ชจ๋ธ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‹œ์Šคํ…œ์€ eventual consistency๋ฅผ ์„ ํ˜ธํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ strong consistency๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ์š”์ธ๋“ค์ด NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋“ฑ์žฅ์„ ์ด‰๋ฐœํ•˜์˜€๊ณ , NoSQL์€ ์ด๋Ÿฌํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋” ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NoSQL์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰, ๊ณ ์„ฑ๋Šฅ, ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 


NoSQL, short for "Not Only SQL," refers to a diverse set of database technologies designed to handle various data models beyond traditional relational databases. NoSQL databases provide flexible schema designs, support for large-scale distributed systems, and efficient processing of unstructured data. These databases are often chosen to address the challenges posed by massive data volumes, dynamic data models, and the need for high performance and scalability in modern applications.

 

'Computer Science > Database' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

21 Index  (0) 2024.01.17
20 Normalization  (0) 2024.01.16
12 Trigger  (0) 2024.01.13
9 ORDER BY, GROUP BY (feat. HAVING)  (0) 2024.01.12
8 JOIN  (0) 2024.01.12

๋Œ“๊ธ€