大学生の就職内定データベース | lec01 | lec02 | lec03

演習1   就職内定データベース

演習課題

ある大学の就職課が、学生の採用内定の進展状況をデータベースで管理したいと考えています。その為に必要な情報は、学生に関する情報、企業に関する情報、および「どの学生がどこの会社に内定したか」という採用内定に関する情報です。 このようなデータベースを作成して、必要な情報または就職指導に有用な情報を利用できるように考察しなさい。


目次

2節:テーブルの作成

  1. ERモデルから表イメージへ

まだ、論理設計の段階にあります。リレーショナルモデルでは、実体の詳細属性の抽出、実体の正規化が行われたら、今度は実体を2次元の表(テーブル)に置き換えていく作業に入る。

表を定義するのに必要な要件は、フィールド名(属性名)、各フィールドのデータ型、主キーまたは外部キーとなるフィールドの区別、データ入力が必須のフィールドなど色々ある。 そこで次のような「要件項目表」を準備して必要な情報を記入しておくとよい。 ER図で現れる1つの実体に対して1枚の項目表に、その実体に定義されている属性について詳しい情報を記入していく。
要件項目表<参考:採用内定テーブルの場合>
フィールド名 内定ID内定日学籍番号企業CD
データ型オートナンバー型日付/時刻型テキスト型テキスト型
最大データ長(フィールドサイズ)51488
主キー・外部キーの区別PKFK1FK2
一意性はいはいはい
入力必須(値要求)はいはいはいはい
入力規則(実体の制約)
従属先表名(参照表先)学生マスター企業マスター
関数従属先内定ID内定ID内定ID
サンプルデータ987652004/06/01010400110101

この要件項目表で記載する項目の説明をしておこう。

  1. 主キー・外部キーの区別
    主キーに対しては「PF」(primary key)、外部キーに対しては「FK」(foreign key)と記入する。複数のフィールドが外部キーとなっている場合は、FK1、FK2、Fk3というように識別番号を付けておく。
  2. 一意性
    テーブル内でデータ値の重複を許さず、必ず一意(unique)でなければならないフィールドには「はい」と記入する。複数のフィールドの組合せで一意となる場合は、それらに対して「はい1」というように同じ識別番号を付けておく。
  3. 入力必須(値要求)
    必ずデータ入力が必要な(Not Null)フィールドには、「はい」と記入する。
  4. 入力規則(実体の制約)
    次節の「制約の定義」で説明する実体の制約の「CHECK制約」の内容を記述する。
  5. 従属先表名(参照表先)
    実体の間で関連(リレーション)があった場合、従属する側のテーブルの外部キー・フィールドに「従属先表名」を記入する。
  6. 関数従属先
    この段階ではテーブルの定義に戻る訳ではないが、正規化の確認のために利用する。従属するフィールド名を記入する。同じテーブルにあることを確認する。
  7. サンプルデータ
    具体的なデータの値が分かれば記入する。フィールド毎に最大値など特徴的なデータ値を書いてみる。
  1. 制約(入力規則)の定義

データが事前に定義された規則に基づいて、正しく入力されることを保障することを「入力規則の定義」という。具体的には以下のような制約の保障をする。 論理設計の一環として、システム開発の対象となる業務の規則に基づき、どのような制約を設定すべきかを分析する。制約の設定を行うことでシステム化工程の検査が分かり易くなり、かつ、データベースのデータ整合性が向上し、データベースの保守が容易になる。

一般にデータベースが自動的に上記の制約をチェックして違反操作を無効にしてくれる機能を持っている。この機能のことを制約(constraint)という。データベースの制約機能には次のような種類がある。

制約の種類
実体の制約:
(表と表の内容に制約を課す)
NOT NULL 制約入力必須のフィールドに対して定義する
UNIQUE キー制約データ値の重複は許されない。NULL 値は許可される。
PRIMARY キー制約主キーを指定する。表の中で1つだけ指定可能。データ値の重複は許されない。NULL 値も許可されない。
CHECK 制約上記以外の更新時異常の発生抑制のための制約、特に、レコード(行)の値を更新、レコードを追加・削除する時にCheckすべき条件を指定する。
参照整合性の制約;
(表と表の関係に制約を課す)
外部キーに格納できる値は、参照先表の主キーが持つ値または NULL 値のみが許可される

問題2
就職内定データベースを構成する5つのテーブル(採用内定テーブルは作成済み)について、要求項目表を作成しなさい。

問題3
就職内定データベースを構成する5つのテーブルについて、リレーションシップを設定をしなさい。

  1. ビューの設計

今までの作業でテーブルは殆ど完成しています。次は、利用者が本当に欲しいデータ(情報)が実体またはテーブルから問題なく取り出すことができるかについて検討します。データベースでは、特定の業務やその工程で必要なデータ構造は「ビュー」というオブジェクトで実現できる。

ビューは、実体のテーブルに対してどのように加工・操作すれば、必要な情報がデータ形式で得られるかを表現した「問い合わせ」の情報であり、それに名前をつけて登録したものである。言い換えれば、ビューとは、テーブルに対して特定の見方を提供する為に定義するもの(論理的な見方)であり、ビューに対応する物理的なテーブル(実体)が存在する訳けではない。 データベースの理論では、ビューは「外部スキーマ」といって、実体を定義する「概念スキーマ」とデータベースを利用した業務アプリケーションとを独立させる役割を荷っている。

実際に利用者が欲しいデータというのは、画面や帳票などの「外部仕様」として明確になっている場合が多い。例えば、ある学生の現在の内定状況を表示する、という情報が必要であるとする。必要なデータは5つのテーブルに分かれて格納されているから、複数のテーブルを統合・射影して求められるデータ構造にした「ビュー」を作成しておく。どんなビューが必要になるかは利用者の業務要求を分析して以下のように分類して決める。

  1. 一括処理業務:→  出力帳票のイメージ
  2. オンライン業務:→  入力・出力の画面イメージ
  3. 情報系の照会業務:→  会話型の画面イメージ

ビューの作成方法としては以下の種類が考えられる。次の物理設計で述べるように、Microsoft Accessでは、ビューは「クエリ」オブジェクトや「レポート」オブジェクトで作成される。

  1. ある表の一部を取り出し(射影と抽出)、1つの表のように扱う。
  2. 複数の表から必要な部分を取り出し(結合と射影)、1つの表のように扱う。
  3. 複雑な計算や、あらかじめ加工したデータを扱う。
  4. 既存のビューから新たなビューを作成する。

問題4
就職内定データベースを利用して、以下のようなビューを作成したい。 これまで検討したER図の実体やテーブルで実現できない要求があるか、新たな実体が見落とされている可能性がないか、再検討しなさい。
  1. ある学生の現在の内定状況(内定日、企業名、産業分類、職種、初任給)を表示する
  2. 現在、内定が1つもない学生の一覧表(名前、学籍番号、学科、履修単位)を作成する。
  3. 学科別に現在の内定率を集計し表示する。
  4. 学科別、月別に内定率を集計し表示する。
  5. 産業別、職種別に内定学生数を集計し表示する


Go to TOP (C) T. Katayama ----- Last updated: