第12章:データ整合性

概要

データベース開発、モデリング、および管理 それは、距離にもかかわらず、我々は理解、実践、および技術に来て、非常に多くのデータベースの達人(Celko、Codd、Date、Riordan、et al。)は、それぞれの哲学において非常に広く変化する。 その結果、管理者および開発者は頻繁に彼らのズボンの座席によって完全性の模倣およびこうして完全性のプログラミングを扱う。 SQL Server Books Onlineでも、白昼のコウモリよりも混乱した方法で、用語集でデータの整合性を定義しています。

この本は確かにデータの完全性についての議論のためのフォーラムではありません、そしてこれは私が関係データベース理論を議論することに挑戦したい ただし、いくつかの概念を検討し、データ整合性の唯一の実現可能な定義を受け入れることなく、データ整合性のモデリングとプログラミングに関してSQL Server2005

データの整合性は、データベースに格納されているデータが正しいことを保証する練習、規律ではありません。 Sql Server2005、またはその他のRDBMSが、データベース内のデータが正しいことを保証できるということは、この人生と今後の間にはありません。 今あなたの語彙から正しい取得します。 SQL Server2005には、市外局番が209ではなく299であること、または姓がShapiroであり、Schapiroではないことを知る方法がないため、確認する方法がありません。 私はジェフリーという名前の女の子のことを聞いたことがあります。 データが正しいか間違っているかではなく、データの妥当性の観点からSQL Serverの考え方、モデリング、プログラミングを開始する必要があります。

この定義を受け入れる場合にのみ、SQL Server2005でサポートされているツールとテクニックを使用して、データの整合性を確保し、企業の資産としての価値を保 そして、絶対的な言葉ではなく、スカラーの言葉で完全性に焦点を当て始めると、データベース内のデータに対するより多くの信頼が得られ、それに値する信頼と尊敬を与えることができるようになります。 結局のところ、もっともらしいまたは信じられないデータは責任です

私が第1章で議論したように、ヒューマンエラーは、医療保険会社を変更した後、彼女の医者の姓がシャピロの代わりに配偶者の姓フィールドに入力されたため、しばらくの間カバレッジを拒否されたとき、私の妻に、データの整合性の問題は、このように生命を脅かすものになった。 医療保険会社にとって、この問題はほとんど責任問題に爆発しました。

姓や姓が間違っている原因は何ですか?

  1. 妻は彼女の旧姓で行く。

  2. 配偶者は誤って仮名を提供します。

  3. 夫婦はちょうど離婚したが、報道を維持することに同意した。

  4. 子供は継父によってカバーされていますが、まだ彼または彼女の生物学的父親の姓で行きます。

  5. [姓]フィールドに名が入力されます。

  6. 姓は間違って入力されています(Shapiroは指のわずかなスリップでAhaooeueiになります)。

  7. 申請書の手書きが貧弱であるか、姓が省略され、データ入力者が間違った仮定をしています。

このリストは、上に行くことができます。 そして、私はあなたが姓の値だけでなく、他の多くの場所でも疑わしいデータを作成する数十のシナリオを思い付くことができると確信しています。 たとえば、数値は、問題のあるデータをデータベースに入力する素晴らしい機会を提供します。

しかし、これは完全性の問題ですか? データが可能な限り信頼できるものであることを保証するためにDBMSをプログラムすることを受け入れるならば、それはそうです。 データが正しいことを確認しようとすると、そうではありません。 任意の値は、実際には間違っていると仮定されたときに正しいかもしれませんし、正しいと仮定されたときに実際に間違っているかもしれません。 データが信頼できることを確認するためにできることは、データベースに入力されたときに信頼できることを確認することだけです。

配偶者の姓などの値が確実に信じられるようにするために、データ層で考えることができる最善のことは、クライアントに戻ってデータを入力する前 レコードをクライアントに参照して、別のユーザー、おそらく次のレベルに事実チェックを取るスーパーバイザーによって入力されるように要求することも可 インターネット上の申請書に記入するためにwebサーファーに尋ねることは、中間のデータ入力者、紙の道、および遅延をカットし、彼または彼女の情報が依拠することができることを確実にする可能性が高いクライアント上のデータの妥当性を確保する責任を置くので、良いアイデアです。

私は最近、子供に小児科医によって正しく処方されていたものに反して薬の致命的な過剰摂取を与えたアメリカの薬剤師についてのcnnで恐ろしい話 言い訳は、ヒューマンエラー、処方をダブルチェックするスーパーバイザーの失敗だった、処方箋の何百もの日を埋めるなぜ、天の名前で、この日と年齢で、薬剤師はまだ危険な薬の投与量と投与についての指示を提供するためにタイプライターとワードプロセッサを使用していますか? 投与量が処方された薬物の安全レベルを超えていないことを確認するために、データベースを使用する必要があります。 コンピュータプログラムは投薬量をチェックしなかったので、母親は子供をベッドに送り、彼は目を覚ますことはありませんでした。 今、私たちが薬を買うたびに、私たちはラベルをチェックし、”このデータに私たちの人生を信頼できますか?”

明らかに、ヒューマンエラーの主題は、人間が疑わしいデータをデータベースに入力するのを防ぐことの可能な手段について議論する以外に、この本の範囲を超えています。 Joe Celkoは、彼の素晴らしい本、Joe Celko’s Data&Databases:Concepts in Practice(New York:Morgan Kaufmann,1999)でこのテーマに触れました。 “モデル対現実”というタイトルのセクションで、彼はモデルのエラーについて話し、タイプIとタイプIIのエラーレベルを説明します。 タイプIエラーはtrueであるものをfalseとして受け入れ、タイプIIエラーはfalseであるものをtrueとして受け入れています。

私は、モデルのエラーの主題がデータベースの人々が理解するために非常に重要であることを明白に同意します。 人々の世代は、この問題のために一掃されています。 私が子供の頃を過ごしたサハラ以南のアフリカは、エイズのために一掃されるでしょう。 これは防止されている可能性がありますが、そこの人口はまだ、エイズは性感染症ではなく、宣伝は単なる”西洋のプロパガンダ”であると考えています。 何百万人ものアフリカ人がまだ保護されていないセックスをしているので、詐欺は実際には自己永続的または自己実現的です。

はい、私たちは、信じられないほどのデータの可能性を軽減するために、このようなトリガやストアドプロシージャなどの派手なプログラミングの技 今説明したような問題を回避し、SQL Server2005をできるだけ賢明にプログラムするにはどうすればよいですか? 考えられる解決策に到達するために、まずSQL Server2005の整合性保証機能と機能を調べてみましょう。 この議論の後、私たちは姓の整合性の問題を是正し、彼らが訴えられる前に私の医療保険会社にいくつかのアイデアを提供することができます。

コメントを残す

メールアドレスが公開されることはありません。