SteadyDrills

RDBMS (관계형 데이터베이스 관리 시스템) 본문

CS

RDBMS (관계형 데이터베이스 관리 시스템)

Drills 2024. 11. 28. 21:54

241128

RDBMS (Relational Database Management System)

 

RDBMS는 관계형 데이터베이스 모델을 기반으로 데이터를 관리하는 시스템이다. 데이터는 테이블(표)로 표현되며, 각 테이블은 행(인스턴트)과 열(속성)으로 구성되며, SQL(Structured Query Language)을 사용하여 데이터를 정의, 조작 등을 할 수 있다.

 

특징

  • 정형화된 데이터 구조
    • 데이터는 테이블 기반으로 저장되며, 스키마(schema)를 미리 정의해야 한다.
    • 데이터의 구조(열 이름, 데이터 타입 등)가 엄격하게 유지된다.
  • SQL 사용
    • 데이터 정의, 조회, 수정, 삭제를 위한 표준 언어인 SQL을 사용한다.
    • 강력한 쿼리 기능(조인, 필터링, 집계 등)을 제공한다.
  • ACID 속성 지원
    • 트랜잭션의 신뢰성을 보장하는 ACID속성을 지원함다.
    • 은행, 금융, 회계 등 높은 데이터 정확성과 안정성이 필요한 환경에 적합하다.
  • 스케일 업(Scale-Up) 방식
    • 서버의 하드웨어 성능(CPU, RAM, 저장소 등)을 확장하여 성능을 높인다.
    • 수직적 확장 방식이 일반적이다.

개념정리

더보기
  • 스키마(schema)
    데이터베이스의 구조와 제약 조건을 정의 → 데이터베이스의 설계도

  • 트랜잭션
    데이터베이스에서 논리적으로 하나의 작업 단위로 묶인 일련의 작업

  • ACID속성
    • Atomicity (원자성)
      • 트랜잭션 내의 모든 작업이 모두 완료되거나, 아무 것도 실행되지 않은 상태로 롤백되는 것을 보장.
      • 예시 A 계좌에서 B 계좌로 돈을 송금하는 경우,
        하나의 트랜잭션 == (A 계좌의 인출 & B계좌의 입금) → 모두 완료 or 모두 실패
    • Consistency (일관성)
      • 트랜잭션이 실행된 후에도 데이터베이스가 항상 일관된 상태를 유지.
      • 예시
        트랜잭션 전후에 데이터의 제약 조건(Primary Key, Foreign Key 등)이 항상 유효. → 통장 잔액이 음수가 되는 일이 없어야 함.
    • Isolation (격리성)
      • 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션이 서로 간섭하지 않도록 보장합니다.
      • 하나의 상품을 두 구매자가 구매하려고 할때, 별개의 트랜잭션으로 충돌하지 않고, 하나의 트랜잭션이 끝나고 다음 트랜잭션이 영향을 미침 → 상품 재고 없음, 티켓팅 등.
    • Durability (지속성)
      • 트랜잭션이 성공적으로 완료되면, 그 결과가 영구적으로 저장됨. 시스템 장애가 발생하더라도 데이터는 손실되지 않음.
      • 전원이 꺼지더라도 완료된 송금 트랜잭션은 데이터베이스에 저장되어 있어야 함.

장점

  • 데이터 무결성과 일관성이 보장된다.
  • 관계를 기반으로 한 복잡한 쿼리를 효율적으로 수행할 수 있다.
  • 표준화된 SQL을 사용하므로 다양한 툴 및 프레임 워크와 호환성이 높다.

단점

  • 스키마 변경의 어려움
    • 테이블 스키마가 고정적이므로 데이터 모델 변경이 복잡하고 시간이 많이 걸린다.
  • 대규모 데이터 처리의 한계
    • 수직적 확장 방식이 한계에 도달하면 성능이 저하될 수 있다.
  • 비정형 데이터 처리의 비효율성
    • JSON, XML, 이미지 등 비정형 데이터를 저장하고 처리하는 데 비효율 적이다.

 

프로그램 예시

- MySQL, PostgreSQL, SQLite, Oracle Database 등

'CS' 카테고리의 다른 글

RDBMS와 NoSQL의 차이  (2) 2024.12.02
NoSQL  (0) 2024.11.29
클라이언트(Client)란?  (0) 2024.11.26
세션 인증과 JWT 인증의 차이  (1) 2024.11.24
JWT(JSON Web Token)  (0) 2024.11.18