📜  门|门CS 2008 |第 69 题

📅  最后修改于: 2021-09-27 05:25:05             🧑  作者: Mango

考虑以下图书馆数据库的关系方案:
图书(书名、作者、目录编号、出版商、年份、价格)
集合(标题、作者、Catalog_no)

在以下功能依赖项中:

I. Title Author --> Catalog_no
II. Catalog_no --> Title, Author, Publisher, Year
III. Publisher Title Year --> Price 

假设 {Author, Title} 是这两个方案的关键。下面哪个描述是正确的?
(A) Book 和 Collection 都在 BCNF
(B) Book 和 Collection 都只在 3NF 中
(C) Book 在 2NF 中,Collection 在 3NF 中
(D) Book 和 Collection 都只在 2NF 中答案: (C)
解释:

Book (Title, Author, Catalog_no, Publisher, Year, Price)
Collection (Title, Author, Catalog_no) 

在以下功能依赖项中:

I. Title, Author --> Catalog_no
II. Catalog_no --> Title, Author, Publisher, Year
III. Publisher, Title, Year --> Price  

Assume {Author, Title} is the key for both schemes 
  • “Collection”表在 BCNF 中,因为只有一个函数依赖“Title Author –> Catalog_no”,{Author, Title} 是集合的关键。
  • Book 不在 BCNF 中,因为 Catalog_no 不是键,并且存在函数依赖关系“Catalog_no –> Title Author Publisher Year”。
  • 图书不在 3NF 中,因为非主要属性(出版商年份)传递依赖于键 [标题,作者]。
  • Book 属于 2NF,因为表的每个非主要属性要么依赖于整个候选键 [Title, Author],要么依赖于另一个非主要属性。
    在 table book 中,候选键是 {Title, Author} 和 {Catalog_no}。在表 Book 中,非主属性(不会出现在任何候选键中的属性)是 Publisher、Year 和 Prince

请参考数据库规范化 |范式的详细信息范式。这个问题的测验