Lesson 32: Designing a Relational Database Lesson Objectives After studying this lesson, you will be able to: Identify and apply principles for good relational database design Modify field settings and create Lookup fields that return multiple values Create a split form Identify database relationship types and create and print a relationships report Identify 2 object dependencies Principles of Good Database Design Reduce redundancy Divide data into subject-based tables Show Access how data in all tables related to scope (purpose) of the database Ensure that data is complete and accurate Tip! Incomplete/inaccurate data results in inaccurate processing and reporting, and invalidates the integrity of the database. 3 Include report formats, forms, and queries to process data and report information that meets the intended needs of the database Applying Design Steps Design Step/Task Result Identify the purpose of the database To generate a utility bill Locate and organize detailed information about what the database should contain Customer name, address, amount of power used, associated costs, company info Separate the details into related groups Customer details, billing history, cost of power, utility company details Identify additional breakdowns in information details Customer first name, last name, street, city, state, zip code, telephone, etc. Specify a primary key for each group of data Customer number Relate tables to each other by identifying how data in one table can be connected to data in other tables Customer number added to other tables to connect the tables Create the database in Access and test the design Create tables to determine whether or not you can generate the billing statement Apply normalization rules and make necessary adjustments Review the design using normalization levels (described elsewhere) and determine normalization level attained 4 Normalizing Data Process of refining tables, keys, fields, and relationships to create an efficient database Includes: 5 Discarding repeating groups Minimizing redundancy Eliminating composite keys for partial dependency Separating non-key attributes Follows steps and guidelines for designing a database Common Field Properties Property Description Field Size Controls the number of characters Access allows in the field Input Mask Sets the appearance of field data entered, adds standard characters such as parentheses, slashes and hyphens to the data, formats all data in caps or lowercase, etc. Caption Displays alternate text in place of the field name in datasheets, on forms, and in reports; caption text is usually more descriptive, especially when field names are cryptic Default Value Sets a data value that Access enters for a field when no other data is entered Validation Rule Sets rules for data entered in a field so Access can check the data to ensure it meets value limitations Validation Text Provides instructional information to help data entry personnel correctly enter data for a field with a validation rule; Access alerts user if invalid data is entered Required Sets the field as a required field so data must be entered into that field 6 Number Field Size Property Details Field Size Description Byte Stores whole numbers between 0 and 255 using 1 byte; allows no fractions or decimal points Integer Stores whole numbers between -32,768 and 32,767 using 2 bytes rather than the 7 bytes used for high values Long Integer Stores whole numbers between -2,147,483,648 and 2,147,483,647 using 4 bytes rather than the 14 bytes normally used for high values Single Stores positive and negative numbers to exactly 7 decimal places using 4 bytes Double Stores positive and negative numbers to exactly 15 decimal places using 8 bytes Replication ID Identifies replication of tables, records, and other objects in Access 2003 or earlier databases using 16 bytes Decimal Stores positive and negative numbers to exactly 28 decimal places using 121 bytes 7 Multi-Value Lookups Enables you to select multiple values for a field For example, you might want to identify multiple vendors that supply products 8 Split Forms 9 Displays form view at the top of the window and datasheet view at the bottom of the window. Working with Relationships Three types of relationships: One-to-One One-to-Many Many-to-Many 10 One-to-One Relationship Each record in Table A can have only one matching record in Table B Example: Each employee’s address is stored in one table and has a matching record in the payroll table 11 One-to-Many Relationships Each record in Table A can have many matching records in Table B Example: Each supplier in the Suppliers table could have multiple items in the Inventory table 12 Many-to-Many Relationships Records in Table A can have many matching records in Table B, and vice-versa Example: Items could be ordered by many customers and each customer might order many items 13 Normally requires a Junction Table Relationship Join Line 14 Connects fields common to both tables Referential Integrity Sorting query results A system of rules used to ensure that relationships are valid Must be set in Edit Relationships dialog box Access identifies the many and one side of the relationship 15 Cascade Options Set in the Edit Relationships dialog box Cascade Update updates key field of a related table when edits are made to field in primary table Cascade Delete removes records from a related table when record is deleted from primary table 16 Relationship Join Properties Join Properties: Control circumstances under which a record from a related table appears when you run a query Inner Joins: Check for records with matching values in the join field and displays only those that match Left Outer Joins: Display all records from the one side of a one-to-many relationship Right Outer Joins: Display all records from the many side of a one-to-many relationship 17 Join Properties Dialog Box Right table name: Many side Left table name: One side of one-to-many relationship Join types and descriptions of one-to-many relationship One vs. Many Sides of Relationships Many (right) side One (left) side of relationship of relationship Join Type button Object Dependencies Shows the object for which dependencies are shown at the top You can choose to identify object dependent on the active object or those on which the object depends Objects are listed by type Lesson 32: Designing a Relational Database