개체 무결성은 한 릴레이션의 기본 키를 구성하는 속성 값이 NULL 값이나 중복 값을 가질 수 없다는 제약 조건이다. 기본 키는 각 튜플을 고유하게 식별하는 역할을 하므로 NULL 값이나 중복 값이 허용되면 행의 식별이 불가능해진다. 그래서 기본 키의 NULL 금지와 중복 금지를 개체 무결성과 연결해 구분한다.
참조 무결성은 한 릴레이션의 튜플이 다른 릴레이션의 튜플을 가리키는 경우 그 대상이 반드시 실재해야 한다는 규칙이다. 외래 키가 참조하는 기본 키 값이 실제로 존재해야 한다는 점이 핵심이다. 개체 무결성은 기본 키의 고유성과 관련되고, 참조 무결성은 외래 키의 참조 유효성과 관련된다.
후보 키는 각 행을 다른 행과 헷갈리지 않게 가려내는 속성 또는 속성들의 조합이다. 기본 키는 후보 키 가운데 선택된 키로 설명되고, 대체 키는 후보 키 중에서 기본 키로 선택되지 않은 키로 구분된다. 외래 키는 다른 릴레이션과의 참조 관계를 맺는 키로 구분한다.
무결성과 보안은 보호 대상이 다르다. 무결성은 권한 있는 사용자로부터 데이터의 정확성과 일관성을 지키는 개념이고, 보안은 권한 없는 사용자로부터 데이터베이스 접근을 보호하는 개념이다. 따라서 무결성은 내부적 오류 방지, 보안은 외부적 접근 차단으로 구분한다.
키 제약 조건은 기본 키 자체의 존재를 다루고, 개체 무결성은 기본 키 속성 값의 NULL 금지와 중복 금지를 다룬다. 참조 무결성은 외래 키가 참조하는 값의 존재를 보장하는 규칙으로 구분한다. 이처럼 무결성의 종류와 키의 종류를 적용 대상에 따라 나누어 정리한다.
예제
개체 무결성과 참조 무결성을 뒤바꾸어 설명하면 틀린다. 기본 키의 NULL 금지와 중복 금지는 개체 무결성이고, 외래 키가 참조하는 튜플의 존재를 보장하는 규칙은 참조 무결성이다. 후보 키를 기본 키로 선택되지 않은 키라고 바꾸는 선지도 함정이다. 기본 키로 선택되지 않은 후보 키가 대체 키이고, 대체 키도 행을 고유하게 가려낸다. 무결성과 보안의 보호 대상을 권한 있는 사용자와 권한 없는 사용자로 구분하지 않으면 설명이 어긋난다.
대표 기출 3문항
한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 널(NULL)값이나 중복 값을 가질 수 없다는 것을 의미하는 것은?
개체 무결성 제약 조건
참조 무결성 제약 조건
보안 무결성 제약 조건
정보 무결성 제약 조건
정답과 해설 보기
정답 ① · 기본키가 널 값과 중복 값을 가질 수 없다는 무결성 제약 조건을 묻는 문제이다. 개체 무결성 제약 조건은 릴레이션의 기본키를 구성하는 속성 값이 널이나 중복 값을 가질 수 없다고 규정하며, 이를 통해 각 튜플이 고유하게 식별됨을 보장한다.
무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성과 보안은 모두 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이지만, 보안은 사용자 계정과 비밀번호를 관리한다.
무결성과 보안은 모두 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이지만, 무결성은 DBMS가 자동적으로 보장해 준다.
정답과 해설 보기
정답 ① · 문제는 무결성(integrity)과 보안(security)의 차이를 묻고 있다. 무결성은 권한 있는 사용자의 실수나 잘못된 입력으로부터 데이터의 정확성과 일관성을 보호하는 것을 의미하고, 보안은 권한이 없는 사용자의 불법적 접근으로부터 데이터베이스를 보호하는 것을 의미한다.
무결성은 권한 있는 사용자로부터의 오류 방지, 보안은 권한 없는 사용자로부터의 보호이므로 ①이 옳다.
관계 데이터베이스 제약조건 중 한 릴레이션의 기본 키를 구성하는 어떠한 속성 값도 널(NULL) 값이나 중복 값을 가질 수 없다는 조건은 무엇인가?
키 제약 조건
참조 무결성 제약 조건
참여 제약 조건
개체 무결성 제약 조건
정답과 해설 보기
정답 ④ · 기본 키를 구성하는 속성 값이 널이나 중복을 가질 수 없다는 무결성 제약의 명칭을 묻는 문제이다. 개체 무결성 제약 조건은 기본 키 속성 값으로 널 값을 가질 수 없고 튜플 간 중복도 허용하지 않아 릴레이션의 각 행을 고유하게 식별하도록 보장한다.
기본 키의 NULL 금지 및 중복 값 방지는 개체 무결성(Entity Integrity) 제약 조건의 핵심 정의이다.