[DB] SQL & NoSQL

do_it·2025년 10월 31일

database

목록 보기
5/11

SQL & NoSQL

1. SQL & NoSQL

SQL (Structured Query Laguage)

  • 관계형 DB
  • 데이터를 테이블 기반 구조로 저장하는 관계형 데이터베이스
  • e.g. MySQL, PostgreSQL, Oracle, SQL Server

NoSQL (Not Only SQL)

  • 비관계형 DB
  • 비정형 또는 반정형 데이터를 저장하는 유연한 데이터베이스
  • MongoDB, Redis, Cassandra, DynamoDB

2. 구조적 차이점

비교 항목SQLNoSQL
데이터 모델정형(Structured)
테이블 기반, 행(row)과 열(column) 구성
비정형/반정형(Unstructured/Semi-structured)
JSON, 문서, 그래프, Key-Value 등 다양한 구조
스키마(Schema)고정(Fixed Schema)
사전에 정의 필요 ⇒ 스키마 변경 어려움
유연(Flexible Schema)
필드 추가/삭제 자유 ⇒ 스키마 변경이 유연함
데이터 관계외래키(FK)로 관계 정의 (정규화 중심)데이터 중복 허용, 관계는 애플리케이션 단에서 처리
확장성(Scalability)수직 확장(Vertical Scaling)
서버 성능 업그레이드
수평 확장(Horizontal Scaling)
노드 추가로 확장
트랜잭션ACID (Atomicity, Consistency, Isolation, Durability)BASE (Basically Available, Soft state, Eventually consistent)
쿼리 언어표준 SQL 문법데이터베이스별 고유 쿼리 언어 (MongoDB의 find, Redis의 get/set 등)
성능 특성일관성(Consistency) 중시가용성(Availability) 및 확장성 중심

SQL

  • 모든 데이터는 정형화된 스키마를 따라야 함.
  • 데이터는 행과 열로 구성된 테이블에 저장됨.
  • 테이블 간 관계를 외래키(FK)로 연결함
  • 데이터 중복을 최소화하기 위해 정규화를 수행함.

NoSQL

  • 비정형 데이터도 저장 가능함. (JSON, Key-Value, Graph등)
  • 테이블 대신 컬렉션, 문서, Key-Value Store 형태로 저장함.
  • 관계 대신 중첩 구조로 데이터 내포 가능함.
  • 데이터 중복을 허용하여 읽기 성능을 극대화함.

3. 트랜잭션 관리

항목SQLNoSQL
트랜잭션 모델ACID (정합성 우선)BASE (가용성, 확장성 우선)
Consistency (일관성)즉시 보장최종 일관성(Eventual Consistency)
사용 예시금융, 회계, ERP 시스템로그, 세션, 캐시, SNS 데이터 등

트랜잭션이란 DB에서 한 번에 수행되어야 하는 논리적 작업 단위임.

여러 쿼리를 하나의 작업처럼 묶어서 성공 / 실패를 함께 처리함.

SQL의 트랜잭션 관리 방식: ACID 원칙

원칙설명예시
Atomicity (원자성)모든 연산이 하나의 단위로 실행되어야 함 — 일부만 성공 불가결제 실패 시 주문도 취소됨
Consistency (일관성)트랜잭션 전후 데이터 무결성이 유지되어야 함재고 수량이 음수가 되면 안 됨
Isolation (격리성)동시에 실행되는 트랜잭션 간의 간섭 방지두 사용자가 동시에 같은 주문 수정 불가
Durability (지속성)커밋된 데이터는 영구 저장시스템 다운 후에도 데이터 유지
  • SQL 데이터베이스에는 정부 / 업계 표준을 준수해야 해는 뱅킹 / 금융 정보가 포함되어 있음

NoSQL의 트랜잭션 관리 방식: BASE 원칙

원칙설명
Basically Available시스템은 언제나 응답을 반환해야 함 (완벽하지 않아도 됨)
Soft state데이터는 일시적으로 불안정할 수 있음
Eventually consistent시간이 지나면 데이터는 최종적으로 일관된 상태에 수렴

0개의 댓글