本文へスキップ

〒434-0038 浜松市浜北区貴布祢265-8 イトリエ1F

テーブル 〜 Accessの基礎知識HEADLINE

テーブルの構造

図1
クリックすると拡大します。以下同様
データベースのテーブルとは、実際にデータを格納するもの(オブジェクト)です。 具体的にはExcelの表をイメージしてください。

1件分のデータは横1行に表示され、データベースではレコードと呼ばれます。それに対してExcelの列に該当するものをデータベースではフィールドと呼びます。 「受注日」フィールドとか「得意先コード」フィールドという使い方になります。

テーブルのフィールドには事前にデータ型を指定しておきます。例えば「受注日」フィールドに「日付/時刻型」というデータ型を指定すると日付(または時刻) しか入力できなくなります(データ型の指定は必須です)。

主キー

図2
商品台帳を考えてみましょう。商品の一つ一つには商品コードが付けられます。異なる商品に同じ商品コードが付けられることはなく、一つの商品には 必ず一つの商品コードが付きます。
従って商品コードが分かれば、それが何という名前の商品なのか、定価がいくらなのか、メーカーがどこなのかがわかります。

このように、このフィールド(商品コード)の値が決まれば、どのデータ(レコード)かが決まる、このようなフィールドに対して主キーを設定します。

主キーの設定は必須ではありませんが、特別な事情がない限りは設定します。

テーブルの正規化

図3
Accessでは複数のテーブルを作成し、データを分割して格納します。受注伝票をイメージしましょう。1回の受注に対して複数の明細行が存在すると考えてください。
1回の受注に対して、一つの受注番号が付きます(従ってこれが主キーになります)。そして1回の受注で受注日は一つ、取引先も一つになります。
しかし1回の受注に対して、複数商品を購入した場合、明細行の部分が複数存在することになります。
これをテーブルに当てはめたのが図4です。この繰り返し属性の部分をまず分割します。但し単純に分割しただけだと、2つのテーブルの関係がわからなくなって しまうので、繰り返し部分のテーブルに、親のテーブルの主キーのフィールドを追加します。
これによって、関係を保ったまま2つのテーブルに分割することができます。 また、金額などのように 単価×数量 といった計算式で求めることのできるフィールドも作成しません(後にクエリで行います)。
図4

 
さらに切り出した表を見てみましょう(図5)。同じ得意先が何回も購入した場合です。これだと、得意先コード、得意先名、〒、都道府県、住所と 同じ内容を何回も入力しなければならなくなってしまいます。時としてはデータを誤って入力してしまうことも起きるでしょう。
このようなケースでは、得意先台帳として1つのテーブルを作成します。今回のケースでは得意先コードが主キーになります。
このように得意先台帳として切り出しておいて、受注テーブル側では、どこの得意先が購入したのか、その得意先コードだけを入力します。
図5
このようにしておけば、共通フィールドである「得意先コード」を用いて、2つの表を結びつけることができます。

一般に、得意先台帳、商品台帳、従業員台帳といった、〇〇台帳あるいは○○マスターといった類のものは、別テーブルに作成します。