数据库课程设计网上选课系统.doc

上传人:飞****2 文档编号:63863300 上传时间:2022-11-27 格式:DOC 页数:14 大小:434.50KB
返回 下载 相关 举报
数据库课程设计网上选课系统.doc_第1页
第1页 / 共14页
数据库课程设计网上选课系统.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《数据库课程设计网上选课系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计网上选课系统.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据库系统课程综合性实验报告 实验题目数据库的设计及应用一、实验目的利用一种DBMS作为设计工具,理解并应用课程中关于数据库设计的相关理论,能按照设计流程完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够应用各个阶段的典型工具。二、设备与环境(1) 硬件设备:PC机一台(2) 软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2000等。三、实验内容完整实践应用数据库设计的工程过程:需求分析概念设计逻辑设计物理设计和实施:(1)需求分析:选定一个应用,对所设计的数据库系统有一定的调研分析,其结果应该以简单的需求分析说明书数据字典和数据流图

2、(2级数据流即可)表示;(2)概念分析:使用E-R图作为描述工具.描述出局部和全局的E-R图;(3)逻辑设计:将E-R图转化为相应的关系模式,并根据范式理论进行优化分析,关系模式不少于3个;(4)物理设计:根据需要设计必要的索引等结构;(5)实施:以某种DBMS为工具创建出完整的数据库.在数据库中要表现出的知识点包括登录控制 (标准登录或混合登录)数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器)设置用户,并相应设计用户的权限和角色(用户设计至少3个,有不同的权限)以游标或存储过程完成相关操作至少2个,以文件方式保存(6)以上内容,请详细描述,并有必要抓图.四、实验结果及分析1.

3、需求分析随着信息时代科技不断提高,学校规模不断扩大,教学质量不断提高,大学期间有许多公共选修课,以往的选修课方法是课堂报名或者纸上填写方式报名,这种方法虽然直接,但是造成选课的盲目性,而且学生选过课程后不好在更改查看,一方面浪费大量的人力,物力资源,另一方面浪费时间以及在认为统计过程中不可避免的出现差错的情况。这给广大的老师和学生带来诸多的不便,管理起来也相当困难。使用网上选课系统可以提前进行网上选课,并且选课以后学生还可以在查看和更改,随意选择各个老师的课程,老师管理起来也比较方便。鉴于它的重要性,这就迫切需要研制开发一款功能强大,操作简单,具有人性化的网上选课系统。 通过对学生选课管理系统

4、工作内容和相关数据流程分析,根据选课管理系统的需要,设计出满足各种用户(管理员,教师,学生)的实体,以及他们之间的关系,得到数据库的模型。系别包括系别号与系别名。专业表包括专业号与专业名。学生表包括学号,姓名,年龄,性别,年纪,系别号,专业号等。教师表包括教师号,姓名,性别,系别号。课程表包括课程号,课程名,学分,学时,开课状态,已选人数,限选人数等。 选课结果表包括学号,课程号,成绩。授课表包括课程号,教师号。管理员表包括ID,用户名与密码。数据字典:名字:教师信息表别名:Teachers描述:记录教师的信息定义:教师信息表= 教师号+姓名+性别+系别号位置:数据库名字:系别表别名: Dep

5、art描述:记录系别信息定义:系别表=系别名+系别号位置:数据库名字:专业表别名: Profess描述:记录专业信息定义:专业表=专业名+专业号位置:数据库名字:学生信息表别名:Students描述:记录学生的信息定义:学生信息表= 学号+姓名+年龄+性别+年级+班级+系别名+专业名位置:数据库名字:课程表别名:Course描述:记录课程的信息定义:课程表= 课程号+课程名+学分+学时+开课状态+已选人数+限选人数位置:数据库名字:选课结果表别名: Class描述:记录选课信息定义:选课结果表=学号+课程号+成绩位置:数据库名字:授课表别名: Result描述:记录授课信息定义:授课表=课程号

6、+教师号位置:数据库名字:管理员表别名: admin描述:记录授课信息定义:管理员表=ID+用户名+密码位置:数据库数据流图:学生返回课程选课成绩查询查询,更改选课学生信息教师登陆验证申请课程课程信息教师信息判分管理员(最高权限)批准课程与否管理员信息登陆验证返回 结构数据流图数据处理流程图:2. 概念结构设计实体有:学生、系别、专业、课程、教师、管理员。总体E-R图: 学生教师属于系/专业选择申请课程批准管理员局部E-R图:系别系别号系别名专业别专业号专业名学生学号姓名年龄姓名年级班级系别专业教师教师号姓名性别系别课程课程号课程名学分状态(教师申请用)学时已选人数限选人数课程号成绩选课结果学

