ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:851.52KB ,
资源ID:26243394      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26243394.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书管理系统数据库.docx)为本站会员(wj)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书管理系统数据库.docx

1、 一、 需求分析: 1.1 图书管理系统的需求定义为:1.1.1使用读者编号、读者姓名、图书编号和图书姓名实现图书借阅功能;1.1.2使用读者类型和类型编号实体对教师、学生和其他三种身份进行不同的借阅条件管理;1.1.3使用限借数量、借阅日期和归还日期实现不同身份的借阅管理功能;二、 概要设计:2.1 图书馆管理系统数据表设计:2.1.1 Readers表:读者信息表,存取读者信息;2.1.2 Books表:图书信息表,存取图书信息;2.1.3 Borrowinf表:借阅信息表,管理借阅情况;2.1.4 Readtype表:读者类型表,管理读者类型;这些数据表结合图书馆数据库中的四个存储过程,

2、即实现了普通图书馆的大部分功能。如读者借阅图书功能、读者归还图书功能、读者查询图书借阅情况功能、读者检索的图书信息功能;图2.1 数据E-R图三、 逻辑设计3.1 图书馆管理系统触发器设计:3.1.1 Tri_bowbook 功能表现:只有在图书馆内相关书籍尚有库存的情况下,读者才可以进行借阅操作;3.1.2 Tri_bowbook2功能表现:还书时将还书信息更新到各表中;3.1.3 Tri_bowbook3功能表现:限制借书数目,其中教师不得借阅超过3本,学生不得借阅超过2本,其他人不得借阅超过1本;四、 物理设计:表4.1 Readers列名数据类型允许空值说明ReaderIDchar(1

3、0)否标明读者唯一编号Namechar(8)是读者姓名BorrowedQuantityint是已借数目TypeIDint是读者类型表4.2 Books列名数据类型允许空值说明BookIDchar(15)否标明图书唯一编号Namevarchar(50)是图书名称Authorchar(8)是图书作者Publishervarchar(30)是出版社Standingint是剩余数量表4.3 Borrowinf列名数据类型允许空值说明ReaderIDchar(10)否标明读者唯一编号BookIDchar(15)否标明图书唯一编号BorrowedDatedatetime否借书日期ReturnDatedat

4、etime是还书日期表4.4 Readtype列名数据类型允许空值说明TypeIDint否标明类型唯一编号Namevarchar(20)否类型名称LimitBorrowQuantityint是限借数量BorrowTermint是限借时间五、 数据库实施:5.1 建立数据库:5.1.1 使用SQL Server Management Studio新建数据库:使用SQL Server Management Studio创建一个图书管理数据库,初始大小为5MB,最大为30MB,数据库自动增长,增长方式是按1%的比例增长;日志文件初始为1MB,最大可增长到10MB,按1MB增长。数据库名称为stude

5、nt_grade,存放路径为“D:XSCJSYS”。日志文件的名称为student_log,存放路径为“D:XSCJSYS”。如下图所示:图5.1.1 新建数据库5.1.2 设计数据库表:在登录后依次打开文件资源管理器中的数据库-TSGL-表,并选择“新建”,进行数据库表的设计(在此时设计好主键);图5.1.2数据库表设计5.1.3 数据初始化:在创建好的数据表中右键选择-并击前200行,输入编辑好的数据:图5.1.3设定表数据5.2 完整性测试与检查:5.2.1 参照完整性测试:use TSGLinsert into readers values(2014010323,李老师)insert

6、into readers values(2014030335,小何)insert into readers values(2014039999,小王)go图5.2.1参照完整性测试5.2.2创建图书借出数量不超过总数的CHECK约束:goalter table bookswith nocheck add constraint books_Standingcheck(Standing=0 and Standing=5)go图5.2.2 创建CHECK约束5.3 使用SQL语句查询:5.3.1 使用like语句查询所有姓王的读者:select * from readers where name l

