Thursday, March 26, 2015

論理削除はなぜ「筋が悪い」か

論理削除が云々について - mike-neckのブログ」を読んで。

データベース設計において、「テーブルの書き換えをするな、immutableなマスタと更新ログによって全てを構成しろ」というこの記事の主張はモデリング論として全く正しい

だが、残念なことに、ディスクやメモリが貴重な資源だった時代の技術であるRDBは、そのようなモデリングに基づいて設計されたデータベースには必ずしも適していない

第一の問題は、RDBに対してなされる様々な「更新」(トランザクション)は不定形(どのテーブルをどのように修正するかはアプリケーション依存)だという点。不定形な「更新」を時系列にそってRDBに記録していくのは、設計と並走性の点において困難あるいは煩雑なコーディングが必要になる(というか、そのような「イベント」による「変化」はREDOログに書き、その更新された「状態」をテーブルに反映していくというのがRDBの「一般的な使われ方」)。

第二の問題は、ほとんどのデータベースアクセスは、更新が蓄積された結果である「現在の状態」を問い合わせるものになるが、immutableなマスタと更新ログによって構成されるデータベース設計においては、そのような問い合わせに効率的に応答するのが難しいという点である。

従って、現実的なデータベース設計においては、多くのテーブルが「現在の状態」をもつ、immutableなマスタと更新ログから合成可能な「現在の状態を表現するビュー」を実体化したものとして表現されることになる。

ふりかえって、論理削除とはなにか。「現在の状態を表現する実体化ビュー」に、過去の状態(かつて存在したデータであることを意味する「削除済」)をフラグとして付与したものである。

「現在の状態を表現する」ことを前提にしたビューであるところのテーブルに、過去の状態の一部だけを表現するフラグを追加するのが「筋が悪い」設計だというのは明らかだ。

過去の状態を参照すべき要件があるなら、そのテーブルが表現する情報についてはimmutableなマスタと更新ログを用意し、その射影として表現されるビューとして「現在の状態」を実現すべきである。そのようなビューは自動生成できるならしても良いし、手動で更新するなら、ストアドを使うか、あるいはアプリケーションのデータベースアクセス層において手続きをまとめる方法を考えるべきだろう。

ただ、immutableなマスタ、更新ログと「現時点のビュー」の3テーブルを準備・運用するというのはそれなりにコストがかかるので、筋が悪い「削除フラグ」(より一般化すれば状態フラグ)を使うかどうかはケースバイケースで判断するのもひとつの見識である。


まとめ:
  • データベース設計にあたっては、テーブルを「現在の状態」を表現するものとして設計するか、それとも「immutableなマスタと更新ログ、および現時点の状態を表現するビュー」として設計するかという、2つの選択肢がある
  • 前者は簡潔で性能が高くなるが、過去の情報を参照できないという問題がある
  • 「削除フラグ」というのは、「現在の状態」を表現するテーブルに過去の状態の一部を表現する機能を場当たり的に足したもの(なので筋が悪い)
  • それよりも、過去の情報を参照する要件がある場合(もしくはそのような要件が発生すると想定される場合)は、テーブル単位で「immutableなマスタと更新ログ」という設計を採用しつつ、現在の情報をビューとして表現することを考えた方がよい

こういった点を理解・検討した上で、「それでも削除フラグの方が楽だろう」という判断を下しているなら良いと思います。


追記: Re: 論理削除はなぜ「筋が悪い」か - Blog by Sadayuki Furuhashiで挙げられていた疑問点について
効率的にSELECTや更新ができるスキーマを作ろうとすると、VIEWやFUNCTIONなど、側に実装するコードが増えてくる。それらのコードは、上記のようにDB側に実装しても良い(するべき)だろうか?それともアプリケーションに実装するべきだろうか?
アプリケーション要件によるでしょう。

が、アプリケーション要件に関わらず正しく動作する方法が何かという問に対しては、RDB側でトリガ(あるいはストアド)として実装するのが安全だというのが答えになるでしょう。また、アプリケーションが操作可能な処理は「immutableなマスタ」と更新ログテーブルへの追記のみとし、両者への操作から「現在の状態を表現するビュー」を生成すべきであって、「現在の状態を表現するビュー」をアプリケーションが操作し、その変更内容をトリガでログに出力するという方式は避けるべきという話になるかと思います。

