본문 바로가기

내배캠/TIL

RDBMS vs NoSQL

RDBMS ?

 - Relational DataBase Management System (관계형 데이터베이스 관리 시스템)
 - 관계형 데이터 모델
  • 모든 데이터를 2차원 테이블 형태로 표현하는 것
 - 관계형 데이터베이스
  • 2차원 테이블 형태로 표현한 데이터베이스. 속성과 값을 가진 테이블들은 서로 관계를 맺으며 존재
 - 관계형 데이터베이스 관리 시스템
  • 2차원 테이블 형태로 표현한 데이터베이스를 생성하고 저장, 관리하는 소프트웨어

 

RDBMS 특징

  • 고정된 스키마 사용
  • SQL(Structured Query Language)를 사용해서 데이터에 접근하며 CRUD 조작 허용
  • 트랜잭션의 무결정 보장을 위한 ACID 설정
  • 데이터의 일관성과 정확성 유지 위한 제약 조건 적용 가능
    • NOT NULL
    • UNIQUE
    • FOREIGN KEY
  • 2차원 구조 모델 기반 수평적 구조 사용

 

ACID 원칙

Atomicity - 원자성

트랜잭션이 완전히 수행되거나 전혀 수행되지 않도록 보장하는 속성
 

Consistency 일관성

트랜잭션이 데이터베이스를 일관된 상태에서 시작해 일관된 상태로 끝나도록 보장하는 속성
 

Isolation독립성

여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션이 독립적으로 실행되는 것처럼 보이도록 보장하는 속성
 

Durability지속성

트랜잭션이 완료되면 그 결과가 영구적으로 데이터베이스에 반영되어야 하며, 시스템 오류나 기타 문제로 인해 손실되지 않도록 보장하는 속성

 

 

NoSQL 이란?

 - Not Only SQL (비관계형 데이터베이스)
 - RDBMS의 성능과 한계 극복하기 위해 등장
 - 뛰어난 확장성
 - 테이블 간 관계 정의 X

 

 

NoSQL 특징

  • 유연한 스키마 사용, 데이터 구조 자주 변경되는 애플리케이션에 유리
  • 수평적 확장 지원. 대규모 데이터 여러 서버에 분산 저장하여 효율적 관리 가능
  • BASE 속성
    • Basically Available, Soft state, Eventually consistent
    • 데이터의 일관성을 완벽하게 보장하지 않더라도 가용성을 높이고 확장성을 확보할 수 있다는 뜻
  • 다양한 데이터 모델
    • Key-Value DB, Document DB, Wide Column DB, Graph DB …
 

RDBMS 장단점

장점

  • 데이터의 분류, 정렬, 탐색 속도가 빠르다.
  • 엄격한 스키마와 제약 조건을 통해 데이터의 무결성 유지.
  • 복잡한 쿼리 지원.

단점

  • 복잡한 쿼리 지원.
  • 성능 향상을 위해 Scale-up만 지원. (많은 비용 발생)
  • 스키마로 인해 데이터가 유연하지 못함.
 

NoSQL 장단점

장점

  • 스키마가 없어 유연하고 자유로운 구조
  • Scale-up / Scale-out 모두 가능
  • RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
  • 데이터 모델의 유연한 변화 가능

단점

  • 제한된 쿼리 기능
  • 데이터 일관성이 항상 보장되지 않음
  • 데이터의 중복 발생 가능
 

그래서 뭘 사용해야 할까?

 

관계를 맺고 있는 데이터가 자주 변경될 때.
명확한 데이터 구조와 스키마가 사용자에게 중요할 때.
 

      => RDBMS!!

 

정확한 데이터 구조를 알 수 없거나 변경/확장될 수 있을 때.
읽기 처리는 자주 하지만 데이터를 자주 변경할 일이 없을 때.
막대한 양의 데이터를 수평 확장(Scale-Out) 해야 할 때.
 

      => NoSQL!!

 

 

 

 

 

 

[참고 자료]

https://velog.io/@wnguswn7/Database-RDBMS%EC%99%80-NoSQL%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#-%EC%9E%A5%EC%A0%90

 

[Database] RDBMS와 NoSQL의 차이점 알아보기 !

데이터베이스 관리 시스템으로 RDBMS(Relational DataBase Management System)이 널리 쓰이고 있지만,대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응

velog.io

https://gwamssoju.tistory.com/99

 

[DataBase] RDBMS VS NoSQL

처음 데이터 베이스에 대해 배울 때, Oracle을 배웠기 때문에 모든 데이터 베이스가 Oracle과 같은 줄 알았다. 하지만 정보처리기사를 준비하면서 Oracle 같은 관계형 데이터베이스만 있는 게 아니라

gwamssoju.tistory.com

https://velog.io/@choijaehyeokk/DBMS%EC%99%80-RDBMS

 

DB, DBMS, RDBMS를 한페이지로 정리!

DB, DBMS, RDBMS에 대해서 한번에 정리가 필요한사람! 세상에 DBMS 종류가 이렇게 많았구나..

velog.io

https://www.oracle.com/kr/database/nosql/what-is-nosql/

 

개발자가 NoSQL 데이터베이스를 선호하는 이유

NoSQL 데이터베이스는 변화하는 요구사항에 빠르게 적응하기에 애자일 개발 방법론에 자연스럽게 부합합니다.

www.oracle.com

 

'내배캠 > TIL' 카테고리의 다른 글

데이터 베이스 정규화  (1) 2024.09.05
JWT, Filter  (0) 2024.09.04
[스프링] 예외 처리  (0) 2024.08.29
스프링 인터셉터  (0) 2024.08.29
[SQL] 주문량이 많은 아이스크림들 조회하기  (0) 2024.08.28