반응형

 

 

 

1. 무결성 제약(integrity constraint) 또는 무결성 규칙(integrity rule)

 

: 데이터베이스에 저장된 데이터가 현실 세계에 존재하는 정보들을 모순 없이 반영하는 성질이다.

: 데이터베이스에 저장된 데이터가 갖추어야 할 제약 조건을 항상 만족하도록 보장하는 성질이다.

 

 

 

예시 )

 

 

 

 

 

2. 무결성 제약 조건을 충족시키기 위한 방법

 

1) 데이터를 삽입, 삭제, 수정할 때마다 사용자, 즉 응용 프로그램이 직접 주어진 무결성 제약의 만족 여부를 검증

 

2) 데이터베이스 설계자가 데이터베이스가 지켜야 할 무결성 제약들을 정의

: DBMS가 자동적으로 제약 조건을 검증하여 무결성을 보장해 줌

 

 

 

 

 

 

3. 무결성 제약의 유형

 

 

 

 

 

 

[ 기본적 무결성 제약 ]

 

 

1) 기본키 무결성 제약(primary key integrity constraint)

 

: 기본키는 null 값을 가질 수 없으며, 기본키의 값이 동일한 레코드가 하나의 테이블에 동시에 두 개 이상 존재할 수 없다.

 

 

 

일반적인 방법 )

 

-> 사용자가 기본키를 정의하여 테이블을 생성하면 기본키 무결성 제약은 DBMS에 의해 자동적으로 검증된다.

 

 

 

 

 

 

간단한 방법 )

 

- 기본키가 하나의 필드로 구성될 때만 가능하다.

- 제약에 이름이 부여되지 않아 추후에 기본키를 취소하거나 변경할 수 없다는 단점이 있다.

 

 

 

 

 

 

 

 

 

 

2) 참조 무결성 제약

 

: 한 테이블의 레코드가 다른 테이블을 참조할 때, 조되는 테이블에 해당 레코드가 반드시 존재하거나 null 값을 가져야 한다.

 

 

형식 ) 

 

 

예시 )

 

 

 

 

 

 

Q) 만약 테이블 생성 당시 외래키를 설정하지 않았고, 추가적으로 설정하고 싶다면?

A) ALTER 문으로 수정 가능

 

 

 

 

Q) 외래키 제약을 삭제하고 싶을 때에는?

A) alter table ~ drop constraint 문을 사용

 

 

 

 

 

 

 

 

[ 테이블의 무결성 제약 ]

 

- not null

- unique

- check

- default

 

 

 

 

1) NOT NULL

: 특정 필드에 대해 null 값 입력을 금지해야 하는 경우

 

 

 

참고 ) 기본키는 원래부터 null 값을 허용하지 않으므로 기본키로 정의된 필드에 대해서는 Not null 조건을 입력하지 않아도 됨

 

 

 

 

2) UNIQUE

: 해당 필드가 테이블 내에서 중복된 값을 갖지 않고 반드시 유일한 값을 갖도록 하는 제약 조건

 

 

 

 

 

 

** 두 개 이상의 필드에 동시 설정 가능하다.

: 두 필드 각각의 값이 유일해야 한다는 의미가 아니다. 아래의 경우에 이름과 성이 동시에 같은 경우에 대해 중복을 허용하지 않는다는 의미이다.

 

 

 

 

- unique 제약을 추가하거나 해제할 때 alter table 를 이용한다.

 

 

 

 

 

 

 

3) CHECK

: 각 필드의 값은 정의된 도메인에 속한 값만 허용한다.

: 필드를 정의할 때 주어진 데이터 타입 이외에도 좀 더 세부적으로 허용할 수 있는 값의 범위를 지정할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

** 제약에 이름을 부여하지 않거나 각 필드에 대한 조건식을 분리하여 명시 가능하다.

-> 

 

 

 

- chek 제약을 추가하거나 해제할 때

 

 

 

 

 

 

 

4) DEFAULT

 

: 레코드를 삽입할 때, 필드에 대한 값이 정해지지 않을 경우 사전에 정해놓은 값이 입력되도록 디폴트 값을 설정

 

 

 

 

 

- default 제약을 추가 혹은 해제하고 싶을 때

 

 

 

 

 

 

- 오라클만의 default 설정 및 해제 방법

 

 

 

 

** 지나치게 많은 제약조건이 존재할 경우 많은 데이터가 입력될 때 문제가 생길 수 있다.

 

 

 

 

 

 

< 기타 무결성 제약 >

 

 

1) Assertion (주장)

 

 

 

 

2) 응용 프로그램에서의 무결성 제약

 

: 개발자가 응용 프로그램에서 직접 무결성을 보장하는 코드 작성

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts