본문으로 바로가기

Database 제약조건

category Database/Oracle 2014. 8. 29. 14:25

1. 무결성 (integrity)과 데이터 무결성(data integrity)

  - 무결성
 : 데이터 및 네트워크 보안에 있어서 정보가 인가된 사람에 의해서만 접근이나 변경이 가능한 성질
  - 데이터 무결성 : 데이터를 인가하지 않은 방법으로 변경할 수 없도록 보호하는 성질



2. 물리적 무결성 제약조건과 의미적 무결성 제약조건

  - 물리적 무결성 제약조건 (physical integrity constraint)
     * 데이터 모델 내부에서 정의되고, 주로 데이터의 구조나 이에 적용되는 연산의 물리적 특성을 제약하는 조건

 - 의미적 무결성 제약 조건 (semantic integrity constraint)
   * 데이터베이스 설계자가 외부 스키마를 정의할 때 해당 데이터베이스가 실세계를 정확히 반영하도록 하기 위해서 데이터베이스 안에 의미에 관한 정보를 규정하도록 하는 제약조건



3. 물리적 무결성 제약 조건의 범주

  - 개체 무결성 제약조건(enity integrity constraint)
  - 참조 무결성 제약조건(referntial integrity constraint)
  - 도메인 무결성 제약조건(domain integrity constraint)
  - 사용자 정의 무결성 제약조건(user define integrity constraint)


1) 개체 무결성 제약 조건 (enity integrity constraint)

  - 하나의 릴레이션에서 기본키로 지정된 모든 튜플의 속성은 항상 널(null) 값을 가질 수 없다는 조건
  - 개체 무결성 제약 조건으로 인해 릴레이션의 모든 튜플들에 대한 유일성을 보장 할 수 있다.

  - 개체 무결성 제약조건이 위배된 예




2) 참조 무결성 제약조건(referntial integrity constraint)

  - 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건
  - 두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.

  - 참조 무결성 제약조건이 위배된 예



  ※ 참조 무결성 제약 조건을 만족시키기 위해서 DBMS가 제공하는 옵션
     * 제한(restricted)
       - 위배를 야기한 연산을 단순히 거절
       - 예: DEPARTMENT 릴레이션에서 (3, 개발, 9)를 삭제하면 참조 무결성 제약 조건을 위배하게 되므로 삭제 연산을 거절
  
     * 연쇄(cascade)
       - 참조되는 릴레이션에서 듀츨을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제
       - 예: DEPARTMENT 릴레이션에서 (3, 개발, 9)를 삭제하면 EMPLOYEE 릴레이션에서 부서번호 3을 참조하는 두 번째 튜플과 다섯 번째 튜플도 함께 삭제



     * 널값(nullify)
       - 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서  튜플을 참조하는 튜플들의 외래 키에 null 값을 삽입
       - 예: DEPARTMENT 릴레이션에서 (3, 개발, 9)를 삭제하면 EMPLOYEE 릴레이션에서 부서번호 3을 참조하는 두 번째 튜플과 다섯 번째 튜플의 부서번호에 null 값을 삽입

     * 기본값(default)
       - null 값을 넣는 대신에 default 값을 넣는다는 것을 제외하고는 바로 위의 널값옵션과 동일함





3) 도메인 무결성 제약조건(domain integrity constraint)

  - 도메인 물결성 제약조건은 다른 릴레이션과 관계없이 속성 자체에만 적용되는 제약조건이다.
  - 모든 속성은 특정한 도메인으로 정의되므로 해당 속성은 도메인에 존재하는 값만 가질 수 있다.
  - 튜플을 삽입하거나 갱신하는 경우 튜플 안의 모든 속성은 각각의 도메인 집합 안에 존재하는 값을 취해야 하는 것이 도메인 무결성 제약 조건이다.


4) 사용자 정의 무결성 제약조건(user define integrity constraint)

  - 사용자가 다른 무결성 범주에 포함되지 않는 특정 업무 규칙을 정의하여 사용하는 것
  - 모든 범주의 무결성 제약조건은 사죵자 정의 무결성 제약 조건을 지원한다.

'Database > Oracle' 카테고리의 다른 글

데이터베이스 식별자  (0) 2014.09.17
데이터베이스 관계  (0) 2014.09.17
데이터베이스 속성  (0) 2014.09.17
데이터베이스 엔터티  (0) 2014.09.17
데이터베이스의 개념, 파일시스템과 비교  (0) 2014.08.29