已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学成都学院实验报告册 课程名称: mysql图书管理系统 姓 名: 徐 源 学 号: 院 系: 微电子技术系 专 业: 集成(嵌入式) 教 师: 黄 玹 2012 年 12 月 22 日 图书管理系统小组成员:徐源 唐东南1.背景 1.11课程设计背景某大学图书馆开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,罚款处理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库.1.1.2编写目的让学生熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统,来实际演练,达到融会贯通的效果。1.1.3软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysql AB公司开发、发布并支持。本实验用的是mysql 5.1版本1.1.4开发环境本实验用的是mysql 5.1版本,windows71.2数据需求图书馆管理信息系统需要完成功能主要有:1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。2读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。3书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。4书籍类别信息的查询、修改,包括类别编号、类别名称。5书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。6书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。7借书信息的输入,包括读者借书证编号、书籍编号、借书日期。8借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9还书信息的输入,包括借书证编号、书籍编号、还书日期。 10还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。11超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。12超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等1.3事物需求(1)在读者信息管理部分,要求:a.可以查询读者信息。b.可以对读者信息进行添加及删除的操作。(2 )在书籍信息管理部分,要求:a.可以浏览书籍信息,要求:b.可以对书籍信息进行维护,包括添加及删除的操作。(3)在借阅信息管理部分,要求:。a.可以浏览借阅信息。b.可以对借阅信息进行维护操作。(4)在归还信息管理部分,要求:a.可以浏览归还信息b.对归还信息可修改维护操作(5)在管理者信息管理部分,要求:a.显示当前数据库中管理者情况。b.对管理者信息维护操作。(6)在罚款信息管理部分,要求:a.可以浏览罚款信息b.对罚款信息可以更新1.4关系模式(一) 书籍类别(种类编号,种类名称)(二) 读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)(三) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)(四) 借阅(借书证编号,书籍编号,读者借书时间)(五) 还书(借书证编号,书籍编号,读者还书时间)(六) 罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。1.5流程图借书及图书剩余量更新功能(利用存储过程实现)delimiter $create procedure js_manager(in r_id char(10),in r_name char(10),in sex char(2),in r_sf char(8), in birthday datetime, in r_ic char(18),in r_tele char(11),in r_addr varchar(30), in r_zip char(6),in b_id,char(6),in js_time datetime,in hs_time datetime, in js_quantity int)begininsert into borrowing_place values(r_id,b_id,js_time,hs_time,js_quantity);update librarian set book_sy=book_sy-js_quantity where book_id=b_id andread_id=r_id;/更新图书剩余量select read_name from readers where read_id=r_id;if read_name =null then /readers表中没有r_id的个人信息的话,将登记insert into readers values(r_id,r_name,sex,r_sf,birthday,r_ic,r_tele,r_addr,r_zip);end if;end$ 程序实现的功能是借阅者借书时登记其个人信息,若以前登记过,就不在重复插入,将借阅者所接的书和借书日期、应该还书日期、和借书数量做记录,同时更新图书的剩余量方便后来的借阅者查询是否这本书还有。还书、图书剩余量及罚款功能(利用存储过程实现)delimiter $create procedure book.fines(in sjhs datetime ,in xh char(10), in sh char(10)begindeclare day tinyint;select datediff(sjhs,hs_time) into day from borrowing_place where read_id=xh and book_id=sh); /计算出超期天数 将天数存到day的变量中if day 0thenselect (day*0.2*js_quantity) as 罚金 from borrowing_place where book_id=sh andread_id=xh; /计算出超期借阅者应该的罚款金额end if;update librarian set book_sy=book_sy + (select js_quantity from borrowing_placewhere book_id=sh and read_id=xh);/更新图书剩余量delete from borrowing_place where read_id=xh and book_id=sh;/删除此条还书信息end$程序实现的功能是借阅者还书时根据借阅的编号和所还书的号来计算出超期时间,如果超期,就计算出罚金,对借阅者进行罚款处理,同时更新图书的剩余量和删除这位借阅者的借阅信息。图书借阅排行榜功能(利用存储过程实现)delimiter $create procedure js_ph()beginselect book_id,book_name,book_sy from librarian group by book_sy;end$程序的功能是通过select语句选择出图书剩余量和图书相关信息,根据图书剩余量升序排列,图书编号排在最前的是借出数量最多,以此增加了图书知名度。图书剩余量查询功能(利用存储过程实现)delimiter $create procedure sycx()select book_id,book_name,book_sy from librarian group by book_id;end$程序的功能是查询出图书剩余量,供借阅者查看,以免造成借书时却没有这本书的尴尬局面。催还过期图书通知功能(通过视图功能实现)create view hs_remind()asselect read_id,book_id, datediff(hs_time,now() as 超期天数 from borrowing_place group by read_id;select * from hs_time where 超期天数0 ;程序利用视图实现计算出借阅者所借书的超期天数,通过select选择出超期天数为正的借阅者学号,方便管理员知道哪些借阅者有超期未还的书,好及时通知还书。退借阅卡删除登记信息功能(通过存储过程实现)delimiter $create procedure logout(in r_id char(10)select book_id from borrowing_place where read_id=r_id;delete form readers,jtcy where read_id=r_id;end$程序实现的功能是借阅者要求注销借阅卡时,根据借阅卡上的借阅编号,来删除登记信息,当然先查询借阅处信息表,看看该借阅者有没有未还完的书。借阅者基本信息修改功能(通过存储过程实现)delimiter $create procedure read_alter(in r_id char(10),in r_name char(10),in shenfen char(10),in r_ic char(18),in tel char(11),in r_addr char(30)beginupdate readers set read_id=r_id,read_name=r_name,read_sf=shenfen,read_ic=r_ic,read_tele=tel,read_addr=r_addr;end$程序功能是通过update更新借阅者的重要信息,达到借阅者信息改变时修改借阅者信息,这种方法有点修改起来有点麻烦,但是由于能力有限,现阶段只能凑合着用了哦。2.E-R图根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。借阅者(readers)与图书管理处(librarian)实体集之间的联系的关系模式为:Readers(read_id,jt_id,read_name,sex,read_sf,read_ic,read_tele,birthday,read_addr,read_zip)Librarian(book_id ,book_name,book_pub,book_author,book_price,book_num,book_sy)Borrowing_place(read_id,book_id,js_time,hs_time,js_quantity)Borrowing_place的主码是由read_id和book_id两个属性的组合起来构成一个主码3.数据表设计1. 概念结构设计在mysql中通常把每一类数据对象的个体称为实体,每类对象个体的集合称为实体集,这个图书管理系统主要涉及借阅者、图书两个实体集,其他的非主要实体集为家庭成员。借阅者的属性有借阅编号、姓名、性别、身份、生日、电话、地址、邮编、身份证号等。图书的属性有图书编号、图书名、出版社、作者、价格、书量、图书剩余量等,实体集中的实体彼此可以区别,通过该属性或属性组合的主键加以区别和联系实体-联系模型2. 物理结构设计(表和功能说明)本次试验中我创建了名为book的数据库,其中创建了4张表,分别为:1:readers(借阅者表或登记处),主要作用是记录借阅者在建借阅卡时的个人基本信息。2:jtcy(家庭成员表)其作用也是记录借阅者的家庭成员情况。3:librarian(图书管理表)它的作用是图书管理员对图书信息的记录。4:borrowing_place(图书借还处表)其作用是图书借还处工作人员对借出的图书和借阅者的登记。 (每个表的字段名、数据类型、是否非空、约束条件和说明等)mysql desc readers; /借阅者信息主要作用是存储借阅者基本信息+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| read_id | char(10) | NO | PRI | NULL | | jt_id | char(4) | NO | PRI | NULL | | read_name | char(10) | NO | | NULL | | sex | char(2) | NO | | 男 | | read_sf | char(8) | NO | | NULL | | birthday | datetime | YES | | NULL | | read_ic | char(18) | NO | | NULL | | read_tele | char(11) | NO | | NULL | | read_addr | varchar(30) | NO | | NULL | | read_zip | char(6) | NO | | NULL | |+-+-+-+-+-+-+mysql desc jtcy;家庭成员表+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| jt_id | char(4) | NO | PRI | NULL | | jt_name | char(10) | YES | | NULL | | guanxi | char(4) | YES | | NULL | | workaddr | char(20) | YES | | NULL | | zhiwu | char(10) | YES | | NULL | | jt_tele | char(11) | YES | | NULL | |+-+-+-+-+-+-+创建程序create table readers(read_id char(10) not null,/读者号jt_id char(4) not null, /家庭编号read_name char(10) not null, /借阅者姓名sex char(2) not null default 男, /性别read_sf char(8) not null, /身份birthday datetime null, /生日read_ic char(18) not null, /身份证号read_tele char(11) not null,/电话read_addr varchar(30) not null, /地址read_zip char(6) not null, /邮编primary key(read_id,jt_id);create table jtcy(jt_id char(4) not null primary key, /家庭编号jt_name char(10) null,/家庭成员名guanxi char(4) null, /关系workaddr char(20) null, /工作地址zhiwu char(10) null, /职务jt_tele char(11) null /电话);mysql desc librarian;图书管理处主要作用是存储图书基本信息+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| book_id | char(10) | NO | PRI | NULL | | book_name | char(20) | NO | | NULL | | book_pub | char(30) | NO | | NULL | | book_author | char(6) | NO | | NULL | | book_price | int(11) | NO | | NULL | | book_num | char(11) | NO | | NULL | | book_sy | char(11) | NO | | NULL | |+-+-+-+-+-+-+创建程序create table librarian(book_id char(10) not null primary key,/图书编号book_name char(20) not null, /图书名book_pub char(30) not null, /出版社book_author char(6) not null, /作者book_price int not null, /价格book_num char(11) not null, /图书总量book_sy char(11) not null /图书剩余量);mysql desc borrowing_place;图书借还处 主要作用存储借还书信息+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| read_id | char(10) | NO | PRI | NULL | | book_id | char(10) | NO | PRI | NULL | | js_js_time | datetime | NO | | NULL | | hs_time | datetime | NO | | NULL | | js_quantity | int(11) | NO | | NULL | |+-+-+-+-+-+-+创建程序create table Borrowing_place(read_id char(10) not null, /借阅者号book_id char(10) not null, /图书编号js_time datetime not null, /还书时间hs_time datetime not null, /应该还书时间js_quantity int not null, /借书数量primary key(read_id,book_id) /一个表只能有一个主键,所以这样写);3. 视图这次实验实现图书管理系统的还书、借书、图书排行榜,剩余图书查询我都用的是存储过程,只有生产超期未还书名单使用视图功能,(具体用存储过程实现的模块和视图实现的模块结果见需求分析中的完成的功能处)4. 索引根据我们在mysql中所学,索引的分类为普通索引、唯一性索引、主键、全文索引我在设计这个图书管理系统上用到的索引是主键索引方式,分别在readers(借阅者个人信息表)中创建read_id为主键索引,在jtcy(家庭成员表)中创建jt_id为主键索引,在librarian(图书管理表)中创建book_id为主键索引,在borrowing_place(借还书处表)中创建read_id和book_id为联合主键索引,并通过borrowing_place这张表将readers和librarian这两张表发生联系。Readers和jtcy这两张表是通过jt_id主键联系起来的。5. 表的关联我创建的book数据库中的四张表(librarian,readers,borrowing_place,jtcy),是通过主键read_id,book_id,jt_id来相关联的4.数据库的安全性设计通过数据库来实现图书管理系统,图示和借阅者的信息都保存在数据库里,借阅者和管理员都可以操作数据库,但是为了防止不是图书馆工作的人员恶意行为,例如 删除信息、篡改信息等,将为不同的用户设置不同的操作数据库的权限,在此为借阅者设置查询的权限,为管理员设置查询、删除、修改、添加的权限,这样才能达到高效安全的数据库使用。同时也要经常为数据库的信息进行备份,以防止数据库的数据丢失造成的不必要损失和麻烦。在这次试验中我同时创建2个用户read和manager供数据库使用者使用,创建语句如下:create user /创建用户raderlocalhost identified by ,/用户readermanagerlocalhost identified by ;/管理员manageruse book;/给manager设置查询、删除、修改、更新的权限grant select,delete,alter,update on book.*to managerlocalhost;grant select/给read设置select的权限on book.*to readlocalhost;数据的备份Use book;Select * from readers Into outfile d:/book.txtFields terminated by ,Optionally enclosed by ”Lines terminated by ?;其他的3张表任然按照这种方式5.数据库管理与维护说明一、数据库管理1:数据库应该由有高级别权限的专门的管理人员使用,以免造成对图书管理系统这个数据库的环境不熟悉而造成损失,同时这种管理方式不会让人员散乱,发生事故无法追究责任
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)医院医务科年度工作计划
- (2026年)育婴员初级理论知识试卷
- 烧结法溶出工操作能力模拟考核试卷含答案
- 动画制作员安全宣教考核试卷含答案
- 浸渍干燥工岗前个人防护考核试卷含答案
- 推土犁司机冲突解决知识考核试卷含答案
- 输气工QC管理强化考核试卷含答案
- 起重工安全技能能力考核试卷含答案
- 道路货运站务员岗中新技术考核试卷含答案
- 硬质合金精加工工安全知识竞赛考核试卷含答案
- 2026年薪税师综合能力等级考试模拟试题及答案
- 2026年山东省聊城市辅警人员招聘考试题库及答案
- 2026年南京新工投资集团有限责任公司人员招聘笔试参考试题及详细答案解析
- 2026生猪期货市场运行机制及价格波动影响因素研究报告
- 第6课 人民当家作主 第1课时 课件(内嵌视频)2026-2027学年道德与法治五年级上册统编版
- 高二语文早晚读检测小纸条学生版(选必上册共12个 )
- 2026 年办公区域安全生产防范知识课件
- 2023-2024学年安徽省六校教育研究会高三(上)入学语文试卷
- 2.4《中国的自然灾害》参考课件
- 2026年安徽合肥经开区社区工作者招聘考试试卷-含答案解析
- 2025年山东省检察院员额检察官遴选考试真题及答案
评论
0/150
提交评论