Now that the fundamental table definitions are complete, you need to 
        conduct interviews with users and management to review the work you've 
        done so far. This set of interviews is fairly straightforward and should 
        be relatively easy to conduct.
During these interviews, you will 
        accomplish these tasks:
        
          - Ensure that the appropriate subjects are represented in the 
          database. Although it's highly unlikely that an important subject 
          is missing at this stage of the database-design process, it can 
          happen. When it does happen, identify the subject, use the proper 
          techniques to transform it into a table, and develop it to the same 
          degree as the other tables in the database.
 
          - Make certain that the table names and table descriptions are 
          suitable and meaningful to everyone. When a name or description 
          appears to be confusing or ambiguous to several people in the 
          organization, work with them to clarify the item as much as possible. 
          It's common for some table names and descriptions to improve during 
          the interview process.
 
          - Make certain that the field names are suitable and meaningful 
          to everyone. Selecting field names typically generates a great 
          deal of discussion, especially when there is an existing database in 
          place. You'll commonly find people who customarily refer to a 
          particular field by a certain name because "that's what it's called on 
          my screen." When you change a field name—you have good reasons for 
          doing so—you must diplomatically explain to these folks that you 
          renamed the field so that it conforms to the standards imposed by the 
          new database. You can also tell them that the field can appear with 
          the more familiar name once the database is implemented in an RDBMS 
          program. What you've said is true; many RDBMSs allow you to use one 
          name for the field's physical definition and another name for display 
          purposes. This feature, however, does not change, reduce, or negate 
          the need for you to follow the guidelines for creating field names 
          that you learned.
 
          - Verify that all the appropriate fields are assigned to each 
          table. This is your best opportunity to make certain that all of 
          the necessary characteristics pertaining to the subject of the table 
          are in place. You'll commonly discover that you accidentally 
          overlooked one or two characteristics earlier in the design process. 
          When this happens, identify the characteristics, use the appropriate 
          techniques to transform them into fields, and follow all the necessary 
          steps to add them to the table.
 
        
        When you've completed the interviews, you'll move to the next phase 
        of the database-design process and establish field specifications 
        for every field in the database.
        Case Study
        It's now time to establish keys for each table in the Mike's Bikes 
        database. As you know, your first order of business is to establish 
        candidate keys for each table. Let's say you decide to start with the 
        CUSTOMERS table in Figure 8.9.
        
        
FIGURE 
        8.9 The CUSTOMERS table structure in the Mike’s Bikes database.
        
 
        As you review each field, you try to determine whether it conforms to 
        the Elements of a Candidate Key. You determine that STATUS, CUSTHOME 
        PHONE, and the combination of CUSTFIRST NAME and CUSTLAST NAME are 
        potential candidate keys, but you're not quite certain whether any of 
        them will completely conform to all of the elements. So you decide to 
        test the keys by loading the table with sample data as shown in
        Figure 8.10.
        
        
FIGURE 
        8.10 Testing candidate keys in the CUSTOMERS table.
        Always remember that a field must comply with all of the 
        Elements of a Candidate Key in order to qualify as a candidate key. You 
        must immediately disqualify the field if it does not fulfill this 
        requirement.
        As you examine the table, you draw these conclusions:
        
          - STATUS is ineligible because it will probably contain duplicate 
          values. As business grows, Mike is going to have many "Valued" 
          customers.
 
          - CUSTHOME PHONE is ineligible because it will probably contain 
          duplicate values. The sample data reveals that two customers can live 
          in the same residence and have the same phone number.
 
          - CUSTFIRST NAME and CUSTLAST NAME are ineligible because they will 
          probably contain duplicate values. The sample data reveals that the 
          combination of first name and last name can represent more than one 
          distinct customer.
 
        
        These findings convince you to establish an artificial candidate key 
        for this table. You then create a field called CUSTOMER ID, confirm that 
        it complies with the requirements for a candidate key, and add the new 
        field to the table structure with the appropriate designation.
        Figure 8.11 shows the revised structure of 
        the CUSTOMERS table.
        
        
