데이터베이스 무결성: 개체, 참조, 속성, 사용자, 키

DB
읽는데 6분 소요
처음 쓰여진 날: 2025-09-22
마지막 수정일: 2025-09-22

요약

데이터베이스의 정확성과 일관성을 보장하는 5가지 무결성(개체, 참조, 속성, 사용자, 키)의 개념과 예시를 알아보고, 정보처리기사 실기 대비 문제로 학습을 마무리합니다.

데이터베이스 무결성 종류 요약

데이터베이스 무결성은 데이터의 정확성, 일관성, 유효성을 유지하는 것을 의미합니다. 데이터베이스의 신뢰도를 높이기 위해 다양한 제약조건을 사용합니다.

구분핵심 키워드설명
개체 무결성PRIMARY KEY기본키는 NULL 값을 가질 수 없으며, 릴레이션 내에서 유일해야 합니다.
참조 무결성FOREIGN KEY외래키 값은 참조 릴레이션의 기본키 값이거나 NULL이어야 합니다.
속성(도메인) 무결성DOMAIN, CHECK, DEFAULT속성 값은 정의된 도메인(데이터 타입, 범위 등)에 속해야 합니다.
사용자 무결성TRIGGER사용자가 비즈니스 규칙에 맞게 직접 정의하는 무결성 조건입니다.
키 무결성UNIQUE하나의 릴레이션에 동일한 키 값을 가진 튜플이 존재할 수 없습니다.

1. 개체 무결성 (Entity Integrity)

개체 무결성은 릴레이션의 모든 튜플(행)이 서로 구별될 수 있도록 보장하는 제약조건입니다. 이를 위해 기본키(Primary Key)를 사용하며, 기본키는 다음 두 가지 조건을 반드시 만족해야 합니다.

  1. NULL 값을 가질 수 없습니다. (Not Null)
  2. 릴레이션 내에서 유일한 값을 가져야 합니다. (Unique)
  • 예시: 학생 테이블에서 학번을 기본키로 설정하면, 모든 학생은 고유한 학번을 가져야 하며 학번이 없는 학생 데이터는 존재할 수 없습니다.
sql
코드 하이라이팅 중...

2. 참조 무결성 (Referential Integrity)

참조 무결성은 두 릴레이션 간의 관계가 항상 유효하도록 보장하는 제약조건입니다. 외래키(Foreign Key)를 사용하여 이를 강제하며, 외래키는 참조하는 릴레이션의 기본키 값 중 하나이거나 NULL 값을 가져야 합니다.

  • 예시: 수강 테이블의 학번학생 테이블의 학번을 참조하는 외래키입니다. 따라서 수강 테이블에 입력되는 학번은 반드시 학생 테이블에 존재하는 학번이어야 합니다. 존재하지 않는 학생의 수강 정보를 입력할 수 없습니다.
sql
코드 하이라이팅 중...

3. 속성(도메인) 무결성 (Attribute (Domain) Integrity)

속성(도메인) 무결성은 릴레이션의 각 속성(열) 값이 유효한 값의 범위(도메인)에 속하도록 보장하는 제약조건입니다. 데이터 타입, NULL 허용 여부, 기본값, CHECK 제약조건 등을 통해 설정할 수 있습니다.

  • 예시: 학생 테이블에서 성적 속성의 값은 0에서 4.5 사이의 숫자만 허용하고, 성별은 '남' 또는 '여'만 입력되도록 강제할 수 있습니다.
sql
코드 하이라이팅 중...

4. 사용자 무결성 (User-Defined Integrity)

사용자 무결성은 특정 비즈니스 규칙이나 조직의 정책을 데이터베이스에 적용하기 위해 사용자가 직접 정의하는 제약조건입니다. 주로 트리거(Trigger) 를 사용하여 구현됩니다.

  • 예시: 상품 테이블에서 상품의 재고가 10개 미만으로 떨어지면, 자동으로 재주문 테이블에 해당 상품 정보를 추가하는 규칙을 만들 수 있습니다.
sql
코드 하이라이팅 중...

5. 키 무결성 (Key Integrity)

키 무결성은 릴레이션의 모든 튜플이 고유한 키 값을 갖도록 보장하는 제약조건입니다. 기본키(Primary Key) 제약조건은 개체 무결성과 키 무결성을 모두 포함하지만, UNIQUE 제약조건을 사용하여 기본키가 아닌 속성에도 유일성을 강제할 수 있습니다.

  • 예시: 회원 테이블에서 이메일은 기본키는 아니지만, 모든 회원이 서로 다른 이메일 주소를 갖도록 UNIQUE 제약조건을 설정할 수 있습니다.
sql
코드 하이라이팅 중...

정보처리기사 실기 대비 문제

기출
문제
[학생]테이블
학번이름전공
1001김철수컴퓨터공학
1002이영희소프트웨어공학
NULL박민준정보통신
위 '학생' 테이블은 어떤 무결성 제약조건을 위반했는가?(단 학번이 기본키이다.)
답변
정답정답 보기
기출
문제
구분( 1 ) 무결성 제약조건( 2 ) 무결성 제약조건( 3 ) 무결성 제약조건
제약 대상속성튜플속성과 튜플
관련 키-기본키외래키
릴레이션 내 제약조건의 개수속성의 개수와 동일1개0 개~여러 개
위 표의 1, 2, 3 무결성 제약조건은 각각 무엇인가?
답변
1:
2:
3:
정답정답 보기
문제
기본키는 NULL 값을 가질 수 없으며, 릴레이션 내에서 유일한 값을 가져야 한다는 제약조건은 무엇인가?
답변
정답정답 보기
문제
외래키 값은 참조하는 릴레이션의 기본키 값이거나 NULL이어야 한다는 제약조건은 무엇인가?
답변
정답정답 보기
문제
속성 값이 미리 정의된 데이터 타입이나 범위에 속해야 한다는 제약조건은 무엇인가?
답변
정답정답 보기