资源描述
(完整word版)数据库之图书管理系统实验报告
《数据库技术》
课程设计说明书
Ø 设计题目:图书馆数据库系统
Ø 设 计 者:xxxxx
xxxxx
xxxxx
Ø 指导教师:xx xxx
Ø 完成时间:2011年12月31日
目录
引言 3
编写目的 3
背景 3
任务理解 4
课设目标 4
系统基本功能模块 4
书籍管理子系统 5
读者管理子系统 5
借阅管理子系统 5
需求分析 5
系统分析 6
系统设计 6
概念结构设计 7
概念结构 7
整体E-R图 7
局部E-R图 8
数据字典 8
逻辑结构设计 13
数据库的实施 15
总体视图 15
关系图截图 16
数据载入 16
结构查询 19
表的查找 21
更新表中记录 22
插入表中记录 23
删除 24
创建视图 25
创建触发器 26
存储过程 27
索引 28
实验小结 29
引言
随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。学生对知识的可望有增无减,图书馆用手工管理图书的方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。为了满足其管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,此图书管理系统软件力求提高其管理效率。
编写目的
本文档的编写一方面是为了完善图书管理系统软件的开发途径和应用方法,以求在最短的时间高效的开发图书管理系统。另一方面从另一个角度培养我们对SQL的运用,将学到的知识运用于实际生活中。
1)通过对应用问题的功能分析,掌握功能分解与模块设计的基本模式,建立总体设计的概念。
2)进一步提高建库、索引、查询、关联等数据库基本操作技术。
3)通过对功能模块的具体实现,得到面向对象的程序设计方法的初步训练。
4)通过分析、设计、实现的全过程训练,提高我们分析问题、解决问题的能力,培养我们的创新意识。
背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,使现在计算机信息系统和计算机运用系统的基础和核心,对与任何一个企业来说,数据是企业的重要资产,如何有效利用这些数据,对于企业发展起着及其重要的作用。
随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆图书种类、数量的不断扩大,图书检索速度慢、统计工作量大,难以满足图书馆现代化管理的要求。因此,建立一套图书馆管理软件,科学的对图书馆数据进行管理,方便图书的检索和读者借阅工作。
任务理解
数据库课程设计是在我们系统的学习可数据库原理后,按照关系型数据库的基本原理,综合运用所学知识,以小组为单位,设计开发一个小型的数据库管理系统。
l 具体操作如下:
通过详细调查,描述业务流程,掌握功能分析,数据分析的基本要求,建立逻辑模型的概念;
据抽象的业务功能和系统设计的原则,绘制E-R图,完成数据库概念的结构设计;
通过将E-R图转换为关系数据模型,完成逻辑结构设计;
通过物理设计,在计算机上的数据库软件上建立相关的关系表、视图等,将其彻底转换成物理模型,并实现运行与维护。
课设目标
通过对对应问题所处环境的调查,对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到点知识应用于解决实际问题,培养学生的动手能力以及创新意识;另一方面,使学生深入理解和灵活掌握教学内容。
本程序实现学生与图书馆管理员的界面分离模式,同时实现管理员对学生有全面的资料管理功能。有多个图书、学生、系统的动态管理功能,如:图书的查询、添加、删除、修改与及学生的详细资料的查询、添加、删除、修改等等多样、动态的管理。同时可以放权给管理员查询、添加、删除、修改的能力。
系统基本功能模块
设计并实现了如下三个子系统,分别是书籍管理系统,读者管理子系统,借阅管理子系统。
书籍管理子系统
它主要提供用户登录功能,并按各用户的权限使用本系统。本系统分三类用户:权限公查询,管理员的权限是借还书和管理书,超级管理员的权限是管理读者,管理图书分类,管理管理员登录帐户,管理逾期图书。
读者管理子系统
主要用于查询图书,其中直接查询包括按图书编号直接查询,按书名查询,按作者查询,按出版社查询(可选模糊查询)。多条件查询可以
按读者的要求选取所需要的图书直接查询和模糊查询,多条件查询)。
借阅管理子系统
分别是由图书管理员管理图书(包括图书信息的修改,新图书的增加,旧图书的删除),超级管理员管理图书分类,管理信息、,管理管理员登录帐户,管理逾期
主要由图书管理员进行借书还书记录的登记和清除,它分别由二个界面:借书操作界面和还书界面构成
需求分析
图书馆管理信息系统要完成功能主要有:
1) 读者基本信息查询、修改,包括借书证号,读者姓名、读者性别等
2) 书籍类别的制定,类别信息输入,包括:书号,图书大类名,图书小类名,
3) 借书信息的输入,包括读者学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号
4) 借书信息的查询包括书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格
5) 还书信息的输入,查询包括学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号
6) 超期罚款输入包括罚款单号,书号,学号,应罚金额,是否交款,罚款日期,管理员编号
7) 管理员管理管理员编号,姓名,地址,电话,备注
8) 损害丢失信息输入包括书名,书号,读者姓名,学号,是否已赔,应赔偿金额
9) 书名书籍类别的查询包括书号,图书大类名,图书小类名,书名
10) 读者基本信息的输入,包括姓名,学号,性别,专业,班号,违章状况,已借数目,可借天数,借书时间
系统分析
系统设计
图书管理系统
书籍管理子系统
读者管理子系统
借阅管理子系统
书籍分类管理
书籍信息管理
出版社管理
读者信息管理
续借管理
借还书管理
书籍管理
书籍类别表
书籍借阅管理
书籍信息表
出版社信息
书籍信息
读者信息表
借阅条件
完成借阅
过期罚款管理
图书丢失管理
书籍信息
借阅信息表
过期信息
罚款信息
罚款数
丢失信息
查询管理
读者信息
概念结构设计
概念结构
一个图书馆拥有多个图书室
一个图书室可以存放多本书籍,一本书籍也可以放在不同的图书室
不同管理员可以管理多本书籍,不同的书籍也可以被不同的管理员管理
不同管理员可以管理不同的书籍信息表,书籍信息表也可以被不同的管理员管理
不同管理员可以管理不同的读者信息表,不同的读者信息表也可以被不同的管理员管理
不同管理员可以办理多个借书证,一个借书证可以由不同的管理员办理
不同借书证可以查询不同的书籍,一本书籍可以被不同的借书证查询
一个读者可以借阅多本书籍,一本书籍也可以被不同的读者借阅
一个读者持有一个借书证,一个借书证只能被一个读者持有
一个读者只能查询自己的付款信息表,损害丢失表,还款信息表
图书馆
存放
书籍
持有
借书证
读者者
查询
管理员
管理理
办理
借阅
图书室
1
n
m
n
m
1
n
n
m
m
m
1
1
m
n
n
m
拥有
出版社社
提供
整体E-R图
局部E-R图
图书室
房间号
书架号
图数总量
读者院系
读者性别
借书上限
借书证
读者编号
读者专业
读者姓名
图书馆
馆名
成立时间
地点
电话
读者
学号
性别
姓名
班号
专业
出版社
e-mail
电话
地址
出版社名名
书籍
图书编号
数量
摘要
是可借否
名称
关键字
出版社名
分类
价格
出版日期
管理员编号
书所在房间号
书所在书架号
号
电话号码
管理员
编号
姓名
职位
数据字典
数据库名:TSGLXT.mdb
1) 数据库内含下列表:
Library(图书馆)
Book(书籍)
Manager(管理员)
Reader(读者)
Library_card(借书证)
Library_room(图书室)
Publish(出版社)
Reserve(存放)
Admin(管理)
Handle(办理)
Before_search(借阅前查询)
Last_search(借阅后查询)
Offer(提供)
Own(拥有)
Type(类别)
In_and_Out(借还书信息表)
Bookmanage(书籍管理表)
Harm_and_Miss(损害丢失信息表)
Fine(罚款信息表)
2) 数据库表详细设计
1. Library表
字段名
字段含义
数据类型
约束
lname
馆名
Varchar(30)
Not null
adds
地址
Varchar(30)
b_time
成立时间
decimal
Not null
telephone_no
电话
Varchar(50)
r_no
房间号
Char(7)
Not null
2.Book表
字段名
字段含义
数据类型
约束
b_no
图书编号
Varchar(9)
Not null key
amount
数量
Char(7)
Not null
bname
名称
Varchar(30)
Not null
type
分类
Varchar(50)
publish
出版社名
Varchar(30)
p_time
出版日期
Decimal
Not null
price
价格
Char(10)
m_no
管理员编号
Char(7)
borrow
是否可借
Not null
r_no
书所在房间号
Char(7)
Not null
bookshelf_no
书所在书架号
Char(7)
Not null
key
关键字
Varchar(20)
zhaiyao
摘要
Varchar(50)
isbn
Isbn
Varchar(15)
Primary key
3.Manager表
字段名
字段含义
数据类型
约束
m_no
管理员编号
Char(7)
key
mname
姓名
Varchar(24)
Not nu
position
地址
Varchar(24)
teltphone_no
电话
Varchar(50)
beizhu
备注
Char(50)
4.Reader表
字段名
字段含义
数据类型
约束
sname
姓借
Varchar(24)
student_id
学号
Varchar(9)
key
sex
性别
Varchar(2)
specialty
专业
Varchar(20)
Not null
class_no
班号
Char(7)
Not null
weizhangzk
违章状况
Varchar(9)
Not null
borrow_amount
已借天数
Varchar(9)
Not null
kejietianshu
可借天数
Varchar(9)
Not null
borrowdate
书时间名
Decimal
Not null
5.Library_card表
字段名
字段含义
数据类型
约束
sname
姓名
Varchar(24)
sex
性别
Varchar(2)
dept
院系
Varchar(30)
Not null
specialty
专业
Varchar(20)
limit
借书上限
Varchar(9)
Not null
student_id
学号
Varchar(9)
Key
6. Library_room
字段名
字段含义
数据类型
约束
r_no
房间号
Char(7)
Not null
bookshelf_no
书架号
Char(7)
Not null
bookanmout
图书总量
Varchar(9)
Not null
7.Publish表
字段名
字段含义
数据类型
约束
pname
出版社名
Varchar(30)
key
adds
地址
Varchar(50)
teltphone_no
电话
Varchar(50)
e-mail
Char(20)
bname
书名
Varchar(30)
Not null
isbn
条形码
Varchar(15)
Primary key
8.Reserve表
字段名
字段含义
数据类型
约束
r_no
房间号
Char(7)
Not null
bookshelf_no
书架号
Char(7)
Not null
b_no
书号
Varchar(9)
Not null
9.Admin表
字段名
字段含义
数据类型
约束
b_no
书号
Varchar(9)
Not null
r_no
房间号
Char(7)
Not null
bookshelf_no
书架号
Char(7)
Not null
type
类别
Varchar(50)
10.Handle表
字段名
字段含义
数据类型
约束
sname
姓名
Varchar(24)
Not null
Student_id
学号
Varchar(9)
Not null
date
办理日期
Datetime
mima
密码
Char
sex
性别
varchar
男,女
11.Before_search表
字段名
字段含义
数据类型
约束
b_no
书号
Varchar(9)
Not null
bname
书名
Varchar(30)
Not null
p_time
出版日期
Decimal
Not null
pname,
出版社名
Varchar(30)
r_no
房间号
Char(7)
Not null
status
借阅情况
Varchar(10)
12.Last_search表
字段名
字段含义
数据类型
约束
b_no,
书号
Varchar(9)
Not null
student_id,
学号
Varchar(9)
Not null
borrowtime,
借书时间
Decimal
Not null
backtime
还书时间
Decimal
Not null
13.Offer表
字段名
字段含义
数据类型
约束
bname
书名
VarChar(30)
Not null
bquantity
书籍数量
Decimal
isbn
条形码
Varchar(15)
Primary key
14.Own 表
字段名
字段含义
数据类型
约束
r_no
房间号
Char(7)
Primary key
library room_amount
图书室数量
Char(70)
15.Type表
字段名
字段含义
数据类型
约束
b_no
书号
varChar
Primary key
tsdlm
图书大类名
VarChar(24)
Not null
tuxlm
图书小类名
VarChar(24)
Not null
bname
书名
VarChar(30)
Not null
16. In_and_Out表
字段名
字段含义
数据类型
约束
student_id
学号
VarChar(9)
Primary key
b_no
书号
VarChar(9)
key
borrowtime
借书时间
Detetime
Not null
backtime
还书时间
Detetime
Not null
xjcishu
续借次数
Detetime
Not null
m_no
管理员编号
Char(7)
Not null
back
是否归还
VarChar(2)
Not null
17.Bookmanage表
字段名
字段含义
数据类型
约束
b_no
书号
Varchar(9)
Primary Key
bname)
书名
VarChar(30)
Not null
writer
作者
VarChar(24)
amount
数量
Varchar(7)
tsdlm
图书大类名
VarChar(24)
Not null
tsxlm
图书小类名
VarChar(24)
Not null
publish
出版社
VarChar(50)
price
价格
Decimal
18. Harm_and_Miss表
字段名
字段含义
数据类型
约束
bname
书名
Varchar(30)
Not null
b_no
书号
Varchar(9)
Not P key
sname
姓名
Varchar(24)
Not null
student_id
学号
Varchar(9)
Not null
pay
是否已赔
Char(2)
Not null 是否
money
赔偿金额
decimal
Not null
19. Fine表
字段名
字段含义
数据类型
约束
fine_id
罚款单号
Varchar(7)
Not null key
b_no
书号
Varchar(7)
Not key
student_id
学号
Varchar(9)
Not key
finemoney
罚款金额
Decimal
Not null
jiaokuan
是否交款
Char(2)
Not null 是否
finetime
罚款时间
decimal
Not null
m_no
管理员编号
Char(7)
Not null
逻辑结构设计
E-R图向关系模型转化(加下划线的为候选码)
图书馆(馆名,地址,成立时间,电话,房间号)
书籍(图书编号,数量,名称,分类,出版社名,出版日期,价格,管理员编号,是否可借,摘要,关键字,书所在房间号,书所在书架号,isbn)
管理员(管理员编号,姓名,地址,电话,备注)
读者(学号,姓名,性别,专业,班号,违章状况,已借数目,可借天数,借书时间)
借书证(学号,姓名,性别,院系,专业,借书上限)
图书室(房间号,书架号,图书总量)
出版社(出版社名,地址,电话,邮编,e-mail)
分类(书号,图书大类名,图书小类名,书名)
借还书信息(学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号)
书籍管理信息(书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格 )
损害丢失信息(学号,书号,读者姓名,是否已赔,应赔偿金额)
罚款信息(罚款单号,书号,学号,应罚金额,是否交款,罚款日期,管理员编号)
联系:
存放(房间号,书架号,图书编号 存放量)
管理(书号,房间号,书架号,类别,)
办理(学号,姓名,密码,办理日期,性别)
借阅前查询(图书编号,名称,出版日期,出版社名,房间号,借阅情况)
借书后查询(图书编号,借书证号,借出时间,需归还时间)
提供(isbn,书籍数量,书名)
拥有(图书室编号,图书室数量)
数据库的实施
总体视图
关系图截图
数据载入
1.Library表的录入
2.Book表的录入
3.Manager表的录入
4.Reader表的录入
5.Librar_card表的录入
6.Library_room表的录入
7.Publish表的录入
8.Reserve表的录入
9.Admin表的录入
10.Handle表的录入
11.Before_search表的录入
12.Last_search表的录入
13.Offer表的录入
14.own表的录入
15.type表的录入
16. In_and_Out表的录入
17.Bookmanage表的录入
18. Harm_and_Miss表的录入
19. Fine表
结构查询
1.查询Manager表的结构
2.查询Book表的结构
3.查询Reader表的结构
表的查找
1.查找Book中的名称
2.查找Bookmanage中的作者
3.查询Reader表中记录数目
4.查询Manager表中记录数目
5.查询Book表中记录数目
更新表中记录
1.更新表Reader中的读者名
2.更新表Book中的书名
插入表中记录
1.向表Manager中插入记录(’100000’,’李旭’,null,null,null)
2.向表Typt中插入记录(‘110145198’,’近代史’,’信息’,’邮电通信’)
3.向表Own中插入记录(8,7)
4.向视图publish1中插入记录(’浙江出版社’,null,null,null,’经济学’,’000000000000009’)
删除
1.删除表Library中名称为“图书馆”的记录
2.删除表Publish中“出版社名”为“河北出版社”的记录
3.删除试图Reserve1
创建视图
1. 创建表Book的视图
2.创建表Fine的视图
3.创建表Manager的视图
创建触发器
1. 当读者的借阅书籍总数大于6本时,报警器报警
2.当读者借书天数超过28天数,报警器报警,天数变0
存储过程
1. 表Library的存储过程
2. 表Manager的存储过程
1)
2)
3)
索引
1.表Book建索引
实验小结
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
随着科学技术的发展计算机科学逐渐深入人类社会的各个领域并发挥着越来越重要的作用。运用人工表来管理图书馆不仅浪费大量的人力而且存在很多缺点和不便。通过实现图书管理系统可以节省很多人力,并且方便图书管理员对图书的管理和学生对图书的查询。我们模拟图书馆建立图书管理系统主要分为七个功能模块:书籍分类,书籍信息管理,出版社管理,查询管理,读者信息管理,续接管理,借还书管理。在这几天里,我们从搜集资料,到需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护,每一步我们都尽力做到最好,充分发挥能动性,学会互相配合,做合理的分工,尊重彼此的意见。除了学会了系统的设计,更让我们明白团结协作的重要性,合作起来会事半功倍。
xx:在数据库设计中所遇到的问题有:模型的优化,范式的分解,整体E-R图的构造,用SQL语言为各表建立索引,数据库中的关系图等等。由于对关系的三类完整性理解不够,也导致了在向用户表中插入数据的一系列小问题,不过我们都通过查阅资料,请教老师,终于克服了。看似简单,其实做起来却很困难很复杂,需要耐心,更重要的是对数据库系统的理解和熟练运用。在这次课程设计中,每个人的动手能力和操作能力都得到了展现和发挥,学会了系统开发的知识和SQL语言的掌握,尽管我们没有做到百分百的完美,但是我们努力过,尽心过,我们为自己的劳动成果感到骄傲。
xx:通过本次数据库的课题设计,我对数据库有了更全面更深刻的认识和学习,对其基本的概念知识更熟识,牢固的掌握它们是我们后续学习的基础,在操作向表中添加数据,插入、删除、更新的方法,对视图的建立及操作方法,学会使用索引,虽然我对存储的过程,触发器的参照完整性操作还较难实现,但我相信经过我们努力的合作与配合,再加上掌握其中的原理和诀窍,并能正确深入地理解,就一定不是问题了。此外,结实得以巩固,从而使我们的能力也在操作中也得到了很大的提高。通过此次图书馆管理系统的实际设计使我更加确信这一点。我想,在今后的学习中,我会更加巩固自己的基础知识与操作方法,才能在遇到复杂问题时能及时找到解决的方法。 另外建立E-R图的相关知识和我们的生活联系比较紧密,学习起来也较有意思。图中各实体都来自我们的现实生活,所以在创建关系时必须回顾到生活中,找出联系,看是一对一、一对多还是多对多。在创建图时,并不是把所有的联系都加上就是一个完美的的图,一个最佳的图必须能够简洁全面的反应各实体之间的联系,不能有太多的冗余或漏洞。通过此次试验,使我体会到学习与生活间的密切联系,我们不仅要努力掌握书本上的理论知识,而且更要懂得从生活中汲取知识,联系实际,学会举一反三,更要用于实际。
xx:在这次的数据库设计中,显然没有以前做实验是那么盲目,基本搞清楚了理论方面的知识,知道SQL sever的运用,通过自己动手实践获得知识,感觉就是不一样,对数据库系统又有了新的认识,运用计算机自己开发设计系统,来减轻劳动强度,提高信息处理速度和准确性,我们分析现有图书馆管理的漏洞,然后搜集资料,设计出自己的图书管理系统。这次设计是对我们综合能力的提升,虽然在做的过程中遇到了很多困难,但是我们小组讨论之后也都解决了,可能解决的不是很完美但是完成任务后感觉很开心,最后我们也不得不承认我们的能力和认识有局限性,所以今后我们学习的道路是漫长的。这个系统可能还存在着许多不足之处,请老师指正,我们会在以后的课程中,不断改进。
37
2024/9/24
展开阅读全文