Data Modelling II. Plan Introduction Structured Methods –Data Flow Modelling –Data Modelling...

Preview:

Citation preview

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

Recommended