티스토리 뷰

CS/DB

RDB vs NoSql

bool-flower 2022. 7. 16. 04:18

RDB (Relation DataBase)


관계형 모델을 기반으로 하는 데이터 베이스를 의미한다. 이를 유지, 관리하기 위한 시스템을 RDBMS(Relation DataBase Management System)이라 한다.

RDBMS의 목표

데이터 무결성을 높이는 것이다. 데이터 무결성은 아래 세 종류가 있다. 데이터 무결성에 대한 자세한 내용은 여기를 참고하기 바란다.

 

  • 엔터티 무결성
  • 참조 무결성
  • 도메인 무결성

특징

  • 상호 관련성을 가진 테이블 집합
  • 테이블 사이의 관계를 외래 키로 표현
  • 2차원 데이터(행과 열)로 표현
  • SQL을 사용해 질의
  • ACID 성질
  • 스키마 변경이 어려움
  • 수직적 확장이 쉽고 수평적 확장이 어려움

스키마 변경의 어려움

RDB는 테이블 사이에 서로 의존성이 있고 서로 맞물려있기에 데이터 타입을 바꾸거나 새로운 열을 추가하는 등의 작업들은 실제 프로덕션 환경에서 사실상 불가능하다.

수직적 확장이 쉽고 수평적 확장이 어려움

수직적 확장은 하드웨어 스펙의 확장을 의미하고, 수평적 확장은 양적 확장을 의미한다. RDB가 수직 확장이 더 용이하고 수평 확장이 어려운 이유는, 데이터가 여러 테이블에 의존해있기 때문이다. 

ACID 성질

ACID(원자성 Atomicity, 일관성 Consistency, 고립성 Isolation, 지속성 Durability)는 데이터베이스 트랜잭션의 성질을 나타낸다. 이 글에 잘 정리되어 있다. 

NoSQL (Not only SQL)


NoSql은 관계형이 아닌 다양한 데이터 모델을 총칭한다.

특징

  • 다양한 방식으로 데이터를 표현
  • 컬렉션에 특별히 명시된 제약 및 규칙이 없음
  • 스키마가 고정적이지 않음
  • 연산이 빠르고 빅데이터 및 실시간 연산에 적합

다양한 방식의 데이터 표현

  • 도큐먼트 모델은 레코드 하나를 오브젝트(도큐먼트) 형식으로 표현한다. 자유로운 스키마 구조를 가지며 구조가 확정되지 않은 데이터를 밀어 넣고, 자유롭게 작업하기 좋다. 몽고 DB나 아랑고 DB가 있다.
  • 그래프 모델은 데이터를 노드와 엣지로 그래프에 표현하는 방식이다. 데이터 사이의 유기적인 관계를 표현하기에 적합하다. Neo4j, ArangoDB, Gremlin 등이 있다.
  • 키/값 모델은 하나의 키에 값을 맵핑하는 해시 구조의 데이터 모델이다. 빠르게 데이터에 접근할 수 있는 장점이 있다. 대표적으로 Redis가 있다.
  • 와이드 칼럼 모델은 테이블 형태를 취하지만 행마다 갖는 칼럼의 형태가 고정되어 있지 않은 데이터 모델이다.

언제 사용해야 할까?


RDBMS

  • 데이터 구조가 변경될 여지가 없으며 명확한 스키마가 중요한 경우 사용
  • 중복된 데이터가 없어(데이터 무결성) 변경이 용이
  • 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합

NoSQL

  • 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용
  • 중복된 데이터가 발생할 수 있어, 수정이 많이 이루어지지 않는 시스템이 좋음
  • 막대한 데이터를 저장해야 해서 Database를 Scale-Out를 해야 되는 시스템에 적합

참조


 

<데이터베이스> 관계형 vs. NoSQL 언제 무엇을 써야할까? · lee. ui dam

<데이터베이스> 관계형 vs. NoSQL 언제 무엇을 써야할까? 16 Nov 2021 | 데이터베이스 RDB vs. NoSQL 매번 아랑고DB에 관한 글만 다루다가, 오늘은 회사에서 간단하게 RDB vs. NoSQL에 대해 세미나를 진행한 내

ud803.github.io

 

RDBMS의 한계와 NoSQL을 사용하는 이유 (2) RDBMS의 한계, 트랜잭션

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (2)  RDBMS의 한계,  트랜잭션 RDBMS(Relational DataBase Management System, 관계형 데이터베이스) 관계형 데이터 모델은 데이터 간의 상관 관계에서 개체간의 관..

sujl95.tistory.com

 

RDBMS의 한계와 NoSQL을 사용하는 이유 (3) NoSQL 장단점, 특징

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (3) NoSQL 장단점, 특징 NoSQL(Not Only SQL, 비-관계형 데이터베이스) RDBMS의 복잡도와 용량 한계를 극복하기 위한 목적으로 등장했다. 정해진 스키마가 없어 자유

sujl95.tistory.com

 

[Database] RDBMS와 NoSQL의 차이점

이번 포스팅에서는 RDBMS와 NoSQL의 차이점을 알아보려고 합니다. 그전에 RDBMS는 무엇이고 왜 사용하며 NoSQL은 무엇이고 왜 사용을 할까요? 그리고 그 두 DB의 차이점은 무엇이며 서로에 대한 장단점

khj93.tistory.com

 

RDBMS와 NoSQL의 차이점 및 장단점

들어가기 전에 DBMS DataBase Management System 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어. SQL Strucured Query Language 관계형 데이

pythontoomuchinformation.tistory.com

 

RDBMS와 NoSQL의 차이점 완벽 정리

「 데이터베이스 공부할 때 들어는 봤는데... 」 데이터베이스를 공부하다보면 DBMS. RDBMS, SQL, NoSQL등의 단어를 여러번 들어보셨을겁니다. 관계형데이터베이스, 쿼리문 등 이런 단어들을 설명하기

universitytomorrow.com

'CS > DB' 카테고리의 다른 글

DB의 Lock  (0) 2022.10.08
트랜잭션 (Transaction)  (0) 2022.10.08
MySQL 아키텍처  (0) 2022.08.04
조인 수행 원리  (0) 2022.08.02
이상현상, 함수종속성, 정규화  (0) 2022.07.28
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday