多くの開発者は、「Null」という用語をよく理解しているにもかかわらず、データベースでNull値をうまく扱えずにいます。データの有効性を保全するうえで、Null値に適切に対処することは重要です。Null値を適切に処理するための鍵は、一貫した方法で対処することにあります。ここでは、そのために役立ついくつかの手法を紹介します。
はじめに
多くの開発者は、「Null」という用語をよく理解しているにもかかわらず、データベースでNull値をうまく扱えずにいます。データの有効性を保全するうえで、Null値に適切に対処することは重要です。少なくとも、Null値の処理を誤ると、データの誤りが生じます。この不良なデータを見逃すと、筋の通らないビジネス上の判断を下すことになりかねません。
Nullの概念は、よく誤って解釈されています。専門家によっては、Nullを無または空の値と表現することがあります。言い換えると、そのエンティティに何も値が入力されていないということです。また、Null値を不明な値と表現する専門家もいます。値が存在するかしないかは、今のところ不明だということです。ANSI規格に照らして言うと、Nullはデータ値ではなく、データがないことを示すインジケータです。
それでは、Nullの概念を実際のデータに当てはめてみましょう。例えば、新規顧客のレコードを確認中に、電話番号が表示されているにもかかわらず、ファックス番号や携帯電話番号が表示されていなかったとします。その時点では、新規顧客が実際にファックスや携帯電話を所有していないのか、単にデータを入力し忘れただけなのかは分かりません。適切に処理していれば、このNullに重要な意味を持たせることができたはずですが、単に不明というだけにとどまっています。
Nullを処理する
Nullを処理する方法に、どれが正しくてどれが誤っているという決まり事はありません。重要なのは意識と一貫性です。最初はテーブルレベルから始めます。例えば、適切に正規化されたテーブルでは、通常、電話番号型のNullは除外されます。そもそもユーザーが情報を入力するまでは、ファックス番号や携帯電話番号のレコードは作成されないからです。
しかし、すべてのNull許容型(nullable)を正規化で除外できるとは限りません。そのような場合は、値を必須とすることによって、列レベルでNull値を除外します。さらに、デフォルト値を設定するか、長さがゼロの文字列を許可するかを決める必要があります。しかしそれでも、いくつかはNull許容型の列にぶつかることになるでしょう。ビジネスルール上この問題を避けられない場合もあれば、レガシーアプリケーションでそのような列が使われている場合もあります。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Susan Sales Harkins(Susan Sales Harkins)
独立コンサルタントとして活動するかたわら、データベーステクノロジに関する記事や書籍を執筆。最近の著書は『Mastering Microsoft SQL Server 2005 Express』(Mike Gunderloyと共著、Sybex刊)。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
