图书馆管理系统数据库设计精选Word文件下载.docx
《图书馆管理系统数据库设计精选Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统数据库设计精选Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
“图书归还”用于登记读者归还图书的记录并增加图书在库的库存,登记内容包括归还编号、图书编号、读者编号、归还时间等。
系统查询借阅此书的人的信息以及该书被借日期判断是否过期,若过期将进行罚款,并将该书刊的借阅记录改为已还。
“图书丢失”用于报失图书,内容包括丢失编号、图书编号、读者编号、赔偿金额、操作时间等。
“图书罚款”用于对图书超期、丢失等情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚款日期、罚款金额、是否交款、备注等。
系统总流程图
系统流程图如图1—4所示:
图1—4系统总流程图
二、概念模型设计
根据以上需求分析,一个基本的图书馆管理系统数据库大致包括10个表,分别存放相应子功能模块的数据信息,期中“读者信息”和“图书信息”表是关键的表,用于存放图书馆读者的信息和文献的信息,图书馆管理系统实际上就是对读者和文献的管理。
其他涉及读者信息和文献信息的表,都只是记录相应的编号,并根据作为外键的“编号”字段相对应。
数据库要表述的信息有:
(1)读者类型
(2)读者信息(3)图书基本信息(4)图书信息(5)图书征订(6)图书借阅(7)图书归还(8)图书丢失(9)图书罚款(10)图书注销
各个主要实体的属性的E-R图
各实体及属性图如图3—1所示:
图2—1各实体及属性
各实体及其联系的E-R图
图2—2各实体及其联系图
三、逻辑设计
一般逻辑模型设计
3.1.1由ERD导出一般关系模型的四条原则为
原则1(实体转换为关系模式):
ERD中每个独立的实体转换为一个关系模式,实体的属性组成关系的属性,实体的主标识转换成关系的主码。
原则2(从实体及其主从联系转换为关系模式):
ERD中一个从实体及其主从联系转换为一个关系,从实体的属性及其主实体关系的属性组成的属性,其主实体关系的主码,在主从关系联系为一对多联系时还要加上可把同一主实体个体所对应的从实体个体区分开来的,从实体的一组属性,作为该关系的主码。
对子类实体可作类似一对一联系的从实体的转换。
原则3(一对多联系在关系模式中的表示):
ERD中的一个一对多联系通过在其“多”实体关系上增加“1”实体关系的主码(作为外码)和联系本身的属性来表示。
原则4(多对多联系转换为关系):
ERD中的一个多对多联系转换为一个关系,其被联系实体关系的主码和该联系本身的属性一起组成的属性,被联系关系的主码组成该关系的复合主码。
3.1.2读者类型的关系模式
读者类型(身份、可借册数、可续借册数、可借时间)
其中身份是本表的主键
3.1.3图书基本信息的关系模式
图书基本信息(ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量)
其中ISBN号是主键
3.1.4读者信息的关系模式
读者信息(编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失)
其中编号是主码,身份是外码
3.1.5图书信息的关系模式
图书信息(编号、ISBN、入库时间)
其中编号是主码,ISBN号是外码
3.1.6图书征订的关系模式
图书征订(征订编号、类型、征订数量、征订日期)
其中征订编号是主码,类型是外码
3.1.7图书借阅的关系模式
图书借阅(借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、图书状态)
其中借阅编号是主码,图书编号和读者编号是外码
3.1.8图书归还的关系模式
图书归还(归还编号、图书编号、读者编号、归还时间)
其中归还编号是本表的主码,图书编号和读者编号是外码
3.1.9图书丢失的关系模式
图书丢失(丢失编号、图书编号、读者编号、偿还金额、操作时间)
其中丢失编号是主码,图书编号和读者编号是外码
图书罚款的关系模式
图书罚款(罚款编号、图书编号、读者编号、罚款日期、罚款金额、是否交款、备注)
其中罚款编号是主码,图书编号和读者编号是外码
图书注销的关系模式
图书注销(注销编号、图书编号、注销时间)
其中注销编号是主码,图书编号是外码
具体逻辑模型设计
3.2.1读者类型表
字段名
数据类型
能否为空
说明
身份
char(20)
notnull
primarykey
可借册数
int
可续借次数
可借时间
char(10)
3.2.2图书基本信息表
ISBN
书名
char(20)
版次
类型
作者
出版社
价格
float
现存量
库存总量
3.2.3读者信息表
编号
姓名
char(20),
foreignkey(身份)references读者类型(身份)
性别
char(8)
check(性别in('
男'
'
女'
)),
联系方式
char(12)
登记日期
datetime
有效期至
违规次数
借书数量
Int
是否挂失
3.2.4图书信息表
primarykey,
foreignkey(ISBN)references图书基本信息(ISBN))
入库时间
3.2.5图书借阅表
借阅编号
图书编号
foreignkey(图书编号)references图书信息(编号)
读者编号
foreignkey(读者编号)references读者信息(编号)
借阅时间
应还时间
续借次数
3.2.6图书归还表
归还编号
foreignkey(图书编号)references图书信息(编号)
归还时间
3.2.7图书征订表
征订编号
foreignkey(ISBN)references图书基本信息(ISBN)
征订数量
征订日期
3.2.8图书罚款表
罚款编号
Foreignkey(图书编号)references图书信息(编号)
Foreignkey(读者编号)references读者信息(编号)
罚款日期
罚款金额
char(10)
是否交款
备注
3.2.9图书丢失表
丢失编号
偿还金额
操作时间
3.2.10图书注销表
注销编号
注销时间
四、物理设计和保护设计
创建图书馆管理系统数据库和库中的各表
---------------------创建图书馆管理系统数据库
Createdatabase图书馆管理系统
go
use图书馆管理系统
go
----------------创建“读者类型”表
Createtable读者类型(
身份char(20)primarykey,
可借册数int,
可续借次数int,
可借时间char(10))
-----------------创建“图书基本信息”表
createtable图书基本信息(
ISBNchar(20)primarykey,
书名char(20),
版次char(20),
类型char(20),
作者char(20),
出版社char(20),
价格float,
现存量int,
库存总量int)
---------------创建读者信息表:
Createtable读者信息(
编号char(20)primarykey,
姓名char(20),
身份char(20),
性别char(8)check(性别in('
联系方式char(12),
登记日期datetime,
有效期至datetime,
违规次数int,
借书数量int,
是否挂失char(8),
)
Go
----------------------创建图书信息表
Createtable图书信息(编号char(20)primarykey,
ISBNchar(20),
入库时间datetime
foreignkey(ISBN)references图书基本信息(ISBN))
------------------创建“图书借阅”表
Createtable图书借阅(借阅编号char(20)primarykey,
图书编号char(20),
读者编号char(20),
借阅时间datetime,
应还时间datetime,
续借次数int,
Foreignkey(图书编号)references图书信息(编号),
)
----------------创建“图书归还”表
Createtable图书归还(归还编号char(20)primarykey,
归还时间datetime,
Foreignkey(图书编号)references图书信息(编号),
-----------------创建“图书征订”表
Createtable图书征订(征订编号char(20)primarykey,
ISBNchar(20),
征订数量int,
征订日期datetime,
----------------创建“图书罚款”表
Createtable图书罚款(罚款编号char(20)primarykey,
图书编号char(20),
读者编号char(20),
罚款日期datetime,
罚款金额char(10),
是否交款char(8),
备注char(10),
--------------创建“图书丢失”表
Createtable图书丢失(丢失编号char(20)primarykey,
偿还金额char(10),
操作时间datetime
---------------创建“图书注销”表
Createtable图书注销(注销编号char(20)primarykey,
注销时间datetime,
向图书馆管理系统数据库中插入数据
---------------插入读者类型
Insertinto读者类型values('
学生'
5,2,'
30天'
教师'
10,4,'
60天'
--------------插入图书基本信息
Insertinto图书基本信息values('
7-302-12266-0'
经典案例开发'
2006年1月第1版'
'
计算机'
马里杰'
清华大学出版社'
,2,2)
Insertinto图书基本信息values('
7-302-12266-1'
经典实例精讲'
夏邦贵'
机械工业出版社'
,3,3)
7-302-12266-4'
电工电子实训教程'
电工'
向守兵'
电子科技大学出版社'
7-302-12266-3'
英语专业四级词汇'
英语'
徐向珍'
中国建材工业出版社'
--------------插入读者信息
2006-09-10'
2010-06-01'
0,0,'
否'
2000-01-20'
2050-01-20'
0,0,'
Insertinto读者信息values('
t000002'
刘晨'
2222546'
2006-02-01'
2056-02-01'
-----------------插入图书信息
Insertinto图书信息values('
TP0000001'
2006-06-01'
TP0000002'
Insertinto图书信息values('
TP0000003'
2006-05-01'
TP0000004'
TP0000005'
TM0000006'
2004-12-12'
TM0000007'
H0000008'
2006-05-20'
H0000009'
TP0000010'
2008-06-10'
各表之间的联系图如图4—1所示
图4—1各表之间的联系图
五、具体功能实现
5.1图书管理员的操作
5.1.1图书管理员对读者信息的管理
(1)插入新读者编号姓名:
朱康,身份:
学生,性别:
男,,联系方式2232365,登记日期2008-06-10,有效期至2010-06-01,违规次数0,借书数量0,是否挂失否
实现方法:
0,0,'
验证select*from读者信息
(2)读者信息的查询:
select姓名,借书数量,违规次数from读者信息
(3)修改读者信息:
实现方法update读者信息set联系方式='
2232334'
38'
验证select*from读者信息38'
5.1.2图书管理员对图书信息的管理
(1)插入图书信息编号:
TP0000010,ISBN=7-302-12266-0,入库时间=2008-06-10
验证:
select*from图书信息where编号='
(2)图书查阅用ISBN号查阅
select编号,图书信息.ISBN,书名,作者,库存总量,现存量
from图书信息,图书基本信息
where图书信息.ISBN=图书基本信息.ISBNand图书信息.ISBN='
(3)图书信息修改将图书编号=TP0000010的图书入库时间改为2008-06-11
update图书信息set入库时间='
2008-06-11'
where编号='
(4)图书统计
Selectsum(现存量)现存总量
From图书基本信息
5.1.3图书管理员对图书借阅的管理
insertinto图书借阅values('
0001'
T38'
2008-07-11'
0
’借出’)
验证方法:
select*from图书借阅where借阅编号='
借出后此类图书现库存量减少一本,读者信息中借书量增加一本
update图书基本信息set现存量=现存量-1where图书基本信息.ISBN=(select图书基本信息.ISBN
from图书信息,图书基本