트랜잭션

HEUKWU·2023년 5월 15일
0

트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 수행되는 하나 이상의 작업 단위를 나타내는 개념이다. 트랜잭션은 데이터베이스의 상태를 변화시키는 일련의 연산들을 하나의 논리적인 작업 단위로 묶어서 실행하고, 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)을 보장한다. 이를 약자로 ACID라고 한다.

특징

  • 원자성(Atomicity)
    트랜잭션은 하나의 원자적인 작업 단위로 간주되어야 한다. 즉, 트랜잭션 내의 모든 연산은 전부 성공하거나 전부 실패해야 한다. 하나의 연산이라도 실패하면 이전의 연산들은 롤백되어 모든 연산이 이전 상태로 복원된다. 모든 연산이 성공적으로 완료되면 트랜잭션은 커밋되어 영구적으로 적용된다.

  • 일관성(Consistency)
    트랜잭션 실행 전과 실행 후에 데이터베이스는 일관된 상태를 유지해야 한다. 즉, 트랜잭션은 데이터베이스의 무결성 규칙을 지켜야 한다. 데이터베이스에서 정의된 제약 조건에 위배되는 작업은 트랜잭션 실행 전 상태로 롤백된다.

  • 독립성(Isolation)
    트랜잭션은 서로 간섭하지 않고 독립적으로 실행되는 것처럼 보여야 한다. 한 트랜잭션이 다른 트랜잭션의 연산에 영향을 주지 않아야 한다. 이를 위해 트랜잭션은 격리 수준을 지정할 수 있으며, 다른 트랜잭션에서 발생하는 변경사항은 해당 트랜잭션에게 보이지 않을 수 있다.

  • 지속성(Durability)
    트랜잭션이 성공적으로 커밋되면 해당 트랜잭션의 결과는 영구적으로 데이터베이스에 저장되어야 한다. 데이터베이스 시스템의 장애나 오류가 발생하더라도 트랜잭션의 결과는 손실되지 않아야 한다.

트랜잭션은 데이터베이스에서 데이터의 일관성과 신뢰성을 유지하기 위해 중요하다. 트랜잭션은 다수의 데이터 조작 작업을 하나의 논리적인 작업 단위로 묶음으로써 데이터의 일관성을 보장한다.

과정

  • 시작
    트랜잭션을 시작하면 데이터베이스 관리 시스템에게 트랜잭션이 시작됨을 알린다.

  • 연산
    트랜잭션 내에서 데이터베이스 조작 작업을 수해한다. (삽입, 갱신, 삭제 등)

  • 커밋
    트랜잭션을 커밋하여 변경된 데이터를 영구적으로 데이터베이스에 저장한다. 데이터베이스는 트랜잭션의 결과를 지속적으로 유지한다.

  • 롤백
    트랜잭션 실행 중 오류가 발생하거나 트랜잭션을 취소해야 할때, 롤백하여 데이터를 복구한다.

데이터 무결성

데이터베이스 내의 데이터가 정확하고 일관된 상태를 유지하는 것을 의미한다. 데이터 무결성은 데이터의 유효성, 정확성, 일관성을 보장하여 데이터베이스의 신뢰성과 품질을 유지한다.

  • 개체 무결성
    개체 무결성은 기본 키(primary key)를 가진 엔티티(테이블)의 레코드가 고유하게 식별되어야 함을 보장한다. 즉, 기본 키는 NULL이거나 중복되어서는 안된다. 이를 통해 데이터의 유일성을 유지할 수 있다.

  • 참조 무결성
    참조 무결성은 관계형 데이터베이스에서 관계(relationship)를 형성하는 테이블 간의 일관성을 보장한다. 예를 들어, 외래 키(foreign key)를 가지고 있는 테이블의 레코드는 참조하는 테이블의 기본 키에 해당하는 값이어야 한다. 이를 통해 데이터 간의 관계를 유지하고, 데이터의 무결성을 보장할 수 있다.

  • 도메인 무결성
    도메인 무결성은 각 속성(attribute)이 정의된 도메인에 속한 값만을 가질 수 있도록 보장한다. 예를 들어, 정수형 속성은 숫자만을 가질 수 있고, 문자열 속성은 정해진 길이와 형식을 따라야 합니다. 이를 통해 잘못된 값이 데이터베이스에 저장되지 않고, 데이터의 일관성과 유효성을 유지할 수 있습니다.

  • 무결성 제약 조건
    무결성 제약 조건은 데이터베이스에 적용되는 규칙으로, 데이터의 무결성을 강제하고 유지하기 위해 사용된다. 주요한 무결성 제약 조건으로는 기본 키(primary key), 외래 키(foreign key), 고유 제약(unique constraint) 등이 있다. 이러한 제약 조건은 데이터의 일관성과 무결성을 강제하여 잘못된 데이터의 입력이나 수정을 방지한다.

데이터 무결성은 데이터베이스 시스템의 신뢰성과 안정성을 보장하기 위해 매우 중요하다. 무결성을 유지함으로써 데이터의 정확성과 일관성이 유지되며, 보안을 강화할 수 있다. 따라서 데이터 베이스 설계 시 무결성 제약 조건을 적절히 설정하고, 데이터의 입력, 수정, 삭제 과정에서 무결성을 유지하는 것이 좋다.

0개의 댓글

관련 채용 정보