You are on page 1of 7

CINS 370 - Homework 2 -

Chapter 3
Review Questions
3.1. Discuss the role of a high-level data model in the database design process.
Answer: After the design of database, next step is to create a conceptual schema for the database called
as conceptual database design. High level data models assist in conceptual design and helps express
data requirements of the users and includes detailed descriptions of the entity types, relationships, and
constraints. It also ensures that all the data requirements are met and there are no errors.

3.2. List the various cases where use of a NULL value would be appropriate.
Answer: Null value would be appropriate when a particular entity does not have an applicable value for
an attribute. Null value case arises when it is known that the attribute value exists but it is missing. It can
also arise when it is known whether the attribute value exists.

3.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).
Answer:
Entity: Entity is a thing or object in the real world with an independent physical or conceptual existence.
Attribute: An attribute is a particular property that describes entity (e.g. Name, Company, Position etc.).
Attribute Value: Attribute value is the real data (value) of a particular entity for each of its attributes.
Relationship Instance: Relationship Instance is an association of entities, where the association includes
exactly one entity from each participating entity type.
Composite Attribute: Composite attribute is an attribute that can be divided into smaller subparts,
which represent more basic attributes with dependent meanings.
Multivalued Attribute: Multivalued attribute is an attribute that can have many values.
Derived Attribute: Derived attribute is an attribute whose value is derived or computed from another
attribute or combination of attributes.
Complex Attribute: Complex attribute is composite and multivalued attributes nested in random
manner.
Key Attribute: Key attribute is an attribute whose values are distinct for each individual entity in the
collection.
Value Set (Domain): Value set specifies the set of values that may be assigned to that attribute for each
individual entry.
3.4. What is an entity type? What is an entity set? Explain the differences among an entity, an entity
type, and an entity set.
Answer: Entity type defines a collection of entities that have the same attributes. Entity set is a named
collection of related data. The differences between entity, an entity type, and entity set are as follows:
Entity is a person, place, thing, event, object, or even a concept. It may be tangible or intangible.
Examples of an entity are employees, company, department etc.
Entity type describes the schema or intension for a set of entities that share the same structure.
Entity set is the extension of the entity type.

3.5. Explain the difference between an attribute and a value set.


Answer: An attribute is a particular property that describes entity. A value set specifies the set of values
that may be assigned to that attribute for each individual entry. An example of an attribute is Employee
Age and we can set the value set for this attribute to a range of integer numbers.

3.6. What is a relationship type? Explain the differences among a relationship instance, a relationship
type, and a relationship set.
Answer: Relationship type is the nature of a relationship between entities, expressed by the number of
their possible occurrences in the related tables. The differences between a relationship instance, a
relationship type, and a relationship set are:
Relationship instance is an association of entities, where the association includes exactly one
entity from each participating entity type.
Relationship type defines a relationship set among entities from these types.
Relationship set is a set of associations.

3.7. What is a participation role? When is it necessary to use role names in the description of
relationship types?
Answer: Participation role is the part that each entity participates in a relationship. It is necessary to use
role name in the description of relationship type when the same entity type participates more than once
in a relationship type in different roles. In other words, role names are necessary in recursive
relationships.

3.8. Describe the two alternatives for specifying structural constraints on relationship types. What are
the advantages and disadvantages of each?
Answer: Cardinality ratio: The cardinality ratio for a binary relationship specifies the maximum number
of relationship instances that an entity can participate in. For example, in the WORKS_FOR bi-nary
relationship type, DEPARTMENT: EMPLOYEE is of cardinality ratio l : N, meaning that each department
can be related to (that is, employs) any number of employees, but an employee can be related to (work
for) only one department. The possible cardinality ratios for binary relationship types are 1:1, l : N, N : l,
and M : N.
Participation constraint: The participation constraint specifies whether the existence of an entity
depends on its being related to another entity via the relationship type. This constraint specifies the
minimum number of relationship instances that each entity can participate in, and is sometimes called
the minimum cardinality constraint. There are two types of participation constraints-total and partial.
Exercises:
3.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. STATEs Name (e.g., Texas, New York, California)
and include the Region of the state (whose domain is {Northeast, Midwest, Southeast,
Southwest, West}).
Each 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 sponsoredthat is, proposedthe 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.
Answer:
3.25. Consider the ER diagram in Figure 3.24. 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, 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?
Answer: Our assumption in this case is that there is only one instructor for a particular course. Also
there is a textbook for each course but it can also be used for another courses.

