무결성 제약 조건
① 데이터 무결성
: DB에 저장된 데이터의 일관성과 정확성을 지킴
② 도메인 무결성 제약 조건 (대상: 속성)
: 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 가져야 함 (ex: type, null, check ...)
ㄴ 릴레이션 내 이 제약 조건은 속성의 개수와 동일 → 그래서 투플 삽입, 수정 시 제약 사항 우선 확인해야 함
③ 개체 무결성 제약 조건 (= 기본키 제약)
: 기본키는 NULL값을 가져서는 안 됨 + 릴레이션 내 오직 하나의 값만 준비해야 함
ㄴ 삽입 시: 기본키 값이 같으면 삽입 거부당함
ㄴ 수정 시: 기본키 값이 같게 수정할 수 없고, NULL로 수정할 수 없음
ㄴ 삭제 시: 특별한 확인 없이 즉시 수행시킴
④ 참조 무결성 제약 조건 (=외래키 제약)
: 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 함 + 자식 릴레이션의 값이 변경될 때 부순 릴레이션의 제약을 받음 → 값이 반영돼서 같이 변경되어야 함
- 삽입: 부모 삽입은 정상적 + 자식에는 참조받는 테이블에 외래키 값이 없으므로 금지됨
- 삭제: 부모는 자식 삭제될 것도 고려하여 금지되거나 추가 작업을 필요로 하지만, 자식은 바로 가능함
- 수정: 삭제한 후 수정을 연속으로 수행할 수 없음 + 부모 수정 시 삭제 작업 때 문제 없으면 삽입에 따라 처리하도록 함
- 삭제 시 과정
1. RESTRICTED: 자식 릴레이션에서 참고하고 있으면 부모 삭제를 거부당함
2. CASCADE: 자식 릴레이션의 관련 투플을 같이 삭제
3. DEFAULT: 자식 릴레이션의 관련 투플을 미리 설정해 둔 값으로 변경
4. NULL: 자식 릴레이션의 관련 투플을 NULL값으로 설정
⑤ UNIQUE 제약 조건 (= 유일성, 고유성 제약 조건)
: 특정 속성(또는 속성 조합)의 값이 테이블 내에서 중복되지 않도록 강제하는 제약 조건
- 기본키(PK)와의 차이점: 기본키는 NULL 값을 허용하지 않지만, UNIQUE 제약 조건이 적용된 속성은 NULL 값을 가질 수 있음 (단, 여러 개의 NULL 값을 가질 수도 있음)
- 한 테이블 내에서 여러 개의 UNIQUE 속성을 설정할 수 있음
⑥ CHECK 제약 조건
: 특정 속성에 대해 설정된 조건을 만족하는 값만 허용하는 제약 조건
- 예시: CHECK(나이 >= 18) → 나이 속성의 값은 18 이상이어야 함
- CHECK 제약 조건은 여러 속성에 걸쳐 적용될 수도 있음 (ex: CHECK(급여 >= 0 AND 급여 <= 10000000))
- 복잡한 논리 조건을 적용할 수 있으며, 논리 연산자(AND, OR, NOT)를 활용하여 다양한 제약 사항을 설정할 수 있음
⑦ DEFAULT 제약 조건
: 속성에 대한 기본값을 지정하는 제약 조건으로, 사용자가 값을 입력하지 않을 경우 자동으로 지정된 기본값이 저장됨
- 예시: DEFAULT CURRENT_TIMESTAMP → 값이 입력되지 않으면 자동으로 현재 시간이 입력됨
- DEFAULT를 사용하면 NULL 값을 방지할 수 있으며, 테이블 생성 시 초기값을 설정하는 데 유용함
⑧ NOT NULL 제약 조건
: 특정 속성의 값이 반드시 존재해야 하며, NULL 값을 허용하지 않도록 강제하는 제약 조건
- 예시: NOT NULL을 적용하면 해당 속성에 반드시 값을 입력해야 하므로 NULL 상태가 될 수 없음
- 기본키(PK)에는 자동으로 NOT NULL 제약 조건이 적용됨
- 데이터 무결성을 보장하는 데 필수적인 제약 조건
무결성 제약 조건의 중요성
- 데이터 정확성 유지: 잘못된 데이터를 방지하고, 데이터의 신뢰성을 높일 수 있음.
- 일관성 보장: 테이블 간의 관계를 유지하고, 무결성을 보장하여 데이터의 신뢰성을 높임.
- 자동화된 데이터 관리: DEFAULT, CHECK 등을 사용하면 별도의 프로그래밍 없이 데이터 무결성을 쉽게 관리할 수 있음.
- 데이터베이스 성능 최적화: 제약 조건을 활용하면 불필요한 중복 데이터 입력을 방지하고, 검색 성능을 개선할 수 있음.
작성자 | 신수민 |
소 감 | 괜한 충돌을 만들고 싶지 않다면 무결성 제약 조건을 잘 기억하며 DB 설계 시 참고해야겠다. |
일 시 | 2025. 3. 21. (금) 18:00 ~ 21:00 |
장 소 | 미래관 429호 자율주행스튜디오 |
참가자 명단 | 신수민, 임혜진, 배세은, 김윤희 (총 4명) |
사 진 | ![]() |
'수민' 카테고리의 다른 글
[호붕싸 모각코 6차] (0) | 2025.03.31 |
---|---|
[호붕싸 모각코 5차] (0) | 2025.03.24 |
[호붕싸 모각코 3차] 관계 데이터 모델 (0) | 2025.03.17 |
[호붕싸 모각코 2차] (0) | 2025.03.14 |
[호붕싸 모각코 1차] 데이터베이스 소개와 시스템 (0) | 2025.03.10 |