1. NoSQL 이란
Not Only SQL (또는 Non-Relational Operational DataBase)의 약자로 비관계형 데이터베이스를 말합니다.
NoSQL은 기존 우리가 많이 접해본 RDBMS와 같은 관계형 데이터 모델을 지양합니다.
그리고 대량의 분산된 비정형 데이터를 저장하고 조회하는데 특화된 데이터베이스로 스키마 없이 사용할 수 있어
느슨한 스키마를 제공하는 저장소입니다.
그리하여 주로 빅데이터나 분산 시스템 환경에서 대량의 데이터 즉, 대용량 데이터를 처리하는데 적합하다고
볼 수 있습니다.
* 기존 관계형 데이터 모델인 RDBMS는 Consistency와 Availability에 중점을 두었다면,
비관계형 데이터 모델인 NoSQL은 Scalability와 Availability에 중점을 두고 있습니다.
2. NoSQL 특징
1) RDBMS와 다르게 데이터 간의 관계 (Relation) 를 따로 정의하지 않습니다.
--> RDBMS는 데이터 간의 관계를 Foreign Key로 정의하고 Join 연산을 수행하여 사용하지만,
NoSQL은 Key-Value 형태로 저장이 되기 때문에 Join 연산이 불가능하게 됩니다.
2) RDBMS에 비해 대량의 데이터를 저장할 수 있습니다.
3) 분산형 구조로 설계되어 있습니다.
여러 곳의 서버에 데이터를 분산시켜 저장하기에 특정 서버에 장애가 발생하여도 데이터 유실 혹은 서비스 중지와 같은 문제가 발생하지 않도록 할 수 있습니다.
4) 고정되지 않은 테이블 스키마를 가집니다.
RDBMS와 다르게 테이블(컬렉션)의 스키마가 유동적이고 데이터를 저장하는 컬럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용이 됩니다.
3. NoSQL 장단점
- 장점
1) RDBMS에 비해서 저렴한 비용으로 분산처리와 병렬 처리가 가능합니다.
2) 비정형 데이터 구조 설계로 비용이 감소합니다. (1번과 유사)
3) 빅데이터 처리에 효과적입니다.
4) 가변적인 구조로 데이터 저장이 가능합니다.
5) 데이터 모델의 유연한 변화가 가능합니다.
- 단점
1) 데이터 업데이트 중에 장애가 발생하게 되면 데이터 손실이 발생할 가능성이 있습니다.
2) 많은 인덱스를 사용하기 위해서는 충분한 메모리가 필요합니다. 즉, 인덱스 구조가 메모리에 저장이 됩니다.
3) 데이터 일관성이 항상 보장되지는 않습니다.
--> 따라서 최종적 일관성 (Eventually Consistent)을 지향하게 됩니다.
4. NoSQL 종류
NoSQL 데이터베이스의 종류는 아래와 같이 4가지 종류가 있습니다.
1) Key-Value DataBase
ex) Redis, Oracle NoSQL, VoldeMorte ...
2) Wide-Column DataBase
ex) Hbase, Cassandra, GoogleBig Table, Vertica ...
3) Document DataBase
ex) MongoDB, CouchDB, Riak, Azure Cosmos DB ...
4) Graph DataBase
ex) Sones, AllegroGraph, neo4j, BlazeGraph, OrientDB ...
* '아주 간결'하게 NoSQL 에 대한 글을 작성해보았습니다..! :)
* 참고 및 참조
NoSQL이란 무엇인지 간단하게 알아보자!
1) NoSQL (1) NoSQL이란 Not Only SQL 혹은 Non-Relational Operational DataBase의 약자로 비관계형 데이터베이스를 지칭한다. 기존의 RDBMS와 같은 관계형 데이터 모델을 지양하며 대량의 분산된 비정형 데이터를
shuu.tistory.com
[NoSQL] NoSQL 입문 / 개념
NoSQL NoSQL이란 Not Only SQL 라고 불리는 구조가 없는 데이터를 저장하기 위한 분산 저장 시스템을 말한다. 일반적으로 RDBMS와 반대 개념으로 사용된다. NoSQL의 예시로 MongoDB(Document DB), Redis(Key-Value DB)
datamoney.tistory.com
* 이미지 소스
'DataBase' 카테고리의 다른 글
23_데이터 모델링 (0) | 2022.12.22 |
---|---|
22_ 패키지 (0) | 2022.12.22 |
21_ 저장 프로시저, 저장함수, 커서, 트리거 (0) | 2022.12.21 |
20_PL/SQL 기초 (4) | 2022.12.21 |
19_동의어 (0) | 2022.12.20 |