データベース設計で思うこと

データベースの演習に関わっている者の「雑感」です.


「学籍番号」か「学生番号」か

学生を含むデータベースの設計をする場合, 各学生の識別情報として「学籍番号」という属性名をつけることがあります.

「学生番号」という名称でもかまいません.

どちらにするかですが,ひとつのデータベース設計において, 「学籍番号」と「学生番号」とが混在しなければ問題になりません. 簡単に言うと『統一性を持たせること』です.

和歌山大学システム工学部の現状は混在がありまして,具体的には,

と書かれています.

ひとつおもしろかったのは,履修届の書き方に関する掲示で, 「学番号欄には,学生証の学番号の数字を記入すること」 といった表現があったことです.

上のケース以外に「学生番号」というのは見たことがないし, 日常は「学籍番号」で通せばいいのではないかと思います.

とはいうものの, かつて卒業論文や修士論文の原稿を見たときに, 表紙に「学籍番号: xxxxxxxx」とあれば, 「学籍番号じゃなくて学生番号だよ.学生証を見てみ」と 指導していたものです.


「年齢」か「生年月日」か

店舗データベースを設計するなら,客の個人情報を管理することになるでしょう. その場合,「顧客」あるいは「利用者」といったテーブル名を用意します. そして個人情報の中に,年齢情報も確保するなら, 「年齢」という属性名を入れたくなります.

ですが,少し考えないといけません.

「年齢」という属性名をつけて,レコードを登録するまではいいとして,さて, いつその人(レコード)の年齢をひとつ上げればいいでしょうか?

そんな問題があるので, 「年齢」に替えて,「生年月日」を用いるのが適切なことがあります. 生年月日は,時間の経過によって変動することのない要素ですし, データベースに問い合わせをする日時で年齢を求めることができます.

生年月日と現在の年月日から年齢を求めることは可能だけど, 年齢と現在の年月日から生年月日を「この日!」と定めることはできません. 簡単に言うと『生年月日は年齢よりも詳細な情報である』ということです.

では年齢にかえて生年月日を採用すべきかというと,ここでもまた, 少し考えないといけません. データ登録者は,生年月日を知ることができるのか,という問題があります. 生年月日は年齢よりも詳細な情報であり,その分, 客がやすやすと提示してくれない可能性があります.

結局のところ, 「年齢で十分か? 生年月日が必要では?」ということを いちいち考えながら,目的に応じてデータベースを設計することになります.

簡単な例を出すならば,

とするのが考えられます.


[Home]
takehiko@sys.wakayama-u.ac.jp
Last modified: Wed Jun 26 14:51:18 JST 2002