假设关系数据库具有employee
和company
实体且workFor
关系,例如
employee
( ssn ,first_name,last_name),其中 ssn 是关键。
company
( company_name ,位置),其中 company_name 是关键。
workFor
( ssn , company_name ),其中 ssn 和 company_name 是外键。
假设数据库很庞大,我们需要经常查询公司的员工数量。我们不是每次都请求查询,而是决定在关系模式的某处添加number_of_employ
属性以供性能考虑。我的问题是,如果我们将number_of_employee
添加到company(company_name, location, number_of_employee)
关系中,它是否仍然满足Boyce-Codd普通形式(BCNF)?这是一个很好的设计吗?
直观地说,我认为它仍然不能满足BCNF,因为单独的company_name
无法确定这个属性(而且它不再是关键)。这个"聚合"是否有任何术语? number_of_employ
的属性,它不是由特定值确定,而是由整个workFor
关系确定的?如果我必须在我的模式中的某处添加此属性,那将是一个很好的模式设计?