08 Data Modelling Pt1 - smart-BA!

advertisement
Bite sized training sessions:
Data Modelling – Part 1 of 2
Data Model Diagrams
Feb 2011
Prepared by Guy Beauchamp
Group Projects & IT
Objectives
• To understand
– What is a data model … and what it
is not!
– Why do data modelling
• To be able to
– Read a data model
– Build a data model
– Critically review a data model
What is a data model?
• Specification of the data that is required in order for
– The solution to meet it’s objectives
– Processes to be able to run
• A data model comprises:
– A diagram showing the required data dependencies
– A set of data definitions required for each attribute on the
diagram
• Also referred to as:
– Logical Data Model (LDM)
– Entity Model
– Entity Relationship Diagram (ERD)
– Data Dictionary
– Object Model
– Class Diagram
– Data Structure
– …etc!
What a data model is not
• A physical design for storing
data
• A database design
• Database table definitions
• Object specification
Why do data modelling?
Data & Process Requirements
Designed
As
Designed
Designed
As
As
Physical
data Specs
Databas
e
Designs
Designed
As
Manual
ManipulateProcedures
Manipulate
Solution Specification
System
Specs
Data Model Components
Entity
A real world thing or an interaction between 2 or more real world things.
Relationship How and why entities depend on each other (the relationship) and what that
relationship is (the cardinality of the relationship).
Attribute
The atomic pieces of information that we need to know about entities.
Entity
“A real world thing or an interaction between 2 or more real world things.”
• A real world thing
– E.g. Customer, Product
• An event between 2 or more entities
– E.g. Sale
‘Type’ Entities
Customer Type
describe
be described by
Customer
e.g.
Student, Premium, Business, Retail
• Categorises other entities
• Holds information that applies to sets of other entities
• Very common
• Typical relationship cardinality is mandatory 1:M
• Relationship names add little value
Relationships
“How entities depend on each other in terms of why the entities depend on each other
(the relationship) and what that relationship is (the cardinality of the relationship).”
There are dependency business rules between two entities – can be shown as:
NB: there are other notations.
Relationship Names
Always name relationships in at least one direction
(except for those involving Type entities)
Especially useful when there is more than one relationship
between two entities:
Flight
Departure point for
Arrival point for
Departs from
Arrives at
Airport
Reading relationships
One Customer (entity) may (cardinality) purchase (relationship name) one
or more (cardinality) SALEs (entity)
One SALE must be purchased by one CUSTOMER
Tip – start with the word “One”, never “MANY”
Attributes
“The atomic pieces of information that we need to know about entities”
Customer (entity)
No (attribute)
Name (attribute)
10
Fred Bloggs
(instance)
67
Freda Jones
(instance)
Sale
Customer No
Product No
Date
10
101
21/2/2020
67
452
22/2/2020
Product
No
Name
Price
101
Flange
£123.00
452
Blitwort
£34.50
Primary Keys
•A special kind of attribute, set of attributes and/or relationships
•Is the way for the business to identify 1 unique instance of an entity
•Certain rules apply to a primary key:
•Must not be repeated within an entity
•Once assigned can never be updated (only deleted)
•Must be the way that the business uniquely identify an instance of an entity
Customer (entity)
No (attribute)
Name (attribute)
10
Fred Bloggs
(instance)
67
Freda Jones
(instance)
Which attribute makes the best primary key?
Why?
Primary Keys are the navigation method for relationships
Customer (entity)
No (attribute)
Name (attribute)
10
Fred Bloggs
(instance)
67
Freda Jones
(instance)
Purchased
Sale
Discussion:
Customer No
Product No
Date
10
101
21/2/2020
67
452
22/2/2020
Purchased via
Product
No
Name
Price
101
Flange
£123.00
452
Blitwort
£34.50
What is the PK of Sale?
Do PKs need to be shown at the ‘FK’
end of a relationship?
5 Data Modelling “No-No”s
1.No repeating attributes on entities
E.g. On a Customer entity “1st child name”, “2nd child name”…
2.No attributes on entities that do not depend on the primary key
E.g. On Customer entity “order date”
3.No “Many to Many”s between entities
E.g. Product ordered by many customers, a customer orders many
products
4.No “one to one”s between entities (usually)
E.g. Customer has one Membership Card and a Membership Card is
for one Customer
5.No circular relationships between entities (usually)
E.g. next slide
Circular relationships
Circular relationships
How do we fix
this circular
relationship?
Process for producing a data model diagram
•
•
•
•
identify candidate entities
select a central candidate entity
define the primary key
work through the rest of the candidate entities
• consider whether it is in scope
• define the primary key
• define the relationship(s) between the candidate entity and all other
candidate entities on the diagram
• create description entities as needed
• fully express the cardinality of the relationship(s)
• name the relationship(s) as needed
• validate everything with the user
• review and refine.
Next step: Data definitions…
…covered in part 2 of this bite sized
training session
Minor Exercise
I own a florist’s shop called My Florist.
I want to start emailing reminders to
customers when special occasions are due
for which they have brought flowers in the
past – for example a spouse’s birthday.
Let’s draw up a data model to support that
process.
An answer…
Major Exercise
• You are business analysts working for a company called
re-Evolution Coffee Houses Ltd
• You have been given a piece of work – ref handouts
• Produce a data model showing
– Entities
– Primary Keys
– Relationships
• Suggestion: follow the process for producing a data
model diagram 4 slides previously
• The business users will be available for questions
Major Exercise
• If you need to make an assumption about business
requirements or anything else then document it
• Time allowed: 1 hour
• Deliverable:
– Flip chart data model
– Flip chart assumptions
• Be prepared to present your data model to the other
team
• Don’t worry about completing the exercise
• Do worry about the quality of what you get through
…and finally
• Any questions?
• Further resources…
• Feedback
• Thank-you!
Download