David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Four: Database Design Using Normalization.

Slides:



Advertisements
Similar presentations
Database Design Chapter Five DATABASE CONCEPTS, 6th Edition
Advertisements

The Relational Model Chapter Two DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 7 th Edition.
The Relational Model Chapter Two DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 David M. Kroenke’s Chapter Three: The Relational Model and Normalization.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 COS 346 Day 5.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 COS 346 Day4.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 COS 346 Day5.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 4-1 David M. Kroenke Database Processing Chapter 4 Database Design Using.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 4-1 COS 346 Day6.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 David M. Kroenke Database Processing Chapter 3 Normalization.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 COS 346 Day4.
The Relational Model Chapter Two DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
SQL Views Chapter 3A DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
David M. Kroenke and David J
Database Design Chapter Five DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 7 th Edition.
Database Design Chapter Five DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
Getting Started Chapter One DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
Getting Started with Microsoft SQL Server 2012 Express Edition Appendix A DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
David M. Kroenke and David J. Auer Database Processing—12 th Edition Fundamentals, Design, and Implementation Chapter One: Introduction KROENKE AND AUER.
Getting Started Chapter One DATABASE CONCEPTS, 7th Edition
Database Lecture Notes Normalization 3 – Denormalization
Getting Started with Microsoft Access The Access Workbench: Section One DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
Getting Started with Oracle Database 11g Release 2 Express Edition Appendix B DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
Chapter 3 The Relational Model and Normalization
Getting Started Chapter One DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 9.1.
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
Chapter 9 Designing Databases Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
David M. Kroenke and David J. Auer Database Processing: F undamentals, Design, and Implementation Chapter Six: Transforming Data Models into Database Designs.
IT420: Database Management and Organization Normalization 31 January 2006 Adina Crăiniceanu
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall, Modified by Dr. Mathis 3-1 David M. Kroenke’s Chapter Three: The Relational.
SQL Views Chapter 3A DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
1 Copyright © 2010 Pearson Education, Inc. Publishing as Prentice Hall.
Getting Started Chapter One DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall, modified by Dr. Lyn Mathis 4-1 David M. Kroenke’s Chapter Four: Database.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 What Makes Determinant Values Unique? A determinant is unique in.
David M. Kroenke and David J. Auer Database Processing: F undamentals, Design, and Implementation Chapter Seven: SQL for Database Construction and Application.
By Mary Anne Poatsy, Keith Mulbery, Eric Cameron, Jason Davidson, Rebecca Lawson, Linda Lau, Jerri Williams Chapter 6 Action and Specialized Queries 1.
The Relational Model Chapter Two DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Four: Database Design Using Normalization 4-1 KROENKE.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Eight: Database Redesign.
David M. Kroenke and David J. Auer Database Processing: Fundamentals, Design, and Implementation Chapter One: Introduction.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Appendix H: The Semantic Object Model.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Three: The Relational Model and Normalization.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Six: Transforming Data Models into Database Designs.
David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Appendix A: Getting Started with Microsoft Access 2013.
David M. Kroenke and David J. Auer Database Processing: F undamentals, Design, and Implementation Chapter Three: The Relational Model and Normalization.
David M. Kroenke and David J. Auer Database Processing: Fundamentals, Design, and Implementation Chapter Ten: Managing Databases with SQL Server 2012,
CSIS 115 Database Design and Applications for Business Dr. Meg Fryling “Dr. Meg” Fall #csis115 © 2012 Meg Fryling.
TECHNOLOGY IN ACTION. Chapter 11 Behind the Scenes: Databases and Information Systems.
Adapted from DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 3-1 Functional Dependencies and Normalization.
CSIS 115 Database Design and Applications for Business
CSIS 115 Database Design and Applications for Business
Transforming Data Models
David M. Kroenke and David J
Database Design Chapter Five DATABASE CONCEPTS, 4th Edition
David M. Kroenke and David J
MIS 322 – Enterprise Business Process Analysis
Database Processing: David M. Kroenke’s Chapter Four:
Database Design Using Normalization
The Relational Model and Normalization
David M. Kroenke and David J
Database Design Using Normalization
Database Processing: Chapter Four: Using Normalization
Database Processing: David M. Kroenke’s Chapter Three:
David M. Kroenke and David J
Copyright © 2018, 2015, 20 Pearson Education, Inc. All Rights Reserved Database Concepts Eighth Edition Chapter # 2 The Relational Model.
Getting Started Chapter One DATABASE CONCEPTS, 5th Edition
Getting Started Chapter One DATABASE CONCEPTS, 4th Edition
Presentation transcript:

