1数据库课程设计课设名称图书借阅系统学生姓名李XX学号20161167XXXX班级信管1163指导教师刘金华成绩2图书管理系统目录一、需求分析P31.背景2.系统目标3.用户需求4.功能划分5.功能描述二、概念结构设计P51.管理员实体E-R图2.图书信息实体E-R图3.读者信息实体E-R图4.整体E-R图3三、逻辑结构设计P51.关系2.关系模式3.数据库表四、数据库实施P61.建表P62.输入数据P83.建立视图P114.创建角色并授权P125.创建存储过程P136.创建触发器P14五、心得体会P16图书借阅系统一、需求分析1.背景在图书馆的活动中,需要通过管理图书信息、图书管理员信息以及借阅者的信息,以达到完善图书借阅系统的目的。传统的手工操作方式,存在许多缺点和弊端,比如易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范图书借阅管理行为,从而提高了管理效率和水平。2.系统目标图书借阅系统以计算机为工具,通过对图书馆借阅书籍所需的信息管理,把4管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事图书借阅管理政策的研究实施,工作计划的制定执行和工作质量的监督检查,从而全面提高工作质量。实现一个计算机综合图书借阅系统,完成1)管理员信息管理、2)图书信息管理、3)读者信息管理等功能。3.用户需求此系统专门为图书馆相关管理所设计。主要描述用户需求的使用范围,功能要求信息采集与各人员的使用权限。4.功能划分系统为用户提供三项选择:管理员信息管理、图书信息管理、读者信息管理等功能。5.功能描述(1)、管理员信息管理:给出所有管理员的列表信息。可以执行添加、修改、删除、查找等操作。(2)、图书信息管理:给出所有图书信息的列表,用户可以实现添加,修改,删除,查找图书信息等操作。(3)、读者信息管理:给出所有借阅者信息的列表,用户可以实现添加,修改,删除,查找读者信息等操作。6.数据流图5二、概念结构设计1.管理员实体E-R图2.图书信息实体E-R图管理员职工号姓名性别联系方式图书信息编号书名分类号库存数量作者出版社63.读者信息实体E-R图4.整体E-R图三、逻辑结构设计1.关系读者借书证号姓名性别联系方式管理员职工号姓名性别联系方式图书信息编号书名分类号库存数量作者出版社管理注册借阅读者借书证号姓名性别联系方式借书日期还书日期借书数量7(1)、管理关系:管理员和图书的关系是1:n,每个管理员可以管理多本图书。(2)、注册关系:管理员和读者的关系是1:n,每个管理员可以为多名读者注册。(3)、借阅关系:读者和图书的关系是m:n,每个读者可以借阅多本图书,每本图书可被不同读者借阅。2.关系模式管理员(职工号,姓名,性别,联系方式)图书信息(编号,书名,作者,出版社,分类号,库存数量)读者(借书证号,姓名,性别,联系方式)借阅(借书证号,编号,借书日期,还书日期,借书数量)3.数据库表(1)管理员基本信息表名称数据类型长度键类型允许空职工号Char20主键No姓名Varchar20No性别Varchar10No联系方式Char20No(2)图书信息基本信息表名称数据类型长度键类型允许空编号Char20主键No书名Varchar20No作者Varchar20No出版社Varchar20No分类号Varchar20No库存数量Varchar10No(3)读者基本信息表名称数据类型长度键类型允许空借书证号Char20主键No姓名Varchar20No性别Varchar10No联系方式Char20No8(4)借阅基本信息表名称数据类型长度键类型允许空借书证号Char20外码No编号Char20外码No借书日期Char10No还书日期Char10借书数量Char10No四、数据库实施1.建表表的定义:在关系型数据库当中一个表就是一个关系,一个关系数据库可以包含多个表。(1)、管理员表/*Table:管理员*/droptableifexists管理员;createtable管理员(职工号char(20)notnull,姓名varchar(20)notnull,性别varchar(10)notnull,联系方式char(20)notnull,primarykey(职工号));(2)、图书信息表/*Table:图书信息*/droptableifexists图书信息;createtable图书信息(编号char(20)notnull,书名varchar(20)notnull,作者varchar(20)notnull,出版社varchar(20)notnull,9分类号varchar(20)notnull,库存数量char(10)notnull,primarykey(编号));(3)、读者表/*Table:读者*/droptableifexists读者;createtable读者(借书证号char(20)notnull,姓名varchar(20)notnull,性别varchar(10)notnull,联系方式char(20)notnull,primarykey(借书证号));(4)、借阅表/*Table:借阅*/droptableifexists借阅;createtable借阅(借书证号char(20)notnull,编号char(20)notnull,借书日期char(10)notnull,还书日期char(10),借书数量intnotnull,primarykey(编号,借书证号));altertable借阅addconstraintFK_借阅foreignkey(编号)references图书信息(编号)ondeleterestrictonupdaterestrict;altertable借阅addconstraintFK_借阅2foreignkey(借书证号)references读者(借书证号)ondeleterestrictonupdaterestrict;2.输入数据/*图书信息表插入数据*/INSERT10INTO图书信息VALUES('066801','马克思主义','王大伟','清华大学出版社','思想哲学类','20');INSERTINTO图书信息VALUES('066802','绿野仙踪','弗兰克','人民文学出版社','文学艺术类','20');INSERTINTO图书信息VALUES('066803','十四分之一','宁一航','中国农业出版社','恐怖灵异类','20');INSERTINTO图书信息VALUES('066804','物理结构模型','张俊','清华大学出版社','社会科学类','20');INSERTINTO图书信息VALUES('066805','海洋知识史','王珊','中华书局出版社','社会科学类','20');INSERTINTO图书信息VALUES('066806','做个好妈妈','张小蒙','北京生活出版社','生活智慧类','20');INSERTINTO图书信息VALUES('066807','中国近代史','王大伟','北大文学出版社','历史发展类','20');/*管理员表插入数据*/INSERTINTO管理员VALUES('201611611','李红','女','1234561');INSERTINTO管理员VALUES('201611612','王巧','女','1234562');INSERT11INTO管理员VALUES('201611613','廖大强','男','1234563');INSERTINTO管理员VALUES('201611614','陆峰','男','1234564');INSERTINTO管理员VALUES('201611615','张小兰','女','1234565');INSERTINTO管理员VALUES('201611616','黄佩蓝','女','1234566');INSERTINTO管理员VALUES('201611617','飘零大叔','男','1234567');/*读者表插入数据*/INSERTINTO读者VALUES('1311','廖浩艇','男','2360221');INSERTINTO读者VALUES('1312','廖飞艇','男','2360222');INSERTINTO读者VALUES('1313','武艺','男','2360223');INSERTINTO读者VALUES('1314','刘艳娜','女','2360224');INSERTINTO读者VALUES('1315','南天','男','2360225');INSERTINTO读者VALUES('1316','黛玉','女','2360226');12INSERTINTO读者VALUES('1317','白云','女','2360227');/*借阅表插入数据*/INSERTINTO借阅VALUES('1311','066803','20170617','20170622',2);INSERTINTO借阅VALUES('1312','066804','20150715','20150915',3);INSERTINTO借阅VALUES('1313','066801','20160615','20160706',1);INSERTINTO借阅VALUES('1314','066806','20170617','20170715',1);INSERTINTO借阅VALUES('1315','066807','20170922','20171006',2);INSERTINTO借阅VALUES('1316','066802','20170909','20171103',2);INSERTINTO借阅VALUES('1317','066805','20171109','20171124',1);3.建立视图定义:视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。(1)、/*视图查询图书信息表中的信息*/DROPVIEWIFEXISTSbook;13CREATEVIEWbookASSELECT编号,分类号,库存数量,书名FROM图书信息;/*查询数据*//*查询视图1*/SELECT*FROMBOOK;/*查询视图2*/SELECT书名,分类号FROMBOOK;(2)、/*视图查询管理员、读者表中的信息*/DROPVIEWIFEXISTSY01;CREATEVIEWY01(num,work_phone,reader_phone)ASSELECT管理员.职工号,管理员.联系方式,读者.联系方式FROM管理员,读者;/*查询数据*/SELECTDISTINCTnum,work_phoneFROMY01;4.创建用户并授权/*创建用户USER1*/CreateUSER'USER1'@'localhost'IDENTIFIEDBY'0668';/*在cmd中操作*/cdC:\ProgramFiles\MySQL\MySQLServer5.7\bin\mysql-uuser1-p/*用户USER1拥有对各表的所有权限*/(1)将图书信息表的所有权限授予用户USER1GRANTALLPRIVILEGESONstud1.图书信息TO'USER1'@'localhost';14(2)将管理员表的所有权限授予用户USER1GRANTALLPRIVILEGESONstud1.管理员TO'USER1'@'localhost';(3)将读者表的所有权限授予用户USER1GRANTALLPRIVILEGESONstud1.读者TO'USER1'@'localhost';(4)将图书信息表的所有权限授予用户USER1GRAN