传递依赖能否由确定性属性集生成?以学生表场景为例咨询
学生表属性依赖问题解答
1. 是否属于传递依赖?
是。根据函数依赖中传递依赖的定义:若存在依赖链 X→Y、Y→Z,且Y不是X的子集、Y不是候选键、Z不属于Y,那么X→Z就是传递依赖。
回到你的学生表:
- 主键
StudentId可以确定City和PostalCode,即StudentId → {City, PostalCode} {City, PostalCode}可以确定Neighborhood,即{City, PostalCode} → Neighborhood- 这里
{City, PostalCode}不是候选键(主键是StudentId,该组合无法唯一确定学生),且Neighborhood也不属于{City, PostalCode},完全符合传递依赖的判定条件,因此StudentId → Neighborhood属于传递依赖。
2. 传递依赖能否由属性集生成?
可以。根据函数依赖的传递推理规则:如果已知X→Y和Y→Z,就能推导出X→Z。
你的依赖集合中已经明确给出StudentId → {City, PostalCode}和{City, PostalCode} → Neighborhood,直接套用传递规则就能生成StudentId → Neighborhood这个传递依赖。
内容的提问来源于stack exchange,提问作者frankmdv
相关产品推荐
相关产品推荐

