《网络数据库综合实验设计《图书借阅系统数据库设计》》由会员分享,可在线阅读,更多相关《网络数据库综合实验设计《图书借阅系统数据库设计》(21页珍藏版)》请在金锄头文库上搜索。
1、华北科技学院计算机系综合性实验华北科技学院计算机系综合性实验实实 验验 报报 告告 课程名称 网络数据库 实验学期 2013 至 2014 学年 第 1 学期学生所在系部 基础部 年级 2011 级 专业班级 信息与计算科学 学生姓名 傅一洲 学号 201109014132 任课教师 孙改平 实验成绩 计算机系制华北科技学院计算机系综合性实验报告第 1 页 网络数据库网络数据库课程综合性实验报告课程综合性实验报告开课实验室:开课实验室: 软件一室软件一室 2013 年年 12 月月 5 日日实验题目图书借阅系统数据库设计一、实验目的 通过该实验把数据库的理论知识(数据库和数据表的设计理论、数据
2、完整性的实现、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。二、设备与环境 硬件:多媒体计算机软件:WindowsXP 以上的操作系统、SQL Server 2008 版本三、实验内容及要求 1.数据库设计要求数据库设计要合理,对数据库设计作必要的说明并抓图。 2数据表设计要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要的说明 并抓图。 3视图设计要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。4索引设计要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。5数据
3、完整性设计根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。6存储过程和触发器设计根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。7备份与恢复设计根据系统需求作必要的备份策略。华北科技学院计算机系综合性实验报告第 2 页8数据库安全设计根据系统需求作必要的数据库安全设计,如本系统分几级用户、分别是什么角色成员具有什么操作权限等。四、实验结果及分析 1.数据库设计设计思想:在创建数据库时,需要规定其初始大小、增长方式等,可以根据三个表中各个属性的
4、类型和长度,并假设有学生 15000 名、图书 100 万册、一个学生最多可以借 5 本图书、每本书可以借 5 个月,过期需要支付费用等,从而估算出图书管理数据库的初始大小可以设为 300M,需设置一个数据文件和一个日志文件。具体实现:2数据表设计设计思想:华北科技学院计算机系综合性实验报告第 3 页建立包含读者信息、图书信息和借阅信息三个表结构:借阅表:Lend(lno,ISBN,barno,bbt)读者表:Reader(lno,name,sex,birdate,dept,spec,bornum,photo)图书表:Book(name,ISBN,pub,author,price,copnum
5、,invnum)通过这样的设定,可以减少数据的冗余。且各个表都不存在部分函数依赖和传递函数依赖的关系,达到了 3NF 的要求,并反映了图书管理系统的需求。具体实现:华北科技学院计算机系综合性实验报告第 4 页3视图设计设计思想:根据实际情况,针对读者借阅图书的一些基本情况设立了如下两个视图:1、定义视图 VIEW1_XS_JY:该视图反映了哪位学生借阅了哪本书,什么时间借的,什么时间还的,以及该生的总借书数量2、定义视图 VIEW2_XS_JY:该视图反应学生所借图书到期未还的情况,应归还日期为借书日期之后 5 个月具体实现:华北科技学院计算机系综合性实验报告第 5 页4索引的建立设计思想:在
6、本图书借阅管理系统中,根据实际情况,建立了如下 3 个唯一聚集索引:RLNO_IND:对 READER127 表的主键 lno 创建聚集索引ISBN_IND:对 BOOK127 表的主键 ISBN 创建聚集索引BARNO_IND:对 LEND127 表的主键 barno 创建聚集索引如下 11 个非聚集索引:对读者表READER127:NAME_IND、DEPT_IND、SPEC_IND、BIR_IND、BOR_IND对图书表 BOOK127:BNAME_ID、BPRI_ID、BCOP_ID、BINV_ID对借阅表 LEND127:JYRQ_ID、SHRQ_ID具体实现:华北科技学院计算机系综
7、合性实验报告第 6 页5数据完整性设计设计思想:定义了数据的实体完整性、域的完整性、参照完整性。实体完整性:要求表中有一个主键,其值不能为空且能唯一的标识对应的记录;域的完整性:对数据类型进行了限制,并通过 CHECK 约束,约束了读者的借书数应不超过十本,超过不允许再借,以及通过 lno_rule 规则的创建,约束了读者的借书证号的每一位数字的取值范围;参照完整性:通过定义从表 LEND127 中借书证号 lno 和图书的 ISBN 号这两个外键对于主表 READER127 和 BOOK127 的主键的参照联系,并且规定了一些级联操作。具体实现:华北科技学院计算机系综合性实验报告第 7 页华
8、北科技学院计算机系综合性实验报告第 8 页6存储过程和触发器设计设计思想: 存储过程:a.建立 DZ_JY 存储过程:查询指定读者当前的借书情况b.建立 BOOK_JY 存储过程:统计指定图书在给定时间段内的借阅次数触发器设计:a.创建触发器 JY_CF1:当向 LEND132 表插入一条记录时,检查该记录的借书证号在 READER132 中是否存在,检查图书的 ISBN 在 BOOK132 表中是否存在,以及图书的库存量是否大于;若有一项为否,则不允许插入b.创建触发器 JY_CF2:当向 LEND132 表中插入一条记录时,将 READER132 表中该学生的借书数加,将 BOOK132
9、表中该书的库存量减具体实现:华北科技学院计算机系综合性实验报告第 9 页 存储过程: 触发器设计:华北科技学院计算机系综合性实验报告第 10 页7备份与恢复设计设计思想:本图书借阅管理系统中存放的最原始的读者信息、图书信息以及借阅信息,需要进行备份;在本图书借阅管理系统开始运行后,由于读者再度进行借阅或者归还图书而带来的数据的变化,需要定时进行备份。备份角色:固定服务器角色 sysadmin 和固定数据库角色 db_oener 具有对该数据库进行备份操作的权限。备份介质:在磁盘上进行备份,创建备份设备 TSXTBF132。何时备份:当创建数据库、加载记录数据时对数据库进行备份;当为数据库创建索
10、引时应备份数据库,以便大大节省时间等。限制的操作:在对该数据库备份的过程中,允许用户(读者)进行查询借阅相关信息,不允许创建或删除数据库文件、创建索引等。具体实现:华北科技学院计算机系综合性实验报告第 11 页8数据库安全设计设计思想:数据的安全性管理是数据库服务器应实现的重要功能之一。在本图书管理系统中,采用了较为复杂的安全保护措施,同时对用户登录进行身份验证和对用户进行的操作进行权限控制。设置了 WINDOWS 用户最高管理员 FYZ,负责监督和管理该数据库系统,可进行所有管理工作,具有授予、拒绝或废除某个用户或某个角色权限。这样,就实现了用户在登录数据库时必须通过身份验证、必须是数据库的
11、用户或是某一数据库角色的成员、必须有执行该操作的权限才能进行操作等,保证了数据库的安全性的实现。具体实现:华北科技学院计算机系综合性实验报告第 12 页五、体会通过本次综合实验的实现过程,让我对学习的过程有了更深的体会。首先,在理解实验要求的实现的系统的要求,并且明白每项操作是怎么实现的,要先理解要求才能去思考解决的方法。其次,考虑问题要有逻辑,从全局出发,有个大体的思路之后再动手写。华北科技学院计算机系综合性实验报告第 13 页图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信
12、息的变更,才能有利于提高管理的效率,而在本图书借阅管理系统中,就实现了这样的较高的管理效率。六、参考文献 1 郑阿奇 SQL Server 实用教程M 电子工业出版社2 王珊 萨师煊 数据库系统概论M 高等教育出版社附录: 1.数据库设计CREATE DATABASE TSXT132 ON PRIMARY ( NAME=TSXT132_data, FILENAME=G:32号傅一洲TSXT132_data.mdf, SIZE=300MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ) LOG ON ( NAME=TSXT132_log, FILENAME=G:32号傅
13、一洲TSXT132_log.ldf, SIZE=1MB, MAXSIZE=5MB, FILEGROWTH=1MB );2.数据表设计USE TSXT132 GO CREATE TABLE READER132 ( lno char(12) NOT NULL PRIMARY KEY, name char(10) NULL, sex char(2) NULL, birdate date NULL, dept char(20) NULL, spec char(20) NULL, bornum int NULL )USE TSXT132 GO CREATE TABLE BOOK132 (华北科技学院计算
14、机系综合性实验报告第 14 页ISBN char(16) NOT NULL PRIMARY KEY, bname char(20) NULL, author char(10) NULL, pub char(30) NULL, price numeric(9,2) NULL, copnum int NULL, invnum int NULL ) USE TSXT132 GO CREATE TABLE LEND132 ( barno char(10) NOT NULL PRIMARY KEY, lno char(12) NULL, ISBN char(16) NULL, jyrq date NUL
15、L, shrq date NULL )3视图设计定义学生借阅图书信息的视图VIEW1_XS_JY:反映哪位学生借阅了哪本书,什么时间借的,什么时间还 的,以及该生的总借书数量 USE TSXT132 GO CREATE VIEW VIEW1_XS_JY AS SELECT READER132.lno,READER132.name,bornum,BOOK132.bname,LEND132.jyrq,LEND132.shrq FROM READER132,BOOK132,LEND132 WHERE LEND132.ISBN=BOOK132.ISBN AND READER132.lno=LEND132.lno GO定义视图VIEW2_XS_JY:该视图反应学生所借图书到期未还的情况,应归还日期为借书日期之后个月 USE TSXT132 GO CREATE VIEW VIEW2_XS_JY AS SELECT LEND132.lno,LEND132.ISBN,READER132.name,BOOK132.bname,LEND132.jyrq,LEND132.shr q FROM LEND132,BOOK132,READER132 WHERE LEND132.lno=READER132.lno AND L