Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 4.16 KB

rdbms_nosql.md

File metadata and controls

68 lines (51 loc) · 4.16 KB

RDBMS와 NoSQL의 차이

DBMS와 SQL

DBMS(DateBase 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), SQL을 보완한다는 의미

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

RDBMS/NoSQL의 장점과 단점

RDBMS의 장/단점

장점

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

단점

  1. 데이터 처리에 대한 부하 발생시, 처리가 어려움
  2. 반드시 스키마 규격에 맞춰 데이터를 다뤄야 하므로 유연하지 않음
  3. 성능향상을 위해 서버의 성능을 향상시켜야 하는 Scale Up만 지원한다. RDBMS의 특성 상 Scale Out이 어렵다
  • Scale Up : 기존의 서버를 보다 높은 사양으로 업그레이드 하는 것, 수직 스케일링이라고도 함
  • Scale Out : 장비를 추가해서 서버를 확장하는 방식, 수평 스케일링이라고도 함(복제, 샤딩 등의 기법이 있음)

NoSQL의 장/단점

장점

  1. 정해진 스키마가 없어 자유로운 데이터 저장이 가능
  2. 데이터 간 관계를 정의하지 않음
  3. 복잡도가 낮아서 대용량의 데이터를 관리, 저장할 수 있음
  4. 성능향상을 위해 Scale Up뿐 아니라 Scale Out도 지원해서 유연한 성능 향상이 가능함

단점

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

참고) CAP

  • NoSQL은 대부분 분산형 구조를 띄고 있기 때문에 대부분 분산형 구조의 CAP 이론을 따른다.
  • CAP 이론이란 이 중 2가지만 만족할 수 있다는 이론이다.
  1. 일관성(Consistency) : 분산된 노드 중 어느 노드로 접근하더라도 데이터 값이 같아야 한다. (데이터 복제 중에 쿼리가 되는 일관성을 제공하지 않는 시스템의 경우 다른 데이터 값이 쿼리될 수 있다.)

  2. 가용성(Availability) : 클러스터링된 노드 중 하나 이상의 노드가 실패(Fail)라도 정상적으로 요청을 처리할 수 있는 기능을 제공한다.

  3. 분산 허용(Partition Tolerance): 클러스터링 노드 간에 통신하는 네트워크가 장애가 나더라도 정상적으로 서비스를 수행한다. 노드 간 물리적으로 전혀 다른 네트워크공간에 위치도 가능하다.

NoSQL 데이터모델과 CAP 이론