🌿 중급 DB
CASCADE가 뭔가요?
쉽게 이해하기
회사에서 부서가 없어지면 그 부서에 속한 직원들도 자동으로 퇴사 처리되거나 다른 부서로 옮겨지는 것과 같습니다. CASCADE는 상위 데이터가 변경될 때 연관된 하위 데이터들을 자동으로 처리해주는 규칙이에요.
핵심 정리
외래 키 제약에서 부모 데이터를 삭제하거나 수정할 때 자식 데이터도 자동으로 처리하는 옵션입니다.
자세히 알아보기
CASCADE는 관계형 데이터베이스에서 외래 키(Foreign Key) 제약 조건에 사용되는 옵션으로, 참조되는 부모 테이블의 데이터가 삭제되거나 수정될 때 자식 테이블의 관련 데이터를 어떻게 처리할지 정의합니다. ON DELETE CASCADE는 부모 레코드 삭제 시 관련 자식 레코드도 함께 삭제하고, ON UPDATE CASCADE는 부모의 키 값이 변경되면 자식의 외래 키 값도 자동으로 업데이트합니다.
실무에서는 데이터 일관성을 유지하는 데 매우 유용합니다. 예를 들어 블로그 시스템에서 사용자를 삭제할 때 그 사용자가 작성한 모든 게시글과 댓글도 함께 삭제되어야 한다면 ON DELETE CASCADE를 사용합니다. 이렇게 하면 개발자가 직접 관련 데이터를 찾아서 삭제하는 코드를 작성할 필요가 없어집니다.
하지만 CASCADE는 신중하게 사용해야 합니다. 의도하지 않은 데이터 삭제가 발생할 수 있기 때문입니다. 예를 들어 주문 시스템에서 고객 정보를 삭제할 때 과거 주문 내역까지 CASCADE로 삭제되면 안 되는 경우도 있습니다. 이럴 때는 NO ACTION이나 SET NULL 같은 다른 옵션을 고려하거나, 삭제 대신 '탈퇴' 플래그를 사용하는 Soft Delete 방식을 선택할 수 있습니다.