现有某图书销售数据库,其关系表结构如下:
图书表(图书编号,图书名称,出版社编号,出版社名称,出版时间,出版数量,版次)
图书销售表(罔书编号,销售日期,销售数量,书店编号,读者编号,读者姓名,读者电话)
书店表(书店编号,联系电话,所在城市编号,城市名称)
Ⅰ.系统所涉及的数据存在如下约束:
出版社可以出版多本图书,一本图书只能在一个出版社出版,在该系统记录的图书出版信息包括出版时间、版次及出版数量信息。
Ⅱ.一个书店可以出售多本图书给多个读者.每位读者可以从多个书店购买多本图书,一本图书可以通过多个书店出售给读者,书店把图书出售给读者后会在系统中记录售书日期和售书数量信息。
Ⅲ.每个书店只能位于一个城市,一个城市可以有多个书店。
③给出该数据库符合3NF要求的全部关系模式,并指出关系模式中的全部主码和外码。
参考答案:③出版社表(出版社编号,出版社名称)主码:出版社编号
出版表(出版社编号,图书编号,出版时间,出版数量,版次)主码:(出版社编号,图书编号)
图书表(图书编号,图书名称)主码;图书编号
书店表(书店编号,联系电话,所在城市编号)主码:书店编号
城市表(所在城市编号,城市名称)主码:所在城市编号
读者表(读者编号,读者姓名.读者电话)主码:读者编号
图书销售表(图书编号,读者编号,销售日期,销售数量,书店编号)主码:(图书编号,读者编号)
解析: 本题考查的主要是数据库设计优化,关系数据模型转换及规范化处理。一本图书只能在一个出版社出版,即出版社与图书是一对多的关系,一个书店可以出售多本图书给多个读者,每位读者可以从多个书店购买多本图书,一本图书可通过多个书店出售读者,即有图书、读者与书店都是多对多的关系,它们之间通过出售实体来联系。图书销售表中存在太多的冗余,应该化为更高的范式来消除不必要的冗余。