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.