처음 만난 AWS 문서


13.1 NoSQL

DynamoDB에 대해서 알아보기 전에 먼저 NoSQL의 개념에 대해서 한 번 짚어보도록 하겠습니다.

NoSQL은 Non SQL 또는 Non relational을 나타내는 말입니다.
즉, 관계가 없는 형태의 데이터베이스를 의미합니다.

그럼 NoSQL 데이터베이스 특징을 한 번 알아볼까요?

먼저 관계형 데이터베이스의 데이터 일관성 제약을 일부 완화함으로써, 수평적으로 확장 가능한 성능을 갖고 있습니다.
또한 개발하기에 용이하며 짧은 지연 시간 및 복원력을 갖고 있습니다.
이러한 NoSQL은 스키마 없는 데이터 모델에 최적화 되어 있습니다.

그리고 간단한 데이터 구조를 갖고 있으며, 열, 문서, 그래프, 인메모리 키-값 스토어 등의 다양한 데이터 모델을 사용할 수 있습니다.
그래서 빅데이터, 모바일 및 웹 애플리케이션에 사용하기에 매우 적합하다고 할 수 있습니다.


그렇다면 우리가 흔히 사용하는 RDBMS와 NoSQL 데이터베이스는 어떤 차이점이 있을까요?

먼저 RDBMS에서는 데이터를 유연하게 쿼리할 수 있지만, 대신 쿼리 비용이 상대적으로 높으며 트래픽이 많은 상황에서는 확장성이 떨어지게 됩니다.
반대로 NoSQL 데이터베이스에서는 몇 가지 제한 된 방법으로 데이터를 효율적으로 쿼리할 수 있으며, 그 외에는 쿼리 비용이 높고 속도가 느리다는 특징을 갖고 있습니다.

두 가지 종류의 데이터베이스를 테이블로 비교해보면 다음과 같습니다.

RDBMS vs NoSQL

관계형 데이터베이스는 스키마를 강제로 적용하지만, NoSQL 데이터베이스는 스키마를 강제로 적용하지 않습니다.

그리고 관계형 데이터베이스는 ACID 속성을 모두 지원하지만, NoSQL 데이터베이스는 일부만 지원합니다.

여기서 ACID 속성은 각각 원자성, 일관성, 격리성, 내구성을 의미하는데, 원자성(Atomicity) 은 트랜잭션이 완전히 실행되거나 전혀 실행되지 않는 '모두 실행 또는 전혀 실행되지 않음'을 의미합니다.
그리고 일관성(Consistency) 은 트랜잭션이 커밋되면 데이터가 데이터베이스 스키마를 준수해야 함을 의미합니다.
격리성(Isolation) 은 동시에 일어나는 트랜잭션들이 각기 별도로 실행되어야 함을 의미합니다.
그리고 내구성(Durability) 은 예기치 못한 시스템 장애 또는 정전 시 마지막으로 알려진 상태로 복구하는 기능입니다.

성능은 관계형 데이터베이스는 디스크 하위 시스템에 따라 다르며, NoSQL 데이터베이스는 기본 하드웨어 클러스터 크기, 네트워크 지연 시간 등에 따라 다릅니다.

확장을 위해서는 관계형 데이터베이스는 더 빠른 하드웨어를 사용하고, NoSQL 데이터베이스는 하드웨어의 분산 클러스터를 사용합니다.

그리고 데이터를 조회하기 위해서 관계형 데이터베이스는 SQL을 준수하는 쿼리를 사용하며, NoSQL 데이터베이스는 객체 기반 API를 사용합니다.

마지막으로 두 종류의 데이터베이스 모두 각 목적에 맞는 다양한 도구들을 제공합니다.


NoSQL 데이터베이스에는 열 기반, 문서, 그래프 및 인 메모리 키-값이라는 네 가지 주로 사용되는 유형이 있습니다.
일반적으로 이들 데이터베이스는 데이터가 저장되고, 액세스되고, 구조화되는 방식이 다르며, 서로 다른 사용 사례 및 애플리케이션에 최적화 되어 있습니다.

지금부터는 NoSQL 데이터베이스의 각 유형에 대해 알아보도록 하겠습니다.

먼저 열 기반 데이터베이스는 데이터의 행이 아닌 데이터의 열을 읽고 쓰는 데 최적화되어 있습니다.

그리고 문서 데이터베이스는 JSON 또는 XML 형식의 문서와 같은 반정형 데이터를 저장하도록 설계 되어 있습니다.
문서별로 다른 스키마를 적용할 수 있으며, 유연하게 애플리케이션 데이터를 구성 및 저장할 수 있습니다.

그리고 그래프 데이터베이스는 간선이라고 부르는 방향 링크와 정점을 저장하는 형태의 데이터베이스입니다.

마지막으로 인 메모리 키-값 스토어는 읽기 중심의 애플리케이션 워크로드 또는 컴퓨팅 집약적 워크로드에 최적화되어 있습니다.
그리고 인 메모리 캐싱은 핵심 데이터 조각을 메모리에 저장해 액세스 지연 시간을 줄여주므로 애플리케이션 성능이 향상 됩니다.


마지막 업데이트: 2023년 11월 12일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.