x7.Accessによるデータベースの作成(2/2)

2015年度は、Accessの演習は見送る。

同様の内容を、XAMPPで実施する。

第7週 Accessによるデータベースの制作 中間制作としてデータベースの設計を行う

キーワード: 3層スキーマ 内部設計 外部設計

演習内容は先週の続きである。

中間制作の評価について

ここまでで学んだ概念をもとに、

・各自で個別にデータベースを利用したシステムの企画をする。

・データベースを MS-Access で制作する。

提出物:

・企画書( Wordファイル 前回の課題)

データベース( Accessのファイル 今回の課題)

単位認定について: 評価点の 20% として採点する。

この課題が未提出となる場合、 今後続けてデータベースを受講することは お勧めしません。

    1. 設計演習1(先回)
    2. 課題1 <要件定義> 概念スキーマの設計
    3. 基本的な仕様を決める。
      1. 要求分析: 自分が作成するデータベースに必要な機能を見つけ出し、確認する。
      2. データベースで業務のどの部分を処理するか決める。
      3. データベースの利用目的と、利用方法・状況の確認。
      4. 要件定義: どのような情報を、どのような形式でデータベースに格納し、どのようにデータベースから取り出す必要があるかを
      5. <書面> にまとめる。
      6. 課題2 <内部設計> 内部スキーマの設計
      7. ・プロトタイプのテーブル設計(テーブルのデータ定義域(ドメインと正規化)
      8. ・テーブルのリレーション設定(等結合・内部結合・外部結合)
    4. 設計演習2(今回)
      1. 課題3<外部設計> 外部スキーマの設計
      2. ・プロトタイプのクエリー設計(検索・集計機能の実装)
      3. ・何件か動作確認用データを入力
      4. ・レコード入用・表示用フォームの設計
      5. ・レコード印刷用レポートの設計

本日の演習内容:

設計演習2

前回の設計演習1で作成したデータベースの要件定義に従いデータベースのプロトタイプを完成しテストを行う。

前回でデータベースの概念スキーマ(テーブル・テーブルのリレーション)と外部スキーマ(クエリー)は設計済みである。

今回はデータベースの外部設計を行い、データベースにデータ入出力インターフェイス(入出力フォーム)を準備する。

<外部設計>

・レコード入用・表示用フォームの設計

・レコード印刷用レポートの設計

<テスト>

データベースを試験的に利用してみる。

・何件か試験用データを入力

試験用データは自分で適当に準備すること。

試験用データについて:

テーブルに入力するデータ件数は、データベースの動作を確認できる程度でよい。

例えば、テレビ番組表 のようなデータベースを作成している場合、実際に放映されているデータを利用してもよいが、全テレビ局の全放映予定を入れておく必要は無い。各局、数件程度入力しておく。

ジャンル分け用のテーブルには、要件に従い、全ジャンルを入力しておくことになる。

要件に集計機能がある場合は、集計結果を見て、何が表示されているか確認できる程度のレコードを入力しておくこと。

(ジャンル別のランキングなど)

例題:

レコード入用・表示用フォームの設計

以下の様に、テーブルのフィールドの設定を行うことで、テーブルに記録するデータの値の制限や、

データ入力フォームを作成する場合に、ブルダウンメニューを利用した値選択などが出来るようになる。

設定項目

  1. 入力規則・ルックアップの設定
    1. テーブルのフィールドに入力規則ルックアップを設定する。
    2. 設定した効果は、手順4.のフォームの作成に影響する。
    3. テーブルのデザイン変更画面から、
            1. 科目テーブル
            1. 効果
            2. 3単位などの、許可されない値の入力を防止する。
            1. 単位数
            1. メニューから値を選択できるようになる
            1. 履修テーブル
            1. 効果
            2. 値集合ソースを、他のテーブルに指定し、
            3. そのテーブルのフィールドの位置を連結列(先頭が1)の番号で指定することで、
            4. そのテーブルに入力された値をメニューから選択して、入力可能になる。
            5. 例)
            6. 履修テーブルに記載する、学籍番号を、学生テーブルの先頭フィールド「学籍番号」を
            7. 連結列を1に指定することで、参照すする。
            8. 左の設定の例で、「列数」が、「3」となっている。
            9. 列数は、選択メニューで表示される項目数のこと。
            10. 例)
            11. 3列表示: 講義番号の選択メニューに3列分(講義番号・担当者名・科目名)を表示
            1. 学籍番号
            2. 講義番号
            3. 成績
  1. フォーム・レポート表示用クエリを作成する。
    1. ■クエリの新規作成:
    2. クエリは、データベースに対する 問い合わせ 機能。クエリにより、
    3. テーブルの結合表示
    4. テーブルの表示フィールドの指定
    5. レコードの条件指定表示
    6. レコードの表示順序指定
    7. グループ化
    8. 集計
    9. のデータベース操作が可能。作成したクエリは、名前をつけて保存しておき、再利用することが出来る。
    10. ○デザインビューで新規作成
    1. クエリ名「履修データ一覧」で保存する。
    2. (参考)リレーションの向きに注意すること!
    3. <<矢印の向きの考え方>>
    4. テーブルA テーブルB
    5. フィールドX → フィールドX
    6. の向きにリレーションを設定すると、
    7. 「AのXについて関連する情報は、BでXを調べると分かる」
    8. 状態になる。
    9. (参考)作成したクエリを、SQLビューに表示を切り替えると、以下のようなSQLプログラムが生成されていることが確認できる。
    10. SELECT [履修テーブル].[学籍番号], [学生テーブル].[名前], [履修テーブル].[講義番号], [科目テーブル].[科目名], [科目テーブル].[単位数], [時間割テーブル].[担当者名], [履修テーブル].[成績]
    11. FROM ((学生テーブル LEFT JOIN 履修テーブル ON [学生テーブル].[学籍番号]=[履修テーブル].[学籍番号]) LEFT JOIN 時間割テーブル ON [時間割テーブル].[講義番号]=[履修テーブル].[講義番号]) LEFT JOIN 科目テーブル ON [科目テーブル].[科目名]=[時間割テーブル].[科目名];
    12. より複雑なSQLが必要な場合は、デザインビューではなく、SQLを直接作成する。SQLの文法・機能については次回から解説する。
  1. フォームの作成
  2. ここで、最初にテーブルに設定した、ルックアップや入力規則に従い、メニューが作成される。
  3. ■「ウィザードを使用してレポートを作成する」をダブルクリックする
          1. 「完了」を押す。
  1. 印刷レポートの作成■「ウィザードを使用してレポートを作成する」をダブルクリックする。
          1. ・テーブル/クエリ で、履修データ一覧 を選ぶ
          2. ・「>>」ボタンで全てのフィールドを選択する
          1. ・データの表示方法を指定する。
          1. ・「>」ボタンで、グループ化のレベルを指定する。
          1. 「次へ」で進んで行き、「完了」まで進む
  1. サブフォームの設定(省略可)
    1. 学生1名ごとの履修科目を表示したり、注文1件ごとの商品のリストの入力や表示が必要な場合は、サブフォームを利用する。
    2. 以下の様な手順で、フォーム内で別のフォームを組み込み、データの入力や表示が可能になる。
    3. ■ サブフォーム付きのフォームを作成する。
            1. 「ウィザードを使用してレポートを作成する」をダブルクリックする
            1. 「完了」を押す。
            2. フォームの「学生テーブル」フォームを選び(マウスで選択)、「デザイン」ボタンを押す。
            1. ウィンドウのサイズと、フォームの境界付近をマウスでドラッグし、サイズを広げる。
            1. ツールボックスを表示する。
            1. サブフォームボタンで、サブフォームの領域を設定する。
            1. ・既存のテーブルまたはクエリを使用する を選ぶ
            1. ・テーブル/クエリで 履修データ一覧 を選び、以下の様にフィールドを選択する
            1. ・そのまま完了へ進む
            1. ■フォームのデザイン画面で、以下の様に サブフォームの大きさを調整する。
            1. ■フォームのデザイン画面を閉じて保存する

動作テスト

クエリ・フォーム・レポートなどの動作を確認する。

応用課題:

中間課題データベースに、以下の様な機能を設定してみてください。

・フォームまたはレポート用のクエリを定義する。

・データ入出力フォームとレコード印刷用レポートを作成する。

・テーブルの各フィールドのデータ入力規則を定め、データベースに設定する。

(ヒント) 旧資料

提出するファイルをレポートフォルダに提出:

ファイル名は

Accessファイル「学籍番号(中間課題)

Wordファイル「学籍番号(要件定義)」 ←こちらは、要件に変更があった場合に修正して提出する。

講義中にデータベースが仕上がらなかった人は 来週までの宿題とします。