Given the following statements: 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) Which one of the following statements is CORRECT?

Given the following statements: 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) Which one of the following statements is CORRECT? Correct Answer BOTH S1 and S2 are FALSE

Concept:

A foreign key in one table should uniquely identify an entire row of another table correctly. Check insertion do not always ensure sufficient-ness for replacing the foreign key.

Explanation:

S1 is false, as in our case foreign key declaration may have cascade delete which is not possible to ensure by just using check insertion.

S2 is false because in above table definition, table S has a foreign key that refers to field a of R. The field a is table S does not uniquely identify a row in table R.

Related Questions