あなたのデータ保全を実施することはおそらくあなたが直面する単一の最も重要な問題であるデータベースを設計するとき。 ユーザーの入力を認可することはあなたの分析およびレポートに方法を作ることからの悪いデータの保存の一方通行である。 それは悪いデータのすべてを投げるために一つだけ取る。 それは深刻なビジネスであり、近道がない-間違い、潔白な人は物、作り易い。 である1つを余りにも多くのゼロ書き入れるか、または「セオドアの代りに「6heodore」を書き入れることはちょうど余りにも容易」。 許可されて、入力段階でひとつひとつの間違いを停止できないがそれは始まるべき最もよい場所である。 (私達はSQLサーバーを使用するために堅苦しくないがので明白な概念を使用して、例はSQLサーバーで有効である。)
このブログのポストはTechRepublicのダウンロードとしてPDFの形態でまた利用できる。
点検について
価値を制限するときコラムは実施している範囲の完全性を貯えることができる。 すなわち、単一のコラム(またはテーブル)のデータすべてが特定の条件を満たすことを確かめている。 SQLサーバーは範囲の完全性を実施するための2つの作り付けの抑制を提供する:
- 点検はデータに適用する規則である。 特定分野がように価値が1つより大きいようにまたは特性の特定の数を含むことができる要求するのに点検の抑制を使用するかもしれない。
- デフォルトはユーザーが1つを供給し損うとき価値を記入する。 (私達はデフォルトをここで論議していない。)
アルファ特性を拒絶する点検を使用して
アルファ特性を拒絶する簡単な方法は数字データのタイプを使用することであるがそれは実用的常にではない。 時々、特性のコラムに数値だけ含んでほしい。 これは有効なデータが数字から成っているが、それらを数学的に使用しないと起こる。 例えば、電話番号および郵便番号数字から成り立つが、数学同等化のそれらを評価しないのでテキストとしてそれらを貯える。
特性のコラムは数および手紙を両方受け入れる。 そのようなコラムは起こる数だけ受け入れるように範囲の完全性が要求したら、作るのに点検を使用しなさい。 それは考えるかもしれないより容易である。 各々の必須の位置のために数字を単に指定しなさい。 郵便番号価値を貯える特性のコラムはよい例である。
管理スタジオを使用して、データベースを拡大し、新しいsingle-columnテーブルを加えなさい。 コラムPostalCodeを挙げ、木炭(5)としてデータタイプを置きなさい。 あなたが好む挙げ、新しいテーブルのノードを拡大しなさいテーブルを何でも。 アルファ特性を含んでいる記入項目を拒絶する抑制を加えるためには、次をしなさい:
- テーブルの抑制ノードを右クリックし、新しい抑制を選びなさい。
- 数に最初の5つの特性を限るために表現のテキスト・ボックスで(`[0-9] [0-9] [0-9]のようなPostalCode [0-9] [0-9]」)入りなさい。 ディジットの部品[0-9]間の間隔文字を書き入れないように気を付けなさい。)
- CK_PostalCodes_PostalCodeに抑制の既定値の名前を変更しなさい。
- 図A.に示すように「数への限界郵便番号価値のような記述を」、の入れなさい。
- 新しい抑制のダイアログボックスでは、かちりと言う音は加える。
- かちりと言う音の終わり。
- かちりと言う音は標準的なメニューで救う。
Aを計算しなさい
単純式はアルファ特性を拒絶する
今度は、幾つかの記録を加えることに試みることによって抑制を点検しなさい。 最初に、簡単な問い合わせを動かしなさい:
AdventureWorksを使用しなさい PostalCodesを挿入しなさい 価値(「40604」)
郵便番号価値が点検の抑制を満たすと何が起こるか図Bは示す- SQLサーバーは郵便番号価値のための新記録を加える。 今度は、この第2問い合わせを動かしなさい
AdventureWorksを使用しなさい PostalCodesを挿入しなさい 価値(「r0604」)
価値にアルファ特性- 4の代りのr -図C.で見ることができるように、点検の抑制の捕獲物があなたのタイプエラーある。
図B
点検の抑制は5つの数特性を受け入れる
図C
点検の抑制はアルファ特性を含んでいる記入項目を拒絶する
点検をprogrammatically加えなさい
処理SQL (T-SQL)の実行によってテーブルの声明を変えなさいテーブルを作成するか、または後とき点検の抑制をprogrammatically加えることができる。 次のT-SQLは例のテーブルに新しいコラムを加える:
AdventureWorksを使用しなさい テーブルdbo.PostalCodesを変えなさい PostalCodeExtendedの木炭を加えなさい(9) 0 行きなさい テーブルdbo.PostalCodesを変えなさい 抑制CK_PostalCodes_PostalCodeExtendedを加えなさい 点検しなさい(PostalCodeExtendedのような 「[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]」) 行きなさい
最初の声明はPostalCodeExtendedと示される特性のコラムを加える。 次の声明は力が特性に番号を付けること点検の抑制を加えるのに加えの抑制節を使用する。 唯一の相違はこのコラムが9特性の郵便番号価値を期待することである。 同様に手動例に、抑制はアルファ特性を含んでいる価値を拒絶する。
9つの特性少数よりである価値を入れることを試みるまたはアルファ特性を含んでいるとき何が起こるか図Dは示す。 この場合、テーブルは1つの価値だけ、406045555受け入れる。
図D
データタイプおよび抑制は両方無効な価値を拒絶する
ある!
得行からの悪いデータへ包囲を置くことは間違いおよび頭痛を後の方で減らす。 適切なデータタイプを定義することはあなたの最初防衛線である。 データタイプが十分のとき、SQLサーバーの点検の抑制は強力な同盟国である。
まだ規則(抑制への前任者)を使用している遺産のデータベースを改善したら、抑制にそれらを変えなさい。 SQLサーバーのそれに続く版がサポート規則に続くという保証がない。 変換はそれらが絶えている長時間救い、後の方で悩む前に支配する。
抑制の訪問についての詳細を学ぶため:
http://msdn2.microsoft.com/en-us/library/ms190273.aspx
http://msdn2.microsoft.com/en-us/library/ms190273.aspx
スーザンの販売Harkinsはデータベース技術の複数の記事そして本の独立したコンサルタントそして著者である。 彼女の最新の本は「Sybexが出版するマイクGunderloyと」、明白なマイクロソフトSQLサーバー2005を習得している。 マイクGunderloyとの他の共同は「VBAのマイクロソフトのアクセス2003年を」、「マイクロソフト・オフィスシステム2003年へのUpgraderガイド」、の「ICDL検査詰め込むマイクロソフトのアクセスへの2つ」、のおよび「絶対初心者のガイドをQueによる2003 ″すべて自動化している。 現在、スーザンはhttp://www.databaseadvisors.comでデータベースの顧問のための出版物ディレクターとして自ら申し出る。 ssharkins@gmail.comで彼女に達することができる。




