《图书馆系统数据库课程设计.doc》由会员分享,可在线阅读,更多相关《图书馆系统数据库课程设计.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西 南 科 技 大 学数据库应用课程设计报告图书馆系统数据库设计 学生姓名:李富明学 号:20134660班 级:商务1301指导老师:李宇翔老师学 院:经管学院提交日期:2015年XX月XX日数据库应用课程设计评阅评阅项目完成情况得分背景功能需求5%概念设计30%逻辑设计20%物理设计10%数据库实施15%功能实现10%文档质量、设计过程表现10%成绩20 / 24目 录前言11. 需求分析11.1系统功能背景资料11.2系统功能12. 概要结构设计23. 逻辑结构设计43.1关系模式设计43.2 关系模式的分析优化54. 数据库物理设计75. 数据库实施85.1数据库构建85.1.1各数据
2、表说明85.1.2数据库创建85.2 数据库操作86.部分系统功能实现8总结8前言 如今Internet发展迅速,发布传播获取都不能靠传统的人工,所以邮局订报系统的出现提高了邮局订报系统的质量效率以及展示客户强大的订报功能,查阅功能,以及在线阅读功能等。这个邮局订报系统主要是完成客户在邮局通过填制生成订单订报的业务,并可以对所有的报纸以及客户信息的修改和查询。方便客户和邮局管理人员查阅报纸信息等。本系统主要建立了基本的需求表并优化,将它们之间建立好必要的联系方便查询和修改等,完成基本功能。1. 需求分析 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借
3、还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果。2上机实现。1系统功能背景资料随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力和物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统
4、一的管理。另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。1.2系统功能图书馆管理信息系统需要完成功能主要有:1.读者基本信息的输入,包括借书证编号、读者姓名、读者性别。2读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。3书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。4书籍类别信息的查询、修改,包括类别编号、类别名称。5书籍库存信息的输入,包括书籍编号、书籍名称、
5、书籍类别、作者姓名、出版社名称、出版日期、登记日期。6书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。7借书信息的输入,包括读者借书证编号、书籍编号、借书日期。8借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9还书信息的输入,包括借书证编号、书籍编号、还书日期。10还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。11超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。2. 概要结构设计通过对局部应用的选择,逐一设计出分
6、E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出订报管理系统E-R图。图7 系统E-R图3. 数据库源代码USEmastergoCREATEDATABASEtangzhangsentsgON(NAME=librarysystem,=c:tangzhangsenlibrary.mdf,SIZE=10,MAXSIZE=50,=5)LOGON(NAME=library,=c:tangzhangsenlibrary.ldf,SIZE=5MB,MAXSIZE=25MB,=5MB)go3.1.2书本类别表建立createtablebook_style(bookstyl
7、enovarchar(30)primarykey,bookstylevarchar(30)3.1.3创建书库表createtablesystem_books(bookidvarchar(20)primarykey,booknamevarchar(30)Notnull,bookstylenovarchar(30)Notnull,bookauthorvarchar(30),bookpubvarchar(30),bookpubdatedatetime,bookindatedatetime,isborrowedvarchar(2),foreignkey(bookstyleno)referencesbo
8、ok_style(bookstyleno),)3.1.4借书证表建立createtablesystem_readers(readeridvarchar(9)primarykey,readernamevarchar(9)notnull,readersexvarchar(2)notnull,readertypevarchar(10),regdatedatetime)3.1.5借书记录表建立createtableborrow_record(bookidvarchar(20)primarykey,readeridvarchar(9),borrowdatedatetime,foreignkey(book
9、id)referencessystem_books(bookid),foreignkey(readerid)referencessystem_readers(readerid),)3.1.6还书记录表建立createtablereturn_record(bookidvarchar(20)primarykey,readeridvarchar(9),returndatedatetime,foreignkey(bookid)referencessystem_books(bookid),foreignkey(readerid)referencessystem_readers(readerid)3.1.
10、7罚款单表建立*/createtablereader_fee(readeridvarchar(9)notnull,readernamevarchar(9)notnull,bookidvarchar(20)primarykey,booknamevarchar(30)Notnull,bookfeevarchar(30),borrowdatedatetime,foreignkey(bookid)referencessystem_books(bookid),foreignkey(readerid)referencessystem_readers(readerid)3.2数据初始化3.2.1将书籍类别加
11、入表book_style中insertintobook_style(bookstyleno,bookstyle)values(1,修真小说)insertintobook_style(bookstyleno,bookstyle)values(2,穿越小说)insertintobook_style(bookstyleno,bookstyle)values(3,恐怖小说)insertintobook_style(bookstyleno,bookstyle)values(4,都市小说)insertintobook_style(bookstyleno,bookstyle)values(5,科幻小说)in
12、sertintobook_style(bookstyleno,bookstyle)values(6,仙侠小说)insertintobook_style(bookstyleno,bookstyle)values(7,言情小说)3.2.2将已有的图书加入system_books表中insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678901,飘渺之旅,1,萧潜,鲜网,2005-09-01,2013-05-25,1);
13、insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678902,唐朝好男人,2,多一半,新星出版社,2008-05-09,2013-05-26,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678903,鬼吹灯,3,天下霸唱,
14、安徽文艺出版社,2007-09-18,2013-05-27,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678904,和空姐同居的日子,4,三十,中国海关出版社,2009-04-08,2013-05-28,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isbo
15、rrowed)values(20135678905,卡徒,5,方想,广西人民出版社,2009-10-11,2013-05-29,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678906,蜀山剑侠传,6,还珠楼主,山西人民出版社,1998-08-17,2013-05-30,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bo
16、okpub,bookpubdate,bookindate,isborrowed)values(20135678907,何以笙箫默,7,顾漫,朝华出版社,2007-04-09,2013-05-31,1);insertintosystem_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)values(20135678908,步步惊心,2,桐华,民族出版社,2006-06-20,2013-05-30,1);3.2.3将已有图书证的读者加入system_readers表中*/i
17、nsertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(Q20120401,李雷,男,学生,2013-01-1812:20)insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(Q20120402,唐张森,男,学生,2013-01-1913:15)insertintosystem_readers(readerid,readername,readersex,readertype,regd
18、ate)values(Q20120403,韩梅梅,女,学生,2013-01-2013:33)insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(Q20120404,露西,女,学生,2013-01-2112:01)insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(Q20120405,王强,男,学生,2013-01-2215:23)insertintosystem_readers
19、(readerid,readername,readersex,readertype,regdate)values(201005,毛正标,男,教师,2013-01-2318:50)insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(201006,陆海鹏,男,教师,2013-01-2418:25)insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(GL001,李燕玲,女,管理,20
20、13-01-0116:20)3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/insertintoborrow_record(bookid,readerid,borrowdate)values(20135678901,Q20120401,2013-01-1812:20)updatesystem_bookssetisborrowed=0wherebookid=20135678901insertintoborrow_record(bookid,readerid,borrowdate)values(20135678902,Q20120402,2013-01-1913:15)update
21、system_bookssetisborrowed=0wherebookid=20135678902andisborrowed=1insertintoborrow_record(bookid,readerid,borrowdate)values(20135678903,Q20120403,2013-01-2013:33)updatesystem_booksetisborrowed=0wherebookid=20135678903andisborrowed=1insertintoborrow_record(bookid,readerid,borrowdate)values(20135678904
22、,Q20120404,2013-01-2112:01)updatesystem_bookssetisborrowed=0wherebookid=20135678904andisborrowed=1insertintoborrow_record(bookid,readerid,borrowdate)values(20135678905,Q20120405,2013-01-2215:23)updatesystem_bookssetisborrowed=0wherebookid=20135678905andisborrowed=1insertintoborrow_record(bookid,read
23、erid,borrowdate)values(20135678907,201005,2013-01-2318:50)updatesystem_bookssetisborrowed=0wherebookid=20135678907andisborrowed=1insertintoborrow_record(bookid,readerid,borrowdate)values(20135678908,201006,2013-01-2418:25)updatesystem_bookssetisborrowed=0wherebookid=20135678908andisborrowed=14.结果数据处
24、理4.1单表查询4.1.1表book_style中查询演示:查询语句:select*frombook_style4.2超期处理4.2.1现在对已有借书证的读者进行查询借书是否超期查询语句:(这里归定30天):selectsystem_readers.readerid读者借书证编号,readername读者姓名,system_books.bookid书籍编号,bookname书名,borrowdate借书时间,datediff(day,convert(smalldatetime,borrowdate),getdate()-30超过天数fromborrow_record,system_reader
25、s,system_bookswheresystem_readers.readerid=borrow_record.readeridandsystem_books.bookid=borrow_record.bookidanddatediff(day,convert(smalldatetime,borrowdate),getdate()=30说明:当前的getdate()以当前的时间和日期计算4.2.2同时也可以用语句超过天数的读者进行罚款,加入到罚款单里面,一天以0.3元扣除计算:语句insertintoreader_fee(readerid,readername,bookid,bookname
26、,bookfee,borrowdate)selectsystem_readers.readerid读者借书证编号,readername读者姓名system_books.bookid书籍编号,bookname书名,0.03*(Datediff(day,convert(smalldatetime,borrowdate),getdate()-30)超过时间天数,borrowdate借书时间fromborrow_record,system_readers,system_bookswheresystem_readers.readerid=borrow_record.readeridandsystem_b
27、ooks.bookid=borrow_record.bookidandDatediff(day,convert(smalldatetime,borrowdate),getdate()=30goselectreaderid书读者借书证编号,readername读者姓名,bookid书籍编号,bookfee超期罚款4.3还书操作4.3.1现在对某一读者进行还书操作:首先还书要在还书纪录中添加一条还书纪录insertintoreturn_record(bookid,readerid,returndateselectbookid,readerid,getdate()fromborrow_recordw
28、herebookid=20135678901(1行受影响)查询语句:selectbookid书籍编号,readerid读者借书证号,returndate归还时间2其次删除相应书本的借阅纪录deletefromborrow_recordwherebookid=20135678901(1行受影响)查询语句:selectbookid书籍编号,readerid读者借书证号,borrowdate归还时间fromborrow_record说明:这本书重新回到未被借出标记为1其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。4.4借书操作4.4.1查询未被借出的
29、书本:查询语句:selectbookid书籍编号,bookname书籍名称fromsystem_bookswhereisborrowed=14.4.2查询已被借出的书本:查询语句:selectbookid书籍编号,bookname书籍名称fromsystem_bookswhereisborrowed=04.4.3申请借书证:Insertintosystem_readers(readerid,readername,readersex,readertype,regdate)values(Q20120406,小萌萌,女,学生,getdate()(1行受影响)查询语句:select*fromsyste
30、m_readerswherereaderid=Q20120406说明:查询相应的纪录增加了小萌萌这样一个读者的借书证纪录:4.4.4注销借书证:注销之前执行所有的还书过程,小萌萌借书证纪录就被删除了,同时要删除和小萌萌归还纪录的内容deletefromsystem_readerswherereaderid=Q20120406Godeletefromreturn_recordwherereaderid=Q20120406(1行受影响)(0行受影响)确认小萌萌是否被删除查询语句:select*fromsystem_readerswherereaderid=Q201204064.4.5查询所有书所对
31、应的类别:4.4.5查询所有书所对应的类别查询语句:selectdistinctbookname书籍名称,bookstyle书籍类别frombook_style,system_bookswherebook_style.bookstyleno=system_books.bookstyleno4.5书籍状态4.5.1查询所有穿越小说类的书:查询语句selectdistinctbookname书籍名称,bookstyle书籍类别frombook_style,system_bookswherebook_style.bookstyleno=system_books.bookstylenoandsyste
32、m_books.bookstyleno=24.6读者状态4.6.1查询什么人借了什么书:查询语句selectreadername读者姓名,bookname书籍名称fromborrow_record,system_books,system_readerswheresystem_readers.readerid=borrow_record.readeridandsystem_books.bookid=borrow_record.bookid4.6.2指定查询李富明借了什么书:查询语句selectreadername读者姓名,bookname书籍名称fromborrow_record,system_
33、books,system_readerswheresystem_readers.readerid=borrow_record.readeridandsystem_books.bookid=borrow_record.bookidandreadername=李富明4. 总结通过此次数据库的课程设计,真正达到了学和用的结合,增强了对数据库方面应用的理解,对自己今后参和开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建和外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,借鉴了一些别人的语言结构学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但我也只能做到这一步了。
限制150内