You are on page 1of 3

Systems Analysis and Design, Sixth Edition

Page 1 of 3

ANSWERS TO CHAPTER 7 CAPSTONE CASE: SOFTWEAR, LIMITED P360 1. Rick asked you to help him put together a brief progress update for Michael Jeremy and several other top managers. Specifically, Rick wants you to explain the concept of normalization without using a lot of technical jargon. Rick wants you to summarize the concept using plain English and simple examples. A good design will be significantly less expensive to maintain and help boost customer satisfaction. Although they probably are not interested in the details, managers should know that data must be organized in a special way to achieve these objectives. The process of organizing the data is called normalization. The normalization process creates specific requirements for data that produce better quality results, just as companies set standards for quality control objectives. First normal form is better than unnormalized data, second normal form is even better, and third normal form is what most businesses use in their day-to-day operations. Managers might ask for a specific example of how normalization works, and they should be able to respond with a relatively simple answer. In a properly designed record in third normal form, all nonkey fields depend on the key, the whole key, and nothing but the key. The following example demonstrates how this phrase would apply: Suppose you wanted to design a system to track your service reps and the customers assigned to them. You could set up a table with one record per service rep and with fields for as many customers as you estimate a service rep could possibly have. The service rep number would serve as the primary key. Suppose the current policy was to assign a maximum of 20 customers to each service rep, so you designed the record with 20 fields. Now ask, what would happen if the company suddenly decided to raise the limit to 25? The current database would be useless and you would have to start all over. This is an example of an unnormalized record, because it contains a repeating group the customer fields. First normal form: Suppose that you moved the customer data into a separate table with one record per customer, using the customer number as a primary key. In each customer record, include a field called service rep number, which can relate customers to their assigned reps and to the service reps name. You have removed the repeating group and created two records in first normal form. Second normal form: To be in second normal form, a record must be in first normal form and all fields must depend on the entire primary key not just a portion of it. Therefore, if a 1NF record has a single primary key such as the service rep number or a customer number to identify each individual uniquely, the record is automatically in second normal form. If a combination of two or more fields forms a primary key that uniquely identifies each record, however, then the record is in second normal form only if all the nonkey fields depend on the entire primary key not just part of it. Think of it this way: in second normal form, all fields must depend upon the key, the whole key. In this case, you would have to remove all the fields except the ones that depend on the entire primary key and place them into their own separate table. Third normal form: Now suppose you have a table in second normal form, where all the nonkey fields depend on the entire primary key, but there is one nonkey field that also

Systems Analysis and Design, Sixth Edition

Page 2 of 3

depends on another nonkey field. For example, in the customer record described above, the service rep number and service rep name both depend on the customer number, but the service rep name also depends on the rep number, which creates redundancy, multiple data entries, and possible inconsistency. To get to third normal form, you must remove the service rep name to a separate table, which can contain other information about the rep, such as telephone number or location. Remember, to be in third normal form, all nonkey fields must depend on the key, the whole key, and nothing but the key. 2. At SWL, each employee is assigned to a specific department. Employees from several departments often are assigned to special project teams, however, when a new product is launched or for major marketing events. Carla wants to develop a project management system to track the projects, employees assigned, and accumulated project hours. She believes that employees and projects are in a M:N relationship. She showed you an initial design where all data is stored in a single table: PROJECT DATA (PROJECT-NUMBER, PROJECT-NAME, START-DATE, PROJECT-STATUS, (EMPLOYEE-NUMBER, EMPLOYEE-NAME, JOBTITLE, DEPT-NUMBER, DEPT-NAME, PROJECT-HOURS)) How would you describe Carlas design? Carlas design is unnormalized, because it contains a repeating group. When you analyze the design, you see that she has put all the fields into a single table, and that the inner set of parentheses contains the repeating group of six fields. 3. Carla wants you to create an ERD, including cardinality, for the project management system. She says that you probably will need to add an associative entity. At this point you should realize that some type of associative entity might be needed to relate employees to projects in a M:N relationship. Refer to the M:N examples on page 319 to remind you that in this type of relationship, an additional entity called an associative entity is needed. If the ERD is drawn with the associative entity included, it might look like this:

Systems Analysis and Design, Sixth Edition

Page 3 of 3

DEPARTMENT

EMPLOYS

EMPLOYEE

PROJECT

CHARGES

INCURS

PROJECT -HOURS

4. After you create the ERD in the previous step, design a table for each entity, in third normal form. By following the examples in the chapter, you should be able to construct four tables, all of which are in 3NF: PROJECT (PROJECT-NUMBER, PROJECT-NAME, START-DATE, PROJECTSTATUS) EMPLOYEE (EMPLOYEE-NUMBER, EMPLOYEE-NAME, DEPARTMENT-NUMBER, JOB-TITLE) PROJECT HOURS (PROJECT-NUMBER, EMPLOYEE-NUMBER, PROJECT-HOURS) DEPARTMENT (DEPARTMENT-NUMBER, DEPARTMENT-NAME)