2015年度は、Accessの演習は見送る。
同様の内容を、XAMPPで実施する。
履修者名簿の確認:
履修中止期間が終了しました。
受講生各自で履修登録に間違いが無いか、学生ポータルの個人時間割を確認してください。
第6週 Accessによるデータベースの制作 中間制作としてデータベースの設計を行う
キーワード: ERモデル ドメイン
旧資料 ←こちらのMS-Accessの演習部分を実施予定。 SQLは導入せずに、クエリビルダを利用して表の結合・検索などを実装する。
提出物:
・企画書( Wordファイル 今回の課題)
・データベース( Accessのファイル 次回の課題)
この課題が未提出となる場合、 今後続けてデータベースを受講することは お勧めしません。
ソフトウェアの開発手法には様々なモデルがあるが、今回は プロトタイピング という手法で開発を行う。
プロトタイプとは試作品のことで、プロトタイピングモデルでは、早期にユーザに動作可能な開発システム(試作品)を確認してもらい、システムの要件の不足を早い段階で把握する。これにより大きなコストを要する開発終盤での設計変更を避けることができる。
(ちなみに、他の開発モデルとしてはウォーターフォールモデルやスパイラルモデル、アジャイルソフトウェア開発などがある。システム開発系の関連の講義参照。)
プロトタイピングによるシステムの開発工程:
データベースシステムのプロトタイプを作成する。(評価とフィードバックのフェーズは省略)
例題 「科目履修データベース」 の開発手順を参考に、各自で
■ 要件定義書 (ワープロで作成)
■ 内部設計1 (Access でテーブルと、リレーションを作成)
について作業を行う。
■課題1 要件定義書の作成
<要件分析>
自分が企画するデータベースの「開発システム名」・「利用者」・「要件定義」についてワープロでなるべく具体的に書いておく。
タイトルはキャッチフレーズのような言葉遊び的な意味不明のものは用いないこと。出来るだけ作成対象が具体的にイメージ出来るようにしておく。
コツとしては、(固有)名詞をいくつかタイトルに混ぜてみると具体的になる。
例) 名古屋文理大学|学生用駐車場|予約システム
システムの名称が具体性であれば、どんな記録を取ればよいかの見当がついて、
システムの要件も具体的に見えてくる筈である。
この例では、 記録するのは「誰が、いつ駐車場を利用したいのか」を記録し、「駐車場の空きを確認」、「予約状況の表示」などがデータベースの処理として必要なことがイメージできる。
ファイル名は「学籍番号(要件定義)」としてレポートフォルダに提出する。
以下の形式を参考に、ワープロで要件定義を書いて提出する。
<要件定義>
開発システム名: 名古屋文理大学履修登録データベース
利用者: 名古屋文理大学教学課職員
要件:
○概要
学生の科目の履修と成績をデータベースで管理したい。
多数の受講生が複数の科目を履修する。
その際、
科目履修では、既修得科目の重複登録など履修不能科目が登録されない様にしたい。
科目の履修には、学籍番号と、時間割表に記載の科目番号を用いる。
履修した科目について、成績の管理を行い、取得単位数の合計が分かるようにしたい。
学生の単位取得状況について、カリキュラムごとの平均取得単位を求めたい。
○入力項目と出力項目について
履修登録に必要な入力項目と、利用者別の出力項目は以下とする。
<入力項目>
学生データ
学籍番号 (7桁数字)
名前 (全角文字10文字まで 苗字と名前は分けずに入力)
科目データ
科目名 (文字で入力)
単位数 (数値で入力)
時間割データ
講義番号 (講義番号はデータベース側で自動設定)
担当者 (文字で入力)
科目名 (科目データの値を使用)
履修データ
学籍番号 (学生データの値を使用)
講義番号 (時間割データの値を使用)
成績 (優・良・可・不可 で入力)
<出力項目>
担当者別科目履修者表
(講義番号ごとにまとめて表示)
講義番号
担当者
科目名
学籍番号
名前
学生別履修科目表
(学籍番号ごとにまとめて表示)
学籍番号
名前
科目名
単位数
成績
学生別取得単位数合計表
学籍番号
名前
取得単位合計
○データ管理上の留意点など
・学生データや科目データの重複登録は出来ないようにする
・1人の学生が同じ講義番号の科目を重複して履修登録できないようにする(再履修は別の講義番号の同一科目名の科目を履修することで記録)
・履修データで単位取得済みの科目を履修できないようにする
・データ入力画面では、なるべく入力の省力化を計る(キーボードからの入力を減らし、メニュー選択方式を利用する)
・成績表を印刷する際には、ディスプレイのコピーではなく印刷専用のレイアウトで印刷すること
■課題2 データベースの設計
<内部設計>
上記の例題について、データベースをAccessで作成する際の、内部設計部分について例を示す。
Accessを起動→新しいデータベースを作成→空のデータベース→
保存場所「ユーザホーム(マイドキュメント)」→ファイル名「学籍番号(試作品)」
テーブル新規作成→デザインビュー
(テーブル名は、フィールドの設計終了後、テーブルを閉じるときに入力できる)
テーブル名
学生テーブル
科目テーブル
時間割テーブル
履修テーブル
フィールド名と(データ型)データ型の詳細については各自で決定
■学籍番号(数値型・ フィールドサイズ:長整数型)
■名前(テキスト型)
例)学籍番号は以下の様に設定する
フィールドサイズ: 長整数型
値要求: はい
インデックス: はい(重複なし)
主キー
学籍番号
科目名
講義番号
学籍番号・講義番号
■科目名(テキスト型)
■単位数(数値型)
■講義番号(オートナンバー型)
■担当者名(テキスト型)
■科目名(テキスト型)
■学籍番号(数値型)
■講義番号(数値型)
■成績(テキスト型)
例)
Accessのデータ型について:
ヘルプ→Microsoft Accessヘルプ→キーワード→データ
で、内容をよく確認しておくこと。
例)上記テーブルでは以下を使用した。
ツール→リレーションシップ→(各テーブルを追加)
ドラッグ&ドロップでリレーションを設定。結合の向きを指定すること。
リレーションの向きについて:
リレーションの向きに注意すること!
<<矢印の向きの考え方>>
テーブルA テーブルB
フィールドX → フィールドX
の向きにリレーションを設定すると、
「AのXについて関連する情報は、BでXを調べると分かる」
状態になる。
□レコードの対応関係から考える
「一対多」 を 「A→B」 で表現する。 上の例では、
■科目テーブルの科目名「データベース演習」1つに対して時間割テーブルの科目名は複数の担当者や開講曜日があり得るので、「科目→時間割」となる。
■時間割テーブルの講義番号1つに対して、複数の学生が履修しえるので、「時間割→履修」となる。
■学生テーブルの学籍番号1つに対して、複数の科目を履修しえるので、「学生→履修」となる。
データベースを企画するにあたって、何を記録し、どう利用(表示や集計方法)するかを考えよう。
また、どんなデータベースを造ればよいのかさっぱりイメージできない人は、 まずは上記の例題のまねをしてみて、次に、自分の企画にアレンジしてみてはどうだろうか?
ただし、 中間課題の目標は 自分で企画したデータベースを作成 である。
<内部設計>
自分が企画したデータベースについて、Access でデータベースのテーブル(複数)、リレーションを作成する。
ファイル名は「学籍番号(試作品)」としてレポートフォルダに提出する。
次回予告:
第7週 Accessによるデータベースの制作 中間制作としてデータベースの実装を行う 3層スキーマ 内部設計 外部設計
旧資料 ←こちらの内容になる予定
旧資料 ←応用課題