David M. Kroenke and David J. Auer Database Processing Fundamentals, Design, and Implementation Chapter Four: Database Design Using Normalization

Chapter Objectives To design updatable databases to store data received from another source To use SQL to access table structure To understand the advantages and disadvantages of normalization To understand denormalization To design read-only databases to store data from updateable databases KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-2

Chapter Objectives To recognize and be able to correct common design problems: –The multivalue, multicolumn problem –The inconsistent values problem –The missing values problem –The general-purpose remarks column problem KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-3

Chapter Premise We have received one or more tables of existing data. The data is to be stored in a new database. QUESTION: Should the data be stored as received, or should it be transformed for storage? KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-4

How Many Tables? SKU_DATA (SKU, SKU_Description, Buyer) BUYER (Buyer, Department) Where SKU_DATA.Buyer must exist in BUYER.Buyer Should we store these two tables as they are, or should we combine them into one table in our new database? KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-5

Assessing Table Structure KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-6

Counting Rows in a Table To count the number of rows in a table use the SQL COUNT(*) built-in function : SELECTCOUNT(*) AS NumRows FROMSKU_DATA; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-7

Examining the Columns To determine the number and type of columns in a table, use an SQL SELECT statement. To limit the number of rows retrieved, use the SQL TOP {NumberOfRows} expression: SELECTTOP (10) * FROM SKU_DATA; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-8

Checking Validity of Assumed Referential Integrity Constraints I Given two tables with an assumed foreign key constraint: SKU_DATA (SKU, SKU_Description, Buyer) BUYER(Buyer, Department) Where SKU_DATA.Buyer must exist in BUYER.Buyer KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-9

Checking Validity of Assumed Referential Integrity Constraints II To find any foreign key values that violate the foreign key constraint: SELECTBuyer FROM SKU_DATA WHEREBuyer NOT IN (SELECTSKU_DATA.Buyer FROM SKU_DATA, BUYER WHERESKU_DATA.BUYER = BUYER.Buyer); KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-10

Type of Database Updateable database, or read-only database? If updateable database, we normally want tables in BCNF. If read-only database, we may not use BCNF tables. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-11

Designing Updatable Databases KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-12

Normalization: Advantages and Disadvantages KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-13

Non-Normalized Table: EQUIPMENT_REPAIR KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-14

Normalized Tables: ITEM and REPAIR KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-15

Copying Data to New Tables To copy data from one table to another, use the SQL command INSERT INTO TableName command: INSERT INTO EQUIPMENT_ITEM SELECTDISTINCT ItemNumber, EquipmentType, AcquisitionCost FROM EQUIPMENT_REPAIR; INSERT INTO REPAIR SELECTRepairNumber, ItemNumber, RepairDate, RepairCost FROM EQUIPMENT_REPAIR; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-16

Choosing Not To Use BCNF BCNF is used to control anomalies from functional dependencies. There are times when BCNF is not desirable. The classic example is ZIP codes: –ZIP codes almost never change. –Any anomalies are likely to be caught by normal business practices. –Not having to use SQL to join data in two tables will speed up application processing. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-17

Multivalued Dependencies Anomalies from multivalued dependencies are very problematic. Always place the columns of a multivalued dependency into a separate table (4NF). KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-18

Designing Read-Only Databases KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-19

