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) 응용 프로그램에서의 무결성 제약
: 개발자가 응용 프로그램에서 직접 무결성을 보장하는 코드 작성
'Computer Science > Database' 카테고리의 다른 글
무결성과 보안 3) 사용자 계정 생성과 권한 부여, 오라클 기본 롤 (0) | 2020.11.26 |
---|---|
무결성과 보안 2) 데이터베이스 보안 : 권한 부여 (0) | 2020.11.26 |
SQL 6) 뷰(View)란? 뷰 생성 방법 (0) | 2020.11.25 |
SQL 5) 중첩 질의 (서브쿼리 subquery) (0) | 2020.10.21 |
SQL 4) 집합 연산, 외부 조인, 집계 함수 (0) | 2020.10.20 |