ORACLE TECHNOLOGY NETWORK
 
 
   

Oracle Technology Network (OTN) Japan - 掲示板 » コミュニティ » 初心者の部屋

スレッド: レコードの論理削除について

このスレッドに返信する このスレッドに返信する スレッド一覧へ スレッド一覧へ

Permlink 返信数: 10 - ページ数: 1 - 最新投稿 : 2004/11/18 15:45 最新投稿者: 山田健一 - スレッド表示形式:
siwks

投稿数: 48
登録日時: 02/06/18


レコードの論理削除について
投稿時刻: 2004/11/18 12:35
  このスレッドに返信します… 返信

レコードに削除フラグというカラムを作っておいて
deleteする代わりに、論理削除フラグを立てる
という方式って結構使われていると思うのですが、
この方式は何のためにあるんでしょうか?

間違って削除してしまった場合に、データを復旧させるため
でしょうか?

だとすると、データ復旧はOracleの機能だけでなんとかできないでしょうか?
(論理削除を使ってしまうと、削除済みのデータの存在を意識しないと
いけないので、単純にInsertできなかったりと、プログラムが一気に複雑
になってしまうので、なるべく使いたくありません。)

sdtashenjie

投稿数: 1,841
登録日時: 02/10/19


RE:レコードの論理削除について
投稿時刻: 2004/11/18 12:46   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

>レコードに削除フラグというカラムを作っておいて
>deleteする代わりに、論理削除フラグを立てる
>という方式って結構使われていると思うのですが、
>この方式は何のためにあるんでしょうか?
>
>間違って削除してしまった場合に、データを復旧させるため
>でしょうか?
>
>だとすると、データ復旧はOracleの機能だけでなんとかできないでしょう
か?
>(論理削除を使ってしまうと、削除済みのデータの存在を意識しないと
>いけないので、単純にInsertできなかったりと、プログラムが一気に複雑
>になってしまうので、なるべく使いたくありません。)
Oracleに論理削除という概念が確かにありますが、
でも、あれが列の論理削除、質問者の論理削除というのが何を指しますか?

sdtashenjie (*_*)


でで

投稿数: 9,980
登録日時: 00/10/25


RE:レコードの論理削除について
投稿時刻: 2004/11/18 12:50   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

>間違って削除してしまった場合に、データを復旧させるため
>でしょうか?

そういった理由で使っている所はむしろ少数なのでは?
何か問題があったときに追いかけることができるようにという理由が
主なところじゃないかなぁとおもうんですが。
あとは、間違って削除ではなくても復活させるという要件がある場合とか。

なので、追いかける必要の無いテーブルはばっさり削除で良いと思うし、
履歴系のデータのように、追いかける必要がありそうなものは
論理削除が良いと思いますね。


hiratsuka110918

投稿数: 1,423
登録日時: 04/10/29


RE:レコードの論理削除について
投稿時刻: 2004/11/18 12:54   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

他システムなんかにデータを送信する場合なんかによく使いますね。
物理削除してしまうと情報が消えてしまうので、論理削除しといて
フラグがたっているものを削除データとして他システムに渡す。
あと、論理削除とは意味合いが変わってしまうのかも知れませんが、
削除データとして履歴的に残し、照会系ではデータとして扱い、更
新系では、扱わない、というのもありますね。

hoge

投稿数: 11,812
登録日時: 99/03/15


RE:レコードの論理削除について
投稿時刻: 2004/11/18 12:58   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

>レコードに削除フラグというカラムを作っておいて
>deleteする代わりに、論理削除フラグを立てる
>という方式って結構使われていると思うのですが、
>この方式は何のためにあるんでしょうか?

削除というより取消という意味で使うことが
多いですね。

deanna

投稿数: 3,796
登録日時: 97/05/10


RE:レコードの論理削除について
投稿時刻: 2004/11/18 13:08   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

論理削除は操作履歴等が必要なシステムでは使いますね。
会計などでは入力した伝票を取り消してもそれは論理削除ですね。
改ざんなどの追跡が必要ですから。

Oracleにそんな機能を要求してもだめでしょうね。
外部参照キーなんかあったら整合性を保ちながら復旧なんてDBMSでできる話ではないし。
FLUSH BACKはDB全体を戻すのは全部が戻れば整合性問題は起きないからで。

---
deanna

白コタロー

投稿数: 18
登録日時: 01/01/23


RE:レコードの論理削除について
投稿時刻: 2004/11/18 13:18   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

以前に「リアルタイムの物理削除はNG」というプロジェクトがありました。
その理由についてはユーザの意向としか聞けませんでしたが、非常に厄介
だった記憶があります。

そのシステムでは後になって、この論理削除を利用して「削除機能」を持つ
画面入力系に「復活機能」が追加されることになりましたが、そもそもの
意図は?です。



bluerabbit

投稿数: 433
登録日時: 03/08/22


RE:レコードの論理削除について
投稿時刻: 2004/11/18 13:28   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

システムでは会計処理の赤黒処理などでよく使いますね。

削除というよりは取り消しとかそんな意味合いが多いですね。

-- bluerabbit --

rumba

投稿数: 232
登録日時: 02/07/15


RE:レコードの論理削除について
投稿時刻: 2004/11/18 14:20   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

論理削除は、履歴管理など、削除したデータも保持する必要性がある場合に
使います。コーディングの難易度うんぬんより要件に対する必要性をきちん
と検討してみるといいのでは。
また、Viewやトリガを使えば、アプリケーションでは削除フラグの存在を意
識しないような実装も可能かと思います。

間違って消したデータを復活させる程度ならフラッシュバック問い合わせが
使えるでしょう。


Tipo

投稿数: 3,713
登録日時: 00/03/02


RE:レコードの論理削除について
投稿時刻: 2004/11/18 14:45   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

>レコードに削除フラグというカラムを作っておいて
>deleteする代わりに、論理削除フラグを立てる
>という方式って結構使われていると思うのですが、
>この方式は何のためにあるんでしょうか?

履歴管理やデータ復活などの意味を持たない仕組でしたら
古いファイルシステムの名残りかもしれません。

汎用機のISAM(Indexed Sequential Access Method)などは
DELETEを行うと削除フラグが立ちファイルシステムからは
レコードが存在しないように見えますが実際は再編成を行う
まで削除されません。

Oracleでは削除後の領域を再使用(索引は除く)してくれるので
再編成は必要ありませんが古いシステムをそのまま移植したり
すると今でも同じロジックが残っている可能性もあります。


山田健一

投稿数: 374
登録日時: 00/01/06


Re: レコードの論理削除について
投稿時刻: 2004/11/18 15:45   siwks さんへの返信です。 siwks さんへの返信です。
  このスレッドに返信します… 返信

siwks さん、こんにちは。

 ずいぶん前に論理削除を扱ったことがあります。「削除間違いに対する対応」
というのが、主たる理由でしたが、

>(論理削除を使ってしまうと、削除済みのデータの存在を意識しないと
>いけないので、単純にInsertできなかったりと、

 これと同じ理由で、現在は論理削除は扱っていません。「削除間違いに対する
対応」として、たとえば受注削除は「受注数=0に更新」という運用にしています。
 仕入れデータなどは、修正処理を設けず、赤黒入力させるようにする運用も取
り入れています。

山田健一 http://homepage3.nifty.com/yamada_ken1/
ココログ http://yamada-ken1.cocolog-nifty.com/yamada_ken1/
上伊那ミニバスケットボール連盟
http://www.ina.janis.or.jp/~ken1yama/KAMIINA_MINI/index.htm






ウェブサイトのご使用条件 | 個人情報保護基本方針/情報保護基本方針