职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 2648|回复: 3

数据库系统与应用——第五章(续二)

[复制链接]
cayean 发表于 2007-1-30 09:52 | 显示全部楼层 |阅读模式
5.4 综合教务系统分析和设计
  本节综合教务系统为例,说明数据库应用系统的设计过程。本系统的分析和设计过程主要包括:需求分析;概念结构设计;逻辑结构设计;应用系统的模块设计;应用系统的用户界面设计。由于本应用系统比较简单,而我们的重点在于数据库应用系统的分析和设计,所以,本例中没有给出物理结构设计,读者可自行考虑物理结构设计,建立合适的索引,提高查询速度;对数据库系统的实施和维护也没有给出。
 1. 系统目标:
  实现一个计算机综合教务管理系统,完成班级信息管理,学生信息管理,课程信息管理和学生选课管理等功能。

 2. 系统功能需求: 
  本系统的用户分为超级用户和普通用户两类,超级用户负责系统维护,包括对班级信息,学生个人信息,课程信息的录入,修改,查询,删除等。普通用户即选课学生则只具有为自己选课的权限。
 (1) 功能划分:
  用户通过身份验证后进入主界面。主界面为超级用户提供6项选择:学生信息管理,课程信息管理,班级信息管理,选课,口令修改和退出系统。普通用户有4项功能选择:选课,课程查询,口令修改和退出系统。
 (2) 功能描述:
 ● 班级信息管理:
  给出所有班级的列表,超级用户可以实现增加,修改,查找,删除班级信息,维护指定班级所有学生信息,为指定班级设定必修课和选课学分限制等功能。在维护指定班级学生信息功能中,超级用户可以实现增加,修改,删除学生信息,察看某一学生选课情况,为学生更改口令等功能。在指定班级必修课功能中,以课表形式列出班级所有必修课的课程信息,实现为一个班级增加或删除必修课的功能。
 ● 学生信息管理:
  给出所有学生的列表,超级用户可以增加,修改,删除,查找学生信息,察看某个学生选课情况,为学生修改口令等功能。本项功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同的是本项功能中将列出所有班级的所有学生信息。
 ● 课程信息管理:
  加入,修改,删除课程纪录,察看某门课的选课情况,查询指定的课程信息。
 ● 选课:
  以课表的形式列出学生选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。每个班级都有选课的学分限制,不允许学生选择课程的总学分超过所在班级的选课最大学分限制,而当退出选课功能时,如果选取课程总学分未达到所在班级选课最小学分限制则给出警告信息(因为学生可以多次进入选课界面选课)。
 ● 修改口令:
  用户需要输入原口令,并且两次输入新口令一致后,系统即用新口令代替旧口令。
 ● 退出系统:
  当用户退出系统时,如果选取的课程总学分未达到所在班级选课最小学分限制,则给出警告信息。

 3. 开发工具: 
  该综合教务系统的数据库采用了Microsoft的SQL Server2000企业版,前台应用程序采用了ASP编写,提供了Web界面方便学生从网上使用。由于采用了ADO数据库接口,因此很容易修改为支持ORACLE,SYBASE,DB2等数据库,该系统的结构为B/S结构,即浏览器/服务器结构。
   
   4. 系统的数据流图: 
  了解用户的应用要求,使用信息流程图分析应用系统中的信息流。综合教务系统的简单信息流如下。
 (1)系统的上下文数据流图如图5-38                             (2) 学生选课的数据流图如图5-39
     
   5. 数据字典 
 数据项名:学生编号
 说明:  标识每个学生身份
 类型:  CHAR
 长度:  7
 别名:  学号
 取值范围:970000-979999
 数据流名:选课申请
 说明:  由学生的个人信息,欲选课程信息组成选课申请
 来自过程:无
 流至过程:身份验证
 数据结构:学生个人信息
 欲选课信息

 数据结构:学生个人信息
 说明:  说明了学生的个人情况。
 组成:  帐号
 密码

 数据存储:上课时间信息
 说明:  说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门
 课程在上课。
 输出数据流:课程上课时间
 数据描述:课程编号
 上课时间
 数量:  每学期20-30个
 存取方式:随机存取

 处理过程:身份验证
 说明:  对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。
 输入:  学生帐号
