1004144592课程设计(论文)图书馆数据库管理系统.doc

上传人:仙人指路1688 文档编号:2394788 上传时间:2023-02-17 格式:DOC 页数:16 大小:301KB
返回 下载 相关 举报
1004144592课程设计(论文)图书馆数据库管理系统.doc_第1页
第1页 / 共16页
1004144592课程设计(论文)图书馆数据库管理系统.doc_第2页
第2页 / 共16页
1004144592课程设计(论文)图书馆数据库管理系统.doc_第3页
第3页 / 共16页
1004144592课程设计(论文)图书馆数据库管理系统.doc_第4页
第4页 / 共16页
1004144592课程设计(论文)图书馆数据库管理系统.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《1004144592课程设计(论文)图书馆数据库管理系统.doc》由会员分享,可在线阅读,更多相关《1004144592课程设计(论文)图书馆数据库管理系统.doc(16页珍藏版)》请在三一办公上搜索。

1、目录目录1第1章 设计内容与要求21.1设计内容21.2设计要求21.3 功能要求2第2章 设计说明32.1设计ER图32.1.1 ER图图解32.1.2 E|R图32.2问题描述42.3具体设计实现42.3.1 定义数据项的含义和取值42.3.2 数据库的建立与分析52.3.3 数据初始化62.3.4 物理设计数据库功能的实现92.3.5 数据库安全维护112.3.6 数据库的选择语句12第3章 总结133.1 功能上的不足133.2 附加功能133.3 收获133.4 心得体会14结论15参考文献16第1章 设计内容与要求1.1 设计内容设计一个图书馆数据库管理系统,根据需求分析设计合理的

2、数据库,要在该数据库中实现相关的功能,包括模式的规范化程度,表的主键、外键、约束、缺省、触发器等,及安全策略等。1.2 设计要求 详见程序设计基础课程设计任务书。1.3 功能要求1、需求分析阶段l 定义数据项的含义和取值2、概念结构设计阶段l 画出实体模型E-R图3、逻辑结构设计阶段l 将实体模型转化为关系模型l 给出每个关系的主关键字和函数依赖集l 分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段l 确定所有字段的名称、类型、宽度、小数位数及完整性约束 l 确定数据库及表的名称及其组成 l 确定索引文件和索引关键字5、数据库安全及维护设计阶段l 设计一个适合的数据库安全策略(用户身

3、份认证、访问权限、视图)6、实施阶段l 要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。第2章 设计说明2.1设计ER图2.1.1 ER图图解在该ER图中,每个人可借多种书,一种书可为多个人所借;书和读者的关系为多对多。一个出版社可出版多种书籍,但同一本书仅为一个出版社出版,书本和出版社的关系为一对多。图中管理员和书本,管理员和读者都是多对多的关系。2.1.2 E|R图读者借书证号 性别姓名单位借阅借出日期还书日期续借次数图书图书号书名数量存放位置出版出版社出版社名电报编码电话邮编地址管理员注册读者权限职工号姓名性别权限级别登记图2.1 2.2问题描述某个图书借阅管理数据库需要如

4、下信息:图书:图书号、书名、数量、存放位置。读者(借书人):借书证号、姓名、单位、借书日期、还书日期。出版社:出版社名、电报编号、电话、邮编、地址。其中,每个人可借多种书,一种书可为多个人所借;一个出版社可出版多种书籍,但同一本书仅为一个出版社出版。2.3具体设计实现在sql 2000中创建图书管理系统,创建语句为:create database 图书管理系统。2.3.1 定义数据项的含义和取值1、管理员信息:图2.2 2.读者信息:图2.33、书本信息:图2.44.出版社信息:图 2.55,借阅信息:图2.66.出版信息: 图2.72.3.2 数据库的建立与分析1.管理员信息:create

5、table Administrator(Ano int primary key,Aname char(30),Asex char(10),Aprivilege char(20);其中管理员的工作证号为主键,不允许为空。2.读者信息:create table reader(Rno int primary key,Rname char(50),Rsex char(20),check (Rsex in(男,女),Rdept varchar(50);其中读者编号为主键,不允许为空,并且读者性别有一个约束,就是只允许读者性别为男或者为女,出现其他的都会报错。3、书本信息:create table boo

6、k(Bno int primary key,Bname char(50),Bnum int,check (Bnum1),Baddress varchar(100);其中图书编号为主键,不允许为空,并且规定图书的数量必须大于一,因为图书的数量如果为空的话,就没有实际的意义了。4.出版社信息:create table publisher(Pname char(50) primary key,Pnum int,Pphone int,Email varchar(50),Paddress varchar(100);其中出版社的名字为主键,不能重复,也不允许为空。5,借阅信息:create table b

7、orrow(Bno int not null ,Rno int not null ,lenddate datetime,renturndate datetime,xujie int,check (xujie1beginrollback transactionraiserror(您一次只能删除一条记录,16,10)returnenddeclare Rno int select Rno=Rnofrom deleteddelete readerwhere Rno=Rnoprint 级联删除成功验证触发器的作用:图2.92.3.4.4 存储过程创建一个名为borrow_info的存储过程,该存储过程的

8、实现过程:当有新的读者借书时,可以在读者借书的时候就把读者的读者编号以及图书编号相连,并且会自动记录读者借书的时间和应该归还的时间,我做这个存储过程的时候借书的期限是30天,刚刚开始是,续借的次数为零。create procedure borrow_info PBno int ,PRno int ,Pxujie intasset nocount ondeclare PLdate datetimeselect PLdate=getdate()declare PRdate datetimeselect PRdate=getdate()+30insert into borrow(Bno,Rno,xu

9、jie)values(PBno,PRno,Pxujie)update borrow set lenddate=PLdate,renturndate=PRdatewhere Bno=PBno and Rno=PRno and xujie=Pxujieselect *from borrowwhere Bno=PBno and Rno=PRno and xujie=Pxujie存储过程的实现:图3.02.3.5 数据库安全维护 创建用户名为Raintina的登录,并指定默认数据库为图书馆管理系统,设定登录密码为123,实现语句为:exec sp_addlogin Raintina,123,图书馆管理

10、系统;在图书馆管理系统中添加数据库角色Raintina ,再将sysadmin 添加到图书馆管理系统中的Raintina角色中。实现语句为:exec sp_addsrvrolemember Raintina, sysadmin;如果不需要这个登录了,就用sp_droplogin语句删除登录名,运行结果如下:图3.12.3.6 数据库的选择语句在这个数据库中,为了更加方便,更加快捷的体现我的数据库功能,所以我在其中加入了几个典型的select语句。1. 显示读者,书本,出版社的信息。select book.*, reader.*, publisher.*From book INNER JOIN

11、borrow ON book.Bno = borrow.Bno INNER JOIN chuban ON book.Bno = chuban.Bno INNER JOIN publisher publisher ON chuban.Pname = publisher.Pname INNER JOIN reader ON borrow.Rno = reader.Rno2. 查询读者罗丹借了哪本书。select Bnamefrom bookwhere Bno=(select Bnofrom borrowwhere Rno= (select Rnofrom readerwhere Rname= 罗丹

12、 )3. 查询图书馆内每本图书的具体信息,以及与其相关的读者信息,借阅信息,出版社信息,并将借出日期与归还日期重命名分别为Expr2, Expr3,并且按照图书的库存量的递减顺序加以排序,然后输出select book.*, reader.*, borrow.lenddate AS Expr2, borrow.renturndate AS Expr3, publisher.*from publisher INNER JOIN chuban ON publisher.Pname = chuban.Pname INNER JOIN book ON chuban.Bno = book.Bno INN

13、ER JOIN borrow ON chuban.Bno = borrow.Bno INNER JOIN reader ON borrow.Rno = reader.Rnoorder by Bnum desc第3章 总结3.1 功能上的不足1. 图书续借功能在读者借阅图书的过程中,因为我只保证了借阅图书的日期开始,规定了30天内要还,但是却没有把续借功能也增加到存储过程里面去,我只是在建表的时候,给了一个check约束,就是规定续借的次数不能超过3次,所以这个方面还有待改善。2. 借阅违规功能在该数据库中,我没有实现这个功能,就是虽然我规定读者借书的续借次数不能超过3次,但是我却没有制定一个违

14、规的惩罚策略,比如说如果到期没还要对读者进行罚款,或者限制它在还书之前不能继续借其他的书。3.2 附加功能1.附加管理员实体在我的图书馆管理系统数据库中,除了在指导书上规定要实现的功能外,我还在其中增加了一个管理员的实体,及其相关的属性。因为我觉得一般图书馆都有管理员,加进去会使得我的数据库更加完善。2.附加触发器及存储管理在这次课程设计中,任务书中并没有说要实现这么多功能,但是我们上课的时候老师讲到的有涉及到相关知识,所以我还是把触发器和存储管理都附加到了这个数据库中,使其的功能更加完善。3.附加典型的选择语句在这个数据库中,为了更加方便,更加快捷的体现我的数据库功能,所以我在其中加入了几个

15、典型的select语句。是数据库中的几个表格相互联系起来。3.3 收获在创建这个数据库的过程中我学会了很多在平常的课堂学习中没有怎么学到的知识,比如以前老师讲的触发器和存储过程本来都不是很理解,经过这次课程设计,我觉得我对这些数据库的基本语句,及相关使用了解的更加彻底和深刻了。3.4 心得体会在刚开始看到这个课程设计的题目时,我觉得好难,因为我觉得需要好久才能弄完,不仅需要设计E/R图,还有设计关系模型,创建表格,在表格中插入数据,还要写一些平时不怎么懂的东西,比如说触发器,存储管理啊。因为这些内容老师在上课的时候我没怎么认真听。所以真正要我创的话,我觉得还是蛮难的。但是,并不是觉得难就不能做

16、。经过我一步步的分析,理顺了思路之后,我觉得其实并没有我想象中那么难。只有把握几点比较重要的知识,在建表时,要把主键,外键定义好,并且在建表时也可以顺带把一些约束加进去,这就使得数据库的功能更加严谨。记得有一次我在调用建表时,在有一个表中忘记创建主键,然后在插入数据的时候,插入相同的也不会报错时,我才意识到我这个没创主键,所以,我觉得在做课程设计的过程中还是需要细心一点的。数据库的课程设计我们是第一次做,所以好多东西刚刚开始的时候,都不知道怎么写才好,但是通过请教老师,和同学相互讨论,查阅资料还是把问题一个一个都解决了。所以在把整个课程设计弄完后,虽然不是尽如人意,但是至少这是我努力的成果。最

17、后,我觉得应该谢谢黄老师,她会很负责的在每节课给我们点到,也会在下课前对我们所作的任务加以检查。所以我在每次上机的时候都感觉,有她陪在我们身边,只要我遇到解决不了的难题,我都会得到最及时,最悉心的指导。结论总的来说,本数据库除了一些功能上的不足之外,基本上实现了要求中的所有功能。比如说需求分析,概念分析,设计E/R图,设计关系模型,具体实现阶段,创建触发器,存储管理,数据库安全等。 这些功能的实现是在综合运用了所有所学过的数据库基础知识,在运用过程中逐渐的吃透知识点,学会了如何去灵活的运用,同时也自己摸索出了一些老师在课堂没有讲过的内容,学到了一些新的知识。参考文献1、 寿建霞等编,数据库原理

18、及应用案例教程;机械工业出版社,2005年2、 刘志成等编, 数据库系统原理与应用 SQLServer2000;机械工业出版社,2007年3、 斯坦福大学编,数据库基础教程;机械工业出版社,2009年4、 何玉洁等主编,数据库原理与实践教程-SQL SERVER;清华大学出版社,2005年5、 任振华等主编,数据库系统原理,光明日报出版社,2007年6、 王珊等主编,数据库系统概论,高等教育出版社,2009年7、 北京阿博泰克北大青鸟信息技术有限公司 编著:使用SQL Server 管理和查询数据库.科学技术文献出版社,2008年8、 启明工作室 编著:SQL Server 2005数据库应用系统开发,2007年9、 (美)Duan Petkovic著,冯飞、薛莹译:Microsoft SQL Server 2005初学者指南. 清华大学出版社,2007年10.万常选,吴京慧等编,数据库系统原理与设计,清华大学出版社,2006年

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号