728x90
반응형
NoSQL의 등장배경
- RDB(관계형 데이터베이스)를 대신할 새로운 대안의 필요성이 제기 되었다.
- 정형화된 데이터를 주로 처리하는 RDB는 빠른 속도로 대량 생산되는 다양한 유형의 비정형 데이터를 저장 및 관리하는데 적합하지 않다.
- 단일 컴퓨터 환경에서 주로 사용되는 RDB는 여러 컴퓨터가 연결되어 하나의 시스템을 구성하는 클러스터 환경에서는 확장성 측면에서 비효율적이다.
- 이러한 문제점들을 해결하려고 제안된 것이 NoSQL이다.
NoSQL이란?
- 빠른 속도로 생성되는 대량의 비정형 데이터를 저장하고 처리 목적이다.
- ACID(원자성, 일관성, 격리성, 지속성)를 위한 트랜잭션 기능을 제공하지 않는다.
- 대신 저렴한 비용으로 분산된 컴퓨터에 데이터를 분산, 저장, 처리하는 것이 가능한 데이터베이스이다.
- 특징
- 관계 모델보다 더 융통성 있는 데이터 모델 사용한다.
- 스키마 없이 동작하기 때문에 데이터 구조를 미리 정의할 필요 없이 수시로 그 구조를 바꿀 수 있음 - 비정형 데이터 저장에 적합하다.
- 대부분 오픈소스로 제공한다.
- SQL 대신 별도의 분석 기술을 이용해 데이터를 읽어야한다.
NoSQL은 RDB의 경쟁자가 아니다!
- NoSQL은 대량 데이터 생성, 수정보단 삽입 연산 위주의 데이터 저장 관리 용도이다.
- RDB는 조인과 같은 복잡한 질의 처리, 일관성이 중요한 데이터 저장, 정형화 데이터를 관리 저장하는 용도이다.
NoSQL의 종류
- 키 - 값(Key-Value) DB
- 문서 기반(Document-based) DB - MogoDB가 이것에 해당한다.
- 컬럼 기반(Column-based) DB
- 그래프 기반(Graph-based) DB
문서기반 데이터베이스(Document-based DB)
- 키와 문서의 쌍으로 데이터 저장
- 트리 형태의 계층적 구조가 존재하는 JSON, XML 등과 같은 반정형 형태의 문서로 데이터 저장.
- 문서는 객체지향에서 객체의 개념과 유사하다.
- 키-값 데이터 모델이 확장된 형태이다.
- 문서 전체를 검색하는 것도 가능하지만, XQuery와 같은 특별한 문서 대상 질의 언어를 이용하면 문서 내의 일부를 검색할 수도 있다.
- 대표적인 예 : MogoDB, CouchDB 등
728x90
반응형
'DB > MongoDB' 카테고리의 다른 글
[MongoDB] 6. 기본 명령어 - find() (0) | 2022.09.29 |
---|---|
[MongoDB] 5. MongoDB 시작 (0) | 2022.09.29 |
[MongoDB] 4. MongoDB 환경 (0) | 2022.09.29 |
[MongoDB] 3. MongoDB란? (0) | 2022.09.29 |
[MongoDB] 2. JSON (0) | 2022.09.29 |