먼저 이해해야 할 큰 개념은 무결성 제약 조건이다.
무결성 제약 조건
데이터 무결성 : 데이터를 인가하지 않은 방법으로 변경/삭제 할 수 없도록 보호하는 성질
위 개념으로 무결성 제약 조건을 이해해 보면 제약하는 조건에 있어, 허가된 계정 외에 데이터를 변경/삭제 할 수 없도록 보호하는 성질이라고 볼 수 있다. 데이터베이스의 5가지 제약조건은 다음과 같다.
위 다섯 가지 중에 FOREIGN KEY(외래키)는 해당 컬럼에 참조하는 테이블의 값들만 사용한다는 의미다. 여기서 참조 무결성 원칙에 의해 참조 테이블의 본래 데이터에 대한 제약 조건이 필요하다. 그 4가지 옵션은 다음과 같다.
MYSQL 외래키(Foreign key) 지정 시
on delete rule(삭제 시), on update rule(변경 시) 옵션 지정
RESTRICT, CASCADE, NO ACTION, SET NULL
1. RESTRICT : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 변경/삭제가 취소됩니다.(제한)
2. CASCADE : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 함께 변경/삭제됩니다.
3. NO ACTION : MYSQL에서는 RESTRICT와 동일합니다.
4. SET NULL : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 참조하고 있는 값은 NULL로 세팅됩니다.
출처: https://h5bak.tistory.com/125 [이준빈은 호박머리]
+ SET DEFAULT : 개체를 변경/삭제할 때 다른 개체는 DEFAULT값으로 세팅됨
결국 CASCADE와 SETE NULL 개념은 똑같이 따라갈거냐 없애 버릴거냐의 차이!
'프로젝트(종료) > SQLD 자격증 따기' 카테고리의 다른 글
PK와 FK (0) | 2021.03.04 |
---|---|
DML, DDL, DCL, TCL에 대해 (0) | 2021.03.03 |
UNION ALL 과 UNION DISTINCT (0) | 2021.03.02 |
0. 데이터 베이스 이해하기 (0) | 2021.03.01 |
SQL 공부를 시작하기 전에 (0) | 2021.03.01 |
댓글