华北科技学院计算机系综合性实验报告.docx

上传人:b****5 文档编号:6901353 上传时间:2023-01-12 格式:DOCX 页数:20 大小:1.38MB
下载 相关 举报
华北科技学院计算机系综合性实验报告.docx_第1页
第1页 / 共20页
华北科技学院计算机系综合性实验报告.docx_第2页
第2页 / 共20页
华北科技学院计算机系综合性实验报告.docx_第3页
第3页 / 共20页
华北科技学院计算机系综合性实验报告.docx_第4页
第4页 / 共20页
华北科技学院计算机系综合性实验报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

华北科技学院计算机系综合性实验报告.docx

《华北科技学院计算机系综合性实验报告.docx》由会员分享,可在线阅读,更多相关《华北科技学院计算机系综合性实验报告.docx(20页珍藏版)》请在冰豆网上搜索。

华北科技学院计算机系综合性实验报告.docx

华北科技学院计算机系综合性实验报告

华北科技学院计算机系综合性实验

实验报告

 

课程名称网络数据库

实验学期2011至2012学年第2学期

学生所在系部计算机学院

年级09级专业班级网络B093班

学生姓名沈亚强学号_200907034313

任课教师孙改平

实验成绩

 

计算机系制

《网络数据库》课程综合性实验报告

开课实验室:

软件一室2012年6月11日

实验题目

学生成绩管理系统数据库设计

一、实验目的

