최근에 NoSQL이라는 데이터 저장기술이 많이 활용된다고 들었다. 내가 주로 사용하는 데이터 저장기술은 MySQL이지만 아무래도 최근 떠오르는 기술이기 때문에 면접에서도 자주 언급이 된다고 하길래 간단하게 한 번 정리해보려고 한다.
NoSQL은 Not Only SQL의 약자로써 기존 관계형 데이터베이스(RDBMS)보다 더 융통성 있는 데이터 모델을 사용하고 데이터의 저장 및 검색을 위한 특화된 메커니즘을 제공하는 데이터 저장기술을 의미한다.
이를 통해 NoSQL 데이터베이스는 단순 검색 및 추가 작업에 있어서 매우 최적화된 키값 저장 기법을 사용하여 응답속도나 처리 효율 등에 있어서 매우 뛰어난 성능을 나타낸다.
NoSQL의 특징은 다음과 같다.
1. 관계형 모델을 사용하지 않으며 테이블 간 연결해서 조회할 수 있는 조인 기능이 없음
- RDBMS는 외래 키를 활용하여 서로 다른 테이블끼리 Join 등의 관계형 연산을 수행
- NoSQL의 테이블은 그냥 하나의 테이블이며 다른 테이블끼리의 관계를 정하지 않음
2. 데이터 조회를 위해 직접 프로그래밍하는 등의 비 SQL 인터페이스를 통한 데이터 접근
3. 대부분 여러 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성
- RDBMS는 하나의 서버에 데이터를 저장한다면 NoSQL은 여러 개의 서버를 연결하여 데이터를 저장 및 처리
- 분산형 구조를 가지기 때문에 한 서버에 장애가 발생하여도 다른 서버에서 처리 가능
4. 관계형 데이터베이스에서는 지원하는 데이터 처리 완결성(Transaction, ACID 지원)이 보장되지 않음
5. 데이터의 스키마와 속성들을 다양하게 수용하고 동적으로 정의
- RDBMS와 달리 고정된 스키마를 가지지 않음
- 즉, 데이터를 저장하는 컬럼이 다른 이름, 다른 데이터 타입을 가지는 것을 허용
6. 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
- 분산형 구조를 가지기 때문
7. 대부분 Open Source로 제공
8. 유연성, 확장성, 고성능, 고기능성 등의 특징을 가짐
NoSQL은 초고용량 데이터 처리 등 성능에 특화된 목적을 위해 비 관계형 데이터 저장소에 비 구조적인 데이터를 저장하기 위한 분산 저장 시스템
NoSQL의 종류는 다음과 같다.
Key-Value DB
- Key와 Value의 쌍으로 데이터가 저장되는 유형으로써 Amazon의 Dynamo Paper에서 유래됨
- Riak, Vodemort, Tokyo
Wide Columnar DB
- Big Table DB라고도 하며, Google의 BigTable Paper에서 유래됨
- Column Family 데이터 모델을 사용
- Hbase, Cassandra, Hypertable
Document DB
- Lotus Notes에서 유래되었으며, JSON, XML과 같은 Colletion 데이터 모델 구조를 채택
- Mongo DB, Cough DB
Graph DB
- Euler & Graph Theory에서 유래한 DB
- Nodes, Relationship, Key-Value 데이터 모델을 채용
- Neo4J
[ Reference ]
· https://jwprogramming.tistory.com/70
· https://aws.amazon.com/ko/nosql/
'Computer Science > 데이터베이스' 카테고리의 다른 글
트랜잭션 고립화 레벨(Transaction Isolation Level) (0) | 2021.07.11 |
---|---|
개인키(대칭키) vs 공개키(비대칭키) (0) | 2021.07.10 |
인덱스(Index) (0) | 2021.07.10 |
DML - JOIN (0) | 2021.07.10 |
키(Key)의 종류 (0) | 2021.07.09 |
댓글