7、号授课课程号教师号管理ID用户名密码各表关系局部E-R图3. 逻辑结构设计关系模式:系别:(系别号,系别名)专业:(专业号,专业名)学生:(学号,姓名,年龄,性别,年级,班级,系别名,专业名)教师:(教师号,姓名,性别,系别号)课程:(课程号,课程名,学分,学时,状态,已选人数,限选人数)选课结果:(学号,课程号,成绩)授课:(课程号,教师号)管理员:(ID,用户名,密码)共需8个数据表:系别表、专业表、学生表、教师表、课程表、选课结果表,授课表,管理员表。各表关系分析:1) 过程分析:选课系统面向3个用户群体:学生,教师与管理员。首先,学生根据自己的学号(主键)与姓名登陆选课系统,进入可以选

8、课,查询自己的信息(专业,所在系部等。)查询选课信息(并可以退选)。教师根据自己的教师号与姓名进行登陆,可根据自己的知识情况申请开设课程,并设计学时学分与人数等,有课教师学期末可以给学生成绩。管理员拥有最高权限,可以查看,更改所有教师学生信息,并通过调查审核批准教师的开课与否。2) 关系分析:系别/专业表存储的是学生信息。学生表存储学生信息,主键学号。教师表存储教师信息,课程表存储选课的信息,包括开课状态,是否已选满(check约束)等,选课结果包括学生的学号与课程号(当学生选课后为自动触发填充型),授课表根据教师申请状态自动填充。管理员表拥有最高权限,可更改,批准所有信息。各表字段说明:系别

9、表Depart字段数据类型长度允许空值备注Depno Char 20 否主键Depnamevarchar50否系别名专业表Profess字段数据类型长度允许空值备注ProIDchar20否主键 专业号ProNamevarchar50否专业名称学生表Students字段数据类型长度允许空值备注Snochar20否学号 主键Snamevarchar50否学生姓名Sagechar20否学生年龄SsexChar20否性别Sgradevarchar20否年级SclassVarchar20否班级DepnOchar20否学生系别ProIDchar20否学生专业教师表Teachers字段数据类型长度允许空值备

10、注Tnochar20否教师号 主键Tnamevarchar50否教师姓名TsexChar20否教师性别Depno char20否教师所在系课程表Course 字段数据类型长度允许空值备注Cnochar20否课程号Cnamevarchar50否课程名Creditfloat否学分Ctimeint否学时Stateint否开课状态Cstunochar20否已选人数Ccstuchar20否限选人数选课结果表Result字段数据类型长度允许空值备注Snochar20否学号Cnochar20否课程号Scorechar20否分数授课表class字段数据类型长度允许空值备注Cnochar20否课程号Tnocha

11、r20否教师号管理员表:admin字段数据类型长度允许空值备注IDInt否主键 编号NameChar20否用户名Passwordchar20否密码4.代码编写与物理设计 登陆,建库,做好备份.(代码略) 数据完整性各表中主键均不能为空且取值唯一,以选课表为例,列出各表及字段说明。 Course表设计 各表间的外键关系及约束.部分代码:create table Teachers(Tno char(5) primary key not null, Tname char(10) not null,Tsex char(2) not null ,Depno char(20) foreign key re

12、ferences Depart(Depno) NOT NULL )由于代码较多其它略. Students与result Depart与teachers Course与result其他略!约束部分代码:(Course表,其它略) Cstuno char(20) not null check(Cstuno=0) default 0,Ccstu char(20) not null check(Ccstu=0 and Ccstu=120) default 50 Result表约束 触发器设计: 存储过程create procedure sp_add(Sno char(20),Cno char(5),

13、Score float)asif not exists(select * from Students where Sno=Sno)/*检验学号*/beginprint 该学号不存在!return -1endif not exists(select * from Course where Cno=Cno)/*检验课程号*/beginprint 该课程号不存在!return -1endif not exists(select * from Result where (Cno=Cno and Sno=Sno)/*检验课程号*/beginprint 该课程号已经选过一次!return -1endbeg

14、ininsert Result values (Sno,Cno,Score) update Course set Cstuno=Cstuno+1 where Cno=Cnoend 选课存储过程退课:/*退课存储过程*/create procedure sp_delete(Sno char(20),Cno char(5) )asif not exists(select * from Students where Sno=Sno)/*检验学号*/beginprint 该学号不存在!return -1endif not exists(select * from Course where Cno=Cn

15、o)/*检验课程号*/beginprint 该课程号不存在!return -1endif not exists(select * from Result where (Sno=Sno and Cno=Cno) /*检验是否已经选课*/beginprint 您还未选该课!return -1endbegindelete from Result where (Sno=Sno and Cno=Cno ) update Course set Cstuno=Cstuno-1 where Cno=Cnoend五、总结 通过本次课程设计,我对SQL Server2000有了更深的了解,数据库和表是SQL Se

16、rver 2000用于组织和管理数据的基本对象,用户使用SQL Server 2000设计和实现查询信息,首要的任务是实现数据库的数据的表示和存储,即创建数据库和表。感谢此次设计中老师和同学给与的帮助。参考文献:【1】 李明方,SQL Server数据库开发实例教程,北京大学出版社 【2】 郑阿奇 ,SQL Server教程,清华大学出版社 【3】 Jeffrey D.Ullman,数据库系统基础教程,机械工业出版社 教 师 评 价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:年 月 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