数据库图书管理系统课程设计Word文档下载推荐.docx
《数据库图书管理系统课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统课程设计Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
本系统将实现用计算机管理图书借阅的功能。
具体完成图书信息管理、读者信息管理、及图书借阅管理等功能。
B.系统的功能需求:
本系统用户分为读者用户和管理员用户两类,包括对图书信息、读者信息、借阅信息的录入、修改、查询、删除等。
读者用户只具有查询书籍和自己信息的权限。
C.系统功能描述:
系统开发的主要目的是实现图书馆信息管理的系统化、规范化和自动化。
图书馆信息管理系统主要提供对图书信息的管理及读者信息的管理。
需要完成的主要功能有:
1、有关读者信息的输入、修改和查询;
2、图书信息的输入、修改和查询;
3、借阅信息的维护(包括借,还信息录入,修改和删除);
2.实体图及E—R图
1.读者信息实体表
可借书数
已借书数
逾期未还书数
读者
读者姓名
读者性别
读者种类e
登记时间
读者借书证编号
②.书籍实体图
书籍
收录时间
书籍作者
是否被借
书籍编号
书籍名称
出版时间
出版社
③.借阅记录实体图
书籍类别编号
借阅时间隔
借阅记录信息
④.归还记录实体图
归还信息记录
读者借书证号
归还时间
⑤.罚款信息实体图
罚款信息实体实体
罚款金额
⑥.信息实体E-R图
还书信息
归还
书籍
罚款
借阅
罚款信息
借阅信息
m
n
3.二维关系表
表3-1 system_readers读者信息表格
表中列名
数据类型
可否为空
说明
readerid
varchar
notnull(主键)
readername
notnull
readersex
readertype
读者种类
regdate
datetime
null
登记日期
booktotal
int
borrowednum
overduenoreturnnum
bookid
Varchar
Notnull(主键)
bookname
Notnull
表3-2 system_book书籍信息表
bookstyle
书籍类别
bookauthor
bookpub
Null
出版社名称
bookpubdate
Datetime
出版日期
bookindate
isborrowed
Bit
NotNull
是否被借出
表3-3 borrow_record借阅记录信息表
Notnull(外主键)
读者借阅证编号
borrowdate
读者借书时间
表3-4 return_record借阅记录信息表
returndate
读者还书时间
表3-5 reader_fee罚款记录信息表
bookfee
Smallmoney
借阅时间
4.关系模式
(1)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期,可借书数,已借书数,逾期未还书数)
(2)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)
(3)借阅(借书证编号,书籍编号,读者借书时间)
(4)还书(借书证编号,书籍编号,读者还书时间)
(5)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)
5.系统功能模块图
图书借阅系统
查询子系统
管理子系统
借还书子系统
查询图书
直接查询
图书管理
读者管理
罚款管理
借书
还书
六.实验过程
---创建代码
建立数据库
createdatabaselibrarysystem
on
(name=librarysystem,
filename='
d:
\librarysystem.mdf'
size=10,
maxsize=50,
filegrowth=5)
logon-----指明事务日志文件
(name='
library'
\librarysystem.ldf'
-------指定存储的路径名和文件名
size=5mb,
maxsize=25mb,
filegrowth=5mb)
建立图书信息表
createtablesystem_books
(
bookidvarchar(20)primarykey,---书籍编号为主键
booknamevarchar(30)Notnull,---图书名称
bookstylevarchar(30)Notnull,---图书类型
bookauthorvarchar(30),---图书作者
bookpubvarchar(30),---出版社
bookpubdatedatetime,---出版时间
bookindatedatetime,---收录时间
isborrowedbit,---是否被借
)
建立读者信息表
createtablesystem_readers
readeridvarchar(9)primarykey,---借书证号为主键
readernamevarchar(10)notnull,----读者姓名
readersexchar
(2)notnull,----性别
readertypevarchar(20)notnull,----读者类型
regdatedatetime,----登记时间
booktotalint,----可借书数
borrowednumint,----已借书数
overduenoreturnnumint----过期末还书数
建立借书记录表
createtableborrow_record
(bookidvarchar(20)primarykey,---书籍编号
readeridvarchar(9),----借书证号
borrowdatedatetime,-----借书时间
foreignkey(bookid)referencessystem_books(bookid),-----定义书籍编号为借书表的外键
foreignkey(readerid)referencessystem_readers(readerid),----定义借书证号为借书表的外键
建立还书记录表
createtablereturn_record
(bookidvarchar(20)primarykey,----书籍编号为主键
returndatedatetime,-----归还时间
foreignkey(bookid)referencessystem_books(bookid),-----定义书籍编号外键
foreignkey(readerid)referencessystem_readers(readerid)----定义借书证号为外键
)
建立罚款单表
createtablereader_fee
(readeridvarchar(9)notnull,--借书证号
readernamevarchar(9)notnull,--读者姓名
bookidvarchar(20)primarykey,---借书证号
booknamevarchar(30)Notnull,---书籍名称
bookfeesmallmoney,--罚款金额
borrowdatedatetime,--借阅时间
foreignkey(bookid)referencessystem_books(bookid),---定义书籍编号外键
foreignkey(readerid)referencessystem_readers(readerid)---定义借书证号为外键
索引的创建
createindexborrow_record_index_readeridonborrow_record(readerid)—为借阅表在借书证号上建索引
createindexreader_fee_index_readeridonreader_fee(readerid)—为罚款表在借书证号上建索引
createindexreturn_record_index_readeridonreturn_record(readerid)--为归还表在借书证号上建索引
createindexsystem_books_index_booknameonsystem_books(bookname)—为图书信息表在书籍编号上建索引
createindexsystem_books_index_bookauthoronsystem_books(bookauthor)---为图书信息表在作者上建索引
创建视图
createviewb1_system_books
asselectbookid,bookstyle,bookpub,bookname
fromsystem_books
createviewr1_system_readers
asselectreaderid,readername,readertype
fromsystem_readers
createviewb2_borrow_record
asselectbookid,readerid
fromborrow_record
建立借书记录存贮过程
createproceduresp_borrowbook@bookidchar(20),
@readeridchar(9)
as
insertintoborrow_record(bookid,readerid,borrowdate)
values(@bookid,@readerid,getdate())
go
-------------建立还书记录存贮过程
createproceduresp_returnbook@bookidchar(20),@readeridchar(9)
deletefromretun_record
wherebookid=@bookidandreaderid=@readerid
-------------建立罚款单存贮过程
createproceduresp_readerfee@readeridchar(9),@borrowdatedatetime
updatereader_fee
setbookfee=0.1*(day(getdate())-day(@borrowdate))
wherereader=@readerid
andborrowdate=@borrowdate
-------------建立借书记录表增加触发器
createtrigger[tr_addlend]onborrow_record
forinsert
updatesystem_books
setisborrowed=1
wherebookidin(selectbookid
frominserted)
updatereader
setborrowednum=borrowednum+1
wherereaderidin(selectreaderid
-------------建立还书记录删除触发器
createtrigger[tr_dellend]onreturn_record
fordelete
setisborrowed=0
fromdeleted)
updatesystem_readers
setborrowednum=borrowednum-1
wherereaderidin(selectreaderidfromdeleted)
-------------建立删除图书触发器
createtrigger[tr_dellendbook]onsystem_books
deletereader_fee
fromdeleted)
deletereturn_record
wherebookidin(selectbookidfromdeleted)
---信息的录入
insertinto
system_books(bookid,bookname,bookstyle,bookauthor,bookpub,bookpubdate,bookindate,isborrowed)
values('
'
'
计算机组成原理'
王爱英'
'
工科类'
清华大学出版社'
2001-01-03'
2003-11-15'
1'
system_readers(readerid,readername,readersex,readertype,regdate,booktotal,borrowednum,overduenoreturnnum)
5'
张三'
男'
学生'
2013-1-6'
8'
2'
0'
insertintoborrow_record(bookid,readerid,borrowdate)
values('
2012-12-18'
insertintoreturn_record(bookid,readerid,returndate)
2012-1-18'
----信息的修改
setbookname='
王英'
wherebookid='
updatesystem_readerssetreadersex='
女'
wherereaderid='
updateborrow_record
setbookid=’’
wherebookid=’’
updatereturn_record
-----信息的删除
deletefromsystem_books
wherebookid=’2’
deletefromsystem_readers
wherereaderid=’5’
deletefromborrow_record
七.实验总结
本次实验通过对图书借阅功能的分析,我分别创建了图书信息表,读者信息表,借阅信息表,还有一张罚款表。
对借书记录用存储过程建立,建立借书记录表增加触发器和还书记录删除触发器实现表的更新。
程序也有不足的地方,那就是不能查询图书的数量以及图书可以借阅的时间限制。
该数据库也没有备份与还原功能,这也是一个很大的缺点。
我还用存储过程实现了罚款功能。
八.心得体会
这次实训最大的体会就是明白到自己之前有多么的懒惰,学过的东西没有去复习和联系。
导致这次实训到临时来学习。
零时来翻课件学习语句,还好在老师的帮助下,攻克了很多难题。
这次最大的收获就是学会了分析一个系统的需要,明白了不管学什么都要用心去练习。
这次实训虽然遇到了很多困难,但是我也发现,只要用心的去学,去钻,就一定能弄懂。