Chapter 03 Solved
Chapter 03 Solved
CHAPTER 3
ENTITY-RELATIONSHIP DATA MODELING: PROCESS AND
EXAMPLES
3.2
3.3
3.4
Explain how user interviews and observations can be used to develop components of a
data model.
The goal of a user interview is to learn of potential entities and their relationships to one another.
It is also important to obtain source documents, such as existing forms and reports, which indicate
entities and their relationships and also provide lists of potential attributes. The goal in an
interview is to obtain an accurate description of that users or user groups perspective or external
view(s) of the data. Results from user interviews and observations will be documented as notes,
sketches, data element definitions, and so forth. Team members should create consistent
documentation and record their results into a consolidated repository.
3-1
3.5
3.6
How can forms and reports be used to develop components of the data model?
Existing documents can be analyzed to determine how data is currently viewed and processed,
and new documents indicate either changes in data views or the need for additional data to be
maintained.
3.7
How can existing files be used to develop components of the data model?
Existing files are excellent source of requirements. You can often determine entities and attributes
of entities by examining these files. For larger databases, data modeling products such as ERWin
and Visio can be used to reverse engineer an existing database to create a data model.
3.8
What does the term reverse engineer mean in the context of data models?
In the context of data modeling, the term reverse engineer means to that a current database in its
physical form or its internal schema and create a conceptual schema.
3.9
3.10
3.11
Describe a domain expert and explain advantages and disadvantages of using domain
experts in requirements specification.
Domain experts are individuals who have deep knowledge of a particular problem area.
For example, in a company such as 3M, there may be thousands upon thousands of abrasive
products. In this situation, there may be dozens of different ways to develop subtypes/supertype
relationships or category clusters. Domain experts can be invaluable for sorting through the
myriad of data modeling choices, eliminating many possibilities on the basis of their knowledge.
Using domain experts, however, has a downside. Nothing is more dangerous in a development
project than a group of experts sitting around a table saying, If I were a user, Id want No
one but a user knows what data users want or the form(s) in which they need it. So, although
domain expertise can shed light on a particular project, the primary focus for requirements
determination must be the users themselves.
3.12
In the following statement, what is probably an entity and what is probably an attribute?
3-2
In the following phrase, what is probably an entity and what is probably an attribute?
Can two entities be referenced here? If so, what are they?
I use the department name of professor
Professor is probably the entity while department name is probably the attribute. You would
probably not think of two entities being referenced here because of the wording department
name of professor. The of would imply that department name belong to (or is an attribute of)
professor. One might also imply that since the wording preceding the 'of' references a department
name, there may be a department entity.
3.14
Explain why the list of entities is likely to change as the data modeling project proceeds.
As the project progresses, this list will be modified many times. Some of the items in the list will
be found to be synonyms of one another; some items will be removed because they are found to
be irrelevant, and others will be added.
3.15
3.16
3.17
3.18
Explain in your own words why there is no such thing as a one-way relationship.
One thing cannot be related to a second thing with out the second thing being related to the first.
If I am you brother then (like it or not) you are my brother or sister. Even in a recursive
relationship where only one entity is involved, instances of the entity are related to each other.
3.19
3-3
3.20
Give an example of an entity that has no obvious identifier. What should be done with
the entity?
A very simple example is a house or address. Initially you may think that the phone number of a
house would be an identifier but some houses may not have phones and all instances of the entity
must have an identifier. Next you may think house number and street name but what about rural
areas. These areas typically have Route Numbers but the houses do not have house numbers.
Then you could use Route Numbers and P.O. Box but houses in the city do not have P.O. Boxes.
(Note: The example above has played havoc with 911 service)
When this occurs, check to see if the entity is ID-dependent. If not, makes sure that it has all its
attributes and is not part of another entity.
3.21
Give an example, other than the one in this text, of two different entities that have the
same identifier.
Assume you are developing a database of a University. You find the entities Student, Professors,
Staff, and Parents. All four of these may have the same identifier, Social Security, Number.
3.22
3.23
3.24
3.25
3.26
Give an example of two attributes that suggest the need for a new entity. Choose one
whose name includes the word name and one whose name does not include name.
Attributes that are names of something other than the entity in which they reside can suggest the
need for an additional entity or relationship. For example, in a SALESPERSON entity, an
attribute such as Region suggests that there may be a need for a new entity named REGION. If
so, the Region attribute is replaced by the relationship between SALESPERSON and REGION.
Similarly, an entity PART with an attribute Category suggests the need for a CATEGORY entity
with a relationship to PART.
3.27
3-4
This is perhaps the most important step because if the data model is incorrect, then the database
design will be incorrect.
3.28
Explain what is wrong with this statement: My data model is a better model of reality
than your data model.
We need to construct a data model that is the best model of the mental model that is in the minds
of the users of the system. Period. We need to know whether a model accurately reflects how the
users think about their world. The only relevant question when evaluating a data model is the
following: How well does it fit the mental models of the people who are going to use the
system? The person who is doing the data modeling may think the model under construction is a
weird way of viewing the world, but that is not the point. The only valid point is: Does it fit how
the users view their world?
3.29
If someone made the statement in question 3.28 to you, how would you respond?
The best model is the one that most closely fits fit how the users view their world.
3.30
Explain the following statement: We cannot say that human models are an accurate
representation of the real world because we know nothing about that world. We can only
say that those model work well enough that humans can think and communicate in a
fashion that has, so far, facilitated human species survival.
We know only what we have learned. We have learned only what we have been taught through a
variety of ways. Everything we do, including the way we model, is influenced by our personal
history. We have now way of knowing how our model would appear if our experiences were
changed.
3.31
3.32
3.33
3-5
3.34
3-6
Examine the subscription form shown in Figure 3-28. Using the structure of this form, do
the following:
A. Create a single entity model. Specify the identifier and attributes.
SUBSCRIPTION
Address
Zip
Name
City
State
Subscription Length
Payment Status
First Issue
B. Create a model with two entities, one for customer and a second for subscription.
Specify identifiers, attributes, relationship name, type, and cardinalities.
CUSTOMER
SUBSCRIPTION
Name
Address
City
State
Zip
OrderBy /
SentTo
Subscription_Length
First_Issue
Payment_Status
Consider the traffic citation shown in Figure 3-29. The rounded corners on this form
provide graphical hints about the boundaries of entities represented here.
A. Create a data model with five entities. Use the data items on the form to specify
identifiers and attributes for those entities.
3-7
TICKET
ViolationDay
ViolationMonth
ViolationYear
ViolationTime
Receives /
GivenTo
Dist
Detach
LocationMiles
LocationDirection
Location
Route/Street
VIOLATIONS
DescriptionOf /
ViolatedOn
ViolationDescription
Gives /
GivenBy
RegisteredBy /
RegisteredTo
OFFICER
PersonnelNumber
VEHICLE
Officer_Name
VehicleLicense
State
Color
Make
Type
VIN
B. Specify relationships among the entities. Name the relationship and give its type and
cardinalities. Indicate which cardinalities can be inferred from data on the form and
which need to be checked out with systems users.
Relationships, Types, and Cardinalities are show on the E-R Diagram. From the form you can
infer that a Driver register only one Vehicle. This is because of the single Registered Owner
in the Vehicle area. You can also imply that a Ticket can have several Violations because of
the multiple lines and the wording Violations (plural). You can imply that only one Officer
can give the Ticket because there is room for only one Officer Signature.
3.37
Examine the list of email messages in Figure 3-30. Using the structure and example
data items in this list, do the following:
A. Create a single entity data model for this list. Specify the identifier and all entities.
EMailMessage
MailID
From
Subject
Date
Size
3-8
B. Modify your answer to A to include entities SENDER and SUBJECT. Specify the
identifiers and attributes of entities and the type and cardinalities of relationships.
Explain which cardinalities can be inferred from Figure 3-30 and which need to be
checked out with users.
EMailMessage
SUBJECT
MailID
Date
Size
MessagesFor /
About
Subject
SENDER
SenderID
Sends /
SentBy
The one-to-many relationships between EMailMessage and Subject can be implied because
the subject repeats. For example, there are three messages with the Subject RE:Hotel.
The one-to-many relationships between EMailMessage and Sender can also be implied
because the sender repeats. For example, there are three messages from Tom Cooper.
C. There are two different styles of email address in the From column in Figure 3-30.
One style has the true email address; the second style (Tom Cooper, for example) is
the name of an entry in the users email dictionary. Create two categories of
SENDER for these two styles. Specify identifiers and attributes.
SUBJECT
EMAILMESSAGE
Mail_Id
Date
Size
Subject
For /
About
Sends /
SentBy
SENDER
TrueAddress
DICTIONARYENTRY
EMAILADDRESS
LogicalName
Logical_Name
3-9
3.38
Examine the list of stock quotations in Figure 3-31. Using the structure and example
data items in this list, do the following:
A. Create a single entity data model for this list. Specify the identifier and attributes.
STOCKQUOTE
Symbol
Name
LastQuote
Change
PercOfChange
B. Modify your answer to A to include the entities COMPANY and INDEX. Specify the
identifier and attributes of the entities and the type and cardinalities for relationships.
Explain which cardinalities can be inferred from Figure 3-31 and which need to be
checked out with users.
COMPANY
INDEX
Symbol
Symbol
Index_Name
Name
Lists /
ListedIn
Valued /
ValurFor
1
STOCKQUOTE
Change
PercOfChange
Each of these relationships is a One-to-1. A Quote is for a single Index or Company and an Index
or Company has one quote. They are Identifying relationships because the key to all three tables
is the same, the Symbol. This is a unique situation because a Stockquote will belong to either an
Index or a Company but not both. All of these can be implied by the data shown.
C. The list in Figure 3-31 is for a quotation on a particular day at a particular time of
day. Suppose that the list were changed to show closing daily prices for each of
these stocks and that it includes a new column: QuoteDate. Modify your model in B
appropriately.
3-10
INDEX
Symbol
Symbol
Index_Name
Name
Lists /
ListedIn
Valued /
ValurFor
P
STOCKQUOTE
QuoteDate
Change
PercOfChange
The only things that would change are the identifier and the maximum cardinality for the
weak entity StockQuote. The identifier would now need to include the QuoteDate and the
cardinality would be 1:N rather than 1:1.
D. Change your model in C to include the tracking of a portfolio. Assume the portfolio
has an owner name, phone, email address, and a list of stocks held. The list
includes the identity of the stock and the number of shares held. Specify all
additional entities, their identifiers and attributes, and the type and cardinality of all
relationships.
PORTFOLIO
OwnerName
Phone
Email
STOCKPURCHASE
Buys /
SoldTo
NumberOfShares
SoldTo /
BoughtFrom
INDEX
SoldTo /
BoughtFrom
COMPANY
Symbol
Symbol
Index_Name
Name
Lists /
ListedIn
Valued /
ValurFor
P
STOCKQUOTE
QuoteDate
Change
PercOfChange
E. Change your answer to question D to keep track of portfolio stock purchases and
sales in a portfolio. Specify entities, their identifiers and attributes, and the type and
cardinality of all relationships.
3-11
STOCKPURCHASE
Buys /
SoldTo
SoldTo /
BoughtFrom SoldTo /
BoughtFrom
Sells /
SoldBy
INDEX
STOCKSALE
NumberOfShares
NumberOfShares
BoughtFrom /
SoldTo
COMPANY
Symbol
Symbol
Index_Name
SoldTo /
BoughtFrom
Lists /
ListedIn
Name
Valued /
ValurFor
P
STOCKQUOTE
QuoteDate
Change
PercOfChange
3.39
Figure 3-32 shows the specifications for single stage air compressor products. Notice
that there are two categories of products for different Air Performance: the A models are
at 125 (pounds per square inch of pressure), and the E models are at 150 (pounds per
square inch of pressure). Using the structure and example data items in this list, do the
following:
A. Create a category cluster to represent these compressors. The generic entity will
have attributes for all single stage compressors, and the category entities will have
attributes for products having the two different types of Air Performance. Assume
there might be additional products with different types of Air Performance. Specify
the entities, identifiers, attributes, relationships, type of category cluster, and possible
determinant.
3-12
125LB
PumpRPM
CFMDisp
DELDAir
150LB
PumpRPM
CFMDisp
DELDAir
The Entities, Identifiers, Attributes, relationships are sown in the diagram above. This is a
complete category cluster. There does not appear to be a determinate.
B. Figure 3-33 shows a different model for the compressor data. Explain the entities,
their type, the relationship, its type, and its cardinality. How well do you think this
model fits the data shown in Figure 3-32?
The SS_COMPRESSOR entity is a strong entity and the AIR_PERFORMANCE_TYPE
entity is a weak entity. The relationship is one-to-many since a compressor may have more
than one type. The relationship is an identifying connection relationship since the identifier
for a type requires the Model and the AirPerformance to be unique. Each type must belong to
an air compressor but an air compressor does not have to have a type. Both models (A. and
B.) fit the data show.
C. Compare your answer in question A to the model in Figure 3-33. What are the
essential differences in the two models? Which do you think is better?
The essential difference is that A. models the Type as a category cluster with a maximum of
two types. The model will allow additional types because it is incomplete but the additional
types cannot have the PumpRPM, CFMDisp, and DELDAir attributes. Model B. models the
Type as a weak entity with an unlimited number of types. I would prefer the model in B.
because it will allow you to have more than two Types.
D. Suppose you had the job of explaining the differences in these two models to a
highly motivated, intelligent end user. How would you accomplish this?
I would focus the discussion on the ability of model B. to allow an unlimited number of air
compressor types. This makes the model much more versatile.
3.40
Figure 3-34 shows a listing of movie times at theaters in Seattle. Using this data as an
example, do the following:
A. Create a model to represent this report using the entities MOVIE, THEATER, and
SHOW_TIME. Assume that theaters may be showing movies other than this one.
Although this report is for a particular day, your data model should allow for movie
3-13
times on different days as well. Specify the identifier of the entities and their
attributes. Name the relationships, describe the relationships type, and indicate
relationship cardinality.
THEATER
SHOWTIMES
MOVIE
Movie_Name
MovieDescription
WhenShown /
WhatShown
Day
Time
Theater_Name
Shown /
ShownAt
Distance
Street
City
Phone
DISTANCE
DistanceTo /
DistanceFrom
MovieDescription
THEATER
SHOWTIMES
MOVIE
Movie_Name
Distance
WhenShown /
WhatShown
Day
Time
DistanceTo /
DistanceFrom
Theater_Name
Shown /
ShownAt
Street
City
Phone
3-14
answer in A for this situation. Specify the identifier of entities and their attributes.
Name the relationships, describe the relationships type, and indicate relationship
cardinality.
A. and B. Both models would be done as shown below.
SUBURB
Area_Name
State_Name
DISTANCE
DistanceTo /
DistanceFrom
MovieDescription
Distance
THEATER
SHOWTIMES
MOVIE
Movie_Name
DistanceTo /
DistanceFrom
WhenShown /
WhatShown
Day
Time
Theater_Name
Shown /
ShownAt
Street
City
Phone
The only change that would need to be made is to add the State to the key of the Suburb. This is
done in case the same suburb name is used to more than one state.
D. Modify your answer to question C to include the leading cast members. Assume that
the role of a cast member is not to be modeled. Specify the identifier of new entities
and their attributes. Name new relationships, describe their relationships type, and
indicate their cardinality.
3-15
DISTANCE
DistanceTo /
DistanceFrom
Distance
DistanceTo /
DistanceFrom
LEADINGCASTS
Cast_Name
PlaysIn /
Stars
Movie_Name
MovieDescription
THEATER
SHOWTIMES
MOVIE
WhenShown /
WhatShown
Day
Time
Theater_Name
Shown /
ShownAt
Street
City
Phone
Since a cast member can be in many movies and a move can have many leading castmembers, the
relationship is Many-to-Many or a Non-specific connection relationship.
3.41
Consider the three reports in Figure 3-35. The data are samples of data that would
appear in the reports like these.
A. Make a list of as many potential entities as these reports suggest to you.
Issuer
Ingredient
Supplier
Product
B. Examine your list to determine whether any entities are synonyms. If so, consolidate
your list.
It is possible that Issuer and Supplier are synonyms. This cannot be determined from the
report data so would need to check with the user.
C. Construct an IDEF1X diagram showing relationships among your entities. Name
each relationship and specify cardinalities. Indicate which cardinalities you can justify
on the basis of these reports and which you will need to check out with the users.
3-16
ISSUER
IssuerName
Produces /
ProducedBy
ProductName
INGREDIENT
Uses /
UsedIn
IngredientName
Costs /
SellsFor
PriceList
SUPPLIER
SupplierName
3.42
Sells /
Charges
Price
SONG
Title
Time
ARTIST
ArtistName
ROLE
Role
The cardinalities seem to be apparent. The only one I could question is the cardinality
between CD and Song. Could a Song appear on more than one CD.
C. Consider a CD that does not involve a musical, so there is no need for ROLE. There
is, however, a need for an entity SONG_WRITER. Create an IDEF1X diagram for
CD, ARTIST, SONG, and SONG_WRITER. Assume that an ARTIST can either be a
group or an individual. Assume that some artists record individually and as part of a
group.
3-17
CD
CDTitle
Comment
BookBy
MusicBy
LyricsBy
DirectedBy
CoreographedBy
SONG
ARTISTGROUP
Title
GroupName
Time
1
SONGWRITER
WriterName
D. Combine the models you developed in your answers to questions B and C. Create
new entities if necessary, but strive to keep your model as simple as possible.
Specify identifiers and attributes of new entities, name new relationships, and
indicate their cardinalities.
ROLE
ARTIST
Role
ArtistName
1
CD
CDTitle
Comment
BookBy
MusicBy
LyricsBy
DirectedBy
CoreographedBy
SONG
ARTISTGROUP
Title
GroupName
Time
1
SONGWRITER
WriterName
3.43 The Jefferson Dance Club teaches social dancing and offers both private and group
lessons. Jefferson charges $45 per hour per student (or couple) for a private lesson and
charges $6 per hour per student for a group lesson. Private lessons are offered six days
per week (from noon until 10 p.m.). Group lessons are offered in the evenings.
3-18
Jefferson employs two types of instructors: full-time salaried instructors and part-time
instructors. The full-time instructors are paid a fixed amount per week, and the part-time
instructors are paid either a set amount for an evening or a set amount for teaching a
particular class.
In addition to the lessons, Jefferson sponsors two weekly social dances featuring
recorded music. The admission charge is $5 per person. The Friday night dance is the
more popular and averages around 80 people; the Sunday night dance attracts about 30
attendees. The purpose of the dances is to give the students a place in which to practice
their skills. No food or drinks are served.
Jefferson wants to develop an information system to keep track of students and the
classes they have taken. Jeffersons managers also want to know how many and which
types of lessons each teacher has taught and to compute the average revenue generated
per lesson for each of their instructors.
Suppose Jefferson has hired you to construct a database for them. To do this, you decide
to create a data model. You know you will need to interview users and gather forms,
reports, and other requirements. Before you do this, however, you decide to construct a
trial data model. You are hoping that this model will help you determine specific questions
that you will need to ask Jefferson personnel.
A. To construct such a trial model, read through the preceding description and pick out all
of the important nouns. From these nouns, construct a list of potential entities.
Nouns
club
hour
evening
fixed amount
admission
Sunday
drinks
them
forms
personnel
lessons
couple
instructor
set amount
person
attendees
manager
you
reports
private lesson
student
full-time-salaried instructor
dance
Friday
skill
revenue
data model
requirements
group lesson
week
part-time instructor
music
people
food
database
user
question
Entities
lessons
instructor
person
user
private lesson
dance
attendee
group lesson
full-time-salaried instructor
skill
student
part-time instructor
manager
B. Review the list you made in A and eliminate any synonyms. Also, identify entities that
are subtypes or category entities. Name a likely identifier for each entity. Eliminate any
hard-to-justify entities.
Lesson: Id = LessonID
Group lesson: Subtype of Lesson
Instructor: Id = Instructor Name
part-time instructor: Subtype of Instructor
3-19
C. This description does not provide sufficient data for you to specify attributes of the
entities you have identified. Therefore, create an IDEF1X diagram that shows only
entities and relationships. Name each relationship and specify its cardinalities. Justify
the cardinality decisions you make.
ATTENDEE
Attends /
AttendedBy
DANCE
Attends /
AttendedBy
STUDENT
Takes /
IsTakenBy
Teaches /
TaughtBy
INSTRUCTORS
PARTTIME
FULLTIME
LESSON
PRIVATE
GROUP
D. Now, examine your model and make a list of questions that you would need to ask in
order to create an accurate data model.
1. Can people other than students attend a dance. If no, then ATTENDEE can be eliminated.
2. Can more than on instructor teach a lesson. This affects the cardinality of the IsTaughtBy
relationship.
3. Are there any kind of Instructors other than part-time and full-time.
E. Do you think the process of creating a trial data model before interviewing users is a
good idea? What are the advantages? What are the disadvantages?
It is definitely a good idea. You can get answers more quickly this way. It also gets the users
involved in the process much earlier. The only disadvantage is the extra time required from users
but the advantages far outweigh this disadvantage.
3.44San Juan Sailboat Charters is an agent that leases sailboats to customers for a fee. San
Juan does not own any sailboats; it leases boats on behalf of the owners who wish to
earn income when they are not using their boats. San Juan charges a fee for its service.
San Juan specializes in boats that can be used for multi-day or weekly chartersthe
smallest sailboat in its inventory is 28 feet and the largest is 51 feet.
Each sailboat is fully equipped at the time it is leased. Most of the equipment is provided
by the owners, but some is added by San Juan. The owner-provided equipment includes
what is fixed on the boat, such as radios, compasses, depth indicators and other
instrumentation, stoves, and refrigerators. Other owner-provided equipment is not
installed as part of the boat. Such equipment includes sails; lines; anchors; dinghies; life
preservers; and (in the cabin) dishes, silverware, cooking utensils, bedding, and the like.
San Juan provides consumable equipment, (which can also be considered supplies)
such as charts, navigation books, tide and current tables, soap, dishtowels, toilet paper,
and similar items.
3-20
An important part of San Juans responsibilities is keeping track of the equipment on the
boat. Much of it is expensive, and some of it, particularly what is not attached to the
boat, can easily be lost or stolen. Customers are responsible for all equipment during
the period of their charter. San Juan likes to keep accurate records of its customers and
the charters, not only for marketing but also for recording the trips that customers have
taken. Some itineraries and weather conditions are more dangerous than others, so San
Juan likes to know which customers have what experience.
Most of San Juans business is bare-boat chartering, which means that no skip-per or
other crew is provided. In some cases, however, customers request the services of a
skipper or other crew member, so San Juan hires such personnel on a part-time basis.
Sailboats often need maintenance. San Juan is required by its contracts with the boat
owners to keep accurate records of all maintenance activities and costs, including
normal activities (for example, cleaning or engine-oil changes) and unscheduled repairs.
In some cases, repairs are necessary during a charter.
A boat engine, for example, might fail while the boat is far away from San Juans facility.
In this case, the customers radio the San Juan dispatcher, who determines the best
facility to make the repair and sends the facilitys personnel to the disabled boat. To
make these decisions, the dispatchers need information about repair facilities as well as
past histories of repair quality and costs.
Suppose that San Juan has hired you to construct a database for them. To do this, you
decide to create a data model. You know you will need to interview users and gather
forms, reports, and other requirements. Before you do this, however, you decide to
construct a trial data model. You are hoping that this model will help you determine
specific questions that you will need to ask Jefferson personnel.
A.
B.
To construct such a trial model, read through the preceding description and pick out
all of the important nouns. From these nouns, construct a list of potential entities.
Nouns
agent
owners
feet
trip
crew
unscheduled repair
personnel
sailboat
income
equipment
itineraries
personnel
repair
history
customer
boat
owner-provided equipment
weather condition
contract
dispatcher
fee
charter
consumable equipment
skipper
maintenance activity
facility
Entities
Sailboat
Equipment
Personnel
Repair
customer
skipper
contract
facility
owner
owner-provided equipment
maintenance activity
personnel
charter
consumable equipment
unscheduled repair
Review the list you made in A and eliminate any synonyms. Also, identify entities that
are subtypes or category entities. Name a likely identifier for each entity. Eliminate any
hard-to-justify entities.
Sailboat: Id = BoatID
Customer: Id = Customer_Id
3-21
Owner: Id = Owner_Id
Charter: Id = BoatId and Date
Equipment: Id = BoatId and Description
Contract: Id = BoatId
Repair: Id = BoatId and RepairId
Facility: Id = FacilityName
maintenance activity: Subtype of repair
unscheduled repair: Subtype of repair
Skipper: ID = SkipperID
Personnel Id = CrewId
owner-provided equipment: Subtype of equipment
consumable equipment: Subtype of equipment
C.
This description does not provide sufficient data for you to specify attributes of the
entities you have identified. Therefore, create an IDEF1X diagram that shows only
entities and relationships. Name each relationship and specify its cardinalities. Justify
the cardinality decisions you make.
OWNERPROVIDED
CONSUMABLE
SKIPPER
OWNER
EQUIPMENT
AgreesTo /
SignedBy
CONTRACT
IsOn /
SailedBy
IsOn /
Carries
AssignedTo /
IsFor
SAILBOAT
Sails /
SailedBy
AssignedTo /
IsFor
CHARTER
Signs /
SignedBy
PERSONNEL
CUSTOMER
Requires /
MakeTo
FACILITY
Makes /
MadeBy
REPAIR
UNSCHEDULED
D.
MAINTENANCE
Now, examine your model and make a list of questions that you would need to ask in
order to create an accurate data model.
1. Does Sam Juan make repairs or are all repairs made by other Facilities. This affects the
minimum cardinality between Facility and Repair.
2. Are Skippers a set of people different than other crew personnel. If a person may be a
skipper on a crew for one charter and simply be one of the crew on a different charter,
Skippers and Personnel will be combined into one entity. That entity would have two
relationships with charter.
E.
Do you think the process of creating a trial data model before interviewing users is a
good idea? What are the advantages? What are the disadvantages?
3-22
It is definitely a good idea. You can get answers more quickly this way. It also gets the users
involved in the process much earlier. The only disadvantage is the extra time required from users
but the advantages far outweigh this disadvantage.
3-23
plan a data modeling project. Instead, make a list of questions that you would need to
have answered in order to be able to plan a data modeling project.
The answer here will depend upon the students experience with business subjects. Most of the
questions are answered by the time you complete problem E. A few additional questions that
might be asked would be;
a. Should all jobs be recurring or should.
b. Can there be Services that are neither recurring nor nor-recurring.
c. Is it possible to be considered a customer but not have a service (prospective customer).
B. With regard to requirements determination, consider the sources of requirements in
Figure 3-2. Describe how you think each of these types of requirements might apply to
Twigs. How would you document results of your requirements documentation?
First, create a database to store requirements. User Interviews must be done with Twigs staff. You
could observe Samantha billing a Customer. This may help understand how to relation Customer,
Service, and Chip_Delivery. The forms and reports would all be manual and probably no many
would be available for this type of firm. At this point, there would be no formally defined
interfaces. You would probably not need to use domain expertise here. Most of you information
would be obtained from Samantha.
C. Consider your answer to Twigs question E, Chapter 2. How would you go about
validating this model? Make a list of questions that you would ask Samantha. In what
ways could you use mockups? In what ways could you use prototypes?
The first step is to develop a model based upon your requirements and the business background
you have. Next, sit down with Samantha and review the design. At this point, your primary
interest is whether you are missing any data and that you have the relationships and cardinalities
are correct. Ask questions regarding these. You may use mockups of data entry forms and
invoices if the Samantha resist reviewing ER diagrams. You may want to create a prototype. On a
project this size, it should be fairly easy to create and the prototype would eventually become the
implemented database.
3-24