Uploaded by Dileepchandu Gummadidala

Cat1

advertisement
28
Chapter 1 Databases and Database Users
1.4. What are the responsibilities of the DBA and the database designers?
1.5. What are the different types of database end users? Discuss the main activi-
ties of each.
1.6. Discuss the capabilities that should be provided by a DBMS.
1.7. Discuss the differences between database systems and information retrieval
systems.
Exercises
1.8. Identify some informal queries and update operations that you would expect
to apply to the database shown in Figure 1.2.
1.9. What is the difference between controlled and uncontrolled redundancy?
Illustrate with examples.
1.10. Specify all the relationships among the records of the database shown in
Figure 1.2.
1.11. Give some additional views that may be needed by other user groups for the
database shown in Figure 1.2.
1.12. Cite some examples of integrity constraints that you think can apply to the
database shown in Figure 1.2.
1.13. Give examples of systems in which it may make sense to use traditional file
processing instead of a database approach.
1.14. Consider Figure 1.2.
a. If the name of the ‘CS’ (Computer Science) Department changes to
‘CSSE’ (Computer Science and Software Engineering) Department and
the corresponding prefix for the course number also changes, identify the
columns in the database that would need to be updated.
b. Can you restructure the columns in the COURSE, SECTION, and
PREREQUISITE tables so that only one column will need to be updated?
Selected Bibliography
The October 1991 issue of Communications of the ACM and Kim (1995) include
several articles describing next-generation DBMSs; many of the database features
discussed in the former are now commercially available. The March 1976 issue of
ACM Computing Surveys offers an early introduction to database systems and may
provide a historical perspective for the interested reader.
54
Chapter 2 Database System Concepts and Architecture
2.5. What is the difference between logical data independence and physical data
independence? Which one is harder to achieve? Why?
2.6. What is the difference between procedural and nonprocedural DMLs?
2.7. Discuss the different types of user-friendly interfaces and the types of users
who typically use each.
2.8. With what other computer system software does a DBMS interact?
2.9. What is the difference between the two-tier and three-tier client/server
architectures?
2.10. Discuss some types of database utilities and tools and their functions.
2.11. What is the additional functionality incorporated in n-tier architecture
(n > 3)?
Exercises
2.12. Think of different users for the database shown in Figure 1.2. What types of
applications would each user need? To which user category would each
belong, and what type of interface would each need?
2.13. Choose a database application with which you are familiar. Design a schema
and show a sample database for that application, using the notation of
Figures 1.2 and 2.1. What types of additional information and constraints
would you like to represent in the schema? Think of several users of your
database, and design a view for each.
2.14. If you were designing a Web-based system to make airline reservations and
sell airline tickets, which DBMS architecture would you choose from Section
2.5? Why? Why would the other architectures not be a good choice?
2.15. Consider Figure 2.1. In addition to constraints relating the values of
columns in one table to columns in another table, there are also constraints
that impose restrictions on values in a column or a combination of columns
within a table. One such constraint dictates that a column or a group of
columns must be unique across all rows in the table. For example, in the
STUDENT table, the Student_number column must be unique (to prevent two
different students from having the same Student_number). Identify the column or the group of columns in the other tables that must be unique across
all rows in the table.
234
Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model
Review Questions
7.1. Discuss the role of a high-level data model in the database design process.
7.2. List the various cases where use of a NULL value would be appropriate.
7.3. Define the following terms: entity, attribute, attribute value, relationship
instance, composite attribute, multivalued attribute, derived attribute, complex
attribute, key attribute, and value set (domain).
7.4. What is an entity type? What is an entity set? Explain the differences among
an entity, an entity type, and an entity set.
7.5. Explain the difference between an attribute and a value set.
7.6. What is a relationship type? Explain the differences among a relationship
instance, a relationship type, and a relationship set.
7.7. What is a participation role? When is it necessary to use role names in the
description of relationship types?
7.8. Describe the two alternatives for specifying structural constraints on rela-
tionship types. What are the advantages and disadvantages of each?
7.9. Under what conditions can an attribute of a binary relationship type be
migrated to become an attribute of one of the participating entity types?
7.10. When we think of relationships as attributes, what are the value sets of these
attributes? What class of data models is based on this concept?
7.11. What is meant by a recursive relationship type? Give some examples of
recursive relationship types.
7.12. When is the concept of a weak entity used in data modeling? Define the
terms owner entity type, weak entity type, identifying relationship type, and
partial key.
7.13. Can an identifying relationship of a weak entity type be of a degree greater
than two? Give examples to illustrate your answer.
7.14. Discuss the conventions for displaying an ER schema as an ER diagram.
7.15. Discuss the naming conventions used for ER schema diagrams.
Exercises
7.16. Consider the following set of requirements for a UNIVERSITY database that is
used to keep track of students’ transcripts. This is similar but not identical to
the database shown in Figure 1.2:
a. The university keeps track of each student’s name, student number, Social
Security number, current address and phone number, permanent address
and phone number, birth date, sex, class (freshman, sophomore, ..., graduate), major department, minor department (if any), and degree program
Exercises
b.
c.
d.
e.
(B.A., B.S., ..., Ph.D.). Some user applications need to refer to the city,
state, and ZIP Code of the student’s permanent address and to the student’s last name. Both Social Security number and student number have
unique values for each student.
Each department is described by a name, department code, office number, office phone number, and college. Both name and code have unique
values for each department.
Each course has a course name, description, course number, number of
semester hours, level, and offering department. The value of the course
number is unique for each course.
Each section has an instructor, semester, year, course, and section number. The section number distinguishes sections of the same course that are
taught during the same semester/year; its values are 1, 2, 3, ..., up to the
number of sections taught during each semester.
A grade report has a student, section, letter grade, and numeric grade (0,
1, 2, 3, or 4).
Design an ER schema for this application, and draw an ER diagram for the
schema. Specify key attributes of each entity type, and structural constraints
on each relationship type. Note any unspecified requirements, and make
appropriate assumptions to make the specification complete.
7.17. Composite and multivalued attributes can be nested to any number of levels.
Suppose we want to design an attribute for a STUDENT entity type to keep
track of previous college education. Such an attribute will have one entry for
each college previously attended, and each such entry will be composed of
college name, start and end dates, degree entries (degrees awarded at that
college, if any), and transcript entries (courses completed at that college, if
any). Each degree entry contains the degree name and the month and year
the degree was awarded, and each transcript entry contains a course name,
semester, year, and grade. Design an attribute to hold this information. Use
the conventions in Figure 7.5.
7.18. Show an alternative design for the attribute described in Exercise 7.17 that
uses only entity types (including weak entity types, if needed) and relationship types.
7.19. Consider the ER diagram in Figure 7.20, which shows a simplified schema
for an airline reservations system. Extract from the ER diagram the requirements and constraints that produced this schema. Try to be as precise as possible in your requirements and constraints specification.
7.20. In Chapters 1 and 2, we discussed the database environment and database
users. We can consider many entity types to describe such an environment,
such as DBMS, stored database, DBA, and catalog/data dictionary. Try to
specify all the entity types that can fully describe a database system and its
environment; then specify the relationship types among them, and draw an
ER diagram to describe such a general database environment.
235
236
Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model
Figure 7.20
An ER diagram for an AIRLINE database schema.
Airport_code
City
State
Name
1
DEPARTURE_
AIRPORT
Scheduled_dep_time
AIRPORT
M
1
Le g_no
N
N
Instances
1
Number
N
Type_name
FLIGHT_LEG
Scheduled_arr_time
ARRIVAL_
AIRPORT
CAN_
LAND
N
Airline
Company
1
AIRPLANE_
TYPE
Arr_time
1
DEPARTS
Dep_time
N
ARRIVES
N
Weekdays
Total_no_of_seats
1
AIRPLANE
ASSIGNED
Customer_name
1
N
Code
N
FLIGHT
FARES
Restrictions
Amount
N
TYPE
Airplane_id
1
INSTANCE_OF
Max_seats
1
LEGS
FARE
No_of_avail_seats
N
LEG_INSTANCE
Date
Cphone
Seat_no
RESERVATION
SEAT
N
1
Notes:
A LEG (segment) is a nonstop portion of a flight.
A LEG_INSTANCE is a particular occurrence
of a LEG on a particular date.
7.21. Design an ER schema for keeping track of information about votes taken in
the U.S. House of Representatives during the current two-year congressional
session. The database needs to keep track of each U.S. STATE’s Name (e.g.,
‘Texas’, ‘New York’, ‘California’) and include the Region of the state (whose
domain is {‘Northeast’, ‘Midwest’, ‘Southeast’, ‘Southwest’, ‘West’}). Each
Exercises
CONGRESS_PERSON in the House of Representatives is described by his or
her Name, plus the District represented, the Start_date when the congressperson was first elected, and the political Party to which he or she belongs
(whose domain is {‘Republican’, ‘Democrat’, ‘Independent’, ‘Other’}). The
database keeps track of each BILL (i.e., proposed law), including the
Bill_name, the Date_of_vote on the bill, whether the bill Passed_or_failed
(whose domain is {‘Yes’, ‘No’}), and the Sponsor (the congressperson(s) who
sponsored—that is, proposed—the bill). The database also keeps track of
how each congressperson voted on each bill (domain of Vote attribute is
{‘Yes’, ‘No’, ‘Abstain’, ‘Absent’}). Draw an ER schema diagram for this application. State clearly any assumptions you make.
7.22. A database is being constructed to keep track of the teams and games of a
sports league. A team has a number of players, not all of whom participate in
each game. It is desired to keep track of the players participating in each
game for each team, the positions they played in that game, and the result of
the game. Design an ER schema diagram for this application, stating any
assumptions you make. Choose your favorite sport (e.g., soccer, baseball,
football).
7.23. Consider the ER diagram shown in Figure 7.21 for part of a BANK database.
Each bank can have multiple branches, and each branch can have multiple
accounts and loans.
a. List the strong (nonweak) entity types in the ER diagram.
b. Is there a weak entity type? If so, give its name, partial key, and identifying
relationship.
c. What constraints do the partial key and the identifying relationship of the
weak entity type specify in this diagram?
d. List the names of all relationship types, and specify the (min, max) constraint on each participation of an entity type in a relationship type.
Justify your choices.
e. List concisely the user requirements that led to this ER schema design.
f. Suppose that every customer must have at least one account but is
restricted to at most two loans at a time, and that a bank branch cannot
have more than 1,000 loans. How does this show up on the (min, max)
constraints?
7.24. Consider the ER diagram in Figure 7.22. Assume that an employee may work
in up to two departments or may not be assigned to any department. Assume
that each department must have one and may have up to three phone numbers. Supply (min, max) constraints on this diagram. State clearly any additional assumptions you make. Under what conditions would the relationship
HAS_PHONE be redundant in this example?
7.25. Consider the ER diagram in Figure 7.23. Assume that a course may or may
not use a textbook, but that a text by definition is a book that is used in some
course. A course may not use more than five books. Instructors teach from
237
238
Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model
1
BANK
Code
Name
BRANCHES
N
BANK_BRANCH
Addr
Branch_no
Addr
1
1
ACCTS
LOANS
N
N
Acct_no
Loan_no
Balance
ACCOUNT
Type
Amount
LOAN
M
M
A_C
L_C
Type
N
N
Name
Ssn
Phone
EMPLOYEE
CUSTOMER
WORKS_IN
Figure 7.21
An ER diagram for a BANK
database schema.
Addr
DEPARTMENT
CONTAINS
HAS_PHONE
PHONE
Figure 7.22
Part of an ER diagram
for a COMPANY database.
Exercises
INSTRUCTOR
TEACHES
239
COURSE
USES
Figure 7.23
Part of an ER diagram
for a COURSES database.
TEXT
two to four courses. Supply (min, max) constraints on this diagram. State
clearly any additional assumptions you make. If we add the relationship
ADOPTS, to indicate the textbook(s) that an instructor uses for a course,
should it be a binary relationship between INSTRUCTOR and TEXT, or a ternary relationship between all three entity types? What (min, max) constraints would you put on it? Why?
7.26. Consider an entity type SECTION in a UNIVERSITY database, which describes
the section offerings of courses. The attributes of SECTION are
Section_number, Semester, Year, Course_number, Instructor, Room_no (where
section is taught), Building (where section is taught), Weekdays (domain is
the possible combinations of weekdays in which a section can be offered
{‘MWF’, ‘MW’, ‘TT’, and so on}), and Hours (domain is all possible time periods during which sections are offered {‘9–9:50 A.M.’, ‘10–10:50 A.M.’, ...,
‘3:30–4:50 P.M.’, ‘5:30–6:20 P.M.’, and so on}). Assume that Section_number is
unique for each course within a particular semester/year combination (that
is, if a course is offered multiple times during a particular semester, its section offerings are numbered 1, 2, 3, and so on). There are several composite
keys for section, and some attributes are components of more than one key.
Identify three composite keys, and show how they can be represented in an
ER schema diagram.
7.27. Cardinality ratios often dictate the detailed design of a database. The cardi-
nality ratio depends on the real-world meaning of the entity types involved
and is defined by the specific application. For the following binary relationships, suggest cardinality ratios based on the common-sense meaning of the
entity types. Clearly state any assumptions you make.
Entity 1
1. STUDENT
2. STUDENT
3. CLASSROOM
Cardinality Ratio
Entity 2
______________
______________
______________
SOCIAL_SECURITY_CARD
TEACHER
WALL
240
Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model
4. COUNTRY
5. COURSE
______________
______________
CURRENT_PRESIDENT
______________
______________
______________
______________
ORDER
TEXTBOOK
6. ITEM (that can
be found in an
order)
7. STUDENT
8. CLASS
9. INSTRUCTOR
CLASS
INSTRUCTOR
OFFICE
10. EBAY_AUCTION
_ITEM
______________
EBAY_BID
7.28. Consider the ER schema for the MOVIES database in Figure 7.24.
Assume that MOVIES is a populated database. ACTOR is used as a generic
term and includes actresses. Given the constraints shown in the ER schema,
respond to the following statements with True, False, or Maybe. Assign a
response of Maybe to statements that, while not explicitly shown to be True,
cannot be proven False based on the schema as shown. Justify each answer.
Figure 7.24
An ER diagram for a MOVIES
database schema.
M
N
PERFORMS_IN
MOVIE
ACTOR
1
1
ACTOR_
PRODUCER
2
LEAD_ROLE
N
ALSO_A_
DIRECTOR
N
1
1
1
DIRECTOR
PRODUCER
M
DIRECTS
N
PRODUCES
Laboratory Exercises
a. There are no actors in this database that have been in no movies.
b. There are some actors who have acted in more than ten movies.
c. Some actors have done a lead role in multiple movies.
d. A movie can have only a maximum of two lead actors.
e. Every director has been an actor in some movie.
f. No producer has ever been an actor.
g. A producer cannot be an actor in some other movie.
h. There are movies with more than a dozen actors.
i. Some producers have been a director as well.
j. Most movies have one director and one producer.
k. Some movies have one director but several producers.
l. There are some actors who have done a lead role, directed a movie, and
produced some movie.
m. No movie has a director who also acted in that movie.
7.29. Given the ER schema for the MOVIES database in Figure 7.24, draw an
instance diagram using three movies that have been released recently. Draw
instances of each entity type: MOVIES, ACTORS, PRODUCERS, DIRECTORS
involved; make up instances of the relationships as they exist in reality for
those movies.
7.30. Illustrate the UML Diagram for Exercise 7.16. Your UML design should
observe the following requirements:
a. A student should have the ability to compute his/her GPA and add or
drop majors and minors.
b. Each department should be to able add or delete courses and hire or terminate faculty.
c. Each instructor should be able to assign or change a student’s grade for a
course.
Note: Some of these functions may be spread over multiple classes.
Laboratory Exercises
7.31. Consider the UNIVERSITY database described in Exercise 7.16. Build the ER
schema for this database using a data modeling tool such as ERwin or
Rational Rose.
7.32. Consider a MAIL_ORDER database in which employees take orders for parts
from customers. The data requirements are summarized as follows:
■ The mail order company has employees, each identified by a unique
employee number, first and last name, and Zip Code.
■ Each customer of the company is identified by a unique customer number, first and last name, and Zip Code.
241
CHAPTER 1: DATABASES AND DATABASE USERS
Answers to Selected Exercises
1.8 - Identify some informal queries and update operations that you would expect to apply to the
database shown in Figure 1.2.
Answer:
(a) (Query) List the names of all students majoring in Computer Science.
(b) (Query) What are the prerequisites of the Database course?.
(c) (Query) Retrieve the transcript of Smith. This is a list of <CourseName,
SectionIdentifier, Semester, Year, Grade> for each course section that Smith has
completed.
(d) (Update) Insert a new student in the database whose Name=Jackson,
StudentNumber=23, Class=1 (freshman), and Major=MATH.
(e) (Update) Change the grade that Smith received in Intro to Computer Science section
119 to B.
1.9 - What is the difference between controlled and uncontrolled redundancy?
Answer:
Redundancy is when the same fact is stored multiple times in several places in a database. For
example, in Figure 1.5(a) the fact that the name of the student with StudentNumber=8 is Brown is
ScholarStock
stored multiple times. Redundancy is controlled when the DBMS ensures that multiple copies of the
same data are consistent; for example, if a new record with StudentNumber=8 is stored in the
database of Figure 1.5(a), the DBMS will ensure that StudentName=Smith in that record. If the
DBMS has no control over this, we have uncontrolled redundancy.
1.10 - Specify all the relationships among the records of the database shown in Figure 1.2.
Answer:
(a) Each SECTION record is related to a COURSE record.
(b) Each GRADE_REPORT record is related to one STUDENT record and one SECTION
record.
(c) Each PREREQUISITE record relates two COURSE records: one in the role of a course
and the other in the role of a prerequisite to that course.
1.11 - Give some additional views that may be needed by other user groups for the database shown
in Figure 1.2.
Answer:
(a) A view that groups all the students who took each section and gives each student's
grade. This may be useful for printing the grade report for each section for the
university administration's use.
(b) A view that gives the number of courses taken and the GPA (grade point average) for
each student. This may be used to determine honors students.
ScholarStock
1.12 – Cite some examples of integrity constraints that you think can apply to the database shown in
Figure 1.2.
Answer:
We give a few constraints expressed in English. Following each constraint, we give its
type in the relational database terminology that will be covered in Chapter 6, for
reference purposes.
(a) The StudentNumber should be unique for each STUDENT record (key constraint).
(b) The CourseNumber should be unique for each COURSE record (key constraint).
(c) A value of CourseNumber in a SECTION record must also exist in some COURSE
record (referential integrity constraint).
(d) A value of StudentNumber in a GRADE_REPORT record must also exist in some
STUDENT record (referential integrity constraint).
(e) The value of Grade in a GRADE_REPORT record must be one of the values in the set
{A, B, C, D, F, I, U, S} (domain constraint).
(f) Every record in COURSE must have a value for CourseNumber (entity integrity
constraint).
(g) A STUDENT record cannot have a value of Class=2 (sophomore) unless the student
has completed a number of sections whose total course CreditHours is greater that 24
credits (general semantic integrity constraint).
ScholarStock
1.13 - Give examples of systems in which it may make sense to use traditional file processing
instead of a database approach.
Answer:
1.1. Small internal utility to locate files
Formatted: Bullets and Numbering
2.2. Small single user application that does not require security (such as a customized calculator or a
personal address and phone book)
3.3. Real-time navigation system (with heavy computation and very little data)
4.4. The students may think of others.
1.14 - Consider Figure 1.2.
a.a. If the name of the „CS‟ (Computer Science) Department changes to „CSSE‟ (Computer Science
and Software Engineering) Department and the corresponding prefix for the course number
also changes, identify the columns in the database that would need to be updated.
b.b. Can you restructure the columns in COURSE, SECTION, and PREREQUISITE tables so that
only one column will need to be updated?
Answer:
a. The following columns will need to be updated.
Table
Column(s)
STUDENT
Major
COURSE
CourseNumber and Department
SECTION
CourseNumber
PREREQUISITE
CourseNumber and PrerequisiteNumber
b. You should split the following columns into two columns:
Table
Column
Split Columns
ScholarStock
Formatted: Bullets and Numbering
COURSE
CourseNumber
CourseDept and CourseNum
SECTION
CourseNumber
CourseDept and CourseNum
PREREQUISITE
CourseNumber
CourseDept and CourseNum
PREREQUISITE
PrerequisiteNumber
PreReqDept and PreReqNum
Note that in the COURSE table, the column CourseDept will not be needed after the above change,
since it is redundant with the Department column.
CHAPTER 2: DATABASE SYSTEM CONCEPTS AND ARCHITECTURE
Answers to Selected Exercises
2.12 - Think of different users for the database of Figure 1.2. What type of applications would each
user need? To which user category would each belong and what type of interface would they need?
Answer:
(a) Registration Office User: They can enter data that reflect the registration of students
in sections of courses, and later enter the grades of the students. Applications can
include:
- Register a student in a section of a course
- Check whether a student who is registered in a course has the appropriate prerequisite
courses
- Drop a student from a section of a course
- Add a student to a section of a course
- Enter the student grades for a section
Application programmers can write a number of canned transactions for the registration
office end-users, providing them with either forms and menus, or with a parametric
ScholarStock
interface.
(b) Admissions Office User: The main application is to enter newly accepted students into
the database. Can use the same type of interfaces as (a).
(c) Transcripts Office User: The main application is to print student transcripts.
Application programmers can write a canned transaction using a report generator utility
to print the transcript of a student in a prescribed format. The particular student can be
identified by name or social security number. Another application would be to generate
grade slips at the end of each semester for all students who have completed courses
during that semester. Again, this application could be programmed using a report
generator utility.
2.13 - No solution provided.
2.14 - if you were designing a Web-based system to make airline reservations and to sell airline
tickets, which DBMS Architecture would you choose from Section 2.5? Why? Why would the other
architectures not be a good choice?
Answer:
2.5.4 Three-Tier Client/Server Architecture for Web Application is the best choice. The Client
consists of Web User Interface. The Web Server contains the application logic which includes all the
rules and regulations related to the reservation process and the issue of tickets; the Database
Server contains the DBMS.
2.5.1 Centralized DBMS Architecture would not work since the user interface and database server
are on different machines for a web-based system.
2.5.2 Basic Client/Server Architecture and 2.5.3 Two-Tier Client/Server Architecture would work if
the Business Logic can reside on server other than the DBMS Server. In general, if the business
ScholarStock
logic was on the DBMS Server, it will put an excessive burden on the server. If the business logic
were to reside on the web client, it will burden the communication network as well a possibly thin
client.
2.15 - Consider Figure 2.1. In addition to constraints relating the values of columns in one table to
columns in another table, there are also constraints that impose restrictions on values in a column or
a combination of columns within a table. One such constraint forces that a column or a group of
columns must be unique across all rows in the table. For example, in the STUDENT table, the
StudentNumber column must be unique (to prevent two different students from having the same
StudentNumber). Identify the column or the group of columns in the other tables that must be
unique across all rows in the table?
Answer:
Table
Column(s)
COURSE
CourseNumber
Since this contains the combination of the department and the number
that must be unique within the department. Note we will overlook the
fact this does not accommodate a department from offering several
“Special Topics” course with the same CourseNumber but different
titles. We could make this a combination of CourseNumber and
CourseName, but this is more succeptible to someone mistyping while
entering data.
PREREQUISITE
The combination of CourseNumber and PrerequisiteNumber
SECTION
SectionIdentifier
We assume that no two sections can have the same SectionIdentifier.
If we were to consider that SectionIdentifier is unique only within a
given course offered in a given term (such as section 2 of CS101)
then the answer changes to the combination of SectionIdentifier,
CourseNumber, Semester, and Year.
GRADE_REPORT
StudentNumber and SectionIdentifier
As per assumption stated in SECTION, the SectionIdentifier will be
different if a student takes the same course or a different course in
another term.
ScholarStock
CHAPTER 7(3): DATA MODELING USING THE ENTITY-RELATIONSHIP (ER) MODEL
Answers to Selected Exercises
7.16 - Consider the following set of requirements for a UNIVERSITY database that is used to
keep track of students' transcripts. This is similar but not identical to the database shown in Figure
1.2:
(a) The university keeps track of each student's name, student number, social security number,
current address and phone, permanent address and phone, birthdate, sex, class (freshman,
sophomore, ..., graduate), major department, minor department (if any), and degree program (B.A.,
B.S., ..., Ph.D.). Some user applications need to refer to the city, state, and zip of the student's
permanent address, and to the student's last name. Both social security number and student number
have unique values for each student.
(b) Each department is described by a name, department code, office number, office phone, and
college. Both name and code have unique values for each department.
(c) Each course has a course name, description, course number, number of semester hours, level,
and offering department. The value of course number is unique for each course.
(d) Each section has an instructor, semester, year, course, and section number. The section number
distinguishes different sections of the same course that are taught during the same semester/year;
its values are 1, 2, 3, ..., up to the number of sections taught during each semester.
(e) A grade report has a student, section, letter grade, and numeric grade (0, 1, 2, 3,
4 for F, D, C, B, A, respectively).
Design an ER schema for this application, and draw an ER diagram for that schema.
ScholarStock
Specify key attributes of each entity type and structural constraints on each relationship type. Note
any unspecified requirements, and make appropriate assumptions to make the specification
complete.
Answer:
7.16
7.17 - Composite and multi-valued attributes can be nested to any number of levels.
Suppose we want to design an attribute for a STUDENT entity type to keep track of previous college
education. Such an attribute will have one entry for each college previously attended, and this entry
is composed of: college name, start and end dates, degree entries (degrees awarded at that college,
if any), and transcript entries (courses completed at that college, if any). Each degree entry is formed
of degree name and the month and year it was awarded, and each transcript entry is formed of a
ScholarStock
course name, semester, year, and grade. Design an attribute to hold this information. Use the
conventions of Figure 7.5.
Answer:
{ PreviousEducation ( CollegeName, StartDate, EndDate,
{ Degree (DegreeName, Month, Year) },
{ Transcript (CourseName, Semester, Year, Grade) } ) }
7.16
3.18 - Show an alternative design for the attribute described in Exercise 7.17 that uses only entity
types (including weak entity types if needed) and relationship types.
ScholarStock
Answer:
This example illustrates a perceived weakness of the ER model, which is: how does the database
designer decide what to model as an entity type and what to model as a relationship type. In our
solution, we created a weak entity type ATTENDANCE; each (weak) entity in ATTENDANCE
represents a period in which a STUDENT attended a particular COLLEGE, and is identified by the
STUDENT and the StartDate of the period. Hence, the StartDate attribute is the partial key of
ATTENDANCE. Each ATTENDANCE entity is related to one COLLEGE and zero or more
DEGREEs (the degrees awarded during that attendance period). The TRANSCRIPT of the
STUDENT during each attendance period is modeled as a weak entity type, which gives the records
of the student during the attendance period. Each (weak) entity in TRANSCRIPT gives the record of
the sudent in one course during the attendance period, as shown in the ER diagram below. Other
ER schema designs are also possible for this problem.
7.19 - Consider the ER diagram of Figure 7.20, which shows a simplified schema for an airline
reservations system. Extract from the ER diagram the requirements and constraints that resulted in
this schema. Try to be as precise as possible in your requirements and constraints specification.
Answer:
ScholarStock
(1) The database represents each AIRPORT, keeping its unique AirportCode, the AIRPORT Name,
and the City and State in which the AIRPORT is located.
(2) Each airline FLIGHT has a unique number, the Airline for the FLIGHT, and the Weekdays on
which the FLIGHT is scheduled (for example, every day of the week except Sunday can be coded as
X7).
(3) A FLIGHT is composed of one or more FLIGHT LEGs (for example, flight number
CO1223 from New York to Los Angeles may have two FLIGHT LEGs: leg 1 from New York to
Houston and leg 2 from Houston to Los Angeles). Each FLIGHT LEG has a DEPARTURE AIRPORT
and Scheduled Departure Time, and an ARRIVAL AIRPORT and Scheduled Arrival Time.
(4) A LEG INSTANCE is an instance of a FLIGHT LEG on a specific Date (for example, CO1223 leg
1 on July 30, 1989). The actual Departure and Arrival AIRPORTs and
Times are recorded for each flight leg after the flight leg has been concluded. The
Number of available seats and the AIRPLANE used in the LEG INSTANCE are also kept.
(5) The customer RESERVATIONs on each LEG INSTANCE include the Customer Name, Phone,
and Seat Number(s) for each reservation.
(6) Information on AIRPLANEs and AIRPLANE TYPEs are also kept. For each AIRPLANE
TYPE (for example, DC-10), the TypeName, manufacturing Company, and
Maximum Number of Seats are kept. The AIRPORTs in which planes of this type
CAN LAND are kept in the database. For each AIRPLANE, the AirplaneId, Total number of seats,
and TYPE are kept.
7.20 - No solution provided.
7.21 Additional information:
ScholarStock
- There are 435 congresspersons in the U.S. House of Representatives.
- States have between one (AK, DE, MT, ND, SD, VT, and WY) and 52 (CA)
representatives.
- M represents number of bills during the 2-year session.
The resulting ER Diagram is shown in Figure A.
7.22 - A database is being constructed to keep track of the teams and games of a sports league. A
team has a number of players, not all of whom participate in each game.
It is desired to keep track of the players participating in each game for each team, the positions they
played in that game, and the result of the game. Try to design an ER schema diagram for this
application, stating any assumptions you make. Choose your favorite sport (soccer, football,
baseball ...).
Answer:
ScholarStock
The following design may be used for a baseball league. Here, we assumed that each game in the
schedule is identified by a unique Game#, and a game is also identified uniquely by the combination
of Date, starting Time, and Field where it is played. The Performance attribute of PARTICIPATE is
used to store information on the individual performance of each player in a game. This attribute can
be designed to keep the information needed for statistics, and may be quite complex. One possible
design for the Performance attribute may be the following (using the notation of Figure 7.8):
Performance( {Hitting(AtBat#, Inning#, HitType, Runs, RunsBattedIn, StolenBases)},
{Pitching(Inning#, Hits, Runs, EarnedRuns, StrikeOuts, Walks, Outs,
Balks, WildPitches)},
{Defense(Inning#, {FieldingRecord(Position, PutOuts, Assists, Errors)})} )
Here, performance is a composite attribute made up of three multivalued components:
Hitting, Pitching, and Defense. Hitting has a value for each AtBat of a player, and records
the HitType (suitable coded; for example, 1 for single, 2 for double, 3 for triple, 4 for
home run, 0 for walk, -1 for strikeout, -2 for fly out, ...) and other information
concerning the AtBat. Pitching has a value for each inning during which the player
pitched. Defense has a value for each inning a player played a fielding position. We can
have a less detailed or a more detailed design for the performance of a player in each
game, depending on how much information we need to keep in the database. Suitable
variations of the ER diagram shown below can be used for other sports.
ScholarStock
7.23 - Consider the ER diagram shown in Figure 7.21 for part of a BANK database. Each bank can
have multiple branches, and each branch can have multiple accounts and loans.
(a) List the strong (nonweak) entity types in the ER diagram.
(b) Is there a weak entity type? If so, give its name, its partial key, and its identifying relationship.
(c) What constraints do the partial key and the identifying relationship of the weak entity type specify
in this diagram?
(d) List the names of all relationship types, and specify the (min,max) constraint on each
participation of an entity type in a relationship type. Justify your choices.
ScholarStock
(e) List concisely the user requirements that led to this ER schema design.
(f) Suppose that every customer must have at least one account but is restricted
to at most two loans at a time, and that a bank branch cannot have more than
1000 loans. How does this show up on the (min,max) constraints?
Answer:
ScholarStock
(a) Entity types: BANK, ACCOUNT, CUSTOMER, LOAN
(b) Weak entity type: BANK-BRANCH. Partial key: BranchNo.
Identifying relationship: BRANCHES.
(c) The partial key BranchNo in BANK-BRANCH specifies that the same BranchNo value ay occur
under different BANKs. The identifying relationship BRANCHES specifies that
BranchNo values are uniquely assigned for those BANK-BRANCH entities that are related
to the same BANK entity. Hence, the combination of BANK Code and BranchNo together
constitute a full identifier for a BANK-BRANCH.
(d) Relationship Types: BRANCHES, ACCTS, LOANS, A-C, L-C. The (min, max) constraints
are shown below.
(e) The requirements may be stated as follows: Each BANK has a unique Code, as well as a
Name and Address. Each BANK is related to one or more BANK-BRANCHes, and the
BranhNo is unique among each set of BANK-BRANCHes that are related to the same BANK.
Each BANK-BRANCH has an Address. Each BANK-BRANCH has zero or more LOANS and
zero or more ACCTS. Each ACCOUNT has an AcctNo (unique), Balance, and Type and is
related to exactly one BANK-BRANCH and to at least one CUSTOMER. Each LOAN has a
LoanNo (unique), Amount, and Type and is related to exactly one BANK-BRANCH and to at
least one CUSTOMER. Each CUSTOMER has an SSN (unique), Name, Phone, and
Address, and is related to zero or more ACCOUNTs and to zero or more LOANs.
(f) The (min, max) constraints would be changed as follows:
ScholarStock
7.24 - Consider the ER diagram in Figure 7.22. Assume that an employee may work in up to two
departments or may not be assigned to any department. Assume that each department must have
one and may have up to three phone numbers. Supply (min, max) constraints on this diagram. State
clearly any additional assumptions you make. Under what conditions would the relationship
HAS_PHONE be redundant in this example?
Answer:
Assuming the following additional assumptions:
- Each department can have anywhere between 1 and 10 employees.
- Each phone is used by one, and only one, department.
- Each phone is assigned to at least one, and may be assigned to up to 10 employees.
- Each employee is assigned at least one, but no more than 6 phones.
The resulting ER Diagram will have the (min, max) constraints shown in Figure A.
Relationship HAS-PHONE would be redundant under the following conditions:
- Each employee is assigned all of the phones of each department that he/she works in.
- An employee cannot have any other phones outside the departments he/she works is.
EMPLOYEE
PHONE
ScholarStock
DEPARTMENT
HAS-PHONE CONTAINS
WORKS-IN
(0, 2)
(1, 3)
(1, 10)
(1, 10) (1, 1)
(1, 6)
7.25 - Consider the ER diagram in Figure 7.23. Assume that a course may or may not use a
textbook, but that a text by definition is a book that is used in some course. A course may not use
more than five books. Instructors teach from two to four courses. Supply (min, max) constraints on
this diagram. State clearly any additional assumptions you make. If we add the relationship ADOPTS
between INSTRUCTOR and TEXT, what (min, max) constraints would you put on it? Why?
Answer:
Assuming the following additional assumptions:
- Each course is taught by exactly one instructor.
- Each textbook is used by one and only one course.
- An instructor does not have to adopt a textbook for all courses.
- If a text exists:
- ___it is used in some course,
- ___hence it is adopted by some instructor who teaches that course.
- An instructor is considered to adopt a text if it is used in some course taught
- by that instructor.
The resulting ER Diagram will have the (min, max) constraints shown in Figure B.
ScholarStock
7.26 - Consider an entity type SECTION in a UNIVERSITY database, which describes the section
offerings of courses. The attributes of SECTION are SectionNumber, Semester, Year,
CourseNumber, Instructor, RoomNo (where section is taught), Building (where section is taught),
Weekdays (domain is the possible combinations of weekdays in which a section can be offered
{MWF, MW, TT, etc.}). Assume tat SectionNumber is unique for each course within a particular
semester/year combination (that is, if a course if offered multiple times during a particular semester,
its section offerings are numbered 1, 2, 3, etc.). There are several composite keys for SECTION, and
some attribute sare components of more than one key. Identify three composite keys, and show how
they can be represented in an ER schema diagram.
Answer:
ScholarStock
7.27 - Cardinality ratios often dictate the detailed design of a database. The cardinality ratio
depends on the real-world meaning of the entity types involved and is defined by the specific
application. For the binary relationships below, suggest cardinality ratios based on common-sense
meaning of the entity types. Clearly state any assumptions you make.
Entity 1
Cardinality Ratio
Entity 2
1.1.
Student
SocialSecurityCard
2.2.
Student
Teacher
3.3.
ClassRoom
Wall
4.4.
Country
CurrentPresident
5.5.
Course
TextBook
6.6.
Item (that can be
found in an order)
Order
7.7.
Student
Class
ScholarStock
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
8.8.
Class
Instructor
9.9.
Instructor
Office
10.10.
E-bay Auction
item
E-bay bid
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
Answer:
Entity 1
Cardinality Ratio
Entity 2
1-many
1.1.
Student
A student may have more
than one social security
card (legally with the
same unique social
security number), and
every social security
number belongs to a
unique student.
SocialSecurityCard
Formatted: Bullets and Numbering
Many-many
2.2.
Student
Generally students are
taught by many teachers
and a teacher teaches
many students.
Teacher
Formatted: Bullets and Numbering
Many-many
3.3.
ClassRoom
Don‟t forget that the wall
is usually shared by
adjacent rooms.
Wall
Formatted: Bullets and Numbering
1-1
4.4.
Country
Assuming a normal
country under normal
circumstances having one
president at a time.
ScholarStock
CurrentPresident
Formatted: Bullets and Numbering
Many-many
5.5.
Course
6.6.
Item (that can be
found in an order)
A course may have many
textbooks and a text book
may be prescribed for
different courses.
TextBook
Formatted: Bullets and Numbering
Many-many
Assuming the same item
can appear in different
orders.
Order
Formatted: Bullets and Numbering
Many-many
7.7.
Student
One student may take
several classes. Every
class usually has several
students.
Class
Formatted: Bullets and Numbering
Many-to-1
8.8.
Class
Assuming that every class
has a unique instructor. In
case instructors were
allowed to team teach,
this will be many-many.
Instructor
Formatted: Bullets and Numbering
1-1
9.9.
Instructor
10.10.
E-bay Auction
item
Assuming every instructor
has only one office and it
is not shared. In case of
offices shared by 2
instructors, the
relationship will be 2-1.
Conversely, if an
instructor has a joint
appointment (in two
departments) and offices
in both departments, then
the relationship will be 12. In a very general case,
it may be many-many.
1-many
1 item has many bids and
ScholarStock
Office
E-bay bid
Formatted: Bullets and Numbering
Formatted: Bullets and Numbering
a bid is unique to an item
(assuming a regular
auction format).
7.28-7.29 – No solutions provided.
3.30 - Illustrate the UML Diagram for exercise 7.16. Your UML design should observe the following
requirements:
a.a. The student should have the ability to compute his/her GPA and add or drop majors and
minors.
b.b. Each department should be to able add or delete courses and hire or terminate faculty.
c.c. Each instructor should be able to assign or change a grade to a student for a course.
Note: Some of these functions may be spread over multiple classes.
Answer:
ScholarStock
Formatted: Bullets and Numbering
STUDENT
DEPARTMENT
SECTION
Name:
Name: {CS,…}
Instructor
DepartmentCode: {Codes}
Semester
StudentNumber
OfficeNumber
Year
SocialSecNumber
OfficePhone:
add_course
<Phone>
delete_course
College: {Colleges}
hire_faculty
CourseNumber
fire_faculty
StudentNumber
<Name>
CurrentAddress:
<Address>
CurrentPhone:
<Phone>
PermanentAddress:
SectionNumber: {1,2,…}
GRADE REPORT
SectionNumber
LetterGrade: {A,B,C,D,F}
<Address>
NumberGrade: {0,1,2,3,4}
PermanentPhone:
<Phone>
PREREQUISITE
compute_gpa
Birthdate: Date
CourseNumber
add_major
Sex: {M,F}
PrerequisiteNumber
drop_major
Class: {F,So,J,Se,G}
COURSE
add_minor
MajorDepartment
CourseName
drop_minor
MinorDepartment
Description
INSTRUCTOR
Name:
CourseNumber: {Course}
<Name>
Degree: {BA,BS,…}
SemesterHours
Phone:
Level
<Phone>
assign_grade
DepartmentCode
change_grade
Department
This one isn‟t finished yet. The relationships need to be added and some of the functions should be
moved to span classes.
ScholarStock
Download