[MongoDB]-NoSQL 데이터베이스란?

hannah·2023년 11월 2일
0

db

목록 보기
2/6

NoSQL 데이터베이스란?

NoSQL은 비관계형 데이터베이스를 지칭한다.
즉, 관계형 데이터 모델을 지양 하며 대량의 분산된 데이터를 저장하고 조회하는 데 특화되었으며 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소를 말한다.

NoSQL은 기존 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태이다.

👉 NoSQL 데이터베이스 사용 이유

NoSQL 데이터베이스는 탁월한 사용자 경험을 제공하기 위하여 유연성과 확장성을 비롯해 고성능의 매우 기능적인 데이터베이스를 필요로 하는 모바일, 웹이나 게이밍과 같은 다양한 현대적인 애플리케이션에 적합하다.

  1. 유연성
    NoSQL 데이터베이스는 일반적으로 유연한 스키마를 제공하여 보다 빠르고 반복적인 개발을 가능하게 해준다. 이같은 유연한 데이터 모델은 NoSQL 데이터베이스를 반정형 및 비정형 데이터에 이상적으로 만들어 준다.

  2. 확장성
    NoSQL 데이터베이스는 일반적으로 고가의 강력한 서버를 추가하는 대신 분산형 하드웨어 클러스터를 이용해 확장하도록 설계되어있다. 일부 클라우드 제공자들은 완전관리형 서비스로서 이런 운영 작업을 보이지 않게 처리한다.

  3. 고성능
    NoSQL 데이터베이스는 특정 데이터 모델 및 액세스 패턴에 대해 최적화되어 관계형 데이터베이스를 통해 유사한 기능을 충족하려 할 때보다 뛰어난 성능을 얻게 해준다.

  4. 고기능성
    NoSQL 데이터베이스는 각 데이터 모델에 맞춰 특별히 구축된 뛰어난 기능의 API와 데이터 유형을 제공한다.

  5. 가용성
    여러 서버, 데이터 센터, 클라우드 리소스 전반의 데이터를 자동으로 복제한다. 그 결과 사용자의 위치와 상관없이 사용자 대기시간이 최소화된다. 이 기능은 데이터베이스 관리 부담을 줄이는 데에도 효과적이라서 덕분에 더 많은 시간을 우선 순위에 할애할 수 있다.

👉 NoSQL 데이터베이스 사용하면 안되는 이유

  1. 비정규화된 데이터, 참조를 사용해 데이터 관계를 모델링하지 않음
    데이터 변형 및 데이터 중복을 방지하기 위해 고도로 정규화된 데이터에 의존하는 대다수의 금융, 회계, 기업 리소스 계획을 위한 고전적인 백오피스 비즈니스 애플리케이션은 NoSQL 데이터베이스에 어울리지 않는 유형이다.

  2. 쿼리 복잡성
    NoSQL 데이터베이스는 단일 테이블에 대한 쿼리 작업에 아주 잘 작동하지만 쿼리의 복잡성이 높아지는 경우, 관계형 데이터베이스를 사용하는 것이 더욱 적합하다. NoSQL 데이터베이스는 보통 복잡한 조인, 하위 쿼리 및 WHERE 절에서의 중첩 질의를 제공하지 않는다.

👉 NoSQL의 종류

1. Key-Value Database

기본적인 패턴으로 KEY-VALUE 하나의 묶음(Unique)으로 저장되는 구조로 단순한 구조이기에 속도가 빠르며 분산 저장 시 용이하다.
Key 안에 (COLUMN, VALUE) 형태로 된 여러 개의 필드, 즉 COLUMN FAMILIES를 갖는다.
주로 SERVER CONFIG, SESSION CLUSTERING등에 사용되고 엑세스 속도는 빠르지만, SCAN에는 용이하지 않다.
e.g. Redis, Oracle NoSQL Database, VoldeMorte

2. Wide-Column Database

행마다 키와 해당 값을 저장할 때마다 각각 다른값의 다른 수의 스키마를 가질 수 있다.
사용자의 이름(key)에 해당하는 값에 스키마들이 각각 다르다.
대량의 데이터의 압축, 분산처리, 집계 쿼리 (SUM, COUNT, AVG 등)및 쿼리 동작 속도 그리고 확장성이 뛰어난 것이 그 대표적 특징이다.
e.g. Hbase, GoogleBigTable, Vertica

3. Graph Database

데이터를 노드(도형)로 표현하며 노드 사이의 관계를 엣지(선)로 표현한다.
일반적으로 RDBMS 보다 성능이 좋고 유연하며 유지보수에 용이한 것이 특징이다.
Social networks, Network diagrams 등에 사용할 수 있다.
e.g. Neo4j, BlazeGraph, OrientDB

4. Document Database

테이블의 스키마가 유동적, 즉 레코드마다 각각 다른 스키마를 가질 수 있다.
보통 XML, JSON과 같은 DOCUMENT를 이용해 레코드를 저장한다.
트리형 구조로 레코드를 저장하거나 검색하는 데 효과적이다.
e.g. MongoDB, CouchDB, Azure CosmosDB

🌀 관계형 VS 비관계형 데이터베이스

꼭 관계형 및 비관계형 데이터베이스 중 선택해야 하는 건 아니다. 많은 경우 기업들은 관계형 및 비관계형 데이터 모델을 결합해 적용할 수 있는 컨버지드 모델을 제공하는 데이터베이스를 선택한다고 한다. 이 하이브리드 접근 방식은 다양한 데이터 유형을 처리할 수 있는 유연성을 제공하는 동시에 성능 저하 없이 일관적인 읽기 및 쓰기를 보장한다.


참고사이트1
참고사이트2

0개의 댓글