|
1.系统的概念模型:
选课系统DEMO概念模型的E/R图
上图是选课系统DEMO的概念模型的E/R图,该系统涉及的实体集有:
班级实体集:具有属性班级名称和选课学分限制。
学生实体集:具有属性学号、姓名、性别和生日。
课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。
上课时间实体集:具有属性时间。 一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:M的联系。
一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是M:N的联系。
一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是M:N的联系。
一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是M:N的联系。
5.4.3 将概念模型转换成关系模型
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. 数据库表结构设计:
把关系模型转化为表结构:
COURSETIME是一个整数,整除10的商表示星期几上课,余数表示当天的第几节课。
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的数据源。
[ 本帖最后由 cayean 于 2007-1-30 10:18 编辑 ] |
|