본문 바로가기
Develop

SQL vs NoSQL

by jaeyoungb 2022. 10. 5.

SQL(Structured Query Language)

 

▶ 특징

데이터는 엄격한 스키마(데이터 개체, 속성, 관계,제약조건)에 따라 테이블에 저장된다.

관계를 통해 연결된 여러 개의 테이블에 저장한다.

 

▶ 장점

정해진 스키마에 따라 데이터를 저장하기 때문에 명확한 데이터 구조 보장한다.

각 데이터에 맞게 테이블을 나눠서 저장하기 때문에. 데이터 중복을 피해서 공간 절약할 수 있다.

 

▶ 단점

관계로 인한 시스템 복잡도를 고려하여 구조화해야 한다.

시스템이 복잡하면, query문이 복잡하고, 성능이 저하된다.

수평적 확장이 어렵고, 대부분 수직적 확장이다. 그로 인한 한계에 직면할 수 있다.

 

▶ 사용

데이터가 자주 수정되는 어플리케이션일 때

변경될 여지가 없고, 명확한 스키마가 중요할 경우

 

 

NoSQL(No Structured Query Language)

 

▶ 특징

분산처리 목적으로 쓰인다.

테이블과 같은 개념으로 컬렉션이라는 형태로 데이터를 관리한다.

 

▶ 장점

테이블간의 복잡한 관계를 생각하지 않아도 된다.

스키마가 없어서 유연하고, 언제든지 데이터를 조정하고 새로운 필드를 추가할 수 있다.

자주 변경되지 않는 데이터를 저장하기 유리하다.

수평적 확장에 용이하고 읽기, 쓰기가 빠르다.

 

▶ 단점

자유롭게 데이터 추가가 가능하기 때문에, 데이터 업데이트 시, 중복될 수 있어 저장 데이터를 똑같이 관리해주어야 한다.

 

▶ 사용

정확한 데이터 구조를 알 수 없거나 변경 및 확장이 가능한 경우

읽기가 많고 변경이 적을 때

수평적 확장에 용이하고, 막대한 양의 데이터를 다룰 때

'Develop' 카테고리의 다른 글

SQL 구문 순서  (0) 2022.10.08
인스타그램 스키마 작성하기  (0) 2022.10.06
ACID란?  (0) 2022.10.05
API란?  (0) 2022.10.04
HTTP 요청 메서드 등등  (0) 2022.10.03