[DB] DB의 큰 그림

data_buddha·2024년 11월 12일
0

DB와 DBMS

  • DB : 원하는 기능을 동작시키기 위해 마땅히 저장해야 하는 정보의 집합
  • DBMS : DB 관리 시스템

서버로서의 DBMS

  • DBMS는 사용자와 직접 상호작용하기보다는 사용자(개발자)가 만든 프로그램과 상호작용
  • 응용 프로그램들 입장에서 DBMS는 마치 서버와 같음
  • 쿼리 : 사용자와 응용 프로그램이 DBMS의 언어를 통해 DB를 다룰 수 있게함
  • 대표적인 DB 언어 : SQL
    • 데이터베이스에 질의하기 위한 구조화된 언어
  • SQL은 크게 4가지 종류
    • DDL : 데이터 정의
    • DML : 데이터 조작
    • DCL : 데이터 제어
    • TCL : 트랜잭션 제어

파일 대신 DB를 이용하는 이유

  1. 데이터 일관성 및 무결성 제공이 어려움
  2. 불필요한 중복 저장이 많아짐
  3. 데이터 변경 시, 연관 데이터 변경이 어려움
  4. 정교한 검색이 어려움
  5. 백업 및 복구가 어려움

DB의 저장 단위와 트랜잭션

DB의 저장 단위

  • DB에는 다양한 속성을 가진 독립적 객체들이 저장될 수 있음
  • "독립적으로 존재할 수 있는 객체"를 "엔티티"라고 함
    • 어떠한 특성을 가진 대상이라고 보면 됨
  • "속성"은 엔티티의 특성을 의미
  • 같은 "속성"을 공유하는 개별 엔티티는 같은 "엔티티 집합"에 속한다고 할 수 있음
  • 그렇다면 DBMS에서는 엔티티와 엔티티 집합을 어떻게 각각 표현하고 저장할까?
    • RDBMS는 엔티티 집합을 이차원 테이블 형태의 표로 표현하고, 이를 "릴레이션"이라고 부름
    • NoSQL DBMS의 MongoDB에서는 엔티티 집합을 "컬렉션"이라고 부름
  • 각각의 엔티티를 "레코드"라고 부름 (테이블의 행)
  • 엔티티의 속성은 "필드"라고 함 (테이블의 열)
  • MongoDB에선 개별 레코드를 JSON 형태의 "도큐먼트"라는 단위로 표현
    • 필드를 JSON 키의 형태로 표현

스키마

  • RDBMS와 NoSQL의 가장 주요한 구분점 : 스키마
  • 스키마는 DB에 저장되는 레코드의 구조와 제약조건을 정의한 것
    • 레코드가 지켜야할 틀이자 청사진
  • RDBMS에서는 명확한 스키마가 정의되며, 레코드들은 이 스키마로 정해진 테이블의 구조, 필드의 데이터 타입 및 제약 조건을 따라야 함
  • NoSQL은 스키마-리스 DB로도 불림

트랜잭션과 ACID

  • 트랜잭션 : DB와의 논리적 상호작용 단위를 의미
    • DB가 처리하는 작업의 단위를 나타내므로 "초당 트랜잭션"이라는 지표로 DB의 작업 성능을 나타내기도 함
  • 여러 작업을 내포하는 트랜잭션이 동시다발적으로 실행될 때는 안전한 트랜잭션을 보장하기 위해 지켜야 하는 성질이 있음
    • 이를 ACID라고 함
  1. 원자성 A

    • 트랜잭션이 하나의 단위로 처리되는 것을 원자성이라고 함
    • ALL OR NOTHING
    • 주어진 작업을 모두 성공하거나 모두 실패할 뿐, 일부 성공이나 일부 실패는 허용하지 않음
    • 커밋과 롤백
      • 원자성을 트랜잭션이 반드시 커밋되거나 롤백되는 성질이라고 표현
      • 커밋 : 트랜잭션을 성공적으로 수행하여 트랜잭션을 종료하는 것을 의미
      • 롤백 : 이전 트랜잭션을 취소하는 작업을 의미, DB를 롤백하면 트랜잭션이 이루어지기 전으로 되돌릴 수 있음
  2. 일관성 C

    • 트랜잭션 전후로 DB가 일관된 상태를 유지하는 성질을 "일관성"
    • "일관된 상태"란 DB가 지켜야하는 일련의 규칙들을 지키는 상태
  3. 격리성 I

    • 동시에 수행되는 여러 트랜잭션이 서로 간섭하지 않도록 보장하는 것
    • 한 트랜잭션이 어떤 데이터에 접근하여 조작 중일 때는 다른 트랜잭션이 접근할 수 없음
  4. 지속성 D

    • 트랜잭션이 성공적으로 완료된 후에 그 결과가 영구적으로 반영되는 성질
profile
来日方长 : 앞길이 구만리 같다; 앞길이 희망차다. 장래의 기회가 많다.

0개의 댓글