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
'빅데이터 부트캠프 > MongoDB' 카테고리의 다른 글
빅데이터 부트캠프 51일차 (0) | 2022.09.16 |
---|---|
빅데이터 부트캠프 50일차 (0) | 2022.09.15 |
빅데이터 부트캠프 47일차 (0) | 2022.09.08 |
빅데이터 부트캠프 46일차 (MongoDB) (0) | 2022.09.07 |
댓글