图书馆管理系统.docx
- 文档编号:24083720
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:26
- 大小:24.80KB
图书馆管理系统.docx
《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
图书馆管理系统
华北软件与技术股份有限公司石家庄事业部
文档编号
TR-REC-062
版本
1.0.6
密级
商密A
项目名称
图书馆管理系统
项目来源
DR-RD-020(V1.1)
图书馆管理系统
数据库设计说明书
(内部资料请勿外传)
编写:
日期:
检查:
日期:
审核:
日期:
批准:
日期:
华北软件与技术股份有限公司
版权所有不得复制
图书馆管理系统系统1
数据库设计说明书1
1引言2
1.1编写目的2
1.2术语表2
1.3参考资料3
2数据库环境说明3
3数据库的命名规则3
4逻辑设计3
5物理设计4
5.1表汇总4
5.2表[X]:
[XXX表]4
5.3视图的设计6
5.4存储过程、函数及触发器的设计6
6安全性设计6
6.1防止用户直接操作数据库的方法6
6.2用户帐号密码的加密方法7
6.3角色与权限7
7优化7
8数据库管理与维护说明7
1引言
1.1编写目的
石家庄铁道大学拥有一个小型的图书馆,为全校师生提供一个阅读、学习的空间。
近年来,随着生源的不断扩大,图书馆的规模也随之扩大,图书的数量也随之大量增加,有关图书的的各种信息成倍的增加。
面对如此庞大的信息量,校领导决定使用一套合理,有效,实用的图书馆管理系统,对校内图书资料进行统一,集中的管理。
我们受石家庄铁道大学所托,开发一个图书馆管理系统,其开发宗旨是实现图书管理的系统化,规模化和自动化,达成图书资料集中,统一管理的目标。
1.2系统功能结构
图书管理系统分为四大功能模块,分别为“基础数据库”、“图书借阅管理”、“新书订购管理”、和“系统维护”。
本系统各个部分及包括的具体功能模块如图所示。
图书馆管理系统
系统维护
新书订购管理
图书借阅管理
基础数据库
图书查询
图书查询
更改密码
图书还书系统
用户管理
验收新书
新书订购
图书分类管理
读者信息管理
图书信息管理
图书借书管理
1.3系统流程图
图书馆管理系统的业务流程图如图所示。
读者信息管理
读者添加
读者修改与删除
读者信息管理
图书馆管理系统
图书类别添加
基础数据库维护
管理员登陆
图书类别相关信息
类别修改
图书分类管理
管理员
图书相关信息
图书添加
图书信息管理
图书修改
图书借阅
图书相关信息
图书归还
图书借阅管理
图书查询
读者信息录入
读者
订购相关信息
新书订购
新书订购管理
验收新书
更改密码
操作员相关信息
用户添加
系统维护
用户修改与删除
用户管理
2数据库环境说明
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
图书馆管理系统
SQLServer2005
CPU:
P43.2GHz
内存:
512MB以上
硬盘空间:
80GB
PowerDesigner
F;/图书馆管理系统
帮助图书馆管理图书的数据库
3数据库的命名规则
1、数据库文件命名
数据文件命名采用系统名+_+文件类型,比如系统名为ComSys,则数据库文件命名为
ComSys_database.mdf,有的数据库文件有多个,比如SQLServer就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件命名分别为ComSys_database.mdf,ComSys_log.log。
2、数据库对象命名规范
数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。
对象名字由前
缀和实际名字组成,长度不超过30。
1)前缀:
使用小写字母。
如:
表tb,视图vi,存储过程sp,函数fn
2)实际名字:
实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他
字母小写,不以数字和_开头。
如:
表User_Info,视图User_List,存储过程User_Delete
3)示例:
合法的对象名字类似如下:
表tb_User_Infotb_Message_Detail,视图vi_Message_List,存储过程sp_Message_Add
3、表的命名
1)表名由前缀和实际名字组成。
前缀使用小写字母tb,表示表。
对工作用表来说,表名可以加上前缀WORK_后面附上采用该表的应用程序的名字。
在
命名过程当中,根据语义拼凑缩写即可。
注意,由于ORCLE会将字段名称统一成大写或者
小写中的一种,所以要求加上下划线。
举例:
定义的缩写Sales:
Sal销售;Order:
Ord订单;Detail:
Dtl明细;则销售订单明细表命名为:
tb_Sal_Ord_Dtl;
2)如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
举例:
定义的缩写MaterialMa物品;物品表名为:
tb_Material,而不是tb_Ma.但是字段物品编码则是:
Ma_ID;而不是Material_ID
3)所有的存储值列表的表前面加上前缀Z
目的是将这些值列表类排序在数据库最后。
4)所有的冗余类的命名(主要是累计表)前面加上前缀X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表
5)关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。
关联表用于保存多对多关系。
如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。
如果没有其他原因,
建议都使用缩写。
举例:
表Object与自身存在多对多的关系,则保存多对多关系的表命名为:
tb_R_Object;
表Depart和Employee存在多对多的关系;则关联表命名为tb_R_Dept_Empl。
4、字段命名
1)采用有意义的列名,表内的列要针对键采用一整套设计则。
每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义,如
果是数据库自动生成的编码,统一命名为:
ID;如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名。
举例:
销售订单的编号字段命名:
Sal_Ord_ID;如果还存在一个数据库生成的自动编号,则命名为:
ID。
2)数据库字段名全部采用小写英文单词,单词之间用“隔开,
命名规则是表别名+单词。
如:
user_name,user_pwd。
(表别名规则,如果表名是一个单词,别名就取单词的前4个
字母;如果表名是两个单词,就各取两个单词的前两个字母组成4个字母长的别名;如果表的名字由3个单词组成,则从头两个单词中各取一个然后从最后一个单词中再取出两个字母,结果还是组成4字母长的别名。
)
6、视图的命名
1)视图名由前缀和实际名字组成,中间用下划线连接。
前缀使用小写字母vi,表示视图。
合法的视图名类似如下:
vi_User,vi_UserInfo
2)命名应尽量体现各视图的功能。
六、触发器的命名
触发器以tr作为前缀,触发器名为相应的表名加上后缀,Insert触发器加“'_I”',Delete
触发器加“'_D”',Update触发器加“'_U”',如:
tr_Customer_I,tr_Customer_D,tr_Customer_U。
7、索引命名
索引名=idx+“_”+表缩写+相关字段/索引含义
8、存储过程名
存储过程名由前缀和实际名字加操作名字组成,中间用下划线连接。
前缀:
使用小写字母sp,表示存储过程。
操作名字:
Insert|Delelte|Update|Caculate|Confirm
合法的存储过程名类似如下:
sp_User_Insert
9、变量名
变量名采用小写,若属于词组形式,用下划线分隔每个单词,如@sys_err_no。
10、命名中其他注意事项
1)以上命名都不得超过30个字符的系统限制。
变量名的长度限制为29(不包括标识字
符@)。
2)数据对象、变量的命名都采用英文字符,禁止使用中文命名。
绝对不要在对象名的字符之间留空格。
3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
5)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致
性。
假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
4逻辑设计
图书信息实体
图书信息实体包括图书编号、图书类别编号、书名、作者、译者、出版社、价格、出版时间等属性。
其中图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书分类实体具有外键关系。
图书信息实体的E-R图如图1所示。
图书编号
书名
类别编号
作者
图书
译者
出版社
出版时间
价格
图1图书信息实体E-R图
读者信息实体
读者信息实体包括读者编号、姓名、性别、年龄、电话、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码、密码、状态、图书借阅情况等属性。
其中,读者编号为本实体的唯一标识;在性别属性信息中,“1”代表此读者为男性,“2”代表此读者为女性;最大借书数量属性设置默认值为3;而在证件类型属性标识信息中,“0”代表学生证,“1”代表教职工工作证。
读者信息实体的E-R图如图2所示。
生日
押金
电话话
年龄
性别
姓名
读者编号
办证日期
最大借书数量
读者
职业
状态
密码
图书借阅情况
办证类型
图2读者信息实体E-R图
图书借阅信息实体
图书借阅实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。
编号作为图书借阅信息实体的唯一标识,包括三个外键,分别为图书编号、读者编号和操作员编号,图书借阅信息实体以这三个外键与图书信息实体、读者信息实体、管理员信息实体建立了关系。
是否归还中,1代表归还,2代表超期,3代表丢失等。
图书借阅信息实体的E-R图如图3所示。
图书编号
管理员编号
读者编号
编号
图书借阅
归还日期
借阅日期
是否归还
图3图书借阅信息实体E-R图
图书分类实体
图书分类实体包括编号、类别名称、可借天数和罚款金额等属性。
图书分类实体与图书信息实体以图书类别编号建立了关系。
图书分类实体的E-R图如图4所示。
类别编号
类别名称
图书分类
罚款金额
可借天数
图4图书分类实体E-R图
图书订购实体
图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。
图书订购实体以图书信息实体建立了关系。
图书订购实体的E-R图如图5所示。
图书编号
订购数量
订购日期
图书订购
折扣
是否验收
管理员
图5图书订购实体E-R图
操作员信息实体
操作员信息实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、是否为管理员和密码等属性。
其中,性别属性信息中“1”代表男性,“2”代表女性;管理员类型属性信息中“0”代表当前用户是超级管理员,“1”代表当前用户是一般管理员。
操作员信息实体的E-R图如图6所示。
年龄
管理员编号
性别
姓名
电话
管理员
身份证号
管理员类型
工作日期
密码
图6操作员信息实体E-R图
馆藏信息实体
馆藏信息实体主要包括图书编号、馆藏数量、馆藏地,是否可借等属性。
库存信息实体以图书编号与图书信息实体建立了关系。
库存信息实体的E-R图如图7所示。
是否可借
馆藏地
图书编号
馆藏
馆藏数量
图7库存信息实体E-R图
全局E-R图
图书类型
类别编号
属于
读者编号
借阅日期
图书编号
读者
借阅
图书
订购日期
管理
入馆
订购
管理员
管理员编号
图书编号
馆藏
tb_booklnfo
bookISBNvarchar(13)
typeIdint
booknamevarchar(40)
writervarchar(21)
translatorvarchar(30)
publishervarchar(50)
datasmalldatetime
pricemoney
数据库模型
fk_tb_stockpile_reference_tb_booklnfo
tb_stockpile
bookISBNvarchar(13)
amountint
placevarchar(50)
isBorrowint
fk_tb_booklnfo_reference_tb_booktype
tb_bookType
typeIdint
typeNamevarchar(20)
daysint
fkfloat
fk_tb_borrow_reference_tb_booklnfo
fk_tb_order_reference_tb_booklnfo
tb_borrow
idvarchar(20)
bookISBNvarchar(13)
operatorIdint
readerISBNvarchar(13)
isbackint
borrowDatedatetime
backDatedatetime
tb_order
ISBNvarchar(13)
datedatetime
numberint
operatorvarchar(6)
checkAndAcceptint
zkfloat
fk_tb_borrow_reference_tb_reader
tb_reader
readerISBNvarchar(13)
reader_passwordvarchhar(16)
namevarchar(10)
sexvarchar
(2)
ageint
datedatetime
maxMunint
telvarchar(50)
keepMoneymoney
zyint
bzTimedatetime
readerIdentityCardvarchar(30)
stateint
recordvarchar(100)
fk_tb_borrow_reference_tb_operrator
tb_operator
operatorIdint
namevarchar(12)
sexvarchar
(2)
ageint
identityCardvarchar(30)
workdatedatetime
telvarchar(50)
adminbit
passwordvarchar(10)
5.1表汇总
表名
功能说明
tb_booklnfo
存储图书信息
tb_stockpile
存储馆藏信息
tb_order
存储图书订购信息
tb_bookType
存储图书分类信息
tb_borrow
存储图书借阅信息
tb_operator
存储管理员信息
tb_reader
存储读者信息
5.2表
tb_booklnfo
字段名
字段类型
长度
主/外键
约束
对应中文名
bookISBN
varchar
13
P
notnull
图书编号
typeId
int
F
notnull
类别编号
bookname
varchar
40
notnull
书名
writer
varchar
21
notnull
作者
translator
varchar
30
notnull
译者
publisher
varchar
50
notnull
出版社
date
smalldatetime
notnull
出版时间
price
money
notnull
价格
tb_stockpile
字段名
字段类型
长度
主/外键
约束
对应中文名
bookISBN
varchar
13
P,F
notnull
图书编号
amount
int
notnull
馆藏数量
place
varchar
50
notnull
馆藏地
isBorrow
Int
notnull
是否可借
tb_bookType
字段名
字段类型
长度
主/外键
约束
对应中文名
TypeId
int
P
notnull
类型编号
typeName
varchar
20
notnull
类型名称
days
int
notnull
可借天数
fk
float
notnull
罚款金额
tb_order
字段名
字段类型
长度
主/外键
约束
对应中文名
bookISBN
varchar
13
P,F
notnull
图书编号
date
datetime
notnull
订购日期
number
int
notnull
订购数量
operator
varchar
6
notnull
管理员
checkAndAccept
int
notnull
是否验收
zk
float
notnull
折扣
tb_borrow
字段名
字段类型
长度
主/外键
约束
对应中文名
id
varchar
20
P
notnull
编号
bookISBN
varchar
13
F
notnull
图书编号
operatorId
int
F
notnull
操作员编号
readerISBN
varchar
13
F
notnull
读者编号
isback
int
notnull
是否归还
borrowDate
datetime
notnull
借阅日期
backDate
datetime
notnull
归还日期
tb_operator
字段名
字段类型
长度
主/外键
约束
对应中文名
operatorId
int
P
notnull
管理员编号
name
varchar
12
notnull
姓名
sex
varchar
2
notnull
性别
age
int
notnull
年龄
identityCard
varchar
30
notnull
身份证号
workdate
datetime
notnull
工作日期
tel
varchar
50
notnull
电话
admin
bit
notnull
管理员类型
password
varchar
10
notnull
密码
tb_reader
字段名
字段类型
长度
主/外键
约束
对应中文名
readerISBN
varchar
13
P,K
notnull
读者编号
name
varchar
10
notnull
姓名
sex
varchar
2
notnull
性别
age
int
notnull
年龄
readerIdentityCard
varchar
30
notnull
办证类型
date
datetime
notnull
生日
maxMun
int
notnull
最大借书数量
tel
varchar
50
notnull
电话
keepMoney
money
notnull
押金
zy
int
notnull
职业
bzTime
datetime
notnull
办证日期
reader_password
varchar
16
notnull
密码
state
int
notnull
状态
record
varchar
100
null
图书借阅情况
5.2视图的设计
管理员查看读者信息
证件号码
姓名
性别
电话
押金
职业
最大借书数量
办证日期
办证类型
读者查看图书信息
图书编号
类别编号
书名
书名
出版时间
出版社
译者
读者的借阅情况
读者编号
职业
姓名
性别
图书借阅情况
5.4存储过程、函数及触发器的设计
触发器:
1、增加一条借阅记录时用户的最大借书数量减一,如果减到零提示不可再借阅,同时将借阅的书记为未归还。
2、修改借阅信息时,如果借阅的书籍已经归还,将最大借书数量加一,并记为已归还。
3、如果有图书超期,提示不能再借,有图书超期。
4、如果有图书丢失,提示不能再借,有图书丢失。
5、如果是非学校人员提示不可借。
6、图书为不可借时提示。
6、安全性设计
6.1防止用户直接操作数据库的方法
1、给每个用户角色限制用户权限,不同的角色拥有不同的权限,用户只能行使自己的权限范围。
2、数据库登陆设密。
3、限制操作系统存取权限。
6.2用户帐号密码的加密方法
使用MD5加密方法对用户账号密码进行加密。
MD5方法采用单项加密的加密方法,即只能对数据进行加密,而不能对加密后的数据进行解密,这样经过MD5算法处理的账号和秘密存储在数据库中即使被人恶意获取到,也不可能知道密码的具体数据,即做到了对账号密码的更强的保护。
6.3角色与权限
6.4角色
可以访问的表与列
操作权限
超级管理员
可访问所有表
完全控制权限
管理员
tb_booklnfo,tb_stockpile
tb_bookType,tb_order,tb_borrow
增删改查
tb_operator
查
读者
tb_reader
增删改查
tb_borrow,tb_booklnfo
tb_bookType,tb_stockpile
查
7、优化
优先级
优化对象(目标)
措
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统