본문 바로가기

ComputerScience/Database

DB - 21. Integrity Constraints

728x90

1. Integrity Constraints

- dbms의 목적은 data의 관리이다. 따라서 db안에 들어갈 데이터의 제약을 관리한다.

- 예를들면 고객의 전화번호가 null이 될수 없다. 나이는 10이상이다 등의 제약을 말한다.

2. Not null

3. unique

- A1, A2, ..., Am들을 합성해서 고유식별자를 정의한다.

- Primary key와는 별개로 따로 존재할 수 있다. PK와의 차이로 unique는 null을 허용한다.

4. Check

- semester는 'Fall', 'Winter', 'Spring', 'Summer' 네가지만 가능하다는 제약을 걸어준다.

5. Referential Integrity

- 참조무결성

- RDB는 foreign key가 매우 중요하기 때문에 FK에 대해 제약이 존재한다.

- 외래키 설정예시는 위와 같다.

- 참조무결성이란 FK에 해당하는 모든 값들은 반드시 해당 테이블의 PK로 존재해야 한다.

- 만약 sports를 입력하려고 하면 DB시스템에서 이를 막는다. 왜냐하면 dept_name은 외래키로 설정되어있는데 department 테이블에 sports가 존재하지 않기 때문이다.

- 대신 dept_name에 null이 들어가는 것은 허용한다.

- 만약에 department에 Biology를 삭제하면 어떻게 될까?

- 그럼 course에 FK로 Biology인 튜플들은 참조할 대상이 사라진다.

- 이는 외래키 제약에 위반되기 때문에 참조당하는 테이블은 update에 제한이 생긴다.

- 따라서 외래키 설정 구문에서 옵션을 줄수 있다.

- 위의 구문은 department에 delete, update옵션을 주고 있다.

- on update cascade : department.dept_name대상으로 update가 발생하면 cascade로 처리. 아래 수행 예시가 있다.

- on delete/update set null : Biology를 delete하게 되면 course에서 Biology 자리를 null로 전부 바꾼다.

- on delete/update set default : Biology를 delete하게 되면 course테이블을 create할때 default로 설정해둔 값을 biology자리에 대입한다.

- on delete/update restrict : 

728x90
반응형

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

DB - 23. Functions and Procedures , Trigger  (0) 2021.12.06
DB - 22. Intermediate SQL 2  (0) 2021.12.05
DB - 20. Intermediate SQL - View  (0) 2021.11.30
DB - 19. Intermediate SQL - Join  (0) 2021.11.30
DB - 18. Normalization 2  (0) 2021.11.30