본문 바로가기
Computer Science

[CS] RDBMS / NoSQL

by jyc_ 2025. 1. 14.

RDBMS

정의

  • 데이터를 테이블 형식으로 관리하는 데이터베이스 관리 시스템
  • 테이블은 Row(tuple), Column(attribute)으로 구성되어 있으며, 각 테이블 간 관계가 설정되어 데이터를 효율적으로 관리할 수 있다.
  • SQL문을 통해 데이터의 CRUD(Create, Read, Update, Delete) 작업이 가능하다.
  • Oracle DB, MySQL, PostgreSQL, MariaDB 등이 대표적인 RDBMS이다.

 

특징

  • 데이터 저장 구조
    • 데이터를 테이블 형태로 저장, 테이블은 행과 열로 구성된다.
  • 관계 설정
    • 각 테이블 간 외래키(Foreign Key)를 통해 관계를 설정하여 데이터의 무결성을 유지한다.
  • 데이터 무결성 보장
    • 데이터의 정확성과 일관성의 보장을 위해 Primary Key, Foreign Key, Unique, Not Null, Check 등의 제약 조건을 사용한다.
  • SQL 사용
    • 데이터를 조작하기 위해 표준 언어인 SQL을 사용한다. DML, DDL, DCL 등…
  • 트랜잭션 지원
    • 트랜잭션은 하나의 작업 단위를 의미하며 ACID* 특성을 보장한다. (*원자성, 일관성, 격리성, 내구성)
  • 데이터 독립성
    • 논리적 데이터 구조와 물리적 데이터 구조의 분리를 통해 애플리케이션과 DB 간 결합도를 낮춘다.

 

 

장점

  • 데이터 무결성과 일관성
    • 데이터 제약 조건을 통해 데이터의 신뢰성을 유지
  • 데이터 중복 최소화
    • 데이터를 테이블 단위로 구분하고 관계를 설정하여 중복 데이터를 최소화한다.
  • 다양한 쿼리 기능
    • SQL을 사용하여 복잡한 질의 및 데이터를 쉽게 검색할 수 있다.
  • 동시성 제어
    • 데이터에 대한 여러 동시 접근에도, 트랜잭션을 통한 일관성 유지

 

단점

  1. 대용량 데이터 처리 시 속도 저하 문제 발생 → 인덱싱, 파티셔닝 등의 작업 필요
  2. 수직 확장에는 적합하지만, 수평 확장에 제한적이다.
  3. 비정형 데이터(JSON, Log 등) 처리에 있어 유연성이 떨어진다.

NoSQL (Non-Relational Database)

정의

  • 비관계형 데이터베이스로, 테이블 기반 구조가 아닌 다양한 데이터 모델을 지원한다.
  • 대규모 데이터의 저장 및 처리를 위해 설계되었으며, 수평 확장을 통한 높은 성능과 유연성을 제공한다.

 

특징 / 장점

  • 불필요한 스키마 또는 유연한 스키마
    • 고정된 스키마 없이 데이터 구조를 저장할 수 있어 구조 변경이 자유롭다.
  • 데이터 모델 다양성
    • 문서, Key-Value, Column, 그래프 등 다양한 데이터 모델 지원
  • 수평 확장성
    • 서버를 추가하여 데이터 저장소를 확장할 수 있다.
  • 분산형 시스템 지원
    • 여러 노드에 데이터를 분산 저장하여 높은 가용성을 지원한다.
  • 대용량 데이터 처리
    • 대량의 비정형 데이터(JSON, Log 등)를 빠르게 처리할 수 있다.

 

단점

  • 데이터 무결성 및 일관성 부족
    • 강한 트랜잭션을 보장하지 않는 경우가 많다.
  • 복잡한 쿼리 기능 제한
    • SQL처럼 복잡한 JOIN과 쿼리가 제한적이다.
  • 관리 및 유지보수
    • 대규모 분산 시스템의 관리를 위해 높은 기술력과 자원이 필요하다.
  • 호환성 문제
    • 기존 애플리케이션이나 시스템과의 호환성이 떨어질 수 있다.

 

요약

구분 RDBMS NoSQL
데이터 구조 테이블 기반 관계형 구조 문서, Key-Value, 컬럼 등
스키마 고정 스키마 동적 스키마
확장성 수직 확장 수평 확장
트랜잭션 ACID 보장 ACID 보장 X
속도 작은 데이터셋에서의 우수한 성능 대규모 데이터셋에서의 우수한 성능
데이터 모델 관계 기반 모델 비관계형 모델
데이터 무결성 강한 데이터 무결성 약한 무결성 보장
쿼리 언어 표준 SQL 고유 API 또는 쿼리 언어

 

사용

RDBMS

  • 은행, 금융 거래 등 데이터 무결성이 중요한 시스템
  • 인사, 재고 관리 등 스키마가 고정되어 있는 경우

NoSQL

  • 대용량 비정형 데이터(로그, 클릭 스트림) 저장 및 분석 시스템
  • 소셜 네트워크, IoT, 게임 등 실시간 데이터 처리

'Computer Science' 카테고리의 다른 글

[CS] MVC Pattern  (0) 2025.01.20
[CS] Overriding / Overloading  (0) 2025.01.20
[CS] Query String / Path Variable  (0) 2025.01.13
[CS] 서버 개발을 위한 기초 지식  (0) 2025.01.13
[CS] 도메인 접속 시, Server-Client 간 흐름  (0) 2025.01.09