NoSQL이란?
NoSQL은 "Not only SQL"로, SQL만을 사용하지 않는(RDB가 아닌) 데이터베이스 관리 시스템(DBMS)을 지칭하는 단어이다.
NoSQL의 정의
- 관계형 모델을 사용하지 않는다.
- 대부분 오픈 소스다.
- 보통 21세기 초반에 개발되었다.
- SQL을 사용하지 않는 Schema-less(스키마가 없는) 데이터베이스이다.
NoSQL의 특징
- 반정형화, 비정형화된 데이터에 적합하다.
- 빅데이터는 다양하고 정형화되어있지 않은 데이터를 저장하는데 유용하다.
- “ACID” 대신 “Eventual Consistency”(최종적인 일관성)를 허용한다.
- 확장성과 다수가 읽고 쓰는 상황에서의 성능 향상을 위해서 어느정도 일관성(Consistency)이 지켜지지 않는 것을 선택하였다.
- 특정 도메인의 문제해결에 뛰어나다.
- Key-value, Document, Column-family, Graph 등 특정 도메인에 최적화 된 DB가 있다.
- 데이터 일치
- 메모리 내의 데이터가 어떤 구조이든지 상관하지 않고 하나의 Aggregation(집합)으로 취급하여 저장한다.
- Schema-less
- 데이터 구조를 미리 정의할 필요가 없으며, 시간이 지나더라도 언제든지 바꿀 수 있기 때문에 비형식적인 데이터를 저장하는 데 용이하다.
- 사실 암묵적인 스키마가 존재하지만, NoSQL은 이를 강제하지 않는다. 그렇기 때문에 NoSQL을 사용할 때에는 주의를 기울일 필요가 있다.
❗ 참고