190 likes | 454 Views
Bite sized training sessions: Data Modelling – Part 2 of 2 Data Definitions. 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?.
E N D
Bite sized training sessions:Data Modelling – Part 2 of 2Data Definitions
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 requireddata dependencies A set of data definitions required foreach 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
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.
Attributes “The atomic pieces of information that we need to know about entities” Customer(entity) Sale Product
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)
Primary Keys are the navigation method for relationships Customer(entity) Purchases Sale Purchased via Product
5 Data Modelling “No-No”s • No repeating attributes on entities E.g. On a Customer entity “1st child name”, “2nd child name”… • No attributes on entities that do not depend on the primary key E.g. On Customer entity “order date” The following should have been addressed via entity relationship diagram: • No “Many to Many”s between entities • No “one to one”s between entities (usually) • No circular relationships between entities (usually)
A word about data definitions • There is no definitive set of information to define data • There is some basic information that will always be needed • Do what you need to do in order to define the data • The following has worked during real-life project and is a proven starting point
Process for defining the data • For each entity on the diagram • Define the entity • Define it’s relationships • Identify non-key attributes from • Process specs • User input • Your analysis of requirements • …but always verify they are in scope! • Define attributes
Data definitions - Entities • what the entity really is – ‘legal’ definition • Example: the “Sale” entity is a record of when a Product was purchased by a Customer • The (non-functional) requirements the business has for entities • Attributes • example: Date, Quantity • Retention period • example: 6 years – justification: legal requirement • Max volume (max number of instances) • Example: 60,000 based on average number of sales per year of 10,000 x retention period • Examples (not a requirement but very useful) • Example: On 28/4/2011 a flange was sold to Fred Bloggs
Data definitions - Relationships • What the relationship really is – ‘legal’ definition • Example: For the relationship “Customer purchases Sale” – A Customer agrees to make immediate and full payment for a Product which is given to the Customer at the time the Sale is made. • The (non-functional) requirements for relationships is the cardinality – already defined in the diagram
Data definitions - Attributes • What the attribute really is – ‘legal’ definition • Example: On entity Sale the attribute “Date”: the day and time the Sale was agreed with the Customer • The (non-functional) requirements the business has for them • Data type • Example: Numeric • Size • Example: 12 • Domain – not all attributes will have a domain • Example: Timestamp YYYYMMDDHHMM • Rules – not all attributes will have a rule(s) • Example: Cannot be a Sunday or Bank Holiday and must be between 09:00 and 17:30 and always display as YYYY-MM-DD:HH.MM • Examples (not a requirement but very useful) • Example: 2011-04-28:10.05
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. We have already got a data model of the requirements so lets define the data for Customer.
An answer… 9900 (3 years, 302 working days per year, 15 customers per day) Fredbloggs@hotmail.com Someone who purchases flowers from My Florist Email Address 3 years The customer has purchased flowers from My Florist for a Special Occasion in the past, so reminders need to be sent just before the anniversary of the event. Email address None Fredbloggs@hotmail.com Unlimited The email address given by the customer at the point of sale of flowers for a Special Occasion Character
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 • You have already produced a data model showing • Entities • Primary Keys • Relationships • Define the data entities, relationships and attributes. • Suggestion: follow the process for producing a data model diagram 6 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: 45 minutes • Deliverable: • Flip chart data definitions • Flip chart assumptions • Be prepared to present your data definitions 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!