问答题 【说明】
图书管理系统详细记录图书库存情况、读者信息及读者借阅记录(包括借书日期和还书日期)。
新书入库时要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期。同一个书名由于版次、作者等不同有可能存在多“种”图书,其间用“分类目录号”区分。
系统为每一位合法读者编制一个唯一的借书证号,读者需要提供姓名、单位。
一个读者最多可以同时借阅5本图书。借阅图书时,新添借阅记录,并将对应的“归还标记”字段置为“false”,表示“尚未归还”;归还图书时,将相应的“归还标记”字段置为“true”,表示“已经归还”。一本书可能供多位读者借阅,同一本书读者可以重复借阅。
如图9-17所示为该系统的E-R图。
【正确答案】“借阅”联系是“多对多”联系,外键有:借书证号、图书流水号。
“借阅”关系模式不存在主键,因为同一本书读者可以重复借阅,即使加上“借书日期”亦不能唯一标识,读者可以在同一天借阅并归还再借阅,应增加一个属性(如借阅流水号)来标识。
【答案解析】[分析] “一个读者最多可以同时借阅5本图书……一本书可能供多位读者借阅,同一本书读者可以重复借阅”,因此联系“借阅”是多对多联系。
要特别分清“一本图书”与“一种图书”,一本图书是有流水号标识的,一种图书是由分类目录号标识的。对借阅联系,借阅的是具体的某本书,因此外键有:借书证号、图书流水号。
“借阅”关系模式不存在主键,因为同一本书读者可以重复借阅,即使加上“借书日期”亦不能唯一标识,读者可以在同一天借阅并归还再借阅,应增加一个属性(如借阅流水号)来标识。
【正确答案】图书(分类目录号,书名,作者,内容摘要,价格,购书日期),主键:分类目录号
副本(图书流水号,分类目录号),主键:图书流水号
【答案解析】[分析] 由于同一个分类目录号(同一种图书)有多个副本,同一个分类目录号具有相同的很多信息:书名、作者、内容摘要、价格等,同—种书中的不同副本由图书流水号区分。故可分解如下:
图书(分类目录号,书名,作者,内容摘要,价格,购书日期),主键:分类目录号
副本(图书流水号,分类目录号),主键:图书流水号
【正确答案】(1)IN (2) Borrow (3) 归还标记="false" (4) LIKE
【答案解析】[分析] 空(1)是引出于查询的,该类连接词有:IN、NOT IN、EXISTS、NOT EXISTS,EXISTS引出的子查询一般是SELECT *型,故排除;再据语意分析应填IN。
子查询的语意是“查询当前所借阅的图书流水号(即尚未归还的图书)”,因此应从Borrow表中查询,而且归还标记应为false,故空(2)应填Borrow,空(3)应填:归还标记="false"。
对字符串进行的操作通常是使用操作符LIKE的模式匹配,正符合题意,故空(4)应填“LIKE”。