12:00データベースの開発、運用はどんなアプリケーションにもついてまわるものですが、多くのプロジェクトで繰り返される「ミス」があります。本稿では特に繰り返されるミス、その中でも重要なものを10件取り上げてみました。はじめに流行りすたりの激しいソフトウェア開発の世界でも、昔からほとんど変わらっていないものがいくつかあります。その1つがデータベースの運用の仕方です。Webインターフェイスや最新の目を見張るようなWindowsユーザーインターフェイスを積極的に採り入れていると思いますが、その陰で、今もなお10年前と同じようにデータベースとのデータのやりとりに難儀しているのではないでしょうか。95以前の時代と同じようなミスを未だに繰り返しています。したら、我々はデータベースの使い方をなんとなく覚えただけで、データベースの何たるかを本当には理解していないのではないでしょうか。私がこれまで再三目にしてきたミス、その中で特に重要と思われるものを私なりに列挙してみました。データベースの選択を誤っていないかデータベースは素性がどれも同じというわけではないので、データベースを扱うときは目的にかなったデータベースを選ぶことが大切です。Serverを導入したのに扱うデータはたった数百行しかない――そんな例を私は幾度となく目にしてきました。大まかに言って、今日利用できるデータベース製品は3つの階層に分類できます。第一は、小規模な業務に適したデスクトップおよび組み込みタイプのデータベースです。第二は、数ギガバイトのデータを扱うのに向いている「エクスプレス」版のデータベースで、これが市場の中心を占めます。Server、Oracle、DB2のような企業向けの本格的なデータベースで、データベースに投入できるデータであれば、たいていの処理をこなすことができます。何をするにせよ、まずは将来のストレージのデータ量を現実的に見積もり、使用するストレージ製品を選ぶ必要があります。DBといったAPIによって、データベースの独立性という概念が広まってきました。これはさまざまな種類のデータベースをデータストレージとして接続できるようにアプリケーションコードを記述するというアイデアですが、少々問題もはらんでいます。開発チームがデータベースの独立性の罠にはまり、すべてのSQLステートメントをあらゆるデータベースの最小公倍数的な表現形式に変換するレイヤを開発しようなどと考えてしまうことがあるからです。これは同時に、いずれかのデータベースで提供される高度な機能を切り捨てることを意味します。彼らの主張としては、いつか、どこかの顧客がOracleやDB2、あるいはFoxProなどに切り替えたいと思うかもしれないので、今のうちに用意しておくべきだということなのでしょう。実際的ではありません。新しい製品に取り組むときは、ストレージエンジンを入念に選び、それに合わせてコードを書くべきです。まともな製品を選んでいる限り、ユーザーはこちらが指定したデータベースをインストールするはずですし、そうすれば、本当にやってくるかどうかもわからない「いつか」のために無駄な労力を割かなくて済みます。対象データを本当に理解しているかほとんどの顧客番号は6桁だが一部は7桁であるとか、学生の受講登録時には本人の意思により社会保障番号の登録を行わない場合があるので当該フィールドをNULL受け付け可にする必要があるなど、データにはさまざまなルールがあります(このようなルールを見つけるたびに1ドルもらえるという制度があれば今ごろ私は大金持ちのはずですが...)。データベースの設計は、ビジネスルールをまったく無視して行えるものではありません。データを実際に使うユーザーの話を聞き、彼らにうるさくつきまとって、各フィールドの必要なサイズ、各フィールドに適用されるルール、各フィールドのデータ型、各フィールドを更新できる人、その他諸々の情報を確実に入手することが何にもまして大切です。これを怠ると、後から作業のやり直しが発生して無駄なコストがかかります。その後おそらく、「見た目はいいんだけどね...」という言葉を聞きたくなくなるでしょう。※この続きは、会員の方のみお読みいただけます(登録無料)。会員登録(無料)ログインはこちら※この続きは、会員の方のみお読みいただけます(登録無料)。著者プロフィールjapan.internet.com(ジャパンインターネットコム)japan.internet.comは、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。Gunderloy)開発関連の20冊以上の著作と多数の投稿記事がある。Strategyにてシニアテクノロジパートナーを務める。プログラムを書いていないときは、ワシントン州東部の自分の農場でのんびり庭仕事をしている。押さえておくべき7つの原則254企業のデジタルシフトはIoT、5G、サブスクリプションが牽引。Links主要テーマから探すIT戦略/企画ITインフラセキュリティデータベースデータ活用システム構築システム運用モバイル活用クラウド活用ワークスタイル変革CRM/コラボレーション製品/サービス×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。パソコン「EnterpriseZine」(エンタープライズジン)は、翔泳社が運営する企業のIT活用とビジネス成長を支援するITリーダー向け専門メディアです。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。