mysql图管理完整.docx

上传人:b****6 文档编号:4764882 上传时间:2022-12-08 格式:DOCX 页数:12 大小:22.14KB
下载 相关 举报
mysql图管理完整.docx_第1页
第1页 / 共12页
mysql图管理完整.docx_第2页
第2页 / 共12页
mysql图管理完整.docx_第3页
第3页 / 共12页
mysql图管理完整.docx_第4页
第4页 / 共12页
mysql图管理完整.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

mysql图管理完整.docx

《mysql图管理完整.docx》由会员分享,可在线阅读,更多相关《mysql图管理完整.docx(12页珍藏版)》请在冰豆网上搜索。

mysql图管理完整.docx

mysql图管理完整

电子科技大学成都学院

实验报告册

课程名称:

mysql图书管理系统

姓名:

徐源

学号:

1040710526

院系:

微电子技术系

专业:

集成(嵌入式)

教师:

黄玹

2012年12月22日

图书管理系统

小组成员:

徐源唐东南

1.背景

1.1.1课程设计背景

某大学图书馆开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,罚款处理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库.

1.1.2编写目的

让学生熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统,来实际演练,达到融会贯通的效果。

1.1.3软件定义

Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysqlAB公司开发、发布并支持。

本实验用的是mysql5.1版本

1.1.4开发环境

本实验用的是mysql5.1版本,windows7

1.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$$

createprocedurejs_manager(inr_idchar(10),inr_namechar(10),insexchar

(2),

inr_sfchar(8),inbirthdaydatetime,inr_icchar(18),

inr_telechar(11),inr_addrvarchar(30),inr_zipchar(6)

inb_id,char(6),injs_timedatetime,inhs_timedatetime,injs_quantityint)

begin

insertintoborrowing_placevalues(r_id,b_id,js_time,hs_time,js_quantity)。

updatelibrariansetbook_sy=book_sy-js_quantitywherebook_id=b_idandread_id=r_id。

//更新图书剩余量

selectread_namefromreaderswhereread_id=r_id。

ifread_name=nullthen//readers表中没有r_id的个人信息的话,将登记

insertintoreadersvalues(r_id,r_name,sex,r_sf,birthday,r_ic,r_tele,r_addr,r_zip)。

endif。

end$$

程序实现的功能是借阅者借书时登记其个人信息,若以前登记过,就不在重复插入,将借阅者所接的书和借书日期、应该还书日期、和借书数量做记录,同时更新图书的剩余量方便后来的借阅者查询是否这本书还有。

还书、图书剩余量及罚款功能(利用存储过程实现)

delimiter$$

createprocedurebook.fines(insjhsdatetime,inxhchar(10),inshchar(10))

begin

declaredaytinyint。

selectdatediff(sjhs,hs_time)intodayfromborrowing_placewhereread_id=xhandbook_id=sh)。

//计算出超期天数将天数存到day的变量中

ifday>0

then

select(day*0.2*js_quantity)as'罚金'fromborrowing_placewherebook_id=shand

read_id=xh。

//计算出超期借阅者应该的罚款金额

endif。

updatelibrariansetbook_sy=book_sy+(selectjs_quantityfromborrowing_place

wherebook_id=shandread_id=xh)。

//更新图书剩余量

deletefromborrowing_placewhereread_id=xhandbook_id=sh。

//删除此条还书信息

end$$

程序实现的功能是借阅者还书时根据借阅的编号和所还书的号来计算出超期时间,如果超期,就计算出罚金,对借阅者进行罚款处理,同时更新图书的剩余量和删除这位借阅者的借阅信息。

图书借阅排行榜功能(利用存储过程实现)

delimiter$$

createprocedurejs_ph()

begin

selectbook_id,book_name,book_syfromlibrariangroupbybook_sy。

end$$

程序的功能是通过select语句选择出图书剩余量和图书相关信息,根据图书剩余量升序排列,图书编号排在最前的是借出数量最多,以此增加了图书知名度。

图书剩余量查询功能(利用存储过程实现)

