TIL-49. RDBMS와 NoSQL

solarrrrr·2022년 1월 20일
0

Today I Learned

목록 보기
49/74
post-thumbnail

DB란?

여러 사람에 의해 공유돼 사용될 목적으로 통합하여 관리하는 데이터의 집합.

DBMS(DataBase Management System)이란?

사용자가 데이터베이스에 저장된 데이터를 관리할 수 있도록 도와주는 소프트웨어.

SQL(Structured Query Language)이란?

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

스키마란?

데이터베이스를 구성하는 개체, 속성, 관계 및 제약조건 등에 관해
전반적으로 정의한 메타데이터의 집합.

RDBMS란?

관계형 데이터베이스 관리 시스템으로서 현재 사용되고 있는 일반적인 데이터베이스는 RDBMS를 사용하고 있다.

2차원 테이블 형식의 구성이며 속성과 값을 이용해 데이터를 정의하고 관리하며
각각의 속성과 값을 가진 테이블들은 서로 관계를 맺고 있다.

여기서 말하는 관계는 외래키(foreign key)를 사용해 테이블 간 JOIN이 가능한 것을 의미하며, 이것이 RDBMS의 가장 큰 특징이다.

또한 RDBMS는 CRUD 조작을 허용한다.

NoSQL(Not Only SQL)이란?

RDBMS의 방식으로는 더 이상 처리할 수 없을 만큼 복잡하고 큰 데이터들이 등장함으로 인해 NoSQL의 필요성이 부각되기 시작했다.

관계형 데이터베이스와는 다른 방식을 사용하며 테이블 간의 관계를 정의하지 않는다.
정해진 스키마가 없기 때문에 자유롭게 데이터를 저장할 수 있다.

key 값을 통해 데이터 입, 출력이 가능하다.

RDBMS와 NoSQL의 비교

> RDBMS의 장점

  • 정해진 스키마에 따라 데이터를 저장하므로 명확한 데이터 구조를 보장함
  • 각 데이터를 중복 없이 한 번만 저장할 수 있음

> RDBMS의 단점

  • 테이블 간 관계로 인해 시스템이 커질 경우 JOIN문이 많아지며,
    이로 인해 복잡한 쿼리가 만들어질 수 있음
  • 성능 향상을 위해서는 서버의 성능을 향상시켜야 하는 Scale-up만을 지원함
  • 이로 인해 비용이 기하급수적으로 늘어날 수 있음
  • 스키마로 인한 데이터의 규격화라는 장점이 있는 대신 유연함이 떨어짐.
    추후 스키마가 변경될 경우 번거로워짐.

> NoSQL의 장점

  • 스키마가 없기 때문에 유연하고 자유로운 데이터 구조를 가질 수 있음
  • 그로 인해 언제든 데이터를 조정하고 새로운 필드를 추가할 수 있음
  • 데이터 분산이 용이하며 성능 향상을 위한 Scale-up뿐 아니라 Scale-out이 가능함

> NoSQL의 단점

  • 데이터의 중복이 발생할 수 있으며 중복된 데이터가 변경될 경우
    수정 작업을 모든 컬렉션에서 수행해야 함.
  • 스키마가 없기 때문에 명확한 데이터 구조를 보장하지 않으며
    데이터 구조의 결정이 어려울 수 있음.

각각 어디에 쓰면 좋은가?

RDBMS는 데이터의 구조가 명확하고 변경될 소지가 없으며
규격화된 스키마가 필요한 경우 사용하는 것이 좋다.

또한 중복된 데이터가 없는 무결성으로 인해 데이터의 변경이 용이하기 때문에
관계를 맺고 있는 데이터에 변경이 자주 일어나는 시스템에서 사용이 적합하다.

NoSQL은 유연성과 확장성을 비롯해 고성능의 기능적인 데이터베이스를 필요로하는 모바일, 웹이나 게임과 같은 다양한 현대적 애플리케이션에 적합하다.

또한 업데이트가 많이 이루어지지 않는 시스템, DB를 Scale-out 해야 하는 시스템에 적합하다.

profile
몰입

0개의 댓글