1、(完整word版)数据库课程设计学生选课信息管理系统SQL2005上海电机学院电子信息学院数据库原理课程设计设计题目: 学生选课信息管理系统 专 业: 软件工程 班 级: BX0903 学 号: 111103150303 姓 名: 孙 诚 组 长: 孙 诚 组 员: 张婉珺、王骏怡、陶静 2011年12月8课程设计评分表姓 名班 级学 号课设题目指导教师评分项目满分分值得分设计文档(30分)文档格式封面2页面布局4目录格式3图表质量2页眉页脚2文档内容内容完整性6内容逻辑性5内容正确性6程序代码(30分)程序功能15编程规范7编程文档8答辩(20分)课题陈述7问题答辩10是否超时3考勤(20分
2、)20总评成绩指导教师评语签名: 年 月 日教研室意见签名: 年 月 日课程设计答辩记录表教师提问学生答辩情况记录成绩答辩小组教师签名摘要随着科技的不断发展,学生的选课信息已经摈弃了以往的手工文件管理阶段,进化成为了高科技、高效率的数据库应用程序来进行管理。学生选课信息管理系统是基于SQL SERVER数据库为后台、VB开发应用软件作为前台的一种C/S模式的数据库应用程序。使用学生选课信息管理系统可以更高效、准确地进行学生选课、查询、记录添加等各种操作,大大减少信息管理人员的负担。关键词:学生选课信息管理系统,VB,SQL SERVER数据库,C/S模式目录摘要4目录5第一章 系统概述6第二章
3、 系统数据库设计部分72.1 需求分析72.1.1 需求描述72.1.2 数据流图82.1.3 数据字典92.2 数据库概念结构设计102.2.1 E-R图102.2.2 实体及属性的定义102.3 数据库逻辑结构设计112.3.1 初始关系模式112.3.2 规范化处理112.4 数据库物理结构设计112.4.1 基于SQL Server的数据表设计122.4.2 索引表132.4.3 角色132.4.4 视图142.5 数据库操作部分152.5.1 数据库的插入操作152.5.4 数据库的备份及还原操作16第三章 系统界面设计部分193.1 应用程序与其菜单项规划193.2 登录界面设计1
4、93.3 主界面设计203.4 子界面设计21第四章 总结24主要参考文献25第一章 系统概述数据库原理及应用课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。我
5、们按照以上几点开发了学生选课管理系统数据库。学生选课信息管理系统要求读者较好的正规数据库知识与技术外,还要求读者掌握某种客户端开发工具或语言。这里是利用相对简单易学易掌握的Visual Basic 6.0 开发工具来实现示例系统的。如果读者对该开发工具不熟悉,这里也无妨。这次课程设计能顺利通过是老师的细心指导和我们小组团结一致、努力的结果。在这次课程设计中每位同学都积极参与各项环节的设计,但我们也有分工。初步列出如下:孙诚是用VB制作前台的界面以及数据库整体设计与规划;张婉珺和王骏怡担任的工作是对系统的需求分析、构思数据流图、把E-R图转化成关系模型并对其进行规范化处理、用SQL语言建表、视图
6、以及文档的初步编写等。陶静的工作是负责画数据流图和E-R图,以及转化初始关系模型,和内容摘要等的编写。孙诚作为组长,除对我们所制作单个模块审核外还担任了WORD文档的总结排版。这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。第二章 系统数据库设计部分2.1 需求分析2.1.1 需求描述随着中国教育信息化时代的来临,各大校园对于内部信息的管理已经采用IT新潮的应用和管理系统技术来进行。为了紧随信息化时代的脚步,不被时代所淘汰,学生的信息管理也应当由传统的手工管理模式进化为软件与数据库结合应用的管理模式,从而加强学生信息的管理能力,让学校整体管理水平得到较大的提升。通过调查本地
7、的学校,根据学校的具体情况设计学生选课信息管理系统。主要功能有:1. 学生管理:学生信息查询、插入、删除、修改等2. 课程管理:课程信息查询、插入、删除、修改等3. 选课管理:选课信息查询、插入、删除、修改等4. 系统管理:操作员信息的管理 5. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等2.1.2 数据流图请求结果正确信息输入请求更新请求更新结果输入请求核对结果待检验信息信息规范操作员正确信息输出结果错误信息个人信息管理系统查询认证操作员P规则表信息规范输出结果输入请求教师输出结果学生输出结果输入请求查询信息处理标准查询表图2.1 数据流图(1)规范表修改请求规范表插入
8、结果插入请求插入结果插入请求查询结果查询请求信息规范P2插入操作员P1查询规范表修改结果修改请求删除结果删除请求查询请求查询结果管理系统删除请求修改结果P3修改P4删除图2.2 数据流图(2)2.1.3 数据字典数据元素数据类型长度数据来源学号char5学生表学生姓名char8学生表性别char2学生表生日smalldatetimedefault学生表所在系char20学生表课程号char3课程表课程名char20课程表学分decimal3,1课程表学号char5选课表课程号char3选课表操作员编号char4操作员表操作员姓名char12操作员表密码char10操作员表权限char20操作员
9、表2.2 数据库概念结构设计2.2.1 E-R图学号选课成绩学生nm姓名所在系出生日期性别课程课程代码课程名称先行课号学分操作员操作员编号操作员姓名名密码权限图2.3 数据库E-R图2.2.2 实体及属性的定义表2-1 学生信息表Student的表结构主码列 名数据类型宽度小数位空否备 注PkSnoChar5N学号SnameChar8N姓名SexChar2Y性别SbirthSmallDatetimeY出生日期SdeptChar20Y所在系表2-2 课程信息表Course的表结构主码列 名数据类型宽度小数位空否备 注PkCnoChar3N课程代码CnameChar20N课程名称CreditDec
10、imal31Y学分表2-3 选课成绩表SC的表结构主码列 名数据类型宽度小数位空否备 注PkSnoChar5N学号CnoChar3N课程代码GradeDecimal51Y成绩表2-4 操作员表Operator的表结构主码列 名数据类型宽度小数位空否备 注PkOperator_idChar4N操作员编号Operator_nameChar12N操作员姓名PasswordChar10Y密码PermissionChar20Y权限2.3 数据库逻辑结构设计2.3.1 初始关系模式Student(Sno,Sname,Sex,Sbirth,Sdept)其中各项含义分别为:学生(学号,姓名,性别,出生日期,所
11、在系)Course(Cno,Cname,Credit)其中各项含义分别为:课程(课程代码,课程名称,学分)SC(Sno,Cno,Grade)其中各项含义分别为:选修(学号,课程代码,成绩)Operator(Operator_id,Operator_name,Password,Permission)其中各项含义分别为:操作员(操作员编号,操作员姓名,密码,权限)2.3.2 规范化处理经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。(下划线代表主码,斜体外码)Student(Sno,Sname,Sex,Sbirth,Sdept)Course(Cno,C
12、name,Credit)SC(Sno,Cno,Grade)Operator(Operator_id,Operator_name,Password,Permission)2.4 数据库物理结构设计2.4.1 基于SQL Server的数据表设计用SQL SERVER MANAGEMENT STUDIO建表,以学生表为例如下图所示:图2.4学生表用SQL语言建表代码如下:create table Student(Sno char(5) primary key,Sname char (8) not null,Sex char(2) check (sex in(男,女),Sbirth smalldat
13、etime,Sdept char(20);gocreate table Course(Cno char(3) primary key,Cname char(20) not null,Credit Decimal(3,1)gocreate table SC(Sno char(5) references Student(Sno),Cno char(3) references Course(Cno),Grade decimal(5,1),constraint pk primary key(Sno,Cno)gocreate table Operator(Operator_id char(4) prim
14、ary key,Operator_name char(12) not null,Password char(10),Permission char(20) default 0)go2.4.2 索引表表2-5 学生信息表Student的表索引表索引列 名数据类型宽度主SnoChar5无SnameChar8无SexChar2无SbirthSmallDatetime无SdeptChar20表2-6 课程信息表Course的索引表索引列 名数据类型宽度主CnoChar3无CnameChar20无CreditDecimal3表2-7 选课成绩表SC的索引表索引列 名数据类型宽度主SnoChar5CnoC
15、har3无GradeDecimal5表2-8 操作员表Operator的索引表索引列 名数据类型宽度主Operator_idChar4无Operator_nameChar12无PasswordChar10无PermissionChar202.4.3 角色建立了操作员角色图2.5 角色2.4.4 视图用SQL管理工具建立常用的一个视图,即学生_成绩视图。菜单栏中单击工具 向导 数据库 创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。使用SQL语句建立视图的命令如下:create view 学生_成绩asselect sc.sno,sname,o,cname,grad
16、efrom student join sc on student.sno = sc.sno join course on o =o 图2.6 学生_成绩视图预览2.5 数据库操作部分2.5.1 数据库的插入操作INSERT INTO (,) VALUES(,);例如:在学生表中插入一个新同学的相关信息(注:学号是主码,故不可以相同)insertinto studentvalues(04,张伟,男,1990-2-3,计算机) 2.5.2 数据库的修改操作UPDATE SET= WHERE;例如:在学生表中修改学号为04的所在系为人文科学。update studentset sdept=人文科学w
17、here sno=04 2.5.3 数据库的删除操作DELETE FROMWHERE;例如:删除学号为04的相关信息deletefrom studentwhere sno=042.5.4 数据库的备份及还原操作使用 SQL Server 模糊备份和还原操作: 将包含数据的扩展盘区写入备份集,而无需考虑使备份期间正由用户修改的页同步。这显著减小了备份对当前用户的影响。还使备份得以串行地复制页。取消了所有随机读取,从而加快使用频繁的系统中的备份过程。但这同时也意味着备份中的页以一种不一致的、无法恢复的状态存储。 将事务日志作为备份的一部分复制。 RESTORE 语句: RESTORE FILELI
18、STONLY FROM DISK = D:info.bak RESTORE DATABASE TestDB FROM DISK = D:info.bak WITH MOVE info TO D:testdb.mdf, MOVE info_log TO D:testdb.ldf 如果数据库不存在,则创建数据库,并初始化数据库中的扩展盘区。如果 RESTORE 语句执行时数据库已存在,则可以跳过这一步。 复制备份集中的扩展盘区。因为所有的扩展盘区都按串行顺序排列,所以这个过程较快。将忽略未在备份集中找到的扩展盘区;它们将不作为空的扩展盘区进行初始化。 使用事务日志恢复数据库。将日志中记录的数据修改
19、前滚到日志末尾,然后回滚任何未完成的事务。这将使数据库返回到一致的已恢复状态,这种状态与数据库在 BACKUP 语句完成时的状态一致。 备份数据库BACKUP DATABASE infoTO DISK = D:info.bak还原数据库-返回由备份集内包含的数据库和日志文件列表组成的结果集RESTORE FILELISTONLY FROM DISK = D:info.bak-还原由BACKUP备份的数据库RESTORE DATABASE infoFROM DISK = D:info.bak -指定还原后的数据库物理文件名称及路径RESTORE DATABASE TestDBFROM DISK
20、= D:info.bakWITH MOVE info TO D:testtestdb.mdf,MOVE info_log TO D:testtestdb.ldfMOVE logical_file_name TO operating_system_file_name指定应将给定的 logical_file_name 移到 operating_system_file_name。默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE 语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重新定位数据库文件以避免与现有文件冲突。可以在不同的 MOV
21、E 语句中指定数据库内的每个逻辑文件。 -强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。RESTORE DATABASE TestDB FROM DISK = D:info.bakWITH REPLACE,MOVE info TO D:testtestdb.mdf,MOVE info_log TO D:testtestdb.ldf2.5.5 关系图图2.7 关系图第三章 系统界面设计部分3.1 应用程序与其菜单项规划结合Visual Basic 6.0进行数据库应用开发的特点,设计过程可按如下步骤进行:l 创建应用库及应用对象;l 创建全局变量;l 创建菜单;l 创建数据窗口
22、;l 创建窗口并在窗口中放置所需控件。系统的主菜单、各菜单项标题、名称:n 学生管理(m_student)u 学生信息录入(m_student_input):open(w_student_input)u 学生信息查询(m_student_query):open(w_student_query)n 课程管理(m_course)u 课程设置(m_course_set):open(w_course_set)u 课程查询(m_course_query):open(w_course_query)n 成绩管理(m_score)u 成绩录入(m_score_input):open(w_score_input
23、)u 成绩查询(m_score_query) 按学生查询(m_score_query_student):open(w_score_query_student) 按课程查询(m_score_query_course): open(w_score_query_course)n 系统管理(m_system)u 口令更改(m_system_password):open(w_changepassword)u 重新登录(m_system_relogin):open(w_login)u 操作员管理(m_system_operator):open(w_operator)n 退出系统(m_system_exit
24、):close(parentwindow)其中方形为一级菜单、菱形为二级子菜单、箭头为三级子菜单。3.2 登录界面设计打开程序后,首先进入欢迎与登录界面:图3.1 欢迎界面图3.2 登录界面3.3 主界面设计本程序是一个MDI(Multiple Document Interface)的多窗体文档界面。在一个主窗体下可以同时开启复数个子窗体,为此可实现一个同时的多点查询与操作。图3.3 MDI主窗体及其子窗体介绍3.4 子界面设计下面将以学生信息录入为例来介绍子窗体的设计,其余子窗体也大致采用类似的设计方法。首先点击菜单学生管理学生信息录入菜单项,弹出学生信息录入子窗体。图3.4 学生信息录入子
25、窗体当单击“添加”按钮时,将会弹出添加学生信息子窗体,确定后添加新纪录进入数据库。图3.5 学生信息录入子窗体再次查看学生表,可发现新添加的记录:图3.6 学生信息录入成功通过打开菜单学生信息管理学生信息查询菜单项,可以通过学号或姓名两种方式来查询学生信息。以下以通过学号来查询学生的信息,通过输入学号“04”来查询:图3.7 学生信息查询成功更多的信息操作功能与源代码的实现可查看本报告的附件VB程序与数据库文件。28第四章 总结经过这些天的设计和开发,学生选课信息管理系统基本开发完毕。本系统基本能够完成学生、课程、选课等信息查询、插入、删除、修改等。这次的课程设计是分组讨论和制作的。在制作的过
26、程中,我学到的不仅是知识,我还认识到许多事情。这次设计对我们的综合能力是一次很好的锻炼,使我的编程水平提高了一大步,同时也使我充分的认识到合作的可贵。在我们设计本次课题时,将书本上所学的知识尽可能地发挥到了实践中。经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施及数据库运营与维护6大阶段,我们制作并运营成功了一个强大的以SQL SERVER数据库与后台、以Visual Basic 6.0所制作的应用程序为前台在我们所制作的学生选课信息管理系统中,涉及到数据库、VB等,前台是用VB制作的,其中包括主界面和一些按扭等,后台用到的是我们所学的数据库的知识,建立了基本表和视图、角色等
27、,权限在前台已经制作,故在后台不在重复。在后台中我们还简单的制作了数据库的备份与还原,用来防止数据库遭到破坏,可即时修改。最后按照沈老师的要求编写成文档,从中也对WORD的运用提高了一步。但是该系统还有许多不尽如人意的地方,比如用户界面与SQL语言的连接上并不是很完善,这是因为我们对VB不是很了解。还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生选课管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。最后,在这里我要衷心的感谢我们的指导老师沈学东老师,沈老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高我们才能在短时间内顺利的完成这次课程设计。由于我们水平有限,因此在我们所设计的学生选课管理系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。29主要参考文献1数据库系统概论 作者:王珊 萨师煊 第四版 高等教育出版社 2006年2Visual Basic6.0数据库系统开发实例导航 作者: 刘韬、骆娟、何旭洪3数据库原理及应用实验指导 作者:钱雪忠 陶向东 北京邮电大学出版社 2005 30