Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Geek Sync | Becoming a Better Data Modeler: Part 2 (Faulty Design Patterns)

133 views

Published on

You can watch the replay for this Geek Sync webcast, Becoming a Better Data Modeler: Part 2 (Faulty Design Patterns), in the IDERA Resource Center, http://ow.ly/iBIn50A4qpf.

To improve your data model design skills, you can learn to apply many best practices for model structures and patterns. But how do you determine which are the best patterns to use for specific designs? In this Geek Sync webinar, Steve Hoberman will explore a series of faulty design patterns and share lots of examples of data models that exhibit these patterns. You will learn how to fix each model, with the goal of making you a better data modeler by the end of this session!

Speaker: Steve Hoberman has trained more than 10,000 people in data modeling since 1992. Steve is known for his entertaining and interactive teaching style (watch out for flying candy!), and organizations around the globe have brought Steve in to teach his Data Modeling Master Class, which is recognized as the most comprehensive data modeling course in the industry. Steve is the author of nine books on data modeling, including the bestseller Data Modeling Made Simple. One of Steve’s frequent data modeling consulting assignments is to review data models using his Data Model Scorecard® technique. He is the founder of the Design Challenges group, Conference Chair of the Data Modeling Zone conferences, and recipient of the Data Administration Management Association (DAMA) International Professional Achievement Award.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Geek Sync | Becoming a Better Data Modeler: Part 2 (Faulty Design Patterns)

  1. 1. Topics  Click to edit Master text styles • Second level • Third level − Fourth level • Fifth level Becoming a Better Data Modeler Part 2: Faulty Design Patterns OCTOBER 10, 2019 Steve Hoberman, DMC me@stevehoberman.com www.SteveHoberman.com
  2. 2. https://DataModelingInstitute.com/
  3. 3. Structurally sound
  4. 4. 3 Pillars to be Structurally Sound Consistenc y Integrity Core
  5. 5. Faulty Design Patterns Consistency catches Integrity catches Core catches Game
  6. 6. Consistency Catch Account Account Number CHAR(9) NOT NULL Account Name CHAR(50) NOT NULL Account Status Code CHAR(1) NOT NULL Checking Account Account Number (FK) CHAR(9) NOT NULL Checking Free Monthly Checks Count INTEGER NULL Savings Account Account Number (FK) CHAR(7) NOT NULL Savings Minimum Balance Amount DECIMAL(10,2) NOT NULL 4. Format inconsistent
  7. 7. Title Title Name INTEGER NOT NULL Subtitle Name DATE NULL Publication Date CHAR(50) NULL 4. Classword / format mismatch Consistency Catch
  8. 8. Class Class Code NOT NULL Class Short Name NULL Class Long Name NULL Class Full Description Text NULL Semester Semester Code NOT NULL Semester Short Name NULL Semester Long Name NULL Student Student Number NULL Student Last Name NOT NULL Student First Name NOT NULL Student Birth Date NULL Student Shoe Size NULL Student Favorite Ice Cream Flavor Name NULL Student Grade Class Code (FK) NOT NULL Semester Code (FK) NOT NULL Student Number (FK) NOT NULL Final Grade NULL 4. Optional relationship associated with not null FK 4. Mandatory relationship associated with null FK Consistency Catch
  9. 9. Faulty Design Patterns Consistency catches Integrity catches Core catches Game
  10. 10. Title Format Title Number CHAR(10) NOT NULL Title Name (FK) INTEGER NOT NULL ISBN CHAR(10) NULL (AK1:1) Integrity Catch Either make it Not Null 4. Null candidate key Title Format Title Number CHAR(10) NOT NULL Title Name (FK) INTEGER NOT NULL ISBN CHAR(10) NOT NULL (AK1:1) Title Format Title Number CHAR(10) NOT NULL Title Name (FK) INTEGER NOT NULL ISBN CHAR(10) NULL Or remove the AK
  11. 11. Title Format Title Number NOT NULL Title Name (FK) NOT NULL ISBN NULL Title Title Name NOT NULL Title Number (FK) NOT NULL Subtitle Name NULL Publication Date NULL Exist in Have as primary 4. Circular relationship s Integrity Catch
  12. 12. Faulty Design Patterns Consistency catches Integrity catches Core catches Game
  13. 13. Core Catch Student Grade Class Code (FK) Semester Code (FK) Student Last Name (FK) Final Grade Class Class Code Class Short Name Class Long Name Class Full Description Text Semester Semester Code Semester Short Name Semester Long Name Student Student Last Name Student First Name Student Birth Date Student Number Student Shoe Size Student Favorite Ice Cream Flavor Name 4. Partial key relationshi p
  14. 14. Book Book Sequence Number US Publisher Code (FK) Canada Publisher Code (FK) Book ISBN-10 Book ISBN-13 Library of Congress Catalog Number Amazon ASIN Book Title Name Book Subtitle Name Book Copyright Year Book Page Count Book Weight Publisher Publisher Code Publish Publish Publisher Publisher Code Book Book Sequence Number Publisher Code (FK) Book ISBN-10 Book ISBN-13 Library of Congress Catalog Number Amazon ASIN Book Title Name Book Subtitle Name Book Copyright Year Book Page Count Book Weight Publish Publisher Publisher Code Book Book Sequence Number Publisher Code (FK) Book ISBN-10 Book ISBN-13 Library of Congress Catalog Number Amazon ASIN Book Title Name Book Subtitle Name Book Copyright Year Book Page Count Book Weight Publish Publish 4. Two relationships but only one foreign key Or role name Core Catch Remove duplicate rel
  15. 15. Faulty Design Patterns Consistency catches Integrity catches Core catches Game
  16. 16. CUSTOMER Customer_Identif ier INTEGER NOT NULL Primary Account Code (FK) CHAR(8) NOT NULL First_Name CHAR(10) NULL Last_Name CHAR(10) NULL Customer_Phone_Number_1 CHAR(20) NULL Customer_Phone_Number_2 VARCHAR(15) NULL Customer_Phone_Number_3 DATE NOT NULL Acct Account_Code CHAR(9) NOT NULL Customer_Identif ier (FK) INTEGER NOT NULL Acct_Type Checking_Account Account_Code (FK) CHAR(8) NOT NULL Free_Checks_Per_Month_Quantity CHAR(10) NULL Savings_Account Sav ings_Account_Ty pe_Code CHAR(10) NOT NULL Account_Code (FK) CHAR(9) NOT NULL Minimum_Account_Balance_Amount CHAR(10) NULL Entity9 Account_Code (FK) CHAR(9) NOT NULL Sav ings_Account_Ty pe_Code (FK) CHAR(10) NOT NULL Employee Type Employ ee Ty pe Code DECIMAL(15,4) NOT NULL Employ ee_Ty pe_Code CHAR(50) NULL Customers Bank_Office Branch Code CHAR(5) NOT NULL Region Code CHAR(5) NOT NULL Branch Name CHAR(30) NULL Supports Support_ID COUNTER IDENTITY Customer_Identif ier (FK) INTEGER NOT NULL (AK1:1) Employ ee_ID (FK) CHAR(3) NULL (AK1:2) Support Customer_Identif ier (FK) INTEGER NOT NULL Employ ee_ID (FK) CHAR(3) NOT NULL EMPLOYEE Employ ee_ID CHAR(3) NOT NULL (IE1:1) Employ ee Ty pe Code (FK) CHAR(3) NOT NULL Branch Code (FK) CHAR(5) NOT NULL Region Code (FK) CHAR(5) NOT NULL First Name CHAR(50) NULL Last Name CHAR(100) NULL Middle Initial CHAR(18) NULL Table TEXT NULL Last_Name CHAR(100) NULL
  17. 17. Becoming a Better Data Modeler Part 2: Faulty Design Patterns OCTOBER 10, 2019 Steve Hoberman, DMC me@stevehoberman.com www.SteveHoberman.com

×