学生选课系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
(数据库系统原理)题目学生选课系统
系院
专业
班级
学号
姓名
二〇一一年六月二十日
目录
第一章需求分析 (3)
1.1 需求分析 (3)
1.1.1.1 系统管理员需求分析 (4)
1.1.1.2教师需求分析 (4)
1.1.1.3 学生需求分析 (5)
1.2 任务概述 (6)
1.2.1 目标 (6)
1.2.2 运行环境 (6)
1.3 数据流图 (7)
1.4 数据字典 (7)
1.5系统完整性、安全性 (9)
1.5.1 对服务的要求 (9)
1.5.2 对性能的规定 (9)
第二章概念结构设计 (10)
2.1 概念结构 (10)
2.2 学生选课系统概念结构设计 (10)
2.2.1 系统实体E-R图 (11)
2.2.2学生选课系统的分E-R图 (12)
图4 教务处需求管理的E-R图 (13)
2.2.3学生选课系统E-R图 (14)
第三章逻辑结构设计 (15)
3.1 逻辑结构设计 (15)
3.2 学生选课系统的逻辑结构设计 (15)
第四章物理设计 (17)
4.1 关系中的关系模式 (17)
4.2 基本表设计 (17)
第五章数据库的实施和维护 (21)
5.1 数据的载入 (21)
5.2 应用程序的调试 (21)
5.3 数据库的维护 (22)
5.3.1 维护 (22)
5.3.2检测并改善数据库性能 (23)
5.3.3重新组织和构造数据库 (23)
第一章需求分析
1.1 需求分析
数据库是一种存储数据并对数据进行操作的工具。
数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。
计算机的数据库可以分为两类:非关系数据库和关系数据库。
关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。
SQL2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
SQL 的优点在于它集数据查询、数据操纵、数据定义和数据控制功能于一体。
1.1.1 分析阶段
本项目所开发的学生选课系统完成学校对学生的选课信息的统计与管理,减少数据漏掉的情况,同时也节约人力、物力和财力,告别以往的人工统计。
方便学生、老师、管理员使用,学生可以在线查看可选课程信息、在线选课、信息修改、成绩查看,老师可以查选自己的课程人数、课程信息(包括开课时间、地点、开课方式),管理员可以对整个系统进行管理(包括系统管理、用户管理、课程管理)。
图1.简要需求分析图
1.1.1.1 系统管理员需求分析
系统管理员负责整个系统的维护,其需求最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表、排课报表。
所涉及的信息包括课程信息、教师信息和学生信息。
因此系统管理员具有该系统的最高权限,能够编辑各信息模块,如插入一个新生的信息,增添一门课程的信息,删除退休教师的信息等。
图2.教务处需求
1.1.1.2教师需求分析
在该系统中,为方便教师工作,要求教师能够核实自己信息、查询所授课程的信息、查看自己教学班的信息,以及最后登记学生的成绩等。
图3.教师需求
1.1.1.3 学生需求分析
该系统为学生主要提供选课服务,因此学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,进行相关操作。
此外还应附带其他服务,如核实个人信息,查看教师信息、课程信息以便选课,查看自己选课结果,查询考试成绩等。
1.2 任务概述
1.2.1 目标
本系统是为了更好管理学生选课排课信息而设计的。
由于学校的学生和课程繁多,包含的信息量大且复杂,有必要建立一个学生选课排课系统,使选课排课管理工作规范化,系统化,程序化,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课排课相关信息。
1.2.2 运行环境
服务器配置包括硬件配置和软件配置,它们各自都有详细的要求,下面将分别进行介绍.
1、服务器端配置
(1)、硬件配置
安装本软件之前,需要确保计算机具有如下配置,这也是最低硬件要求:233兆赫(MHZ)Pentium或更高的微处理器(或与之相当的处理器)
使用256内存(RAM最小为64MB,最大为4GB)
不小于40MB的可用硬盘空间
(2)、软件配置
安装本软件之前,需要确保计算机已安装:Micorsoft Windows XP及以上
的操作系统.
2、客户端配置
本软件开发所需要的硬件配置和软件配置分别介绍如下:硬件配置: 1台奔腾级别电脑
软件配置: VB6.0
1.3 数据流图
1.4 数据字典
数据项名:学生编号
说明:标识每个学生身份
类型:CHAR
长度:8
别名:学号
取值范围:970000-979999
数据流名:选课申请
说明:由学生个人信息,欲选课程信息组成选课申请
来自过程:无
流至过程:身份验证
数据结构:学生个人信息
欲选课的课程信息数据结构:学生个人信息
说明:说明了学生的个人情况。
组成:帐号,密码
数据存储:上课时间信息
说明:说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门课程在上课。
输出数据流:课程上课时间
数据描述:课程编号
上课时间
数量:每学期200-300个
存取方式:随机存取
处理过程:身份验证
说明:对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。
输入:学生帐号,密码;
选课的课程编号。
输出:学生编号;
选课的课程编号
程序提要说明:
对输入的学生个人信息,检查学号和密码是否正确?
对身份正确的学生检查要选修的课程是否允许?
检查是否正确返回信息。
1.5系统完整性、安全性
1.5.1 对服务的要求
为保证该系统平稳、安全地运行,系统为用户提供的服务要有以下限制。
⑴教务处具有该系统的最高权限,负责系统维护,更新。
⑵教师只能查看个人的全部信息以及其他教师的部分信息,若要修改个人信息,需向教务处申报,由管理员修改。
⑶学生只能查看个人的全部信息,教师的部分信息,自己的选课结果,若要修改个人信息、选课信息,需向教务处申报,由教务处修改。
1.5.2 对性能的规定
●精度
此系统的数据输入大多数为字符串类型,也有表示成绩的浮点数,精度为6。
●响的时间
对于管理人员输入的用户信息应该在人们所能接受的等待时间来确定,通常为1-2秒。
●更新处理时间要求
用户输入数据后,对于该操作人员输入的数据处理时间应该是毫秒级的。
数据的转换和传输也应该在人们的接受的等待时间内。
●灵活行
(1) 在操作方式上若发生变化,如无法使用浏览器进入系统,那么,可以使用命令方式进入如:可以通过编写java程序与数据库联接,实现登录。
(2) 因为本系统开发是使用jsp实现,这种开发技术具有java一样的很好的系统移植性。
(3) 对于数据精度方面,应在数据库中加以限制;实现实体完整性,用户自定义完整性约束。
(4) 在设计界面结构和数据结构是应留有对以后扩充系统功能的余地,如可以在每个数据字段上设计多个自定义字段。
第二章概念结构设计
2.1 概念结构
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。
概念结构主要特点:
(1)能真是、充分地反映显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个只是模型;
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、网状、层次等各种数据模型转换;
概念结构时各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
2.2 学生选课系统概念结构设计
现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。
由于这个系统并不复杂,因此可采用自顶向下的设计方法。
自顶向下设计的关键是确定系统的核心活动。
所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。
确定了核心活动之后,系统就有了可扩展的余地。
对于这个图书借阅管理系统,其核心活动是借阅,读者与图书之间是通过借阅发生联系的。
因此,此系统包含的实体有:
(1)学生:用以描述学生的基本信息,用学号标识,老师、学生、管理员都可查询,其中管理员、学生可修改资料。
(2)任课老师:用以描述老师的基本信息及登入密码,老师、管理员可查询、修改。
(3)教务处:用以描述教务处管理员的基本信息及登入密码,只有教务处自己可查询、修改。
(4)课程表:用以描述本学期全部可选课程的信息,学生、管理员、老师都可查看,只有管理员可修改。
(5)学生成绩表:用以描述本学期全体学生的选课成绩,老师可修改。
(6)教学班信息表:用以描述选修该老师的课的学生信息,及课程开设地点和时间,主要是老师查看及输入学生成绩。
经过初步分析,可以得到此系统中各实体所包含的基本属性如下:
(1)学生:{学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),所在系(Sdept)}
(2)任课老师:{工号(Tno),姓名(Tname),职称(Zhicheng)}
(3)教务处:{用户名(Gname),登入密码(Gmima)}
(4)课程表:{课程号(Cno),课程名(Cname),学分(Ccredit),上课时间(Ctime),上课地点(Cplace),代课老师(Tname)}
(5)学生成绩表:{姓名(Sname),学号(Sno),课程号(Cno),成绩(Grade)}
(6)教学班信息表:{学生姓名(Sno),学生学号(Sname),所在系(Sdept),上课地点(Place),上课时间(Time)}
图
图1 实体及其属性(一)
图2 实体及其属性图(二)
2.2.2学生选课系统的分E-R 图
图4 教务处需求管理的E-R图
图5 学生需求管理的E-R图
第三章逻辑结构设计
3.1 逻辑结构设计
概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。
为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。
这就是数据库逻辑设计所要完成的任务。
数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R图转换为关系模型;然后对关系模型进行优化,如下图所示
图4.1 逻辑结构设计过程
关系模型是由一组关系(二维表)的结合,而E-R模型则是由实体、实体的属性、实体间的关系三个要素组成。
所以要将E-R模型转换为关系模型,就是将实体、属性和联系都要转换为相应的关系模型。
3.2 学生选课系统的逻辑结构设计
有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。
设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。
根据转换规则,这个E-R转换的关系模式为:
(1)学生(学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),所在系(Sdept))
(2)任课老师(工号(Tno),姓名(Tname),职称(Zhicheng))
(3)教务处(用户名(Gname),登入密码(Gmima))
(4)课程表(课程号(Cno),课程名(Cname),学分(Ccredit),上课时间(Ctime),上课地点(Cplace),代课老师(Tname))
(5)学生成绩表(姓名(Sname),学号(Sno),课程号(Cno),成绩(Grade))(6)教学班信息表(学生姓名(Sno),学生学号(Sname),所在系(Sdept),上课地点(Place),上课时间(Time),成绩(Grade))
现在分析一下这些关系模式。
由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三范式的关系模式。
在设计好关系模式并确定好每个关系模式的主码后,接着根据这些关系模式之间的关联关系确定关系模式的外码。
由基本E-R模型可得,“学生”关系中的“学号和姓名”与“教学班信息表”关系中的“学生学号和学生姓名”分别是同语义且取值域相同。
第四章物理设计
数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理设计。
数据库的物理设计通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的中的是时间和空间效率。
4.1 关系中的关系模式
图书管理系统中的关系模式如下:
(1)学生(学号,姓名,性别,年龄,所在系)主码:学号
(2)任课老师(工号,姓名,职称)主码:工号
(3)教务处(用户名,登入密码)主码:用户名
(4)课程表(课程号,课程名,学分,上课时间,上课地点,代课老师)主码:课程号
(5)学生成绩表(姓名,学号,课程号,成绩)主码:学号,课程号
(6)教学班信息表(学生姓名,学生学号,所在系,成绩,上课地点,上课时间)主码:学生学号
4.2 基本表设计
利用MicrosoftSQLServer2000建立一个空数据库book,其中包括以下表。
表5.1 教务处
create table 教务处
(用户名char(20) primary key,
登入密码char(20)not null)
表5.2 学生
create table 学生
(学号int(10)primary key,
姓名char(20)not null ,
性别char(20)not null,
年龄char(20) not null ,
所在系char(50) not null )
表5.3 任课老师
(工号int(10) primary key,
姓名char(20)not null,
职称char(20)
表5.4课程表
create table 课程表
(课程号char(20)primary key,
课程名int(20)not null,
学分int(5)not null,
上课时间char(20)not null,
上课地点char(20) not null,
代课老师char(20) not null)
表5..5学生成绩
create table 学生成绩
(姓名char(20) ,
学号int(10),
课程号int(10) not null,
成绩int(10) not null,
primary key(姓名,学号),
foreign key(学号) references 学生(学号))
表5.6教学班信息表
create table 教学班信息表
(学生姓名char(20) primary key,
学生学号char (20)not null,
所在系int not null,
成绩int not nul,
上课地点place not nul,
上课时间Datetime not nul)
第五章数据库的实施和维护
数据库物理设计完成之后,需要用RDBMS提供的数据定义语言和其他使用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,在经调试产生目标文件。
5.1 数据的载入
1、向学生表中插入三条信息:
(1)insert into 学生
values('2009010111','吴涛','男','21','计算机系'')
(2)insert into 学生
(3)values('2009010222','李玲','女','21','外语系')
(3)insert into 学生
(4)values(2009010333','王伟','男','22','化学系')
2、向课程表中插入三条信息:
(1)insert into 课程表
values('1','旅游学','计算机','4','2:00','3','李林')
(2)insert into 课程表
values('2','计算机','4','3:00','3','2007-1-1','陈飞')
(3)insert into 课程表
values('3,'花卉','2','8:00','2','王强')
5.2 应用程序的调试
连接数据库代码如下:
Dim connectionstring As String
conn.connectionstring = ("Provider=SQLOLEDB;User ID=sa;PWD=;Initial Catalog=book;Data Source=.")
conn.Open connectionstring
cnt = 0
数据查询代码如下:
(1)查询课程表
select*
from课程表;
select*
from学生;
5.3 数据库的维护
在数据库运行阶段,对数据库经常性的维护工作主要是有DBA完成,它包括:
1.数据库的转储和恢复
2.数据库的安全性和完整性控制
3.数据库性能的监督、分析和改造
4.数据库的重组织与重构造
5.3.1 维护
数据库既是共享的资源,又要进行适当的保密。
DBA必须对数据库安全性和完整性控制负起责任。
尤其在计算机网络普遍引应用的今天,保证数据安全、防止黑客攻击、防止病毒入侵等,都是DBA所需要面对的。
按照设计阶段提供的安
全防范和故障恢复规范,DBA要经常检查系统的安全是否受到侵犯,根据用户的实际需要授予用户不同的操作权限。
数据库在运行过程中,由于应用环境发生变化,对安全性的要求可能发生变化,DBA要根据实际情况及时调整相应的授权和密码,以保证数据库的安全性。
同样数据库的完整性约束条件也可能会随应用环境的改变而改变,这时DBA也要对其进行调整,以满足用户的要求。
5.3.2检测并改善数据库性能
目前许多DBMS产品都提供了检测系统性能参数的工具,DBA可以利用系统提供的这些工具,经常对数据库的存储空间及响应时间进行分析评价;结合用户的反映情况确定改进措施;及时改正运行中发现的错误;按用户的要求对数据库的现有功能进行适当的扩充。
但要注意在增加新功能时应保证原有功能和性能不受损害。
5.3.3重新组织和构造数据库
数据库建立后,除了数据本身是动态变化外,随着应用环境的变化,数据库本身也必须变化以适应应用要求。
数据库运行一段时间后,由于记录在不断增加、删除和修改,会改变数据库的物理存储结构,使数据库的物理特性受到破坏,从而降低数据库存储空间的利用率和数据的存取效率,使数据库的性能下降。
因此,需要对数据库进行重新组织,即重新安排数据的存储位置,回收垃圾,减少指针链,改进数据库的响应时间和空间利用率,提高系统性能。
这与操作系统对“磁盘碎片”的处理的概念相似。
数据库的重组只是使数据库的物理存储结构发生变化,而数据库的逻辑结构不变,所以根据数据库的三级模式,可以知道数据库重组对系统功能没有影响,只是为了提高系统的性能。
由此可知,数据库的重组并不会改变原设计的数据逻辑结构和物理结构,而数据库的重构造则不同,它部分修改原数据库的模式或内模式,这主要是因为数据库的应用环境发生了变化,如需求变化、设计调整等。
例如增加新的数据项、改变数据类型、改变数据库的容量、增加或删除索引、修改完整性约束等。
DBMS一般都提供了重新组织和构造数据库的应用程序,以帮助DBA完成数
据库的重组和重构工作。
只要数据库系统在运行,就需要不断地进行修改、调整和维护。
一旦应用变化太大,数据库重新组织和构造也无济于事,这就表明数据库应用系统的生命周期结束,应该建立新系统,重新设计数据库。
从头开始数据库设计工作,标准着一个新的数据库应用系统生命周期的开始。