SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

SQL ServerでNull値に対処する

Null値を適切に処理するための一貫した方法とは

  • このエントリーをはてなブックマークに追加

 多くの開発者は、「Null」という用語をよく理解しているにもかかわらず、データベースでNull値をうまく扱えずにいます。データの有効性を保全するうえで、Null値に適切に対処することは重要です。Null値を適切に処理するための鍵は、一貫した方法で対処することにあります。ここでは、そのために役立ついくつかの手法を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 多くの開発者は、「Null」という用語をよく理解しているにもかかわらず、データベースでNull値をうまく扱えずにいます。データの有効性を保全するうえで、Null値に適切に対処することは重要です。少なくとも、Null値の処理を誤ると、データの誤りが生じます。この不良なデータを見逃すと、筋の通らないビジネス上の判断を下すことになりかねません。

 Nullの概念は、よく誤って解釈されています。専門家によっては、Nullを無または空の値と表現することがあります。言い換えると、そのエンティティに何も値が入力されていないということです。また、Null値を不明な値と表現する専門家もいます。値が存在するかしないかは、今のところ不明だということです。ANSI規格に照らして言うと、Nullはデータ値ではなく、データがないことを示すインジケータです。

 それでは、Nullの概念を実際のデータに当てはめてみましょう。例えば、新規顧客のレコードを確認中に、電話番号が表示されているにもかかわらず、ファックス番号や携帯電話番号が表示されていなかったとします。その時点では、新規顧客が実際にファックスや携帯電話を所有していないのか、単にデータを入力し忘れただけなのかは分かりません。適切に処理していれば、このNullに重要な意味を持たせることができたはずですが、単に不明というだけにとどまっています。

Nullを処理する

 Nullを処理する方法に、どれが正しくてどれが誤っているという決まり事はありません。重要なのは意識と一貫性です。最初はテーブルレベルから始めます。例えば、適切に正規化されたテーブルでは、通常、電話番号型のNullは除外されます。そもそもユーザーが情報を入力するまでは、ファックス番号や携帯電話番号のレコードは作成されないからです。

 しかし、すべてのNull許容型(nullable)を正規化で除外できるとは限りません。そのような場合は、値を必須とすることによって、列レベルでNull値を除外します。さらに、デフォルト値を設定するか、長さがゼロの文字列を許可するかを決める必要があります。しかしそれでも、いくつかはNull許容型の列にぶつかることになるでしょう。ビジネスルール上この問題を避けられない場合もあれば、レガシーアプリケーションでそのような列が使われている場合もあります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
問題が起きる前にNullを見つける

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Susan Sales Harkins(Susan Sales Harkins)

 独立コンサルタントとして活動するかたわら、データベーステクノロジに関する記事や書籍を執筆。最近の著書は『Mastering Microsoft SQL Server 2005 Express』(Mike Gunderloyと共著、Sybex刊)。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4381 2009/09/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング