图书管理系统数据库设计.docx
《图书管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计.docx(12页珍藏版)》请在冰豆网上搜索。
![图书管理系统数据库设计.docx](https://file1.bdocx.com/fileroot1/2023-2/4/8d78f382-10f6-4543-b6f0-93a4c0f244be/8d78f382-10f6-4543-b6f0-93a4c0f244be1.gif)
图书管理系统数据库设计
图书管理系统
数据库设计文档
1.图书管理系统数据需求
通过建立一个基于C/S系统的图书管理系统,使得图书管理工作系统化、规化和自动化,从而提高了管理的效率,也方便了读者的借阅。
应用C#编程,实现对数据库信息的管理。
系统应用符合图书馆信息管理及处理的规定,满足图书管理员对图书及借阅信息进行管理的需求,并达到操作过程中的直观、方便、使用、安全等要求。
系统用模块化程序设计的方法,既便于系统功能的组合和修改,又便于参与技术人员补充和维护。
数据字典:
数据流编号:
D01 数据流名称:
读者信息 简述:
读者信息
数据流来源:
读者借阅后,管理员将读者信息输入计算机。
数据流去向:
图书管理模块。
读者信息将存入数据库(读者信息表)。
数据项组成:
读者姓名+学号+专业
数据流编号:
D02 数据流名称:
图书信息 简述:
图书信息
数据流来源:
新书到馆后,管理员将图书信息输入计算机。
数据流去向:
图书管理模块。
读者信息将存入数据库(图书信息表)。
数据项组成:
图书编码+图书类别+书名+作者+出版社+Price 单价+出版日期+购买数量
数据流编号:
D03 数据流名称:
读者情况 简述:
读者情况
数据流来源:
图书被借阅后,计算机将读者信息返回给管理员。
数据流去向:
管理员。
数据项组成:
已借图书+已借数量+续借次数
数据流编号:
D04 数据流名称:
图书情况 简述:
图书情况
数据流来源:
图书被借阅后,计算机将图书信息返回给管理员。
数据流去向:
管理员。
数据项组成:
书名+是否被借+已借次数
数据流编号:
D05
数据流名称:
借还书信息 简述:
借还书信息
数据流来源:
管理员把借还书信息录入计算机。
数据流去向:
图书管理模块。
借还书信息将存入数据库(借阅信息表)。
数据项组成:
已借书名+已还书名
数据流编号:
D06
数据流名称:
图书信息 简述:
图书信息
数据流来源:
读者从计算机获得图书信息。
数据流去向:
读者。
数据项组成:
图书编码+图书类别+书名+作者+出版社+Price 单价+出版日期+购买数量
数据流编号:
D07
数据流名称:
读者借阅情况 简述:
读者借阅情况
数据流来源:
读者从计算机获得借阅情况。
数据流去向:
读者。
数据项组成:
书名+是否被借+已借次数
1.1图书管理系统功能数据需求
(1)读者基本信息的输入,包括读者编号、读者登录名、读者姓名、读者性别等。
(2)读者基本信息的查询、修改,包括读者编号、读者姓名、读者性别等。
(3)书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
(4)书籍类别信息的查询、修改,包括类别编号、类别名称。
(5)书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
(6)书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记等。
(7)借书信息的输入,包括读者编号、书籍编号、借书日期。
(8)借书信息的查询、修改,包括读者编号、书籍编号、还书日期。
(9)还书信息的输入,包括读者编号、书籍编号、还书日期。
(10)还书信息的查询和修改,包括还书读者编号、读者姓名、书籍编号、书籍名称、结束日期、还书日期等。
(11)超期还书罚款输入,还书超出期限包括超出期限还书的读者编号,书籍编号,罚款金额。
(12)超期还书罚款查询、删除,包括读者编号、读者姓名、书籍编号、书籍名称、罚款金额等。
(13)管理员管理:
包括创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息。
1.2组织结构
列出文档的组织结构。
第一章:
图书管理系统数据需求。
第二章:
图书管理系统概念设计。
第三章:
图书管理系统逻辑设计。
附录A:
是本文档的图表索引。
2.概念设计
分析图书管理系统的基本需求,利用概念结构设计的抽象机制,对所需分析结果中的信息进行分类、组织,得到系统的实体、实体属性、实体的键、实体之间的联系以及联系的类型,就可以设计出系统的概念模型。
通过前述分析,可以抽取出图书管理系统的基本实体有:
管理员、读者、书籍三个实体是通过读者借阅,管理员管理产生联系的,管理员与读者,读者和书籍都是一对多的联系。
2.1总体E-R图
用户:
用户编号、姓名、性别、所属角色、、、登录密码、是否可借书、当前可借书数目;
用户角色:
权限编号、权限名、权限描述;
超期记录:
超期编号、超期用户编号、超期书籍编号、超期天数、罚款金额、是否已缴纳罚款;
用户角色:
角色编号、角色名、角色描述、可借书最大数目、可借书最大天数、可续借次数、每次续借可最长天数、角色权限;
管理员:
管理员编号、姓名、登录密码、、;
遗失记录:
遗失编号、遗失书籍编号、遗失书籍用户编号、报失时间、是否已缴纳罚款、是否重新购入遗失书籍;
图书:
图书编号、图书名、作者、ISBN比编号、出版社民、出版时间、总字数、总页数、定价、容简介、图书类别、入库日期、所在分管、是否可借、图书种类;
图书馆:
分馆编号、分馆馆名、联系、地址、分馆简介;
图书种类:
种类编号、种类名、种类说明、超期应缴罚款额、遗失应缴罚款额;
借阅记录:
借阅编号、用户编号、书籍编号、节约时间、是否已归还、应还日期、是否被续借、被续借次数、是否超期;
图书类别:
类别编号、类别名、类别说明;
系统:
日志编号、日志容、日志产生时间、系统是否正常;
各个实体之间联系见下总体E-R图:
图21总体E-R图
2.2图书管理系统模块E-R图
各个模块及功能跟关系见下面的E-R图:
图22查询管理模块E-R图
图23借阅管理模块E-R图
图24图书管理模块E-R图
图25用户管理模块E-R图
3.逻辑设计
E-R图向关系模型的转换
关系模型的逻辑结构是一组关系模式的集合。
E-R图则是由实体,实体的属性和实体间的联系三个要素组成。
所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。
转换原则如下。
1. 实体类型的转换:
一个实体型转换成一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
2.联系类型的转换,根据不同的情况做不同的处理。
⑴ 一个1:
1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
⑵ 一个1:
N的联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。
⑶ 一个M:
N联系转换为一个关系模式。
与该联系相连的各实体的码为各实体码的组合。
⑷ 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
⑸ 具有相同码的关系模式可合并。
3.1表的设计
(1)User,记录用户的基本信息;
(2)UserRole,记录用户角色,不同角色拥有的权限不同;
(3)UserRights,记录用户可拥有的权限;
(4)Administration,记录管理员的基本信息,管理员拥有所有权限,并且可以更改用户权限;
(5)OverTimeRecord,记录被超期借阅的图书信息;
(6)LostRecord,记录被遗失的图书信息;
(7)BorrowRecord,记录图书借阅情况;
(8)Book,记录图书的基本信息;
(9)Library,记录图书分馆的基本信息;
(10)BookCategory,记录图书的类别;
(11)BookKind,记录图书的种类;
(12)SystemLog,记录系统日志;
3.1.1user表
表格31user表
字段名
数据类型
字段说明
备注
UserID
int
用户编号
PK
UserLogName
nvarchar
用户登录名
UserName
nvarchar
用户姓名
UserSex
char
用户性别
UserRole
int
用户所属角色
FK,关联角色表中的角色编号
UserPhone
nvarchar
用户
UserEmail
nvarchar
用户
UserPass
nvarchar
用户登录密码
UserIsBorrow
int
用户是否可借阅书籍
值为1时可借,否则不可借
3.2数据库关系图
图31数据库关系图
用于存储用户实体类的User表。
表项中UserID项是User表的主键用于唯一标识一个用户,UserRole项是从UserRole表中引入的外键。
用于存储管理员实体类的Administration表。
表项中AdminID是Administration表的主键。
用于存储所有用户角色的UserRole表。
表项中RoleID是UserRole表的主键,RoleRights是从表UserRights中引入的外键。
用于存储用户权限的UserRights表。
表项中RightsID是UserRights表的主键。
用于存储图书实体类的Book表。
表项中的BookID是主键用于唯一标识一本图书,BookKind是从BookKind表中引入的外键,BookLibary项是从BookLibary表中引入的外键,BookCategory项是从BookCategory表中引入的外键。
用于存储图书种类的BookKind表。
表项中KindID是BookKind表的主键。
用于存储图书分类的BookCategory表。
表项中CategoryID是BookCategory表的主键。
用于存储图书保存的藏馆的Library表。
表项中LibID是Library表的主键。
下面三个是用于保存用户操作记录的记录表。
用于存储用户借书的记录的BorrowRecord表。
BRID是BorrowRecord表的主键,BRUserID是从User表中引入的外键,BRBookID是从Book表中引入的外键。
用于存储用户借书丢失记录的LostRecord表。
表项中LostRecID是LostRecord表的主键,LostRecUserID是从User表中引入的外键,LostRecBookID是从Book表中引入的外键。
用于存储用户借书超时记录的OverTimeRecord表。
表项中OTRID是OverTimeRecord表的主键,OTRUserID是从User表中引入的外键,OTRBookID是从Book表中引入的外键。
本数据的设计满足的第三式的要求。
上述所有表的表项的非关键字都不依赖于其他表项。
附录A.图表索引