数据库原理课程设计/图书借阅管理系统代码与word(sql server)
图
书
借
阅
管
理
系
统
——数据库实践课程设计实验
注:图为word插入自带的,表格为excel表格先制作后复制粘贴到word的,代码为高亮处理后的代码块
目录
第一章 设计背景与需求分析
1.1 设计需求
1.2 设计背景
1.2.1 图书管理的现状
1.2.2 选题的目的、意义
1.3 系统开发环境
第二章 数据库概念结构设计
2.1 实体型结构
2.1.1 实体确定与分析
2.1.2 实体属性图
2.2 实体间的联系
2.2.1 实际条件(题设条件已经省略)
2.2.2 联系
第三章 数据库逻辑结构设计
3.1 E-R图向关系模式转换的原则
3.2 E-R图向关系模型的转化与关系模型的优化
3.2.1 模型优化概念
3.2.2 优化方法
3.2.3 模型优化后的关系模式图
3.3 视图结构
3.3.1 设计需求(1)视图
3.3.2 设计需求(2)视图
3.3.3 设计需求(3)视图
3.3.4 借阅次数前五的书视图
3.3.5 管理员操作记录视图
第四章 数据库物理结构设计
4.1 索引的设计原则
4.2 索引与视图的关系
4.3 索引结构设计
第五章 数据库实施
5.1 建表语句
5.1.1 出版社表
5.1.2 管理员表
5.1.3 读者表
5.1.4 书库表
5.1.5 书表
5.1.6 借阅表
5.1.7 存取表
5.2 建视图语句
5.2.1 视图1
5.2.2 视图2
5.2.3 视图3
5.2.4 借阅次数前五的书视图
5.2.5 管理员操作记录视图
5.3 索引
5.4 触发器
5.4.1 触发器——入库
5.4.2 触发器——借阅数据保护
5.4.3 触发器——借书
5.4.4 触发器——还款
5.4.5 触发器——还书
5.4.6 触发器——续借管理
第六章 测试数据
6.1 完整的测试数据
6.1.1 出版社
6.1.2 管理员
6.1.3 读者
6.1.4 书库
6.1.5 书
6.2 触发器测试
6.2.1 触发器——入库测试
6.2.2 触发器——借阅数据保护
6.2.3 触发器——借书测试
6.2.4 触发器——还款测试
6.2.5 触发器——还书测试
6.2.6 触发器——续借管理测试
6.3 测试视图
6.3.1 视图1测试
6.3.2 视图2测试
6.3.3 视图3测试
6.3.4 借阅次数前五的书测试
6.3.5 管理员操作记录测试
6.4 数据库操作管理
第七章 设计总结
7.1 遇到的主要问题和解决方法
7.2 进一步改进的设想
7.3 课程设计体会
7.4 学习数据库系统原理后的体会
第一章 设计背景与需求分析
1.1 设计需求
(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
1.2 设计背景
1.2.1 图书管理的现状
图书馆作为一种资源的集散地,图书和用户在借阅资料繁多,包含很多的信息管理,现在有很多的图书馆都是初步的开始使用,甚至尚未使用计算机进行资源管理,没有建立相对应的图书管理数据系统,而是使用人工计算,抄写进行,数据处理工作量大,容易出错和数据丢失。
1.2.2 选题的目的、意义
图书管理系统数据库有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好,成本低等等。这些优点能极大提高图书管理的效率,因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统是十分必要的。
1.3 系统开发环境
1、系统:Windows10
2、开发平台:Microsoft SQL Server 2019
第二章 数据库概念结构设计
2.1 实体型结构
2.1.1 实体确定与分析
我们对题目进行了一段时间的分析,并在讨论后得出,此系统应该具备以下实体及属性。
实体与其属性对应如下:
读者:借书证号、姓名、性别、年龄、借书人单位
书:书号、书名、标价(损坏或丢失书籍时的赔偿价格)、作者、借阅次数
出版社:电报编号、出版社名字、地址、邮编、电话
书库:书库号、书籍的品种(即书库的分类大区)
管理员:管理员编号、姓名、性别
2.1.2 实体属性图
读者实体型
书实体型
出版社实体型
书库实体型
管理员实体型
2.2 实体间的联系
2.2.1 实际条件(题设条件已经省略)
我们假定:
一个管理员只管一个书库;每个书库位置分开,且读者借阅书籍时只能在书籍所属的书库登记;一个读者一次只能借阅一本书,即要归还前一本书才能借后一本书;一般入库书籍是5本,特殊情况更新存取表;
2.2.2 联系
1.一个出版社对应多本书,一个本书对应一个出版社,出版社和书是一对多联系。
2.读者、管理员和书三者之间是多对多的关系,即一个读者对应多本书,一个管理员对应不同书的读者,一本书对应多个读者。
3.一个书库对应多本书,一本书对应一个书库,书库和书之间是一对多联系。
4.一个管理员对应一个书库,一个书库对应一个管理员,管理员和书库之间是一对一联系。
2.3 E-R图
第三章 数据库逻辑结构设计
3.1 E-R图向关系模式转换的原则
1. 一个实体型转换为一个关系模式。
关系的属性:实体型的属性
关系的码:实体型的码
2.一个1:1联系可以转换为一个独立的关系模式,也可以与任何一端对应的关系模式合并。
3.一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式 合并。
4.一个m:n联系转换为一个关系模式。
5.三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
6.具有相同码的关系模式可合并。
目的:减少系统中关系个数
7.同一实体集的实体之间的联系即自联系,也可以按1:1,1:n和m:n三种情况分别处理。
3.2 E-R图向关系模型的转化与关系模型的优化
3.2.1 模型优化概念
数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。
3.2.2 优化方法
1.确定数据依赖。
2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3.按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
4.根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。
5.对关系模式进行必要分解,提高数据操作效率和存储空间利用率。常用的两种分解方法是水平分解和垂直分解。
3.2.3 模型优化后的关系模式图
3.2.3.1 出版社实体所对应的关系模式
列名(出版社) | 数据类型 | 长度 | 主键 | 非空 | 备注 |
电报编号 | char | 10 | Yes | Yes | |
出版社名称 | varchar | 20 | Yes | ||
地址 | varchar | 20 | Yes | ||
电话 | char | 20 | Yes | ||
邮编 | char | 20 | Yes |
3.2.3.2 管理员实体所对应的关系模式
列名(管理员) | 数据类型 | 长度 | 主键 | 非空 | 备注 |
管理员编号 | int |