1189 단어
6 분
SQL, NOSQL
2025-04-19

1. DB, DBMS#

데이터베이스 (DB, Database)#

전자적으로 저장되고 체계적인 데이터의 모음
여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합

데이터베이스 관리 시스템 (DBMS, Database Management System)#

데이터베이스 안에 데이터를 관리해주는 프로그램
다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근을 가능하게 해줌
예) MySQL, Oracle, MongoDB

SQL : Structured Query Language#

  • 비절차적 언어로, 원하는 결과에 대한 내용만 명세하고 결과를 얻는 내부의 방식에 대한 내용은 없음
  • RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
  • RDBMS : 관계형 데이터베이스 관리 시스템
  • 데이터를 테이블 형태로 표현하고 데이터 간 관계를 쉽게 설정함
  • RDBMS에서 사용되는 표준 질의언어

2. SQL (관계형 데이터베이스)#

관계형 데이터베이스는 테이블, 행, 열의 정보를 구조화하는 방식
테이블 행에 해당하는 고유 식별자인 키를 통해 여러 테이블을 연결함

특징#

  • 정해진 스키마에 따라 데이터를 저장
  • 데이터는 테이블(행과 열)로 구성
  • 관계를 통해 여러 테이블에 분산 저장
  • ACID 특성 보장 (원자성, 일관성, 고립성, 지속성)

장점#

  • 명확한 데이터 구조
  • 데이터 무결성 보장
  • 복잡한 조인 연산 가능
  • 트랜잭션 처리에 적합

단점#

  • 스키마 변경이 어려움
  • 대용량 데이터 처리 시 성능 저하
  • 수평적 확장의 한계

종류#

MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database

3. NoSQL (비관계형 데이터베이스)#

Not only SQL 혹은 Non-Relational Operational Database
관계형 모델을 지양하고 대량의 분산된 비정형 데이터를 저장하고 조회함
스키마 없이 사용하거나 느슨한 스키마 제공

특징#

  • SQL과 달리 데이터 간 관계를 정의하지 않음
  • Key-Value 형태로 저장되어 조인 연산이 불가능
  • 대용량 데이터 저장 가능
  • 다양한 데이터 모델 지원:
    • Key-Value (Redis, Oracle NoSQL DB, VoldeMarte)
    • Document (MongoDB, CouchDB, Riak, Azure Cosmos DB)
    • Wide-Column-Family (Cassandra, Hbase, GoogleBigTable, Vertica)
    • Graph (Neo4j, Sones, AllegroGraph, OrientDB)
  • 분산형 구조 설계로 데이터 유실과 서비스 중단 방지
  • 고정되지 않은 테이블 스키마 허용

장점#

  • 비용 효율적인 분산처리와 병렬 처리 가능
  • 비정형 데이터 구조 설계로 설계 비용 절감
  • 큰 데이터 처리에 효율적
  • 유연하고 가변적인 데이터 구조 지원

단점#

  • 데이터 일관성은 SQL보다 떨어짐
  • 복잡한 조인 연산 불가
  • 많은 인덱스 사용 시 메모리 요구 높음
  • 데이터 업데이트 중 장애 발생 시 데이터 손실 가능
  • 트랜잭션 지원 미흡

4. SQL VS NoSQL 비교#

비교 항목SQL (관계형 데이터베이스)NoSQL (비관계형 데이터베이스)
데이터 구조정해진 스키마, 테이블 형태스키마 없거나 유연한 구조
확장성수직적 확장 (Scale-up)수평적 확장 (Scale-out)
일관성강한 일관성 (ACID 준수)느슨한 일관성 (BASE 준수)
쿼리 언어표준 SQL 사용데이터베이스별 다양한 쿼리어 사용
트랜잭션완벽 지원제한적 지원
관계테이블 간 관계 정의(조인 가능)관계 제한적 또는 없음
성능복잡한 쿼리 적합단순 쿼리 높은 처리량
사용 사례금융, 회계, ERP 등 정형 데이터빅데이터, 실시간 처리, 소셜 미디어 등
대표 제품MySQL, PostgreSQL, OracleMongoDB, Redis
스키마 변경어려움, 미리 정의 필요용이, 동적 변경 가능
NOTE

💡 결국 어느 DBMS를 선택하는 것이 맞는가?

SQL 선택 시

  • 데이터 구조가 명확하고 변경이 적은 경우
  • 데이터 무결성이 중요한 경우
  • 복잡한 트랜잭션이 필요한 경우

NoSQL 선택 시

  • 데이터 구조가 유동적인 경우
  • 빠른 읽기/쓰기 필요
  • 데이터 양이 매우 많은 경우
  • 데이터 일관성보다 가용성이 중요한 경우

결론
두 데이터베이스는 상호 보완적이다.
프로젝트 특성에 따라 적절히 선택하며 때로는 두 가지를 함께 사용하기도 한다. (Polyglot Persistence)

SQL, NOSQL
https://devlog.jpstudy.org/posts/2025/cs/sql_nosql/
저자
SY
게시일
2025-04-19
라이선스
CC BY-NC-ND 4.0