数据库系统课程设计要求与示例.pdf
课程设计要求及示例 1 1 课程设计 一.开发平台:J2SE,MySQL,Connector/J 二.名 称:图书管理系统(实验室物资管理系统,学生选课管理系统,学生学籍管理系统,学生成绩管理系统,学生公寓管理系统,机房管理系统等),同学们也可以提出自己的课题名,但必须得到任课老师的同意。三.要 求:(一)设计分析报告要求:1 需求分析内容:用户需求说明;顶层上下文数据流图,选择画出一个一层的数据流图;选择说明一个完整的数据字典。2 概念设计内容:画出完整的 E-R模型图;包括实体、联系以及实体、联系的属性。3 逻辑设计与物理设计及安全设计:把E-R图转换为关系表。实体类型的转换 联系的转换 物理设计 安全设计 4 系统模块设计与功能实现:系统的功能划分及描述;主要用户界面;系统使用说明和安装说明等。(二)系统功能要求 1 基本实体类型:图书借阅者实体 图书实体 图书管理员实体 违规类型实体 课程设计要求及示例 2 2 2 管理功能:用户(管理员和借阅者)登录帐户管理 图书借阅/归还管理 违规处罚管理(要记录每次处罚情况)各种必要的查询和报表功能 3 查询界面和条件 要有两个以上的多表连接查询;要有两个以上的多个条件组合(与、或)查询;每类基本的实体都有增、删、改和查询界面;(三)其它要求 1 界面要求 要求界面美观,操作方便。2 安全性需求(可简化)限制用户对数据的访问范围 限制用户操作级别(普通用户、设备管理员、系统管理员)限制对数据表修改权限 四.作业提交要求:1 课程设计报告,内容见上述要求。2 提交可以执行的源程序。五.成绩评定 1 成绩分为优、良、中、差四个等级。2 成绩评定分三个部分,一是考勤成绩,二是课程设计报告成绩。考勤:20%阶段考核:30%(其中:需求分析 20%,概念设计 20%,逻辑设计与物理设计及安全设计20%,系统模块设计与功能实现40%)课程设计报告:50%课程设计要求及示例 3 3 六.课程设计示例 综合教务系统分析和设计 本节综合教务系统为例,说明数据库应用系统的设计过程。本系统的分析和设计过程主要包括:需求分析;概念结构设计;逻辑结构设计;应用系统的模块设计;应用系统的用户界面设计。由于本应用系统比较简单,而我们的重点在于数据库应用系统的分析和设计,所以,本例中没有给出物理结构设计,读者可自行考虑物理结构设计,建立合适的索引,提高查询速度;对数据库系统的实施和维护也没有给出。5.4.1 需求分析 1系统目标:实现一个计算机综合教务管理系统,完成班级信息管理,学生信息管理,课程信息管理和学生选课管理等功能。2系统功能需求:本系统的用户分为超级用户和普通用户两类,超级用户负责系统维护,包括对班级信息,学生个人信息,课程信息的录入,修改,查询,删除等。普通用户即选课学生则只具有为自己选课的权限。(1)功能划分:用户通过身份验证后进入主界面。主界面为超级用户提供 6 项选择:学生信息管理,课程信息管理,班级信息管理,选课,口令修改和退出系统。普通用户有 4 项功能选择:选课,课程查询,口令修改和退出系统。(2)功能描述:班级信息管理:给出所有班级的列表,超级用户可以实现增加,修改,查找,删除班级信息,维护指定班级所有学生信息,为指定班级设定必修课和选课学分限制等功能。在维护指定班级学生信息功能中,超级用户可以实现增加,修改,删除学生信息,察看某一学生选课情况,为学生更改口令等功能。在指定班级必修课功能中,以课表形式列出班级所有必修课的课程信息,实现为一个班级增加或删除必修课的功能。学生信息管理:给出所有学生的列表,超级用户可以增加,修改,删除,查找学生信息,察看某个学生选课情况,为学生修改口令等功能。本项功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同的是本项功能中将列出所有班级的所有学生信息。课程信息管理:加入,修改,删除课程纪录,察看某门课的选课情况,查询指定的课程信息。选课:以课表的形式列出学生选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。每个班级都有选课的学分限制,不允许学生选择课程的总学分超过所在班级的选课最大学分限制,而当退出选课功能时,如果选取课程总学分未达到所在班级选课最小学分限制则给出警告信息(因为学生可以多次进入选课界面选课)。修改口令:用户需要输入原口令,并且两次输入新口令一致后,系统即用新口令代替旧口令。退出系统:当用户退出系统时,如果选取的课程总学分未达到所在班级选课最小学分限制,则给出警告信息。课程设计要求及示例 4 4 3开发工具:该综合教务系统的数据库采用了 Microsoft 的 SQL Server2000 企业版,前台应用程序采用了 ASP 编写,提供了 Web 界面方便学生从网上使用。由于采用了 ADO 数据库接口,因此很容易修改为支持 ORACLE,SYBASE,DB2 等数据库,该系统的结构为 B/S 结构,即浏览器/服务器结构。4 系统的数据流图:了解用户的应用要求,使用信息流程图分析应用系统中的信息流。综合教务系统的简单信息流如下。(1)系统的上下文数据流图如图 5-38 图 5-38 综合教务系统的上下文数据流图 (2)学生选课的数据流图如图 5-39 图 5-39 学生选课的数据流图 录入或更新学 生、课程、班级信息 选课/退选 学生、班级、选课教学情况报表 选课表 成绩表 监控 权限 密码 综合教务系统 学生 教务管理员 系统管理员 系统管理员 教务管理员 学生 学生 班级信息 身份 验证 选课申请 选 课审核通过的选课申请 学生描述信息 学生信息 验证不通过 选课信息记录 选课成功 已选课程 班级描述信息 课程信息 课程描述信息 上课时间信息 课程上课时间 班级和课程信息 班级必修课程 课程设计要求及示例 5 5 5.数据字典 数据项名:学生编号 说明:标识每个学生身份 类型:CHAR 长度:7 别名:学号 取值范围:970000979999 数据流名:选课申请 说明:由学生的个人信息,欲选课程信息组成选课申请 来自过程:无 流至过程:身份验证 数据结构:学生个人信息 欲选课信息 数据结构:学生个人信息 说明:说明了学生的个人情况。组成:帐号 密码 数据存储:上课时间信息 说明:说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门课程在上课。输出数据流:课程上课时间 数据描述:课程编号 上课时间 数量:每学期 2030 个 存取方式:随机存取 处理过程:身份验证 说明:对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。输入:学生帐号 密码 选课的课程编号 输出:学生编号 选课的课程编号 课程设计要求及示例 6 6 5.4.2 数据库的概念设计 1系统的概念模型:上图是选课系统 DEMO 的概念模型的 E/R 图,该系统涉及的实体集有:班级实体集:具有属性班级名称和选课学分限制。学生实体集:具有属性学号、姓名、性别和生日。课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。上课时间实体集:具有属性时间。一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:M 的联系。一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是 M:N 的联系。一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是 M:N 的联系。一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是 M:N 的联系。5.4.3 将概念模型转换成关系模型 1.将 E-R模型转换为关系模式 选课系统 DEMO 概念模型的 E/R 图 班级 学分限制 班级名 学生 学号 姓名 性别 生日 属于 必修 课程 选修 上课时间 上课 时间 授课教师 接纳人数 课号 课名 学分 1 m m n m m n n 课程设计要求及示例 7 7 (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 性别 字符类型 男 课程设计要求及示例 8 8 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)各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时课程设计要求及示例 9 9 已经提到。(3)主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。(4)创建规则保证学生的年龄在 18 岁到 35 岁之间(出生日期在 1965-1-1 到 1982-12-31日之间),不会输入错误数据。(5)创建触发器,保证在添加学生信息的时候,自动将该班级的必修课添加到选课表中。以上只是该教务系统中实现数据完整的部分方法。实际上要考虑的还有很多方面,实现手法也是多种多样。在此留给学生自己思考。5.数据库及相关工具软件的安装 安装 MySQL,作为数据库服务器,安装 CONNECT/J 作为 JDBC 支持组件,安装Workbench 作为数据库开发客户端。5.4.4 应用程序设计 1.选课系统 DEMO 的处理流程图:Y 2.总体结构和外部模块设计:口令验证模块 主模块 班级信息管理模块 学生信息管理模块 课程信息管理模块 选课模块 口令更改模块 退出 开始 用户登录 合法?用户选择服务 选择退出?执行服务操作 退出 N N Y Y 课程设计要求及示例 10 10 5.4.5 编程实现:下面给出系统的主要用户界面。其他的操作界面用户可以自行设计实现。1Login.jsp 这是系统的登录界面,用户可以选择以学生或管理员身份登录,并要输入相应的用户名称,密码。2AdminIndex.jsp 这是系统管理员登录成功的界面,左侧有管理员管理的各项职权。(1)按下班级信息管理,进入 Class.jsp,进行班级信息维护管理。(2)按下学生信息管理,进入 Student.jsp,进行学生信息维护管理。(3)按下课程信息管理,进入 Course.jsp,进行课程信息维护管理。(4)按下选课管理,进入 CourseSelect.jsp,进行选课。(5)按下口令修改,进入 ChangePasswd.jsp,更改用户口令。(6)按下退出,退出本系统。上述界面是在用管理员登录时才能看到,其中班级信息维护管理和相应的增加新班级课程设计要求及示例 11 11 功能为登陆后的默认选项。3Class.jsp 在右上方的班级信息管理界面中,可以增加新的班级,修改原有班级信息,删除原有班级。(1)增加新班级:在右下角的相应文本框中输入增加的班级名称,最大、最小学分限制,点击确定后,如果没有重复的班级名称,而且最大学分限制大于最小学分限制,则成功加入新的班级。(2)修改原有班级:在右下角的相应文本框中输入修改的班级名称,点击确定后,下方文本框中会出现原有的最大最小学分限制。输入新的学分限制后,如果该班级的所有学生已经选课的总学分符合新的学分限制标准,则修改成功。(3)删除原有班级:在右下角相应文本框中输入欲删除的班级名称,点击确定后,如果该班级所有学生都已经被删除,并且该班级所有必修课都已经被删除,则可以将该班级删除。4Student.jsp 课程设计要求及示例 12 12 在右上方的学生信息管理界面中,可以增加,修改,删除学生的个人信息。(1)增加新学生,在右下角的文本框中输入相应的学生学号,姓名,生日,班级,性别信息,点击确定按钮,如果存在相应的学生班级,并且学生学号不重复,则可以成功的添加新学生到该班级。(2)修改学生信息:在右下角的文本框中输入相应的学生学号,点击确定按钮,则可以在相应文本框中看到该学生原有的个人信息。可以进行修改。注意修改的班级必须为已经存在的班级,学号不能与已经存在的学号重复。(3)删除学生信息:在右下角的文本框中输入相应的学生学号,点击删除按钮,则可以删除相应的学生个人信息,注意在选课表中,该学生的所有选课信息必须全部删除。5Course.jsp 在右上方的课程信息管理界面中,可以完成增加,删除,修改选修课程的功能。(1)增加新课程:在右下角的相应文本框中输入课程号,课程名称等信息,然后点击确定按钮,如果在数据库中没有重复的课程编号,则可以完成添加一门新课程到数据库中。注意在输入增加的上课时间时,用分号分隔开不同的上课时间。(2)修改原来课程信息:在右下角的课程号文本框中输入欲修改的课程编号,点击确定按钮后,在相应文本框中出现原有的相应课程信息。修改后点击确定按钮,则完成对课程信息的修改。注意:在修改学分时,如果造成某些已经选了该课的学生的学分超过学分限制,则不能完成对该门课程信息的修改。或者在修改上课时间时,造成某些已经选修了该课的学生上课时间的冲突,则不能完成相应的修改。(3)删除原有课程:在右下角的文本框中输入相应课程号,点击确定按钮,则完成对该课程的删除操作。注意如果有学生选择课该门课程,则不能完成该门课程的删除操作。课程设计要求及示例 13 13 6CourseSelect.jsp 在选课管理界面中,可以增加、删除班级的必修课,还可以增加、删除学生的选课信息。(1)增加班级必修课:在右下角输入欲增加的课程号和增加课程的班级编号,点击确定按钮,就可以完成增加该班级的一门必修课。如果在数据库中存在重复的信息,或者相应的课程号,班级编号不存在,则不能完成向该班级增加必修课。(2)删除班级必修课,在右下角输入欲删除的课程号和删除课程的班级编号,点击确定按钮,就可以完成删除该班级的一门必修课。如果在数据库中不存在相应的信息,或者输入的课程号,班级编号不存在,则不能完成从该班级删除必修课。(3)增加学生选课信息:在右下角输入欲增加课程的学生编号和课程编号,点击确定按钮,则完成为该学生增加一门课程。如果在数据库中存在重复的信息,或者学生、课程号不存在,或者该学生的总学分限制了增加课程,或者与该学生已经选择的课程上课时间有冲突,都不能完成为该学生增加课程的信息。(4)删除学生选课信息:在右下角输入学生学号和欲删除的课程编号,点击确定按钮,则完成为该学生删除一门课程。如果数据库中不存在相应信息,或者相应的学号,课程号不存在,则不能完成为该学生删除课程。7User.jsp 口令修改包括对本人账号和口令的修改,和增加、修改、删除学生和管理员账号的功能。课程设计要求及示例 14 14(1)增加账号:输入该账号对应的学号,并输入新的账号、密码。选择增加用户的角色,包括有管理员,学生。如果是增加管理员,则无须输入学号。注意在输入的时候,如果数据库中有重复的信息,或者学生的学号在数据库中不存在,就会无法输入相应的信息。(2)修改账号:输入相应的账号,并点击确定按钮,在相应的文本框中会出现该账号对应的学号,账号,密码。修改后点击确定按钮,则完成对账号信息的修改。注意如果修改后的信息在数据库中有重复,或者学生的学号在数据库中不存在,就会无法修改相应的信息。(3)删除账号:输入相应的账号,并点击确定按钮,则完成对该账号信息的删除。(4)修改本人账号:直接在文本框中输入修改的密码,点击确定后,完成对本人密码的修改。8StudentIndex.jsp 上图是以学生身份登录时的界面。左边有四项功能,分别是课称信息查询,选课管理,口令修改和退出系统,其中默认界面是课程信息查询界面,此时将数据库中所有的课程信息列出。9CourseQuery.jsp 上图右上边可以输入相关的课程信息进行查询,包括有课程编号,课程名称,授课教师,可以进行模糊查询,在其中输入任意几项,点击确定按钮,可以在右下方查询到相应的课程信息。模糊查询指在相关的文本框中输入相应信息的一部分,也可以查到类似的信息。例如对于上面的课程,在课程名称一栏中输入“语言”,则会列出 c+语言和 java 语言的相关课程信息。10CourseSelect.jsp 课程设计要求及示例 15 15 该界面可以为学生本人添加,删除选择的课程,并自动显示已经选择的总学分数。(1)选择新课程:在右上方输入要添加的课程编号,点击确定按钮,则在下方自动添加上新选择的课程。注意:如果选择的新课程与已经选择的课程有重复,或者时间上有冲突,或者选择的总学分超出了该班级的学分限制,则不能添加新的课程。(2)删除旧课程:只要点击右下方该课程相应的删除按钮,就可以删除该课程。注意:为该班级自动添加的必修课不能由学生删除。11StudentPasswd.jsp 在修改密码界面,学生只能修改自己的密码,在右上方显示学生的个人信息。在右下方修改密码,需要输入旧密码,并重复输入新密码。这时学生的密码才修改成功。如果两次输入不一致,则不会修改密码。在学生用户选择退出之后,如果其选课总学分小于该班级的最小学分限制,系统会提出警告,不过因为学生可以多次登录该系统,因此学生可以多次登录,重复选课,直到满意。