数据库设计实例分析
一、需求分析实例
现要开发高校图书管理系统。经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能: (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、将关系设计成SQL Server 2005下相应的表
reader(读者表)
字段名 CardID Name Sex Dept ClassID 字段含义 字段类型 借书证号Char (卡号) 姓名 性别 部门 Char Bit Char 长度 20 16 30 小数 是否为空 列级约束 NOT NULL NOT NULL NULL NULL NOT NULL Primarykey Foreign key references 类别代码 Int ..........
. . .
dzclass(ClassID) Bzdate Cardstate 日期 datetime 借书证状态(卡状态) bit NULL NULL 表级约束 dzclass(读者类别表)
字段名 ClassID PermitDay PermitQty Penalty 表级约束 字段含义 字段类型 类别代码 Int 可借阅天数 可借阅数量 超期罚款额 Int Int Money 长度 16 小数 是否为空 列级约束 NOT NULL Primarykey NOT NULL NULL NULL NULL ClassName 类别名称 Char book(图书表)
字段名 BookID BookName Editer Price Publisher Qty 表级约束 字段含义 字段类型 书号 书名 作者 价格 出版社 Char varchar Varchar Money Varchar 长度 20 20 8 20 小数 是否为空 NOT NULL NOT NULL NULL NULL NULL NOT NULL 列级约束 Primarykey 库存数量 Int borrow(借还表)
字段名 CardID 字段含义 借书证号 书号 字段类型 Char 长度 20 小数 是否为空 NOT NULL NOT NULL NOT 列级约束 Foreign key references reader(CardID) Foreign key references book(BookID) BookID char 20 Bdate 借书日Datetime ..........
. . .
期 Sdate 表级约束
还书日期 Datetime NULL NULL Primarykey(CardID,BookID,Bdate) 欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!让我们共同学习共同进步!学无止境.更上一层楼。 ..........
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务