2

私は、データを共有するために適切に定義されたインターフェイスを介して相互作用するが、同じデータベースの読み取りと書き込みを行わない、多数の個別の中小規模のプロジェクトを持つクライアントのために働いてきました。それぞれが独自のデータベース、独自のキャッシュ、専用アクセス権を持つ独自のファイルサーバー/システムを持っていたため、問題が発生することはありませんでした。これらのクライアントの1つはモバイルコンテンツベンダーであるため、日常のビジネスアプリケーションと同じ問題に直面する必要がないという点で幸運です。それらは、それらのコンポーネントが他のコンポーネントから隔離されて幸せに暮らす、それらすべての個別のコンパートメントを作成できます。

ただし、多くのビジネスアプリケーションでは、これは不可能です。私はいくつかのクライアントと協力してきましたが、そのうちの1つは、1時間ごとに「不良データの問題」が発生する、実稼働サポートを行っているアプリケーションです。ええ、それはクレイジーです。インスタンスの1つ(もちろん本番環境よりも低い)からの一部のデータレコードは、数週間前に実行され、他のユーザーのデータが破損する原因になりました。次に、この問題を修正するためにデータスクリプトを作成する必要があります。そして、私はこれがこのクライアントで非常に起こっているのを見たので、私は尋ねなければなりません。

私はこれが他のクライアントで適度な速度で起こっているのを見てきましたが、これはただ故障しているようです。

同じデータベースに対して読み取りと書き込みを行うことで大量のデータを共有するビジネスアプリケーションを使用している場合、「不良データの問題」は環境によく見られますか?

4

6 に答える 6

4

不良データの問題は常に発生しています。合理的に効果的な唯一の防御策は、適切に設計され、正規化されたデータベースであり、できればストアド プロシージャを介してのみ外部と対話します。

于 2009-12-15T12:47:16.233 に答える
2

このため、必要なデータ ルールをアプリケーションではなくデータベース レベルで設定することが重要です。(もちろん、多くのシステムはアプリケーション レベルでも気にしないようです。)

また、データのインポートを設計する多くの人は、データをシステムに入れる前にわざわざデータをきれいにしないようです。もちろん、データを台無しにする可能性のあるすべての方法を見つけるのは困難です。私は何年もインポートを行ってきましたが、今でも時々驚かされます。私のお気に入りは、データ入力担当者が明らかにフィールド名を気にせず、最初のフィールドがいっぱいになったときにアプリケーションが次のフィールドに進む会社でした。姓のフィールドに「McDonald, Ja」、名のフィールドに「mes」などの名前が表示されました。

私は非常に多くのクライアントやベンダーからデータをインポートしています。私が開発した何百もの異なるインポートのうち、データがクリーンだったのは 1 つまたは 2 つだけだと思います。なぜかメール欄が特に苦手なようで、メールではなくメモに使われることが多いです。「彼の秘書はホットブロンドです」にメールを送るのは本当に難しいです。

于 2009-12-15T15:05:01.040 に答える
0

複雑なデータベースの更新中にユーザーがアプリケーションをシャットダウンしたためにデータが破損した場合、トランザクションはあなたの味方です。この方法では、Invoice テーブルにはエントリを取得しませんが、InvoiceItems テーブルにはエントリを取得しません。プロセスの最後にコミットされない限り、加えられたすべての変更はロールバックされます。

于 2010-05-18T07:05:57.107 に答える
0

はい、非常に一般的です。問題の程度を顧客に理解してもらうことは別の問題です。ある顧客では、データベースを分析し、公開された独自のデータ形式と一致しないレコードに遭遇するたびにビープ音を鳴らすアプリケーションを作成することに頼らなければなりませんでした。DB がインストールされたラップトップを会議に持って行き、プログラムを実行すると、テーブルのすべてのヘッドが回転して DBA を見つめるのが見え、私のマシンはバックグラウンドで狂ったようにビープ音を鳴らしました。注目を集めるために、顧客自身の問題について鼻をすりつぶすのに勝るものはありません。

于 2009-12-15T13:31:37.250 に答える
0

あなたが悪いデータについて話しているとは思いませんが(ただし、コメントで提起されたさまざまな質問に答えるのは礼儀正しいだけです)、無効なデータです。たとえば、「9A!」3 文字の ISO 通貨コードが含まれているはずのフィールドに格納されているデータは、おそらく無効なデータであり、データ入力時に検出されるはずです。不良データは、通常、ディスク エラーなどによって引き起こされる破損と同等であると見なされます。前者は、データ入力アプリケーションの品質に応じて非常に一般的ですが、後者はかなりまれです。

于 2009-12-15T13:38:41.373 に答える