配色: 字号:
【任务8-4】图书管理数据库的物理结构设计
2022-11-06 | 阅:  转:  |  分享 
  
“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设

1



【任务 8-4】图书管理数据库的物理结构设计

【 任务描述 】

设计图书管理数据库的物理结构。

【 任务实施 】

( 1)选用数据库管理系统

这里选用 MySQL 数据库管理系统。

( 2)确定数据库文件和数据表的名称及其组成。

首先确定数据库文件的名称为“ book”。其次确定该数据库所包括的数据表及其名称,

“ book”数据库主要包括的数据表分别为:图书馆信息表、图书类型表、借阅者类型表、出

版社表、图书存 放位置表、图书信息表、藏书信息表、图书入库表、图书借阅表、出库图书

表、图书归还表、图书罚款表、图书征订表、库存盘点表、借书证表、借阅者信息表、管理

员表、部门表等。

( 3)确定各个数据表应包括的字段以及所有字段的名称、数据类型和长度。

( 4)确定关键字。

主关键字,又称主键,它是一个或多个字段的集合,是数据表中存储的每一条记录的唯

一标识,即通过主关键字,就可以唯 一确定数据表中的每一条记录。例如,“图书信息”表

中的“ ISBN 编号”是唯一的,但“图书名称”可能有相同,所以“图书名称”不能作为主

关键字。

关系型数据库管理系统能够利用主关键字迅速查找在多个数据表中的数据,并把这些数

据组合在一起。不允许在主关键字中出现重复值或 Null 值。所以,不能选择包含有这类值

“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设

2



的字段作为主关键字。因为要利用主关键字的值来查找记录,所以它不能太长,便于记忆和

输入。主关键字的长度直接影响数据库的操作速度,因此,在创建主关键字时,该字段值最

好使用能满足存储要求的最小长度。

( 5)确定数据库的各 个数据表之间的关系。

在 MySQL 数据库中,每一个数据表都是一个独立的对象实体,本身具有完整的结构和

功能。但是每个数据表不是孤立的,它与数据库中的其他表之间又存在联系。关系就是指连

接在表之间的纽带,使数据的处理和表达有更大的灵活性。例如与“图书信息”相关的表有

“出版社”表。

图书管理数据库中主要的数据表如表 8-7 所示。

表 8-7 数据库“ book”中各个数据表的结构数据

表序号 表名 字段名称(数据类型与数据长度 ,是否允许 Null,约束)

1 图书类型

图书类型代号 ( Varchar,2,Not Null) 、图书类型名称 ( Varchar,50,Not Null) 、描述信息

( Varchar,100)

2 借阅者类型

借阅者 类型编号 ( Char,2,Not Null,主键) 、 借阅者 类型名称 ( Varchar,30,Not Null) 、限借数

量 ( Smallint,Not Null) 、限借期限 ( Smallint,Not Null) 、续借次数 ( Smallint,Not Null) 、借

书证有效期 ( Smallint,Not Null) 、超期日罚金 ( Float,Not Null)

3 图书信息

图书编号( Char,12,Not Null,主键 )、 ISBN 编号( Varchar,20,Not Null,主键 )、图书名称

( Varchar,100,Not Null)、作者( Varchar,40)、译者( Varchar,50)、价格( Float,Not Null)、

版次( Smallint)、页数( Smallint)、出版社( Varchar,4,Not Null,外键 )、出版日期( Date)、

图书类型( Varchar,2,Not Null,外键 )、封面图片( Varchar,50)、图书简介( text) 、总藏书量

( Smallint,Not Null)、馆内剩余( Smallint,Not Null)、藏书位置( Varchar,20,Not Null)

4 藏书信息

图书 条形码 ( Char,15,Not Null,主键 )、图书编号( Char,12,Not Null,外键 )、入库日期

( Date)、图书状态( Char,4,Not Null)、借出次数( Smallint)

5 出版社

