ahlight
개발 저장소
ahlight
전체 방문자
오늘
어제
  • 분류 전체보기 (197)
    • Java (7)
    • Spring (5)
    • JPA (2)
    • JavaScript (0)
    • Computer Science (12)
      • 디자인패턴, 프로그래밍 패러다임 (1)
      • 네트워크 (4)
      • 운영체제 (4)
      • 데이터베이스 (3)
      • 자료구조 (0)
    • 알고리즘 (1)
    • 프로그래머스 (13)
    • 백준 (94)
    • 서평 (3)
    • 회고 (1)
    • TIL (58)
    • 기타 (1)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 넥스트스텝
  • TDD
  • 라즈베리파이4 #홈서버 #포트포워딩 #dhcp
  • 클린코드
  • Java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ahlight
Computer Science/데이터베이스

트랜잭션과 무결성

트랜잭션과 무결성
Computer Science/데이터베이스

트랜잭션과 무결성

2022. 10. 11. 22:31

1. 트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업의 단위. 쉽게 생각해서 쿼리 여러개 묶어서 한 번에 실행하는 걸로 생각하면 편하다.

 

2. 트랜잭션의 특징

원자성(atomicity) - 트랜잭션 관련 수행은 모두 실행되거나 모두 실행되지 않아야 한다.(커밋/롤백, 무결성 보장)
- 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다.
- 여러 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록하는 것이 트랜잭션 전파다.(ex : Spring @Transactional 애너테이션)
일관성(consistency) - 허용된 방식으로만 데이터를 변경해야 하는 것
- 트랜잭션 전후로 데이터베이스의 상태가 이전과 같이 유효해야 하는 것
격리성(isolation) - 한 트랜잭션이 수행 될 때 다른 트랜잭션은 끼어들 수 없다.
- 마치 격리 되어있는 것처럼 순차적으로 작동되어야한다.
지속성(durability) - 성공적으로 완료된 트랜잭션은 장애가 발생하여도 영구히 반영되어야 한다.
- 이를 위해 데이터베이스는 체크섬, 저널링, 롤배 등의 기능을 갖춰야 한다.
- 체크섬 : 중복검사의 한 형태로, 오류 정정을 통해 송신된 자료의 무결성을 보호하는 방법
- 저널링 : 파일 시스템 또는 데이터베이스 시스템에 변경 사항을 반영 하기전에 로깅하는 것

3. 트랜잭션의 격리 수준 및 격리 수준에 따른 현상

4. 무결성 : 데이터의 정확성, 일관성, 유효성을 유지하는 것

 

5. 무결성 종류

개체 무결성 기본키로 선택된 필드는 NULL값을 허용하지 않음
참조 무결성 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야한다.
고유 무결성 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성 값은 모두 고유한 값을 가져야한다.
NULL 무결성 특정 속성에 대해 NULL값이 허용되지 않는 조건이 주어진 경우 그 속성값은 NULL이 될 수 없다.

'Computer Science > 데이터베이스' 카테고리의 다른 글

ERD와 정규화  (0) 2022.10.10
데이터베이스의 기본  (0) 2022.10.10
    'Computer Science/데이터베이스' 카테고리의 다른 글
    • ERD와 정규화
    • 데이터베이스의 기본
    ahlight
    ahlight

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.