通过该实验把数据库的理论知识(数据库和数据表的设计理论、数据完整性的实现、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。

二、设备与环境

硬件:

多媒体计算机

软件:

WindowsXP以上的操作系统、VisualBasic或其它可视化语言及SQLServer2008版本

三、实验内容及要求

1.数据库设计

要求数据库设计要合理,对数据库设计作必要的说明并抓图。

数据库名必须与自己真实姓名有关,所有同学不能同名。

图不要太大,看清即可。

2.数据表设计

要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要的说明并抓图。

数据表名必须与自己真实姓名有关,所有同学不能同名。

3.视图设计

要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。

不可以只取一个表的几个字段就算创建视图。

4.索引设计

要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。

5.数据完整性设计

根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。

6.存储过程和触发器设计

根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。

必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。

7.备份与恢复设计

根据系统需求作必要的备份与恢复设计,如需要对那些内容备份,备份策略、由谁来做备份、什么时间做备份等。

8.数据库安全设计

根据系统需求作必要的数据库安全设计,如本系统分几级用户、分别是什么角色成员具有什么操作权限等。

四、实验结果及分析

1.数据库设计

设计思想

学生成绩管理系统数据库,要能够容纳下整个学校学生的基本信息、教师的基本信息、学校所开设的课程信息以及学生修完课程后的成绩信息,并且能够具体实现。

数据库的大小根据实际情况设计其初始大小以、增长方式以及数据库文件的最大文件大小,由于学生数量、开设课程数量的不明确,可以设计数据库文件的最大文件大小方式为不限制增长。

学生成绩管理系统数据库的初始设计如下图示:

2.数据表设计

设计思想

在学生成绩管理系统里总共有四张表:

学生表、教师表、课程表、成绩表。

一个学生能选多门课程,一门课程可被多名学生;一门课程能被多名教师教授,一名教师亦能教授多门课程;一名教师能教多名学生。

学生表属性(学号、姓名、性别、年龄、专业、系部),在学生表中,学号是主键,负责记录学生的基本信息;

课程表属性(课程号、课程名、教师号、学时、学分),在课程表中,课程号是主键,负责记录开设的课程的基本信息以及课程所对应的讲课教师;

教师表属性(教师号、教师名、性别、教师系部、邮箱),在教师表中,教师号是主键,负责记录教师的基本信息。

成绩表属性(学号、课程号、课程名、成绩、学分),在成绩表中,学号和课程号作为主键,负责记录学生选修的课程及最终成绩。

具体实现

学生管理系统数据库的学生表初始设计结构图如下:

学生管理系统数据库的成绩表初始设计结构图如下:

3.视图设计

设计思想

创建视图V1,查询所有学生选课的信息,包括学号(lno)、姓名(xname)、课程号(cno)、课程名(cname)、成绩(grate)。

用于教务人员分析学生选课情况(例如网络数据库选修的学生人数为114人)及统计学生成绩情况(例如成绩不及格的学生学号、姓名、课程号)

创建视图V2,查询选修某门课程的学生的成绩的信息,包括课程号(cno)、课程名(cname)、成绩(grate)、学号(lno)、姓名(xname)、系部(xdept)。

用于教师分析和统计学生所选修其所教授的课程的成绩情况。

创建视图V3,查询选修课程(某一专业)成绩不及格的学生学号(lno)、课程号(cno)、成绩(grate)。

创建视图V4,查询网络工程专业各学生的学号(lno)、其选修课程号(cno)及成绩(grate)。

视图V3、V4用于辅导员对于各专业学生选课成绩的进行对比和分析,对于选课成绩不及格的学生予以记录。

具体实现

视图结构内部各表的键的联系图:

查询所有学生选课的信息及选课成绩信息图:

4.索引的建立

设计思想

根据学生成绩管理系统的各个表的设计结构:

(1)对于xsb表,按学号建立主键索引(PRIMARYKEY),组织方式为聚集索引。

(2)对于kcb表,按课程号建立主键索引,组织方式为聚集索引。

(3)对于cjb表,按学号+课程号建立唯一索引,组织方式为聚集索引。

(4)对于jsb表,按教师号建立唯一索引,组织方式为聚集索引。

以上四种情况的索引方式在设计各个表结构的主键时候,已经创建了索引。

对于kcb表,有时可以根据课程名(cname)列创建非聚集索引,提高检索速度。

对于cjb表,可以为成绩(grate)列创建非聚集索引,学生的成绩按高到低(降序)或者按低到高(升序)排列。

对于cjb表,可以为学分(xuefen)列利用FILLFACTOR语句创建非聚集索引。

具体实现

Cjb表的成绩(grate)列的非聚集索引、学分(xuefen)列的非聚集索引结果图:

5.数据完整性设计

设计思想

1、实体完整性

在定义实体完整性时,要求表中要有一个主键(PRIMARYKEY),那么对于xsb表来说,唯一能标示一名学生对应的行记录信息的字段应是学号(lno),以确保该学生对应的信息在xsb表中的唯一性,其对应的值不能为空值,而其他一些属性值可设计为notnull或者null,通过索引、UNIQUE约束、PRIMARYKEY约束来实现。

设计玩实体完整性后,如果向xsb表中插入或者修改主码值时,如果主码值不唯一或者为空,则拒绝插入或者修改,从而保证了实体完整性。

对于学生成绩管理系统数据库中的kcb表、jsb表、cjb表,它们对应的主键分别为:

Kcb表:

设置课程号(cno)属性作为唯一标示一门课程的主键。

Jsb表:

设置教师号(tno)属性作为唯一标示一名教师的主键。

Cjb表:

设置学号(lno)和课程号(cno)属性共同作为kcb表的主键。

主键字段所对应的值不能为空,亦不能出现重复的值,一旦向各个表中插入或者修改主键值时,如果主码值重复或者为空,则拒绝插入或者修改,从而保证了实体完整性。

2、域完整性

域完整性指定给列的有效性,其包括:

列值非空、列值唯一、CHECK短语,列值非空与列值唯一的符号分别为notnull和unique,其设计比较简单,另外,有些属性值需要有范围限制的则要用CHECK语句短语进行指定。

例如:

对于学生成绩管理数据库XSCJ313的cjb表,学生的成绩范围应在0~100之间,为了对“成绩”这一数据项输入的数据范围进行限制,可以定义成绩字段的约束条件来达到目的。

当学生成绩更改的值超过100或者低于0的值,将返回错误提醒。

3、参照完整性

对于学生成绩管理数据库中的xsb表的每一个学号,在cjb表中都有相关的课程成绩记录,将xsb表作为主表,“学号(lno)”字段定义为主键,cjb表为从表,表中的“学号”字段定义为外键;另外,学生成绩管理数据库中的kcb表的每一个课程号,在cjb表中都有相关的课程成绩记录,将kcb表作为主表,“课程号(lno)”字段定义为主键,cjb表为从表,表中的“课程号(lno)”字段定义为外键。

其实在学生成绩管理数据库各个表的属性间还可建立其他组参照完整性,例如:

cjb中的学号和课程号是分别参照引用xsb表的主码和kcb表的主键;当设计参照完整性时有些操作会发生级联操作,例如删除xsb表中的元组,学号值为200907024301,则要从cjb表中删除cjb.lno=2009070243o1的所有元组。

Cjb表与kcb表、xsb表间的参照关系图如下图所示:

 

6.存储过程和触发器设计

设计思想(根据系统需求作必要的存储过程和触发器设计的简单说明)

1、存储过程的创建

(1)返回计算机系(或者其他系)学生的成绩情况,存储过程不使用任何参数。

(2)从三个表中的连接中返回指定学生的学号、姓名、所选课程名称及该课程的成绩,存储过程在参数中使用了模式匹配。

2、触发器的创建

(1)创建触发器,当向cjb表中插入一名学生的成绩时,将xsb表中该学生的总学分加上添加的课程的学分,不及格的加0。

(2)创建触发器,在删除xsb表中的一条学生记录时将cjb表中该学生的相应记录也删除。

(3)创建学生成绩管理数据库作用域的DDL触发器,当删除一个表时,提示禁止该操作,然后回滚删除表的操作。

当删除数据库中的任何一个表时,会出现如下信息提示:

(4)创建DDL触发器,当删除一个数据库时,提示禁止该操作并回滚删除该数据库的操作。

(5)除了以上创建的触发器之外,还可创建其他类型的触发器,例如:

当修改kcb表中的课程号字段时,同时也要修改cjb表中的该课程号;当修改xsb表中的学号时,同时也要讲cjb表中的学号修改城响应的学号;可以在视图上创建INSTEADOF触发器,当向视图中插入数据时分别向表xsb表和cjb表插入数据,从而实现从视图插入数据的功能。

 

7.备份与恢复设计

设计思想

针对学生成绩数据库进行备份,就是制作数据库架构、对象以及数据的副本,以便在数据库遭到严重破坏的时候能够修复数据库。

定期备份数据库是最稳妥的防止磁盘故障(主要是系统发生故障)的方法,它能有效的恢复数据,这是一种比较方便的保险形式,同时也是最简单的确保能恢复大部分信息的方法。

建立一个完整的备份策略需要考虑很多因素:

(1)备份内容:

对于学生成绩管理数据库来说,学生的信息量有好几万条,一旦系统出现故障或者其他原因故障,会造成无可挽回的损失。

因为学生信息不是经常会改动,所以会考虑对数据库进行完全备份策略。

(2)备份周期:

学生成绩管理数据库的改动一般是有新的学生信息注入、学生成绩的输入和改动、开设课程的变动、教师的调动会使得数据库发生变化,一般这周期一般是每月或者每学期或者是某一星期发生变动,所以学生成绩管理数据库的备份周期一周或者一个月。

(3)由谁做备份:

对于学生成绩管理数据库来说,对该数据库做备份的角色可以有系统管理员或者是允许进行数据库备份的用户(通过设置登录名和口号)。

(4)可以对学生成绩管理数据库采用动态备份方式,允许数据库在运行的时候进行自动备份,采用磁盘介质进行备份。

(5)不同的时间段,可以采用不同的方式进行备份程序,白天可以自己手工的进行备份,而晚上的备份,可以采取自动备份,比较方便。

(6)为了数据库的安全备份的进行,在必要的时候需要设置其他的登录号和口令,防止数据被人为的破坏。

(7)此外,定期的把某些数据,某些表或全部数据备份到光盘,软盘中,放于保险的安全处,也不失为一种好方法。

 

8.数据库安全设计

设计思想

学生成绩管理数据库的用户可分为:

(1)只允许用户(例如:

学生、辅导员)对数据库中的各个表只有查询权限

(2)允许用户(例如:

教师)对成绩表拥有查询和修改的权限

(3)允许用户(例如:

教务人员)对教师表和课程表拥有查询、删除、插入的权限

其中用户学生和辅导员对数据库具有同一类的权限,故可创建一个角色对着两个用户进行管理;另外用户教师属于对成绩表有查询和修改权限的这一类权限的角色;用户教务人员属于对教师表和课程表拥有查询、删除、插入的权限的这一权限的角色。

以Windows身份验证的方式登录SQLServer,在此模式下创建各个用户,并授予不同类的用户以不同的权限。

具体实现

用户STUDENT对学生成绩管理数据库的cjb表、kcb表、xsb表拥有的SELECT权限:

2、将拥有相同权限的用户添加到同一个角色当中

(1)用户学生和辅导员对数据库具有相同的权限,故添加到角色ROLE_SELECT中

(2)用户教师对成绩表有查询和修改权限,将其添加到角色ROLE_SUI中

(3)用户教务人员对教师表和课程表拥有查询、删除、插入的权限,将其添加到角色ROLE_SUDID中。

具体实现

3、同时利用DENY命令可以拒绝当前数据库内的用户授予的权限,并防止数据库用户通过其组或角色成员资格继承权限;最后可利用REVOKE命令可撤销以前给当前数据库用户授予或拒绝的权限,使得用户对数据库无任何访问权限和操作。

五、体会

学生成绩管理数据库的设计主要数据库涉及到的实体进行分析、简化,相对来说比较简单。

但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。

设计过程中我也遇到了一些问题,再向老师和其他同学请教的过程中我收获了很多。

感觉建立一个完整的数据库的过程很复杂,在建数据库之前,首先要了解需求和其相关信息,如果是涉及到需求中的各种联系的话,那就更复杂啦!

了解完需求之后,要考虑到数据库中有关实体的属性及其和其它体实体的联系,考虑到实体关系模式的范式还有实体与实体之间的联系的关系模式,另外还得优化等等。

感觉做起来有点费劲,所以在建成绩查询系统时,还是存在很多漏洞和考虑不周到的地方,听取老师的讲解后,甚是收获。

六、参考文献

1、《数据库技术与联机分析处理》/王珊主编—北京科学出版社,1998.12

2、《数据库原理及应用》第二版/钱雪忠主编—北京邮电大学出版社,2007.8

3、《数据库系统概论》第四版/王珊,萨师煊主编—高等教育出版社,2006.5

4、《SQLServer实用教程》第三版/郑阿奇主编—电子工业出版社,2009.12

教师评价

评定项目

A

B

C

D

评定项目

A

B

C

D

数据库设计

数据完整性设计

数据表设计

存储过程和触发器设计

视图设计

备份与恢复设计

索引设计

数据库安全设计

报告规范

文字流畅

其他:

 

评价教师签名:

2012年6月18日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1