5-42.gif
5-43.gif
5-44.gif
5-45.gif
5-46.gif
5-47.gif
 楼主| cayean 发表于 2007-1-30 10:11 | 显示全部楼层
1.系统的概念模型:
  选课系统DEMO概念模型的E/R图 5-39.gif
  上图是选课系统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. 数据库表结构设计: 
  把关系模型转化为表结构: 5-40.gif   5-41.gif
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 编辑 ]
 楼主| cayean 发表于 2007-1-30 10:24 | 显示全部楼层

5.4.5 编程实现:
 下面给出系统的主要用户界面。其他的操作界面用户可以自行设计实现。
 1.Login.Asp 
  这是系统的登录界面,用户可以选择以学生或管理员身份登录,并要输入相应的用户名称,密码。
 2.AdminIndex.asp
  这是系统管理员登录成功的界面,左侧有管理员管理的各项职权。
 (1) 按下班级信息管理,进入Class.asp,进行班级信息维护管理。
 (2) 按下学生信息管理,进入Student.asp,进行学生信息维护管理。
 (3) 按下课程信息管理,进入Course.asp,进行课程信息维护管理。
 (4) 按下选课管理,进入CourseSelect.asp,进行选课。
 (5) 按下口令修改,进入ChangePasswd.asp,更改用户口令。
 (6) 按下退出,退出本系统。
  上述界面是在用管理员登录时才能看到,其中班级信息维护管理和相应的增加新班级功能为登陆后的默认选项。
 3.Class.asp

  在右上方的班级信息管理界面中,可以增加新的班级,修改原有班级信息,删除原有班级。
 (1) 增加新班级:在右下角的相应文本框中输入增加的班级名称,最大、最小学分限制,点击确定后,如果没有重复的班级名称,而且最大学分限制大于最小学分限制,则成功加入新的班级。
 (2) 修改原有班级:在右下角的相应文本框中输入修改的班级名称,点击确定后,下方文本框中会出现原有的最大最小学分限制。输入新的学分限制后,如果该班级的所有学生已经选课的总学分符合新的学分限制标准,则修改成功。
 (3) 删除原有班级:在右下角相应文本框中输入欲删除的班级名称,点击确定后,如果该班级所有学生都已经被删除,并且该班级所有必修课都已经被删除,则可以将该班级删除。
   4.Student.asp
  在右上方的学生信息管理界面中,可以增加,修改,删除学生的个人信息。
 (1) 增加新学生,在右下角的文本框中输入相应的学生学号,姓名,生日,班级,性别信息,点击确定按钮,如果存在相应的学生班级,并且学生学号不重复,则可以成功的添加新学生到该班级。
 (2) 修改学生信息:在右下角的文本框中输入相应的学生学号,点击确定按钮,则可以在相应文本框中看到该学生原有的个人信息。可以进行修改。注意修改的班级必须为已经存在的班级,学号不能与已经存在的学号重复。
 (3) 删除学生信息:在右下角的文本框中输入相应的学生学号,点击删除按钮,则可以删除相应的学生个人信息,注意在选课表中,该学生的所有选课信息必须全部删除

 5.Course.asp 
  在右上方的课程信息管理界面中,可以完成增加,删除,修改选修课程的功能。
 (1) 增加新课程:在右下角的相应文本框中输入课程号,课程名称等信息,然后点击确定按钮,如果在数据库中没有重复的课程编号,则可以完成添加一门新课程到数据库中。注意在输入增加的上课时间时,用分号分隔开不同的上课时间。
 (2) 修改原来课程信息:在右下角的课程号文本框中输入欲修改的课程编号,点击确定按钮后,在相应文本框中出现原有的相应课程信息。修改后点击确定按钮,则完成对课程信息的修改。注意:在修改学分时,如果造成某些已经选了该课的学生的学分超过学分限制,则不能完成对该门课程信息的修改。或者在修改上课时间时,造成某些已经选修了该课的学生上课时间的冲突,则不能完成相应的修改。
 (3) 删除原有课程:在右下角的文本框中输入相应课程号,点击确定按钮,则完成对该课程的删除操作。注意如果有学生选择课该门课程,则不能完成该门课程的删除操作。

 6.CourseSelect.asp
  在选课管理界面中,可以增加、删除班级的必修课,还可以增加、删除学生的选课信息。
 (1) 增加班级必修课:在右下角输入欲增加的课程号和增加课程的班级编号,点击确定按钮,就可以完成增加该班级的一门必修课。如果在数据库中存在重复的信息,或者相应的课程号,班级编号不存在,则不能完成向该班级增加必修课。
 (2) 删除班级必修课,在右下角输入欲删除的课程号和删除课程的班级编号,点击确定按钮,就可以完成删除该班级的一门必修课。如果在数据库中不存在相应的信息,或者输入的课程号,班级编号不存在,则不能完成从该班级删除必修课。
 (3) 增加学生选课信息:在右下角输入欲增加课程的学生编号和课程编号,点击确定按钮,则完成为该学生增加一门课程。如果在数据库中存在重复的信息,或者学生、课程号不存在,或者该学生的总学分限制了增加课程,或者与该学生已经选择的课程上课时间有冲突,都不能完成为该学生增加课程的信息。
 (4) 删除学生选课信息:在右下角输入学生学号和欲删除的课程编号,点击确定按钮,则完成为该学生删除一门课程。如果数据库中不存在相应信息,或者相应的学号,课程号不存在,则不能完成为该学生删除课程。
      
   7.User.asp 
  口令修改包括对本人账号和口令的修改,和增加、修改、删除学生和管理员账号的功能。
 (1) 增加账号:输入该账号对应的学号,并输入新的账号、密码。选择增加用户的角色,包括有管理员,学生。如果是增加管理员,则无须输入学号。注意在输入的时候,如果数据库中有重复的信息,或者学生的学号在数据库中不存在,就会无法输入相应的信息。
 (2) 修改账号:输入相应的账号,并点击确定按钮,在相应的文本框中会出现该账号对应的学号,账号,密码。修改后点击确定按钮,则完成对账号信息的修改。注意如果修改后的信息在数据库中有重复,或者学生的学号在数据库中不存在,就会无法修改相应的信息。
 (3) 删除账号:输入相应的账号,并点击确定按钮,则完成对该账号信息的删除。
 (4) 修改本人账号:直接在文本框中输入修改的密码,点击确定后,完成对本人密码的修改。

 8.StudentIndex.asp
  上图是以学生身份登录时的界面。左边有四项功能,分别是课称信息查询,选课管理,口令修改和退出系统,其中默认界面是课程信息查询界面,此时将数据库中所有的课程信息列出。

 9.CourseQuery.asp 
  上图右上边可以输入相关的课程信息进行查询,包括有课程编号,课程名称,授课教师,可以进行模糊查询,在其中输入任意几项,点击确定按钮,可以在右下方查询到相应的课程信息。
  模糊查询指在相关的文本框中输入相应信息的一部分,也可以查到类似的信息。例如对于上面的课程,在课程名称一栏中输入"语言",则会列出c++语言和java语言的相关课程信息。

 10.CourseSelect.asp 
  该界面可以为学生本人添加,删除选择的课程,并自动显示已经选择的总学分数。
 (1) 选择新课程:在右上方输入要添加的课程编号,点击确定按钮,则在下方自动添加上新选择的课程。注意:如果选择的新课程与已经选择的课程有重复,或者时间上有冲突,或者选择的总学分超出了该班级的学分限制,则不能添加新的课程。
 (2) 删除旧课程:只要点击右下方该课程相应的删除按钮,就可以删除该课程。注意:为该班级自动添加的必修课不能由学生删除。

 11.StudentPasswd.asp 
  在修改密码界面,学生只能修改自己的密码,在右上方显示学生的个人信息。在右下方修改密码,需要输入旧密码,并重复输入新密码。这时学生的密码才修改成功。如果两次输入不一致,则不会修改密码。
  在学生用户选择退出之后,如果其选课总学分小于该班级的最小学分限制,系统会提出警告,不过因为学生可以多次登录该系统,因此学生可以多次登录,重复选课,直到满意。

