MS Access Tips/Sample and VBA and Blog customize etc...

リレーションシップを設定した場合の利点

リレーションシップの利点

Accessでリレーションシップを設定するとどんな利点があるのかわからない、という質問もたまにみかけます。また、必要ないという意見もみかけます。

hatenaはリレーションシップは設定すべきであると思っていますし、設定するようにしています。今回は、リレーションシップを設定する利点について考察してみます。

難易度:

Accessのリレーションシップ

まず、リレーションシップですが、広い意味で、データベースにおいて複数のテーブル間での関連付けを意味する場合もありますが、今回は、Accessのデータベースツールにある「リレーションシップ」機能での設定を指します。

リレーションシップの設定画面

リレーションシップの概要、設定法については、下記のページ等を参照してください。

テーブルのリレーションシップの概要

利点

1.各テーブルの関係を定義づけることができる。
定義がはっきりすることで、開発中に迷子になりにくく、間違いやミスが減る。
開発者以外が、リレーションシップの画面をみれば、一発で各テーブルの関係、構成がわかる。
これは前任者から引き継ぐときに役立ちます。テーブル数が多いシステムを引き継いで、リレーションシップの設定してなかったらゾッとしますね。

2.クエリを新規作成するときに、リレーションシップの定義にそって自動的に各テーブルを結合してくれる。

3.ウィザードでフォームやレポートを作成するときに、複数テーブルからフィールドを引っ張ってきて、自動で、メインサブフォーム形式のフォームやリンク形式のフォーム、グループ化されたレポートを作成することができる。

4.参照整合性を設定すれば、定義に沿わないデータや、整合性に反するデータが入力されるのを防ぐことができる。

5.連鎖更新、連鎖削除を設定すれば、整合性に反するデータを自動で更新、削除してくれる。

こんなところでしょうか。

個人的には、特に1.と4.の利点が大きいと思っています。

逆に設定した場合のデメリットはほとんどないと思います。
たまに、設定すると、入力時にエラーで出て更新できないことがあるとかいう人がいますが、たいていは定義がまちがっているか、設計が間違っているのが原因です。

エラーが出るので、とその原因を追求せずに、安易にリレーションシップを外して入力を続けると、整合性に反したデータの入力を許すことになります。これを放置すると後に取り返しのつかないことになります。

参照整合性、連鎖更新、連鎖削除を設定せずに、自前のコードで整合性チェックなどの同様の機能を実装するという選択肢もありますが、リレーショナルデータベースの仕組みの高度な理解とスキルが必要ですし、コード量が大幅に増大することになります。

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/460-dac627ee
該当の記事は見つかりませんでした。