数据库图书管理系统含代码.docx

上传人:b****1 文档编号:12667547 上传时间:2023-04-21 格式:DOCX 页数:18 大小:112.11KB
下载 相关 举报
数据库图书管理系统含代码.docx_第1页
第1页 / 共18页
数据库图书管理系统含代码.docx_第2页
第2页 / 共18页
数据库图书管理系统含代码.docx_第3页
第3页 / 共18页
数据库图书管理系统含代码.docx_第4页
第4页 / 共18页
数据库图书管理系统含代码.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库图书管理系统含代码.docx

《数据库图书管理系统含代码.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统含代码.docx(18页珍藏版)》请在冰豆网上搜索。

数据库图书管理系统含代码.docx

数据库图书管理系统含代码数据库图书管理系统含代码一需求描述和系统边界一需求描述和系统边界数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。

对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。

随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,创建图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。

该图书管理系统支持2类用户:

管理员和读者。

读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。

二需求分析二需求分析1.业务需求业务需求图书管理系统的主要业务包括:

包括图书馆内书籍的信息,读者信息,以及借阅信息。

此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。

2.功能需求及数据需求分析功能需求及数据需求分析

(1)注册管理管理员注册。

管理员注册时要求填写基本信息,包括管理员编号、姓名、性别、联系电话、家庭住址。

系统检查所有信息填写正确后管理员注册成功。

读者注册。

读者注册时要求填写基本信息,包括读者编号、姓名、性别、联系电话、学院等。

系统检查所有信息填写正确后读者注册成功。

(2)图书管理增加图书信息。

当有新的图书入库时,管理员负责添加图书信息,包括书名、分类、图书编号、作者、出版社、出版时间、简介等。

图书信息查询。

管理系统需提供方便快捷的方式进行图书检索。

如可以输入指定的关键词进行简单查询,也可以根据书名、分类、图书编号、作者、出版社、出版时间、简介等单一或组合条件进行查询。

图书信息更新及删除。

图书信息发布后,管理员可以随时更新和删除图书信息。

(3)借阅图书读者登入图书管理系统之后,将需要的图书的信息输入,可以借阅图书。

由管理员将图书信息修改为“不在馆”。

(4)续借图书读者借书之后,一个月后应归还。

如有需要可以续借图书30天。

此操作由管理员完成。

(5)归还图书读者将已借图书归还给图书馆时,需要管理员确认信息。

并将图书信息修改为“在馆”3.业务规则分析业务规则分析基于功能需求,通过进一步了解,图书管理业务需求如下:

(1)所有用户均可以搜索图书信息。

但只有管理员可以对图书信息进行修改。

(2)管理员由管理员编号唯一标识。

(3)每位读者由读者编号唯一标识。

(4)图书编号是图书的唯一标识。

(5)借阅图书后需记录图书当前状态包括在馆、不在馆、已归还、未归还、是否续借。

(6)同一图书分类中可以有多本图书,但是每本图书只能在一种个图书分类中。

三实体集及属性三实体集及属性图3-1图书实体集E-R图图3-2管理员实体集E-R图图3-3读者实体集E-R图图3-4图书分类实体集E-R图四联系集及E-R图五逻辑数据库设计五逻辑数据库设计表3-1BookClass属性名称数据类型属性描述classNovarchar(3)分类编号ClassNamevarchar(20)分类名称表3-2Book属性名称数据类型属性描述bookNovarchar(20)图书编号classNovarchar(3)分类编号bookNamevarchar(3)图书名称authorvarchar(12)作者publishNamevarchar(50)出版社publishDatedatetime出版时间introductionvarchar(200)简介表3-3Reader属性名称数据类型属性描述readerNovarchar(12)读者编号readerNamevarchar(10)读者姓名rSexvarchar

(2)读者性别rPhoneNumbervarchar(12)联系电话institutevarchar(20)学院effectDatedatetime生效日期lostEffectDatedatetime失效日期breakRuleschar