[ 本帖最后由 cayean 于 2007-1-30 11:12 编辑 ]
 楼主| cayean 发表于 2007-1-30 11:14 | 显示全部楼层
 第1题
 数据库应用系统的生存周期可以划分哪些阶段?

 第2题
 理解并给出下述术语的定义: 关系模式,函数依赖,部分函数依赖,完全函数依赖,传递依赖,候选码,主码,外码。

 第3题
 理解下列术语的定义: 1NF,2NF,3NF,BCNF,并各举出一个实例,分别属于1NF,2NF,3NF,BCNF范式。

 第4题
 给定需求,会设计E-R模型图,把E-R模型图转换为关系表。

 第5题
 简述E_R模型转换为关系模型的规则;

 第6题
 视图集成中,主要解决的冲突有哪些?

 第7题
 设有关系模式R(U, F), 其中 U={A,B,C,D,E },F = {AB →C,B→D,D →E,C →B },试问R最高为第几范式,并解释原因?如果R不是 3NF 或 BCNF,要求将其分解为 3NF 和BCNF。


答案
1--4题略
第5题
 (1)一个实体对应一个关系模式,实体的属性对应关系的属性,实体键对应关系的候选码。
 (2) 实体类型之间联系的转换分为三种情况:1:1的联系-一个1:1联系即可以转换为一个独立的关系模式,则与该联系相连的实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码, -也可以与任意一端对应的关系模式合并。则需要在该关系模式的属性中加入另一关系模式的码和联系本身的属性。 l
  1:n的联系 -一个1:n联系可以转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 -也可以与n端对应的关系模式合并。 在子表中增加父表的关键字列。
  m:n的联系-一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转为一关系的属性,而关系的码是各实体码的组合。
 (3)多元联系的转换在多元联系中,如果M,N,P中这些基数最多只有一个大于1,则可以由一个实体的主键识别一个多元联系,在转换时可将联系合并在此实体的关系中。 l 对于其它情况,可以通过增加新关系进行转换。
 (4) 多重联系的转换 (附加)对于多重联系要一重一重的考虑。转换规则与单重联系相同。
 (5) 弱实体的处理(附加)弱实体不能独立存在,它必须依附于一个所有者实体。在转换成关系模式时,弱实体所对应的关系中必须包含所有者实体的主键。

 第6题
 视图集成中,各分E-R图之间的冲突主要有三类:命名冲突、属性冲突和结构冲突。
 -命名冲突:(1)同名异义冲突、(2)异名同义冲突。
 -属性冲突:(1)属性域冲突、(2)属性取值单位冲突。
 -结构冲突:(1)同一对象在一个视图中可能作为实体,在另一个视图中可能作为属性或联系。(2)同一实体在不同的分E-R图中所包含的属性个数和属性排列次序不完全相同。(3)不同的视图可能有不同的约束。

 第7题
 (1) R最高属于1NF。 理由:关系模式R(U,F)中,函数依赖图解如图5-1, 关系模式R的主码是AB,非主属性存在对码的部分函 数依赖B→D,同时存在非主属性对码的传递函数依赖 AB→C, C →B, B→D, D→E。
 (2) R的候选码是:(A,B) (A,C)
 (3) 分解R为符合第三范式或 BCNF范式的关系模式集合如下: oR1(A,B,C) oR2(C,D) oR3(B,E)
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-15 17:40 , Processed in 0.158477 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表