数据库课程设计-图书管理系统(共12页).doc
精选优质文档-倾情为你奉上哈尔滨理工大学软件学院课程设计报告课 程:数据库课程设计题 目:图书管理系统班 级: 专 业:软件工程姓名学号:指导教师: 日期: 专心-专注-专业1.1背景 随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。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关系模式(一) 书籍类别(种类编号,种类名称)(二) 读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)(三) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)(四) 借阅(借书证编号,书籍编号,读者借书时间)(五) 还书(借书证编号,书籍编号,读者还书时间)(六) 罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。.方案图表设计2.1 E-R图根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。2.1.1类别实体E-R图:书籍类别实体读者姓名类别名称图2-1类别实体E-R图2.1.2读者信息实体E-R图:读者信息实体读者借书证编号读者姓名读者性别读者种类e登记时间图2-2 读者信息实体E-R图2.1.3信息实体E-R图:书籍信息实体书籍编号书籍名称书籍类别编号书籍作者出版时间收录时间是否被借出版社图2-3信息实体E-R图2.1.4.记录信息实体E-R图:读者借书证编号书籍类别编号借阅时间隔借阅记录信息实体实体图2-4 记录信息实体E-R图2.1.5记录信息实体E-R图:归还记录信息实体实体读者借书证编号书籍类别编号归还时间隔图2-5记录信息实体E-R图2.1.6罚款信息实体E-R图:罚款信息实体实体书籍类别编号罚款金额读者姓名读者借书证编号书籍名称借阅时间隔图2-6罚款信息实体E-R图2.1.6总的信息实体E-R图:信息登记读者实体书籍实体书类别实体归还借阅罚款罚款信息实体还书信息实体借阅信息实体实体图2-7总的信息实体E-R图2.3数据字典表-1 book_sytle 书籍类别信息表表中列名数据类型可否为空说明bookstylenovarcharnot null(主键)种类编号bookstyleVarcharnot null种类名称表-2system_readers读者信息表格表中列名数据类型可否为空说明readeridvarcharnot null(主键)读者借书证号readernamevarcharnot null读者姓名readersexvarcharnot null读者性别readertypevarcharnull读者种类regdatedatetimenull登记日期表2-3system_book书籍信息表表中列名数据类型可否为空说明bookidVarcharNot null(主键)书籍编号booknameVarcharNot null书籍名称bookstyleVarcharNot null书籍类别bookauthorVarcharNot null书籍作者bookpubVarcharNull出版社名称bookpubdateDatetimeNull出版日期bookindateDatetimeNull登记日期isborrowedVarcharNot Null是否被借出表2-4borrow_record 借阅记录信息表表中列名数据类型可否为空说明readeridVarcharNot null(外主键)读者借阅证编号bookidVarcharNot null(外主键)书籍编号borrowdateVarcharNot null读者借书时间表2-5return_record 借阅记录信息表表中列名数据类型可否为空说明readernameVarcharNot null(外主键)读者借阅证编号readeridVarcharNot null(外主键)书籍编号returndatedatetimeNot null读者还书时间表2-6reader_fee 罚款记录信息表readeridvarcharNot null读者借书证编号readernamevarcharNot null读者姓名bookidvarcharNot null(外主键)书籍编号booknamevarcharNot null书籍名称bookfeevarcharNot Null罚款金额borrowdatedatetimeNot Null借阅时间3.数据库源代码3.1数据库建立3.1.1创建数据库3.1.2书本类别表建立create table book_style( bookstyleno varchar(30) primary key, bookstyle varchar(30)3.1.3创建书库表create table system_books( bookid varchar(20) primary key, bookname varchar(30) Not null, bookstyleno varchar(30) Not null, bookauthor varchar(30), bookpub varchar(30) , bookpubdate datetime, bookindate datetime , isborrowed varchar (2) ,foreign key (bookstyleno) references book_style (bookstyleno),)3.1.4借书证表建立create table system_readers ( readerid varchar(9)primary key, readername varchar(9)not null , readersex varchar(2) not null, readertype varchar(10), regdate datetime)3.1.5借书记录表建立create table borrow_record( bookid varchar(20) primary key, readerid varchar(9), borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid),)3.1.6还书记录表建立create table return_record( bookid varchar(20) primary key, readerid varchar(9), returndate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)3.1.7罚款单表建立*/create table reader_fee( readerid varchar(9)not null, readername varchar(9)not null , bookid varchar(20) primary key, bookname varchar(30) Not null, bookfee varchar(30) , borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)3.2数据初始化3.2.1将书籍类别加入表book_style中insert into book_style(bookstyleno,bookstyle)values('1','人文艺术类') insert into book_style(bookstyleno,bookstyle)values('2','自然科学类')insert into book_style(bookstyleno,bookstyle)values('3','社会科学类')insert into book_style(bookstyleno,bookstyle)values('4','图片艺术类')insert into book_style(bookstyleno,bookstyle)values('5','政治经济类')insert into book_style(bookstyleno,bookstyle)values('6','工程技术类')insert into book_style(bookstyleno,bookstyle)values('7','语言技能类')3.2.2将已有的图书加入system_books表中insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values('','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');insertinto system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values('','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values('','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('58','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');insert into tem_books(bookid,bookname,bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');3.2.3将已有图书证的读者加入system_readers表中*/insert into system_readers(readerid,readername,readersex,readertype,regdate)values('X','陈远鹏','男','学生','2005-9-23 14:23:56')insert into system_readers(readerid,readername,readersex,readertype,regdate)values('X','陈特','男','学生','2005-09-30 13:24:54.623')insert into system_readers(readerid,readername,readersex,readertype,regdate)values('X','赵铭静','女','学生','2005-09-27 11:24:54.123')insert into system_readers(readerid,readername,readersex,readertype,regdate)values('X','潘虹','女','学生','2005-09-30 13:24:54.473')insert into system_readers(readerid,readername,readersex,readertype,regdate)values('','蒋伟','男','教师','2004-04-30 09:24:54.478')insert into system_readers(readerid,readername,readersex,readertype,regdate)values('','李叶风','女','教师','2004-04-30 09:24:54.478')3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/insert into borrow_record(bookid,readerid,borrowdate)values('','X','2007-09-27 11:24:54.123')update system_booksset isborrowed=0where bookid=''insert into borrow_record(bookid,readerid,borrowdate)values('','X','2007-12-27 08:26:51.452')update system_booksset isborrowed=0where bookid='' and isborrowed='1'insert into borrow_record(bookid,readerid,borrowdate)values('','X','2007-12-27 08:26:51.452')update system_booksset isborrowed=0where bookid='' and isborrowed='1'insert into borrow_record(bookid,readerid,borrowdate)values('','X','2007-10-21 12:11:51.452')update system_booksset isborrowed=0where bookid='' and isborrowed='1'insert into borrow_record(bookid,readerid,borrowdate)values('','','2007-12-28 14:11:51.312')update system_booksset isborrowed=0where bookid='' and isborrowed='1'insert into borrow_record(bookid,readerid,borrowdate)values('','','2007-08-28 15:11:31.512')update system_booksset isborrowed=0where bookid='' and isborrowed='1'5课程设计心得通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。