SQL语句来证明A->;a中的B(ABCD)
如何编写SQL语句来证明函数依赖性→ B保持给定的与属性ABCD的关系,知道没有记录具有空值吗?从顶部开始,这不一定是SQL查询。函数依赖的问题是通过适当的方法来解决的,特别是在考虑第二范式和第三范式时。如果您试图发现单个实体中的功能依赖关系,可能需要分解其属性并修改模式 如果您仍然希望动态地证明直接的函数依赖性,请构造一个满足 在给定的表中,一个属性Y被称为对一组属性X(X)具有函数依赖性→ Y) 当且仅当每个X值恰好与一个Y值关联时。例如,在包含属性“Employee ID”和“Employee Date of Birth”的“Employee”表中,函数依赖项{Employee ID}→ {员工出生日期}将保留 通过选择A和B,然后确定其中一个是否相对于另一个重复,可以证明弱函数依赖性 为此,构造查询:SQL语句来证明A->;a中的B(ABCD),sql,Sql,如何编写SQL语句来证明函数依赖性→ B保持给定的与属性ABCD的关系,知道没有记录具有空值吗?从顶部开始,这不一定是SQL查询。函数依赖的问题是通过适当的方法来解决的,特别是在考虑第二范式和第三范式时。如果您试图发现单个实体中的功能依赖关系,可能需要分解其属性并修改模式 如果您仍然希望动态地证明直接的函数依赖性,请构造一个满足 在给定的表中,一个属性Y被称为对一组属性X(X)具有函数依赖性→ Y) 当且仅当每个X值恰好与一个Y值关联时。例如,在包含属性“Employee ID”和“Employ
从ABCD中选择唯一的A、B代码>。唯一集合{A,B}中的重复元素否定了函数依赖关系A→ B当且仅当A在集合内重复。如果A在一个足够大的数据集中相对于B不重复,B可以说是弱功能依赖于A。换句话说,“我们没有反驳功能依赖,我们有一个令人信服的统计论点,它可能是直接或传递的情况。”
更好的做法是确定有关被检查实体的附加信息。如果您可以这样做,请参考我关于上述规范化的原始建议。从r1、r2中选择*,其中r1.A=r2.A和r1.B r2.B
SELECT * from R r1, R r2 where r1.A=r2.A and r1.B <> r2.B
如果FD保持不变,则返回一个空集。您还可以按要检查的函数依赖项进行分组(在本例中为A->B),并计算每个A是否有不同的B
SELECT *
FROM R
GROUP BY A
HAVING COUNT (DISTINCT B) > 1;
如果要检查A->B,C,可以展开查询:
SELECT *
FROM R
GROUP BY A
HAVING COUNT (DISTINCT B) > 1 OR COUNT (DISTINCT C)>1;
“FD”有两种不同的用法,一种用于值,另一种用于变量。FD根据引用的定义在关系(表)中保存值。当FD在每个可能的数据库状态中保持其值(在以前的意义上)时,它保持在关系变量(基表)中。问题只是使用第一个意思。术语“弱FD”没有标准用法。这将检查a->B。如果我想检查AB->C怎么办?