GiYeong

RDBMS / NoSQL 본문

CS/DB

RDBMS / NoSQL

gy2710 2022. 6. 21. 02:28

RDBMS

RDBMS는 DBMS 앞에 Relational(관계적)이라는 단어가 붙은 것으로 관계형 데이터베이스 관리 시스템이라는 뜻이다.

DBMS(DataBase Management System)
사용자와 DB 사이에서 사용자의 요청을 해석하여 DB에 저장된 데이터를 관리해주는 SW

즉, 테이블이 다른 테이블들과 관계를 가지며 모여있는 집합체로 이해할 수 있으며, 이러한 관계를 나타내기 위해 FK(Foreign Key, 외래키)를 사용한다.

테이블 간의 관계에서 FK 또는 PK를 이용해 JOIN이 가능한 것이 RDBMS의 가장 큰 특징이다.

 

장점

  • 데이터의 분류, 정렬, 탐색 속도가 비교적 빠르다.
  • SQL을 통해 데이터를 다룰 수 있다.
  • 작업의 완전성을 보장한다.
  • 데이터의 UPDATE가 빠르다.

단점

  • 반드시 스키마 규격에 맞춰서 데이터를 다뤄야 한다.
  • 데이터 처리에 대한 부하가 발생할 경우, 대처가 어렵다.

 

NoSQL

NoSQL(Not Only SQL)은 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미한다.

NoSQL은 RDBMS와 달리 테이블 간의 관계를 정의하지 않는다. 따라서 테이블 간의 JOIN도 불가능하다.

 

NoSQL은 빅데이터의 등장으로 인해 데이터와 트래픽이 기하급수적으로 증가함에 따라 필요성이 부각되었다.

즉, RDBMS로 관리할 수 없는 복잡하고 용량이 큰 데이터들을 관리할 수 있도록 하기 위한 목적으로 등장한 개념이다.

 

NoSQL은 key값만 가지고 데이터의 입출력을 수행할 수 있다.

 

장점

  • RDBMS보다 복잡도가 떨어지기 때문에, 대용량의 데이터를 저장 및 관리할 수 있다.
  • 테이블에 스키마가 정해져있지 않아 데이터 저장이 자유롭다.
스키마(Schema)
DB에 저장되는 데이터 구조와 제약조건을 정의한 것
인스턴스(Instance)
스키마에 따라 DB에 실제로 저장된 값

 

단점

  • key 값에 대한 입출력만 지원한다.
  • 스키마가 정해져 있지 않기때문에 데이터에 대한 규격화가 이루어져있지 않다.
  • 데이터의 UPDATE가 느리다.

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

Redis, Memcached  (0) 2022.08.31
JOIN  (0) 2022.06.21
정규화  (0) 2022.06.21
트랜잭션  (0) 2022.06.18
DB에서 인덱스를 사용하는 이유  (0) 2022.06.18
Comments