2024-05-28 오늘의 TIL

이재성·2024년 5월 29일

RDBMS 와 NoSQL

  • Databse
    일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다.
  • DataBase Management System
    DBMS사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어
  • SQL
    Strucured Query Language 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

RDBMS

DBMS앞에 R이 붙어 있는데 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미함. RDB를 관리하는 시스템이라고 할수 있다.
(구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체)
테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 RDBMS의 가장 큰 특징.

정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하고 있습니다. 또한 관계는 각 데이터를 중복없이 한 번만 저장할 수 있음.
데이터간의 중복체크를 빡빡하게 하기 때문에 저장속도가 느림.
또한 스키마로 인해 데이터가 유연하지 못해 나중에 스키마가 변경 될 경우 번거롭고 어려움.

NoSQL

관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술.
또한 NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않음. 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능함.

데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장

데이터의 일관성을 고려하지 않고 바로 DB에 저장하기 때문에 저장속도가 빠름
스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가가능.

하지만 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행을 해야 하고 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정이 어려울 수 있다.

어떤걸 사용해야할까

사실 둘다 사용하는 조건이 다르고 각각 장단점은 있지만 어떤게 우월하다 이런게 아니기 때문에 환경에 따라 사용을 결정하는게 중요하다.

profile
하이요

0개의 댓글