なぜか。そうしないと分離レベルや主キーの発番処理に起因する込み入った条件が色々…続きはお近くのDBAにご相談ください。
テーブルのスキーマは停止時間なしで変更する手法をいくつか思いつくが(PostgreSQLなら)、上記のレコードを削除する操作などはアプリケーションの変更を伴うので難しい(アプリケーションとDBのスキーマをアトミックに変更できない)
カラムのアクセス権は無停止で変更できませんか? つまり、アプリケーションを拡張した結果として削除フラグの存在が冗長になったのであれば、そのフラグの更新をストアドあるいはトリガで行われるように変更し、書き込み権限をドロップすればいいでしょう。

こんな感じかと思います。

42 comments:

  1. I like this a lot. Thank you for sharing. I'm always looking for upcycles like this. In the end, you don't know it was a shipping pallet to begin with!
    Delhi Daredevils Team Squad Captain Name
    GL Players List
    Mumbai Indians Jersey and Logo Images

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. this is one of the cult game now, a lot of people enjoy playing them . Also you can refer to the game :
    age of war | earn to die 5 | Tank trouble | happy wheels | earn to die 6
    The game controls are shown just under . Movement mechanisms primarily include acceleration and tilting controls.
    tank trouble unblocked | wings io | strike force heroes


    ReplyDelete
  4. The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.
    animal jam | five nights at freddy's | hotmail login

    ReplyDelete
  5. I’m very happy to read this. This is the kind of manual that needs to be given and not the accidental misinformation that is at the other blogs. Appreciate your sharing this greatest doc!
    happy wheels

    ReplyDelete
  6. شركة نقل عفش
    اهم شركات مكافحة حشرات بالخبر كذلك معرض اهم شركة مكافحة حشرات بالدمام والخبر والجبيل والخبر والاحساء والقطيف كذلك شركة رش حشرات بالدمام ومكافحة الحشرات بالخبر
    شركة مكافحة حشرات بالدمام
    شركة تنظيف خزانات بجدة الجوهرة من افضل شركات تنظيف الخزانات بجدة حيث ان تنظيف خزانات بجدة يحتاج الى مهارة فى كيفية غسيل وتنظيف الخزانات الكبيرة والصغيرة بجدة على ايدى متخصصين فى تنظيف الخزانات بجدة
    شركة تنظيف خزانات بجدة
    شركة كشف تسربات المياه بالدمام
    شركة نقل عفش واثاث

    ReplyDelete
  7. Look like you are creating amazing content these Days. Krogerfeedback

    ReplyDelete
  8. من اقدم والاختيار بين افضل الشركات فى القاهرة لديها عمالة مميزة ومحترفة لنقل العفش

    شركات نقل الاثاث بالقاهرة هي القادرة علي القيام بهذه العملية بالشكل الصحيح والذي لا يستغرق منها وقت طويل حيث من المعروف أن عملية نقل الاثاث تتسبب في الكثير من الفوضي ولكن شركة نقل متخصصة وتعرف كيف تتم الأمور في مسارها الصحيح ودون أن يتسببوا في أي فوضي. فتعود الحياة الطبيعية مع شركات نقل الاثاث بالقاهرة للعميل ولكل أفراد أسرته في ظرف ساعات معدودة
    اقرأ ايضا
    تجنب عيوب النقل
    الخبرة الكافية لعملية النقل
    اهم المعلومات عن طرق النقل الصحيحة
    الاختيار بين افضل الشركات

    ReplyDelete
  9. شقق للبيع في اسطنبول مطلة علي البحر , مع الاستثمار العقاري في تركيااسطنبول امتلك منزلك الثاني بكل المواصفات التى تتمناها .

    شقق للبيع رخيصة في تركيا , مع اسعار العقارات في تركيا امتلك منزلك الثاني بكل المواصفات التى تتمناها .

    ReplyDelete
  10. we are happy to comment here, and we await your komantar in our blog
    cara menggugurkan hamil

    ReplyDelete
  11. It's a nice idea! I will Ukessays.com follow your advice and do everything you've said! It's a great way out indeed. But it is better to find some online essay help for students

    ReplyDelete
  12. Very nice post. I just stumbled up?n your weblog and wished to say that I have really enjoyed browsing ?our blog posts.
    Regards - www.office.com/setup

    ReplyDelete
  13. Office Setup (post-acquisition installation)
    By purchasing one of these packages, you acquire a product key that can be used by one or more computers, depending on the item.

    • When downloading, discover the product key in your Amazon account to do office setup.

    • When purchased as a box, there is a PVC card with the product key inside the box
    .www.office.com/setup

    ReplyDelete
  14. Welcome to the Best writer Review, Here you can get the best All Assignment Help reviews sites. We strongly urge you to check our entire website once and we will assure you will find this review website very useful. Our hard work will be rewarded if students like you will appreciate our effort and spread the message about this site with your class-fellows and friends.

    ReplyDelete
  15. Thank you for updating the information. gmail email login This is what I need to find.

    ReplyDelete
  16. Install Office Setup – Sign-in to you microsoft account and then Enter 25 digit alphanumeric office setup product key on country and language.click on next to start office installation.We are the best Office Setup in US, Canada and Australia. At Office Setup, we put high effort, moderate IT answers for organization's, and people.Whether set up or beginning, equipment or programming, system or electronic, we have something for each financial plan. officeplus.net is the exchanging name of Spacesolutions Pvt Ltd situated in California, USA. We are not Microsoft. However we are trained professionals to provide technical support for We are the world's biggest innovation wholesaler and a main innovation deals, showcasing and logistics organization for the IT business around the world. Our people group based ethos, focused costs and nature of administration settles on Office Setup the right decision for your IT needs .Whether you are a learner or experienced in IT our courses are altered to furnish you with the key achievement criteria to thrive in future attempts.
    www.office.com/setup

    ReplyDelete
  17. Call our Brother Printer Support Number +1-888-621-0339 for tech support for your Brother Laser Printer and other printers. We offer round the clock tech services such as Brother Printer Driver download. Brother Laser Printer

    ReplyDelete
  18. WeberGuide.com is a product reviewing and informative website that provides a fruitful guide in before and after buying all the accessories. We Publish Information about Home Accessories, Sports, Outdoor and Gardening. Visit our website to see our latest article on Best Kukri Knife, Best Flushing Toilet, Best Air Mattress and so on.

    ReplyDelete
  19. Product Items Is a Product Review Website. Here We Reviewed Best Product. If You Want to Buy Any Product, You Need to Read Product Features, Product Details, Product Description, Product Specification, Product Ratting, Pros and Cons. If You Want to Learn More Product Review Visit our Product Items Website.

    ReplyDelete
  20. If you want to know about celebrities bio and their updates? You can visit Celebrity Ping. Here you will get all celebrities information, Alan Tudyk, Ashley Johnson, Bernie Mac, Calista Flockhart, Christina Hendricks, Dafne Keen, Emily, Eva Ekeblad, Freddie Prinze Jr, Jessica Barden, Jessica Henwick, Joan Cusack, Josh Wickersham Hartnett, Juan Gabriel, Kaitlyn Dever, Kathryn Hahn, Katie McGrath, Ksenia Solo, Laura Haddock, Lauren German, Lea Thompson, Loni Anderson, Lori Loughlin, Lucas Till, Maika Monroe, Maitland Ward, Markie Post, Matthew Gray Gubler, Olga Kurylenko, Phoebe Cates, Phoebe Snetsinger, Rebecca Romijn, Rene Russo, Robin Williams, Theo James, etc.

    ReplyDelete
  21. ListForever – Never Ending Show Starts Here. Guys it is a place for some of really interesting, fascinating and knowledgeable lists like; Fastest car, Fastest bike, Fastest train, Fastest animal, Most expensive watch, Most expensive hotel, Tallest building, Hottest women, Most expensive shoes, Highest paid actor, Most powerful military, Most powerful people in the world, Hottest actress in Hollywood, Most beautiful Italian women, Most beautiful British actress, Highest grossing movie of all time, Best Bollywood movie of all time, Foods that can kill you. We are here with some cool lists, after reading it shall definitely update you with interesting trivia.

    ReplyDelete
  22. شركة اضواء جدة شركة نقل عفش افضل وارخص دليل شركات نقل العفش وشركات نقل الاثاث حيث يقدم الأيدي المدربة فى نقل عفش واثاث باسرع الطرق مع التغليف والتخزين.

    ReplyDelete
  23. Stardust Boutique is a Jovani prom dresses company. If you are looking for a prom dress, we are a Jovani dress store and stockist supplying UK, USA, Canada, Australia, internationally.We stock all kinds of Jovani if you want a Jovani prom dresses, Jovani short dress, Jovani evening dress, Jovani pageant dress, jvn prom dress, jvn short dress and pageant dresses.

    ReplyDelete
  24. The Electric Blender for people to save time and reduce stress The Comparisons vs Reviews Deal of best food processor, Best Smoothie Blender, Best Personal Blender, Best Commercial Blender, best portable blender, Best immersion blender, Best Vitamix Blender, best ninja blender,Best Magic Bullet Blender, best Blendtec blender, The comparisons between Blendtec vs Vitamix, of Magic Bullet vs NutriBullet is another issue to consider if you are looking for a smart and efficient blender. But the Nutri Ninja vs NutriBullet will help you to decide to get the right one. and Best Food Dehydrator, Best Food Chopper, best vegetable chopper Reviews, buying a guide.

    ReplyDelete
  25. WeberGuide is a product reviewing and informative website that provides a fruitful guide in before and after buying all the accessories. We Publish Information about Home Accessories, Sports, Outdoor and Gardening. Visit our website to see our latest article on Best Kukri Knife, Best Flushing Toilet, Best Air Mattress and so on. For the most part, there are numerous sorts of sites on the web about the best items. In any case, we locate that the greater part of these are ecommerce site where individuals are simply attempting to offer their items. In any case, here on this site, you will get bunches of data which will spare your significant time and help you to pick the best items.

    ReplyDelete
  26. If you want to know Most Expensive Watch. you can visit listforever.com here you will get Top 21 Most Expensive Watch | Pictures, Price and Specifications

    ReplyDelete
  27. Best Kukri is a product reviewing and informative website that provides a fruitful guide in before and after buying all the accessories. We Publish Information about Home Accessories, Sports, Outdoor and Gardening. Visit our website to see our latest article on Best Kukri Knife, Best Flushing Toilet, Best Air Mattress and so on. For the most part, there are numerous sorts of sites on the web about the best items. In any case, we locate that the greater part of these are E-Commerce site where individuals are simply attempting to offer their items. In any case, here on this site, you will get bunches of data which will spare your significant time and help you to pick the best items.

    ReplyDelete
  28. Find Vacuum Cleaner - Get Trusted Vacuum Cleaner Reviews If you want to Find Best Vacuum Cleaner Here you will Get Trusted Vacuum Cleaner Reviews, Pros, cons, Buying Guide, etc. Get your Vacuum Cleaner

    ReplyDelete
  29. Pet Pharmacy Petmeds and Pet Medicine Store Petsability is the Best Online Pet Pharmacy that provides Petmeds Pet Medicine Find Natural Medicines

    ReplyDelete
  30. Utility kilt is comfortable and easy to wear.you can read this post. it is a good informative post on yours.

    ReplyDelete
  31. Very nice and interesting article. It`s always great to read about people who make all these useful things for us. Thank you. blockchain

    ReplyDelete
  32. Need a helping hand with making dinner We have rounded up the Best Hand Blender to consider when adding to your kitchen gadgets

    ReplyDelete
  33. In our quest for the hand blender reviews, we've considered 63 models, interviewed pros, and pureed gallons of soup, smoothies.

    ReplyDelete
  34. Turbo Steam is a powerful, yet portable, fabric and clothes steamer for all of your steaming needs. Our Turbo Steam takes only 45 seconds to heat up and to start generating steam and its steam delivery system evenly distributes steam across fabrics to remove even the worst wrinkles.

    ReplyDelete
  35. if you are interested to buy a kilt. so you can read my post.it is a good and informative post for yours. You can get a premium quality custom fit Tactical kilt form kilt master. you can like this.

    ReplyDelete
  36. تقدم شركة شركة النقل في الدمام جميع عملائها مجموعة واسعة من الخدمات لم يتم رؤيتها قبل أي شركة أخرى لنقل الرغيف. كما سيقدم لك مجموعة كبيرة من الخصومات الضخمة على عمليات النقل التي تصل إلى 40٪.

    ReplyDelete