[DB] RDBMS / NOSQL

hyunoi·2024년 12월 25일

Database

목록 보기
5/8
post-thumbnail

RDBMS (Relational Database Management System)


RDBMS는 데이터를 테이블 형태로 저장하고 관리하는 관계형 데이터베이스 관리 시스템이다.
데이터를 행과 열로 구성하여서 2차원 테이블 형태로 체계적으로 관리할 수 있다.
SQL(Structured Query Language) 언어를 사용해서 데이터를 관리할 수 있다.

많이 사용하는 RDBMS로는 MySQL, PostgrSQL, 오라클 등이 있다.

특징

  • 고정된 스키마 구조를 가진다.
  • 데이터 무결성을 보장하는 ACID (Atomicity, Consistency, Isolation, Durability) 특성을 지원한다.
  • 외래키를 사용하여 테이블 간의 JOIN이 가능하다.
  • 관계형 데이터 모델을 사용하여 데이터를 효율적으로 관리한다.
    • 관계형 데이터 모델
      • 릴레이션
      • 속성, 차수
      • 튜플, 카디널리티
      • ...

NoSQL (Not Only SQL)


NoSQL은 정형적인 RDBMS와 달리 유연하게 데이터를 저장하고 관리하는 데이터베이스 관리 시스템이다.
데이터를 비정형 구조로 저장하며, 유연하고 확장 가능한 설계를 한다.
테이블 간의 관계를 아예 정의하지 않기 때문에 JOIN을 사용할 수 없다.

많이 사용하는 NoSQL로는 MongoDB, Redis 등이 있다.
각각의 데이터베이스마다 사용하는 데이터 모델이 다르다.

Redis

Redis는 Key-Value 구조를 사용한다.
Key는 Value에 접근하기 위한 용도로 사용되고, Value에는 어떠한 데이터라도 담을 수 있다.
이미지, 동영상 같은 큰 데이터들도 저장이 가능하다.

MongoDB

MongoDB의 경우 Document Database 데이터이다.
데이터를 JSON 형식의 문서 형태로 저장한다. 그렇기 때문에 각 문서마다 유연한 구조를 가질 수 있다.

특징

  • 유연한 스키마 설계로 비정형 데이터 처리/관리에 적합하다.
  • 대규모 데이터를 효율적으로 처리하기 위해서 수평적 확장(Scale-Out)을 지원한다.
    • 수평적 확장 (Scale-Out)
      NoSQL의 성능 저하 문제를 해결하기 위한 방식으로, 여러 서버에 데이터를 분산해 저장한다.
  • Key-Value, Document 등 다양한 데이터 모델을 사용할 수 있다.
  • 빠른 읽기/쓰기 성능을 제공한다.

각 데이터베이스의 장단점


RDBMS

장점

  • 명확한 데이터 구조를 가진다.
  • 관계형 데이터 모델을 사용하기 때문에 복잡한 관계를 효율적으로 관리할 수 있다.
  • 데이터 무결성과 일관성을 보장한다.

단점

  • 비정형 데이터 처리가 어렵다.
  • 테이블 간 관계를 맺고 싶다면 JOIN을 사용해야 하는데 시스템이 커지는 경우 JOIN이 많은 복잡한 쿼리문이 생길 수 있다.
  • 데이터베이스 성능을 높이기 위해서는 Scale-Up 방식만 지원하기 때문에 하드웨어 비용이 증가한다.

NoSQL

장점

  • Scale-Out 방식을 사용하기 때문에 대규모 데이터 처리에 적합하다.
  • 비정형 구조를 사용하기 때문에 유연하다.
  • 다양한 데이터 모델을 사용하여 데이터 저장에 제한이 없다.

단점

  • 데이터 중복이 발생할 수 있다.

🦴 참고


https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90

0개의 댓글