데이터베이스 사용자 정의 무결성
From IT Wiki
User-Defined Integrity
사용자 정의 무결성은 비즈니스 또는 애플리케이션의 특정 요구사항에 따라 정의되는 규칙으로, 데이터의 무결성을 유지하기 위해 사용자나 개발자가 설정하는 제약조건이다. 이 무결성 유형은 데이터베이스의 기본적인 제약조건과는 다르게, 각 조직의 비즈니스 로직이나 정책에 맞추어 맞춤형으로 설정된다.
- 의미적 무결성(Semantic Integrity)라고도 한다. 다만
특징[edit | edit source]
비즈니스 규칙 기반:
- 특정 비즈니스 상황이나 요구사항에 따라 데이터 입력 및 관계를 정의한다. 예를 들어, 특정 고객이 주문할 수 있는 최대 수량을 제한하거나, 특정 조건이 충족되어야만 데이터가 입력될 수 있도록 설정할 수 있다.
유연성:
- 다양한 요구사항에 맞추어 자유롭게 규칙을 정의할 수 있다. 이는 데이터베이스 설계 시 유연성을 제공한다.
복잡한 규칙:
- 필요에 따라 복잡한 비즈니스 로직을 표현할 수 있으며, 특정 조건에 따라 데이터의 상태나 값에 제약을 걸 수 있다.
예시[edit | edit source]
- 주문 시스템: 고객이 주문할 수 있는 최대 금액을 설정할 수 있습니다. 예를 들어, 한 주문의 총액이 $500을 초과할 수 없도록 설정할 수 있습니다.
- 학생 관리 시스템: 특정 학생이 수강할 수 있는 과목 수를 제한할 수 있습니다. 예를 들어, 한 학기 동안 최대 5과목만 수강할 수 있도록 설정할 수 있습니다.
구현[edit | edit source]
현대 프로그램에서 대부분 사용자 정의 무결성은 DBMS의 역할이 아닌 애플리케이션의 역할로 두는 경우가 많다. 즉 데이터베이스와 연결된 프로그램의 소스코드에서 검증 로직이 구현이 되는 것이다. 단 엄격한 경우, 데이터베이스 내에서도 SQL의 Check 제약 조건을 통해 어느정도 구현이 가능하다.
- 예시:
CHECK (salary > 0 AND salary < 1000000)