Chapter 2

advertisement
Instructor’s Manual, Database Processing, 8th Edition
Chapter 2
Introduction to Database Development
Answers to Group I Questions
2.1
Name the major components of a database system, and briefly explain the function of
each.
Database has user data; metadata (describes the structure of the database); indexes
(used to improve performance); and application metadata (describes the structure of the
application components).
DBMS is a general-purpose product used to design, process, and administer the
database.
Application programs have application logic, and enforce business rules that cannot be
enforced by the DBMS.
2.2
Give an example, other than the one in this chapter, of a relation that is likely to have
problems when it is updated. Use relation R1 as an example.
PART (PartNumber, PartDescription, VendorName, VendorPhone), where a vendor
provides many parts, but a part comes from just one vendor.
2.3
Transpose the relation in your answer to Question 2.2 into two or more relations that do
not have update problems. Use relations R2 and R3 as examples.
PART (PartNumber, PartDescription, VendorName)
VENDOR (VendorName, VendorPhone)
2.4
Explain the roles of metadata and system tables.
Metadata describes the structure of the database. Usually, metadata is placed in tables,
so that the DBMS query and reporting facilities can be used to report on the structure of
the database.
2.5
What is the function of indexes? When are they desirable, and what is their cost?
Indexes improve performance for sorting and direct retrieval and can be used to enforce
uniqueness in a column. They are desirable when any of the benefits described above
are needed in the application. The cost is that Indexes must be updated whenever the
source data involved in the index is changed.
9
Chapter 2 – Introduction to Database Development
2.6
What is the function of application metadata? How does it differ from metadata?
Application metadata is a description of the application components such as forms,
reports, menus, and queries. It differs from metadata, which is a description of the
database structure.
2.7
Explain the features and functions of the design tools subsystem of a DBMS.
To facilitate the design and creation of the database and its applications.
2.8
Describe the features and functions of a DBMS’s run-time subsystem.
It processes requests generated by the application. For example, it finds rows of tables
based on column values and returns a set of rows to the application.
2.9
Explain the features and functions of the DBMS engine.
The DBMS engine is the intermediary between the design tools and the run-time
subsystems and the operating system. For example, Access uses one of two different
engines; the native engine used with mdb files is called Jet. SQL Server is the engine
used with .adp files.
2.10
What is a database schema? List its components.
A schema is a description of the structure of the database's tables, relationships,
domains, and business rules.
2.11
How are relationships represented in a relational database design? Give an example of
two tables with a 1:N relationship, and explain how the relationship is expressed in the
data.
Relationships are expressed by placing the key of one table into a second table. For
example, for the PART and VENDOR tables in the answer to question 2.3 above, the
key of VENDOR, which is VendorName, has been placed in PART.
2.12
What is a domain, and why is it important?
A domain is a set of values that a column may have. (Note that in Chapter 4 we will add
that a domain has both a physical description and a semantic description. All Char (10)
domains are not equal!
2.13
What are business rules? Give an example of possible business rules for the relations in
your answer to Question 2.11.
Business rules are restrictions on the business’ activities that must be reflected in the
database and database applications. Examples: 1) A VendorName cannot exist in
10
Chapter 2 – Introduction to Database Development
PART if it does not already exist in VENDOR. 2) A VendorName (in VENDOR) cannot
be removed from the database unless there is no PART row that has that VendorName.
2.14
What is a foreign key? Which column(s) in your answer to Question 2.11 is a foreign
key?
A foreign key is a key of a table that is different from the table in which the key resides.
For example, in the answer to question 2.3, VendorName (in PART) is a foreign key.
VendorName (in VENDOR) is not a foreign key.
2.15
Explain the purpose of forms, reports, queries, and menus.
A form is used to enable users to create, read, modify, and delete data. A report is a
structured presentation of database data. Queries allow the users to answer questions
from the data. Menus are structured presentations of allowed user actions.
2.16
Explain the difference between query by example and query by form.
The primary difference is that Query by Example requires the user to see and understand
the structure of the tables. Query by Form, on the other hand, hides the table structure
and requires the users only to fill in form fields. Query by example is a way of expressing
a query by picking columns from tables and (indirectly) causing tables to be joined. There
are languages that are unique to the DBMS and languages that are standardized.
2.17
What is the first important task in developing a database and related applications?
Build a data model that identifies the things to be stored in the database and defines
their structure and the relationships among them.
2.18
What is the role of a prototype?
To provide a quick means of expressing requirements for users to review.
2.19
Describe top-down development. What are its advantages and disadvantages?
Top-down works from the general to the specific. Data models are created with a global
perspective; systems have better interfaces and less repeat work is required. The
danger is analysis paralysis.
2.20
Describe bottom-up development. What are its advantages and disadvantages?
Bottom-up works from the specific to the general. Applications are developed much
faster with less initial study and investment. The danger is that systems will be
inconsistent and difficult to integrate; considerable repeat work may be required.
2.21
Explain the two different meanings of the term data model.
A users' data model is a description of the users' data requirements. A data model (as in
the entity-relationship data model) is a vocabulary for describing a users' data model.
11
Chapter 2 – Introduction to Database Development
Answers to Group II Questions:
2.22
Implement a database with the relations CAPTAIN and ITEM in any DBMS to which you
can gain access. Use one of the DBMS products facilities to enter data into each of
these relations. Create and process a query to use the DBMS’s facility to process a
query that identifies those items checked out before September 1, 2001, that have not
yet been checked back in. Print the name of the captain, his or her phone number, and
the quantity and description of any such items.
You can find this database in Access 2002 format in our instructor support site at
www.prenhall.com/kroenke/. Look for the database named Chapter2_Example.mdb
2.23
Interview a professional database application developer, and find out the process that
this person uses to develop databases. Is this top-down development, bottom-up
development, or some other strategy? How does this developer build data models and
with what tools? What are the biggest problems usually encountered in developing a
database?
Answers will vary.
2.24
Consider the statement “A database is a model of the users’ model of reality.” How does
it differ from “A database is a model of reality?” Suppose two developers disagree about
a data model, and one of them asserts, “My model is a better representation of reality.”
What does this person really mean? What differences are likely to result when a
developer believes the first statement more than the second statement?
This question is setting the stage for a discussion to come at the end of Chapter 3. I
personally have wasted considerable time in my life arguing with other developers that
"my model is a better representation of reality than your model." Unknowingly, I was
simply saying, "the way I see the world is better than the way you see the world." This is
sheer arrogance; what matters is how the users see their world! A database is not a
model of reality; I believe Immanuel Kant was right; reality is forever unknowable by
humans. All we have is our model of reality and the best we can do when building a
database is to create an accurate portrayal of the users’ models. This discussion will be
picked up again at the end of Chapter 4.
Answers to FiredUp Project Questions
Consider the situation of FiredUp, Inc., the company introduced at the end of Chapter 1.
Each of the stoves is accompanied by a product registration form that includes the
following data:
PurchaserName, StreetAddress, ApartmentNumber, City, State/Province,
Zip/PostalCode, Country, EmailAddress, PhoneNumber, DateOfPurchase, and
SerialNumber
12
Chapter 2 – Introduction to Database Development
Assume that FiredUp decides to create a personal database with the following tables:
CUSTOMER (Name, StreetAddress, ApartmentNumber, City, State/Province,
Zip/PostalCode, Country, EmailAddress, PhoneNumber)
and
PURCHASE (DateOfPurchase, SerialNumber)
A.
Construct a table of sample data that conforms to the CUSTOMER structure. Include at
least four rows in your table. For Questions A through G, just list the data using a word
processor.
Name
Street
Jones
Smith
Greene
Wu
123 Elm
123 Elm
44 - 5th St
22 Birch
B.
Apt
City
State
Zip
Country
EmailAddress
Phone
5
22a
Denver
Denver
Seattle
Atlanta
CO
CO
WA
GA
80210
80210
98112
22345
US
US
US
US
J@abc.com
S@abc.com
G@def.com
W@ghi.com
303.555.3345
303.555.3345
206.555.1123
432.555.9987
Which of the columns of the CUSTOMER table could be used to identify a unique row of
the table? Such a column is sometimes called a primary key, as you will learn later in
this text.
For the data that appears in this table, Email is unique. It is important to find out from
the users, however, whether this will be true for all the data to be kept in this database.
C.
D.
Construct a table of data that conforms to the PURCHASE structure. Include at least
four rows in your table.
DateOfPurchase
SerialNumber
12/4/2001
5/5/2000
11/13/2001
4/4/2001
12345
44567
55878
66879
Which of the columns of the PURCHASE table could be used as a primary key of
PURCHASE?
From the data in this table, either DateOfPurchase or SerialNumber could be the primary
key. However, unless there is something most unusual in this application,
DateOfPurchase would not normally be unique. Thus, we have to look beyond the data
we have to the semantics of the application to answer this question. Here, I think
SerialNumber is likely to be unique for all data and would be the better choice.
13
Chapter 2 – Introduction to Database Development
E.
Using the tables defined above, there is no way to relate a particular customer to his or
her stove. One way to do that would be to add SerialNumber of PURCHASE to
CUSTOMER. The CUSTOMER table would then appears as:
CUSTOMER (Name, StreetAddress, ApartmentNumber, City, State/Province,
Zip/PostalCode, Country, EmailAddress, PhoneNumber, SerialNumber)
Copy your sample CUSTOMER data and add the SerialNumber column to it. Call this
new table CUSTOMER1.
CUSTOMER1
Name
Street
Jones
Smith
Greene
Wu
123 Elm
123 Elm
44 - 5th St
22 Birch
Apt
City
State Zip
Country
EmailAddress
Phone
Serial
Number
5
22a
Denver
Denver
Seattle
Atlanta
CO
CO
WA
GA
US
US
US
US
J@abc.com
S@abc.com
G@def.com
W@ghi.com
303.555.3345
303.555.3345
206.555.1123
432.555.9987
12345
44567
55878
66879
80210
80210
98112
22345
Here, I’ve arbitrarily assigned products to customers.
F.
An alternative technique for representing the relationship of the two tables would be to
place EmailAddress of CUSTOMER in PURCHASE. The PURCHASE table would then
appear as:
PURCHASE (DateOfPurchase, SerialNumber, EmailAddress)
Copy your sample PURCHASE data and add the EmailAddress column to it. Call this
new table PURCHASE1.
PURCHASE1
DateOfPurchase
SerialNumber
EmailAddress
12/4/2001
5/5/2000
11/13/2001
4/4/2001
12345
44567
55878
66879
J@abc.com
S@abc.com
G@def.com
W@ghi.com
G.
You now have three possible database structures:
DB1: CUSTOMER1 with PURCHASE
DB2: CUSTOMER with PURCHASE1 and
DB3: CUSTOMER1 with PURCHASE1
Under what circumstances would you recommend the structure in DB1? Under what
circumstances would you recommend the structure in DB2?
14
Chapter 2 – Introduction to Database Development
DB1 will work if a customer is related to one or more purchases and a purchase is
related to at most one customer.
DB2 will work if a purchase is related to one or more customers and a customer is
related to at most one purchase.
H.
Under what circumstances would you recommend the structure in DB3?
None.
15
Download