图书管理系统数据库设计_001.doc
- 文档编号:235659
- 上传时间:2022-10-07
- 格式:DOC
- 页数:7
- 大小:57.50KB
图书管理系统数据库设计_001.doc
《图书管理系统数据库设计_001.doc》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计_001.doc(7页珍藏版)》请在冰豆网上搜索。
数据库设计题
某高校的图书管理系统需求描述如下:
l该系统有图书管理员和读者两类用户。
l实现按图书类别、ISBN、图书名称、关键词(每种图书最多可同时录入4个关键词)、出版社或作者(每种图书最多可同时录入3个作者)等手段检索图书信息;实现图书的借出和归还管理,并可对图书的借用情况进行各种查询和统计。
l图书管理员负责添加、删除和更新图书信息。
所有图书实行分类管理,每一种图书属于且仅属于某一类;每一种图书由ISBN唯一标识;每一种图书可能库存多册。
l图书管理员负责添加、删除和更新读者信息。
读者分教师、职工、研究生和本科生等几种类别,对于不同类别的读者可以同时借阅图书的册数不一样,图书的借期也不一样。
l读者可以按规定在一定期限内借阅一定数量的图书,同一种图书仅允许在借1册,只有图书有库存时才能借阅。
读者可以预订目前借不到的图书。
一旦预订的图书被归还或购买入库,系统立即通知预订者。
l读者逾期不归还图书的,每本每天按一定的标准(如0.1元/本·天)收取罚金;丢失图书的可以买相同版次的新书归还(图书管理员对归还的新书按丢失图书的信息编码入库)或按原价3倍的金额进行赔偿(图书管理员删除丢失图书的库存信息)。
请完成:
1.分别画出借书、还书业务的处理流程。
2.设计该图书管理系统的E-R模型,E-R图重点是描述各实体集之间的联系,对于E-R图中的每一个实体集请通过数据字典定义它的相关属性。
3.将E-R模型转化为关系模式,请标出每一个关系中的主码和外码。
4.定义一个视图Utilization,它实现按年、ISBN汇总统计图书借阅情况,视图中包含年份、ISBN、图书名称、库存册数、借阅次数、平均每册借阅次数等属性。
1.
N
Y
N
Y
N
N
Y
结束
开始
是否继续借书?
读者选择要借的书
读者是否达到借书最大量?
读者是否已在借该书?
该书是否还有
库存?
办理借书手续
更改相关信息
是否预定?
办理预定手续
增加预定信息
N
Y
Y
图1借书流程
Y
Y
Y
Y
N
N
N
N
办理丢失图书的赔偿手续,并删除丢失图书的库存信息
是否继续归还?
结束
办理丢失图书所归还新书的入库手续
办理归还手续
修改图书库存信息
办理罚款手续
开始
选择要归还的图书
是否逾期?
是否丢失?
是否买新书赔偿?
图2还书流程
2.参考解法一
类似于实体集“借阅归还记录”和联系集“借阅图书”、“读者借阅”可画出实体集“预订记录”和联系集“预订图书”、“读者预订”。
图书
读者
借阅归还记录单
借阅图书
读者借阅
办理借书
管理员
处罚单
处罚
图书分类表
分类
分类
读者分类表
办理还书
写作
作者表
设置
关键词表
3.
图书分类号:
Bookclass(classNo,className)
图书:
Book(ISBN,classNo,bookName,authorNo,keywordNo,publishingName,price,publishingDate,shopDate,shopNum,retainedNum)
作者:
Author(authorNo,authorName,sex,workunit)
图书作者:
BookAuthor(authorNo,ISBN)
关键词:
Keyword(keywordNo,keyword)
图书关键词:
BookKeyword(keywordNo,ISBN)
借阅归还记录:
Borrow(borrowNo,readerNo,ISBN,borrowDate,shouldDate,returnDate,borrowEmployeeNo,returnEmployeeNo)
读者:
Reader(readerNo,readerName,sex,identitycard,workunit,readerClassNo)
读者分类:
ReaderClass(readerClassNo,readerClass,borrowNumLimit,borrowTimeLimit)
——readerClass的取值有:
”教师”、”职工”、”本科生”、”研究生”等
图书管理员:
Employee(employeeNo,employeeName,sex,salary)
处罚单:
Ticket(ticketNo,ticketClass,ticketAmount,borrowNo,ticketEmployeeNo)
——ticketClass的取值有:
”逾期归还”、”丢失赔偿”、”丢失赔书”等
2.参考解法二
一个借书单可以同时借阅多本不同的书。
图书分类、读者分类、作者、关键词等同上。
读者
借书单
预订图书
读者预定
管理员
还书
读者借书
借阅图书
处罚单
处罚
写作
作者表
设置
关键词表
借书
图书分类表
读者分类表
分类
预订单
分类
图书
3.
图书分类号:
Bookclass(classNo,className)
图书:
Book(ISBN,classNo,bookName,authorNo,keywordNo,publishingName,price,publishingDate,shopDate,shopNum,retainedNum)
作者:
Author(authorNo,authorName,sex,workunit)
图书作者:
BookAuthor(ISBN,authorNo)
关键词:
Keyword(keywordNo,keyword)
图书关键词:
BookKeyword(ISBN,keywordNo)
借书单:
Borrow(borrowNo,readerNo,borrowDate,shouldDate,borrowEmployeeNo)
借阅归还明细:
BorrowDetail(borrowNo,ISBN,returnDate,returnEmployeeNo)
读者:
Reader(readerNo,readerName,sex,identitycard,workunit,readerClassNo)
读者分类:
ReaderClass(readerClassNo,readerClass,borrowNumLimit,borrowTimeLimit)
——readerClass的取值有:
”教师”、”职工”、”本科生”、”研究生”等
图书管理员:
Employee(employeeNo,employeeName,sex,salary)
处罚单:
Ticket(ticketNo,ticketClass,ticketAmount,borrowNo,ISBN,ticketEmployeeNo)
——ticketClass的取值有:
”逾期归还”、”丢失赔偿”、”丢失赔书”等
4.
针对参照解法一的E-R模型:
CREATEVIEWUtilization
As
SELECTyear(borrowDate)ASyear,a.ISBN,bookName,shopNum,count(*)ASborrowNum,borrowNum/shopNumASavgNum
FROMBorrowASa,BookASb
WHEREa.ISBN=b.ISBN
GROUPBYyear(borrowDate),a.ISBN,bookName,shopNum
或(更好!
)
CREATEVIEWUtilization
As
SELECTyear,b.ISBN,bookName,shopNum,borrowNum,borrowNum/shopNumASavgNum
FROMBookASb,
(SELECTyear(borrowDate)ASyear,ISBN,count(*)ASborrowNum
FROMBorrow
GROUPBYyear(borrowDate),ISBN)ASa
WHEREa.ISBN=b.ISBN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 数据库 设计 _001