7、ike 王%;图5.3.1 模糊查询5.2 查询所有已经借阅的图书名称、总数:select borrowinf.bookid,books.name,count(*) as 借出数目from borrowinf inner join books on borrowinf.BookID = books.BookIDgroup by books.name,borrowinf.bookidorder by 借出数目 desc图5-7 多表查询、统计查询5.3 查询所有已借图书的读者信息:use TSGLselect readers.Name,readers.ReaderID,readers.Borro

8、wedQuantity as 已借数目from readers inner join borrowinf on borrowinf.readerID = readers.readerIDgroup by readers.Name,readers.ReaderID,readers.BorrowedQuantity图5-8 多表查询、统计查询5.4 查询被借出的图书中出版社是机械工业出版社的书名和书籍编号:use TSGLselect books.Name,books.BookIDfrom books inner join borrowinf on borrowinf.BookID = books

9、.BookID and books.Publisher = 机械工业出版社group by books.Name,books.BookID图5-9 多表查询5.5 查询借阅了数据库原理的读者的姓名和读者编号:use TSGLselect readers.Name,readers.ReaderIDfrom readers where readers.ReaderID in (select borrowinf.ReaderID from borrowinf where BookID = (select BookID from books where books.Name = 数据库原理)图5-10

10、 子查询5.6 查询王同学借阅的图书名称和编号:use TSGLselect books.Name,books.BookIDfrom books where books.bookID in (select borrowinf.bookID from borrowinf where BookID in (select BookID from borrowinf where ReaderID = (select ReaderID from readers where readers.Name = 王同学)图5-11 子查询6 触发器实现:6.1 若无库存无法借书的触发器:create trigge

11、r tri_bowbookon borrowinffor insert,updateasdeclare bid char(15),bstd intselect bid = bookid from insertedselect bstd = standing from books where bid = books.BookIDif(bstd =0)begin rollback transactionprint 借阅失败!print 此书已无库存!end图5-12 借阅限制触发器6.2 不得超过读者类型限制的借阅上限触发器:USE TSGLGO/* Object: Trigger dbo.tri

12、_bowbook2 Script Date: 2020/6/29 21:12:30 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.tri_bowbook2on dbo.borrowinffor insert,updateasdeclare rdid char(10),type int,lim int,num intselect rdid = readerid from insertedselect type = typeid from readers where rdid = readers.readerids

13、elect lim = LimitBorrowQuantity from readtype where type = readtype.typeidselect num = BorrowedQuantity from readers where rdid = readers.readeridif(num=lim)begin rollback transactionprint 借阅失败!print 已达到借阅上限,请先归还图书再进行借书操作!end图5-13 限制触发器6.3 添加借阅记录时自动更新信息以实现借阅功能的触发器:create trigger tri_bowbook3on borro

14、winffor insertasdeclare bid char(15),reid char(10),std int,nstd int,bor int,nbor intselect bid = bookid from insertedselect reid = readerid from insertedselect std = standing from books where bid = books.BookIDselect nstd = std+1select bor = BorrowedQuantity from readers where reid = readers.ReaderI

15、Dselect nbor = bor+1UPDATE books set Standing = nstd where bid = books.BookIDUPDATE readers set BorrowedQuantity = nbor where reid = readers.ReaderID图5-14 借阅触发器一、 数据库安全与备份:1. 改变身份验证模式:使用“对象资源管理器”中的“服务器属性”对话框改变服务器身份验证模式:图6-1 设置身份验证模式2. 分离数据库:使用sp_detach_db存储过程分离JXGL数据库:图6-2 分离数据库二、 总结:通过本次课程设计,我掌握了设计数据库的基本流程,掌握了E-R图的制作方法,熟悉了使用SQL语句进行统计查询、多表查询、子查询等多种查询数据的方式,掌握了使用触发器对数据库进行增删改查的各种操作,但有的部分仍有不熟悉的情况,需要在今后的学习工作中继续深入学习关于数据库的各种知识。感谢老师一个学期的辛勤教导!

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

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