Methodology – Conceptual Database Design

Download Report

Transcript Methodology – Conceptual Database Design

Chapter 8
Methodology Conceptual Database Design
Chapter 15 in Textbook
Design Methodology
A structured approach that uses procedures, techniques, tools,
and documentation aids to support and facilitate the process of
design.
Conceptual DB Design
2
Database Design
Hardware independent
Software independent
Conceptual
DB design
Hardware independent
Software dependent
Logical
DB design
Hardware dependent
Software dependent
Physical
DB design
Conceptual DB Design
3
Success Factors in Database
Design
• Work interactively with users as much as possible.
• Follow a structured methodology throughout the data modelling process.
• Employ a data-driven approach.
• Incorporate structural and integrity considerations into the data models.
• Combine conceptualization, normalization, and transaction validation techniques
into the data modelling methodology.
• Use diagrams to represent as much of the data models as possible.
• Build a data dictionary to supplement the data model diagrams.
• Be willing to repeat steps.
Conceptual DB Design
4
Design Methodology Overview
Step 1 Build local conceptual data model for each user view.
Step 2 Build and validate local logical data model for each view.
Step 3 Build and validate global logical data model.
Step 4 Translate global logical data model for target DBMS.
Step 5 Design physical representation.
Step 6 Design user views.
Step 7 Design security mechanisms.
Step 8 Consider the introduction of controlled redundancy.
Step 9 Monitor and tune the operational system.
Conceptual DB Design
5
Methodology Overview –
Conceptual Database Design
Step 1 Build local conceptual data model for each user view
Step 1.1 Identify entity types.
Step 1.2 Identify relationship types.
Step 1.3 Identify and associate attributes with entity or relationship types.
Step 1.4 Determine attribute domains.
Step 1.5 Determine candidate and primary key attributes.
Step 1.6 Consider use of enhanced modeling concepts (optional step).
Step 1.7 Check model for redundancy.
Step 1.8 Validate local conceptual model against user transactions.
Step 1.9 Review local conceptual data model with user.
6
Methodology Overview –
Logical Database Design for
Relational Model
Step 2 Build and validate local logical data model for each view
Step 2.1 Derive relations for local logical data model.
Step 2.2 Validate relations using normalization.
Step 2.3 Validate relations against user transactions.
Step 2.4 Define integrity constraints.
Step 2.5 Review local logical data model with user.
Conceptual DB Design
7
Methodology Overview –
Logical Database Design for
Relational Model
Step 3 Build and validate global logical data model
Step 3.1 Merge local logical data models into global model.
Step 3.2 Validate global logical data model.
Step 3.3 Check for future growth.
Step 3.4 Review global logical data model with users.
Conceptual DB Design
8
Methodology Overview –
Physical Database Design for
Relational Model
Step 4 Translate global logical data model for target DBMS
Step 4.1 Design base relations.
Step 4.2 Design representation of derived data.
Step 4.3 Design enterprise constraints.
Step 5 Design physical representation
Step 5.1 Analyze transactions.
Step 5.2 Choose file organization.
Step 5.3 Choose indexes.
Step 5.4 Estimate disk space requirements.
9
Methodology Overview –
Physical Database Design for
Relational Model
Step 6 Design user views
Step 7 Design security mechanisms
Step 8 Consider the introduction of controlled redundancy
Step 9 Monitor and tune the operational system
Conceptual DB Design
10
Step 1 Build Local Conceptual
Data Model for Each View
Objective: To build a local conceptual data model of an enterprise for each
specific view.
Step 1.1 Identify entity types
Objective: To identify the main entity types that are required by the view;
Document entity types in data dictionary.
Conceptual DB Design
11
Data Dictionary for Staff View
Showing Description of Entities
Entity Name
Staff
Description
General term describing all staff
employed by DearmHome
PropertyForRent General term describing all
property for rent
Conceptual DB Design
Aliases Occurrence
Employee
Each member of staff works at one
particular branch
Property
Each property has a single owner &
is available at one specific branch,
where the property is managed by 1
member of staff. A property is viewed
by many clients and rented by a single
client at a time
12
Step 1 Build Local Conceptual
Data Model for Each View
Step 1.2 Identify relationship types
Objective: To identify the important relationships that exist between the
entity types that have been identified.
– Check for binary, complex, recursive relationship types.
– Check for explicit, and implicit relationship types.
– Use ER diagrams.
– Determine multiplicity of relationships.
– Check for fan and chasm traps.
– Check that each entity participate in at least one relationship.
– Document relationship type.
Conceptual DB Design
13
ERD for Staff View of DreamHome
supervisor
BUSINESS
OWNER
(1,*)
supervise
(0,*)
supervisee
(0,*)
STAFF
register
(0,*)
(0,100)
manage
(0,1)
BOwn
(1:1)
(0,1)
PROPERTY
POwn
(0,1)
(0,*)
(0,*)
PRIVATE
OWNER
hold
(1:1)
LEASE
(0,*)
CLIENT
(0,*)
associate
(1,*)
views
(1:1)
state
(1:1)
(1:1)
PREFERENCE
Data Dictionary for Staff View
Showing Description of Relationships
Entity Name
Multiplicity
Relationship
Entity Name
Multiplicity
Staff
0..1
0..1
Manages
Supervises
PropertyForRent
Staff
0..100
0..10
PropertyForRent
1..1
AssociatedWith
Lease
0..*
Conceptual DB Design
15
Step 1 Build Local Conceptual
Data Model for Each View
Step 1.3 Identify and associate attributes with entity or relationship types
Objective: To identify and associate attributes with the appropriate entity or
relationship types and document the details of each attribute.
For entity list what information are we required to hold on?
– Check simple & composite attributes.
– Check single & multi-valued attributes.
– Derived attributes.
– Check for shared attributes.
– Document the attribute.
Conceptual DB Design
16
Step 1 Build Local Conceptual
Data Model for Each View
Step 1.4 Determine attribute domains
Objective: To determine domains for the attributes in the local conceptual
model and document the details of each domain.
– Data type.
– Size.
– Allowable value.
– Default value.
Conceptual DB Design
17
Data Dictionary for Staff View
Showing Description of Attributes
Entity Attribute
Name
Staff StaffNo
Description
Data Length Nulls Multi- Default
Type
Valued Value
Uniquely identifies a staff member varchar
5
No
No
Range
PK
Y
name
FName
First name of Staff
varchar
15
No
No
Lname
Last name of Staff
varchar
15
No
No
position
Job title of member of staff
varchar
10
No
No
sex
Gender of member of staff
character
1
Yes
No
DOB
Date of Birth of member of staff Date
Yes
No
Conceptual DB Design
M
F, M
1960-1990
18
Step 1 Build Local Conceptual
Data Model for Each View
Step 1.5 Determine candidate and primary key attributes
Objective: To identify the candidate key(s) for each entity and if there is
more than one candidate key, to choose one to be the primary key.
CK must be:
– minimal set of attributes.
– least likely to have its value changed.
– fewest size or smallest maximum number.
– easiest to use from the user’s point of view.
Step 1.6 Consider use of enhanced modeling concepts
Objective: To consider the use of enhanced modeling concepts, such as
specialization / generalization, aggregation, and composition.
Conceptual DB Design
19
ERD with PK
StaffNo
OwnerNo
supervisor
BUSINESS
OWNER
(1,*)
supervise
(0,*)
supervisee
(0,*)
STAFF
register
(0,*)
(0,100)
manage
PropertyNo
(0,1)
BOwn
VDate
Comment
(1:1)
(0,1)
PROPERTY
POwn
(0,1)
(0,*)
(0,*)
(1,*)
PRIVATE
OWNER
hold
(1:1)
LeaseNo
LEASE
(0,*)
CLIENT
(0,*)
associate
OwnerNo
views
(1:1)
state
(1:1)
(1:1)
PREFERENCE
ClientNo
EERD for Staff View of DreamHome
StaffNo
SUPERVISOR
STAFF
register
(0,*)
(0,100)
manage
OwnerNo
PropertyNo
(0,1)
(1,*)
OWNER
VDate
(1:1)
(1,1)
BOwn
PROPERTY
(0,*)
views
(0,*)
d
PRIVATE
OWNER
Comment
hold
(1:1)
LeaseNo
LEASE
CLIENT
(0,*)
associate
BUSINESS
OWNER
(0,*)
(1:1)
state
(1:1)
(1:1)
PREFERENCE
ClientNo
Step 1 Build Local Conceptual
Data Model for Each View
Step 1.7 Check model for redundancy
Objective: To check for the presence of any redundancy in the model.
1. Re-examine 1:1 relationships.
2. Remove redundant relationships.
Step 1.8 Validate local conceptual model against user transactions
Objective: To ensure that the local conceptual model supports the
transactions required by the view.
– Describe the transaction.
– Use transaction pathways: diagrammatically represent the pathway
taken by each transaction on the ERD.
Conceptual DB Design
22
Using transaction’s Pathways
StaffNo
(b)
SUPERVISOR
STAFF
(a)
register
(0,*)
(0,100)
(e)
(d)
manage
OwnerNo
PropertyNo
(0,1)
(c,g)
(1,*)
OWNER
VDate
(1:1)
(1,1)
PROPERTY
BOwn
(0,*)
(0,*)
d
(l)
PRIVATE
OWNER
Comment
(h,i)
associate
BUSINESS
OWNER
LEASE
(k)
(j)
(1:1)
(0,*)
ClientNo
CLIENT
(0,*)
hold
(1:1)
LeaseNo
views
(1:1)
state
(m)
(1:1)
PREFERENCE
Step 1 Build Local Conceptual
Data Model for Each View
Step1.9 Review local conceptual data model with user
Objective: To review the local conceptual data model with the user to ensure
that the model is a ‘true’ representation of the user’s view of the enterprise.
Conceptual DB Design
24