Not Only SQL.
- 스키마 없이 데이터를 표현하는 것이 주된 특징인 일련의 데이터베이스들을 의미한다.
특징
- 정해진 스키마가 없다.(정해진 데이터가 들어가야할 틀이 없다.)
- 데이터베이스의 종류에 따라 그 특성이 매우 다르다.(RDBMS가 비슷비슷한 것과 다름)
장점
- 높은 수평 확장성
- 초기 개발의 용이성 (틀을 만드는 작업이 필요없어서 편하다)
- 스키마 설계의 유연성 (새로운 데이터를 새로운 데이터 틀에 맞게만 넣으면된다.)
수직 확장
- 한 인스턴스의 가용자원(CPU, memory, storage)를 키워 더 큰 로드를 감당한다.
- 어디까지나 한 인스턴스를 키우는 것이기 때문에 확장이 제한적이다.
수평 확장
- 더 많은 인스턴스를 만들어 더 큰 로드를 감당한다.
- 수평 확장이 가능한 구조이고, 운용 비용만 감당할 수 있다면, 이론적으로 얼마나 많은 로드라도 받아낼 수 있다.
단점
- 표준의 부재 : 한 데이터베이스에서 다른 데이터베이스로 넘어갈때 migration이 거의 불가능.
- SQL에 비해 약한 query capability (단순한 쿼리들만 가능하다.)
- data consitency를 어플리케이션 레벨에서 보장해야 함.
NOSQL 데이터베이스 종류
- Key-Value: Redis, AWS DynamoDB (NoSQL DB의 가장 단순한 형태)
- Document-based: DynamoDB, CouchDB
- Graph-based: Neo4j, AWS Neptune