网络数据库综合性实验报告.docx
《网络数据库综合性实验报告.docx》由会员分享,可在线阅读,更多相关《网络数据库综合性实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
网络数据库综合性实验报告
华北科技学院计算机学院综合性实验
实验报告
课程名称网络数据库
实验学期2014至2015学年第1学期
学生所在系部基础部
年级2012级专业班级计算B121
学生姓名樊灿学号201209014130
任课教师郭红
实验成绩
计算机学院制
《网络数据库》课程综合性实验报告
开课实验室:
基础五2014年12月14日
实验题目
图书借阅系统数据库设计
一、实验目的
通过该实验把数据库的理论知识(数据库和数据表的设计理论、数据完整性的实现、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。
二、设备与环境
硬件:
多媒体计算机
软件:
Windows7以上的操作系统、SQLServer2008版本
三、实验内容及要求
1.数据库设计
要求数据库设计要合理,对数据库设计作必要的说明并抓图。
2.数据表设计
要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要的说明并抓图。
3.视图设计
要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。
4.索引设计
要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。
5.数据完整性设计
根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。
6.存储过程和触发器设计
根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。
必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。
7.备份与恢复设计
根据系统需求作必要的备份策略。
8.数据库安全设计
根据系统需求作必要的数据库安全设计,如本系统分几级用户、分别是什么角色成员具有什么操作权限等。
四、实验结果及分析
1.数据库设计
(1)设计思想:
图书管理系统数据库的主要任务是对读者信息、管理员信息、图书资料信息、借阅归还图书信息、罚款信息的基本信息的操作和处理。
此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作。
根据以上功能分析,图书管理系统应该包含:
读者信息表、图书信息表、以及借阅信息表。
针对图书管理系统目前的用户量(假设为15000人)和图书量(假设为10万册)考虑,系统的主数据文件初始大小设置为5MB,最大容量不限制,自动增长设置为10%;日志文件初始大小设置为:
5MB,最大容量为10MB自动增长设置为:
1MB。
考虑到图书管理系统最经常的操作是查找,所以为了提高查找效率,应为读者表130、图书表130建立索引。
(2)具体实现代码:
2.数据表设计
(1)设计思想:
根据以上对图书管理系统的功能分析,需要设计读者信息表(简称读者表130)、管理员信息表(简称管理员表)、图书信息表(简称图书表130)和借阅信息表(简称借阅表130)。
(1)读者表130(学号,姓名,性别,年龄,系部,专业,借阅数量,欠款金额,联系电话)
读者表130主要记录读者信息,通过读者表130可以查看读者的具体信息,如:
学号、姓名、性别、年龄、系部,专业、借阅数量、欠款、联系电话等。
(2)图书表130(ISBN,书名,作者,出版社,单价,库存量,馆藏位置,类型)
图书表130主要记录图书的各种信息,包括:
ISBN、书名、条码号、作者、出版社、单价、库存量、馆藏位置、类型等。
读者可以通过查询此表得到与需要的图书相关的信息。
例如:
可以通过查询图书的ISBN,查看该图书目前的库存量和馆藏位置。
(3)借阅表130(学号,ISBN,条码号,借阅日期,应还日期,实还日期,欠款金额)
读者可以通过借阅表130查询借书情况,例如:
借阅日期、应还日期、欠款金额等信息。
(2)具体实现:
3.视图设计
(1)设计思想:
(1)为了查询读者借阅情况是方便,建立读者借阅情况视图。
其字段信息包括:
学号、姓名、ISBN、书名、借阅日期、应还日期、欠款金额。
(2)管理员需要查看当前逾期未还的图书,需要建立逾期未还图书信息视图,其字段信息包括:
学号、姓名、系部、专业、书名、借阅日期、应还日期、欠款金额。
其中,欠款金额通过计算得出。
(2)具体实现:
4.索引的建立
(1)设计思想:
为了提高搜索效率,应该为表建立相关索引。
(1)对读者表130建立索引
在建立读者表130时,已经对读者表130的“学号”字段建立了主键索引,且其为聚集索引,为了提高对读者表130的检索效率,还需要为经常查询的字段添加非聚集索引,例如为“姓名”字段建立非聚集索引。
(2)对图书表130建立索引
在建立图书表130时,已经对图书表130的“ISBN”字段建立了主键索引,且其为聚集索引,为了提高对读者表130的检索效率,还需要为经常查询的字段添加非聚集索引,例如为“书名”字段建立非聚集索引。
(2)具体实现:
(1)为读者表130建立“姓名”字段的非聚集索引
(2)为图书表130建立“书名”字段的非聚集索引
5.数据完整性设计
(1)设计思想:
图书借阅系统包括:
读者表130、图书表130和借阅表130。
下面分别就实体完整性、域完整性、参照完整性分析设计数据库的完整性。
(1)实体完整性
读者表130定义“学号”为主键实现实体完整性;图书表130定义“ISBN”字段为主键来实现图书表130的实体完整性;借阅表130定义“学号”、“ISBN”和“借阅日期”为主键实现实体完整性。
(2)域完整性
设定读者表130“姓名”字段不为空,实现读者表130域完整性;设定图书表130“书名”字段不为空,实现图书表130域完整性;设定借阅表130“应还日期”字段不为空,实现借阅表130域完整性。
(3)参照完整性
对读者表130、借阅表130和图书表130建立表关系。
其中读者表130与借阅表130通过“学号”关联,借阅表130“学号”字段参照读者表130“学号”字段,“学号”是读者表130的外键;图书表130与借阅表130通过“ISBN”关联,借阅表130的“ISBN”字段参照图书表130“ISBN”字段,“ISBN”是图书表130的外键。
(2)具体实现:
6.存储过程和触发器设计
(1)设计思想:
(1)存储过程设计
读者需要查询自己的借阅情况,需要建立根据学号查询该读者的借阅情况;读者需要检索图书信息,需要建立根据图书名查询图书信息。
(2)触发器设计
读者借书时,触发借阅表130插入记录的触发器,执行操作包括:
填补借阅表130“应还日期”字段信息,即将“应还日期”设置为“借阅日期”开始计算的后2个月的时间;设置读者表130“借阅数量”字段增加1;设置图书表130的“库存量”减去1。
读者还书时,设置读者表130“借阅数量”减1,;设置该图书“库存量”加1;判断读者“实还日期”与“应还日期”关系,如果“实还日期”超出了“应还日期”,计算欠款金额,更新到该条借阅记录的“欠款金额”字段,并将欠款金额累加到读者表130该读者的“欠款金额”字段。
(2)具体实现:
(1)存储过程的实现
根据学号查询该读者的借阅情况的存储过程实现代码:
根据书名查询图书信息的实现代码:
(2)触发器的实现
借阅表130插入记录的触发器实现代码:
借阅表130“实还日期”字段的触发器实现代码:
7.备份与恢复设计
(1)设计思想:
本系统需要对读者表130、管理员表、图书表130和借阅表130进行备份,以免因意外造成数据库丢失。
因为图书借阅系统数据库数据量很大以及数据库更新频繁,所以可以考虑采取差异备份的方式。
备份每天执行一次,备份工作由系统管理员来执行。
8.数据库安全设计
(1)设计思想:
根据图书馆里系统的使用人员,将本系统分成系统管理员、表管理员、用户三个级别。
系统管理员拥有最高权限,可以对数据库所有表进行增加、修改、删除、查询等数据库操作。
表管理员具有数据库表的管理权限,可以对表进行添加、删除和查询记录操作。
用户界别只有查询图书信息和借阅信息的权限。
(2)具体实现:
以系统管理员身份登录数据库,打开“安全性→登录名”的“登录属性”窗口为数据库添加系统管理员权限,为该登录名赋予系统管理员(sysadmin)角色,其中public角色为系统默认角色。
对借书管理员的授权实现代码:
对还书管理员的授权实现代码:
对学生用户的授权实现代码:
五、体会
此次实验对图书借阅系统的数据库设计、数据表设计、视图设计、数据完整性设计、存储过程与触发器设计、数据备份与恢复设计以及数据库安全性设计,使我对SQLserver数据库有了更深入的了解。
通过本次试验,我学会了建立数据库系统从分析、设计到物理实验一系列过程中的各种步骤:
先思考自己做的这个系统要达到一个什么样的效果,为人们解决什么问题。
进而根据分析结果考虑要为系统设置一些什么功能,然后由这些功能来确定需要支持实现这些功能的各个表,每个表存储哪些内容,表之间又有哪些联系,这些初步的准备工作和系统构造完成后就可以开始进入编写代码阶段了,代码编写过程中要不断地根据具体情况及时对自己的代码功能进行改进和完善。
与此同时,数据库系统设计过程中难免会遇到各种各样的困难,通过与同学不断的探讨,让我能够综合更加灵活熟练的将所学的关系数据库原理知识运用到实际的设计系统中来。
只有这样,在实际操作过程中不被困难所打倒,在平时的积累和锻炼下最终熟练掌握数据库知识,才可以在计算机这个领域走得更远。
另外,这个实验使我收获最大的是,无论遇到什么问题都要仔细的思考和认真的去面对并且积极地寻找解决问题的方法,这样以后遇到类似的问题,我们可以利用先前的经验去解决它。
六、参考文献
郑阿奇.SQLserver实用教程(第三版).电子工业出版社
教师评价
评定项目
A
B
C
D
评定项目
A
B
C
D
数据库设计
完整性与安全性设计
数据表设计
存储过程和触发器设计
视图设计
备份与恢复设计
索引设计
基本概念与操作
报告规范
文字流畅
其他:
评价教师:
2014年月日