관리 메뉴

Rootable의 개발일기

데이터 무결성 본문

데이터베이스

데이터 무결성

dev-rootable 2023. 6. 15. 16:55

[해당 글은 공부 목적으로 아래 사이트 및 블로그 등을 참고하여 작성되었습니다.]

 

📌 데이터 무결성이란

 

데이터의 정확성, 일관성, 유효성 등이 유지되고 있는 상태를 의미한다. 정확성은 중복이나 누락이 없는 상태를 뜻하고, 일관성은 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태를 뜻한다.

 

만약 데이터베이스에서 데이터 무결성 설계를 하지 않는다면 테이블에 중복된 데이터 존재, 부모와 자식 데이터 간의 논리적 관계 깨짐, 잦은 에러와 재개발 비용 발생 등과 같은 문제가 발생할 것이다.

 

따라서, DBMS에서 데이터의 무결성이 유지되는 것은 중요한 사항이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.

 

📌 데이터 무결성 제약조건

 

🔎 개체 무결성(Entity integrity)

 

개체의 유일성을 보장하기 위한 무결성으로 반드시 보장되어야 하므로 기본 키(Primary key) 제약 조건Unique 제약 조건 등을 이용하여 보장하는 것이 좋다.

 

📢 기본 키 제약

 

데이터베이스에서 가장 중요한 무결성 조건으로 식별자 값은 NOT NULL이고, 유일해야 하며, 변하면 안된다. 기본 키가 없는 테이블 운영은 데이터 조작 시 이상 현상이 발생하거나 조인에 의해 집계된 수치가 잘못 계산될 가능성이 높다.

 

📢 Unique 제약

 

개체 무결성은 식별자 외에 Entity 내에 후보키 대상인 Unique 컬럼도 대상이다. 즉, 식별자가 아니더라도 유일성을 보장해야 하는 컬럼이 있다면 유일성을 보장해야 한다. 단, 기본 키 제약과 차이점은 경우에 따라서 NULL이 허용된다.

 

🔎 참조 무결성(Referential integrity)

 

두 엔티티 사이의 관계 규칙을 정의하기 위한 제약 조건으로 데이터가 삽입, 수정, 삭제될 때 두 엔티티의 튜플들 사이의 정합성과 일관성을 유지하는 데 사용된다. 참조 무결성 제약 조건은 참조하는(자식) 엔티티의 튜플이 참조되는(부모) 엔티티의 튜플을 참조하려면 참조되는 튜플이 반드시 그 엔티티(부모) 내에 존재하여야 한다는 것이다. (참조하는 값이 반드시 참조되는 곳에 있어야 한다는 것)

 

📢 입력 참조 무결성

 

구분 설명
DEPENDENT 참조되는(부모) 테이블에 PK 값이 존재할 때만 입력을 허용
AUTOMATIC 참조되는(부모) 테이블에 PK 값이 없는 경우는 PK를 생성 후 입력
DEFAULT 참조되는(부모) 테이블에 PK 값이 없는 경우 지정된 기본값으로 입력
CUSTOMIZED 특정한 조건이 만족할 때만 허용
NULL 참조되는(부모) 테이블에 PK 값이 없는 경우 외부키를 NULL 값으로 처리
NO EFFECT(NO ACTION) 조건 없이 입력을 허용

 

📢 수정/삭제 참조 무결성

 

구분 설명
RESTRICT 참조하는(자식) 테이블에 PK 값이 없는 경우 삭제/수정
(대상 개체를 참조하는 개체가 있을 경우 변경이 거부됨)
CASCADE 참조되는(부모) 테이블과 참조하는(자식) 테이블 모두 연쇄적 삭제/수정
DEFAULT 참조되는(부모) 테이블의 수정을 항상 허용하고 참조하는(자식) 테이블의 외부키를 지정된 기본값으로 변경
CUSTOMIZED 특정한 조건이 만족할 때만 수정/삭제 허용
NULL 참조되는(부모) 테이블의 수정을 항상 허용하고 참조하는(자식) 테이블의 외부키를 NULL 값으로 수정
NO EFFECT(NO ACTION) 조건 없이 삭제/수정 허용

 

🔎 도메인 무결성(Domain integrity)

 

테이블에 존재하는 필드의 무결성을 보장하기 위한 것으로 필드의 타입, 유효 값, Null 값 허용 등에 대한 사항을 정의하고 올바른 데이터가 입력되었는지 확인하는 조건

 

예1) Date 타입 값으로 20500230 이 입력된 경우 -> 2월 30일은 유효한 날짜가 아님

예2) NUMBER 타입 필드에 문자가 입력될 수 없다.

예3) 상품 테이블에 상품명이 필수 입력 사항이면 NULL 값은 존재할 수 없다.

예4) 상태 값으로 1, 2, 3을 허용했을 때, 이 외의 숫자가 입력될 수 없다.

 

🔎 Null 무결성(Null integrity)

 

테이블의 특정 속성 값이 Null이 될 수 없는 조건

 

🔎 고유 무결성(Unique integrity)

 

테이블의 특정 속성에 대해 각 레코드들이 갖는 값들이 서로 달라야 하는 조건

 

🔎 키 무결성(Key integrity)

 

하나의 테이블에는 적어도 하나의 키가 존재해야 하는 조건

 

🔎 관계 무결성(Relationship integrity)

 

테이블의 어느 한 레코드의 삽입 가능 여부 또는 한 테이블과 다른 테이블의 레코드들 사이의 관계에 대한 적절성 여부를 지정한 조건

 

References:

https://cocoon1787.tistory.com/778

 

[Database] 데이터 무결성(Data Integrity)이란?

⭐️ 데이터 무결성 데이터 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미합니다. 여기서 정확성이란 중복이나 누락이 없는 상태를 뜻하고, 일관성은 원인과 결과의 의미가

cocoon1787.tistory.com

https://dataonair.or.kr/db-tech-reference/d-guide/da-guide/?pageid=1&mod=document&keyword=%EB%AC%B4%EA%B2%B0%EC%84%B1&uid=296 

 

무결성 설계

데이터 무결성 데이터의 정확성, 일관성, 유효성, 신뢰성을 위해 무효 갱신으로부터 데이터를 보호하기 위해 무결 성 설계가 필요하다. 데이터 모델링 과정에서 정의된 일련의 규칙에 따라 데이

dataonair.or.kr

 

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

인덱스(Index)  (0) 2023.09.07
트랜잭션  (0) 2023.08.07
정규화(Normalization)  (0) 2023.06.14
E-R 모델  (0) 2023.06.13
데이터 모델링  (0) 2023.06.12