본문 바로가기
DB

DB SQL & NoSQL

by 차가운개발 2024. 10. 4.

 

SQLNoSQL은 각각 관계형 데이터베이스비관계형 데이터베이스를 가르킨다. 이 두가지 데이터베이스 시스템은 데이터를 관리하고 저장하는 방식이다르고 특징에 따라 적합한 상황에서 사용한다.

 

 

ㅇ SQL(Structure Query Language)

관계형 데이터베이스(RDBMS)를 기반으로 하며, 데이터를 테이블(행과 열의 구조)로 저장한다. 정형화된 스키마를 가지고 있고, SQL이라는 구조화된 쿼리 언어를 사용하여 데이터를 조작한다.

 

* 스키마란 데이터베이스의 구조와 제약을 정의하는 개념이다. 스키마는 데이터가 어떻게 저장되고 조작되는지를 설명하는 틀을 제공하며, 테이블, 열, 데이터타입 등의 구조적인 요소를 정의한다.

 

특징

  • 관계형 모델
    데이터를 테이블에 저장하며, 테이블 간의 관계를 정의할 수 있다. 테이블은 행(row)과 열(column)로 구성된다.
  • 고정된 스키마
    데이터를 삽입하기 전에 미리 정의된 스키마를 따라야 한다. 데이터는 그 스키마를 따른다.
  • ACID 특성
    SQL 데이터베이스는 트랜잭션을 처리할 때 ACID 특성을 준수하여 데이터 무결성을 보장한다.
  • 수직 확장성
    SQL 데이터베이스는 주로 수직 확장(서버의 성능을 업그레이드)으로 성능을 향상 시킨다.

장점

  • 데이터 무결성
    고정된 스키마와 테이블 간의 관계를 통해 데이터 무결성을 보장한다.
  • 복잡한 쿼리 처리
    SQL을 사용해 복잡한 쿼리를 쉽게 작성하고 실행할 수 있다.
  • 트랜잭션 관리
    ACID 특성을 통해 안정적이고 신뢰할 수 있는 트랜잭션 처리가 가능하다.

단점

  • 유연성 부족
    고정된 스키마 때문에 데이터 구조가 자주 변경되는 애플리케이션에서는 유연성이 떨어진다.
  • 대규모 데이터 처리의 한계
    매우 큰 규모의 데이터나 트래픽에 대응하기 어렵고, 수직 확장에 의존하는 경우가 많다.

 

대표적인 SQL DB

  • MySQL
  • PostgreSQL
  • Oracle
  • MSSQL

 

ㅇ NoSQL(Not Only SQL)

비관계형 데이터베이스로, 다양한 데이터 구조를 저장하고 처리할 수 있는 데이터베이스다. 스키마가 없거나 유연하고, 데이터를 더 자유롭게 저장할 수 있다.

출처: https://www.whatap.io/bbs/board.php?bo_table=blog&wr_id=216&page=3

특징

  • 유연한 데이터 모델
    고정된 스키마가 없으며, 다양한 형태로 데이터를 저장할 수 있다. 문서, 키-값, 열 기반, 그래프 등의 여러 유형이 존재한다.
  • 수평 확장성
    여러 서버에 데이터를 분산시켜 수평 확장(Scale Out)하는 것이 특징이다.
  • CAP 이론
    CAP( Consistency, Availability, Partition tolerance)에서 높은 가용성파티션 허용성에 중점을 두고 동작하는 경우가 많다.
  • 다양한 데이터 저장 방식
    문서형, 키-값, 열 기반, 그래프등의 다양한 데이터 저장 방식을 지원한다.

장점

  • 높은 확장성
    대규모 데이터와 트래픽을 수평 확장을 통해 효율적으로 처리할 수 있다.
  • 유연한 데이터 구조
    데이터 구조가 유연하여 비정형 데이터나 자주 변하는 데이터 구조를 쉽게 처리할 수 있다.
  • 빠른 처리 속도
    일반적으로 대량의 읽기/쓰기에 적합하며, 높은 처리 속도를 보장한다.

단점

  • 데이터 무결성 부족
    고정된 스키마와 관계가 없기 때문에 데이터의 무결성을 보장하기 어렵다.
  • 복잡한 쿼리 지원 부족
    복잡한 쿼리 처리가 어려울 수 있다.
  • ACID 특성 부족
    일부 NoSQL DB에서는 트랜잭션에서 ACID 특성을 완벽하게 지원하지 않을 수 있다.

대표적인 NoSQL DB

  • MongoDB
  • Cassandra
  • Redis
  • DynamoDB

정리

 

특징 SQL NoSQL
데이터 모델 테이블 기반(행, 열) 문서, 키-값, 열 기반 등 다양한 모델
스키마 고정된 스키마 스키마가 없거나 유연함
확장성 수직 확장(Scale Up) 수평 확장(Scale Out)
ACID 특성 지원(데이터 무결성 보장) 일부 지원, CAP이론에 따라 제한되는 경우
복잡한 쿼리 처리 SQL을 사용한 복잡한 쿼리 가능 복잡한 쿼리 지원 부족
데이터 무결성 데이터 무결성이 중요함 데이터 유연성, 가용성이 중요함
사용 사례 관계형 데이터가 중요한 시스템 대규모 데이터 처리, 비정형 데이터 처리

 

'DB' 카테고리의 다른 글

DB Key  (0) 2024.10.04
DB SQL Injection  (0) 2024.10.04
DB Index  (0) 2024.10.04
DB Redis  (0) 2024.10.04
DB Transaction  (0) 2024.10.04