참고문헌 : 빅 데이터 시대를 위한 NoSQL 핵심 가이드 (Tatsuya Sasaki 저, 로드북)
프로젝트에서 사용하는 데이터베이스가 MongDB 로 변환되면서 NoSQL 형식의 MongoDB 뿐 아니라 NoSQL 데이터베이스 종류를 공부하고자 합니다. 포스팅은 위 책을 참고하여 진행하였습니다.
데이터베이스의 분류
- 계층형 데이터베이스 : 단순한 트리모형, 상위-하위 개념, 중복 현상이 문제가 됨
- 네트워크형 데이터베이스 : 데이터 중복 현상 제거, 관계 복잡하다는 문제를 가짐
- 관계형 데이터베이스 : 모든 데이터를 행과 열의 이차원 표 형식으로 만들어 이해하기가 쉬움
관계형 데이터베이스의 장점
- 범용적이며 고성능
- 데이터의 알관성 보장( 트랜잭션 )
- 정규화를 전제로 하고 있어 갱신 시 비용 감소
- JOIN 이나 복잡한 검색 조건으로 검색 가능
- 참고자료나 노하우가 많이 있음
* 정규화 : 데이터베이스 설계 시 불필요한 중복 줄이는 것
* JOIN : 서로 다른 테이블에서 데이터를 가져와서 쿼리를 수행, 결과를 출력하는 것
관계형 데이터베이스의 약점
- 대량의 데이터 입력 처리
- 갱신이 발생한 테이블의 ㅇ니덱스 생성이나 스키마 변경
- 컬럼을 확정하기 어려운 경우의 이용
- 단순히 빨리 결과를 내놓아야 할 때
* 인덱스 : 데이터 검색을 빠르게 하기 위해 테이블마다 키값을 기반으로 만들어지는 색인
* 스키마 : 데이터베이스 구조와 데이터 타입, 관계 등을 정의한 명세로 데이터 딕셔너리에 저장되며 메타 데이터라고도 불림
NoSQL 데이터베이스
- 데이터 분산이 용이
- 스케일 업과 스케일 아웃
- 데이터를 가볍게 캐시Cashe하고 싶을 때
- 배열 형식의 데이터를 고속으로 처리하고 싶을 때
- 전부 보존하고 싶을 때
NoSQL 데이터베이스의 종류
휘발성 key-value형 스토어 | 영속성 key-value형 스토어 | 문서형 데이터베이스 | 컬럼형 데이터베이스 |
memcached | Tokyo Tyrant | MongoDB | Cassandra |
(Redis) | Flare | CouchDB | HBase |
ROMA | Hyper Table | ||
(Redis) |
key-value형 스토어
데이터 유지 방식
- 휘발성 : memcached , 데이터가 사라질 가능성이 있다
- 메모리에 데이터 보존
- 굉장히 빠른 데이터의 입출력이 가능
- 데이터가 사라질 가능성이 있음
- 영속성 : Tokyo Tyrant, Flare, ROMA : 데이터가 보존된다 (메모리에 데이터를 보관하는 것이 아니라, 디스크에 데이터 보관)
- 메모리, 디스크 양쪽에 데이터 보관
- 고속으로 데이터 입출력 가능
- 데이터 중 디스크에 입력된 부분은 사라지지 않음 ( 복구 가능)
- 배열 형식의 데이터 처리에 강함
문서형 데이터베이스 : MongoDB, CouchDB
- 스키마를 정의할 필요가 없음(Schemaless)
- 복잡한 검색 조건 이용 가능
컬럼형 데이터베이스 : Cassandra, HBase, HyperTable
ROW형 데이터베이스와 컬럼형 데이터베이스
- 일반적으로 관계형 데이터 베이스는 행 단위로 데이터 관리 : 데이터 검색과 같은 행 단위 데이터 읽기에 강함
- 관계형 데이터를 Row형 데이터베이스라고 부르기도 함
- 컬럼형 데이터 베이스 : 컬럼 단위로 데이터 관리, 컬럼 단위로 데이터를 읽고 쓰는 처리에 강함
데이터형 | 데이터의 수납 | 강점 | 특징 |
Row형 데이터베이스 | 행 단위 | 적은 수의 행의 출력, 갱신 | |
컬럼형 데이터베이스 | 열 단위 | 대량의 행에 해당되는 적은 수의 열의 출력, 모든 행에 대한 특정 열의 일괄 갱신 | 강력한 확장성( 특히 쓰기) 사용이 많이 어려움 |
'2021-1 > RDA' 카테고리의 다른 글
NoSQL | Redis (휘발성/영속성 ket-value 형 스토어) (0) | 2021.10.05 |
---|---|
NoSQL | Tokyo Tyrant ( 영속성 key-value형 스토어) (0) | 2021.10.05 |
NoSQL | memcached (0) | 2021.10.05 |
MongoDB | 기본 명령어 숙지하기 (0) | 2021.10.04 |
MongoDB | 이해하기 (0) | 2021.10.01 |