NoSQL
(Not Only SQL)
- 개념
- NoSQL은 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어
- 데이터 저장에 고정된 스키마가 필요하지 않고, 조인연산을 사용할 수 없다.
- 수평적으로 확장이 가능한 DBMS
- 특성
- 관계형 모델을 사용하지 않는 데이터 저장소 또는 인터페이스이며,
대규모 데이터를 처리하기 위한 기술로 확장성, 가용성, 높은 성능을 제공한다. - 스키마-리스로 고정된 스키마 없이 자유롭게 데이터베이스의 레코드에 필드를 추가할 수 있다.
- 대부분 오픈 소스이다.
- 종류
- 구글 BigTable
- 아파치 HBase
- 아마존 SimpleDB
- 마이크로소프트 SSDS
- 관계형 모델을 사용하지 않는 데이터 저장소 또는 인터페이스이며,
- 데이터 저장 방식에 따른 분류(유형)
- Key - Value
- Redis, DynamoDB
- Column
- HBase, Cassandra
- Document
- MongoDB, Couchbase
- Graph
- Neo4j, BlazeGraph, OrientDB
- Key - Value
- CAP이론
- 개념
- 분산 컴퓨팅 환경은 Availability, Consistency, Partition Tolerance 3가지 특징을 가지고 있다.
- 이 중 2가지만 만족할 수 있다는 이론
- NoSQL은 CAP이론을 기반으로 하고 있다.
- 특성
- 유효성(A)
- 모든 클라이언트가 읽기 및 쓰기가 가능해야 한다는 특성
- 하나에 노드에 장애가 일어나더라도 다른 노드에는 영향을 미치면 안되는 특성
- 일관성(C)
- 모든 사용자에게 같은 시간에는 같은 데이터만 보여주어야 한다
- 분산가능(P)
- 물리적 네트워크 분산 환경에서 시스템이 원활하게 동작해야 한다
- 네트워크 전송 중 데이터 손실 상황이 생겨도 시스템은 정상적으로 동작해야 한다.
- 유효성(A)
- 개념
데이터 유형별 저장방식 수립
데이터 유형 | 요구 데이터 종류 | 저장 시스템 사례 |
정형 데이터 | RDB, Excel | RDB(Oracle, MSSQL, MySQL, PostgreSQL) |
반정형 데이터 | HTML, XML, JSON, 웹문서, 웹로그, 센서 데이터 |
RDB, NoSQL(MongoDB, Redis, HBase, Cassandra) |
비정형 데이터 | 소셜 데이터, 문서(워드, 한글), 이미지, 오디오, 비디오, IoT |
NoSQL, HDFS |
댓글