RDBMS와 NoSQL

Hansu·2025년 8월 23일

RDBMS와 NoSQL

1. RDBMS (관계형 데이터베이스 관리 시스템)

개념 및 정의

RDBMS는 E.F. Codd의 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템입니다. 데이터를 2차원 테이블(릴레이션) 형태로 저장하고, 테이블 간의 관계를 통해 복잡한 데이터 구조를 표현합니다.

핵심 특징

  • 테이블 기반 구조: 행(row)과 열(column)으로 구성된 테이블
  • SQL 쿼리 언어: 표준화된 구조적 질의 언어 사용
  • 스키마 정의: 사전에 정의된 고정적 데이터 구조
  • ACID 속성: 원자성, 일관성, 격리성, 지속성 보장
  • 정규화: 데이터 중복 최소화 및 무결성 보장
  • 관계 무결성: 외래키를 통한 테이블 간 관계 유지

데이터 모델

  • 1차 정규형(1NF): 원자값만 포함
  • 2차 정규형(2NF): 부분 함수 종속 제거
  • 3차 정규형(3NF): 이행적 함수 종속 제거
  • 보이스-코드 정규형(BCNF): 모든 결정자가 후보키

대표적인 RDBMS

  • 오픈소스: MySQL, PostgreSQL, SQLite, MariaDB
  • 상용: Oracle Database, Microsoft SQL Server, IBM Db2
  • 클라우드: Amazon RDS, Google Cloud SQL, Azure SQL Database

장점

  • 데이터 무결성: ACID 속성으로 완벽한 일관성 보장
  • 복잡한 쿼리: 조인, 서브쿼리, 집계함수 등 강력한 쿼리 능력
  • 표준화: SQL 표준으로 인한 높은 호환성과 이식성
  • 성숙한 생태계: 풍부한 도구, 문서, 전문 인력
  • 트랜잭션 처리: 복잡한 비즈니스 로직의 안전한 처리
  • 데이터 중복 최소화: 정규화를 통한 효율적 저장

단점

  • 확장성 제한: 주로 수직적 확장(Scale-up)에 의존
  • 스키마 경직성: 구조 변경 시 복잡하고 시간 소모적
  • 성능 병목: 복잡한 조인 연산 시 성능 저하
  • 비정형 데이터 처리 한계: JSON, XML 등 처리 어려움
  • 높은 운영 비용: 라이선스, 하드웨어, 전문 인력 비용

2. NoSQL (Not Only SQL)

개념 및 정의

NoSQL은 관계형 모델을 사용하지 않는 데이터베이스의 총칭으로, 대용량 데이터와 분산 처리를 위해 설계된 데이터베이스 시스템입니다. "Not Only SQL"의 줄임말로 SQL만이 아닌 다양한 데이터 모델을 지원합니다.

핵심 특징

  • 유연한 스키마: 동적으로 필드 추가/변경 가능
  • 수평적 확장: 분산 아키텍처를 통한 확장성
  • 다양한 데이터 모델: 문서, 키-값, 컬럼, 그래프 등
  • BASE 속성: Basically Available, Soft state, Eventual consistency
  • 높은 가용성: 분산 환경에서의 장애 허용성
  • 빠른 읽기/쓰기: 특정 작업에 최적화된 성능

NoSQL 데이터 모델 유형

문서형 데이터베이스

  • 특징: JSON/BSON 형태의 문서로 데이터 저장
  • 예시: MongoDB, CouchDB, Amazon DocumentDB
  • 용도: 콘텐츠 관리, 카탈로그, 사용자 프로필

키-값 데이터베이스

  • 특징: 단순한 키-값 쌍으로 데이터 저장
  • 예시: Redis, DynamoDB, Riak
  • 용도: 캐싱, 세션 관리, 장바구니

컬럼형 데이터베이스

  • 특징: 컬럼 패밀리 단위로 데이터 저장
  • 예시: Cassandra, HBase, Amazon SimpleDB
  • 용도: 시계열 데이터, 로그 분석, IoT 데이터

그래프 데이터베이스

  • 특징: 노드와 엣지로 관계 표현
  • 예시: Neo4j, Amazon Neptune, ArangoDB
  • 용도: 소셜 네트워크, 추천 시스템, 지식 그래프

장점

  • 뛰어난 확장성: 수평적 확장으로 저렴한 용량 증설
  • 개발 속도: 스키마 설계 시간 단축으로 빠른 개발
  • 고성능: 특정 워크로드에 최적화된 성능
  • 유연성: 다양한 형태의 데이터 저장 가능
  • 클라우드 친화적: 분산 환경에 적합한 아키텍처
  • 빅데이터 처리: 대용량 데이터 처리에 유리

단점

  • 복잡한 쿼리 제한: 관계형 조인과 복잡한 쿼리 어려움
  • 일관성 약화: 최종 일관성으로 인한 일시적 데이터 불일치
  • 표준 부족: 각 시스템마다 다른 쿼리 언어와 API
  • 학습 곡선: 새로운 개념과 도구 학습 필요
  • 운영 복잡성: 분산 시스템 관리의 복잡성
  • 데이터 중복: 비정규화로 인한 저장공간 낭비

3. RDBMS vs NoSQL 주요 차이점 비교

데이터 모델 차이

비교 항목RDBMSNoSQL
데이터 저장 방식정규화된 테이블 구조비정규화된 다양한 구조
스키마고정적, 사전 정의 필수유연함, 동적 변경 가능
데이터 관계외래키를 통한 명시적 관계임베디드 또는 참조 방식
데이터 타입엄격한 타입 제약유연한 타입 지원

성능 및 확장성

비교 항목RDBMSNoSQL
확장 방식수직적 확장 (Scale-up)수평적 확장 (Scale-out)
확장 비용지수적 증가선형적 증가
읽기 성능복잡한 쿼리에 최적화단순한 읽기에 최적화
쓰기 성능트랜잭션 오버헤드높은 쓰기 처리량
조인 연산효율적인 조인 지원제한적이거나 비효율적

일관성 모델

비교 항목RDBMSNoSQL
일관성 방식ACID (강한 일관성)BASE (최종 일관성)
트랜잭션완벽한 ACID 트랜잭션제한적 트랜잭션 또는 없음
동시성 제어락 기반 동시성 제어최적화된 동시성 처리
데이터 정확성즉시 일관성 보장시간차를 두고 최종 일관성

개발 및 운영

비교 항목RDBMSNoSQL
쿼리 언어표준 SQL각 시스템별 고유 언어
학습 곡선상대적으로 평이시스템별로 다름
도구 생태계매우 성숙함빠르게 발전 중
인력 확보풍부한 전문 인력제한적이지만 증가 중
운영 복잡성상대적으로 단순분산 시스템 복잡성

사용 사례

사용 영역RDBMSNoSQL
적합한 애플리케이션ERP, CRM, 금융 시스템소셜미디어, 게임, IoT
데이터 유형구조화된 정형 데이터비정형, 반정형 데이터
워크로드복잡한 쿼리, 트랜잭션대용량 읽기/쓰기
환경전통적 온프레미스클라우드, 분산 환경
profile
humble

0개의 댓글