图书管理系统数据库实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书名称
Байду номын сангаас非空
BAuthor
作者
BTypeID
图书类型编号 非空,BookType表BTID外键
BPubsName 出版社
BLastNumbers 库存数量
非空
问题分析-2
表名
字段名称
EID EName EAge ESex EAddress EDate EPhone
EmployeesInfo(员工信息)
存储过程生成
精选课件
12
问题分析-6
创建视图完成查询借阅信息
1. 图书馆的管理人员和用户经常查询借阅信息,因此需要创建视 图,要求按借阅时间降序
2. 查询视图,显示所有的借阅信息(查询结果如下图)
精选课件
13
问题分析-7
图书馆的接待室有一个触摸查询屏,用户可以通过会员编 号查询本人的借阅信息。
1. 创建存储过程完成上述功能,要求在存储过程中使用上题中创建 的视图
难点分析-1
创IN建SE数RT据IN库T表O d(图bo书.Bo信ok息Ty表pe,(B图TN书am类e)型表,雇员信息表, 会S…员EL信EC息T '表计,算借机阅类信' U息NI表ON)
SELECT '小说‘ INSERT INTO dbo.BookInfo(BName,BAuthor,BTypeID,BPubsName,BLastNum bers) SELECT 'ASP.NET AJAX','陈黎夫',1,'人民邮电出版社',5 UNION … SELECT 'CSS禅意花园','陈黎夫',1,'人民邮电出版社',2 INSERT INTO dbo.EmployeesInfo(EName,EAge,ESex,EAddress,EDate,EPhon e) SELECT '张丽娜',23,'女','新海花园-2-3','2007-9-1','0335-3564768' UNION … SELECT '李奇',21,'男','迎宾路号5-5-5','2009-12-10','0335-7865456'
说明
员工编号
自动编号(标识列),从1开始,主键
员工姓名 非空
员工年龄 年龄在1-100之间
员工性别 男或女
家庭地址
雇用日期 非空
电话
必填
问题分析-2
表名
字段名称
MID MName MPID MAge MSex MAddress MPhone
MemberInfo(会员信息)
说明
会员编号 会员姓名
主键, 会员号规则年四位,月二位,日二 位,随机数四位,例20091023XXXX
图书管理系统数据库实现
精选课件
1
讲解和分析需求
• 讲解和分析需求(20分钟) • 学员首先阅读项目案例需求和实现步
骤 • 老师讲解需求,学生理解需求并分析
精选课件
2
图书馆管理系统数据库实现:
问题描述
1. 创建数据库
2. 创建数据库表(图书信息表,图书类型表,雇员信息表,会员信
息表,借阅信息表)添加表中的约束及关系
问题分析-2
创建数据库表(图书信息表,图书类型表,雇员信息表,会员 信息表,借阅信息表)
表名
字段名称
BTID int BTName
BookType
说明
图书类型 自动编号(标识列),从1开
编号
始,主键
图书名称 必填
问题分析-2
表名
字段名称
BID
说明 图书编号
BookInfo
主键,标识列,从1开始
BName
非空
身份证号 非空,身份证长度为15或18位
年龄
年龄在1-100之间
性别
地址
电话
非空
问题分析-2
表名
字段名称
LID MID BID LStartDate LEndDate LFlag EID LMark
LendInfo(借阅信息表)
说明
借阅编号 会员编号 图书编号 借阅时间
自动编号(标识列),从1开始,主键 非空, MemberInfo表外键 非空,BookInfo表外键 非空
• 创建存储过程自动生成随机会员号,并返回 • 会员号规则年四位,月二位,日二位,随机数四位(
YYYYMMDDXXXX)
精选课件
11
问题分析-5
模拟办理会员、借书
分析: 1. 调用存储过程生成随机卡号,需要判断生成的随机卡号是否已经存
在如果存使用while重新生成 2. 办理会员,即向MemberInfo表中插入一行记录,会员号通过上面的
2. 当用户输入借阅时间时按该借阅时间查询 3. 如果用户没有输入借阅时间时则该会员的所有部信息查询
精选课件
14
问题分析-8
创建触发器完成借阅时自动更新图书数量
分析: 1. 在图书借阅表中插入一条记录 2. 同时应该更新库存数量=库存数量-1 3. 该过程可以通过INSERT触发器来完成
问题分析-9
创建触发器完成还书时自动更新图书数量
分析: 1. 在更新图书借阅表还书时间及是否归还字段 2. 同时应该更新库存数量=库存数量+1 3. 该过程可以通过UPDATE触发器来完成
问题分析-10
模拟借书、还书
分析: 1. 借书:向LendInfo表中插入数据 2. 还书:更新LendInfo归还时间和是否归还字段
难点分析-2
创SE建TS存E@Ty储e@amr过o=nD程tAhT=E完DPAA成TRETP自(AyRy动T,(生mGmE,成TDGA卡ETTE号D(A)T)E())
SET @day=DATEPART(dd, GETDATE()) SELECT @r=RAND(DATEPART(s, GETDATE()) * 100000+ DATEPART(m, GETDATE()) * 1000+ DATEPART(ms, GETDATE())) --产生.xxxx的数字,我们需要小数点后的四位数字 SET @tempStr=convert(NVARCHAR(10),@r)
归还时间 是否归还
非空,归还时间必须晚于借阅时间 非空
员工编号 备注
非空, EmployeesInfo表外键
问题分析-3
模拟添加新书类别、新书入库、新员工入职
• 添加新书类别,即向图书类型表中插入数据 • 新书入库即向图书表中插入数据 • 新员工入职即向员工表中插入数据
问题分析-4
创建存储过程完成自动生成卡号
3. 模拟添加新书类别、新书入库、新员工入职
4. 创建存储过程完成自动生成卡号
5. 模拟办理会员、借书
6. 创建视图完成查询借阅信息、使用视图查询借阅信息
7. 创建触发器完成借阅时自动更新图书数量
8. 创建触发器完成还书时自动更新图书数量
9. 模拟借书、还书
精选课件
3
问题分析-1
创建数据库: 创建数据库名为BookManager 路径:D:\Project