テーブルは、すべての情報を保持するため、データベース内で不可欠なオブジェクトです。 たとえば、ビジネス データベースに、仕入先名、電子メール アドレス、電話番号を格納する "連絡先" テーブルがあるとします。 他のデータベース オブジェクトはテーブルに大きく依存するため、データベース設計はそのすべてのテーブルを作成して始める必要があります。 次に、他のオブジェクトを作成します。 Access でテーブルを作成する前に、要件を考慮して、必要となる可能性があるすべてのテーブルを特定してください。 データベースの計画とデザインの概要については、「データベース設計の基本」をご覧ください。
この記事の内容
概要
Access のようなリレーショナル データベースでは、複数の関連テーブルがあるのが一般的です。 優れたデザインのデータベースでは、特定の主題 (従業員や製品など) に関するデータがテーブルごとに格納されます。 テーブルにはレコード (行) とフィールド (列) があります。 フィールドには、テキスト、数値、日付、ハイパーリンクなど、さまざまな種類のデータが保持されます。
- レコード: 特定の従業員や製品に関する情報など、特定のデータが含まれます。
- フィールド: 名前や電子メール アドレスなど、テーブルの主題の 1 つの側面に関するデータが含まれます。
- フィールド値: 各レコードには、
Contoso, Ltd.やsomeone@example.comなどのフィールド値があります。
テーブルとフィールドのプロパティ
またテーブルとフィールドには、その特性や動作を制御するために設定できるプロパティもあります。
- テーブル プロパティ
- Field properties
Access データベースにおけるテーブル プロパティは、テーブル全体の外観や動作に影響を与えるテーブルの属性です。 テーブル プロパティは、デザイン ビューのテーブルのプロパティ シートで設定します。 たとえば、テーブルの既定の表示方法を指定するには、テーブルの [既定のビュー] プロパティを設定します。
フィールド プロパティはテーブル内の特定のフィールドに適用され、フィールドのいずれかの特性や、フィールドの特定の動作を定義します。 一部のフィールド プロパティは、データシート ビューで設定できます。 また [フィールド プロパティ] ウィンドウを使うと、デザイン ビューで好きなフィールド プロパティを設定することもできます。
データ型
すべてのフィールドにデータ型があります。 フィールドのデータ型は、大量のテキストや添付ファイルなどの、フィールドに格納されるデータの種類を示します。
データ型はフィールド プロパティですが、他のフィールド プロパティとは次の点で異なります。
- フィールドのデータ型は、[フィールド プロパティ] ウィンドウではなくテーブル デザイン グリッドで設定します。
- フィールドのデータ型によって、そのフィールドが持つ他のプロパティが決まります。
- フィールドのデータ型は、フィールドの作成時に設定する必要があります。
Access では、データシート ビューで新しい列にデータを入力して、新しいフィールドを作成できます。 データシート ビューでデータを入力してフィールドを作成すると、入力した値に基づいてデータ型が自動的に割り当てられます。 入力した値からテキスト型以外のデータ型が推測されない場合は、テキスト型に設定されます。 必要に応じて、リボンを使ってデータ型を変更できます。
データ型の自動検出の例
次の表に、データシート ビューでデータ型の自動検出がどのように機能するかを示します。
| 入力内容 | Access で作成されるデータ型とフィールドが |
|---|---|
John |
短いテキスト |
http://www.contoso.com |
ハイパーリンク型 |
1 |
数値型、長整数型 |
50,000 |
数値型、長整数型 |
50,000.99 |
数値型、倍精度浮動小数点数型 |
50000.389 |
数値型、倍精度浮動小数点数型 |
12/67 |
日付/時刻 |
December 31, 2016 |
日付/時刻 |
10:50:23 |
日付/時刻 |
10:50 am |
日付/時刻 |
17:50 |
日付/時刻 |
$12.50 |
通貨 |
21.75 |
数値型、倍精度浮動小数点数型 |
123.00% |
数値型、倍精度浮動小数点数型 |
3.46E+03 |
数値型、倍精度浮動小数点数型 |
http://、https://、mailto: など、有効なインターネット プロトコル プレフィックスを使用できます。 Access では、ユーザー ロケールに基づいて日付、時刻、通貨の形式が認識されます。
テーブル リレーションシップ
テーブルには、それぞれ異なる主題に関するデータが格納されますが、Access データベース内のテーブルの場合、通常は相互に関係する主題のデータが格納されます。 データベースに格納されるテーブルの一例を次に示します。
- 会社の顧客とその住所を一覧表示する Customers テーブル。
- 各アイテムの価格や画像などの情報を含め、販売する製品を一覧表示する製品テーブル
- 顧客の注文を記録する注文テーブル
異なる主題に関するデータを別々のテーブルに格納するため、これらの別々のテーブルの関連データを簡単に結合できるように、データを結び付ける方法が必要です。 別々のテーブルに格納されているデータを関連付けるには、リレーションシップを作成します。 リレーションシップとは、2 つのテーブルに共通して含まれるフィールドを指定する、2 つのテーブル間の論理的な関連付けです。 詳細については、「テーブルのリレーションシップの概要」を参照してください。
キー
テーブル リレーションシップの一部であるフィールドは、キーと呼ばれます。 キーは通常は 1 つのフィールドから成りますが、複数のフィールドから成る場合もあります。 キーは 2 種類あります。
- 主キー: テーブルで設定できる主キーは 1 つだけです。 主キーは、テーブルに格納された各レコードを一意に識別する 1 つ以上のフィールドから成ります。 多くの場合、ID 番号、通し番号、コードなどの固有の識別番号があり、これが主キーとして機能します。 たとえば、"顧客" テーブルでは、顧客ごとに一意な顧客 ID 番号が割り当てられます。 顧客 ID フィールドは、"顧客" テーブルの主キーです。 主キーに複数のフィールドが含まれる場合、通常は一意の値を提供する既存のフィールドで構成されます。 たとえば、ユーザーのテーブル用の主キーとして、姓、名、誕生日の組み合わせを使用する可能性があります。 詳細については、「 テーブルの主キーを追加または変更する」を参照してください。
- 外部キー: テーブルには 1 つまたは複数の外部キーを設定することもできます。 外部キーには、別のテーブルの主キーの値に対応する値が含まれます。 たとえば、各注文に "顧客" テーブルのレコードに対応する顧客 ID 番号が含まれる "注文" テーブルなどが考えられます。 この顧客 ID のフィールドが "注文" テーブルの外部キーになります。
キー フィールド間の値の対応関係は、テーブル リレーションシップの基礎となります。 関連テーブルのデータを関連付けるには、テーブル リレーションシップを使用します。 たとえば、"顧客" テーブルと "注文" テーブルがあるとします。 "顧客" テーブルの各レコードは、主キー フィールドである ID フィールドで識別されています。
各注文を顧客に関連付けるには、"顧客" テーブルの ID フィールドに対応する外部キー フィールドを "注文" テーブルに追加し、2 つのキー間のリレーションシップを作成します。 レコードを "注文" テーブルに追加する場合は、"顧客" テーブルの顧客 ID 値を使用します。 注文の顧客に関する情報を確認するときは、このリレーションシップを使用して "注文" テーブルのレコードと "顧客" テーブルのデータの対応関係を調べます。
- 主キー。フィールド名の横のキー アイコンが目印です。
- キー アイコンなしで表示される外部キー。
テーブル内に表される一意のエンティティごとにフィールドに複数の値が必要であることが予想される場合は、フィールドを追加しないでください。 前の例の続きとして、顧客からの注文の追跡を開始する場合は、各顧客が複数の注文を持つため、テーブルにフィールドを追加しないでください。 代わりに、注文を格納する新しいテーブルを作成してから、2 つのテーブル間のリレーションシップを作成します。
リレーションシップを使用する利点
関連テーブルでデータを区切ったままにすると、次の利点があります。
- 整合性: データの各アイテムは 1 回のみ記録されるため、1 つのテーブルであいまいさや不整合が生じる可能性が低くなります。 たとえば、注文データを含むテーブルに繰り返し格納するのではなく、顧客に関するテーブルに顧客の名前を 1 回のみ格納します。
- 効率性: データを 1 か所にのみ記録すると、ディスク領域の使用が少なくなります。 また、テーブルが小さい方が、テーブルが大きい場合よりも迅速にデータが提供される傾向があります。 最後に、別々の主題に対して別々のテーブルを使用しない場合は、NULL 値 (データがない) と冗長性をテーブルに導入します。 どちらもスペースを無駄にし、パフォーマンスを低下させる可能性があります。
- わかりやすさ: データベースの設計は、主題がテーブルに適切に区切られていると理解しやすくなります。
テーブルについて計画する場合には、リレーションシップに留意して行ってください。 対応する主キーを含むテーブルが既に存在する場合は、ルックアップ ウィザードを使用して外部キー フィールドを作成できます。 ルックアップ ウィザードでは、リレーションシップが自動的に作成されます。 詳細については、「ルックアップ フィールドを作成または削除する」を参照してください。