サイトアイコン writers way

データベース設計の基礎概念!外注する前に理解しておくべきこと

業務の基幹となるのがデータベースシステムです。新たにデータベースの構築をお考えの場合、最低限おさえておきたいデータベース設計の基本を解説します。また、設計を外注する場合の注意点についてもご説明します。

データベースを発注する前の準備とは?設計に必要なデータ整理

Data Connection Database Backup Graphic Diagram Words

データベースを含んだシステムを外部に発注する場合、自社側でも最低限想定しておくべき事柄があります。データベース設計の初歩の部分についてご説明します。

データベース設計には論理設計と物理設計がある

データベース設計と一口に言いますが、大きく分ければ論理設計と物理設計があります。論理設計とはデータベースに格納するデータ項目・データを格納するテーブル構造を設計するものです。データベースと聞いてまず思い浮かべる部分です。

物理設計というのは、データベースに格納するデータのサイズ・件数・アクセス件数を想定して設計することです。データベースサーバーのハードディスクの容量や、搭載するメモリ量などをそこから割り出します。

論理設計に必要なのは、管理するデータ項目

論理設計で大切なのは、データベースを構成するデータ項目の割り出しです。
例えば、顧客データを管理する必要があるとすれば、「顧客名」・「電話番号」・「住所」などが必要になります。そういう管理したい項目を一通り洗い出します。

また、具体的なデータテーブルの設計は依頼したプロに任せられますが、データ同士の関係性を伝える必要があります。大きなデータの塊をまず考えて、そこから更に細かい項目を洗い出して階層化しておけば伝えやすくなります。

このようなデータがある場合、社員データの社員番号と売上データの担当社員番号は同じものを指します。

また、売上データの商品コードと商品データの商品コードも同じものを指しています。このようにデータは相互に関連しあうものなので、そのつながりを明確にしておきます。

物理設計に必要なのはデータ量・アクセス回数の見積もり

物理設計に必要な要素で発注側が考えておくべき内容は、各データの予測件数です。プロが設計する時は、予測件数に余裕を付加して計算しますので、現実的な数値を想定しておきます。

また、1日あたり・時間あたりのアクセス件数、アクセスが特に集中する時の件数も検討して予測件数をもとめておきましょう。特に混み合う時間帯や、曜日などがあればそれも情報として必要です。

これらの情報は、データベースサーバーのハードウェア構成を考えるために重要な情報です。ハードディスクの容量、搭載するメモリ容量がどのくらい必要なのかここから導きだします。

データベースの論理設計とはデータのモデリング

Database System Server Network Information Data Concept

データベースの論理設計はデータのモデリングと言われます。無駄のないすっきりとしたデータモデリング設計の作業はプロに任せられます。しかし、発注側もできればある程度のモデリングの基礎を理解しておきたいものです。

こちらの想定する最適なデータ設計がされているかをレビューするために役に立ちます。学んでおくと役に立つモデリングの基礎をピックアップしてみました。

データを管理するために守るべき法則がある

データを正しく管理するために守るべき法則というものがあります。
基本的な法則を例としてあげてみます。

主キーがないとデータを抽出する時にその1件のデータを抽出することができません。

顧客テーブルを作成する時に「会社名」のように変わる可能性があるものを主キーにはできません。顧客社名を変更した時にデータを引き継ぐことができなくなります。

社員テーブルに「社員番号」・「社員名」と言う項目があり、売上テーブルにも「社員番号」・「社員名」という項目を置くのは避けましょう。

社員テーブルで社員名を変更しても、売上テーブルには反映されないという齟齬が生まれます。この場合、売上テーブルには「社員番号」があれば事足ります。

テーブル設計が適切かどうかを判断するための概念として、正規化という概念があります。第1正規形から第5正規形までがあり、一般的には第3正規形まで満たしていればOKです。

ここではこういう概念があるので参考のしてくださいとあげるにとどめておきます。気になったら「データベース 正規化」で検索してみてください。

効率的に必要なデータを引き出すために

