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 도 가능
빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우
- 스키마를 미리 준비할 필요도, 수정해 주어야 할 필요도 없으므로 더 효율적
참고자료:
'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 |
댓글