조직의 업무 처리 방식, 규정, 정책을 정보 시스템에서 구현 가능하도록 정형화한 비즈니스 로직입니다.
예: 고객은 한 번에 하나의 계좌만 개설할 수 있다.
데이터 무결성을 보장하기 위해 데이터베이스 차원에서 강제되는 정형화된 규칙입니다.
예: 고객 테이블의 주민등록번호는 NULL이 될 수 없다.
구분 | 업무규칙 (Business Rule) | 제약조건 (Constraint) |
---|---|---|
주체 | 조직의 비즈니스 로직 | 데이터베이스 시스템 |
구현 위치 | 프로그램 로직, 트리거, 절차 | 테이블 정의 (DDL) |
적용 범위 | 광범위 (정책, 절차, 업무 플로우 포함) | 데이터 무결성에 초점 |
예시 | "하루에 인출 한도는 300만원" | "계좌 잔액은 음수가 될 수 없다(CHECK)" |
변경 가능성 | 비교적 잦음 | 구조적 변경이 수반되므로 보수적 |
정리: 업무규칙은 업무의 규범적 조건, 제약조건은 그 중 시스템적으로 강제 가능한 최소 조건
유형 | 설명 | 예시 |
---|---|---|
구조 규칙 (Structural) | 정보 객체 간 관계 또는 속성 제약 | 고객은 하나 이상의 주문을 가진다 |
행위 규칙 (Behavioral) | 특정 트리거 조건 발생 시의 처리 로직 | VIP 고객은 할인율 10% 적용 |
유도 규칙 (Derivation) | 파생 데이터 정의 | 총 주문액 = 수량 * 단가 |
조건 규칙 (Condition) | 조건에 따라 처리 흐름 결정 | 주문 수량이 100개 초과 시 승인 필요 |
제약조건 | 설명 | 예시 |
---|---|---|
PRIMARY KEY | 기본 키 제약 | 고객ID는 유일하고 NULL 불가 |
FOREIGN KEY | 참조 무결성 제약 | 주문.고객ID → 고객.고객ID |
UNIQUE | 고유 제약 | 이메일 주소는 중복 불가 |
NOT NULL | NULL 불가 제약 | 주민등록번호는 NULL 불가 |
CHECK | 논리 조건 제약 | 급여 > 0 |
항목 | 업무규칙 | 제약조건 |
---|---|---|
"사용자는 하루에 한 번만 비밀번호 변경 가능" | O (비즈니스 규칙으로 로직 구현) | X (DB 제약으로 표현 어려움) |
"이메일은 중복되면 안 됨" | O | O (UNIQUE 제약으로 가능) |
업무규칙과 제약조건은 시스템의 신뢰성, 정확성, 일관성을 보장하기 위한 핵심 설계 요소입니다. 기술사는 다음을 고려해야 합니다:
업무규칙은 “이 회사에서는 이렇게 해요!”라는 약속이고,
제약조건은 “이건 꼭 지켜야 해요!”라는 컴퓨터의 룰이에요.
컴퓨터가 직접 지킬 수 있는 약속은 제약조건으로 만들어요!