본문 바로가기
CS/Database

[데이터베이스] NoSQL(Not Only SQL)

by 테리는당근을좋아해 2020. 6. 24.

NoSQL(Not Only SQL)

- SNS에 확대로 인해 비정형 데이터가 대량으로 생산됨에 따라 주목

- Not Only SQL(SQL을 부정하는 것이 아닌 개선/보안의 의미)

- 대량의 분산된 데이터를 저장하고 조회하는데 특화

- 스키마 없이 사용 가능하거나, 느슨한 스키마 제공

 

1) CAP 이론

(1) 일관성(Consistency)

- 다중 클라이언트에서 같은 시간에 조회하는 데이터는 항상 동일한 데이터임을 보증

 

(2) 가용성(Availability)

- 모든 클라이언트의 읽기와 쓰기 요청에 대해 항상 응답이 가능해야함을 보장

 

(3) 네트워크 분할 허용성(Partition Tolerance)

- 지역적으로 분할된 네트워크 환경에서 동작하는 시스템에서 두 지역 간의 네트워크가 단절되거나 데이터 유실이 발생하더라도 각 지역 내의 시스템은 정상적으로 동작하는 것을 보장

 

2) NoSQL의 특징

- 비 관계형 모델로 JOIN 불가

- RDBMS에 비해 대용량의 데이터 처리 및 저장에 대해 높은 효율성

- 직접 프로그래밍 하는 등의 비 SQL 인터페이스를 통한 데이터 액세스 제공

- 분산형 구조로 분산 시 데이터를 상호 복제해 특정 서버에 장애가 발생해도 데이터 유실 또는 서비스 중지가 ㅇ벗는 형태의 구조

- 스키마와 속성들을 다양하게 수용 및 동적 정의 가능(Schema-less)

- 확장성, 가용성 및 높은 성능

 

3) 저장방식에 따른 NoSQL 분류

(1) Key - Value 모델

- Key와 Value의 쌍으로 데이터를 저장하는 구조

- Key는 중복될 수 없고 유일하며, 접근을 위해 사용

- Redis

 

(2) Ordered Key - Value 모델

- Key - Value 모델과 동일하지만 내부적으로 Key를 기준으로 정렬상태를 유지

- Ordered by를 제공하지 않는 NoSQL에서 다양한 방법으로 활용 가능

- HBase, Cassandra

 

(3) Document Key - Value 모델

- Key - Value 모델에서 확장된 형태

- Value의 타입이 Document라는 구조화된 데이터 타입(JSON, XML 등)등을 사용

- 복잡한 계층 구조 표현 가능

- 제품에 따라 sorting, join, grouping 등 RDB와 같은 기능 제공

- MongoDB

 

(4) Column 모델

 

(5) Graph 모델

 

댓글