NoSQL이란?
본문 바로가기
BackEnd/Database

NoSQL이란?

by liveloper jay 2022. 3. 14.

NoSQL이란?


관계형 데이터베이스 이외의 형식으로(비관계형 모델) 데이터를 저장하는 데이터베이스로, NoSQL에서는 데이터를 행과 열이 아닌, 체계적인 방식으로 저장합니다.

관계 데이터를 저장하지 않는다(x) → 관계형 데이터베이스와 다른 방식으로 관계 데이터를 저장할 수 있다.

 

 

NoSQL의 종류


1. Key-Value 데이터베이스

  • Key-Value 쌍으로 나타나는 데이터를 배열 형태로 저장
  • key는 속성이름, value는 데이터 값 (Redis, DynamoDB...)

2. 문서형 데이터베이스

  • 데이터를 문서형태로 저장한다.
  • 사용이 번거롭고 쿼리가 SQL과는 다르다.
  • JSON, XML과 같은 Collection 데이터 모델 구조를 채택함 (MongoDB...)

3. Wide-Column 스토어

  • 각 열에는 key-value 형식으로 데이터 저장되고, column family라고 하는 열의 집합체단위로 데이터를 처리할 수 있음
  • 각 행이 동일한 열을 가질 필요 없으므로 RBD에 비해 뛰어난 유연성 제공 (Cassandra,HBase...)

4. 그래프 데이터베이스

  • 그래프와 비슷한 형식으로 데이터 관계를 구성
  • node와 edge 와 함께 그래프 구조를 사용하여 데이터를 저장함. (Neo4J, InfiniteGraph...)

 

 

NoSQL 장단점


장점

  • 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가진다.
  • 저장된 데이터의 조정과 새로운 필드의 추가가 용이하다.
  • 성능향상을 위한 Scale-Up 뿐만 아니라 Scale-Out 도 가능하다.

단점

  • 데이터 중복 문제가 있으며, 중복된 데이터가 변경될 경우 수정이 불편하다.
  • 명확한 데이터 구조가 보장x → 데이터 구조 결정에 어려움을 겪을 수 있다.

 

 

 

NoSQL 사용하는 경우


비구조적인 데이터를 저장하는 경우

  • SQL보다 자유로운 형태의 데이터 저장이 가능하므로 필요에 따라 새로운 데이터 유형의 추가가 용이하다.

클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

  • NoSQL은 데이터베이스를 클라우드 기반으로 쉽게 분리 할 수 있도록 지원하여, 저장 공간을 효율적으로 사용
  • 또한 성능향상을 위해 Scale-up 뿐만 아니라 Scale-out 도 가능

빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

  • 스키마를 미리 준비할 필요도, 수정해 주어야 할 필요도 없으므로 더 효율적

 

 

 

 

참고자료:

https://www.mongodb.com/ko-kr/nosql-explained

https://pythontoomuchinformation.tistory.com/528

'BackEnd > Database' 카테고리의 다른 글

[MySQL] 집계함수  (0) 2021.12.16
[MySQL] 데이터베이스 제약조건이란?  (0) 2021.12.15
[MySQL]MySQL 생성,삭제,변경  (0) 2021.12.14
[MySQL] Table 조회/삽입/삭제/갱신  (0) 2021.12.13
[MySQL] DBMS란?_MySQL 설치  (0) 2021.12.12

댓글