data modelling ii. plan introduction structured methods –data flow modelling –data modelling...
Post on 19-Dec-2015
221 views
TRANSCRIPT
Data Modelling II
Plan
• Introduction
• Structured Methods– Data Flow Modelling– Data Modelling– Relational Data Analysis
• Feasibility
• Maintenance
Data Model Requirements
• Designers, end-users and programmers tend to view data in different ways
• We need a communications tool that will enable models to be understood by all– Non-technical– Un-ambiguous
(Connolly & Begg, 2000)
Entity
• A thing that occurs more than once in the system about which we need to store information
• …occurs more than once…• …about which we need to store information…
(These are NOT the same as external entities in DFDS)
Identifying Entities
• One way of identifying possible entities is to find all the nouns in a description of a system
• But…– Some of these might be attributes– Some of these might be neither entities or
attributes– This may not find all of the entities
Entities and Attributes
• Often an entity in one system will be an attribute in another system and might be neither in another system
• This depends on the context of the system we are studying
• We need to be clear about the system and its data and processing requirements
ERD Elements
• E.G. In a student enrolment system
Student
Student NumberNameAddressPhone NumberCourse
Entity Name
Key Attribute
Non-Key Attributes
One-to-Many
• Mulchester University
Student
Student Number
Course
Course Code
Enrolled on
EnrolsParent/Master
Child/Detail
Examples
• 1 to many (1 or more)
• 1 (or 0) to 1
• 1 (or 0) to many (1 or more)
• Many (1 or more) to Many (1 or more)
• Many (0, 1 or more) to 1 (or 0)
One-to-Many
• Mulchester University– Each Course MUST enrol
one or more students– Each Student MUST be
enrolled on one course
– Student and Course cannot exist independently Student
Student Number
Course
Course Code
Enrolled on
Enrols
One-to-Many
• Mulchester University– Each Course MAY enrol
one or more students– Each Student MUST be
enrolled on one course
– A course may exist with no students enrolled on it
Student
Student Number
Course
Course Code
Enrolled on
Enrols
One-to-Many
• Mulchester University– Each Course MUST enrol
one or more students– Each Student MAY be
enrolled on one course
– A student may exist that is not enrolled on a course Student
Student Number
Course
Course Code
Enrolled on
Enrols
One-to-Many
• Mulchester University– Each Course MAY enrol
one or more students– Each Student MAY be
enrolled on one course
– Both student and course may exist independently
Student
Student Number
Course
Course Code
Enrolled on
Enrols
Identifying Relationships
• One to One– Each
member of staff manages one branch
– Each branch managed by one member of staff
StaffID
S1001
S1003
S0110
Branch
B001
B002
manages
(Connolly & Begg, 2000)
Identifying Relationships
• One to Many– Each
Branch has Many employees
– Each employee works at one branch
Branch
B001
B002
StaffID
S0001
S0002
S0110
S2345
has
(Connolly & Begg, 2000)
CustID
C1001
C1002
C5210
AccNo
A001
A102
A307
Identifying Relationships
• Many to Many– £ach
customer has many accounts
– £ach account held by many customers
(Connolly & Begg, 2000)
Identifying Relationships
• This is a useful exercise but…
• Things are not always as they appear at any given time
• Need to check with users– Historical facts– Future Requirements
• Have/will staff ever worked at multiple branches
Big Jim’s Bikes
• Big Jim sells Bikes on the Internet. Customers email Big Jim with their details and those of the bike that they want to buy
• Bike details are taken from the bike list posted on Big Jim’s Website, where every bike is listed with a unique stock number
• On receipt of an email Big Jim checks the bike details and then requests payment in full
• On receipt of payment Big Jim wraps the bike in brown paper and posts it to the customer using Royal Mail
• Big Jim stores customer details in case they buy another bike. No details of payments are stored.
Identify Entities
• Big Jim sells Bikes on the Internet. Customers email Big Jim with their details and those of the bike that they want to buy
• Bike details are taken from the bike list posted on Big Jim’s Website, where every bike is listed with a unique stock number
• On receipt of an email Big Jim checks the bike details and then requests payment in full
• On receipt of payment Big Jim wraps the bike in brown paper and posts it to the customer using Royal Mail
• Big Jim stores customer details in case they buy another bike. No details of payments are stored.
Draw ERD
• Each Customer can buy many bikes
• Each bike is bought by one customer
• Big Jim holds customer details before they buy a bike
• Bike details are held before they are bought
Bike
Stock Number
Customer
Customer Number
Buys
Bought by
Exercise 2
• Big Jim has decided that it is too much work to list every bike. He now lists bikes by model and customers buy one of that model rather than a specific bike. Each bike still has a unique stock number.
• Example models in Big Jim’s system are:– Raleigh Chopper– Penny Farthing– Dahon Espresso– Shogun XC200
• How does this effect the data model?
Solution
What do we know?
• How to identify Entities and Attributes
• Why we need a Key Attribute
• How to describe the Relationships between Entities
• How to draw an Entity Relationship Diagram
What problems still exist?
• There are some problems associated with M:N relationships that need to be resolved
• We may need to examine attributes in more detail
• We need to check our model against the required transactions
• There are additional relationships we could describe
Implementing the model
• At some point we will build a database from our data model
• It is likely that this will be a relational database– Access– Oracle– SQL Server– MySQL– DB2
Implementing the model
• The relational data model Does Not Support many-to-many relationships
• These must be resolved
How to resolve M:N
• Example 1- Students and Modules
Student
Student Number
Module
Module CodeEnrolled on
Enrols
How to resolve M:N
Student
Student Number
Module
Module Code
Student/Module
Student NumberModule Code
Remove the M:N relationship
Replace it with a “link” entity
Note the key attribute is compound
Add two new 1:M relationships
How to resolve M:N
Student
Student Number
Module
Module Code
Enrolment
Student NumberModule Code We can give the
new entity a more meaningful name
How to resolve M:N
Student
Student Number
Module
Module Code
Enrolment
Student NumberModule CodeGrade
It is likely that we will find new attributes that belong to the new entity
How to resolve M:N
• Example 2 – Orders and Stock Items
Order
Order Number
Stock Items
Stock CodeContains
Appears on
How to resolve M:N
Order
Order Number
Stock Item
Stock Code
Stock/Order
Order NumberStock Code
How to resolve M:N
Order
Order Number
Stock Item
Stock Code
Order Line
Order NumberStock Code
How to resolve M:N
Order
Order Number
Stock Item
Stock Code
Order Line
Order NumberStock CodeQtyLine Total
How to resolve M:N
• Example 3 – Books and Authors
Book/Title
ISBNTitle
Author
Author NameWritten by
Author of
Structural Problems
• Some structural problems may exist in our model– Fan Traps– Chasm Traps
Fan Traps
Staff
StaffID
Car
CarNo
Branch
BranchNo Base forhas
at Based at
(Connolly & Begg, 2000)
How do we know which car is allocated to which staff?
Fan Traps
StaffID
S1003
S1010
Branch
B001
B002
CarNo
V001
V002
V003
(Connolly & Begg, 2000)
Fan Traps
StaffID
S1003
S1010
Branch
B001
B002
CarNo
V001
V002
V003
(Connolly & Begg, 2000)
Fan Traps
Staff
StaffID
Car
CarNo
Branch
BranchNo Base forhas
at Based at
allocated
Allocated to
(Connolly & Begg, 2000)
Chasm Traps
Branch
BranchNo
Staff
StaffNo
Car
CarNo
How do we know which staff work at a branch?
(Connolly & Begg, 2000)
Base for
Based at
allocated
Chasm Traps
Branch
B001
B002
CarNo
V001
V002
StaffID
S1003
S1010
(Connolly & Begg, 2000)
Chasm Traps
Branch
B001
B002
CarNo
V001
V002
StaffID
S1003
S1010
(Connolly & Begg, 2000)
Chasm Traps
Branch
BranchNo
Staff
StaffNo
Car
CarNo
(Connolly & Begg, 2000)
Base forBased at
allocated
has
at
Other relationships
Boat
BoatID
Surfboard
SurfboardNo
Customer
Customer Number
Customer can either book boats or surfboards but not both
aa
What do we know?
• How to identify relationships
• How to resolve M:N relationships
• What chasm and fan traps look like
• Other ways of representing relationships
Normalisation
• ERDs provide a top-down means of modelling data
• Normalisation is a complimentary approach which works from the bottom up
• We can also use normalisation to ensure that we have removed redundant data from our ERD
References
• Whiteley, D. (2004) Introduction to Information Systems, Palgrave, 2004.
• Lejk, M. and D. Deeks (2002) Systems Analysis Techniques, Addison Wesley 2002
• Mason, D. and L. Willcocks (1994), Systems Analysis, Systems Design, Alfred Waller, 1994.
References
• Yeates, D. and T. Wakefield (2004) Systems Analysis and Design, FT/Prentice Hall 2004
• Gane, C. and T. Sarson (1979) Structured Systems Analysis, Prentice Hall, 1979
• Eva, M (1994) SSADM Version 4: A users guide, McGraw hill, 1994
References
• DeMarco, T. (1979) Structured Analysis and System Specification, Yourdon, 1979
• Royce, W. (1970) Managing the development of large software systems, In: Proceedings of IEEE WESCON, 1970 pp1-9.
• Connolly, T. and C. Begg (2000) Database Solutions, Addison-Wesley, 2000