出版社 ID( Int,Not Null,主键 )、出版社名称( Varchar,50,Not Null)、出版社简称

( Varchar,16)、出版社地址( Varchar,50)、邮政编码( Char,6)、出版社 ISBN

( Varchar,10)、联系电话( Varchar,15)、联系人( Varchar,20)

6

图书

存储位置

存放位置编号( Varchar,20,Not Null,主键 )、室编号( Char,4)、室名称( Varchar,30)、书架

编号( Char,4)、书架名称( Varchar,30)、书架层次( Char,2)、说明( Varchar,50)

7 借书证

借书证编号( Varchar,7,Not Null,主键 )、借阅者编号( Varchar,20,Not Null,外键 )、姓名

( Varchar,20,Not Null)、办证日期( Date)、 借阅者 类型( Char,2,Not Null,外键 )、借书证状

态( Char,1,Not Null)、证件类型( Varchar,20)、证件编号( Varchar,20)、办证操作员

( Varchar,20)

“数据库类课程资源建设( MySQL 数据库应用与设计)”教学方向资源建设

3



8 借阅者信息

借阅者编号( Varchar,20,Not Null,主键 )、姓名( Varchar,20,Not Null)、性别( Char,2)、出

生日期( Date)、联系电话( Varchar,15)、部门( Char,2,Not Null,外键 )、照片

( Varchar,50)

9 部门信息

部门编号( Char,2,Not Null,主键 ) )、部门名称( Varchar,30,Not Null)、负责人

( Varchar,20)、联系电话( Varchar,15)

10 图书借阅

借阅 ID( Int,Not Null,主键 )、借书证编号( Char,7,Not Null,外键 )、图书 条形码

( Char,15,Not Null,外键 )、借出数量( Smallint,Not Null)、借出日期( Date,Not Null)、应还

日期( Date,Not Null)、 实际归还 日期( Date)、挂失日期( Date)、续借次数( Smallint)、

借阅操作员( Varchar,20)、归还操作员( Varchar,20)、图书状态( Char,1,Not Null)

11 图书入库

入库 ID( Int,Not Null,主键)、 图书条形码( Char,15,Not Null,外键 )、图书编号( Char,12,Not

Null)、图书名称( Varchar,100,Not Null)、出版日期( Date)、版次( Smallint)、存放位置

( Varchar,20,Not Null)、入库操作员( Varchar,20)、入库日期( Date)

12 图书出库

出库 ID( Int,Not Null,主键 )、图书 条形码 ( Char,15,Not Null,外键 )、图书编号( Char,12,Not

Null)、图书名称( Varchar,100,Not Null)、价格( Float)、出库原因( Varchar,50)、出库日

期( Date)、赔偿金额( Float)、出库操作员( Varchar,20)

13

图书

库存盘点

盘点 ID( Int,Not Null,主键)、图书 编号( Char,12,Not Null)、图书原始数量( Smallint)、图

书盘点数量( Smallint)、盘点人( Varchar,20)、盘点日期( Date)

14 罚款信息

罚款 ID( Int,Not Null,主键 )、图书 条形码 ( Char,15,Not Null,外键 )、借书证编号

( Varchar,7,Not Null,外键 )、超期天数( Smallint)、应罚金额( Float)、实收金额( Float)、

是否交款( Tinyint)、罚款日期( Date)、备注( Varchar,100)

15 用户

用户 ID( Int,Not Null,主键 )、用户名( Varchar,30)、用户密码( Varchar,20)、 权限( Int,Not

Null,外键)、 有效证件( Varchar,50)、证件 编号 ( Varchar,20)

16 用户权限

权限 ID( Int,Not Null,主键 )、 用户类别( Varchar,50)、 系统设置( Tinyint)、系统维护

( Tinyint)、管理图书( Tinyint)、管理 借阅 者( Tinyint)、借还图书( Tinyint)、 数据 查询

( Tinyint)



献花(0)
+1
(本文系籽油荃面原创)