Coding Planet
[SQLD] 데이터베이스 제약조건 : CASCADE, RESTRICT, AUTOMATIC, DEPENDENT의 차이점 본문
DB, SQL
[SQLD] 데이터베이스 제약조건 : CASCADE, RESTRICT, AUTOMATIC, DEPENDENT의 차이점
jhj.sharon 2023. 8. 31. 19:46반응형
데이터베이스는 데이터의 무결성과 일관성을 유지하기 위해 다양한 제약 조건을 사용한다. 자주 쓰이고 SQLD에도 기출인 CASCADE, RESTRICT, AUTOMATIC, DEPENDENT에 대해 알아보자
| CASCADE:
CASCADE
옵션은 주로 외래 키 제약과 함께 사용된다. 사전적 의미는 '폭포처럼 흐르다'이다. 즉 부모 테이블의 변동이 자식테이블에게 까지 영향을 미친다는 의미이다.- 부모 테이블의 레코드가 삭제되거나 수정될 때,
CASCADE
옵션을 설정한 자식 테이블의 관련 레코드도 자동으로 삭제 또는 수정된다. - 예: 고객 테이블에서 고객 정보를 삭제할 때 해당 고객과 관련된 주문테이블의 주문 내역도 함께 삭제되는 경우.
| RESTRICT:
RESTRICT
옵션은 부모 테이블의 레코드에 대한 DELETE나 UPDATE 작업을 제한할 때 사용된다.- 만약 자식 테이블에 부모 테이블의 레코드와 관련된 레코드가 있을 경우, 해당 작업은 제한된다.
- 자식 테이블에 PK 값이 없는 경우만 Master 삭제 가능
- 즉, 부모의 삭제가 자식테이블에 영향을 미치는 CASCADE와는 달리 자식 테이블의 상태가 부모 테이블의 동작에 영향을 미치게 된다.
| AUTOMATIC:
AUTOMATIC
은 부모 테이블에 PK가 없는 경우 PK 생성 후 자식테이블에 입력을 허용한다.- 즉 자식 테이블에서 입력이 일어날 때 자동으로 부모 테이블에도 변동이 생기게 된다.
| DEPENDENT:
DEPENDENT
옵션은 자식 테이블에서 FK데이터 생성시 부모 테이블에 PK가 없는 경우 자식 테이블의 입력을 제한하는 조건이다.- 즉, 자식 테이블의 입력조건이 부모 테이블에 의존적이다.
반응형
'DB, SQL' 카테고리의 다른 글
[SQLD] 데이터베이스에서 트랜잭션의 격리성(Isolation)이 낮은 경우 발생하는 문제점들 (0) | 2023.08.31 |
---|---|
[SQLD] DELETE, TRUNCATE, DROP 비교 (0) | 2023.08.31 |
[SQLD] 테이블 컬럼 삭제 - ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명; (0) | 2023.08.31 |
[SQLD] 테이블의 컬럼명, 자료형 변경하기 - Oracle, SQLServer (0) | 2023.08.30 |
[SQLD] 테이블 생성시 PK 설정하기 - ORACLE (0) | 2023.08.30 |
Comments