[DataBase] RDBMS vs NoSQL

2024. 11. 23. 18:28·CS

[참조] https://dev.to/truongpx396/understand-more-about-rdbms-and-nosql-through-analyzing-postgresql-and-mongodb-25kp

Intro

회사에서 배선임님이 주도하는 오전 스터디에서 RDBMS와 NoSQL의 특징, 그리고 일반적으로 왜 RDBMS를 사용하는 이유에 대해 이야기가 나왔다. 이전에 정처기를 취득할 때 공부했던 기억으로는 RDBMS는 ACID 원칙에 따르며 테이블 형태로 데이터를 관리하여 일관성이 중요하게 여겨지는 경우에 사용되고, NoSQL은 유동적으로 스키마를 추가할 수 있고 비정형 데이터를 처리하는 등 확장성을 중요하게 여겨지는 경우라고 답변을 하였지만, 아직 원하는 키워드가 나오지 않았다고 하여 RDBMS와 NoSQL에 대해 더 찾아볼려고 한다. 

1. RDBMS

1 - 1. 특징

  1. 테이블 기반 구조 : 데이터를 행(Row)과 열(Column)로 구성된 테이블 형태로 저장
  2. 스키마 : 데이터 구조를 사전에 정의해야 함. 스키마는 엄격하게 적용됨
  3. SQL 지원 : Structured Query Language(SQL)을 사용해 데이터를 관리함
  4. ACID 특성 보장 : 원자성, 일관성, 격리성, 지속성\
  5. 관계 : 테이블 간 외래 키(Foreign Key)를 통해 관계를 설정하고 관리
  6. 정규화 : 데이터 중복을 줄이고 효율성을 높이기 위한 데이터 구조화 방식
 

1 - 2. 장점

  • 데이터 무결성 보장 : 관계와 제약 조건으로 신뢰할 수 있는 데이터 관리
  • SQL 표준화 : 다양한 시스템에서 사용할 수 있는 표준 쿼리 언어
  • 복잡한 쿼리 처리 : JOIN, GROUP BY 등을 통해 데이터 간 연산 및 분석 가능
  • 트랜잭션 안정성 : 금융 및 은행 업무에서 필요한 데이터 안정성 제공

1 - 3. 단점

  • 확장성 한계 : 수평적 확장이 어려워 데이터 크기 증가 시 성능 저하 가능 (Scale-Up)
  • 스키마 유연성 부족 : 데이터 구조 변경이 복잡하고 시간이 소요됨
  • 비정형 데이터 처리 제한 : 이미지, 동영상 등 비정형 데이터를 처리하기 어려움
  • 초기 설정 및 유지보수 비용 : 스키마 설계와 관리가 복잡하여 초기 비용 증가

1 - 4. 주로 사용되는 곳

금융, 전자상거래, 정부 시스템, erp etc


2. NoSQL (Not only SQL)

2 - 1. 특징

  1. 스키마 유연성 : 사전 정의된 스키마 없이 자유롭게 데이터 저장
  2. 비정형 데이터 처리 : JSON, BSON 등 비정형 데이터를 효율적으로 처리
  3. 확장성 : 수평적 확장 가능, 분산형 구조로 높은 가용성 제공
  4. 다양한 데이터 모델 : Key-Value, Document, Column, Graph 등 다양한 모델 지원
  5. BASE 원칙 : 기본적으로 사용 가능, 유연한 상태, 결국 일관성

2 - 2. 장점

  • 확장성 : 데이터가 증가해도 서버를 추가하기 쉽고 비용 효율적 (Scale-Out)
  • 고속 처리 : 단순한 데이터 모델 덕분에 빠른 읽기 및 쓰기 성능 제공
  • 유연성 : 데이터 구조를 사전에 정의할 필요 없이 자유롭게 저장 가능 (동적 스키마)
  • 분산 처리 지원 : 다중 노드에 데이터를 분산 저장하여 가용성과 장애 복구 능력을 높임
  • 다양한 데이터 유형 지원 : 비정형 데이터(예: JSON, 로그 데이터) 및 반정형 데이터 처리에 적합

2 - 3. 단점

  • 데이터 정합성 부족 : 관계형 데이터베이스처럼 트랜잭션 일관성을 강력히 보장하지 못할 수 있음
  • 표준화 부족 : SQL처럼 표준화된 쿼리 언어가 없어 데이터베이스마다 사용 방법이 다름
  • 복잡한 쿼리 지원 부족 : RDBMS에 비해 복잡한 데이터 관계 및 쿼리 처리가 어려울 수 있음
  • 학습 곡선 : 다양한 종류의 NoSQL DB가 존재해 사용법을 새로 익혀야 함

2 - 4. 주로 사용되는 곳

SNS, IoT, 빅데이터 분석, 게임, 실시간 애플리케이션


정리

트랜잭션의 무결성과 정형 데이터를 중요한 상황에서는 RDBMS를 선택하고,
대규모 처리와 확장성이 필요한 환경에서는 NoSQL을 선택하면 좋을거라 생각합니다.

특성
RDBMS
NoSQL
데이터 모델
테이블 기반 (행과 열)
다양한 모델 (키-밸류, 그래프 등)
언어
SQL 사용
비SQL 방식
확장성
수직 확장 (스케일 업)
수평 확장 (스케일 아웃)
데이터 구조
고정된 스키마 필요
유연한 스키마
데이터 일관성
강한 일관성 보장
최종 일관성 (Eventually Consistent)
사용 사례
은행, ERP 등 안정성 중시
SNS, 로그 분석 등 대규모 데이터 처리

 

CAP 이론

분산 시스템은 일관성(Consistency), 가용성(Availability), 파티션 허용(Partition tolerance)이라는 세 가지 특성 중 두 가지 특성만 제공할 수 있습니다.

CAP 이론의 3가지 특성

  • 일관성 : 모든 노드가 동일한 데이터를 제공하여, 클라이언트가 데이터를 요청할 때 최신 데이터를 받는 것을 의미
  • 가용성 : 시스템이 항상 응답하며, 읽기/쓰기 요청에 대해 성공적인 응답을 제공하는 것을 의미
  • 파티션 내구성 : 네트워크 파티션(통신 장애)이 발생해도 시스템이 정상적으로 동작하는 특성
반응형

'CS' 카테고리의 다른 글

[Network] WEB과 WAS  (1) 2024.11.24
[Network] OSI Model 7 Layers  (0) 2024.11.19
'CS' 카테고리의 다른 글
  • [Network] WEB과 WAS
  • [Network] OSI Model 7 Layers
JJuuuunn
JJuuuunn
  • JJuuuunn
    JJuuuunn
    JJuuuunn
  • 전체
    오늘
    어제
    • 분류 전체보기 (72)
      • Backend (8)
        • Java (7)
      • Frondend (48)
        • Vue.js (12)
        • JavaScript (21)
        • Css (1)
      • Infra (0)
      • Git (2)
      • CS (6)
        • DataBase (1)
        • Network (2)
        • OS (0)
        • Algorithm (0)
      • 리뷰 (5)
        • 강의 (1)
        • Books (4)
      • ETC (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바스크립트
    자바
    렌더링
    HTML
    Vue.js
    javascript
    API
    이벤트
    혼자 공부하는 컴퓨터구조+운영체제
    Watch
    객체
    frontend
    Network
    axios
    VUE
    KDT
    혼공컴운
    Java
    신세계i&c
    DATABASE
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
JJuuuunn
[DataBase] RDBMS vs NoSQL
상단으로

티스토리툴바