Chapter 4
Review Questions
4.1. What is a subclass? When is a subclass needed in data modeling?
Answer: The subclass namely called child class is that class which extends another class so that it
inherits both protected and public members of that class. The object or pointer of the base class could
then hold the values of its child classes. Subclass is an easy way to define inheritance relationship
between two classes. The relationship between two classes with respect to data helps to design the
structure of data.
4.2 Definitions:
Superclass of a subclass: A subclass is a class that derives from another class. A subclass inherits state
and behavior from all of its ancestors. The term superclass refers to a classs direct ancestor as well as all
of its ascendant classes.
Superclass/subclass relationship: While developing a class diagram, we might discover that one or more
attributes of a class are characteristics of only some individuals of that class, but not of others. This
probably indicates that you need to develop a subclass of the basic class type. We call the process of
designing subclasses from top-down specialization; a class that represents a subset of another class
type can also be called a specialization of its parent class.
IS-A relationship: We call the relationship between a subclass and its superclass an IS-A-SUBCLASS-OF
relationship, or simply an IS-A relationship.
Specialization: A specialization is a process of classifying a class of objects into more specialized
subclasses.
Generalization: Generalization is the inverse process of generalizing several classes into a higher-level
abstract class that includes the objects in all these classes.
Category: A category is a subset of the union of its superclasses. A category T is a class that is a subset of
the union of n defining superclasses D1, D2..Dn, n>1 and is formally specified as follows: T (D1 D2 ...
Dn).
Specific (local) attributes: Attributes that apply only to entities of a particular subclass such as Typing
Speed of SECRETARY- are attached to the rectangle representing that subclass. These are called specific
(local) attributes of the subclass.
Specific relationships: Sometimes it is necessary to create additional classes of entities, either because
of additional specific attributes or because of specific relationship types.

4.3 Discuss the mechanism of attribute/relationship inheritance. Why is it useful?


Answer: Subclass members inherit all attributes of the superclass (type inheritance). Subclass members
inherit all relationships of superclass this is called as relationship inheritance. When we need to apply
conditions (based on a particular property) on a complete set, inheritance makes it easy as all the
elements inherit same property.

4.4 Discuss user-defined and predicate-defined subclasses, and identify the differences between the
two.
Answer: In some specializations we can determine exactly the entities that will become members of
each subclass by placing a condition on the value of some attribute of the superclass. They are called
predicate-defined subclasses. If we dont have a condition for determining membership in a subclass,
the subclass is called user-defined. Membership in such a subclass is determined by the database users
when they apply the operation to add an entity to the subclass; hence, membership is specified
individually for each entity by the user, not by any condition that may be evaluated automatically.

4.5 Discuss user-defined and attribute-defined subclasses, and identify the differences between the
two.
Answer: In some specializations we can determine exactly the entities that will become members of
each subclass by placing a condition on the value of some attribute of the superclass. Each subclasses
are called predicate-defined subclasses. If all subclasses in a specialization have their membership
condition on the same attribute of the superclass, the specialization itself is called an attribute defined
specialization and the attribute is called the defining attribute of the specialization. In this case, all the
entities with the same value for the attribute belong to the same subclass.
4.6 Discuss the two main types of constraints on specializations and generalizations:
Answer: Disjointness constraint: There are subclasses of the specialization which must be disjoint, i.e.,
an entity belongs to at most one subclass.
Completeness constraint: specify that every entity in the superclass must be a member of some subclass
in the specialization. Partial specialization allows an entity not to belong to any of the subclasses.

4.7. What is the difference between a specialization hierarchy and a specialization lattice?
Answer: A subclass itself may have further subclasses specified on it, forming a hierarchy or a lattice of
specializations. For a specialization hierarchy every subclass participates in only one class/subclass. For a
specialization lattice a subclass can be a subclass in more than one class/subclass.

4.8 Difference between specialization and generalization and why we dont represent them on
schema diagrams?
Answer: The term Generalization is about bottom-up approach in which two lower level entities
combine to form a higher level entity. In generalization, the higher level entity can also combine with
other lower level entity to make further higher level entity. E.g. if we have a bank account then we have
further division which account like type of account so types of account it maybe current or business
account also that account current or saving the bottom up approach lower to high level of entity.
Specialization is opposite to generalization. It is a top-down approach in which one higher level entity
can be broken down into lower level entity. In specialization, some higher level entities may not have
lower-level entity sets at all. Thats why we dont represent the difference on schema diagrams.
4.9 How does a category differ from a regular shared subclass? What is a category used for? Illustrate
your answer with examples.
Answer: A category is a subset of the union of its superclasses. An entity that is a member of a category
must exist in only one of the superclasses.e.g. An OWNER may be a COMPANY, a BANK, or a PERSON.
A shared subclass is a subset of the intersection of the superclasses. An entity that is a member of the
shared subclass must exist in all superclasses. E.g. an engineering manager must be An ENGINEER, a
MANAGER, and a SALARIED_EMPLOYEE.

Exercise:
4.20. Design a database to keep track of information for an art museum. Assume that the following
requirements were collected (notice that the scope of this problem has been reduced from the
version stated in the textbook):
The museum has a collection of ART_OBJECTS. Each ART_OBJECT has a unique Id_no, an Artist (if
known), a Year (when it was created, if known), a Title, and a Description. The art objects are
categorized in several ways, as discussed below.
ART_OBJECTS are categorized based on their type. There are three main types: PAINTING,
SCULPTURE, and STATUE, plus another type called OTHER to accommodate objects that do not fall
into one of the three main types.
A PAINTING has a Paint_type (oil, watercolor, etc.), material on which it is Drawn_on (paper,
canvas, wood, etc.), and Style (modern, abstract, etc.).
A SCULPTURE or a statue has a Material from which it was created (wood, stone, etc.), Height,
Weight, and Style.
An art object in the OTHER category has a Type (print, photo, etc.) and Style.
Draw an EER schema diagram for this application. Discuss any assumptions you make, and that justify
your EER design choices.
Answer:

You might also like