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 모델
'CS > Database' 카테고리의 다른 글
[데이터베이스] 클러스터링(Clustering) (0) | 2020.06.24 |
---|---|
[데이터베이스] 레플리케이션(Replication) (0) | 2020.06.24 |
[데이터베이스] WHERE / HAVING (0) | 2020.06.24 |
[데이터베이스] DELETE/ TRUNCATE / DROP (0) | 2020.06.24 |
[데이터베이스] 트리거(Trigger) (0) | 2020.06.24 |
댓글