图书馆数据库设计实例需求分析概念结构逻辑结构.docx
《图书馆数据库设计实例需求分析概念结构逻辑结构.docx》由会员分享,可在线阅读,更多相关《图书馆数据库设计实例需求分析概念结构逻辑结构.docx(11页珍藏版)》请在冰豆网上搜索。
![图书馆数据库设计实例需求分析概念结构逻辑结构.docx](https://file1.bdocx.com/fileroot1/2023-2/9/d97f0af8-2e44-45f0-b84c-30fbde170961/d97f0af8-2e44-45f0-b84c-30fbde1709611.gif)
图书馆数据库设计实例需求分析概念结构逻辑结构
数据库设计实例分析
一、需求分析实例
现要开发高校图书管理系统。
经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能:
(1)读者注册。
(2)读者借书。
(3)读者还书。
(4)图书查询。
1、数据流图
顶层数据流图反映了图书管理系统与外界的接口,但未表明数据的加工要求,需要进一步细化。
根据前面图书管理系统功能边界的确定,再对图书管理系统顶层数据流图中的处理功能做进一步分解,可分解为读者注册、借书、还书和查询四个子功能,这样就得到了图书管理系统的第0层数据流图
从图书管理系统第0层数据流图中可以看出,在图书管理的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,即构建这些处理的第1层数据流图。
下面的图8-7分别给出了借书、还书、查询子功能的第1层数据流图
2、数据字典
2.1数据项
数据项名称:
借书证号
别名:
卡号
含义说明:
惟一标识一个借书证
类型:
字符型
长度:
20
……
2.2数据结构
(1)名称:
读者类别
含义说明:
定义了一个读者类别的有关信息
组成结构:
类别代码+类别名称+可借阅数量+借阅天数+超期罚款额
(2)名称:
读者
含义说明:
定义了一个读者的有关信息
组成结构:
+性别+所在部门+读者类型
(3)名称:
图书
含义说明:
定义了一本图书的有关信息
组成结构:
图书编号+图书名称+作者++价格
……
2.3数据流
(1)数据流名称:
借书单
含义:
读者借书时填写的单据
来源:
读者
去向:
审核借书
数据流量:
250份/天
组成:
借书证编号+借阅日期+图书编号
(2)数据流名称:
还书单
含义:
读者还书时填写的单据
来源:
读者
去向:
审核还书
数据流量:
250份/天
组成:
借书证编号+还书日期+图书编号
……
2.4数据存储
(1)数据存储名称:
图书信息表
含义说明:
存放图书有关信息
组成结构:
图书+库存数量
说明:
数量用来说明图书在仓库中的存放数
(2)数据存储名称:
读者信息表
含义说明:
存放读者的注册信息
组成结构:
读者+卡号+卡状态+办卡日期
说明:
卡状态是指借书证当前被锁定还是正常使用
(3)数据存储名称:
借书记录
含义说明:
存放读者的借书、还书信息
组成结构:
卡号+书号+借书日期+还书日期
说明:
要求能立即查询并修改
……
2.5处理过程
(1)处理过程名称:
审核借书证
输入:
借书证
输出:
认定合格的借书证
加工逻辑:
根据读者信息表和读者借书证,如果借书证在读者信息表中存在并且没有被锁定,那么借书证是有效的借书证,否则是无效的借书证。
……
二、概念结构设计实例
1.标识图书管理系统中的实体和属性
参照数据字典中对数据存储的描述,可初步确定三个实体的属性为:
读者:
{卡号,,性别,部门,类别、办卡日期,卡状态}
读者类别:
{类别代码,类别名称,可借阅天数、可借阅数量,超期罚款额}
图书:
{书号,书名,作者,价格,,库存数量}
借还记录:
{卡号,书名,借书日期,还书日期}
其中有下划线的属性为实体的码。
2.确定实体间的联系
三、逻辑结构设计实例
1、图书管理系统的关系模型
将在概念结构阶段得到的基本E-R图转换成关系模型,如下表所示:
关系名
属性及码
其他约束条件
读者
借书证号,,性别,部门,类别代码,办证日期,借书证状态
1、类别代码引用读者类别关系中的类别代码;
2、不允许为空;
3、类别代码不允许为空
读者类别
类别代码,类别名称,可借阅数量,可借阅天数,超期罚款额
类别名称不允为空
图书
书号,书名,作者,价格,,库存数量
1、书名不允许为空;
2、库存数量不允许为空
借还
借书证号,书号,借书日期,还书日期
1、借书证号引用读者关系中的借书证号;
2、书号引用图书关系中的书号
2、将关系设计成SQLServer2005下相应的表
reader(读者表)
字段名
字段含义
字段类型
长度
小数
是否为空
列级约束
CardID
借书证号(卡号)
Char
20
NOTNULL
Primarykey
Name
Char
16
NOTNULL
Sex
性别
Bit
NULL
Dept
部门
Char
30
NULL
ClassID
类别代码
Int
NOTNULL
Foreignkeyreferencesdzclass(ClassID)
Bzdate
办证日期
datetime
NULL
Cardstate
借书证状态(卡状态)
bit
NULL
表级约束
dzclass(读者类别表)
字段名
字段含义
字段类型
长度
小数
是否为空
列级约束
ClassID
类别代码
Int
NOTNULL
Primarykey
ClassName
类别名称
Char
16
NOTNULL
PermitDay
可借阅天数
Int
NULL
PermitQty
可借阅数量
Int
NULL
Penalty
超期罚款额
Money
NULL
表级约束
book(图书表)
字段名
字段含义
字段类型
长度
小数
是否为空
列级约束
BookID
书号
Char
20
NOTNULL
Primarykey
BookName
书名
varchar
20
NOTNULL
Editer
作者
Varchar
8
NULL
Price
价格
Money
NULL
Publisher
Varchar
20
NULL
Qty
库存数量
Int
NOTNULL
表级约束
borrow(借还表)
字段名
字段含义
字段类型
长度
小数
是否为空
列级约束
CardID
借书证号
Char
20
NOTNULL
Foreignkeyreferencesreader(CardID)
BookID
书号
char
20
NOTNULL
Foreignkeyreferencesbook(BookID)
Bdate
借书日期
Datetime
NOTNULL
Sdate
还书日期
Datetime
NULL
表级约束
Primarykey(CardID,BookID,Bdate)