Exam 2 key

advertisement
Fall 2005
CS 370 / IT 376 Exam 2
Database Management Systems
Page 1
11/7/05
Name__________________________
1. True/False.
[15 pts]
______ Statement level interface for embedded SQL requires a compiler preprocessor and extensions to
the syntax of the language.
______ A call level interface for embedded SQL does not permit reference to host language (e.g. Java)
variables.
______ Embedded SQL in Java we used through the java.sql.* package is an example of a call level
interface.
______ The SQLSTATE system variable is a 5 digit string that contains standard return codes.
______ A Tetabyte (a trillion bytes) is considered a medium size for a database.
______ Disk accesses are roughly a thousand times slower than RAM access.
______ ODBC is a database access protocol that is for object oriented languages only.
______ A cylinder on a disk is composed of all the tracks of a platter.
______ A heap or pile file maintains the data in order by its primary key.
______ A table’s tuples stored with a B+-tree index will be clustered by the primary key.
______ An object oriented database schema may define public and private methods in addition to
attributes and relationships.
______ Person ISA sub-entities such as (staff, student, faculty) are examples of mutually exclusive
specialization.
______ Extendible hashing eliminates the need to rehash a file to accommodate a larger, growing data
set.
______ CASCADE DELETE is appropriate on a foreign key when referencing from a weak entity.
______ INSERTing into a view based on a join is acceptable.
2. Give two interpretations of the “null” value in a relation. What does normalization say about
null values?
[5 pts]
3. Explain what a logical transaction is. How is it started? How is it terminated?
[4 pts]
4. What is a lossless join decomposition?
[4 pts]
Fall 2005
CS 370 / IT 376 Exam 2
Page 2
For the next two questions, use the following bookstore database schema. Keys are underlined. ISBN is
the unique book ID number. The rest of the attributes should be self-evident. If not, please ask
for clarification.
CUSTOMER (CID, Name, Street, City, State, Zip, CreditLimit)
BOOK(ISBN, Title, Author, CopiesOnHand, Price, Publisher, PublisherFax)
PURCHASED(ISBN,CID, DatePurchase, Copies)
BACKORDER(ISBN, CID, Copies, HomePhone)
5. There are at least two relations above that have functional dependencies on either a non-key or
sub-key. Identify the offending functional dependencies by drawing arrows above, and
normalize the offending relations so that the resulting relations are in 3NF. Show the new
relations below.
[9 pts]
6. Explain what the following complementing SQL triggers should accomplish. Any syntax errors
are not intended and there are some extensions to the grammar.
[6 pts]
CREATE TRIGGER COH1
AFTER INSERT ON PURCHASED
REFERENCING NEW AS P
FOR EACH ROW
WHEN (P.Copies>=(SELECT B.CopiesOnHand FROM BOOK
WHERE P.ISBN = BOOK.ISBN))
UPDATE BOOK
SET CopiesOnHand = CopiesOnHand – P.Copies
WHERE P.ISBN = BOOK.ISBN;
CREATE TRIGGER COH2
AFTER INSERT ON PURCHASED
REFERENCING NEW AS P
FOR EACH ROW
WHEN (P.Copies<(SELECT B.CopiesOnHand FROM BOOK
WHERE P.ISBN = BOOK.ISBN))
UPDATE BOOK
SET CopiesOnHand = 0
WHERE P.ISBN = BOOK.ISBN;
INSERT INTO BACKORDER VALUES(P.ISBN,P.CID,
(P.Copies – (SELECT B.CopiesOnHand FROM BOOK
WHERE P.ISBN = BOOK.ISBN))
);
Fall 2005
CS 370 / IT 376 Exam 2
Page 3
7. The following objects and are crucial components to successfully accessing a database from Java
or in any embedded SQL setting. Give a brief explanation in general of what each of the objects
contain or accomplish.
[12 pts]
a. Driver:
b. Connection:
c. PreparedStatement:
d. ResultSet:
8. Disk drives.
a. If a disk has sectors that are 1024 bytes, describe how the data in a large relational table would
likely be broken up.
[4 pts]
b. Of the three components of a disk’s access time (seek, latency, transfer), which takes the
longest? Give an estimate for the typical access time.
[3 pts]
c. To process a sector from part a, how much memory would have to be allocated for a double
buffer so that the next sector can be read while the current one is being processed?
[2 pts]
9. When is the benefit of using hashing to store and retrieve a tuple in a file over a B+-tree index?
[8 pts]
Conversely, when would a B+-tree index be desirable to have over hashing?
Fall 2005
CS 370 / IT 376 Exam 2
Page 4
10. Construct the index nodes for the B+-tree below. The number of values that will fit in one node
is 3. For degree = 4, you normally have index nodes with at least two keys in it. For level 1,
assume that you have two nodes, the first nodes indexes the left three data nodes and the second
node indexes the right three. Then the root node indexes the two nodes at level 1 (hint: be sure
you select your key value from the data node)
[8 pts]
Root level
Level 1:
Data Nodes: (2-3-5)
(9-13)
(17-19-23) (28-35-38) (40-43-45) (50-54)
Now show how the B+-tree appears after inserting the value 44.
For the SQL queries, use the following relational schema for a professional baseball team database.
Keys are underlined. Example, albeit inaccurate, data are given. The attributes should be selfevident. If not, please ask for clarification. It is simplified from the previous exam.
TEAM(TName, League, Area, Owner, City, Stadium)
(‘Yankees’,’American’,’East’,’Steinbrenner’ , ‘New York’, ‘Yankee’)
PERSON(ID, Name, Address, Salary, DOB)
(2833,’Randy Johnson’, NULL, 2000000, ’1963-09-10’)
(399, ‘Joe Torre’, NULL, 1500000, ‘1941-03-02’)
MEMBER(ID, TName, StartDate, ReleaseDate, Position, MemberType, Number)
(2833,’Yankees’,’1995-01-01’, NULL, ‘Pitcher’,’Player’, 41)
(399, ‘Yankees’, ‘1994-01-01’, NULL, ‘Manager’, ‘Staff’,NULL)
GAME(Date, HomeTeam, VisitingTeam, HomeScore, VisitorScore, InningsPlayed)
(‘2005-10-01’,’Red Sox’, ‘Yankees’, 4,8,9)
Syntax for SQL, where [] means optional, {op1|op2|...} means choice
SELECT [DISTINCT] {* | attribute-list | aggregate functions}...
FROM tables-list and aliases
WHERE condition
[GROUP BY attr [HAVING condition]]
SQL conditions consist of <,>,<=,>=, <>,=, AND, OR, BETWEEN value AND value
[NOT] EXISTS ({list | SELECT...}),
rel-op {ANY|SOME|ALL} ({ list | SELECT...}), IS [NOT] NULL
Aggregate functions: COUNT(*), MIN(attr), MAX(attr), SUM(attr), AVG(attr)
Fall 2005
CS 370 / IT 376 Exam 2
Page 5
11. Give the SQL select statements for the following queries.
[20 pts]
a) List all players and team names who currently earn more than a million dollars.
SELECT P.Name,, P.Salary, M.TName
FROM PERSON P, MEMBER M
WHERE P.Salary>1000000 AND M.ReleaseDate=Null
AND P.ID = M.ID AND M.MemberType=’Player’
b) List all the pitchers’ names who currently play for teams in New York City. Assume you do
not know which teams they are to construct the query.
SELECT P.Name, M.TName
FROM PERSON P, MEMBER M, TEAM T
WHERE T.City = ‘New York City’ AND T.TName=M.TName
AND M.Position=’Pitcher’ AND M.ID=P.ID AND M.ReleaseDate=Null
c) List current staff members who were never players. (Hint use a subselect)
SELECT P.Name
FROM PERSON P, MEMBER M
WHERE M.MemberType=’Staff’ AND M.ReleaseDate=Null AND P.ID=M.ID
AND M.ID NOT IN ( SELECT N.ID
FROM MEMBER P
WHERE M.MemberType=’Player’)
d) Display the average salaries of current players for each team.
SELECT AVG(P.Salary), M.TName
FROM PERSON P, MEMBER M
WHERE M.ReleaseDate=Null
AND M.ID=P.ID
GROUP BY M.TName
e) Who has/had the largest salary and for which team? (Hint use a subselect)
SELECT P.Name, M.TName, P.Salary
FROM MEMBER M, PERSON P
WHERE P.ID = M.ID
AND P.Salary >= (SELECT Salary FROM PERSON)
Download