nosql
not only sql
스키마 없이 데이터를 표현하는 것이 주된 표현이다.
일반적인 특징
* 정확한 스키마가 없다.
* 디비의 종류에 따라 그 특징이 매우 다르다.
장점
* 높은 수평 확장성
* 초기 개발의 용이점
* 스키마 설계의 유연성
수직 확장(vertical scaling)
* 한 인스턴스의 가용자를 키워 더 로드를 감당한다.
* 어디까지나 한 인스턴스를 키우는 것이기 때문에 확장이 제한된다.
수평 확장(horizontal scaling)
* 더 많은 인스턴스를 만들어서 더 큰 로드를 감당한다.
* 수평 확장이 가능한 구조이고 운영 비용만 감당할 수 있다면, 많은 로드를 감당할 수 있다.
* 단점
* 표준의 부재
* SQL에 비해 약한 query capability
* data consistancy를 애플리케이션 레벨에서 보장해야 함.
nosql 디비의 종류
* Key-Value
* Document
* Graph
Key-Value
* Redis, NWS DynamicDB
* 모든 레코드 key-value=의 페어이다.
* value는 어떤 값이든 될 수 있다.
* noSQL 디비 가장 단순한 형태
Document -based
* DynamoDB,Couch DB
* 각 레코드가 하나의 문서가 된다.
* 문서는 디비에 따라 xml, yaml, json, bson등을 사용
* 문서의 내부적 구조가 있기 때문에 쿼리 최적화, 활용성 높은 api가 제공된다.
Graph-based
* Neo4j, AWS Nepture
* 그래프 이론을 바탕으로, 디비를 그래프로 표현이다*
* 그래프는 model과 관계, 그리고 property로 일어진다.
* 관계가 first-class-citizen이기 때문에 관계 기반 문제에 유리하다고 하다.
Node.js
NoSQL
728x90
반응형
728x90
반응형
댓글