개발소설

[DataBase] NoSQL 그리고 SQL과 비교 본문

CS/DataBase

[DataBase] NoSQL 그리고 SQL과 비교

ChaeHing 2023. 3. 29. 00:27

NoSQL

  • NoSQL DB는 비관계형 데이터베이스 이다.
  • 관계형 데이터베이스는 SQL 기반이다.
  • NoSQL DB는 말그대로 SQL을 통해 데이터베이스를 다루지 않는다.
  • SQL은 구조화된 데이터를 다루기때문에 Nosql DB는 구조화되지 않은 데이터 베이스라고도 볼 수 있다.
  • 대용량의 데이터, 대용량의 트래픽을 다룰때 용이 하다.

대표적인 데이터 베이스

  • 관계형데이터베이스(RDB) - MySQL, Oracle, PostgerSQL등
  • 비관계형데이터베이스(NoSQL DB) - MongoDB, Casandra, Redis 등

 

SQL DB(RDB)와 Nosql DB의 차이점

  SQL NoSQL
데이터 저장 sql을 통해 테이블에 저장 (정해진 형식이 있음) key-value, wide-column, graph등
스키마(Schema) 고정된 형식의 스키마가 필요
스키마 변경시 오프라인 작업이 필요 할 수 있다.
동적으로 스키마의 형태를 관리
즉시 새로운 데이터형식(필드) 추가 가능
쿼리 테이블 형식에 맞춰 데이터를 요청 (구조화) 데이터 그룹 자체를 조회하기 때문에 구조화 되지 않은 쿼리로도 데이터 요청 가능 (비구조화) - UnQL(UnStructured Query Language)
확장성 수직적 확장, 자원(메모리, CPU)을 추가하는 확장으로 Scale Up 형태이다.
비용이 많이 상대적으로 많이 든다.
수평적 확장으로 클라우드 서비스를 사용하거나 추가적인 서버 증설을 통해 확장. Scale Out의 형태
비용이 상대적으로 적게 든다.

 

SQL 기반 데이터베이스를 사용하는 케이스

  • ACID 성질을 준수해야하는 경우 - 안정성 중시
  • 주로 금융 서비스와 관련된 애플리케이션 개발시 사용
  • 애플리케이션에서 사용하는 데이터가 구조적이고 일관적인경우

NOSQL 기반의  데이터베이스를 사용하는 케이스

  • 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
  • 클라우드 시스템을 사용 하는 경우 - 확장성 고려
  • 빠르게 서버를 구축하거나, 데이터 구조를 자주 업데이트 하는 경우 - 스키마를 준비하지 않아도 되고, 데이터구조를 자주 바꿔야되는경우 ( sql은 스키마를 매번 변경해줘야 한다. 또, 오프라인 작업으로 해야 할 수 있다.) 

'CS > DataBase' 카테고리의 다른 글

[DataBase] 스키마(Schema) 설계  (0) 2023.03.29
[DataBase] 트랜잭션 (transaction), ACID  (0) 2023.03.28
[DataBase] SQL(Structured Query Language)  (0) 2023.03.28
Comments