▣ NoSQL 특징 및 제품 분류, CAP 이론, Consistency 일관성, Availability 가용성, Partition Tolerance 파티션 허용, 분할내성, 부분 결함 허용
1. CAP 이론
- Consistency(일관성) : 모든 사옹자는 같은 데이터의 뷰를 가짐
- Availability(가용성) : 모든 사용자는 항상 데이터 사용이 가능해야 함
- Partition Tolerance(파티션허용, 분할 내성, 부분 결함 허용) : 분산된 특정 노드에 장애가 발생해도 데이터 사용이 가능
* NoSQL : CAP 이론 중 CP or AP 즉, 가용성과 파티션 오류허용(부분 결함 허용)을 강조한 모델
* 관계형DB : CAP 이론에서 CA, 일관성과 가용성을 강조한 모델
2. NoSQL 제품 분류
키-값 Key-Value |
문서형 Document based |
컬럼형 Column-Family |
그래프형 Graph based |
가장 단순한 모델로 키(key)와 Binary Type의 값을 저장하는 구조 데이터 조회는 키로만 가능 |
스키마를 명세할 필요 없음 데이터의 저장단위가 문서가 됨(데이터는 키와 문서의 형태로 저장) 구조화된 문서 데이터(XML, JSON, YAML 등)저장 한문서내에 여러 개의 필드와 값을 저장 질의는 XQuery등을 통해 수행 개별데이터 복합개체와 흡사함 JASON과 같이 잘 알려진 포맷으로 저장 |
데이터는 컬럼에 저장되며 테이블 컬럼 등과 같이 스키마가 존재하는 모델 질의는 Row, column-family, column-name을 통해 수행 |
개체와 관계를 그래프 형태로 표현 질의는 그래프 순회를 통해 수행 그래프 이론에 기반(node, edge, property로 구성) 추천 엔진, 소셜 네트워크, 이상 탐지, 패턴인식, 시멘틱웹, 온톨로지 분야 등에 유용 관계 데이터 모델과 비슷하게 데이터는 물론 데이터 간의 관계를 표현하는데 적합 다른 NoSQL 모델과 달리 트랜잭션을 통해 ACID를 지원하며 클러스터 환경에도 적합하지 않음 연관데이터를 추천해주거나 소셜 네트워크에서 친구 찾기 질의를 효율적으로 수행하는데 적합함 |
Redis Riak Dynamo Level DB Scalaris Voldemort |
CouchDB MongoDB |
HBase Hypertable Cassandra Amazon SimpleDB Google BigTable |
Neo4J Infinite GraphDB HyperGraphDB VertexDB |
* Apache Hbase(CP)
* CouchDB(AP)
* MongoDB(CP)
3. NoSQL 주요 특징
- 분산 컴퓨팅 환경에서는 항상 ACID특성을 요구하지 않음
- 데이터의 정확성보다 중요한 것으로 높은 가용성을 요구함
- 오픈 소스로 개발비가 저렴함
- 다양한 노드에 중복 데이터를 갖고 있어 오류에 신속한 대응이 가능함
- RDBMS와 같은 정규화된 테이블 스키마를 요구하지 않음
- 데이터 모델링에서 RDBMS는 테이블 디자인이 중요하지만, NoSQL은 쿼리 디자인이 중요함
- 저장공간 확장이 용이함(Scale-out : 수평적 확장)
- NoSQL은 범용적이지 않으며, 특정 용도, 특정 조건에서만 사용할 수 있는 경우가 많음
- 조인 등 기존 RDBMS의 SQL 지원이 제한적임(Not Only SQL)
2017년 72번
정답 : 2번
JOIN 은 NoSQL 이 아닌 관계형 데이터베이스(RDBMS) 의 특징임
MongoDB의 문서(Document)는 RDBMS 의 행 ROW)에 해당함
MongoDB, Cassandra 등 NoSQL 데이터베이스도 인덱스 구조를 제공함(B-tree 사용)
2020년 64번
정답 : 3번
- Consistency(일관성) : 모든 사옹자는 같은 데이터의 뷰를 가짐
- Availability(가용성) : 모든 사용자는 항상 데이터 사용이 가능해야 함
- Partition Tolerance(파티션허용, 분할 내성, 부분 결함 허용) : 분산된 특정 노드에 장애가 발생해도 데이터 사용이 가능
2020년 67번
정답 : 1번
Document(문서)-기반의 솔루션을 설명하고 있음
대표적인 솔루션인 MongoDB는 데이터 입력시 데이터 구조 정보를 포함하여
JSON형식으로 저장하고, 관계형 DB의 테이블은 콜렉션(collection),
관계형DB의 레코드는 document라고 부름
2021년 62번
정답 : 1번
Graph 기반 솔루션을 설명하고 있음
관계 데이터 모델과 비슷하게 데이터는 물론 데이터 간의 관계를 표현하는데 적합
다른 NoSQL 모델과 달리 트랜잭션을 통해 ACID를 지원하며 클러스터 환경에도 적합하지 않음
연관데이터를 추천해주거나 소셜 네트워크에서 친구 찾기 질의를 효율적으로 수행하는데 적합함
개체와 관계를 그래프 형태로 표현
질의는 그래프 순회를 통해 수행
그래프 이론에 기반(node, edge, property로 구성)
개체의 트랜잭션 ACID 지원
클러스터링 환경에는 적합하지 않음
추천 엔진, 소셜 네트워크, 이상 탐지, 패턴인식, 시멘틱웹, 온톨로지 분야 등에 유용
한 대의 기계에서 수십억 노드와 관련계정보를 저장, 처리할 수 있으나
Scale-out 형태의 확장성은 떨어지는 특성이 있음
2013년 77번
정답 : 3번
NoSQL 제품군
키-값 Key-Value |
문서형 Document based |
컬럼형 Column-Family |
그래프형 Graph based |
가장 단순한 모델로 키(key)와 Binary Type의 값을 저장하는 구조 데이터 조회는 키로만 가능 |
스키마를 명세할 필요 없음 데이터의 저장단위가 문서가 됨(데이터는 키와 문서의 형태로 저장) 구조화된 문서 데이터(XML, JSON, YAML 등)저장 한문서내에 여러 개의 필드와 값을 저장 질의는 XQuery등을 통해 수행 |
데이터는 컬럼에 저장되며 테이블 컬럼 등과 같이 스키마가 존재하는 모델 질의는 Row, column-family, column-name을 통해 수행 |
개체와 관계를 그래프 형태로 표현 질의는 그래프 순회를 통해 수행 그래프 이론에 기반(node, edge, property로 구성) 개체의 트랜잭션 ACID 지원 클러스터링 환경에는 적합하지 않음 추천 엔진, 소셜 네트워크, 이상 탐지, 패턴인식, 시멘틱웹, 온톨로지 분야 등에 유용 |
Redis Riak Dynamo Level DB Scalaris Voldemort |
CouchDB MongoDB |
HBase Hypertable Cassandra Amazon SimpleDB Google BigTable |
Neo4J Infinite GraphDB HyperGraphDB VertexDB |
2014년 61번
정답 : 1번
CAP 이론
- Consistency(일관성) : 모든 사옹자는 같은 데이터의 뷰를 가짐
- Availability(가용성) : 모든 사용자는 항상 데이터 사용이 가능해야 함
- Partition Tolerance(파티션허용, 분할 내성, 부분 결함 허용) : 분산된 특정 노드에 장애가 발생해도 데이터 사용이 가능
* NoSQL : CAP 이론 중 CP or AP 즉, 가용성과 파티션 오류허용(부분 결함 허용)을 강조한 모델
* 관계형DB : CAP 이론에서 CA, 일관성과 가용성을 강조한 모델
2014년 86번
정답 : 2번
1) NoSQL(Not ONly SQL)의 이름이 지칭하는바를 봐도 알 수 있듯이 NoSQL은 SQL이나 관계형 데이터 모델을 사용하던 기존의 RDBMS와 다른 방식임을 의미함
2) NoSQL : CAP 이론 중 CP or AP 즉, 가용성과 파티션 오류허용(부분 결함 허용)을 강조한 모델
CAP 이론
- Consistency(일관성) : 모든 사옹자는 같은 데이터의 뷰를 가짐
- Availability(가용성) : 모든 사용자는 항상 데이터 사용이 가능해야 함
- Partition Tolerance(파티션허용, 분할 내성, 부분 결함 허용) : 분산된 특정 노드에 장애가 발생해도 데이터 사용이 가능
3) 분산환경은 스케일 아웃임
4) NoSQL은 기존의 RDMBS와 다르게 정형화된 데이터를 저장하는 방식이 아님
이미지, 텍스트 등 다양한 이질적인 데이터 저장을 기본 사상으로 하고 있음
2015년 64번
정답 : 3번