Which key uniquely identifies each record in a table and can never contain a null value?
- A.Foreign key
- B.Alternate key
- C.Primary key
- D.Super key
Correct answer
C. Primary key
Explanation
The correct answer is C, primary key. The designer picks one candidate key as the primary key of a table, and the database then enforces two rules on it: its value must be different in every row, and it can never be left null, since a missing value would make a row impossible to identify. Option A is wrong because a foreign key holds the primary key values of another table to create a link, and it may be null when no related row exists. Option B is wrong because an alternate key is simply a candidate key that was not chosen as the primary key, so it is unique but is not the identifying key of the table. Option D is wrong because a super key is any set of attributes that identifies a row, and it may carry extra attributes that are not needed for uniqueness.
Read the full article: Databases and DBMS: Models, Keys, SQL and Normalisation
Practice Questions
View allWhich of the following is the oldest database model?
- A.Hierarchical
- B.Object oriented
- C.Deductive
- D.Relational
Show answer
Correct answer: A. Hierarchical
Explanation
The correct answer is A, hierarchical. The hierarchical model is the first data model used in commercial database software; IBM built its Information Management System on it in the 1960s for the Apollo programme. It arranges records as a tree in which every child record has exactly one parent, so data is reached by moving down a path from the root. Option B is wrong because the object oriented model, which stores objects together with their methods, is the newest of the four and belongs to the late 1980s. Option C is wrong because the deductive model, which adds logical rules to stored facts, came even later and remains mostly a research model. Option D is wrong because the relational model was proposed by Edgar Frank Codd in 1970, after the hierarchical and network models were already in use, though it later replaced both in practice.
Who proposed the relational model of databases?
- A.Charles Babbage
- B.Edgar Frank Codd
- C.Dennis Ritchie
- D.James Gosling
Show answer
Correct answer: B. Edgar Frank Codd
Explanation
The correct answer is B, Edgar Frank Codd. Codd, a British computer scientist working at IBM, set out the relational model in a paper published in 1970, proposing that all data be held in simple two-dimensional tables and joined by matching values rather than by fixed pointers. Every relational database, from Oracle to MySQL, rests on that idea, and he is therefore called the father of the relational database. Option A is wrong because Charles Babbage designed the Difference Engine and the Analytical Engine in the nineteenth century and is called the father of the computer. Option C is wrong because Dennis Ritchie developed the C language and, with Ken Thompson, the Unix operating system. Option D is wrong because James Gosling created the Java programming language at Sun Microsystems, which has nothing to do with the relational model.
In relational database terminology, a row of a table is called a:
- A.Attribute
- B.Domain
- C.Tuple
- D.Relation
Show answer
Correct answer: C. Tuple
Explanation
The correct answer is C, tuple. In the vocabulary of the relational model a table is a relation, and one complete horizontal entry of that table, such as all the details of a single student, is a tuple; the ordinary words for it are row and record. Option A is wrong because an attribute is a column of the table, that is one property such as roll number or date of birth, and is counted by the degree of the relation. Option B is wrong because a domain is the set of values an attribute is allowed to take, for example the whole numbers one to one hundred for a marks column. Option D is wrong because the relation is the entire table, not one of its rows. Keep the pairing firm: relation is the table, tuple the row, attribute the column, and cardinality counts the tuples.
Which of the following is a Data Definition Language (DDL) command in SQL?
- A.INSERT
- B.CREATE
- C.SELECT
- D.UPDATE
Show answer
Correct answer: B. CREATE
Explanation
The correct answer is B, CREATE. The Data Definition Language deals with the structure of the database rather than with the data inside it, and CREATE is its basic command, used to build a table, a view or the database itself; ALTER, DROP, TRUNCATE and RENAME belong to the same group. Option A is wrong because INSERT adds new rows to an existing table and is therefore a Data Manipulation Language command. Option C is wrong because SELECT reads rows and returns a result set, which is again manipulation of data, not definition of structure; some books place it in a separate Data Query Language. Option D is wrong because UPDATE changes values already stored in rows and is also DML. Remember the split by what changes: structure means DDL, contents mean DML, rights mean DCL with GRANT and REVOKE.
Which SQL command removes all the rows of a table but keeps the table structure, and is classified as a DDL command?
- A.DELETE
- B.DROP
- C.TRUNCATE
- D.ERASE
Show answer
Correct answer: C. TRUNCATE
Explanation
The correct answer is C, TRUNCATE. TRUNCATE empties a table in one operation, leaving the columns, data types and constraints in place so that the table can be filled again at once; because it changes the object rather than selected rows it is grouped with the Data Definition Language and it is much faster than deleting row by row. Option A is wrong because DELETE is a Data Manipulation Language command that removes only the rows a WHERE clause selects and can be undone with ROLLBACK before the transaction is committed. Option B is wrong because DROP destroys the table itself, so the structure disappears along with the data. Option D is wrong because ERASE is not an SQL command at all; it is a distractor built from ordinary English. The DELETE against TRUNCATE difference is a favourite one-mark question.