効率的にデータを引き出すためには主キーの設定が適切であることが重要です。また、データを取得する時は複数のテーブルを関連付けながら取り出しますが、あまり関連するテーブルが多くなりすぎると処理スピードの低下につながります。

データの取得スピードをあげるためにあえて正規化しない場合もあります。

設計をプロに任せるために、管理したいデータ項目を全て洗い出す

設計をプロに任せるために一番大切なのは、データベースで管理したいデータを全て洗い出すことです。データベースの設計は任せられても、データそのものはユーザー側の立場でしかわかりません。

洗い出しと関連性が明確に指示できれば、そこから先は任せることが可能です。

データベースの物理設計は量の見積もりが重要

データベースサーバーのハードウェア構成を検討するためには、物理設計が重要です。

実際にデータ格納に必要なディスクサイズはDBMSに依存する

データ件数やサイズを推測できたとして、実際にどれくらいのディスク容量が必要なのはDBMS(データベース管理システム)に依存します。

使用するDBMSが確定したら、データ件数を元にデータベース設計を担当する技術者と相談して導入するサーバーのスペックを決めるのがおすすめです。

データベースを読み書きする回数も見積もりが必要

データベースは、非常に多くのデータを扱うことができます。アクセス数が多いことが見込まれている場合は、データベースサーバーのCPUやメモリなどのスペックが高いものが必要になります。

アクセスの内容も洗い出しておきましょう。端末側ではどんな形でデータを読み込み表示する必要があるのか、データの更新はどんなタイミングで発生するのなかが必要です。また、月次締めなどの大掛かりなトランザクション処理を行うタイミングも決めておきます。

また、正規化のような綺麗なデータ構造重視か、速度重視かでテーブル設計から変わってきますので、アクセス数及びどんな処理が多いのかはしっかり設計前に伝えておきましょう。

見積もりがあればあとはプロに任せられる

データ項目及び関連性をしっかり洗い出し、データ件数やアクセス数の見積もりができていれば、あとはプロに設計を任せることができます。もちろん、フェーズごとにレビューをしてすり合わせることは重要です。

データベース外注が成功する鍵は互いの意識すり合わせ

データベース構築を外部に発注する場合は設計段階でしっかり意識をすり合わせておくことが重要です。また、こちらの意図を汲み取って設計してくれる、信頼できるエンジニアとの出会いも成功のキーポイントになります。

綺麗なデータテーブル設計はプロでなくても理解しやすい

データベースの最重要ポイントはデータの構造設計です。関連性を整理して、綺麗に設計されていれば、レビューの時にもわかりやすくなっています。

もし、同じデータが複数テーブルに存在しているなど疑問を感じる部分があったら、遠慮せず説明を求めましょう。速度などを考慮してあえてそういう設計になっていれば、きちんと疑問に答えてもらえるはずです。

設計はプロに任せていても、そのデータの意味合いを理解しているのはユーザー側です。設計段階で納得いくまでレビューをしておきましょう。

設計期間は意識すり合わせ期間も含めて見積もろう

データベースシステムは一度作れば頻繁に取り替えるものではありません。
そのため、発注する側は不慣れなことが多いと思われます。設計が進んでからデータや、必要なデータ抽出処理が抜けていたということも起こりかねません。

設計期間はコストと期間の許す範囲でなるべく長めにとっておくことをおすすめします。レビュー回数を増やして、エンジニアとしっかり必要な機能やデータ構成のすり合わせをしておきましょう。

信頼できる技術者と出会えるクラウドソーシングというサービス

データベースシステムの開発を外注する場合は、技術力や経験ももちろんですが、こちらの意図を汲み取ってくれ意思疎通のしやすいエンジニアであることも大切です。

様々なニーズに合致するエンジニアと出会う場としておすすめなのが、クラウドソーシングサービスです。「こんな仕事を依頼したい」企業と「こんな仕事をしたい」フリーランスをマッチングするためのサービスです。

モバイルバージョンを終了