참고: https://www.ibm.com/docs/en/cics-ts/5.4?topic=processing-acid-properties-transactions 

https://www.techopedia.com/definition/27386/consistency-databases

 

Consistency

This definition explains the meaning of Consistency and why it matters.

www.techopedia.com

 

ACID properties of transactions

In the context of transaction processing, the acronym ACID refers to the four key properties of a transaction: atomicity, consistency, isolation, and durability. Atomicity All changes to data are performed as if they are a single operation. That is, all th

www.ibm.com

 

DataBase의 "일관성(Consistency)"은 Transaction이 성공적으로 완료되어도 항상 데이터베이스를 일관된 상태로 유지해야 한다는 원칙을 의미 한다.

즉, Transaction의 실행 결과가 데이터베이스의 일관성을 유지하는 데 기여하는 무결성 제약 조건을 준수해야한다는 것을 의미한다.

 

< 일관성을 보장하는 Transaction의 예시 > 

START TRANSACTION;

-- 송금자 계좌에서 돈을 빼기
UPDATE Accounts SET balance = balance - 1000 WHERE account_id = 1;

-- 수신자 계좌에 돈 추가
UPDATE Accounts SET balance = balance + 1000 WHERE account_id = 2;

COMMIT;

위의 코드에서는 "START TRACSACTION"과 "COMMIT" 사이에 이루어지는 모든 작업이 원자성을 가지기에

이에 따라 일관성이 보장 된다. 

< 트랜잭션 실행결과가 무결성 제약 조건을 준수해야 하는 이유 >

 

1) 정확성 보장 :

무결성 제약조건은 데이터가 정확하고 유효한 값만 가지도록 보장한다.

예를 들어, 특정 필드에는 숫자만 입력되어야 하며, 또 다른 필드에는 NULL 값이 허용 되지 않는 등의

규칙을 설정할 수 있다.

 

2) 일관성 유지 :

무결성 제약조건은 데이터베이스의 일관성을 유지하는데 중요한 역할을 한다.

예를 들어, 외래 키 제약 조건은 RDBMS에서 Table간의 관계를 정의하고 유지하는데 사용한다.

이를 통해 무효한 데이터나 참조 무결성 오류를 방지할 수 있다.

 

3) 신뢰성 ↑ :

무결성 제약조건이 준수되면, 데이터베이스에 저장된 정보가 신뢰성이 높아진다.

이는 비즈니스 결정이나 분석에 사용되는 데이터의 품질이 보장되므로, 더 나은 결과를 얻을 수 있다. 

 

따라서, 트랜잭션의 실행결과가 무결성 제약조건을 준수하도록 하는 것은 데이터베이스 시스템의 정확성,일관성,신뢰성을 보장하는데 필수적이다. 

 

 

 

< 무결성 제약 조건 >

1.Domain constraints condition in RDBMS : 각 열은 명시적으로 선언된 도메인(예:숫자, 문자열, 날짜 등)의 값만 가져야 한다.도메인이란 데이터베이스 테이블의 특정 열에 허용되는 값의 집합을 말한다.

예를 들어, 개발자가 특정 필드의 타입을 '정수(int)'로 설정했다면, 그 필드에는 정수 값만 입력될 수 있다.

만약 문자열(String)이나 다른 데이터 타입 값이 그 필드에 입력되려고 하면, 데이터베이스 시스템은 그것을 거부하고 오류 메세지를 반환할 것이다.

 

2.기본 키 제약 조건: 기본 키는 테이블의 각 레코드를 고유하게 식별하는 역할을 한다.

그래서 기본 키 필드는 고유한 값만 가져야 하며, NULL 값을 가질 수 없다. 즉, 같은 테이블에 어떤 레코드도 같은 기본 키 값을 가질 수 없다. (두 개의 테이블이 있다고 가정 했을 때, 두 개의 테이블에 같은 이름을 가진 기본키가 있어도 된다.

기본 키 제약 조건은 같은 테이블 내에서 각 레코드를 고유하게 식별할 수 있어야 한다는 것을 의미한다. 즉, 동일한 테이블 내에서 같은 기본 키 값을 갖는 레코드가 있으면 안된다는 것.)

 

3.외래 키 제약 조건: 외래 키는 다른 테이블의 특정 레코드를 참조하는 역할을 한다. 외래 키 필드의 값은 참조하는 테이블의 기본 키 값 중 하나여야 한다. 이를 통해 관계형 데이터베이스에서 테이블 간의 관계를 정의하고 유지할 수 있다.

 

4.사용자 정의 제약 조건: 개발자 또는 데이터베이스 관리자가 특정 비즈니스 규칙이나 도메인 규칙을 데이터베이스에 추가하기 위해 설정하는 조건.

예를 들어 '나이'라는 열의 값이 0보다 크고 120보다 작아야 한다는 규칙을 사용자 정의 제약 조건으로 설정할 수 있다.

이는 나이 값이 현실적인 범위 내에 있어야 한다는 제약을 나타낸다.

 

< 사용자 정의 제약 조건 예제 코드 (MySQL) >

--테이블 생성
CREATE TABLE Users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
CONSTRAINT CHK_AGE CHECK (age > 0 AND age < 120)
);

 

 

 

 

 

 

 

 

 

  

'SQL 이론' 카테고리의 다른 글

DataBase Key  (0) 2023.05.16
DBMS(Database Management System)  (0) 2023.05.16
Mysql 설치 및 DBeaver 설치 방법 (Windows)  (0) 2023.05.14
트랜잭션(Transaction)  (0) 2023.04.13
row와 column이 뭐에요?  (0) 2022.07.28

+ Recent posts