Read-Only Databases Read-only databases are nonoperational databases using data extracted from operational databases. They are used for querying, reporting, and data mining applications. They are never updated (in the operational database sense—they may have new data imported from time to time). KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-20

Denormalization For read-only databases, normalization is seldom an advantage. –Application processing speed is more important. Denormalization is the joining of the data in normalized tables prior to storing the data. The data is then stored in nonnormalized tables. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-21

Normalized Tables KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-22

Denormalizing the Data INSERT INTO STUDENT_ACTIVITY_PAYMENT_DATA SELECT STUDENT.StudentID, StudentName, ACTIVITY.Activity, ActivityFee, AmountPaid FROM STUDENT, PAYMENT, ACTIVITY WHERESTUDENT.StudentID = PAYMENT.StudentID ANDPAYMENT.Activity = ACTIVITY.Activity; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-23

Customized Tables I Read-only databases are often designed with many copies of the same data, but with each copy customized for a specific application. Consider the PRODUCT table: KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-24

Customized Tables II PRODUCT_PURCHASING (SKU, SKU_Description, VendorNumber, VendorName, VendorContact_1, VendorContact_2, VendorStreet, VendorCity, VendorState, VendorZip) PRODUCT_USAGE (SKU, SKU_Description, QuantitySoldPastYear, QuantitySoldPastQuarter, QuantitySoldPastMonth) PRODUCT_WEB (SKU, DetailPicture, ThumbnailPicture, MarketingShortDescription, MarketingLongDescription, PartColor) PRODUCT_INVENTORY (SKU, PartNumber, SKU_Description, UnitsCode, BinNumber, ProductionKeyCode) KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-25

Common Design Problems KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-26

The Multivalue, Multicolumn Problem The multivalue, multicolumn problem occurs when multiple values of an attribute are stored in more than one column: EMPLOYEE (EmployeeNumber, EmployeeLastName, EmployeeLastName, , Auto1_LicenseNumber, Auto2_LicenseNumber, Auto3_LicenseNumber) This is another form of a multivalued dependecy. Solution = like the 4NF solution for multivalued dependencies, use a separate table to store the multiple values. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-27

Inconsistent Values I Inconsistent values occur when different users, or different data sources, use slightly different forms of the same data value: –Different codings: SKU_Description = 'Corn, Large Can' SKU_Description = 'Can, Corn, Large' SKU_Description = 'Large Can Corn‘ –Different spellings: Coffee, Cofee, Coffeee KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-28

Inconsistent Values II Particularly problematic are primary or foreign key values. To detect: –Use referential integrity check already discussed for checking keys. –Use the SQL GROUP BY clause on suspected columns. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-29

Inconsistent Values III SELECT SKU_Description, COUNT(*) AS NameCount FROMSKU_DATA GROUP BYSKU_Description; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-30

Missing Values A missing value or null value is a value that has never been provided. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-31

Null Values Null values are ambiguous: –May indicate that a value is inappropriate; DateOfLastChildbirth is inappropriate for a male. –May indicate that a value is appropriate but unknown; DateOfLastChildbirth is appropriate for a female, but may be unknown. –May indicate that a value is appropriate and known, but has never been entered; DateOfLastChildbirth is appropriate for a female, and may be known but no one has recorded it in the database. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-32

Checking for Null Values Use the SQL keyword IS NULL to check for null values: SELECT COUNT(*) AS QuantityNullCount FROMORDER_ITEM WHEREQuantity IS NULL; KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-33

The General-Purpose Remarks Column A general-purpose remarks column is a column with a name such as: –Remarks –Comments –Notes It often contains important data stored in an inconsistent, verbal, and verbose way. –A typical use is to store data on a customer’s interests. Such a column may: –Be used inconsistently –Hold multiple data items KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-34

David Kroenke and David Auer Database Processing Fundamentals, Design, and Implementation (13th Edition) End of Presentation: Chapter Four KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-35

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America. KROENKE AND AUER - DATABASE PROCESSING, 13th Edition © 2014 Pearson Education, Inc. 4-36