データベース設計演習2

(2007.01更新)

設計演習1の続きを行う。

最終的にデータベースが仕上がらなかったもの(未完成)には単位は出ないのでそのつもりで。


設計演習2

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

前回でデータベースの概念スキーマ(テーブル・テーブルのリレーション)と外部スキーマ(クエリー)は設計済みである。
今回はデータベースの外部設計を行い、データベースにデータ入出力インターフェイス(入出力フォーム)を準備する。

<外部設計>
・レコード入用・表示用フォームの設計
・レコード印刷用レポートの設計

<テスト>
データベースを試験的に利用してみる。
・何件か試験用データを入力
 試験用データは自分で適当に準備すること。
 システムの動作確認のために、正常なデータ以外に、異常なデータ(許されないデータ重複・未登録レコードへの参照・異常な数値など)も準備しておく。
・自分の設計したデータベースを他の受講生に利用してもらい、意見・感想などを調査する。


例題:

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

レポートフォルダ内の「第11回」フォルダにあるファイル「履修Pa」を、「履修Pb」の様に加工する。

以下の様に、テーブルのフィールドの設定を行うことで、テーブルに記録するデータの値の制限や、
データ入力フォームを作成する場合に、ブルダウンメニューを利用した値選択などが出来るようになる。

設定項目

  1. 入力規則・ルックアップの設定

    テーブルのフィールドに入力規則ルックアップを設定する。
    設定した効果は、手順4.のフォームの作成に影響する。

    テーブルのデザイン変更画面から、
    科目テーブル 効果
    単位数 3単位などの、許可されない値の入力を防止する。



    メニューから値を選択できるようになる

    履修テーブル 効果
    学籍番号 値集合ソースを、他のテーブルに指定し、
    そのテーブルのフィールドの位置を連結列(先頭が1)の番号で指定することで、
    そのテーブルに入力された値をメニューから選択して、入力可能になる。

    例)
    履修テーブルに記載する、学籍番号を、学生テーブルの先頭フィールド「学籍番号」を
    連結列を1に指定することで、参照すする。
    講義番号 左の設定の例で、「列数」が、「3」となっている。
    列数は、選択メニューで表示される項目数のこと。

    例)

    3列表示: 講義番号の選択メニューに3列分(講義番号・担当者名・科目名)を表示
    成績

  2. フォーム・レポート表示用クエリを作成する。

    ■クエリの新規作成:

    ○SQLビューで作成する場合(SQLが苦手な人は、下の「デザインビューで作成」参照)
    以下を、クエリのSQLビューで入力。

    SELECT [履修テーブル].[学籍番号], [学生テーブル].[名前], [履修テーブル].[講義番号], [科目テーブル].[科目名], [科目テーブル].[単位数], [時間割テーブル].[担当者名], [履修テーブル].[成績]
    FROM ((学生テーブル LEFT JOIN 履修テーブル ON [学生テーブル].[学籍番号]=[履修テーブル].[学籍番号]) LEFT JOIN 時間割テーブル ON [時間割テーブル].[講義番号]=[履修テーブル].[講義番号]) LEFT JOIN 科目テーブル ON [科目テーブル].[科目名]=[時間割テーブル].[科目名];

    クエリ名「履修データ一覧」で保存する。




    ○デザインビューで作成する場合の例



    クエリ名「履修データ一覧」で保存する。


    (参考)リレーションの向きに注意すること!
    <<矢印の向きの考え方>>

    テーブルA    テーブルB
     フィールドX → フィールドX

    の向きにリレーションを設定すると、
     「AのXについて関連する情報は、BでXを調べると分かる」
    状態になる。

  3. 印刷レポートの作成

    ■「ウィザードを使用してレポートを作成する」をダブルクリックする。
    ・テーブル/クエリ で、履修データ一覧 を選ぶ
    ・「>>」ボタンで全てのフィールドを選択する

    ・データの表示方法を指定する。
    ・「>」ボタンで、グループ化のレベルを指定する。
    「次へ」で進んで行き、「完了」まで進む

  4. フォームの作成

    ここで、最初にテーブルに設定した、ルックアップや入力規則に従い、メニューが作成される。

    ■「ウィザードを使用してレポートを作成する」をダブルクリックする
    「完了」を押す。

  5. サブフォームの設定

    以下の様な手順で、フォーム内で別のフォームを組み込み、データの入力や表示が可能になる

    ■ サブフォーム付きのフォームを作成する。
    「ウィザードを使用してレポートを作成する」をダブルクリックする
    「完了」を押す。
    フォームの「学生テーブル」フォームを選び(マウスで選択)、「デザイン」ボタンを押す。
    ウィンドウのサイズと、フォームの境界付近をマウスでドラッグし、サイズを広げる。
    ツールボックスを表示する。
    サブフォームボタンで、サブフォームの領域を設定する。
    ・既存のテーブルまたはクエリを使用する を選ぶ


    ・テーブル/クエリで 履修データ一覧 を選び、以下の様にフィールドを選択する


    ・そのまま完了へ進む

    ■フォームのデザイン画面で、以下の様に サブフォームの大きさを調整する。
    ■フォームのデザイン画面を閉じて保存する

動作テスト

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


課題:

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

・フォームまたはレポート用クエリを定義する。
・先回作成した自作データベースにデータ入出力フォームとレコード印刷用レポートを作成する。
・テーブルの各フィールドのデータ入力規則を定め、データベースに設定する。
・データベースに追加の要件が有れば付け加える。


次回以降は、講義時間中は各自のデータベース作成&質問の時間とします。
データベースの作成が完了して私からOKが出た人(合格)からこの講義は終了とします。
提出するファイルは2つあります。ファイル名は、
Accessファイル「学籍番号(最終課題)
Wordファイル「学籍番号(最終仕様)
講義中にデータベースが仕上がらなかった人は 自動的に宿題となります。
締切日(後期試験期間中 また後日掲示等で連絡します)