1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

論理削除と物理削除について

Last updated at Posted at 2022-04-13

はじめに

システム上のデータの管理において重要な「削除」機能。
一言に削除機能といっても
・ 論理削除
・ 物理削除
の二つがある。
それぞれの内容、メリット、デメリットをまとめておく。

論理削除

文字通り「論理的な」削除を示す。
表面上はデータを削除したように処理するが、データそのものは残っている状態。
下図の例は、バックエンドのデータ項目に「Delete」を追加しフラグを立てることで
フロントへのレスポンスにデータを含めないという処理を行っている。
スクリーンショット 2022-04-13 11.11.43.png
論理削除=非表示処理、と認識できる。

論理削除のメリット

データを消さない、つまり元の状態に戻すことができる!これに尽きる。
例えば、アプリケーションの仕様が途中で変わり、削除済みデータが必要になったとする。
そんな場合でも、フラグを修正するだけで過去の削除データを簡単に復元することができる。

論理削除のデメリット

データを消さない、つまり延々とデータが蓄積されていく。
軽量データなら大きな影響はないかもしれないが、塵も積もればなんとやら。
気付いたら大量のデータが蓄積され、ローディングなどの挙動に影響する場合もある。

物理削除

データを抹消する「物理的な」削除を示す。一般的に削除と言ったらこちらだろう。
論理削除とは異なり、データそのものを消去する。
下図の例は先述した論理削除の構成と同じだが、削除により完全にデータが消え
バックエンドにもデータが残っていない状態になっている。
スクリーンショット 2022-04-13 15.05.16.png
物理削除=廃棄処理、と例えられるだろう。

物理削除のメリット

不要なデータが蓄積せず、コードを単純化できる。
文字通りデータが消去されるので、論理削除とは異なりデータの蓄積はされない。
データそのものがないのだから、ロジックを間違えて表示されたりすることもない。
不要なデータがないので、データとロジックの最適化がされている状態になる。

物理削除のデメリット

削除したデータの復旧はできない。
当然だが、後で必要になっても復旧させることはできない。
重要なデータほど、物理削除は慎重に行うべきだろう。

使い分けとベストプラクティス

以上、論理削除と物理削除について記述した。
簡単にまとめると
・論理削除=非表示にしてデータを残す
・物理削除=データの完全消去

と言えるだろう。
どちらも一長一短で、場面によって使い分け、もしくは組み合わせることが必要になる。
個人的に考えるベストプラクティスとしては
基本は論理削除とし、一定期間使用しなかった削除データに対し物理削除を行う
という二段構えだ。
多少の手間はかかるかもしれないが、安定したデータ管理ができると考える。

最後に

データを管理する上で避けられない「削除」ではあるが、その削除には種類があり、
性質をしっかり把握し適切に用いることで、より安全なデータ管理を図れることがわかった。
今後はシステムのアーキテクトを考慮し、より適切な削除方法を組み込んでいくこととする。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?