1、 成 绩10信计-(一)数据库原理及应用课程设计设计题目 选修课管理系统 设计时间 .12.31-.1.4 学生姓名 学生学号 04022 所在班级 10信计(2) 指导老师 目录一、 可行性研究.3二、 需求分析.4三、 概要设计.5四、 逻辑设计.6五、 数据库实现.7六、 测试11七、 课程设计总结.12八、 参考文件.13九、附录.13 一、可行性研究1.1 系统开发背景数据库是从60年代初发展起来计算机技术。经过四十明年发展,数据库技术己经趋于成熟。Web数据库在新Internet环境中发生了很大改变。就数据应用而言展现出多样化空间,如数字图书馆、电子出版物、电子商务、远程教育系统等
2、出现,给web数据库技术提出了更多、更高要求。同时,伴随中国高校校园网建设,基于互联网应用系统开发正在蓬勃发展并发挥着较大作用。比如,中国很多高校网上招生系统,学校多种管理信息系统,学校选课系统,还有部分医学院校开发出网上诊所、远程诊疗系统等等,全部是基于校园网应用系统。1.2 系统设计目标在高等学校教务管理工作中,课程表编排是一项十分复杂、棘手工作。在排课过程中,除了满足大量制约条件以外,还必需处理很多冲突和矛盾,比如:两位老师不能同一时间在同一班级上课、一位老师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提升了排课工作科学性,又可大大减轻管理人员工作强度,提升工作效率,从
3、而使学校教务管理现代化迈上了一个新台阶。中国不少高校全部实施了学分制,它关键是许可学生自由选课,即把学习自主权交给学生。在这里,学生选课时制约原因比较复杂,工作量也很大,而且往往需要在较短时间内完成。利用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时轻易产生错误。 二、需求分析2.1 任务概述2.1.1 内容调查学习教务处,设计用于管理全校学生选修课活动系统。2.1.2 目标设计学生选课录入系统及学生选课查询界面。设计课程输入界面和学生选课表及课程选修情况查询界面。依据学生库和课程库,输出学生课程表。2.1.3 运行环境Windows x
4、p / 7操作系统下,安装并配置软件microsoft SQL server数据库管理系统。2.2 数据需求2.2.1 数据流图(DFD)2.2.2 数据字典(DD)“学生信息表”存放结构以下:数据存放:学生信息表;说明:学生基础情况;组成:以学号为关键;数据量:学生人数;存放方法:随机存放;“选课表”存放结构以下:数据存放:选课表;说明:学生选课情况;组成:以学号和课程号为关键;数据量:学生人数;存放方法:随机存放;“开课课程表”存放结构以下:数据存放:开课课程表;说明:全部开设课程情况;组成:以课程号为关键;数据量:课程数目;存放方法:随机存放;“成绩表”存放结构以下:数据存放:成绩表;说
5、明:选修各门课程成绩;组成:以学号和课程号为关键;数据量:很多;存放方法:随机存放;2.3 一致性需求在选修课管理系统中相关表中,有较强相关性,为何实现一致性需求,我们在各个表之间建立起了一致性约束。2.4 完整性需求依据选修课管理系统要求,为保持数据完整性,采取了数据库事务机制,预防出现操作故障。三、概要设计3.1接口设计3.1.2外部接口经过一定计算机硬件,建立服务器系统,管理员经过管理服务器系统,和用户进行交互,从而达成资源共享目标,实现选修课管理系统。3.1.2 内部接口 程序内部需要共同数据定义和描述,此系统是智能办公化管理系统一个子系统,必需和这个系统其它子系统统一数据定义等,才能
6、使该系统性能达成最好,而且要尽可能消除和其它子系统模块之间存在数据冗余,才能使整个智能办公系统做到高效,方便。 3.2 ER图四、逻辑设计4.1关系模式转化学生(学号,姓名,性别,年纪,籍贯);课程(课程号,课程名,课时,性质);选修(学号,课程号,成绩);五、 数据库实现5.1 创建数据库Optional数据库创建SQL 语句:create database optionalon ( name=optional filename=c:optional.mdf, size=100MB, maxsize=200MB, filegrowth=2MB)log on( name=optional_lo
7、g, filename=c:optional.ldf, size=20MB, maxsize=80MB, filegrowth=1MB)截图: 5.2 在数据库中创建表SQL语句以下:create table student ( sno int primary key, sname nvarchar(5), sex nchar, class int )create table course( cno int primary key, cname nvarchar(15), cnumber int )create table score( sno int, cno int, degree int
8、, primary key(sno,cno) foreign key(sno)references student(sno), foreign key(cno)references course(cno) )所创建表以下:向各表中插入数据以下:Student表: Course表: Score表: 5.2 建立查询查询结果以下:Student:Course:Score:5.3 创建视图创建视图SQL语句以下:create view student_view as select sno as学号,sname as姓名,sex as性别,class as班级 from studentcreate v
9、iew course_viewasselect cno as课程号,cname as课程名,cnumber as人数 from coursecreate view score_viewas select sno as学号,cno as课程号,degree as成绩 from score以下:依据student创建视图:依据course 创建视图: 依据score 创建视图:5.4 创建存放过程5.4.1用于查看全部学生存放过程,SQL语句以下:create procedure all_studentsas select * from student5.4.2用于查看全部课程存放过程,SQL语句
10、以下:create procedure all_coursesas select * from course5.4.3 用于查看全部学生所选课程成绩,SQL语句以下:create procedure all_scoreas select * from score5.5 创建触发器5.5.1 创建一个名为“trig_1”触发器,当向学生表添加统计时,该触发器自动显示学生表全部信息。create trigger trig_1 on student for insert as select * from student5.5.2 创建一个名为“trig_2”触发器,当试图向course表添加、修改或
11、删除统计时,该触发器自动显示以下信息:“对不起,你无权进行更新操作!”。create trigger trig_2 on course instead of insert,update,deleteas print对不起,你无权进行更新操作!5.5.3 创建“trig_3”触发器,当向score修改统计时,该触发器自动显示修改前和修改后统计。 Create trigger trig_3 on score for updateas select * from deleted -过去删除,即修改前数据; select * from inserted -插入 ,即修改后数据;六、测试测试良好,运行稳
12、定。七、课程设计总结经过此次数据库课程设计,真正达成了学和用结合,增强了对数据库方面应用了解,对自己以后参与开发数据库系统积累了不少经验,在试验过程中,从建立数据开始,对数据库设计理念及思想上有更高认识,从需求分析,到概念设计和逻辑设计,E-R图表示,数据字典创建,知道了不少相关数据库开发过程中知识,在试验中建表,及其关系模式,关系代数建立及了解,将SQL语言查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言灵活性,其中包含,插入、删除、修改、查询,牵涉表和表之间联络,主键和外主键定义,约束项设置,使逻辑更严密。在学习过程中,我也上网查了不少资料,也看了部分她人设计小型超市信息系统设计汇报,学以致用,自我创新,独立完成了这份自己汇报,从中从学到用,从用又到学,不停修改,系统更新。即使不能达成完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限,我以后还会在这个领域不停进行探索,掌握更多知识。八、参考文件1. 数据库原理及应用使用教程 姜代红 蒋秀莲 主编3. 网上资源 网友 提供4. 图书馆数据库相关资料 学校 提供九、附件相关SQL 语句及数据库文件见压缩文件中。