컴퓨터(Computer Science)/데이터베이스, DB, DataBase

NoSQL 이란

게임이 더 좋아 2022. 12. 23. 20:32
반응형
728x170

Not Only SQL 이란 뜻이다.

충분히 SQL도 복잡한데.. 왜 NoSQL이란게 나왔냐??라고 한다면

RDBMS처럼 요즘 많이 쓰는 관계형 DBMS의 한계를 극복하기 위해서 새롭게 수평적 확장을 할 수 있도록 만든 포맷이다.

알아보자

 


 

그렇다면 어떤 사람들이 NoSQL을 필요로할까????

대표적으로 2가지라고 말할 수 있다.

데이터 규모의 확대되는 서비스
저장할 데이터가 많아지면서 읽기/쓰기에 있어서 RDB가 제약 요소가 됨
RDB의 수평적 확장성 한계로 새로운 해결책이 필요

 

웹 서비스처럼 구조가 변화무쌍한 서비스
저장할 데이터의 형태가 계속 변화
사용자의 데이터 요구가 일관적이지 않고 다양
 

 

NoSQL이 어떤 특징을 가지고 있는데???

 

기본적으로 key & value 로 저장하지만
여러가가지로 Wide Columnar Store
Document DB
Graph DB 등이 있다.

 
분산 환경 지원
다수가 Open Source로 제공
데이터베이스의 중단 없는 서비스와 자동 복구 기능지원
엄청난 양의 데이터를 처리할 수 있는 용량 데이터의 빠른 인덱
수평적 확장
관계형 데이터베이스에서는 지원하는 Data처리 완결성(Transaction ACID 지원) 미보장
데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의 (Schema-less)
관계형 모델을 사용하지 않으며 테이블간의 조인 기능 없음
직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 액세스

대부분 여러 대의 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성

 


 

대부분 NoSQL DB는 특정 서비스에 대해 성능을 위해 쓰곤 한다.

요약하자면

초고용량 데이터 처리 등 성능에 특화된 목적을 위해,

비관계형 데이터 저장소에,

비구조적인 데이터를 저장하기 위한

분산 저장 시스템을 위해 쓴다.

 

 

 

 
 

 

DB 에는 CAP 이라는 것이 있다.
Consistency(지속성) => 같은 쿼리는 같은 결과를 이끌어낸다.
Availability(가용성)=> 하나의 노드가 장애가 있더라도 다른 노드들로 결과를 같은 결과를 낸다.
Partition tolerance(분할 강인성)=> 데이터의 손실이 있더라도 시스템은 작동한다.

라는 것인데
모두 가질 순 없고 2가지만 가질 수 있다는 원칙이다.

 

 

 

C + A : RDBMS가 보통 가짐
시스템이 죽을지언정 메시지 손실은 방지
A + P : 다이나모 DB
비동기화된 서비스 스토어에 알맞음
C + P : MongoDB
모든 노드가 함께 퍼포먼스를 보여줌




참고링크

https://www.samsungsds.com/kr/insights/1232564_4627.html

 

 

728x90
반응형
그리드형

'컴퓨터(Computer Science) > 데이터베이스, DB, DataBase' 카테고리의 다른 글

Redis 와 Memcached  (0) 2022.12.01
DB 기본 용어  (0) 2022.12.01
Index, 인덱스  (0) 2022.12.01
Key, 키  (0) 2022.12.01
DB 파티셔닝, Partitioning  (0) 2022.11.19