RDB vs NoSQL

김민성·2023년 3월 6일

DataBase

목록 보기
4/8

RDB

: 관계형 데이터베이스
-> MYSQL, PostgresSQL

  • 데이터를 2차원 행렬(테이블)형태로 관리하며, 데이터 형식을 일정하게 유지하기 위한 스키마 존재

    스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의

특징

  • 데이터 조회, 삽입, 수정, 삭제에 SQL 사용
  • DB의 수평적 확장이 어려움
    -> RDB내 데이터들이 다른 데이터들과 관계를 맺고 있고, 이러한 데이터들의 일관성이 중요하기 때문

    RDB 환경에서 여러 개의 서버로 분산 되어 있는 경우
    -> 모든 서버의 데이터가 일관성을 유지하고 있는지 추가적 처리
    -> 수평적 확장 시 일관성을 유지하기 힘들고, 추가 작업은 상당한 부하

  • 개발, 운영 과정에서 스키마 변경이 힘들기 때문에 초기 모델 설계에 시간을 많이 쏟아야 함

데이터의 일관성, 정합성을 중요시하기 때문에 은행 시스템, 유저 계정 정보 관리 등에 이용

NoSQL

: Not-Only-Sql. SQL이 아닌 방식으로도 데이터를 처리하는 DB
-> MongoDB나 아파치 카산드라 등은 SQL과 유사한 쿼리 제공

종류

  • 도큐먼트 기반 DB : MongoDB
  • 키-밸류 기반 DB : Redis
  • 컬럼 패밀리 DB
  • 그래프 DB

특징

  • RDB에 비해 수평적 확장에 용이한 구조
    -> NoSQL의 데이터들은 서로 관계 X
    -> 간단한 기준을 통해 데이터들을 나눈 뒤 여러 서버에 분산 저장 용이
  • 스키마가 유동적으로 변화할 수 있기 때문에 필드 추가, 삭제, 변경 쉬움
    -> NoSQL을 동적 스키마, 스키마리스 구조라고 함
    -> 비정형 데이터, 다양한 데이터 구조 다루는 데 장점

    수평 확장을 통한 성능 향상, 비정형 데이터 처리 용이성 때문에 대규모 데이터 처리, 소셜 미디어 등에 많이 사용

비교

0개의 댓글