FIGURE 
        8.11 The CUSTOMERS table with the new artificial candidate key,
        CUSTOMER ID.
        
 
        Now you'll repeat this procedure for each table in the database. 
        Remember to make certain that every table has at least one 
        candidate key.
        The next order of business is to establish a primary key for each 
        table. As you know, you select the primary key for a particular table 
        from the table's pool of available candidate keys. Here are a few points 
        to keep in mind when you're choosing a primary key for a table with more 
        than one candidate key:
        
          - Choose a simple (single-field) candidate key over a composite 
          candidate key.
 
          - If possible, pick a candidate key that has the table name 
          incorporated into its own name.
 
          - Select the candidate key that best identifies the subject of the 
          table or is most meaningful to everyone in the organization.
 
        
        You begin by working with the EMPLOYEES table in
        Figure 8.12. As you review the candidate keys, 
        you decide that EMPLOYEE NUMBER is a much better choice for a primary 
        key than the combination of EMPFIRST NAME and EMPLAST NAME because 
        Mike's employees are already accustomed to identifying themselves by 
        their assigned numbers. Using EMPLOYEE NUMBER makes perfect sense, so 
        you select it as the primary key for the table.
        
        
FIGURE 
        8.12 The EMPLOYEES table structure in the Mike’s Bikes database.
        
 
        Now you perform one final task before you designate EMPLOYEE NUMBER 
        as the official primary key of the table: You make absolutely certain 
        that it exclusively identifies the value of each field within a given 
        record. So, you test EMPLOYEE NUMBER by following these steps:
        
          - Load the EMPLOYEES table with sample data.
 
          - Select a record for test purposes and note the current value of 
          EMPLOYEE NUMBER.
 
          - Examine the value of the first field (the one immediately after 
          EMPLOYEE NUMBER) and ask yourself this question:
Does this primary 
          key value exclusively identify the current value of 
          <fieldname>?
            - If the answer is yes, move to the next field and repeat the 
            question.
 
            - If the answer is no, remove the field from the table, 
            move to the next field and repeat the question. (Be sure to 
            determine whether you can add the field you just removed to another 
            table structure, if appropriate, or discard it completely because it 
            is truly unnecessary.)
 
          
           
          - Continue this procedure until you've examined every field value in 
          the record.
 
        
        You know that you'll have to remove any field containing a value that 
        EMPLOYEE NUMBER does not exclusively identify. EMPLOYEE NUMBER 
        does exclusively identify the value of each field in the test record, 
        however, so you use it as the official primary key for the EMPLOYEES 
        table and mark its name with the letters "PK" in the table structure. 
        You then repeat this process with the rest of the tables in Mike's new 
        database until every table has a primary key.
        Remember to keep these rules in mind as you establish primary keys 
        for each table:
        
          - Each table must have one—and only one—primary key.
 
          - Each primary key within the database should be unique—no two 
          tables should have the same primary key (unless one of them is a 
          subset table).
 
        
        As you work through the tables in Mike's database, you remember that 
        the SERVICES table is a subset table. You created it during the previous 
        stage of the design process, and it represents a more 
        specific version of the subject represented by the PRODUCTS table. The 
        PRODUCT NAME field is what currently relates the PRODUCTS table to the 
        SERVICES subset table. You now know, however, that a subset table 
        must have the same primary key as the table to which it is related, 
        so you'll use PRODUCT NUMBER (the primary key of the PRODUCTS table) as 
        the primary key of the SERVICES table. Figure 8.13 
        shows the PRODUCTS and SERVICES tables with their primary keys.
        
        
FIGURE 
        8.13 Establishing the primary key for the SERVICES subset table.
        
 
        The last order of business is to conduct interviews with Mike and his 
        staff and review all the work you've performed on the tables in the 
        database. As you conduct these interviews, make certain you check the 
        following:
        
          - That the appropriate subjects are represented in the database
 
          - That the table names and descriptions are suitable and meaningful 
          to everyone
 
          - That the field names are suitable and meaningful to everyone
 
          - That all the appropriate fields are assigned to each table
 
        
        By the end of the interview, everyone agrees that the tables are in 
        good form and that all the subjects with which they are concerned are 
        represented in the database. Only one minor point came up during the 
        discussions: Mike wants to add a CALL PRIORITY field to the VENDORS 
        table. There are instances in which more than one vendor supplies a 
        particular product, and Mike wants to create a way to indicate which 
        vendor he should call first if that product is unexpectedly out of 
        stock. So, you add the new field to the VENDORS table and bring the 
        interview to a close.