본문 바로가기
SQL

(SQL) Hard Delete , Soft Delete

by KwonSoonBin 2023. 7. 27.

1. Hard Delete (물리적 삭제)

Hard Delete는 데이터를 영구적으로 삭제하는 방법.

데이터베이스에서 DELETE 문을 사용하여 특정 행(row)이나 테이블을 삭제하면 해당 데이터는 데이터베이스에서 완전히 제거된다. 이로 인해 해당 데이터를 복구할 수 없게 되고, Hard Delete는 데이터를 물리적으로 제거하기 때문에 저장소 공간을 확보할 수 있으며, 삭제된 데이터에 대한 자원은 반환된다.

특징

  • 데이터를 영구적으로 삭제하여 저장소 공간을 확보
  • 복구할 수 없으므로 조심해서 사용
  • 삭제된 데이터에 대한 자원은 반환됨
DELETE FROM table_name WHERE condition;

 

2. Soft Delete (논리적 삭제)

Soft Delete는 데이터를 논리적으로 삭제하는 방법.

데이터베이스에서 DELETE 문을 사용하여 특정 행이나 테이블을 삭제하지만, 실제 데이터는 삭제하지 않고 삭제를 표시하는 특별한 상태(일반적으로 특정 컬럼 값 변경)로 변경하는 방식. 이로 인해 데이터베이스에서는 해당 데이터를 삭제된 것으로 인식하나, 실제 데이터는 보존된다. 이러한 방식으로 데이터를 삭제하면 데이터를 복구하거나 관련 작업을 수행할 수 있다.

특징

  • 데이터를 논리적으로 삭제하여 삭제 여부를 표시
  • 삭제된 데이터를 복구하거나 관련 작업을 수행할 수 있다.
  • 보통 별도의 컬럼(예: "is_deleted")을 사용하여 삭제 여부를 표시한다.
UPDATE table_name SET is_deleted = 1 WHERE condition; -- is_deleted 컬럼을 사용한 소프트 삭제


요약

Soft Delete의 장점은 데이터 복구와 이력 추적 등이 용이하다는 점이다. 하지만 소프트 삭제된 데이터도 여전히 데이터베이스에 남아 있으므로 저장소 공간을 확보하지는 않습니다. 따라서 Hard Delete와 Soft Delete 중 어떤 방법을 선택할지는 데이터베이스의 용도와 보안 요구 사항을 고려하여 결정해야 합니다.

'SQL' 카테고리의 다른 글

DELETE, TRUNCATE, DROP의 차이  (0) 2023.07.27
SQL기초  (0) 2023.07.27

댓글