1. NoSQL이란?
NoSQL은 Not Only SQL의 약자로, 관계형 데이터베이스가 아닌 다른 형태의 데이터베이스를 의미한다. 즉, 관계형 데이터 모델을 지양하고 대량의 분산 데이터를 저장하고 조회하는 데에 특화되어 있으며 스키마 없이 사용 가능하거나 유연한 스키마를 제공하는 저장소이다.
2. NoSQL의 특징
- 확장성
- NoSQL 데이터베이스는 분산형 데이터베이스로서, 대용량 데이터 처리와 분산 처리에 적합하다. 이러한 특징으로 인해 대규모 데이터 처리나 분산환경에서 유연하게 데이터 처리를 할 수 있다.
- 유연성
- 관계형 데이터베이스와 달리 NoSQL은 스키마가 없거나 유연한 스키마를 가진다. 새로운 필드를 추가하거나 변경할 때 유연하게 대처할 수 있다.
- 높은 가용성과 복구력
- NoSQL 데이터베이스는 데이터를 여러 대의 서버에 저장하므로, 한 대의 서버에 문제가 생겨도 다른 서버에서 데이터를 이용할 수 있다.
- 다양한 데이터 모델 지원
- NoSQL 데이터베이스는 관계형 데이터베이스처럼 테이블 형태의 데이터 모델 뿐만 아니라, 다양한 형태의 데이터 모델을 지원한다. key-value, document, graph 등의 모델을 지원한다.
3. RDBMS와의 차이
- 데이터 모델
- RDBMS는 정형 데이터 모델을 사용하여 미리 정의된 테이블과 컬럼에 데이터를 저장시킨다. NoSQL은 비정형 모델을 사용하여 문서나 key-value 등으로 데이터를 저장한다.
- 확장성
- RDBMS는 수직 확장성을 가지며 서버의 성능을 개선하기 위해 더 강력한 하드웨어로 업그레이드된다. NoSQL은 수평 확장성을 가지며 클러스터링 및 분산 컴퓨팅을 사용하여 더 많은 데이터를 저장하고 처리할 수 있다.
- 트랜잭션
- RDBMS는 데이터 일관성 유지를 위해 ACID 트랜잭션을 지원한다. NoSQL은 BASE (Basically Available, Soft-state, Eventually consistent) 원칙을 따르며 트랜잭션 처리를 제한적으로 제공한다.
- 사용 용도
- RDBMS는 비즈니스 애플리케이션, 은행 시스템 등과 같은 정형 데이터를 다루는 시스템에 적합하다. NoSQL은 소셜 미디어, 로그 데이터, 센서 데이터 등과 같은 비정형 데이터를 다루는 시스템에 적합하다.
4. NoSQL의 단점
- 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다.
- 데이터 중복을 계속해서 업데이트 해야한다.
- 데이터 일관성을 지키기가 어렵다.
- 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수정해야한다.
Reference
https://sjh836.tistory.com/97
https://code-lab1.tistory.com/53
https://www.geeksforgeeks.org/types-of-nosql-databases/
https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html