Please draw ERD Diagram. Sample diagram format also attached
Chapter 7
Logical Database Design
BLCN-534: Fundamentals of Database Systems
Chapter Objectives
- Describe the concept of logical database design.
- Design relational databases by converting entity-relationship diagrams into relational tables.
- Describe the data normalization process.
- Perform the data normalization process.
- Test tables for irregularities using the data normalization process.
7-*
Logical Database Design
- The process of deciding how to arrange the attributes of the entities in the business environment into database structures, such as the tables of a relational database.
- The goal is to create well structured tables that properly reflect the company’s business environment.
7-*
Logical Design of Relational Database Systems
- (1) The conversion of E-R diagrams into relational tables.
- (2) The data normalization technique.
- (3) The use of the data normalization technique to test the tables resulting from the E-R diagram conversions.
7-*
Converting E-R Diagrams into Relational Tables
- Each entity will convert to a table.
- Each many-to-many relationship or associative entity will convert to a table.
- During the conversion, certain rules must be followed to ensure that foreign keys appear in their proper places in the tables.
7-*
Converting a Simple Entity
- The table simply contains the attributes that were specified in the entity box.
- Salesperson Number is underlined to indicate that it is the unique identifier of the entity and the primary key of the table.
7-*
Converting Entities in Binary Relationships: One-to-One
- There are three options for designing tables to represent this data.
7-*
One-to-One: Option #1
- The two entities are combined into one relational table.
7-*
One-to-One: Option #2
Separate tables for the SALESPERSON and OFFICE entities, with Office Number as a foreign key in the SALESPERSON table.
7-*
One-to-One: Option #3
- Separate tables for the SALESPERSON and OFFICE entities, with Salesperson Number as a foreign key in the OFFICE table.
7-*
Converting Entities in Binary Relationships: One-to-Many
- The unique identifier of the entity on the “one side” of the one-to-many relationship is placed as a foreign key in the table representing the entity on the “many side.”
- So, the Salesperson Number attribute is placed in the CUSTOMER table as a foreign key.
7-*
Converting Entities in Binary Relationships: One-to-Many
7-*
Converting Entities in Binary Relationships: Many-to-Many
- E-R diagram with the many-to-many binary relationship and the equivalent diagram using an associative entity.
7-*
Converting Entities in Binary Relationships: Many-to-Many
- An E-R diagram with two entities in a many-to-many relationship converts to three relational tables.
- Each of the two entities converts to a table with its own attributes but with no foreign keys (regarding this relationship).
- In addition, there must be a third “many-to-many” table for the many-to-many relationship.
7-*
Converting Entities in Binary Relationships: Many-to-Many
- The primary key of SALE is the combination of the unique identifiers of the two entities in the many-to-many relationship. Additional attributes are the intersection data.
7-*
Converting Entities in Unary Relationships: One-to-One
- With only one entity type involved and with a one-to-one relationship, the conversion requires only one table.
7-*
Converting Entities in Unary Relationships: One-to-Many
Very similar to the one-to-one unary case.
7-*
Converting Entities in Unary Relationships: Many-to-Many
- This relationship requires two tables in the conversion.
- The PRODUCT table has no foreign keys.
7-*
Converting Entities in Unary Relationships: Many-to-Many
- A second table is created since in the conversion of a many-to-many relationship of any degree — unary, binary, or ternary — the number of tables will be equal to the number of entity types (one, two, or three, respectively) plus one more table for the many-to-many relationship.
7-*
Converting Entities in Ternary Relationships
- The primary key of the SALE table is the combination of the unique identifiers of the three entities involved, plus the Date attribute.
7-*
The Data Normalization Process
- A methodology for organizing attributes into tables so that redundancy among the nonkey attributes is eliminated.
- The output of the data normalization process is a properly structured relational database.
7-*
The Data Normalization Technique
- Input:
- all the attributes that must be incorporated into the database
- a list of all the defining associations between the attributes (i.e., the functional dependencies).
- a means of expressing that the value of one particular attribute is associated with a single, specific value of another attribute.
- If we know that one of these attributes has a particular value, then the other attribute must have some other value.
7-*
General Hardware Environment: SALESPERSON and PRODUCT
7-*
Functional Dependence
- Salesperson Number is the determinant.
- The value of Salesperson Number determines the value of Salesperson Name.
- Salesperson Name is functionally dependent on Salesperson Number.
7-*
Salesperson Name
Salesperson Number
Steps in the Data Normalization Process
First Normal Form
Second Normal Form
Third Normal Form
7-*
The Data Normalization Process
- Once the attributes are arranged in third normal form, the group of tables that they comprise is a well-structured relational database with no data redundancy.
- A group of tables is said to be in a particular normal form if every table in the group is in that normal form.
- The data normalization process is progressive.
- For example, if a group of tables is in second normal form, it is also in first normal form.
7-*
General Hardware Company: First Normal Form
- The attributes under consideration have been listed in one table, and a primary key has been established.
- The number of records has been increased so that every attribute of every record has just one value.
- The multivalued attributes have been eliminated.
7-*
General Hardware Company: First Normal Form
- First normal form is merely a starting point in the normalization process.
- First normal form contains a great deal of data redundancy.
- Three records involve salesperson 137, so there are three places in which his name is listed as Baker, his commission percentage is listed as 10, and so on.
- Two records involve product 19440 and this product’s name is listed twice as Hammer and its unit price is listed twice as 17.50.
7-*
General Hardware Company: Second Normal Form
- No Partial Functional Dependencies
- Every nonkey attribute must be fully functionally dependent on the entire key of that table.
- A nonkey attribute cannot depend on only part of the key.
7-*
General Hardware Company: Second Normal Form
- In SALESPERSON, Salesperson Number is the sole primary key attribute. Every nonkey attribute of the table is fully defined just by Salesperson Number.
- Similar logic for PRODUCT and QUANTITY tables.
7-*
General Hardware Company: Third Normal Form
- Does not allow transitive dependencies in which one nonkey attribute is functionally dependent on another.
- Nonkey attributes are not allowed to define other nonkey attributes.
7-*
General Hardware Company: Third Normal Form
- Important points about the third normal form structure are:
- It is completely free of data redundancy.
- All foreign keys appear where needed to logically tie together related tables.
- It is the same structure that would have been derived from a properly drawn entity-relationship diagram of the same business environment.
7-*
Candidate Keys as Determinants
- There is one exception to the rule that in third normal form, nonkey attributes are not allowed to define other nonkey attributes.
- The rule does not hold if the defining nonkey attribute is a candidate key of the table.
- Candidate keys in a relation may define other nonkey attributes without violating third normal form.
7-*
Data Normalization Check
- The basic idea in checking the structural worthiness of relational tables, created through E-R diagram conversion, with the data normalization rules is to:
- Check to see if there are any partial functional dependencies.
- Check to see if there are any transitive dependencies.
7-*
7-*
CREATE TABLE SALESPERSON
(SPNUM CHAR(3) PRIMARY KEY,
SPNAME CHAR(12)
COMMPERCT DECIMAL(3,0)
YEARHIRE CHAR(4)
OFFNUM CHAR(3) );
Dropping a Table with SQL
Creating a Table with SQL
DROP TABLE SALESPERSON;
7-*
CREATE VIEW EMPLOYEE AS
SELECT SPNUM, SPNAME, YEARHIRE
FROM SLAESPERSON;
Dropping a View with SQL
Creating a View with SQL
DROP VIEW EMPLOYEE ;
7-*
UPDATE SALESPERSON
SET COMMPERCT = 12
WHERE SPNUM = ‘204’;
The SQL Update, Insert, and Delete Commands
INSERT INTO SALESPERSON
VALUES
(‘489’, ‘Quinlan’, 15, ‘2011’, ‘59’);
DELETE FROM SALESPERSON
WHERE SPNUM = ‘186’;
Use Cases and Examples
3-*
Designing the General Hardware Company Database
7-*
Designing the Good Reading Bookstores Database
7-*
Designing the World Music Association Database
7-*
Designing the Lucky Rent-A-Car Database
7-*
General Hardware Company: Unnormalized Data
7-*
- Records contain multivalued attributes.
General Hardware Company: First Normal Form
7-*
General Hardware Company: Second Normal Form
7-*
General Hardware Company: Functional Dependencies
7-*
General Hardware Company: First Normal Form
7-*
Good Reading Bookstores: Functional Dependencies
7-*
World Music Association: Functional Dependencies
7-*
Lucky Rent-A-Car:
Functional Dependencies
7-*
General Hardware Company: Third Normal Form
7-*
General Hardware Company: Third Normal Form
7-*