【テーブル】具体的なテーブル作成手順

テーブル

今回の記事では、テーブル作成の手順を解説していきます。

テーブル作成にあたり、まずはテーブルの設計を行う必要があります。Accessにおけるテーブル設計はこちらの記事で詳しく解説していますので、まずはこちらの記事を確認後に当記事の作業を始めていただければより理解が深まります。

それでは、実際にテーブルを作成しながら、その手順を一緒に確認していきましょう。

【テーブル設計】今回作成するテーブルの要件

今回は社員を管理するための「社員管理テーブル」を題材にテーブルを作成していきます。必要となるフィールドなどの”要件”は下表の通りです。今回は3つのテーブルに分割して作成します。

先生
先生

下表のようなものを設計書(又は定義書や仕様書)といいます。必ず設計書を用意してからテーブル作成するクセをつけよう

作成するテーブル

社員基本情報マスタ

社員名や生年月日、電話番号といった社員の基本的な情報を管理するテーブルです。

所属マスタ

会社の組織を管理するテーブルです。

役職マスタ

役職を管理するテーブル

【テーブル作成】テーブル作成の手順解説

それでは設計書に基づいて実際にテーブルを作成していきましょう。空のAccessファイルを作成した後からの説明です。

フィールド名とデータ型の入力

1.メニューバーの「作成」選択後、「テーブルデザイン」をクリックします。

2.空のテーブルデザイン画面が表示されます。この画面に「社員基本情報マスタ」のフィールド名やデータ型を入力していきます。

3.入力した結果がこちらです。フィールド名は手入力、データ型はプルダウンから選択します。説明欄には必要に応じてフィールドの説明を適宜入力しておきます。

momonngacat
momonngacat

設計時の”意図”を伝えるうえでも、なるべく説明も加えておこう!

フィールドサイズの設定

1.各フィールド名にカーソルを移動すると、画面下部に当該フィールドに対するプロパティ設定画面が開き、様々な設定を行うことができます。ここでは設計書に基づき”フィールドサイズ”欄に「10」を設定します。

本設定を行うことで社員コード欄には全角、半角問わず10文字しか格納できません。この会社では社員に割り当てる固有コードが10桁に固定されているため10としています。こうすることで桁を多く入力しすぎる等の誤入力を防止することもできます。

2.同様に”社員名”、”所属コード”、”役職コード”もフィールドサイズを設定します。

主キーを設定する

1.次に主キーを設定します。「社員基本情報マスタ」の主キーは”社員コード”に設定しますので、まずは社員コードにカーソルを移動します。その状態で①の主キーボタンをクリックすると、②の部分に鍵マークが反映しますので、これで主キー設定完了です。

主キーを設定したフィールドには以下の2つの制約が自動的に適用されます。
データの重複登録の禁止: 同じ値のデータが複数登録されることを防ぐ。
Null値(値が存在しない)の禁止: 必ず何らかの値が入力されるようにする。

社員コードを主キーに設定したことにより以下の事象を防止することができます。
・同じ社員コードが重複して登録されると、一意に特定できなくなり管理上の混乱を招く。
・社員コードが空欄のまま登録されると、その社員を特定することができなくなる。

このように、主キーは意図しないデータの重複や未入力を防ぎ、システム的にデータの整合性を確保することができます

インデックスを設定する

1.インデックスを設定する対象フィールドがある場合に設定します。今回は”所属コード”と”役職コード”にインデックスを設定します。設定方法はフィールドサイズの設定と同様にプロパティ画面から行いますので、まずは”所属コード”にカーソルを移動しプロパティ画面を開きましょう。インデックス欄は「いいえ」「はい(重複あり)」「はい(重複なし)」の中から選択する形式となっています。

2.今回は重複する値も格納しますので「はい(重複あり)」を選択しますが、実は初期値で自動的に設定されていました。Accessにはある条件に基づき自動でインデックスが設定される仕組みがあります。

