Accessはリレーショナルデータベースソフトです。
Accessでテーブルを作成したら、次はテーブル間に「リレーションシップ」の設定をしていきましょう。
リレーションシップの設定とは、異なるテーブル間の共通フィールドを紐づけてテーブルどうしを関連付けることをいいます。
ポイント
共通フィールドとは?
共通フィールドとして関連付ける場合、紐づけるフィールドどうしの「フィールド名」は一致していなくても可能ですが、データ型とフィールドサイズなどのプロパティは同じである必要があります。
1.リレーションシップを設定するメリット
Accessはリレーショナルデータベースソフトです。
リレーションシップを設定するとどのようなメリットがあるかみていきます。
例えば「売上データ」をみたい場合、リレーションシップを設定しないと次のようになります。
<設定前>
「T売上データ」↓↓
ココがダメ
「顧客CD」や「商品CD」しかわからない。
例えば、「商品名」や「単価」をみたい場合には、「T商品マスター」を開く必要があります。
<リレーションシップの設定をすると>↓↓
「T売上データ」の「商品CD」と「T商品マスター」の「商品CD」は同じ「共通フィールド」なのでリレーションシップを設定。
↓
すると、2つのテーブルを1つのテーブルのように繋げてクエリという「仮想テーブル」を作成できる。
<設定後>
紐づけた「T商品マスター」の「商品CD」から、商品名や単価がを表示させることができました。
ココがおすすめ
このように、リレーションシップを設定すると、互いに関連付けたテーブルどうしを結合して新たな仮想テーブルを作成することができます。
その他にも、サブデータシートを表示できるメリットがあります。
2.リレーションシップの設定
では、実際にリレーションシップの設定をしていきます。
今回は、徹底解説①②で作成した3つのテーブルに、「T顧客別金融機関マスター」を新規作成し、次の4つのテーブルに、設定をしていきます。
ポイント
- T商品マスター
- T売上データ
- T顧客マスター(東京)
- T顧客別金融機関マスター
操作
リレーションシップは、「リレーションシップウィンドウ」を表示して作成します。
①《データベースツール》タブー《リレーションシップ》グループー《リレーションシップ》をクリック。
②《テーブルの表示》ダイアログボックスー必要なテーブルを選択ー《追加》をクリック。
※《テーブルの表示》ダイアログボックスが表示されない場合には、《テーブルの追加》をクリック。
③各テーブルのフィールドリストが表示されるので、リストのタイトルバーの部分をドラッグして設定しやすい並びに調整しておきます。
↓
④各テーブル間の「共通フィールド」のフィールド名からフィールド名に向かってドラッグし、リレーションシップの設定をします。
⑤手を離すと「リレーションシップ」ダイアログボックスが表示ー《参照整合性》に☑ー《作成》をクリック。
ポイント
参照整合性とは!
参照整合性を設定すると、リレーションシップを設定した2つのテーブル間のレコードに矛盾が生じないようにしてくれます。
例えば、片方のデータを誤って変更したり、削除したりできないようになります。
⑥2つのフィールドリストが次のように線で結ばれ、商品CDでテーブルが関連づいたことが確認できます。
ポイント
フィールドリストの間に引かれた線を結合線といいます。
ダブルクリックすると、再度「リレーションシップ」ウィンドウを表示することができます。
Delキーをおせば、削除できます。
⑦同じく、その他のテーブル間にもリレーションシップの設定をしていきます。
3.リレーションシップの種類
リレーションシップを設定すると表示される結合線には、「1」と「∞」のマークが表示されます。
このマークはリレーションシップの種類を現しています。
リレーションシップの種類は、「一対多」「一対一」「多対多」の3つの種類があります。
①一 対 多
「一対多」では、片方のテーブルの1レコードが、もう片方のテーブルの複数のレコードに対応しています。
「1」側のテーブルを「主テーブル」といい、一意のデータしかありません。
「多」側のテーブルを「リレーションテーブル」といい、重複データがあります。
※通常、「主キー」を設定したフィールドを関連づけると、そのテーブルが「主テーブル」になります。
② 一 対 一
「一対一」では、片方のテーブルの1レコードが、もう片方のテーブルの1レコードだけに対応しています。
主キーどうしでフィールドを結合すると、1対1のリレーションシップになります。
ポイント
通常、リレーションシップは、1つの主キーに対する内容を1つのテーブルに作成します。
ですが、一対一のリレーションシップは、フィールド数が多い場合やセキュリティを保つなどの理由で、複数のテーブルに分けて保存したい場合などに使われます。
⇕ 一対一
③ 多 対 多
「多対多」のリレーションシップは、直接関連付けた2つのテーブル間には、存在しません。
あるテーブルを媒介として、そのテーブルと一対多リレーションシップが定義された「一」側のテーブルどうしの関係です。
4.サブデータシートの表示
リレーションシップを設定した「一側」のテーブルをデータシートビューで表示すると、「一側」のテーブルに対する「多側」のテーブルをサブデータシートに表示することができます。
5.参照整合性のルール
共通フィールドで紐づいたテーブルどうしに、参照整合性を設定すると、次のようなルールが設定されます。
①主テーブルに存在しない共通フィールドは、リレーションテーブルに入力することはできない。(Null値は可能)
<主テーブル>
<リレーションテーブル>
②主テーブルの共通フィールドを変更・削除する場合、既にそれがリレーションテーブルに入力済みだと変更・削除ができない。
<リレーションテーブル>
<主テーブル>
注意ポイント
ただし、次の「連鎖更新」「連鎖削除」の設定をオンにすると、参照整合性の規則により禁止されている、変更や削除を可能にします。
☑フィールドの連鎖更新
主テーブルの共通フィールドの値を変更すると、リレーションテーブルの対応するフィールドの値も全て変更されます。
☑フィールドの連鎖削除
主テーブルの共通フィールドの値を削除すると、リレーションテーブルの対応するレコードも全て連動して削除されます。
最後までお読みいただきありがとうございました。
リレーションシップの設定を理解したら、クエリを作成して必要なデータだけを表示する仮想テーブルを作成していきましょう。