大门|大门-CS-2014-(第1组)|问题65

鉴于以下陈述:

null
    S1: A foreign key declaration can always 
        be replaced by an equivalent check
        assertion in SQL.
    S2: Given the table R(a,b,c) where a and
        b together form the primary key, the 
        following is a valid table definition.
        CREATE TABLE S (
            a INTEGER,
            d INTEGER,
            e INTEGER,
            PRIMARY KEY (d),
            FOREIGN KEY (a) references R) 

以下哪项陈述是正确的? (A) S1为真,S2为假。 (B) S1和S2都是真的。 (C) S1为假,S2为真。 (D) S1和S2都是假的。 答复: (D) 说明: 检查断言不足以替换 外键 .外键声明可能具有级联删除功能,仅通过检查插入是不可能的。

使用检查条件,我们可以在向子表添加元素时获得与外键相同的效果。但是,当我们从父表中删除一个元素时,引用完整性约束不再有效。因此,检查约束不能替换外键。

所以,我们不能用一张支票来代替它。

    S2: Given the table R(a,b,c) where a and
        b together form the primary key, the
        following is a valid table definition.
        CREATE TABLE S (
            a INTEGER,
            d INTEGER,
            e INTEGER,
            PRIMARY KEY (d),
            FOREIGN KEY (a) references R) 


错: 表中的一个外键应唯一标识另一个外键。在上面的表定义中,表S有一个外键,该外键指向R的字段“a”。表S中的字段“a”不能唯一标识表R中的一行。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享