COP4540 Database Management System Midterm Review

advertisement
COP4540 Database
Management System
Midterm Review
Reviewed by
Ramakrishna
Slides created by Fernando & edited by Ramakrishna
AGENDA
Ch1. Overview of DBMSs
 Ch2. Database Design
 Ch3. Relational Model
 Ch4. Relational Algebra
 Ch19. Normal Forms
 Ch5. SQL

AGENDA

Ch1. Overview of DBMSs
Ch2. Database Design
 Ch3. Relational Model
 Ch4. Relational Algebra
 Ch19. Normal Forms
 Ch5. SQL

CH1 EXERCISES

1.4. Explain the difference between external, internal, and
conceptual schemas. How are these different schema layers
related to the concepts of logical and physical data
independence?

External schemas:
 Allow data access to be customized at the level of individual users
or groups of users using different VIEWS of the same conceptual
schema.
 Views are not stored in DBMS but they generated on-demand.
 In the data model of DBMS.
 Conceptual (logical) schemas:
 Describes all the data in terms of the data model. In a relational
DBMS, it describes all relations stored.
 While there are several views for a given database, there is exactly
one conceptual schema to all users.
 Internal (physical) schemas:
 Describes how the relations described in the conceptual schema
are actually stored on disk (or other physical media).
CH1 EXERCISES

Logical Data Independence
 Protection
from changes in Logical Structure
of Data (The Conceptual Schema)
 Provided by External Schema (Views)

Physical Data Independence
 Protection
from changes in Physical Structure
of Data
 Provided by Conceptual Schema
AGENDA

Ch1. Overview of DBMSs

Ch2. Database Design
Ch3. Relational Model
 Ch4. Relational Algebra
 Ch19. Normal Forms
 Ch5. SQL

CH2 EXERCISES

2.2. A university database contains information
about
professors (id. by SSN) and courses (id. by courseid). Professors
teach courses; each of the following situations concerns the Teaches
relationship set. For each situation, draw an ER diagram that
describes it (assuming no further constraints hold).
1.
Professors can teach the same course in several
semesters, and each offering must be recorded.
CH2 EXERCISES

2.2. CONT…
2. Professors can teach the same course in several
semesters, and only the most recent such offering needs to
be recorded. (Assume this condition applies in all
subsequent questions.)
CH2 EXERCISES

2.2. CONT…
3. Every professor must teach some course.
CH2 EXERCISES

2.2. CONT…
4. Every professor teaches exactly one course (no more, no
less).
CH2 EXERCISES

2.2. CONT…
5. Every professor teaches exactly one course (no more, no
less), and every course must be taught by some professor.
CH2 EXERCISES

2.2. CONT…
6.
Certain courses can be
taught by a team of
professors jointly, but it is
possible that no one
professor in a team can
teach the course. Model
this situation, introducing
additional entity sets and
relationship sets if
necessary.
CH2 EXERCISES

2.4
A company database needs to store information about
employees (identified by ssn, with salary and phone as attributes),
departments (identified by dno, with dname and budget as attributes),
and children of employees (with name and age as attributes).
Employees work in departments; each department is managed by an
employee; a child must be identified uniquely by name when the parent
(who is an employee; assume that only one parent works for the
company) is known. We are not interested in information about a child
once the parent leaves the company.
CH2 EXERCISES
AGENDA
Ch1. Overview of DBMSs
 Ch2. Database Design


Ch3. Relational Model & SQL
Ch4. Relational Algebra
 Ch19. Normal Forms
 Ch5. SQL

CH3 EXERCISES

3.2. How many distinct tuples are in a
relation instance with cardinality 22?
 Since
a relation is formally defined as a set of
tuples, if the cardinality is 22 (i.e., there are 22
tuples), there must be 22 distinct tuples.
CH3 EXERCISES

3.4. What is the difference between a
candidate key and the primary key for a
given relation? What is a superkey?
 The
primary key is the key selected by the
DBA from among the group of candidate keys,
all of which uniquely identify a tuple. A
superkey is a set of attributes that contains a
key.
CH3 EXERCISES

3.8. Answer each of the following questions briefly. The
questions are based on the following relational schema:
Emp(eid: integer, ename: string, age: integer, salary: real)
Works(eid: integer, did: integer, pcttime: integer)
Dept(did: integer, dname: string, budget: real, managerid:
integer)
1. Give an example of a foreign key constraint that involves the
Dept relation. What are the options for enforcing this constraint
when a user attempts to delete a Dept tuple?

Consider the following example. It is natural to require that the did field
of Works should be a foreign key, and refer to Dept.
CREATE TABLE Works ( eid INTEGER NOT NULL ,
did INTEGER NOT NULL ,
pcttime INTEGER,
PRIMARY KEY (eid, did),
FOREIGN KEY (did) REFERENCES Dept )
CH3 EXERCISES

OPTIONS for maintaining referential
integrity
 ON
DELETE { CASCADE, SET DEFAULT,
SET NULL, NO ACTION}
 ON
UPDATE { CASCADE, SET DEFAULT,
SET NULL, NO ACTION}
CH3 EXERCISES

