FC2ブログ

テーブル設計でまずやること

 データベースを設計する手順としてまずやらないといけないのはテーブル設計です。

 もちろん本来なら、その前に要件定義というものをして機能概要をまとめなければいけませんが、その手法、フォーマットにもいろいろあって、これがまたややこしい話にもなっていくのですが、とりあえずACCESSではいわゆる設計工程を具現化するツールではありませんので、ここでは割愛します。

 ただ、テーブルの設計の段階でかなり何をやりたいかという機能面での考察を深めていく事は出来るので、この工程をじっくりとやっていきましょう。

 EXCELですと、いきなり思いついたままセルにデータを書き込んでいけばそれなりの住所録なり、顧客台帳なりが出来てしまいますが、ACCESSですとそう単純にはいきません。まずテーブルの設計という工程があります。

 それではテーブルを設計するとはどういう事か。実はこれが最初であり最後まで尾を引く問題で、データベースの業務システムを構築する上でもっとも難易度が高く、経験を要するところではないかと感じます。というのは今後作成するフォームなり、クエリーなり、レポートは全てこのテーブルに依存し、影響を強く受け、データが蓄積されたらされたで後の変更が困難になるという性質のものだからです。


 つまりテーブルを設計するにあたっては以下の要諦を考慮に入れなければならないのです。

1.先々の変更を想定した拡張性(計画性)
2.後々変更があった場合も対応できる冗長性

1.に関しては要するに今現在だけでなく、将来必要となるであろう項目も含めて予め管理する項目として洗い出しておくという事です。これはなかなか言うは易しですが、昨今の先が見えない時代にあって難しい作業です。とはいっても便利な反面、後で変更するのが困難であるというデータベースの特性からいって致し方なく、数年先せめて半年先の状態を念頭に置いて設計する必要があります。

2.に関してはどんなに綿密に計画を練り、設計したとしても、その通りに行かないのが現実です。そうなった場合にその時々の変化にある程度柔軟に対応できるような仕組みに予め仕込んでおく事も必要なのです。つまり、設計した時点では無駄だと思えても将来役に立ったという事はよくあることですが、データベースの設計でもいえる事なのです。人工衛星「はやぶさ」が無事地球にたどり着けたのもシステムに2重3重に施された「冗長性」が功を奏したという話です。

 さてテーブルを設計するに当たっては以下の作業が必要になります。

1.管理したい情報の洗い出し。
2.洗い出した項目の関連づけ。
3.各項目の属性の決定。

1.2.の作業を通してACCESSではテーブル名、フィールド名を決めていきます。そして3.の作業を経てデータ型・データ長などが決まるのです。

 例えば生徒名簿を例にとって考えましょう。考えられる情報項目を列記していきます。(昨今は個人情報の保護がうるさいのでどこまで情報が集められるか疑問ですが)

名前、性別、生年月日、学年、クラス、郵便番号、住所、TEL、携帯電話、FAX、メールアドレス、成績、家族構成等々

 更に一つ一つの項目をどこまで細分化するか検討する必要があります。例えば「住所」一つにしても都道府県、市区町村、町名、ビル名まで項目を分けて管理するのか。又、家族構成は続柄、名前だけなのか各々の構成員の情報をどこまで管理するのか。これは実際に保有するデータの粗さ・細かさで判断する場合もあるし、これから整備していくのであれば収集する方法、実現可能性まで考慮した方がいいと思います。

 大きな情報のかたまりからより詳細な情報のかたまりへ。その最小単位がフィールドだと思って下さい。ある意味を持ったフィールドの集合体がテーブルです。その「意味」付け次第でテーブルの構成要素が決まってきます。

 次回では生徒名簿の管理情報の例を紹介します。

関連記事
スポンサーサイト



テーマ : データベース
ジャンル : コンピュータ

コメントの投稿

非公開コメント

No title

四年目のエンジニアです。
今回、ER図を初めて作成するにあたって、エンティティの洗い出しなど、非常に苦戦をしてました!
色々なサイトを参考にしたのですが、いまいち概念などが解らず困ってたのですが、このサイトの記述をみて、理解できました!!

非常に解りやすく、とても参考になりました!
ありがとうございます。
最新記事
全記事表示リンク

全ての記事を表示する

月別アーカイブ
カテゴリ
お問い合わせ
まずはこちらのフォームより御一報下さい。

名前:
メール:
件名:
本文:

検索フォーム
RSSリンクの表示
アクセスランキング
[ジャンルランキング]
コンピュータ
677位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
96位
アクセスランキングを見る>>
ブログランキング

FC2Blog Ranking