SHOEISHA iD

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

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年夏号(EnterpriseZine Press 2024 Summer)特集『ニューリーダーに訊く──2024年春、CxOに就任した2人が目指す姿とは』

japan.internet.com米国最新IT記事

DB構築時の10大ミス


データベースの開発、運用はどんなアプリケーションにもついてまわるものですが、多くのプロジェクトで繰り返される「ミス」があります。本稿では特に繰り返されるミス、その中でも重要なものを10件取り上げてみました。

はじめに

 流行りすたりの激しいソフトウェア開発の世界でも、昔からほとんど変わらっていないものがいくつかあります。その1つがデータベースの運用の仕方です。多くの開発者はAJAX Webインターフェイスや最新の目を見張るようなWindowsユーザーインターフェイスを積極的に採り入れていると思いますが、その陰で、今もなお10年前と同じようにデータベースとのデータのやりとりに難儀しているのではないでしょうか。さらに驚くことに、開発者は古き良きWindows 95以前の時代と同じようなミスを未だに繰り返しています。もしかしたら、我々はデータベースの使い方をなんとなく覚えただけで、データベースの何たるかを本当には理解していないのではないでしょうか。ともかく、私がこれまで再三目にしてきたミス、その中で特に重要と思われるものを私なりに列挙してみました。

データベースの選択を誤っていないか

 データベースは素性がどれも同じというわけではないので、データベースを扱うときは目的にかなったデータベースを選ぶことが大切です。SQL Serverで処理すれば朝飯前なのにAccessデータベースで無理矢理巨大なデータセットを処理しようとする、あるいは高価なSQL Serverを導入したのに扱うデータはたった数百行しかない――そんな例を私は幾度となく目にしてきました。

 大まかに言って、今日利用できるデータベース製品は3つの階層に分類できます。第一は、小規模な業務に適したデスクトップおよび組み込みタイプのデータベースです。第二は、数ギガバイトのデータを扱うのに向いている「エクスプレス」版のデータベースで、これが市場の中心を占めます。第三は、SQL Server、Oracle、DB2のような企業向けの本格的なデータベースで、データベースに投入できるデータであれば、たいていの処理をこなすことができます。何をするにせよ、まずは将来のストレージのデータ量を現実的に見積もり、使用するストレージ製品を選ぶ必要があります。

採用するデータベースの種類が多すぎないか

 ODBC、JDBC、OLE DBといったAPIによって、データベースの独立性という概念が広まってきました。これはさまざまな種類のデータベースをデータストレージとして接続できるようにアプリケーションコードを記述するというアイデアですが、少々問題もはらんでいます。開発チームがデータベースの独立性の罠にはまり、すべてのSQLステートメントをあらゆるデータベースの最小公倍数的な表現形式に変換するレイヤを開発しようなどと考えてしまうことがあるからです。これは同時に、いずれかのデータベースで提供される高度な機能を切り捨てることを意味します。

 彼らの主張としては、いつか、どこかの顧客がOracleやDB2、あるいはFoxProなどに切り替えたいと思うかもしれないので、今のうちに用意しておくべきだということなのでしょう。しかし、あまり実際的ではありません。新しい製品に取り組むときは、ストレージエンジンを入念に選び、それに合わせてコードを書くべきです。まともな製品を選んでいる限り、ユーザーはこちらが指定したデータベースをインストールするはずですし、そうすれば、本当にやってくるかどうかもわからない「いつか」のために無駄な労力を割かなくて済みます。

対象データを本当に理解しているか

 ほとんどの顧客番号は6桁だが一部は7桁であるとか、学生の受講登録時には本人の意思により社会保障番号の登録を行わない場合があるので当該フィールドをNULL受け付け可にする必要があるなど、データにはさまざまなルールがあります(このようなルールを見つけるたびに1ドルもらえるという制度があれば今ごろ私は大金持ちのはずですが...)。

 データベースの設計は、ビジネスルールをまったく無視して行えるものではありません。データを実際に使うユーザーの話を聞き、彼らにうるさくつきまとって、各フィールドの必要なサイズ、各フィールドに適用されるルール、各フィールドのデータ型、各フィールドを更新できる人、その他諸々の情報を確実に入手することが何にもまして大切です。これを怠ると、後から作業のやり直しが発生して無駄なコストがかかります。その後おそらく、「見た目はいいんだけどね...」という言葉を聞きたくなくなるでしょう。

次のページ
Excelのようなものと単純に考えていないか

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

  • Facebook
  • X
  • Pocket
  • note
japan.internet.com米国最新IT記事連載記事一覧

もっと読む

この記事の著者

Mike Gunderloy(Mike Gunderloy)

開発関連の20冊以上の著作と多数の投稿記事がある。ワシントン州のコンサルタント会社Adaptive Strategyにてシニアテクノロジパートナーを務める。プログラムを書いていないときは、ワシントン州東部の自分の農場でのんびり庭仕事をしている。

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/231 2007/12/06 15:42

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング