版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、 寿建霞等编,数据库原理及应用案例教程;机械工业出版社,2005年2、 刘志成等编, 数据库系统原理与应用 sqlserver2000;机械工业出版社,2007年3、 斯坦福大学编,数据库基础教程;机械工业出版社,2009年4、 何玉洁等主编,数据库原理与实践教程-sql server;清华大学出版社,2005年5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场临时用电漏电保护器选择方法制定
- 中国儿童流感诊断与治疗临床实践指南(2025版)
- 麻醉科麻醉前后患者护理指南
- 呼吸内科肺炎急性期护理培训要点
- 景观设计插画应用与研究
- 植物科普小课堂
- 重症医学科(ICU)气管插管护理要点
- 嵌入式课程设计
- 核桃露工厂设计
- 篮球入门教学设计
- 制造业智能化改造
- 矫正型大动脉转位伴发畸形矫治术后护理查房
- 货币战争与人民币战略
- 2023年广东茂名信宜市村(社区)后备干部选聘225人笔试历年难易错点考题荟萃附带答案详解
- 电子税务局单位社保费相关操作流程及介绍课件
- 钢结构电梯井道施工组织设计
- 急救包内物品与其使用
- 网络运维计算机管理论文(论文)
- 纳豆激酶(日本原装进口纳豆激酶)
- YS/T 492-2012铝及铝合金成分添加剂
- JJG 160-2007标准铂电阻温度计
评论
0/150
提交评论