关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。
时间: 2023-12-15 20:05:03 浏览: 28
根据函数依赖的推导规则,我们可以得到以下的非平凡函数依赖:
- A → B
- C → D
因此,候选键必须包含U中所有属性,否则无法推导出上述函数依赖中的某些依赖关系。
假设候选键为 {A, C},那么根据推导规则,我们可以得到以下函数依赖:
- A → B
- C → D
因此,该候选键能够推导出所有的非平凡函数依赖。
另一方面,如果我们尝试去掉候选键中的任何一个属性,例如 A,那么我们就无法推导出 A → B 中的 B 属性,因此 {C}、{D} 或 {B} 都不能成为候选键。
综上所述,此关系的候选键为 {A, C}。
相关问题
R< U, F >, U = (A, B, C, G, H, I), F = {A->B, A->C, CG->H, CG->I, B->H}, A-> H? CG -> HI? AG -> I?
根据关系模型R< U, F >,其中U为属性集合,F为函数依赖集合。因此,题目中给出的U和F分别表示有6个属性(A、B、C、G、H和I)和5个函数依赖(A->B, A->C, CG->H, CG->I, B->H)。
对于问题:
1. A-> H?
根据给定的函数依赖,无法推导出A->H。因此,A不决定H,不能得出A->H。
2. CG -> HI?
根据给定的函数依赖,CG决定了H和I,因此可以得出CG->HI。
3. AG -> I?
AG并不是一个属性,因此无法得出AG->I。
若定义pf为指向float类型变量f的指针,下列语句中正确的是( ) A. float *pf=&f, f; B. float f, *pf=&f; C. float f, *pf=0.0; D. float f, *pf=f;
正确的语句是B. `float f, *pf=&f;` 这条语句定义了一个float类型的变量f和一个指向float类型变量f的指针pf,并将pf初始化为指向f的地址。选项A中的语句中f未定义就被赋值给指针pf,选项C中的语句中0.0不是指针类型,不能赋值给指针pf,选项D中的语句中指针pf未初始化就被赋值给变量f,不符合语法规则。