RDBMS와 NOSQL

2022. 6. 7. 18:59
반응형

RDBMS와 NOSQL

DBMS와 SQL

DBMS(DataBase Management System)

  • 사용자가 데이터베이스 내 데이터에 접근하도록 도와주는 시스템이다.

SQL(Structured Query Language)

  • 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
  • 자료의 검색과 관리, DB 스키마의 생성과 수정, 데이터베이스 객체 조정 관리를 위해 고안되었다.

RDBMS(Relational DataBase Management System)

관계형 데이터베이스 관리 시스템

  • RDB(Relational DataBase)를 관리하는 시스템이며, RDB는 관계형 데이터를 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다.
  • 각각의 속성과 값을 가진 테이블들은 JOIN을 통해 서로 관계를 맺으며 존재한다.
  • 스키마의 규격에 맞춰서 데이터를 저장하고 수정해야 한다.
  • 대표적인 RDBMS는 MySQL, Oracle, MSSQL 등이 있다.

NoSQL(Not Only SQL)

Not Only SQL의 약자로 단순히 기존 관계형 DBMS가 갖고 있는 특성뿐만 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미한다.

  • 관계형 데이터베이스와는 다르게 데이터, 테이블 간의 관계를 정의하지 않는다.
  • 정해진 스키마가 없어서 자유롭게 데이터를 저장할 수 있다.
  • RDBMS 방식으로는 처리할 수 없는 복잡하고 대용량의 데이터를 처리할 수 있다.
  • Key-Value 형식으로 값을 나타낼 수 있고, Key값만 가지고 데이터 입출력을 진행할 수 있다.
    • Ex) 고객 ID : user1 / 고객정보 : 홍길동, 27세, 남자
  • 대표적인 NoSQL는 Redis, MongoDB가 있다.

RDBMS/NoSQL의 장점 및 단점

RDBMS

장점

  • 정해진 스키마에 따라서 데이터를 저장하므로 명확한 데이터의 구조를 보장한다.
  • 관계에 있어서 각 데이터를 중복없이 한 번만 저장할 수 있다.

단점

  • 데이터 처리에 대한 부하가 발생하면 처리가 어렵다. 즉, 시스템이 커질경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다.
  • 반드시 스키마 규격에 맞춰서 데이터를 다뤄야하므로 유연하지가 않다.

NoSQL

장점

  • 정해진 스키마가 없기 떄문에 유연하고, 자유로운 데이터 구조를 가질 수 있다.
  • 데이터 간 관계를 정의하지 않는다. 즉, 테이블 간의 연관관계가 없다.
  • 복잡도가 낮아서 대용량의 데이터를 관리, 저장할 수 있다.
  • 데이터 분산이 용이하며 성능 향상을 위한 Scale-up 뿐만 아니라 Scale-out 또한 가능하다.

단점

  • 데이터의 중복이 발생할 수 있으며, 중복된 데이터가 변경될 경우 모든 컬렉션에서 수행해야 한다.
  • 명확한 데이터 구조를 보장하지 않기 때문에 데이터 구조를 결정하기 어려울 수 있다.
  • Key값에 의한 입출력만 지원한다.
반응형