《图书管理系统》数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库设计题
某高校的图书管理系统需求描述如下:
●该系统有图书管理员和读者两类用户。

●实现按图书类别、ISBN、图书名称、关键词(每种图书最多可同时录入4
个关键词)、出版社或作者(每种图书最多可同时录入3个作者)等手段检索图书信息;实现图书的借出和归还管理,并可对图书的借用情况进行各种查询和统计。

●图书管理员负责添加、删除和更新图书信息。

所有图书实行分类管理,每
一种图书属于且仅属于某一类;每一种图书由ISBN唯一标识;每一种图书可能库存多册。

●图书管理员负责添加、删除和更新读者信息。

读者分教师、职工、研究生
和本科生等几种类别,对于不同类别的读者可以同时借阅图书的册数不一样,图书的借期也不一样。

●读者可以按规定在一定期限内借阅一定数量的图书,同一种图书仅允许在
借1册,只有图书有库存时才能借阅。

读者可以预订目前借不到的图书。

一旦预订的图书被归还或购买入库,系统立即通知预订者。

●读者逾期不归还图书的,每本每天按一定的标准(如0.1元/本·天)收
取罚金;丢失图书的可以买相同版次的新书归还(图书管理员对归还的新书按丢失图书的信息编码入库)或按原价3倍的金额进行赔偿(图书管理员删除丢失图书的库存信息)。

请完成:
1.分别画出借书、还书业务的处理流程。

2.设计该图书管理系统的E-R模型,E-R图重点是描述各实体集之间的联系,对于E-R图中的每一个实体集请通过数据字典定义它的相关属性。

3.将E-R模型转化为关系模式,请标出每一个关系中的主码和外码。

4.定义一个视图Utilization,它实现按年、ISBN汇总统计图书借阅情况,视图中包含年份、ISBN、图书名称、库存册数、借阅次数、平均每册借阅次数等属性。

1.
图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的取值有:”逾期归还”、”丢失赔偿”、”丢失赔书”等
一个借书单可以同时借阅多本不同的书。

图书分类、读者分类、作者、关键词等同上。

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模型:
CREATE VIEW Utilization
As
SELECT year(borrowDate) AS year, a.ISBN, bookName, shopNum, count(*) AS borrowNum, borrowNum/shopNum AS avgNum
FROM Borrow AS a, Book AS b
WHERE a.ISBN=b.ISBN
GROUP BY year(borrowDate), a.ISBN, bookName, shopNum
或(更好!)
CREATE VIEW Utilization
As
SELECT year, b.ISBN, bookName, shopNum, borrowNum, borrowNum/shopNum AS avgNum FROM Book AS b,
( SELECT year(borrowDate) AS year, ISBN, count(*) AS borrowNum
FROM Borrow
GROUP BY year(borrowDate), ISBN ) AS a
WHERE a.ISBN=b.ISBN。

相关文档
最新文档