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 :
'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 |