1、(完整word版)数据库之图书管理系统实验报告数据库技术课程设计说明书 设计题目:图书馆数据库系统 设 计 者:xxxxxxxxxxxxxxx 指导教师:xx xxx 完成时间:2011年12月31日 目录引言3编写目的3背景3任务理解4课设目标4系统基本功能模块4书籍管理子系统5读者管理子系统5借阅管理子系统5需求分析5系统分析6系统设计6概念结构设计7概念结构7整体E-R图7局部E-R图8数据字典8逻辑结构设计13数据库的实施15总体视图15关系图截图16数据载入16结构查询19表的查找21更新表中记录22插入表中记录23删除24创建视图25创建触发器26存储过程27索引28实验小结29引
2、言随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。学生对知识的可望有增无减,图书馆用手工管理图书的方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。为了满足其管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,此图书管理系统软件力求提高其管理效率。编写目的本文档的编写一方面是为了完善图书管理系统软件的开发途径和应用方法,以求在最短的时间高效的开发图书管理系统。另一方面从另一个角度培养我们对SQL的运用,将学到的知识运用于实际生活中。1)通过对应用问题的功能分析,掌握功能分解与模块设计的基本模式,建立总体设计的概念。 2)
3、进一步提高建库、索引、查询、关联等数据库基本操作技术。 3)通过对功能模块的具体实现,得到面向对象的程序设计方法的初步训练。4)通过分析、设计、实现的全过程训练,提高我们分析问题、解决问题的能力,培养我们的创新意识。背景数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,使现在计算机信息系统和计算机运用系统的基础和核心,对与任何一个企业来说,数据是企业的重要资产,如何有效利用这些数据,对于企业发展起着及其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆图书种类、数量的不断扩大,图书检索速度慢、统计工作量大,难以满足图书馆现代化管理的要求。因此
4、,建立一套图书馆管理软件,科学的对图书馆数据进行管理,方便图书的检索和读者借阅工作。任务理解 数据库课程设计是在我们系统的学习可数据库原理后,按照关系型数据库的基本原理,综合运用所学知识,以小组为单位,设计开发一个小型的数据库管理系统。l 具体操作如下:通过详细调查,描述业务流程,掌握功能分析,数据分析的基本要求,建立逻辑模型的概念;据抽象的业务功能和系统设计的原则,绘制E-R图,完成数据库概念的结构设计;通过将E-R图转换为关系数据模型,完成逻辑结构设计;通过物理设计,在计算机上的数据库软件上建立相关的关系表、视图等,将其彻底转换成物理模型,并实现运行与维护。课设目标 通过对对应问题所处环境
5、的调查,对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到点知识应用于解决实际问题,培养学生的动手能力以及创新意识;另一方面,使学生深入理解和灵活掌握教学内容。本程序实现学生与图书馆管理员的界面分离模式,同时实现管理员对学生有全面的资料管理功能。有多个图书、学生、系统的动态管理功能,如:图书的查询、添加、删除、修改与及学生的详细资料的查询、添加、删除、修改等等多样、动态的管理。同时可以放权给管理员查询、添加、删除、修改的能力。 系统基本功能模块设计并实现了如下三个子系统,分别是书籍管理系统,读者管理子系统,借阅管理子系统。书籍管理子系统它主要提供用户登录功能,并按
6、各用户的权限使用本系统。本系统分三类用户:权限公查询,管理员的权限是借还书和管理书,超级管理员的权限是管理读者,管理图书分类,管理管理员登录帐户,管理逾期图书。 读者管理子系统主要用于查询图书,其中直接查询包括按图书编号直接查询,按书名查询,按作者查询,按出版社查询(可选模糊查询)。多条件查询可以 按读者的要求选取所需要的图书直接查询和模糊查询,多条件查询)。 借阅管理子系统分别是由图书管理员管理图书(包括图书信息的修改,新图书的增加,旧图书的删除),超级管理员管理图书分类,管理信息、,管理管理员登录帐户,管理逾期主要由图书管理员进行借书还书记录的登记和清除,它分别由二个界面:借书操作界面和还
7、书界面构成需求分析图书馆管理信息系统要完成功能主要有:1) 读者基本信息查询、修改,包括借书证号,读者姓名、读者性别等2) 书籍类别的制定,类别信息输入,包括:书号,图书大类名,图书小类名, 3) 借书信息的输入,包括读者学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号4) 借书信息的查询包括书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格 5) 还书信息的输入,查询包括学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号6) 超期罚款输入包括罚款单号,书号,学号,应罚金额,是否交款,罚款日期,管理员编号7) 管理员管理管理员编号,姓名,地址,电话,备注8
8、) 损害丢失信息输入包括书名,书号,读者姓名,学号,是否已赔,应赔偿金额9) 书名书籍类别的查询包括书号,图书大类名,图书小类名,书名10) 读者基本信息的输入,包括姓名,学号,性别,专业,班号,违章状况,已借数目,可借天数,借书时间系统分析系统设计图书管理系统书籍管理子系统读者管理子系统借阅管理子系统书籍分类管理书籍信息管理出版社管理读者信息管理续借管理借还书管理书籍管理书籍类别表书籍借阅管理书籍信息表出版社信息书籍信息读者信息表借阅条件完成借阅过期罚款管理图书丢失管理书籍信息借阅信息表过期信息罚款信息罚款数丢失信息查询管理读者信息概念结构设计概念结构一个图书馆拥有多个图书室一个图书室可以存
9、放多本书籍,一本书籍也可以放在不同的图书室不同管理员可以管理多本书籍,不同的书籍也可以被不同的管理员管理不同管理员可以管理不同的书籍信息表,书籍信息表也可以被不同的管理员管理不同管理员可以管理不同的读者信息表,不同的读者信息表也可以被不同的管理员管理不同管理员可以办理多个借书证,一个借书证可以由不同的管理员办理不同借书证可以查询不同的书籍,一本书籍可以被不同的借书证查询一个读者可以借阅多本书籍,一本书籍也可以被不同的读者借阅一个读者持有一个借书证,一个借书证只能被一个读者持有一个读者只能查询自己的付款信息表,损害丢失表,还款信息表图书馆存放书籍持有借书证读者者查询管理员管理理办理借阅图书室1n
10、mnm1nnmmm11mnnm拥有出版社社提供整体E-R图局部E-R图图书室房间号书架号图数总量读者院系读者性别借书上限借书证读者编号读者专业读者姓名图书馆馆名成立时间地点电话读者学号性别姓名班号专业出版社e-mail电话地址出版社名名书籍图书编号数量摘要是可借否名称关键字出版社名分类价格出版日期管理员编号书所在房间号书所在书架号号电话号码管理员编号姓名职位数据字典数据库名:TSGLXT.mdb1) 数据库内含下列表:Library(图书馆)Book(书籍)Manager(管理员)Reader(读者)Library_card(借书证)Library_room(图书室)Publish(出版社)R
11、eserve(存放)Admin(管理)Handle(办理)Before_search(借阅前查询)Last_search(借阅后查询)Offer(提供)Own(拥有)Type(类别)In_and_Out(借还书信息表)Bookmanage(书籍管理表)Harm_and_Miss(损害丢失信息表)Fine(罚款信息表)2) 数据库表详细设计1. Library表字段名字段含义数据类型约束lname馆名Varchar(30)Not nulladds地址Varchar(30)b_time成立时间decimalNot nulltelephone_no电话Varchar(50)r_no房间号Char(7
12、)Not null2.Book表字段名字段含义数据类型约束b_no图书编号Varchar(9)Not null keyamount数量Char(7)Not nullbname名称Varchar(30)Not nulltype分类Varchar(50)publish出版社名Varchar(30)p_time出版日期DecimalNot nullprice价格Char(10)m_no管理员编号Char(7)borrow是否可借Not nullr_no书所在房间号Char(7)Not nullbookshelf_no书所在书架号Char(7)Not nullkey关键字Varchar(20)zhai
13、yao摘要Varchar(50)isbnIsbnVarchar(15)Primary key3.Manager表字段名字段含义数据类型约束m_no管理员编号Char(7)keymname姓名Varchar(24)Not nuposition地址Varchar(24)teltphone_no电话Varchar(50)beizhu备注Char(50)4.Reader表字段名字段含义数据类型约束sname姓借Varchar(24)student_id学号Varchar(9)keysex性别Varchar(2)specialty专业Varchar(20)Not nullclass_no班号Char(7
14、)Not nullweizhangzk违章状况Varchar(9)Not nullborrow_amount已借天数Varchar(9)Not nullkejietianshu可借天数Varchar(9)Not nullborrowdate书时间名DecimalNot null5.Library_card表字段名字段含义数据类型约束sname姓名Varchar(24)sex性别Varchar(2)dept院系Varchar(30)Not nullspecialty专业Varchar(20)limit借书上限Varchar(9)Not nullstudent_id学号Varchar(9)Key
15、6. Library_room字段名字段含义数据类型约束r_no房间号Char(7)Not nullbookshelf_no书架号Char(7)Not nullbookanmout图书总量Varchar(9)Not null7.Publish表字段名字段含义数据类型约束pname出版社名Varchar(30)keyadds地址Varchar(50)teltphone_no电话Varchar(50)e-mailChar(20)bname书名Varchar(30)Not nullisbn条形码Varchar(15)Primary key8.Reserve表字段名字段含义数据类型约束r_no房间号C
16、har(7)Not nullbookshelf_no书架号Char(7)Not nullb_no书号Varchar(9)Not null9.Admin表字段名字段含义数据类型约束b_no书号Varchar(9)Not nullr_no房间号Char(7)Not nullbookshelf_no书架号Char(7)Not nulltype类别Varchar(50)10.Handle表字段名字段含义数据类型约束sname姓名Varchar(24)Not nullStudent_id学号Varchar(9)Not nulldate办理日期Datetimemima密码Charsex性别varchar男
17、,女11.Before_search表字段名字段含义数据类型约束b_no书号Varchar(9)Not nullbname书名Varchar(30)Not nullp_time出版日期DecimalNot nullpname,出版社名Varchar(30)r_no房间号Char(7)Not nullstatus借阅情况Varchar(10)12.Last_search表字段名字段含义数据类型约束b_no, 书号Varchar(9)Not nullstudent_id, 学号Varchar(9)Not nullborrowtime,借书时间DecimalNot nullbacktime还书时间D
18、ecimalNot null13.Offer表字段名字段含义数据类型约束bname书名VarChar(30)Not nullbquantity书籍数量Decimalisbn条形码Varchar(15)Primary key14.Own 表字段名字段含义数据类型约束 r_no房间号Char(7)Primary keylibrary room_amount图书室数量Char(70)15.Type表字段名字段含义数据类型约束b_no书号varCharPrimary keytsdlm图书大类名VarChar(24)Not null tuxlm图书小类名VarChar(24)Not nullbname书
19、名VarChar(30)Not null16. In_and_Out表字段名字段含义数据类型约束 student_id学号VarChar(9)Primary keyb_no书号VarChar(9)keyborrowtime借书时间DetetimeNot null backtime还书时间DetetimeNot nullxjcishu续借次数DetetimeNot null m_no管理员编号Char(7)Not nullback是否归还VarChar(2)Not null17Bookmanage表字段名字段含义数据类型约束b_no书号Varchar(9)Primary Keybname)书名V
20、arChar(30)Not nullwriter作者VarChar(24)amount数量Varchar(7)tsdlm图书大类名VarChar(24)Not nulltsxlm图书小类名VarChar(24)Not nullpublish出版社VarChar(50)price价格Decimal18. Harm_and_Miss表字段名字段含义数据类型约束bname书名Varchar(30)Not nullb_no书号Varchar(9)Not P keysname姓名Varchar(24)Not nullstudent_id学号Varchar(9)Not nullpay是否已赔Char(2)
21、Not null 是否money赔偿金额decimalNot null19. Fine表字段名字段含义数据类型约束fine_id罚款单号Varchar(7)Not null keyb_no书号Varchar(7)Not keystudent_id学号Varchar(9)Not keyfinemoney罚款金额DecimalNot nulljiaokuan是否交款Char(2)Not null 是否finetime罚款时间decimalNot nullm_no管理员编号Char(7)Not null逻辑结构设计E-R图向关系模型转化(加下划线的为候选码)图书馆(馆名,地址,成立时间,电话,房间号
22、)书籍(图书编号,数量,名称,分类,出版社名,出版日期,价格,管理员编号,是否可借,摘要,关键字,书所在房间号,书所在书架号,isbn)管理员(管理员编号,姓名,地址,电话,备注)读者(学号,姓名,性别,专业,班号,违章状况,已借数目,可借天数,借书时间)借书证(学号,姓名,性别,院系,专业,借书上限)图书室(房间号,书架号,图书总量)出版社(出版社名,地址,电话,邮编,e-mail)分类(书号,图书大类名,图书小类名,书名)借还书信息(学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号)书籍管理信息(书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格 )损害丢失信息(
23、学号,书号,读者姓名,是否已赔,应赔偿金额)罚款信息(罚款单号,书号,学号,应罚金额,是否交款,罚款日期,管理员编号)联系:存放(房间号,书架号,图书编号 存放量)管理(书号,房间号,书架号,类别,)办理(学号,姓名,密码,办理日期,性别)借阅前查询(图书编号,名称,出版日期,出版社名,房间号,借阅情况)借书后查询(图书编号,借书证号,借出时间,需归还时间)提供(isbn,书籍数量,书名)拥有(图书室编号,图书室数量)数据库的实施总体视图关系图截图数据载入1.Library表的录入2Book表的录入3Manager表的录入4.Reader表的录入5.Librar_card表的录入6.Libra
24、ry_room表的录入7.Publish表的录入8.Reserve表的录入9.Admin表的录入10.Handle表的录入11.Before_search表的录入12.Last_search表的录入13.Offer表的录入14.own表的录入15.type表的录入16. In_and_Out表的录入17Bookmanage表的录入18. Harm_and_Miss表的录入19. Fine表结构查询1.查询Manager表的结构2.查询Book表的结构3.查询Reader表的结构表的查找1.查找Book中的名称2.查找Bookmanage中的作者3.查询Reader表中记录数目4.查询Manag
25、er表中记录数目5.查询Book表中记录数目更新表中记录1.更新表Reader中的读者名2.更新表Book中的书名插入表中记录1.向表Manager中插入记录(100000,李旭,null,null,null)2.向表Typt中插入记录(110145198,近代史,信息,邮电通信)3.向表Own中插入记录(8,7)4.向视图publish1中插入记录(浙江出版社,null,null,null,经济学,000000000000009)删除1.删除表Library中名称为“图书馆”的记录2.删除表Publish中“出版社名”为“河北出版社”的记录3.删除试图Reserve1创建视图1. 创建表Bo
26、ok的视图2.创建表Fine的视图3.创建表Manager的视图创建触发器1. 当读者的借阅书籍总数大于6本时,报警器报警2.当读者借书天数超过28天数,报警器报警,天数变0存储过程1. 表Library的存储过程2. 表Manager的存储过程1)2)3)索引1.表Book建索引实验小结 数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。 随着科学技术的发展计算机科学逐渐深入人类社会的各个领域并发挥着越来越重要的作用。运用人工表来管理图书馆不仅浪费大量的
27、人力而且存在很多缺点和不便。通过实现图书管理系统可以节省很多人力,并且方便图书管理员对图书的管理和学生对图书的查询。我们模拟图书馆建立图书管理系统主要分为七个功能模块:书籍分类,书籍信息管理,出版社管理,查询管理,读者信息管理,续接管理,借还书管理。在这几天里,我们从搜集资料,到需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护,每一步我们都尽力做到最好,充分发挥能动性,学会互相配合,做合理的分工,尊重彼此的意见。除了学会了系统的设计,更让我们明白团结协作的重要性,合作起来会事半功倍。xx:在数据库设计中所遇到的问题有:模型的优化,范式的分解,整体E-R图的构造,
28、用SQL语言为各表建立索引,数据库中的关系图等等。由于对关系的三类完整性理解不够,也导致了在向用户表中插入数据的一系列小问题,不过我们都通过查阅资料,请教老师,终于克服了。看似简单,其实做起来却很困难很复杂,需要耐心,更重要的是对数据库系统的理解和熟练运用。在这次课程设计中,每个人的动手能力和操作能力都得到了展现和发挥,学会了系统开发的知识和SQL语言的掌握,尽管我们没有做到百分百的完美,但是我们努力过,尽心过,我们为自己的劳动成果感到骄傲。xx:通过本次数据库的课题设计,我对数据库有了更全面更深刻的认识和学习,对其基本的概念知识更熟识,牢固的掌握它们是我们后续学习的基础,在操作向表中添加数据
29、,插入、删除、更新的方法,对视图的建立及操作方法,学会使用索引,虽然我对存储的过程,触发器的参照完整性操作还较难实现,但我相信经过我们努力的合作与配合,再加上掌握其中的原理和诀窍,并能正确深入地理解,就一定不是问题了。此外,结实得以巩固,从而使我们的能力也在操作中也得到了很大的提高。通过此次图书馆管理系统的实际设计使我更加确信这一点。我想,在今后的学习中,我会更加巩固自己的基础知识与操作方法,才能在遇到复杂问题时能及时找到解决的方法。 另外建立E-R图的相关知识和我们的生活联系比较紧密,学习起来也较有意思。图中各实体都来自我们的现实生活,所以在创建关系时必须回顾到生活中,找出联系,看是一对一、
30、一对多还是多对多。在创建图时,并不是把所有的联系都加上就是一个完美的的图,一个最佳的图必须能够简洁全面的反应各实体之间的联系,不能有太多的冗余或漏洞。通过此次试验,使我体会到学习与生活间的密切联系,我们不仅要努力掌握书本上的理论知识,而且更要懂得从生活中汲取知识,联系实际,学会举一反三,更要用于实际。xx:在这次的数据库设计中,显然没有以前做实验是那么盲目,基本搞清楚了理论方面的知识,知道SQL sever的运用,通过自己动手实践获得知识,感觉就是不一样,对数据库系统又有了新的认识,运用计算机自己开发设计系统,来减轻劳动强度,提高信息处理速度和准确性,我们分析现有图书馆管理的漏洞,然后搜集资料,设计出自己的图书管理系统。这次设计是对我们综合能力的提升,虽然在做的过程中遇到了很多困难,但是我们小组讨论之后也都解决了,可能解决的不是很完美但是完成任务后感觉很开心,最后我们也不得不承认我们的能力和认识有局限性,所以今后我们学习的道路是漫长的。这个系统可能还存在着许多不足之处,请老师指正,我们会在以后的课程中,不断改进。372024/9/24