题目:
一.单项选择
1.
With respect to a relational table, what is a key?
(a) A minimal subset of columns that uniquely identifies a row in the table
(b) The ID and password needed to access the table
(c) The subset of all the rows and columns in the table that are visible to all users in the database system
(d) The one column that uniquely identifies a row in the table
2.
Which of the following is true about the number of primary keys and alternate keys with respect to a table?
(a) There can be many primary keys, but only one alternate key.
(b) There can be only one primary key, but many alternate keys.
(c) There can be only one primary key and only one alternate key.
(d) There can be many primary keys and many alternate keys.
3.
An insertion operation will _____ if the insertion violates the uniqueness property of a key.
(a) succeed with warning
(b) crash the system
(c) fail
(d) succeed without warning
4.
An insertion operation will _____ if the inserted primary key has a NULL value.
(a) succeed with warning
(b) succeed without warning
(c) fail
(d) crash the system
5.
For two tables to be union compatible, corresponding columns from each table should have which of the following?
(a) different domains
(b) different names
(c) the same domain
(d) the same name
6.
In the relational model, which of the following is true about the data type of a column?
(a) It need not be atomic and it cannot be an abstract data type.
(b) It must be atomic and it cannot be an abstract data type.
(c) It need not be atomic and it can be an abstract data type.
(d) It must be atomic and it can be an abstract data type.
7.
What is an alternate key?
(a) Any key that is not a primary key
(b) The key to use when the primary key does not work
(c) A key that was added to the table after the table was designed
(d) A key that will become the primary key when the primary key is deleted
8.
What does a projection operation do?
(a) It extends the number of columns in a table.
(b) It selects rows from a table.
(c) It extends the number of rows in a table.
(d) It selects columns from a table.
9.
The result of a set difference operation r - s will be
(a) tuples in r after deducting their values by the corresponding values in the tuples in s
(b) tuples in s after deducting their values by the corresponding values in the tuples in r
(c) those tuples that are in s but not in r
(d) those tuples that are in r but not in s
10.
Which of the following is true about primary keys and foreign keys holding NULL value?
(a) A primary key can hold a NULL value and a foreign key cannot hold a NULL value
(b) A primary key cannot hold a NULL value and a foreign key cannot hold a NULL value
(c) A primary key can hold a NULL value and a foreign key can hold a NULL value
(d) A primary key cannot hold a NULL value and a foreign key can hold a NULL value
11.
In contrast to _____ tables, a view refers to _____.
(a) base, a virtual table
(b) empty, non-empty tables
(c) non-empty, empty tables
(d) virtual, base tables
12.
When removing a table from the schema, using the CASCADE option would
(a) remove the table and all references to it
(b) recursively remove the table and all other tables that the removed table refers to
(c) remove the table and all other tables that the specified table refers to.
(d) remove the table if there are no references to it
13.
In a transaction, COMMIT specifies that
(a) all updates (including inserts, deletes, modifications) of a transaction are about to be made permanent in the database
(b) all updates (including inserts, deletes, modifications) of a transaction are to be made permanent in the database
(c) only the inserts and deletes of a transaction are to be made permanent in the database
(d) only the inserts and deletes of a transaction are about to be made permanent in the database
14.
Which of the following is true about the physical storage of tables defined by views?
(a) Extra physical storage is needed for storing the tables defined by views, only if views define additional non-existing columns.
(b) There is no extra physical storage needed to store tables that a view defines.
(c) Extra physical storage is always needed to store tables that a view defines.
(d) Extra physical storage is needed to store tables that a view defines, only when rows are inserted into the view.
15.
Which of the following SQL commands can be used to change, add, or drop column definitions from a table?
(a) MODIFY TABLE
(b) UPDATE TABLE
(c) CHANGE TABLE
(d) ALTER TABLE
16.
Which of the following SQL commands can be used to destroy and remove a table from the schema?
(a) DROP TABLE
(b) DESTROY TABLE
(c) REMOVE TABLE
(d) DELETE TABLE
17.
In SQL, which of the following operators are used to check for set membership in a SELECT statement?
(a) MEMBER and NOT MEMBER
(b) IN and NOT IN
(c) SUBSET and NOT SUBSET
(d) COMPONENT and NOT COMPONENT
18.
In SQL, the results of a _____ statement can be used to process a _____ statement.
(a) INSERT, SELECT
(b) SELECT, INSERT
(c) INSERT, DELETE
(d) DELETE, INSERT
19.
In a transaction, a ROLLBACK is used to
(a) roll all the updates (including inserts, deletes, modifications) of an aborted transaction into the database
(b) roll only the inserts and deletes of an aborted transaction into the database
(c) discard all the updates (including inserts, deletes, modifications) of a transaction from the database
(d) discard only the inserts and updates of a transaction from the database
20.
When a string whose length is strictly less than n is entered as the value of a field whose SQL data type is CHAR(n), the system responds by
(a) padding the end of the string with spaces to length n before storing it
(b) padding the end of the string with NULL characters to length n before storing it
(c) re-prompting for the entry of a string whose length is exactly n
(d) storing the string as is
© Copyright 2004 iCarnegie, Inc. All rights reserved.
二.问答类
Database Systems PracticalAnswer the following questions:
1. Let the following relational tables be given: R = (A, B, C) and S = (D, E, F) where A, B, C, D, E, and F are the attributes (columns). Write the SQL statements that will express each of the queries given below:
1. ΠA(R)
2. σB = 13(R)
3. ΠA,B(R
C = D S)
2. Given relation r as:
ename
project
dept
Kasper
Forecast
Accounting
Kasper
Audit
Accounting
Kasper
Spreadsheet
Admin
Mohan
Forecast
Accounting
Mohan
Audit
Admin
Mohan
Spreadsheet
Admin
Lin
Forecast
Admin
Lin
Audit
Admin
Lin
Spreadsheet
Admin
3. Given relation s as:
ename
dept
Kasper
Accounting
Mohan
Admin
Lin
Admin
4. Provide the results of the following operations. If an operation cannot be performed, state the reasons. Do not write the equivalent SQL statements.
1. σdept = 'Admin' AND project <> 'Audit'(r)
2. r U s
3. Πdept(r) - Πdept(s)
5. Consider the following Mail Order database:
CUSTOMER
CId
Name
Address
Zip
11
George
23 Main St.
15218
22
Barbara
3 Walnut St.
15217
33
Waquim
82 Straton Av.
15280
6.
PART
Pno
Pname
UnitPrice
150
X
20.00
152
Y
33.00
153
Z
4.00
155
V
15.00
162
W
25.00
7.
ORDERS
Ono
CId
Received
Shipped
20
11
10-Dec-97
12-Dec-97
21
11
13-Feb-98
15-Feb-98
22
22
26-Feb-98
NULL
8.
INVOICE
Ono
Pno
Qty
BilledPrice
20
152
1
33.00
20
155
4
60.00
20
162
1
25.00
22
152
3
99.00
21
150
1
20.00
21
152
2
66.00
21
153
3
12.00
21
155
4
60.00
21
162
1
25.00
9. In the table ORDERS above, specify in SQL the requirements that:
1. Received date cannot be undefined and that
2. the Shipped date, if it is not NULL, should be greater than the Received date.
10. Translate in SQL the following queries. Note: The "Received" column in ORDERS table above refers to when the order is received by the system (and not when the ordered items are received by the customer).
1. Get the part number of parts that cost between 10 and 25 dollars.
2. For each part sold in 1998, list the total quantity sold in 1998. Sort your results in ascending order by the total billed price for each part for that year. Parts are considered sold when an order is received. The BilledPrice column in the Invoice table indicates the total price billed for that part (i.e., quantity sold multiplied by unit price minus discount, if any).
3. Get those parts that were not sold in 1998. A part is considered sold when an order is received.
11. Given the following schema definitions, specify in SQL2 the referential integrity constraint on the EMPLOYEE relation that will prevent an employee from being assigned to a non-existent department.
12. create table EMPLOYEE
13. (id id_dom primary key deferrable,
14. name name_dom,
15. salary salary_dom,
16. dname dept_name_dom
17. );
18.
19. create table DEPARTMENT
20. (name dept_name_dom primary key deferrable,
21. mgrid id_dom foreign key references emp(id) deferrable,
22. budget budget_dom
23. );
© Copyright 2004 iCarnegie, Inc. All rights reserved.
我交的答案,很可能有错,等老帅评讲后,我再给出标准答案:
/*********************PARTI*********************/
Answer for Multiple-choice:
1 ~ 5:ABACC
6 ~10:DDADC
11~15:AABCD
16~20:ABBCD
/*********************PARTII*********************/
Answer for Practical:
1.
1)SELECT A
FROM R
2)SELECT B
FROM R
WHERE B=’13’
3)USE Pubs
SELECT A,B FROM R INNER JOIN S
ON R.C=S.D
4.
1) ename project dept
Kasper Spreadsheet Admin
Mohan Spreadsheet Admin
Lin Forecast Admin
Lin Spreadsheet Admin
2) ename project dept
Kasper Forecast Accounting
Kasper Audit Accounting
Kasper Spreadsheet Admin
Mohan Forecast Accounting
Mohan Audit Admin
Mohan Spreadsheet Admin
Lin Forecast Admin
Lin Audit Admin
Lin Spreadsheet Admin
3)这里将不会返回任何值,因为语句的意思是取出列dept中属于r但不属于s的所有值,显然不存在这样的值。
9.
1)ALTER TABLE ORDERS
ALTER COLUMN Received
datetime NOT NULL
2)ALTER TABLE ORDERS
CONSTRAINT Shipped1 UNIQUE(Shipped)
CONSTRAINT Shipped2 CHECK(Shipped = “” OR Shipped > Received)
10.
1) SELECT Pno
FROM PART
WHERE UnitPrice > 10 AND UnitPrice <25
2) SELECT Ono,Qty,BilledPrice
FROM INVOICE
WHERE Ono IN (SELECT Ono
FROM ORDERS
WHERE Received LIKE "%1998")
COMPUTE SUM(Qty)
ORDER BY BilledPrice ASC
3) SELECT Ono,Pno,Qty,BilledPrice
FROM INVOICE
WHERE Ono NOT IN (SELECT Ono
FROM ORDERS
WHERE Received LIKE "%1998"))
11.
CREATE TABLE EMPLOYEE(
id_dom NUMERIC(20) NOT NULL,
name_dom VARCHAR(40) NOT NULL,
salary_dom VARCHAR(40) NOT NULL,
dept_name_dom VARCHAR(40) NOT NULL,
PRIMARY KEY (id_dom));
CREATE TABLE DEPARTMENT(
dept_name_dom VARCHAR(40) NOT NULL,
id_dom NUMERIC(20) NOT NULL,
budget_dom VARCHAR(40) NOT NULL,
PRIMARY KEY (dept_name_dom),
FOREIGN KEY (id_dom) REFERENCES EMPLOYEE (id_dom));