收藏 分销(赏)

数据库课程设计学生选课信息管理系统SQL.doc

上传人:二*** 文档编号:4496187 上传时间:2024-09-25 格式:DOC 页数:30 大小:849KB
下载 相关 举报
数据库课程设计学生选课信息管理系统SQL.doc_第1页
第1页 / 共30页
本文档共30页,全文阅读请下载到手机保存,查看更方便
资源描述
(完整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分) 20 总评成绩 指导教师评语 签名: 年 月 日 教研室意见 签名: 年 月 日 课程设计答辩记录表 教 师 提 问 学 生 答 辩 情 况 记 录 成绩 答辩小组教师签名 摘要 随着科技的不断发展,学生的选课信息已经摈弃了以往的手工文件管理阶段,进化成为了高科技、高效率的数据库应用程序来进行管理。学生选课信息管理系统是基于SQL SERVER数据库为后台、VB开发应用软件作为前台的一种C/S模式的数据库应用程序。使用学生选课信息管理系统可以更高效、准确地进行学生选课、查询、记录添加等各种操作,大大减少信息管理人员的负担。 关键词:学生选课信息管理系统,VB,SQL SERVER数据库,C/S模式 目录 摘要 4 目录 5 第一章 系统概述 6 第二章 系统数据库设计部分 7 2.1 需求分析 7 2.1.1 需求描述 7 2.1.2 数据流图 8 2.1.3 数据字典 9 2.2 数据库概念结构设计 10 2.2.1 E-R图 10 2.2.2 实体及属性的定义 10 2.3 数据库逻辑结构设计 11 2.3.1 初始关系模式 11 2.3.2 规范化处理 11 2.4 数据库物理结构设计 11 2.4.1 基于SQL Server的数据表设计 12 2.4.2 索引表 13 2.4.3 角色 13 2.4.4 视图 14 2.5 数据库操作部分 15 2.5.1 数据库的插入操作 15 2.5.4 数据库的备份及还原操作 16 第三章 系统界面设计部分 19 3.1 应用程序与其菜单项规划 19 3.2 登录界面设计 19 3.3 主界面设计 20 3.4 子界面设计 21 第四章 总结 24 主要参考文献 25 第一章 系统概述 《数据库原理及应用》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。 为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。我们按照以上几点开发了学生选课管理系统数据库。 学生选课信息管理系统要求读者较好的正规数据库知识与技术外,还要求读者掌握某种客户端开发工具或语言。这里是利用相对简单易学易掌握的Visual Basic 6.0 开发工具来实现示例系统的。如果读者对该开发工具不熟悉,这里也无妨。 这次课程设计能顺利通过是老师的细心指导和我们小组团结一致、努力的结果。在这次课程设计中每位同学都积极参与各项环节的设计,但我们也有分工。初步列出如下:孙诚是用VB制作前台的界面以及数据库整体设计与规划;张婉珺和王骏怡担任的工作是对系统的需求分析、构思数据流图、把E-R图转化成关系模型并对其进行规范化处理、用SQL语言建表、视图以及文档的初步编写等。陶静的工作是负责画数据流图和E-R图,以及转化初始关系模型,和内容摘要等的编写。孙诚作为组长,除对我们所制作单个模块审核外还担任了WORD文档的总结排版。这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。 第二章 系统数据库设计部分 2.1 需求分析 2.1.1 需求描述 随着中国教育信息化时代的来临,各大校园对于内部信息的管理已经采用IT新潮的应用和管理系统技术来进行。为了紧随信息化时代的脚步,不被时代所淘汰,学生的信息管理也应当由传统的手工管理模式进化为软件与数据库结合应用的管理模式,从而加强学生信息的管理能力,让学校整体管理水平得到较大的提升。 通过调查本地的学校,根据学校的具体情况设计学生选课信息管理系统。主要功能有: 1. 学生管理:学生信息查询、插入、删除、修改等 2. 课程管理:课程信息查询、插入、删除、修改等 3. 选课管理:选课信息查询、插入、删除、修改等 4. 系统管理:操作员信息的管理 5. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等 2.1.2 数据流图 请求结果 正确信息 输入请求 更新请求 更新结果 输入请求 核对结果 待检验信息 信息规范 操作员 正确信息 输出结果 错误信息 个人信息 管理系统 查询认证 操作员 P 规则表 信息规范 输出结果 输入请求 教师 输出结果 学生 输出结果 输入请求 查询信息处理 标准查询表 图2.1 数据流图(1) 规范表 修改请求 规范表 插入结果 插入请求 插入结果 插入请求 查询结果 查询请求 信息规范 P2插入 操作员 P1查询 规范表 修改结果 修改请求 删除结果 删除请求 查询请求 查询结果 管理系统 删除请求 修改结果 P3修改 P4删除 图2.2 数据流图(2) 2.1.3 数据字典 数据元素 数据类型 长度 数据来源 学号 char 5 学生表 学生姓名 char 8 学生表 性别 char 2 学生表 生日 smalldatetime default 学生表 所在系 char 20 学生表 课程号 char 3 课程表 课程名 char 20 课程表 学分 decimal 3,1 课程表 学号 char 5 选课表 课程号 char 3 选课表 操作员编号 char 4 操作员表 操作员姓名 char 12 操作员表 密码 char 10 操作员表 权限 char 20 操作员表 2.2 数据库概念结构设计 2.2.1 E-R图 学号 选课 成绩 学生 n m 姓名 所在系 出生日期 性别 课程 课程代码 课程名称 先行课号 学分 操作员 操作员编号 操作员姓名名 密码 权限 图2.3 数据库E-R图 2.2.2 实体及属性的定义 表2-1 学生信息表Student的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Sno Char 5   N 学号   Sname Char 8   N 姓名   Sex Char 2   Y 性别   Sbirth SmallDatetime     Y 出生日期   Sdept Char 20   Y 所在系 表2-2 课程信息表Course的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Cno Char 3   N 课程代码   Cname Char 20   N 课程名称   Credit Decimal 3 1 Y 学分 表2-3 选课成绩表SC的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Sno Char 5   N 学号 Cno Char 3   N 课程代码   Grade Decimal 5 1 Y 成绩 表2-4 操作员表Operator的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Operator_id Char 4   N 操作员编号   Operator_name Char 12   N 操作员姓名   Password Char 10   Y 密码   Permission Char 20   Y 权限 2.3 数据库逻辑结构设计 2.3.1 初始关系模式 Student(Sno,Sname,Sex,Sbirth,Sdept) 其中各项含义分别为:学生(学号,姓名,性别,出生日期,所在系) 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,Cname,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 smalldatetime, Sdept char(20) ); go create table Course( Cno char(3) primary key, Cname char(20) not null, Credit Decimal(3,1) ) go create table SC( Sno char(5) references Student(Sno), Cno char(3) references Course(Cno), Grade decimal(5,1), constraint pk primary key(Sno,Cno) ) go create table Operator( Operator_id char(4) primary key, Operator_name char(12) not null, Password char(10), Permission char(20) default '0' ) go 2.4.2 索引表 表2-5 学生信息表Student的表索引表 索引 列 名 数据类型 宽度 主 Sno Char 5 无 Sname Char 8 无  Sex Char 2 无  Sbirth SmallDatetime   无  Sdept Char 20 表2-6 课程信息表Course的索引表 索引 列 名 数据类型 宽度 主 Cno Char 3 无 Cname Char 20 无  Credit Decimal 3 表2-7 选课成绩表SC的索引表 索引 列 名 数据类型 宽度 主 Sno Char 5 Cno Char 3  无 Grade Decimal 5 表2-8 操作员表Operator的索引表 索引 列 名 数据类型 宽度 主 Operator_id Char 4 无  Operator_name Char 12 无  Password Char 10 无  Permission Char 20 2.4.3 角色 建立了操作员角色 图2.5 角色 2.4.4 视图 用SQL管理工具建立常用的一个视图,即学生_成绩视图。 菜单栏中单击工具→ 向导→ 数据库→ 创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。 使用SQL语句建立视图的命令如下: create view 学生_成绩 as select sc.sno,sname,o,cname,grade from student join sc on student.sno = sc.sno join course on o =o 图2.6 学生_成绩视图预览 2.5 数据库操作部分 2.5.1 数据库的插入操作 INSERT INTO <表名>[(<属性列1>[,<属性列2>…)] VALUES(<常量1>[,<常量2>]); 例如:在学生表中插入一个新同学的相关信息(注:学号是主码,故不可以相同) insert into student values('04','张伟','男',1990-2-3,'计算机') 2.5.2 数据库的修改操作 UPDATE <表名> SET<列名>=<表达式> [WHERE<条件>]; 例如:在学生表中修改学号为’04’的所在系为’人文科学’。 update student set sdept='人文科学' where sno='04' 2.5.3 数据库的删除操作 DELETE FROM<表名> [WHERE<条件>]; 例如:删除学号为’04’的相关信息 delete from student where sno='04' 2.5.4 数据库的备份及还原操作 使用 SQL Server 模糊备份和还原操作: ◆将包含数据的扩展盘区写入备份集,而无需考虑使备份期间正由用户修改的页同步。这显著减小了备份对当前用户的影响。还使备份得以串行地复制页。取消了所有随机读取,从而加快使用频繁的系统中的备份过程。但这同时也意味着备份中的页以一种不一致的、无法恢复的状态存储。 ◆将事务日志作为备份的一部分复制。 RESTORE 语句: RESTORE FILELISTONLY 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 语句执行时数据库已存在,则可以跳过这一步。 ◆复制备份集中的扩展盘区。因为所有的扩展盘区都按串行顺序排列,所以这个过程较快。将忽略未在备份集中找到的扩展盘区;它们将不作为空的扩展盘区进行初始化。 ◆使用事务日志恢复数据库。将日志中记录的数据修改前滚到日志末尾,然后回滚任何未完成的事务。这将使数据库返回到一致的已恢复状态,这种状态与数据库在 BACKUP 语句完成时的状态一致。 备份数据库 BACKUP DATABASE info TO DISK = 'D:\info.bak' 还原数据库 --返回由备份集内包含的数据库和日志文件列表组成的结果集 RESTORE FILELISTONLY FROM DISK = 'D:\info.bak' --还原由BACKUP备份的数据库 RESTORE DATABASE info FROM DISK = 'D:\info.bak' --指定还原后的数据库物理文件名称及路径 RESTORE DATABASE TestDB FROM DISK = 'D:\info.bak' WITH MOVE 'info' TO 'D:\test\testdb.mdf', MOVE 'info_log' TO 'D:\test\testdb.ldf' MOVE 'logical_file_name' TO 'operating_system_file_name' 指定应将给定的 logical_file_name 移到 operating_system_file_name。 默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE 语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重 新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定 数据库内的每个逻辑文件。 --强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。 RESTORE DATABASE TestDB FROM DISK = 'D:\info.bak' WITH REPLACE, MOVE 'info' TO 'D:\test\testdb.mdf', MOVE 'info_log' TO 'D:\test\testdb.ldf' 2.5.5 关系图 图2.7 关系图 第三章 系统界面设计部分 3.1 应用程序与其菜单项规划 结合Visual Basic 6.0进行数据库应用开发的特点,设计过程可按如下步骤进行: l 创建应用库及应用对象; l 创建全局变量; l 创建菜单; l 创建数据窗口; 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) 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):close(parentwindow) 其中方形为一级菜单、菱形为二级子菜单、箭头为三级子菜单。 3.2 登录界面设计 打开程序后,首先进入欢迎与登录界面: 图3.1 欢迎界面 图3.2 登录界面 3.3 主界面设计 本程序是一个MDI(Multiple Document Interface)的多窗体文档界面。在一个主窗体下可以同时开启复数个子窗体,为此可实现一个同时的多点查询与操作。 图3.3 MDI主窗体及其子窗体介绍 3.4 子界面设计 下面将以学生信息录入为例来介绍子窗体的设计,其余子窗体也大致采用类似的设计方法。首先点击菜单→学生管理→学生信息录入菜单项,弹出学生信息录入子窗体。 图3.4 学生信息录入子窗体 当单击“添加”按钮时,将会弹出添加学生信息子窗体,确定后添加新纪录进入数据库。 图3.5 学生信息录入子窗体 再次查看学生表,可发现新添加的记录: 图3.6 学生信息录入成功 通过打开菜单→学生信息管理→学生信息查询菜单项,可以通过学号或姓名两种方式来查询学生信息。以下以通过学号来查询学生的信息,通过输入学号“04”来查询: 图3.7 学生信息查询成功 更多的信息操作功能与源代码的实现可查看本报告的附件VB程序与数据库文件。 28 第四章 总结 经过这些天的设计和开发,学生选课信息管理系统基本开发完毕。本系统基本能够完成学生、课程、选课等信息查询、插入、删除、修改等。这次的课程设计是分组讨论和制作的。在制作的过程中,我学到的不仅是知识,我还认识到许多事情。这次设计对我们的综合能力是一次很好的锻炼,使我的编程水平提高了一大步,同时也使我充分的认识到合作的可贵。 在我们设计本次课题时,将书本上所学的知识尽可能地发挥到了实践中。经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施及数据库运营与维护6大阶段,我们制作并运营成功了一个强大的以SQL SERVER数据库与后台、以Visual Basic 6.0所制作的应用程序为前台 在我们所制作的学生选课信息管理系统中,涉及到数据库、VB等,前台是用VB制作的,其中包括主界面和一些按扭等,后台用到的是我们所学的数据库的知识,建立了基本表和视图、角色等,权限在前台已经制作,故在后台不在重复。在后台中我们还简单的制作了数据库的备份与还原,用来防止数据库遭到破坏,可即时修改。最后按照沈老师的要求编写成文档,从中也对WORD的运用提高了一步。但是该系统还有许多不尽如人意的地方,比如用户界面与SQL语言的连接上并不是很完善,这是因为我们对VB不是很了解。还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生选课管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。 最后,在这里我要衷心的感谢我们的指导老师沈学东老师,沈老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高我们才能在短时间内顺利的完成这次课程设计。由于我们水平有限,因此在我们所设计的学生选课管理系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。 29 主要参考文献 [1]数据库系统概论 作者:王珊 萨师煊 第四版 高等教育出版社 2006年 [2]Visual Basic6.0数据库系统开发实例导航 作者: 刘韬、骆娟、何旭洪 [3]数据库原理及应用实验指导 作者:钱雪忠 陶向东 北京邮电大学出版社 2005 30
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服