[CS][DB] RDBMS 와 NoSQL

손경이·2024년 4월 24일
0

CS Study

목록 보기
14/25

RDBMS 와 NoSQL


RDBMS : 2차원 테이블 형태로 표현한 데이터베이스를 생성하고 저장, 관리하는 시스템
NoSQL : RDBMS와 달리 고정된 스키마가 없고 테이블 간의 관계를 설정하지 않아 좀 더 자유롭게 데이터를 관리할 수 있음


> RDBMS(Relational DataBase Management System)

  • 관계형 데이터베이스 관리 시스템
  • 모든 데이터를 2차원 테이블로 표현
  • 관계를 맺은 테이블의 집합
  • 대표적으로 MySQL, ORACLE 등이 있음

| 관계형 데이터베이스

  • 관계형 데이터 모델에 기초를 둔 데이터베이스
    • 관계형 데이터 모델 : 데이터를 구성하는 방법 중 하나로 모든 데이터를 2차원 테이블 형태로 표현하는 것

| RDBMS 장점

  • 만들고 이용하기 쉽고, 확장이 용이
  • 데이터의 분류, 정렬, 탐색 속도가 빠름
  • 스키마에 맞춰 데이터를 관리해서 데이터의 정합성 보장
  • 데이터의 UPDATE가 빠름
  • 구조화된 언어인 SQL로 데이터를 다룰 수 있음

| RDBMS 단점

  • 스키마로 인해 데이터가 유연하지 못함
  • 테이블 간 관계를 맺으므로 Join을 사용할 경우 쿼리문이 복잡해짐
  • 시스템이 커질 수록 쿼리가 복잡해지고 성능이 저하되며 Scale-out이 어려움(Scale-Up만 가능)

| RDBMS 언제 사용해야 할까?

  • 데이터 구조가 명확하고, 변경 될 여지가 없는 스키마일 경우 좋음
  • 중복된 데이터가 없어 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어질 때 좋음

> NoSQL(Not Only SQL)

  • RDBMS와 달리 테이블 간 관계를 설정하지 않음
  • RDBMS에 비해 대용량 데이터를 저장할 수 있음
  • 분산형 구조로 여러 곳의 서버에 데이터를 분산해 특정 서버에 장애가 발생해도 데이터 유실이나 서비스 중지가 발생하지 않음
  • 고정된 스키마가 없음, 컬렉션이라는 형태로 데이터를 관리
  • 대표적으로 mongoDB, redis 등이 있음

| RDBMS의 한계를 극복하기 위해 사용하는 NoSQL

  • RDBMS 방식으로 처리할 수 없을 만큼 복잡하고 큰 데이터들의 등장과 SNS와 같은 빠른 처리속도를 요구하는 서비스가 등장하면서 NoSQL이 부각됨

| NoSQL 장점

  • RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
  • 비정형 데이터 구조 설계로 설계 비용 감소
  • Big Data 처리에 효과적
  • 가변적인 구조로 데이터 저장 가능
  • 데이터 모델의 유연한 변화 가능

| NoSQL 단점

  • 데이터 업데이트 중에 장애가 발생하면 데이터 유실이 발생 가능
  • 많은 인덱스를 사용하려면 충분한 메모리 필요
  • 데이터 일관성이 항상 보장되지 않음

| NoSQL 언제 사용해야 할까?

  • 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장 될 수 있는 경우 사용하기 좋음
  • 중복된 데이터가 많은 경우 Update가 많이 이루어지지 않는 시스템에 좋음
  • Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야할 경우 적합, DB를 Scale-out 해야되는 시스템에 적합

참고

0개의 댓글