(2)违规情况borrowAddint累计借书表3-4Admin属性名称数据类型属性描述adminNovarchar(12)管理员编号adminNamevarchar(12)管理员姓名aSexvarchar

(2)管理员性别aPhoneNumbervarchar(12)联系电话addressvarchar(40)家庭住址表3-5Borrow属性名称数据类型属性描述adminNovarchar(12)管理员编号bookNovarchar(20)图书编号readerNovarchar(12)读者编号borrowDatedatetime结束日期shouldDatedatetime应该归还日期renewalchar(4)是否续借表3-6Admin_Book属性名称数据类型属性描述adminNovarchar(12)管理员编号bookNovarchar(20)图书编号shopTomedatetime入库时间inLibrarychar(4)是否在馆表3-7Admin_Reader属性名称数据类型属性描述adminNovarchar(12)管理员编号readerNovarchar(12)读者编号bookNovarchar(20)图书编号brCheckchar(4)归还确认六数据库编程六数据库编程1.创建表创建表

(1)创建图书分类表BookClassCREATETABLEBookClass(classNovarchar(3)notnull,classNamevarchar(20)null,CONSTRAINTBookClassPKPRIMARYKEY(classNo)

(2)创建图书表BookCREATETABLEBook(bookNovarchar(20)notnull,classNovarchar(3)notnull,bookNamevarchar(50)notnull,authorvarchar(12)notnull,publishNamevarchar(50),publishDatedatetime,introductionvarchar(200),CONSTRAINTBookPKPRIMARYKEY(bookNo),CONSTRAINTBookPK1FOREIGNKEY(classNo)REFERENCESBookClass(classNo)(3)创建管理员表AdminCREATETABLEAdmin(adminNovarchar(12)notnull,adminNamevarchar(12)notnull,aSexvarchar

(2)notnull,aPhoneNumbervarchar(12)null,addressvarchar(40)null,CONSTRAINTAdminPKPRIMARYKEY(adminNo)(4)创建读者表ReaderCREATETABLEReader(readerNovarchar(12)notnull,readerNamevarchar(10)notnull,rSexvarchar

(2)notnull,rPhoneNumbervarchar(12)null,institutevarchar(20)notnull,effectDatedatetime,lostEffectDatedatetime,breakRuleschar

(2),borrowAddint,CONSTRAINTReaderPKPRIMARYKEY(readerNo)(5)创建借阅表BorrowCREATETABLEBorrow(adminNovarchar(12)notnull,bookNovarchar(20)notnull,readerNovarchar(12)notnull,borrowDatedatetimenotnull,shouldDatedatetimenotnull,renewalchar(4)notnull,CONSTRAINTBorrowPKPRIMARYKEY(adminNo,readerNo,bookNo),CONSTRAINTBorrowPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),CONSTRAINTBorrowPK2FOREIGNKEY(readerNo)REFERENCESReader(readerNo),CONSTRAINTBorrowPK3FOREIGNKEY(bookNo)REFERENCESBook(bookNo),)(6)创建管理员_图书表Admin_BookCREATETABLEAdmin_Book(adminNovarchar(12)notnull,bookNovarchar(20)notnull,shopTimedatetime,inLibrarychar(4)CONSTRAINTAdmin_BookPKPRIMARYKEY(adminNo,bookNo),CONSTRAINTAdmin_BookPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),)(7)创建管理员_读者Admin_ReaderCREATETABLEAdmin_Reader(adminNovarchar(12)notnull,readerNovarchar(12)notnull,bookNovarchar(20)notnull,brCheckchar(4)notnull,CONSTRAINTAdmin_readerPKPRIMARYKEY(adminNo,readerNo,bookNo),CONSTRAINTAdmin_readerPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),CONSTRAINTAdmin_readerPK2FOREIGNKEY(readerNo)REFERENCESReader(readerNo),CONSTRAINTAdmin_readerPK3FOREIGNKEY(bookNo)REFERENCESBook(bookNo)2.创建触发器创建触发器CreateTriggerRENEWOnBorrowforUpdateAsIfUpdate(renewal)beginUpdateBorrowSetshouldDate=shouldDate+30WhereadminNo=1001end3.管理员操作管理员操作

(1)注册INSERTINTOAdmin(adminNo,adminName,aSex,aPhoneNumber,address)VALUES(#adminNo,#adminName,#aSex,#aPhoneNumber,#address)

(2)注销DELETEFROMAdminWHERE(adminNo=#adminNo);(3)修改个人信息UPDATEAdminSET(adminNo=#adminNo,adminName=#adminName,aSex=#aSex,aPhoneNumber#aPhoneNumber,address#address);(4)增加图书INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(#bookNo,#classNo,#bookName,#author,#publishName,#publishDate,#introduction)(5)删除图书DELETEFROMBookWHERE(bookNo=#bookNo)(6)修改图书信息UPDATEBook(bookNo=#bookNo,classNo=#classNo,bookName=#bookName,author=#author,publishName=#publishName,publishDate=#publishDate,introduction=#introduction)(7)增加图书分类INSERTINTOBookClass(classNo,className)VALUES(#classNo,#className)(8)删除图书分类DELETEFROMBookClassWHERE(classNo=#classNo)(9)更新图书分类UPDATEBookClass(classNo=#classNo,className=#className)4.读者操作读者操作

(1)注册INSERTINTOReader(readerNo,readerName,rSex,rPhoneNumber,institute,effectDate,lostEffectDate,breakRules,borrowAdd)VALUES(#readerNo,#readerName,#rSex,#rPhoneNumber,#institute,#effectDate,#lostEffectDate,#breakRules,#borrowAdd)

(2)注销DELETEReaderWHERE(readerNo=#readerNo)(3)修改个人信息UPDATEReaderSET(readerNo=#readerNo,readerName=#readerName,rSex=#rSex,rPhoneNumber=#rPhoneNumber,institute=#institute,effectDate=#effectDate,lostEffectDate=#lostEffectDate,breakRules=#breakRules,borrowAdd=#borrowAdd)(4)查询SELECT*FROMBookWHEREbookNo=#bookNoORbookName=#bookName5.管理员对借阅关系的操作管理员对借阅关系的操作

(1)插入读者的信息INSERTINTOBorrow(adminNo,bookNo,readerNo,borrowDate,shouldDate,renewal)VALUES(#adminNo,#bookNo,#readerNo,#borrowDate,#shouldDate,#renewal)

(2)更新信息更新借出信息UPDATEBorrowSET(borrowDate=#borrowDate,shouldDate=shouldDate+30,renewal=0)WHERE(adminNo=#adminNoANDreaderNo=#readerNoANDbookNo=#bookNo)UPDATEAdmin_BookSET(inLibrary=0)WHERE(bookNo=#bookNo)UPDATAReaderSET(borrowAdd=borrowAdd+1)WHERE(readerNo=#readerNo)INSERTINTOAdmin_Reader(adminNo,readerNo,bookNo,brCheck)VALUES(#adminNo,#readerNo,#bookNo,#brCheck)更新续借信息UPDATEBorrowSET(renewal=#renewal)WHERE(adminNo=#adminNoANDreaderNo=#readerNoANDbookNo=#bookNo)更新还书信息UPDATEAdmin_BookSET(inLibrary=1)WHERE(bookNo=#bookNo)UPDATEAdmin_ReaderSET(brCheck=1)WHERE(adminNo=#adminNoANDreaderNo=#readerNoANDbookNo=#bookNo)七代码实现七代码实现1输入数据设计输入数据设计

(1)插入图书分类INSERTINTOBookClass(classNo,className)VALUES(C01,信息技术教材)INSERTINTOBookClass(classNo,className)VALUES(C02,小说)INSERTINTOBookClass(classNo,className)VALUES(C03,外语)INSERTINTOBookClass(classNo,className)VALUES(C04,漫画)

(2)插入管理员INSERTINTOAdmin(adminNo,adminName,aSex,aPhoneNumber,address)VALUES(1001,王子,女,012345678,北京)(3)插入读者INSERTINTOReader(readerNo,readerName,rSex,rPhoneNumber,institute,effectDate,lostEffectDate,breakRules,borrowAdd)VALUES(11111,李瑞,男,123456789,软件,2010-09-02,2014-06-30,1,10)(4)插入图书INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(S1234,C01,数据库系统原理与设计,万常选,清华大学出版社,2009-03-05,数据库教程)INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(S1235,C01,JAVA,吴京,清华大学出版社,2007-05-07,JAVA基础教程)INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(S1236,C02,红楼梦,曹雪芹,清华大学出版社,2009-09-04,中国四大名著之一)INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(S1237,C03,英语写作,刘平惠,浙江大学出版社,2006-10-21,基础英语写作教程)INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)VALUES(S1238,C04,最漫画,郭敬明,长江出版社,2011-03-17,漫画连载)(5)插入管理员_书籍表INSERTINTOAdmin_Book(adminNo,bookNo,shopTime,inLibrary)VALUES(1001,S1234,2010-7-7,0)INSERTINTOAdmin_Book(adminNo,bookNo,shopTime,inLibrary)VALUES(1001,S1235,2008-7-8,1)(6)插入借阅信息INSERTINTOBorrow(adminNo,bookNo,readerNo,borrowDate,shouldDate,renewal)VALUES(1001,S1234,11111,2012-6-1,2010-7-1,0)INSERTINTOAdmin_Reader(adminNo,readerNo,bookNo,brCheck)VALUES(1001,11111,S1234,0)2.完成借阅、续借、归还的操作设计完成借阅、续借、归还的操作设计假设读者想借书籍名为JAVA且不知道bookNo

(1)借阅操作如下:

if(selectbookNamefromBookwherebookNo=S1235)=JAVA)beginINSERTINTOBorrow(adminNo,bookNo,readerNo,borrowDate,shouldDate,renewal)VALUES(1001,S1235,11111,2012-6-8,2012-7-8,0)UPDATEAdmin_BookSETinLibrary=0WHEREbookNo=S1235UPDATEReaderSETborrowAdd=borrowAdd+1WHEREreaderNo=11111INSERTINTOAdmin_Reader(adminNo,readerNo,bookNo,brCheck)VALUES(1001,11111,S1235,0)print借阅成功!

endelseprint借阅失败!

(2)续借操作如下:

if(SELECTrenewalFROMBorrowWHEREadminNo=1001ANDreaderNo=11111ANDbookNo=S1235)=0)beginUPDATEBorrowSETrenewal=1WHEREadminNo=1001ANDreaderNo=11111ANDbookNo=S1235print续借成功!

endelseprint续借失败!

(3)归还操作如下:

If(SELECTbrCheckFROMAdmin_ReaderWHEREadminNo=1001ANDreaderNo=11111ANDbookNo=S1235)=0)BEGINUPDATEAdmin_BookSETinLibrary=1WHEREbookNo=S1235print还书成功!

endelseprint还书失败!

八模式求精八模式求精Admin_Book(adminNo,bookNo,shopTime,inLibrary)依据BCNF,Admin_Book可以分解为以下两个模式:

Admin_Book(bookNo,shopTime,inLibrary)Admin_s(adminNo,bookNo)可以验证,关系模式满足BCNF要求,且分解是无损分解。

九小结九小结在实训的2天内,在同学和老师的帮助下学会了许多在课堂上没有完全掌握的知识,比如说如何写需求分析,画E-R图要注意的事项,如何构造触发器以及如何模式求精。

在此次实训中,我遇到了很多问题,每个表格都经过了一系列的修改。

设计就是初步设计和不断修改到成熟的过程,期间我上网查阅了许多资料,学会了一些特定的表示方法,仔细琢磨了书本上的实例结合网上材料,并以此作为参考,经过几天的修改,实现了各项功能,完成了此次程序设计和实验报告。

总得来说,此次实训,我受益匪浅。

WelcomeToDownload!

欢迎您的下载,资料仅供参考!

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

当前位置:首页 > 工作范文 > 其它

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

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