Database 개념과 RDBMS의 개념

Date:     Updated:

카테고리:

태그:

1. 데이터베이스란?

  • 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합
  • 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높임
  • 엑셀로 정리된 고객 리스트도 일종의 데이터베이스지만, 수백만 건의 데이터가 실시간으로 저장/조회되는 서비스에서는
    엑셀로는 절대 감당할 수 없음 => 이럴 때 사용하는 것이 DBMS


DBMS(Database Management System)이란?

  • 데이터베이스를 관리하기 위한 시스템
  • MySQL, Oracle, PostgreSQL, SQL Server, DB2, SQLite, Tibero 등이 존재


📊 관계형 데이터베이스(RDBMS, Relational Database Management System)란?

  • 데이터를 테이블(Table) 형태로 구조화하여 저장하고 관리하는 데이터베이스 시스템
  • 각 테이블 간의 관계(Relationship)를 설정하여, 다양한 방식으로 데이터를 검색하고 관리할 수 있음

💡 RDBMS의 특징

  1. 테이블 기반 구조
    • 데이터를 테이블 단위로 관리
      • 테이블(Table) : 행과 열로 구성된 데이터의 집합
      • 컬럼(Column) : 테이블의 열, 데이터의 속성을 나타냄
      • 행(Row) : 테이블의 각 개별 데이터 항목을 나타냄


  1. 데이터 중복 최소화
    • 데이터를 정규화(Normalization) 기법을 통해 중복을 최소화함
      • 정규화 : 동일한 데이터가 여러 테이블에 중복 저장되는 것을 방지하고, 데이터 수정 시 발생할 수 있는 오류를 줄임


  1. ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션 보장
    • 모든 트랜잭션이 완전하고 정의된 모든 규칙에 따라서 일관성을 가지게 함으로써 오류, 시스템 충돌과 같은 문제가 없는지 확인할 수 있도록 함
    • 데이터의 무결성, 완전성, 정확성 보장


📌 대표 RDBMS: MySQL, PostgreSQL, Oracle, SQL Server 등


2. ACID 트랜잭션

  • 데이터베이스 내에서 일어나는 하나의 트랜잭션(Transaction)의 안전성을 보장하기 위해 필요한 4가지 속성
    • 트랜잭션은 데이터베이스에서 하나의 논리적인 작업 단위를 의미함
    • 트랜잭션 내 SQL문들은 모두 성공하는 경우 commit되고, 하나라도 실패하는 경우에는 전체가 rollback

ACID 속성 정리

속성 의미 예시
Atomicity (원자성) 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 A에서 출금은 됐는데, B에 입금이 안 되면 안 됨 → 둘 다 취소
Consistency (일관성) 트랜잭션 전후로 데이터는 일관된 상태를 유지해야 함 출금/입금 전후로 전체 계좌 잔액 총합은 같아야 함
Isolation (고립성) 트랜잭션은 다른 트랜잭션과 독립적으로 수행되어야 함 동시에 이체하는 두 명이 서로 영향을 주지 않아야 함
Durability (지속성) 트랜잭션이 커밋되면 결과는 영구적으로 보존되어야 함 입금 성공 후 서버가 꺼져도 데이터는 그대로 남아 있어야 함

ACID 트랜잭션이 좋은 이유는?

  • ACID 트랜잭션은 가능한 최대한의 데이터 안정성과 무결성을 보장해줌
    • 작업 하나가 알부분만 완료되는 바람에 데이터가 일관적이지 않은 상태가 되는 불상사가 절대 일어나지 않게 해준다는 의미
  • ex) ACID 트랜잭션이 없다고 가정하면, 데이터베이스 테이블에 몇몇 데이터를 쓰던 중에 예상치 못하게 정전이 되면 데이터 중 일부는 저장이 되고, 일부는 저장이 되지 않은 사태 발생 가능 => 데이터베이스는 일관성 없는 상태가 되어 복구하기 어렵고 시간도 오래 걸림

SQL 카테고리 내 다른 글 보러가기

댓글 남기기