では、自動設定される2つの仕組みを説明します。

オプションメニューによる条件設定

Accessのオプションメニューにインデックスの条件設定を行っておくことで、条件に合致した場合にインデックスが自動設定されます。

以下のメニューを開きます。
ファイル→オプション→オブジェクトデザイナー→インデックスを自動作成するフィールド

”インデックスを自動作成するフィールド”欄には「ID」「キー」「コード」「番号」というキーワードが初期値設定されています。フィールド名にこれらのワードが含まれている場合にインデックスが自動設定されます。なお、条件は追加することもできますし、削除することもできます。

今回はこの設定に基づき、”所属コード”、”役職コード”に加え”電話番号”にもインデックスが設定されたという訳です。

主キーは自動的にインデックス設定

主キーに設定したフィールドは自動的にインデックスが設定されます。前述した社員コードに主キーを設定した時点で「はい(重複なし)」が設定されます。前述したとおり主キーはデータの重複が許されませんので「重複なし」となります。

インデックスを設定することでデータ検索等が高速化します。ただし、インデックス情報をデータベース内に保持するため、多くのフィールドに設定しすぎると、ファイルサイズの肥大化等につながります

入力必須項目を設定する

1.入力漏れを防止するため、未入力状態のフィールドを許可するかどうかの設定を行います。各フィールドのプロパティ画面を開き「値要求」にカーソルを移動させます。

2.初期値は「いいえ」になっていますので、必須にする場合は「はい」を選択します。社員基本情報テーブルの場合は”削除フラグ”、”備考”以外は「はい」を設定します。

sachiko
sachiko

イメージ的にはアンケートフォームで入力必須と任意の項目を設定するような感じね!

テーブルの保存

ここまでの作業で、社員基本情報マスタの設計書に定めた設定作業が完了しましたので、一旦テーブルを保存しておきましょう。テーブルデザイン画面の右上にある「×」をクリックしてみましょう。

ダイアログが表示されますので「はい」をクリックします。

テーブル名を入力します。ここでは「M_社員基本情報マスタ」と命名し「OK」をクリックします。

なお、テーブル名をはじめとした各オブジェクトの名前の付け方については、こちらの記事を参考にしてください。

これで社員基本情報マスタテーブルが作成できました。同様の手順で「所属マスタ」「役職マスタ」も作成しましょう。

データ入力を行う

完成したテーブルにデータを入力してみましょう。「M_社員基本情報マスタ」をダブルクリックしてテーブルを開きます。

空欄のテーブルが表示されますので、適当でよいので1件づつ入力していきます。3つのテーブルにサンプルデータを入力した状態は以下のとおりです。

テーブル同士の連結

実は設計書に記入した内容でまだ説明していない部分がありました。それは「FK」と書いている部分です。これは”外部キー(Foreign Key)という意味で、テーブル同士を連結するキーとなります。

完成したテーブルを眺めたとき「テーブルを分割せず社員基本情報テーブルに所属名も役職名も含めていいのでは?」という疑問が生じた方もいらっしゃるのではないでしょうか?

役職名などの各レコードに繰り返し登場するデータは、別のテーブルに格納しそれらを連結することで一体的に表示する方法がセオリーとなっています。その連結するためのキーが外部キーというものです。このようなテーブル分割手法を「正規化」といいます

正規化の詳細については、こちら↓の記事で解説しています。

正規化により分割したテーブルを関連付ける方法を「リレーションシップ」と言います。リレーションシップに関する詳細はこちら↓の記事で解説しています。

まとめ

今回の記事では、実践編としてテーブルの作成手順を解説いたしました。テーブルはただのデータ格納機能だけでなく、入力漏れや誤入力などの発生を防ぎ、正しいデータを格納するための仕組み(フィールドサイズ、主キー、値要求など)が備わっていることをご理解いただけたことと思います。

タイトルとURLをコピーしました