본문 바로가기
DB

noSQL의 정의와 특징, 장단점을 알아보자

by 스노위13 2022. 5. 12.

noSQL에 대해 알기 위해서는 먼저 SQL에 대해 알아봐야 한다. SQL의 한계 때문에 나온 것이 noSQL이기 때문이다.

1. SQL

(1)정의와 특징 
- 정의 : 관계형 데이터베이스 관리 시스템 (RDBMS : Relational DataBase Management System)
- 특징 : 데이터를 테이블 형태로 관리, 각 테이블끼리는 관계를 형성
- 종류 : 오라클, MySQL, Access, MsSql 등
- 장점 : 단순하고 이해하기 쉬운 구조를 띈다. 각각의 테이블들이 담고 있는 정보가 명확하다

(2) 한계
 - 데이터의 형태의 다양화 :  RDBMS는 비정형 데이터를 저장하는 데에 한계가 있음
 - 많은 양의 데이터를 한번에 저장하기 어렵다.
 - 스키마 변경이 어렵다
 - 데이터가 정해진 테이블에 의존해있어서 수직 확장은 용이하나 수평확장이 어렵다

위와 같은 한계 때문에 빅데이터 시대에는 SQL만으로 데이터를 처리하기 어려워 noSQL이 새롭게 제안되었다. 
그렇다면 이제 noSQL에 대해서 알아보자.

2. noSQL

(1)정의
비관계형 데이터베이스 관리 시스템 
noSQL(Not only SQL)이란 뜻으로 SQL에 국한되지 않은 데이터베이스 관리 시스템을 일컬음

(2)특징
- 테이블(혹은 컬렉션 등) 사이에 딱히 명시된 제약이나 규칙이 없음
- 데이터간의 관계를 정의하지 않으며 Join 없음
- 스키마가 고정적이지 않고 유연함 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있음
- 수평적 확장(SQL은 수직적 확장)

(3)종류 : Document, Graph, Key-Valye, column family

(4)장점
- 지연(latency)과 처리율(throughput)이 우수함
- 스키마가 유연하기 때문에 필드의 추가 및 삭제가 자유롭게 가능하며 비정형데이터 저장도 쉬움
- 수평적 확장이 가능하기 때문에 서버 확장시 여러대의 서버를 연결할 수 있으며 저렴함
- 연산이 빠르고 대용량 데이터 처리 성능이 뛰어나 빅데이터를 처리할 때 유리함
- 여러대의 백업 서버를 구성하여 장애 발생 시에도 서비스를 중단하지 않아도 됨

→ 빅데이터를 처리해야 하거나 수평확장이 필요할 때, 다양한 형태의 데이터 유형을 사용할 때 활용한다

(5)단점
- 데이터베이스의 일관성이 약함
- 데이터가 여러 컬렉션에 중복되어 있어 UPDATE시 각각의 컬렉션에서 수행되어 속도가 느릴 수 있음
- 다양한 종류의 데이터가 정형화된 형태 없이 저장되기 때문에 데이터 분석이 SQL보다 어려움

결국 SQL과 noSQL은 각각의 장단점을 보안해주기 때문에 많은 기업에서는 두 가지를 모두 사용하는 경우가 많다.
다음은 카카오의 카카오톡의 DB 구성도이다. 아래와 같이 각각 필요한 요소에 맞는 DB를 사용한다.

출처 :  https://www.oss.kr/oss_case/show/fc9bdee2-66d6-4e45-9d90-94d4d6f39d7d

 

그러기에 두 개의 특징과 장단점을 정확하게 알고 그에 맞게 활용해야 한다.

noSQL 발표를 하면서 noSQL의 소개 부분을 맡게 되어 정리한 자료. 
이 뒤로 다른 분들이 noSQL의 종류인 Document, Graph, Key-Valye, column family의 특징을 각각 소개하였다.

댓글