3.8.
2. Write the SQL statements required to create the preceding
relations, including appropriate versions of all primary and
foreign key integrity constraints.
CREATE TABLE Emp (
eid INTEGER,
ename CHAR(10),
age INTEGER,
salary REAL,
PRIMARY KEY (eid)
)
CREATE TABLE Works (
eid INTEGER,
did INTEGER,
pcttime INTEGER,
CREATE TABLE Dept (
did INTEGER,
budget REAL,
managerid INTEGER ,
PRIMARY KEY (eid, did),
FOREIGN KEY (did)
REFERENCES Dept,
FOREIGN KEY (eid)
REFERENCES Emp,
ON DELETE CASCADE
)
PRIMARY KEY (did),
FOREIGN KEY (managerid)
REFERENCES Emp,
ON DELETE SET NULL
)
CH3 EXERCISES

3.8.
3. Define the Dept relation in SQL so that
every department is guaranteed to have a
manager.
 CREATE
TABLE Dept (
did INTEGER,
budget REAL,
managerid INTEGER NOT NULL ,
PRIMARY KEY (did),
FOREIGN KEY (managerid) REFERENCES Emp
)
CH3 EXERCISES

3.8.
4. Write an SQL statement to add John
Doe as an employee with eid = 101,
age = 32 and salary = 15, 000.
 INSERT
INTO Emp (eid, ename, age, salary)
VALUES (101, ’John Doe’, 32, 15000)
CH3 EXERCISES

3.8.
5. Write an SQL statement to give every
employee a 10 percent raise.
 UPDATE
Emp E
SET E.salary = E.salary * 1.10
CH3 EXERCISES

3.8.
6. Write an SQL statement to delete the Toy
department. Given the referential integrity
constraints you chose for this schema,
explain what happens when this statement is
executed.
 DELETE
FROM Dept D
WHERE D.dname = ’Toy’
CH5 EXERCISES

5.2. Consider the following schema:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
The Catalog relation lists the prices charged for parts by
Suppliers. Write the following queries in SQL:
1. Find the pnames of parts for which there is some supplier.

SELECT DISTINCT P.pname
FROM Parts P, Catalog C
WHERE P.pid = C.pid
5. Find the sids of suppliers who charge more for some part than
the average cost of that part (averaged over all the suppliers
who supply that part).

SELECT DISTINCT C.sid
FROM Catalog C
WHERE C.cost > ( SELECT AVG (C1.cost)
FROM Catalog C1
WHERE C1.pid = C.pid )
CH5 EXERCISES
8. Find the sids of Suppliers who supply a red parts and a green
part
SELECT DISTINCT C.sid
FROM Catalog C, Parts P
WHERE C.pid = P.pid AND P.color = ‘Red’
INTERSECT
SELECT DISTINCT C1.sid
FROM Catalog C1, Parts P1
WHERE C1.pid = P1.pid AND P1.color = ‘Green’
9. Find the sids of Suppliers who supply a red parts or a green
part
SELECT DISTINCT C.sid FROM Catalog C, Parts P
WHERE C.pid = P.pid AND P.color = ‘Red’
UNION
SELECT DISTINCT C1.sid FROM Catalog C1, Parts P1
WHERE C1.pid = P1.pid AND P1.color = ‘Green’
AGENDA
Ch1. Overview of DBMSs
 Ch2. Database Design
 Ch3. Relational Model


Ch4. Relational Algebra
Ch19. Normal Forms
 Ch5. SQL

CH4 EXERCISES

4.2. Given two relations R1 and R2, where R1 contains N1
tuples, R2 contains N2 tuples, and N2 > N1 > 0, give the min
and max possible sizes for the resulting relational algebra
expressions:
(1) R1UR2, (2) R1∩R2, (3) R1−R2, (4) R1×R2, (5) σa=5(R1), and (6)
πa(R1)
CH4 EXERCISES

4.4. Consider the Supplier-Parts-Catalog schema from the
previous question. State what the following queries compute:
Find the Supplier names of the suppliers who supply a red part that costs less
than 100 dollars.
This Relational Algebra statement does not return anything
Find the Supplier names of the suppliers who supply a red part that costs less
than 100 dollars and a green part that costs less than 100 dollars.
CH4 EXERCISES

4.4. Consider the Supplier-Parts-Catalog schema from the
previous question. State what the following queries compute:
Find the Supplier ids of the suppliers who supply a red part that costs less than
100 dollars and a green part that costs less than 100 dollars.
Find the Supplier names of the suppliers who supply a red part that costs less
than 100 dollars and a green part that costs less than 100 dollars.
CH4 EXERCISES

4.6. What is relational completeness? If
a query language is relationally
complete, can you write any desired
query in that language?
 Relational
completeness means that a query
language can express all the queries that can
be expressed in relational algebra. It does not
mean that the language can express any
desired query.
AGENDA
Ch1. Overview of DBMSs
 Ch2. Database Design
 Ch3. Relational Model
 Ch4. Relational Algebra


Ch19. Normal Forms

Ch5. SQL
CH19 EXERCISES
A relation R is in third normal form if for
every functional dependency of the form X
 A one of the following statements is true:
 A Є X that is, A is a trivial functional
dependency , or (1)
 X is a superkey, or (2)
 A is part of some key for R (3)
A relation R is in BCNF if (1) or (2)
CH19 EXERCISES

1.
19.2. Consider a relation R with five
attributes ABCDE. You are given the
following dependencies: A → B, BC → E,
and ED → A.
List all keys for R.

2.
Is R in 3NF?

3.
CDE, ACD, BCD
R is in 3NF because B, E and A are all parts of keys.
Is R in BCNF?

R is not in BCNF because none of A, BC and ED
contain a key.
GOOD LUCK!!

RAMAKRISHNA
 ramakrishna@cis.fiu.edu
 ECS
234
Download