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 옵션은 부모 테이블의 레코드에 대한 DELETEUPDATE 작업을 제한할 때 사용된다.
  • 만약 자식 테이블에 부모 테이블의 레코드와 관련된 레코드가 있을 경우, 해당 작업은 제한된다.
  • 자식 테이블에 PK 값이 없는 경우만 Master 삭제 가능
  • 즉, 부모의 삭제가 자식테이블에 영향을 미치는 CASCADE와는 달리 자식 테이블의 상태가 부모 테이블의 동작에 영향을 미치게 된다.

| AUTOMATIC:

  • AUTOMATIC은 부모 테이블에 PK가 없는 경우 PK 생성 후 자식테이블에 입력을 허용한다. 
  • 즉 자식 테이블에서 입력이 일어날 때 자동으로 부모 테이블에도 변동이 생기게 된다.

| DEPENDENT:

  • DEPENDENT 옵션은 자식 테이블에서 FK데이터 생성시 부모 테이블에 PK가 없는 경우 자식 테이블의 입력을 제한하는 조건이다.
  • 즉, 자식 테이블의 입력조건이 부모 테이블에 의존적이다. 
반응형
Comments