본문 바로가기
빅데이터 부트캠프/MongoDB

빅데이터 부트캠프 46일차 (NoSQL)

by Mecodata 2022. 9. 7.

NoSQL 정의

- RDBMS의 한계(스키마 문제, 스케일업 한계)를 극복하기 위해 만들어진 새로운 형태의 DBMS

※ 스케일 업(scale-up) = 기존 서버를 더 높은 사양으로 업그레이드하는 것 - 수직 스케일링

    스케일 아웃(scale-out) = 기존 서버에 비슷한 성능의 서버연결(추가)하여 서버를 확장하는 것 - 수평 스케일링

- 비관계형 데이터 베이스

 

NoSQL, RDBMS 비교

- RDBMS = 테이블 기반, Scale-up

- NoSQL = 테이블 기반 X, Scale-out

- 트랜잭션 성질

RDBMS = ACID(Atomicity 원자성, Consistency 일관성, Isolation 고립성, Durability 지속성) 

NoSQL = CAP(Consistency 일관성, Availability 가용성, Partition tolerance 파티션 허용)

※ 트랜잭션(transaction) = 데이터베이스의 상태를 변화시키기 위해 수행하는 업무 처리의 최소 단위

 

ACID

- 원자성(Atomicity) = 부분적으로 실행되다가 중단되는 것을 방지하는 성질
- 일관성(Consistency) = 데이터는 항상 일관성 있는 상태를 유지해야 하고 조작 후에도 무결성유지해야 함
- 고립성(Isolation) = 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미
- 지속성(Durability) = 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미

 

CAP

- 가용성(Availability) = 어떤 일이 발생하더라도 서비스가 가능해야 함
- 일관성(Consistency) = 데이터가 하나의 노드에 기록될 때마다 이 데이터는 쓰기가 '성공'으로 간주되기 전에 시스템의 다른 모든 노드로 즉시 전달되거나 복제해야 함
- 파티션 허용(Partition tolerance) = 시스템의 노드 간에 다수의 통신 단절에도 불구하고 클러스터가 계속해서 작동해야 함 (Scale-out을 가능하게 하는 성질)                                                        

 

NoSQL 종류

키-값 모델

- 테이블 형태가 아닌 json 형식(키-값)으로 데이터 저장 (스키마 존재 X)

- 키 안에 또 다른 키 생성하여 특정값 지정 가능

- Radis, Oracle Coherence

 

문서형 모델 
- 키-값 모델의 집합을 문서로 저장 
- 데이터를 따로 매핑하지 않고 집어넣으면 알아서 잘 저장
- 데이터 가공은 어려움
- MongoDB, CouchDB, Riak

컬럼형 모델
- 데이터의 저장을 column 단위로 처리
- 분석에 좋음
- 높은 압축률
- SimpleDB, BigTable

그래프형 모델
그래프로 데이터 표시 및 저장
통계에는 부적합

- Neo4J

댓글