관계 데이터베이스의 제약 조건은 칼럼이 가질 수 있는 값의 범위를 정한다. 개체 무결성은 한 릴레이션의 기본키를 구성하는 어떤 속성 값도 널(NULL) 값이나 중복 값을 가질 수 없다는 조건이다. 기본키가 튜플을 유일하게 식별해야 하므로 비어 있거나 겹치는 값을 허용하지 않는 것이다.
참조 무결성은 릴레이션 R1에 저장된 튜플이 릴레이션 R2의 튜플을 참조하려면, 참조되는 튜플이 반드시 R2에 존재해야 한다는 규칙이다. 한 테이블의 외래 키가 다른 테이블의 기본키를 가리킬 때 참조 대상이 실제로 있어야 한다는 뜻이다.
키는 튜플을 구별하는 역할로 나뉜다. 릴레이션에서 튜플을 유일하게 구별하기 위해 사용하는 속성 또는 속성들의 조합을 후보 키(Candidate Key)라고 하며, 그중 하나를 기본 키로 선택한다.
무결성과 보안은 막는 대상이 다르다. 무결성은 권한이 있는 사용자가 부정확한 데이터를 입력하는 것을 방지하는 개념이고, 보안은 권한이 없는 사용자의 접근을 차단하는 개념이다. 권한 유무가 아니라 오류 방지와 접근 차단이라는 목적에서 구분한다.
NULL은 값이 없다는 것을 나타내는 부재 정보다. 공백 문자열이나 숫자 0과 같지 않다. 칼럼 속성을 볼 때 널 허용 여부, 중복 가능성, 다른 릴레이션을 참조하는지가 함께 정해진다.
예제
선지 판단은 기본키의 널·중복 금지를 개체 무결성으로 고르는지, 외래 키가 참조하는 튜플이 반드시 존재해야 한다는 규칙을 참조 무결성으로 읽는지, 튜플을 유일하게 구별하는 속성 조합을 후보 키로 고르는지, 무결성을 권한 있는 사용자의 오류 방지로, 보안을 권한 없는 사용자의 접근 차단으로 나누는지, NULL을 0이나 공백이 아닌 부재 정보로 보는지에서 갈린다.
대표 기출 3문항
한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 널(NULL)값이나 중복 값을 가질 수 없다는 것을 의미하는 것은?
개체 무결성 제약 조건
참조 무결성 제약 조건
보안 무결성 제약 조건
정보 무결성 제약 조건
정답과 해설 보기
정답 ① · 기본키가 널 값과 중복 값을 가질 수 없다는 무결성 제약 조건을 묻는 문제이다. 개체 무결성 제약 조건은 릴레이션의 기본키를 구성하는 속성 값이 널이나 중복 값을 가질 수 없다고 규정하며, 이를 통해 각 튜플이 고유하게 식별됨을 보장한다.
무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성과 보안은 모두 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이지만, 보안은 사용자 계정과 비밀번호를 관리한다.
무결성과 보안은 모두 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이지만, 무결성은 DBMS가 자동적으로 보장해 준다.
정답과 해설 보기
정답 ① · 문제는 무결성(integrity)과 보안(security)의 차이를 묻고 있다. 무결성은 권한 있는 사용자의 실수나 잘못된 입력으로부터 데이터의 정확성과 일관성을 보호하는 것을 의미하고, 보안은 권한이 없는 사용자의 불법적 접근으로부터 데이터베이스를 보호하는 것을 의미한다.
무결성은 권한 있는 사용자로부터의 오류 방지, 보안은 권한 없는 사용자로부터의 보호이므로 ①이 옳다.
데이터베이스에서 사용되는 널(NULL)에 대한 설명으로 가장 적절한 것은?
널(NULL)은 비어 있다는 뜻으로 기본 값 “A"를 가진다.
널(NULL)은 Space 값을 나타낸다.
널(NULL)은 Zero 값을 나타낸다.
널(NULL)은 공백(space)도, 영(zero)도 아닌 부재정보(missing information)를 나타낸다.
정답과 해설 보기
정답 ④ · 데이터베이스에서 널(NULL)의 의미를 정확히 파악하는 문제이다. 널은 공백이나 숫자 0 같은 어떤 값도 아니며, 데이터 값이 존재하지 않는다는 부재정보(missing information)를 나타내는 특수 표시이다.
널(NULL)은 공백이나 영(0)이 아닌, 데이터가 존재하지 않음을 나타내는 부재 정보이다.