1. 将E-R模型转换为关系模式
 (1) 班级实体集可以转换为关系:
  CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)
  CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。

 (2) 学生实体集可以转换为关系
  STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)
  STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日

 (3) 课程实体可以转换为关系
  COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)
  COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。

 (4) 班级和学生之间的联系是1:M的联系,所以没有必要为其建立一个关系,可以通过扩展学生关系来表示:
  STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME)
  CLASSNAME表示学生所在班级名。

 (5) 班级和课程之间的必修联系可以转换为关系:
  CLASSCOURSE(CLASSNAME , COURSEID)
  CLASSNAME表示班级名称,COURSEID表示课程号。

 (6) 学生和课程之间的选修联系可以转化为关系:
  STUDENTCOUSE(STUDENTID, COURSEID)
  STUDENTID表示学号,COURSEID表示课程号。

 (7) 课程和上课之间的联系可以转化为关系:
  COURSETIME(COURSEID , TIME)
  COURSEID表示课程号,TIME表示上课时间。

 2. 数据库表结构设计: 
  把关系模型转化为表结构:

  班级信息表(class):包含所有的班级信息,定义如下:

域名 含义 数据类型 例子 备注
CLASSNAME 班级名称 字符类型 计71 主码
MAXCREDIT 最大学分限制 数值类型 30  
MINCREDIT 最小学分限制 数值类型 20  

  学生信息表(student):包含所有学生的个人信息,定义如下:

域名 含义 数据类型 例子 备注
STUDENTID 学号 字符类型 971329 主码
NAME 姓名 字符类型 王强  
SEX 性别 字符类型  
BIRTHDAY 生日 日期类型 79/07/15  
CLASSNAME 班级名称 字符类型 计71

外码


  课程信息表(course):包含所有课程信息,定义如下:

域名 含义 数据类型 例子 备注
COURSEID 课程号 字符类型 000001 主码
COURSENAME 课程名称 字符类型 数值分析  
CREDIT 学分 数值类型 4  
TEACHER 任课教师 字符类型 刘强  
ACCEPTION 接纳人数 数值类型 28  

  班级必修课表(classcourse):包含所有班级的必修课信息,定义如下:

域名 含义 数据类型 例子 备注
CLASSNAME 班级名称 字符类型 计71 外码
COURSEID 课程号 字符类型 000001 外码

  学生选课表(studentcourse):包含所有学生的选课信息,定义如下:

域名 含义 数据类型 例子 备注
STUDENTID 学号 字符类型 971329 外码
COURSEID 课程号 字符类型 000001 外码

  上课时间表(coursetime):包含所有课程的上课时间,定义如下:

域名 含义 数据类型 例子 备注
COURSEID 课程号 字符类型 000001 外码
COURSETIME 上课时间 数值类型 21 表示星期2第1节

  COURSETIME是一个整数,整除10的商表示星期几上课,余数表示当天的第几节课。
  用户账号表(user):包含所有用户的账号和口令信息,定义如下:

域名 含义 数据类型 例子 备注
USERID 用户账号 字符类型 ADMIN  
USERPASSWD 用户密码 字符类型 ADMIN  
USERAUTH 用户权限 数值类型 0  
STUDENTID 用户学号 字符类型 971329  

  USERAUTH用0,1表示用户权限,0表示管理员,1表示普通用户。其中普通用户的STUDENTID为学生的学号。

 3.实现数据完整性: 
  通过各种约束,缺省,规则和触发器实现数据的完整性。由于教务系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。
 (1) CHECK约束保证最大限选学分要大于最小限选学分。
 (2) 各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时已经提到。
 (3) 主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。
 (4) 创建规则保证学生的年龄在18岁到35岁之间(出生日期在1965-1-1到1982-12-31日之间),不会输入错误数据。
 (5) 创建触发器,保证在添加学生信息的时候,自动将该班级的必修课添加到选课表中。
以上只是该教务系统中实现数据完整的部分方法。实际上要考虑的还有很多方面,实现手法也是多种多样。在此留给学生自己思考。

 4. 数据库的安装
  安装SQL SERVER2000,作为数据库服务器,并用ODBC设置SQL SERVER的数据源。