Accessでお仕事 テーブル正規化ウィザードを使用してテーブルを複数の関連テーブルに分割する

テーブル正規化ウィザードを使用して
テーブルを複数の関連テーブルに分割する

 Access を初めて使おうとするとき、データベースのデザインとか、おっくう(・・・・)ですね。私の経験では、レコード件数が数百件程度なら、Excelを使ったほうが、はるかに操作も容易で、融通が利いて便利です。ところが、レコード件数が数千件を超えてくると、 Access の方がメリットが出てきます。
 つまり、データ件数の少ないうちは、Excelで管理しておいて、件数が増えたら Access に移行するという方法もあるわけです。

Access データベースのテーブルの 1 つまたは複数のフィールドに、情報が重複して保存されている場合、テーブル正規化ウィザードを使用してデータを複数の関連テーブルに分割すると、より効率的に保存することができます。この処理を正規化といいます。

 Excelから取り込んだデータを、リレーションを活用して効率的なデザインにするときにも「正規化」は活躍します。

 ここでは、先に作った code テーブルを使って、正規化を紹介します。
この例では、複数の受注コードについて、得意先の名前や住所が繰返し登場します。これを切り分けます。

テーブル正規化ウィザードの使い方

  1. [ツール] メニューの [解析] をポイントし、[テーブルの正規化] をクリックします。

  2. [テーブル正規化ウィザード] の手順に表示される指示に従ってください。

ウィザードでテーブルの正規化が自動的に実行されるようにするか、またはウィザードで作成されるテーブルを独自に指定することができます。

 重複部分を自動で切り分けた解析結果が表示されるので、項目をドラッグして、微調整します。

「次へ」を押すと、示された新しいテーブルを定義した後、元のテーブルとのデータの矛盾点を解決するための情報が表示されます。
最後に、クエリを作成すると、分割された複数のテーブルのすべての情報を、元のテーブルと同様の単一のデータシートで表示することができます。

メモ   Access プロジェクトでは、テーブルが SQL Server データベース内に存在します。そのため、テーブル正規化ウィザードは使用できません。


 簡単に、テーブルが分割できました。この例では、「得意先」に自動でIDが振られて、「得意先テーブル」にリンクしていることが分かります。
正規化してできたテーブルを、Access からExcelにエクスポートした結果です。
 受注テーブル 正規化してできたテーブルを、Access Excelにエクスポートした結果です。
 得意先テーブル

参考:  Excelを使って、「得意先テーブル」を xml形式 に出力すると、こんなイメージになります。データ授受の形式として、今後は、XMLがCSVにとって代わるでしょう。

注:  一般に、データの検索・参照のみの場合は、正規化せずに単独のテーブルに、すべてのデータを含めた方が、スピードが速くなります。
 マスタデータの更新の頻度が高く、かつ、1つのマスタのキーが頻繁に使われるような場合は、正規化によって複数のテーブルに分割したほうが、処理が速くなります。

このページのトップに戻る↑ 次の項目を見る↓ Accessでお仕事 目次に戻る

ホームページのトップに戻る