delimiter$$

createproceduresycx()

selectbook_id,book_name,book_syfromlibrariangroupbybook_id。

end$$

程序的功能是查询出图书剩余量,供借阅者查看,以免造成借书时却没有这本书的尴尬局面。

催还过期图书通知功能(通过视图功能实现)

createviewhs_remind()

as

selectread_id,book_id,datediff(hs_time,now())as'超期天数'fromborrowing_placegroupbyread_id。

select*fromhs_timewhere超期天数>0。

程序利用视图实现计算出借阅者所借书的超期天数,通过select选择出超期天数为正的借阅者学号,方便管理员知道哪些借阅者有超期未还的书,好及时通知还书。

退借阅卡删除登记信息功能(通过存储过程实现)

delimiter$$

createprocedurelogout(inr_idchar(10))

selectbook_idfromborrowing_placewhereread_id=r_id。

deleteformreaders,jtcywhereread_id=r_id。

end$$

程序实现的功能是借阅者要求注销借阅卡时,根据借阅卡上的借阅编号,来删除登记信息,当然先查询借阅处信息表,看看该借阅者有没有未还完的书。

借阅者基本信息修改功能(通过存储过程实现)

delimiter$$

createprocedureread_alter(inr_idchar(10),inr_namechar(10),inshenfenchar

(10),inr_icchar(18),intelchar(11),inr_addrchar(30))

begin

updatereaderssetread_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>descreaders。

//借阅者信息主要作用是存储借阅者基本信息

+-----------+-------------+------+-----+---------+-------+

|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>descjtcy。

家庭成员表

+----------+----------+------+-----+---------+-------+

|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||

+----------+----------+------+-----+---------+-------+

创建程序

createtablereaders

read_idchar(10)notnull,//读者号

jt_idchar(4)notnull,//家庭编号

read_namechar(10)notnull,//借阅者姓名

sexchar

(2)notnulldefault'男',//性别

read_sfchar(8)notnull,//身份

birthdaydatetimenull,//生日

read_icchar(18)notnull,//身份证号

read_telechar(11)notnull,//电话

read_addrvarchar(30)notnull,//地址

read_zipchar(6)notnull,//邮编

primarykey(read_id,jt_id)

)。

createtablejtcy

jt_idchar(4)notnullprimarykey,//家庭编号

jt_namechar(10)null,//家庭成员名

guanxichar(4)null,//关系

workaddrchar(20)null,//工作地址

zhiwuchar(10)null,//职务

jt_telechar(11)null//电话

)。

mysql>desclibrarian。

图书管理处主要作用是存储图书基本信息

+-------------+----------+------+-----+---------+-------+

|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||

+-------------+----------+------+-----+---------+-------+

创建程序

createtablelibrarian

book_idchar(10)notnullprimarykey,//图书编号

book_namechar(20)notnull,//图书名

book_pubchar(30)notnull,//出版社

book_authorchar(6)notnull,//作者

book_priceintnotnull,//价格

book_numchar(11)notnull,//图书总量

book_sychar(11)notnull//图书剩余量

)。

mysql>descborrowing_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||

+-------------+----------+------+-----+---------+-------+

创建程序

createtableBorrowing_place

read_idchar(10)notnull,//借阅者号

book_idchar(10)notnull,//图书编号

js_timedatetimenotnull,//还书时间

hs_timedatetimenotnull,//应该还书时间

js_quantityintnotnull,//借书数量

primarykey(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供数据库使用者使用,创建语句如下:

createuser//创建用户

'rader'@'localhost'identifiedby'012345',//用户reader

'manager'@'localhost'identifiedby'123456'。

//管理员manager

usebook。

//给manager设置查询、删除、修改、更新的权限

grantselect,delete,alter,update

onbook.*

tomanager@localhost。

grantselect//给read设置select的权限

onbook.*

toread@localhost。

 

数据的备份

Usebook。

Select*fromreaders

Intooutfile‘d:

/book.txt’

Fieldsterminate

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

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1