관계 데이터 모델에서 정의하고 있는 기본 제약 사항은 키와 관련한 무결성 제약조건이다. 무결성은 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태를 말한다. 무결성 제약 조건의 주요 목적은 DB에 저장된 데이터의 무결성을 보장하고, DB의 상태를 일관되게 유지하는 것이다. DB가 삽입, 삭제, 수정 연산으로 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야 한다.
보안이 권한이 없는 사용자로부터 데이터를 보호하는 것이라면, 무결성은 권한이 있는 사용자의 잘못된 요구에 의해 데이터가 부정확해지지 않도록 보호하는 것이다.
관계 데이터 모델이 기본으로 포함하고 있는 무결성 제약조건에는 개체 무결성 제약조건과 참조 무결성 제약조건이 있다. DB의 상태를 일관성 있게 유지하기 위해서는 두 가지를 모두 만족시켜야 한다.
개체 무결성 제약조건
개체 무결성 제약조건을 만족시키려면 새로운 튜플이 삽입되는 연산과 기존 튜플의 기본키 속성 값이 변경되는 연산이 발생할 때 기본키에 널 값이 포함되는 상황에서는 연산의 수행을 거부하면 된다. 이것은 일반 사용자가 직접 수행하기보다는 DB 관리 시스템이 자동으로 수행하므로 새로운 릴레이션을 생성할 때마다 기본키를 어떤 속성들로 구성할 것인지 DB 관리 시스템에 알려주면 된다.
참조 무결성 제약조건
참조 무결성 제약조건을 만족시키려면 외래키가 참조 가능한 값만 가져야 하지만, 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것으로 판단해서는 안 된다.
참조되는 릴레이션에 새로운 튜플을 삽입하는 할 때 기본키로 지정된 속성의 값을 삽입해야 개체 무결성 제약조건을 만족한다. 또한 참조하는 릴레이션에 새로운 튜플을 삽입할 때 기본키의 속성 값으로 존재하지 않는 값을 삽입하면 참조 무결성 제약조건을 만족하지 못하게 된다. 따라서 참조하는 릴레이션에 새로운 튜플을 삽입하는 연산의 수행을 거부하면 된다.
참조되는 릴레이션에 존재하는 튜플을 삭제하는 연산은 참조 무결성 제약조건을 위반하지 않는 경우에만 수행해야 한다. 연관된 튜플이 참조하는 릴레이션에 남아 있으면, 참조되는 릴레이션에서 해당 튜플의 삭제하는 연산은 수행하지 않거나 참조하는 릴레이션의 관련 튜플을 함께 삭제하여 참조 무결성 제약조건을 만족시켜야 한다. 그리고 참조하는 릴레이션의 속성 값을 널이나 기본 값으로 지정하는 방법도 사용할 수 있다. 반면, 참조하는 릴레이션에 존재하는 튜플을 삭제하는 것은 어떠한 제약조건도 위반하지 않는다.
'데이터베이스 > 관계 데이터 모델' 카테고리의 다른 글
관계 데이터 모델의 개념 (0) | 2024.05.28 |
---|