What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements...
Transcript of What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements...
![Page 1: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/1.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 1
About Steve Hoberman
• Data modeling since 1990 • Instructor for the Data Warehousing Institute • Author of The Data Modeler's Workbench• Performs 3 roles for organizations
– Expert Data Modeler• Model reviews• Tandem designing
– Data Modeling Instructor– Analysis and Design Strategist
Steve [email protected]
What if you knew the future?
“Wait! I see it now. The winning numbers in tonight’s lottery will be…”
![Page 2: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/2.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 2
What is abstraction?
Combining data elements, relationships, and/or entities into a single more generic structure, without denormalizing
Using abstraction to accommodate future requirements
• What is abstraction?• Short workshop on applying abstraction
– Including steps, guidelines & subtyping
• The Good and the Bad• Abstraction in practice• What can you abstract?• Reusable abstraction components• Where is abstraction most effective?• Another short (but fun!) workshop• Other approaches to accommodate future requirements
![Page 3: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/3.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 3
….these business rules
• An Associate can be assigned to many Customers
• A Customer can contact many Associates• An Associate manages the relationship
with many Suppliers• A Supplier can contact many Associates
Abstraction example - We are given these data elements and...
• Customer– First name– Last name– Address line– City– State– Zip code– Phone number– Fax number– Tax id– First order date– DUNS #
SupplierCompany nameContact first nameContact last nameAddress lineCityStateZip codePhone numberFax numberCredit RatingFirst PO DateDUNS #
AssociateFirst nameLast nameAddress lineCityStateZip codePhone numberPager numberSocial Security #Email addressHire dateClock #
![Page 4: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/4.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 4
Abstracting steps
1. Create a normalized model2. Abstract where appropriate
Data ElementsEntitiesRelationships
3. Document in detail4. Denormalize where appropriate
![Page 5: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/5.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 5
1. Create Normalized Model
![Page 6: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/6.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 6
2. Abstract where appropriate -Data Elements
2. Abstract where appropriate
To determine where to abstract, answer these 3 questions:
– Does this data element, entity, or relationship have something in common with one or more other data elements, entities, or relationships?
– If yes, are there concrete situations that would warrant an abstract structure?
– If yes, is the extra development effort now, less than making database changes down the road?
If the answer to all 3 is “Yes!”, abstract!
![Page 7: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/7.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 7
2. Abstract where appropriate - Data Elements
![Page 8: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/8.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 8
Important Aside - Subtyping Logical Symbols
ExhaustiveExhaustive
NonNon--ExhaustiveExhaustive
NonNon--OverlappingOverlapping
OverlappingOverlapping
Important Aside - Subtyping Types
ExhaustiveExhaustive
NonNon--ExhaustiveExhaustive
NonNon--OverlappingOverlappingOverlappingOverlapping
CourseCourse
LectureLecture WorkshopWorkshop
AssociateAssociate
MaleMale FemaleFemale
PersonPerson
StudentStudent InstructorInstructor
ContactContact
ComplimentCompliment ComplaintComplaint
![Page 9: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/9.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 9
2. Abstract where appropriate - Entities
![Page 10: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/10.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 10
3. Document in detail
![Page 11: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/11.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 11
4. Denormalize where appropriate
![Page 12: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/12.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 12
The Bad
• Needs more explanation and documentation– “What does a Thing mean?”– Meta data needed for row values, not just columns
• Less rules in the database• Increased development• Performance issues• Difficult to justify long term benefits to a
project-focused team
The Good
• Flexibility– Modeling for the future
• Reduced design time• Greater understanding of
entities• Less rules in the database?
![Page 13: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/13.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 13
Abstraction in Practice - Item
Abstraction in Practice -Business Party
![Page 14: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/14.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 14
Reusable abstraction components
• Pre-built abstract model “pieces” that can replace application-specific sections on the model
• Provides all benefits of abstraction + improves consistency across models
• CAUTION: First understand application before applying these components
• Can create specific to industry or company, but common at high level
What can you abstract?
• Entities (aka Subtyping)• Data elements• Relationships
NOTE: You can dramatically increase the power of abstraction by combining 2 or 3 of these in the same structure
![Page 15: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/15.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 15
Entities - Who?
Entities
• Who?• What?• When?• Where?• Why?• How?
![Page 16: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/16.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 16
Entities - When?
Entities - What?
![Page 17: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/17.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 17
Entities - Why?
Entities - Where?
![Page 18: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/18.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 18
Data Elements
• Highest level is class word:– Amount– Name– Code– Date
123123789789
5050129129
Gross weightGross weightTotal sales amountTotal sales amount
Entities - How?
![Page 19: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/19.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 19
Where is abstraction most effective?
• Designs that require longevity, yet whose requirements can change often– Meta data repository– Data warehouse– Enterprise Data Model– Reference databases (Item, Customer)
Relationships
![Page 20: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/20.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 20
Create a data model of a meta data repository
![Page 21: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/21.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 21
Data modeling resources
• Books– Data Modeler’s Workbench, by Hoberman– The Data Modeling Handbook, by Reingruber
and Gregory– Data Modeling Essentials, by Simsion– An Introduction to Database Systems, by Date
• Discussion groups– www.stevehoberman.com
• Take the Design Challenge!
– www.datawarehousing.com• Data warehouse topics including modeling,
development, tools
Other approaches to accommodate future requirements
• Normalization• Take more than your immediate needs
from source systems• What else?
![Page 22: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/22.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 22
Using abstraction to accommodate future requirements
• What is abstraction?• Short workshop on applying abstraction
– Including steps, guidelines & subtyping
• The Good and the Bad• Abstraction in practice• What can you abstract?• Reusable abstraction components• Where is abstraction most effective?• Another short (but fun!) workshop• Other approaches to accommodate future requirements
Data modeling resources
• Websites– www.stevehoberman.com– www.dmreview.com
• Article archive and portal
– www.infogoal.com/dmc/dmcdmd.htm• Portal to data modeling sites
– www.tdan.com• Newsletter on data administration
– www.EWSolutions.com– www infocentric.org– www.ralphkimball.com– www.billinmon.com
• Email address– [email protected]
![Page 23: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/23.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 23
1. Create Normalized Model
My answers to workshops
![Page 24: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/24.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 24
2. Abstract where appropriate -Entities
2. Abstract where appropriate -Data Elements
![Page 25: What if you knew the future? - Wild Apricot...Using abstraction to accommodate future requirements • What is abstraction? • Short workshop on applying abstraction – Including](https://reader034.fdocuments.net/reader034/viewer/2022050522/5fa5caefeacb8a12cd3da1e6/html5/thumbnails/25.jpg)
Using abstraction to accommodate future requirements
Copyright 2002 Steve Hoberman Page 25
Hmmmm….• Create a data model of a meta data repository• PS - you have 2 minutes to complete the model, so please use
abstraction
4. Denormalize where appropriate