Database

[Database] RDB와 NoSQL 비교(특징, 장단점 등)

개발기록자 2023. 5. 17.

이전 글에서 데이터베이스에 대해 알아보았습니다. 이번 글에서는 데이터베이스 중 자주 쓰이는 관계형 데이터베이스와 NoSQL에 대해 알아보겠습니다. 각 특징과 장단점을 비교하며 언제 사용되는지 알아보겠습니다.


◈ RDB(Relational Database)

관계형 데이터베이스는 가장 많이 사용되고 있는 데이터베이스 중 하나로 데이터를 테이블(table) 형태로 표현하여 구조화합니다. 각 테이블은 컬럼(column)로우(row)로 이루어져 있으며, 테이블 간에 관계를 정의합니다. 이러한 테이블 집합을 관계형 데이터베이스라고 합니다.

RDB의 테이블

 

관계형 데이터베이스, 테이블 집합

 

 특징

  • 데이터를 컬럼/로우 형태로 저장합니다.
  • 테이블마다 스키마를 정의해야 합니다.
  • 정해진 스키마에 따라 명확한 데이터 구조를 보장합니다.
  • 데이터 타입과 제약을 통해 데이터 정확성을 보장합니다.
  • 관계(Join)를 정의하여 데이터의 중복을 최소화합니다.
  • 데이터를 조작하기 위해 SQL(Structured Query Language)을 사용합니다.
  • ACID(Atomicity, Consistency, Isolation, Durability) 특성을 지원합니다.

◈ NoSQL

NoSQL은 비관계형 데이터베이스로 기존의 관계형 데이터베이스와는 다른 데이터 모델을 사용하는 데이터베이스입니다. NoSQL은 분산 환경에서 데이터를 빠르게 처리하기 위해 개발되었습니다. 기존의 관계형 데이터베이스는 정해진 스키마에 따라 데이터를 테이블 형태로 구조화하고 SQL을 사용하여 데이터를 조작합니다. 그러나 NoSQL은 데이터 모델이 더 자유로우며, 스키마가 미리 정의되지 않거나 유연한 스키마를 가질 수 있습니다.

NoSQL 모델

 

◇ 데이터 모델

NoSQL의 데이터 모델은 다양한 종류가 존재하며, 아래 몇 가지 모델에 대해 정리해 두었습니다.

 

- Key-Value Store(키-값 스토어)

단순한 키-값의 쌍으로 데이터를 저장하며, 복잡한 조회 연산을 지원하지 않습니다. 구조가 단순하기 때문에 빠른 읽기 및 쓰기가 가능하며, 분산 환경에 적합합니다. 대표적으로 Redis, DynamoDB(DDB), Riak 등이 있습니다.

 

- Wide-Column Store Database(와이드 컬럼 스토어 데이터베이스)

열에 대한 데이터를 집중적으로 관리하는 데이터베이스로 각 열에는 Key-Value형식으로 데이터가 저장되며, 컬럼 패밀리(Column Families)라고 하는 열의 집합체 단위로 데이터를 처리할 수 있습니다. 하나의 행(row) 내에 많은 열(column)을 포함할 수 있어서 높은 유연성을 가지므로 대규모 데이터 분석이나 실시간 데이터 처리에 적합합니다. 대표적으로 Apache Cassandra, Hbase 등이 있습니다.

 

- Document Database(문서 데이터베이스)

데이터를 문서 형태로 저장하고 처리하는 데이터베이스입니다. 주로 JSON, XML 등과 같은 형식으로 표현되며, 유연한 데이터 구조를 가집니다. 또한 중첩된 데이터 구조를 지원하여 복잡한 데이터 모델을 표현할 수 있습니다. 대표적으로 MongoDB, CouchDB 등이 있습니다.

 

- Graph Database(그래프 데이터베이스)

데이터 간의 관계를 그래프 구조로 표현하는 데이터베이스입니다. 노드와 간선으로 구성되며, 각 노드는 속성별로 데이터를 저장하고, 간선은 노드 사이의 관계를 표현합니다. 이러한 구조는 복잡한 데이터 관계를 쉽게 표현하고 복잡한 Join작업도 간단하게 처리할 수 있어 지도 서비스, 추천 시스템, 소셜 네트워크 등 다양한 분야에 활용됩니다. 대표적으로 Neo4J, InfiniteGraph 등이 있습니다.

 

 특징

  • 비관계형 데이터베이스로 데이터 간의 관계를 정의하지 않습니다.
  • 스키마에 제약을 두지 않으며, 동적으로 스키마를 변경할 수 있습니다.(스키마 유연성)
  • 다양한 데이터 모델을 지원합니다.
  • 스키마가 유연하기 때문에 정형화되지 않은 비정형 또는 반정형 데이터를 효율적으로 처리할 수 있습니다.
  • Not Only SQL로 SQL을 사용하지 않습니다.
  • 분산형 구조를 가집니다.
  • 여러 대의 저렴한 서버를 사용할 수 있게 설계되어 비용 효율적입니다.

 정리

RDB와 NoSQL 비교

 

 

'Database' 카테고리의 다른 글

OLTP와 OLAP 비교  (0) 2023.06.14
[Database] 데이터베이스(Database)란?  (0) 2023.05.14

댓글