Information Security ˗ˋˏ ♡ ˎˊ˗

OS/Database

[DBMS] NoSQL 특징 및 종류

토오쓰 2022. 1. 17. 17:01

 

정의

No Only SQL

기존 관계형 DBMS가 갖고 있는 특징뿐만 아니라 다른 특성들을 부가적으로 지원한다는 것을 의미

데이터의 분산처리, 빠른 쓰기 및 데이터의 안정성이 필요할 때 사용, 특정 서버에서 장애가 발생했을 때 데이터 유실이나 서비스 중지가 없는 구조이기 때문에 많이 사용한다.

카를로 스트로찌(Carlo Strozzi)는 1998년 표준 SQL 인터페이스를 채용하지 않은 자신의 경량 오픈 소스 관계형 데이터베이스를 NoSQL이라고 명명했다.

 

특징

  • 정해진 규격이 없고 칼럼이 지정되지 않아 자유롭게 채울 수 있고 분산처리가 쉽다
  • RDBMS와 달리 데이터 간의 관계를 정의하지 않으며, 일반적으로 테이블 간의 Join기능이 없다.
  • 분산형 하드웨어 클러스터를 이용해 확장하도록 설계되었다.
  • 특정 데이터 모델 및 엑세스 패턴에 대해 최적화되어 관계형 데이터베이스를 통해 유사한 기능을 충족하려 할 때보다 뛰어난 성능을 얻게 해 준다.
  • 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
  • 다수의 제품이 오픈소스로 제공

 

Nosql 데이터 모델의 유형

Key-Value Key와 Value의 쌍으로 데이터가 저장되는 유형
제품: Cassandra DB, Dynamo DB, Redis
Column-Based 열 별로 연속적으로 저장하는 것
제품: HBase, Cassandra DB, Hypertable
Document-Oriented JSON, XML과 같은 Collection 데이터 모델 구조
제품: Mongo DB, Cough DB
graph Nodes, Relationship, Key-Value 데이터 모델
데이터 간의 관계를 그래프로 형성하고 통합 검색을 빠르게 할 수 있음

제품: Neo4J 등

1) Key-Value

Cassandra DB: 읽고 쓰기가 빠름, 10페타바이트 데이터 저장 가능, 넷플릭스/인스타그램/우버 같은 회사에서 사용

Dynamo DB: 서버리스, 분산된 Key Value, 아마존에서 만들었다. 보조 인덱스, 트랜젝션 적용

Redis: DB, Cache로 사용될 수 있는 기술, Memory 위에서 동작, 인메모리 솔루션

 

2) Column-Based

 

3) Document-Oriented

Mongo DB: Document에서 가장 유명한 DB이다. JSON Documentg 형태로 데이터를 저장, 원하는 모양이나 종류로 데이터 저장이 가능하다.

 

4) graph

Column이나 Document 필요 없을 때, 각 노드 사이의 관계를 알아야 할 때 

예를 들어 페이스북을 만든다면 필요한 DB이다.

각각의 엔티티를 저장하고 관계망으로 연결한다.

 

SQL과 NoSQL 비교

SQL NoSQL
정해진 규격 정해진 규격이 없음
Join 가능 Join 없음
트랜잭션 사용 트랜잭션 없음
분산처리 어려움 분산처리 쉬움
ACID ACID를 완벽히 구현하지 않고 “Eventual consistency” 개념 도입

 

CAP

분산형 구조는 일관성(Consistency), 가용성(Availability), 분산 허용(Partitioning Tolerance)의 3가지 특징을 가지고 있다.

CAP 이론은 이 중 2가지만 만족할 수 있다는 이론이다.

NoSQL은 대부분 이 CAP 이론을 따르고 있다.

  • 일관성(Consistency) : 분산된 노드 중 어느 노드로 접근하더라도 데이터 값이 같아야 한다. (데이터 복제 중에 쿼리가 되는 일관성을 제공하지 않는 시스템의 경우 다른 데이터 값이 쿼리 될 수 있다.)
  • 가용성(Availability) : 클러스터링된 노드 중 하나 이상의 노드가 실패라도 정상적으로 요청을 처리할 수 있는 기능을 제공한다.
  • 분산 허용(Partition Tolerance): 클러스터링 노드 간에 통신하는 네트워크가 장애가 나더라도 정상적으로 서비스를 수행한다. 노드 간 물리적으로 전혀 다른 네트워크 공간에 위치도 가능하다.

 

참고

https://lygggg.github.io/blog/NoSql/

https://hostingdata.co.uk/nosql-database/

 

NoSQL Databases List by Hosting Data - Updated 2021

The ultimate reference for NOSQL Database Management Systems. Includes Events, Links, Tools, News, Forums, Books, and much more...

hostingdata.co.uk

https://sjh836.tistory.com/97

 

NoSQL (개념, 특징과 장점, CAP 이론, 데이터모델 분류)

참조문서 : NoSQL을 여행하는 히치하이커를 위한 안내서 1. 개념 NoSQL은 Not Only SQL의 약자이다. 기본 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터베이스다. 릴레이션이 아니므로

sjh836.tistory.com

https://www.youtube.com/watch?v=Q_9cFgzZr8Q&t=106s