Sei sulla pagina 1di 51

1

Database Application
SAK 3408
CHAPTER 2
DATABASE DESIGN

Learning Objectives (W2)


2

Describe the database design phases.


Explain on how to construct E-R diagram.
Transform ERD into Relation.
Use normalization to decompose a relation
with anomalies into well-structured relations.

Introduction

Program

The goal of any information system is to


add value for the user.
Reduce costs
Increase sales/revenue
Provide competitive advantage
The need for database design:
Flexible enough to handle future needs
Future developers to understand the
system
To communicate with users and IT staff
The important step of all methodologies is
to build models of the system.

SQL

Design

Best:
Spend your time
on design and SQL.

Database System Design


4
Customer(CustomerID, Name, Address, )
SalesPerson(EmployeeID, Name, Commission, )
Order(OrderID, OrderDate, CustomerID, EmployeeID, )
OrderItem(OrderID, ItemID, Quantity, Price, )
Item(ItemID, Description, ListPrice, )

User views
of data.

Conceptual
data model.

Implementation
(relational)
data model.

Class diagram
that shows
business
entities,
relationships,
and rules.

List of nicelybehaved tables.


Use data
normalization to
derive the list.

Physical
data
storage.
Indexes and
storage methods
to improve
performance.

Design Stages
5

Initiation

Physical Design

Scope
Feasibility
Cost & Time estimates

Processes & Events


Objects & Attributes

Data flow diagram


Entity Relationships
Objects

User feedback

Queries
Forms
Reports
Application integration

Data storage
Security
Procedures

Implementation

Models

Forms
Reports

Conceptual Design

User Views & Needs

Table definitions
Application development

Requirements Analysis

Training
Purchases
Data conversion
Installation

Evaluation & Review

Initial Steps of Design


6

1. Identify the exact goals of the system.

2. Talk with the users to identify the basic forms


and reports.
3. Identify the data items to be stored.
4. Design the classes (tables) and relationships.
5. Identify any business constraints.
6. Verify the design matches the business rules.

The E-R Model


7

E-R model a logical representation of the


data for an organization or for a business
area
E-R diagram a graphical representation of
an entity-relationship model

Variations on ER Attribute
Display
Attributes in Ellipse
PATIENT
PAT_birthdate
PAT_idnumber
PAT_homephone
PAT_firstname
PAT_zipcode
PAT_lastname
PAT_state
PAT_address

PAT_city

Variations on ER Attribute
Display
PATIENT

PAT_birthdate

PAT_idnumber
PAT_homephone

PAT_firstname

PATIENT
PAT_zipcode

PAT_lastname
PAT_state

PAT_address
PAT_city

PAT_idnumber
PAT_firstname
PAT_lastname
PAT_address
PAT_city
PAT_state
PAT_zipcode
PAT_homephone
PAT_birthdate

Attributes in Rectangle

Variations on Level of Entity Attribute


Displays
10

Patient
PAT_idnumber
PAT_firstname
PAT_lastname
PAT_address
PAT_city
PAT_state
PAT_zipcode
PAT_homephone
PAT_birthdate

Entity with All Attributes

Patient
PAT_idnumber

Entity with Identifier


Attribute Only

PATIENT
Entity with No Attributes

E-R Model Constructs


11

Entity
person,

place, object, event or concept in the user


environment about which data is to be maintained.

Attribute
property

or characteristic of an entity type

Relationship
association

between the instances of one or more


entity types i.e. link between entities

Entity Type
12

Entity type represents a set or collection of objects


in the real world that share the same properties.
Entity Identity

Example

Person

STAF, STUDENT, LECTURER

Place

DISTRICT, TOWN, STATE

Object

BUILDING, TOOL, PRODUCT

Event

REGISTRATION, APPLICATION

Concept

COURSE, ACCOUNT

Example of Entity types according to its identity

ER VARIATIONS - CHEN
MODEL
EntityName

Verb Phrase

AttributeName

Example:
profID

profName

PROFESOR

teaches

CLASS
className
classID

ER VARIATIONS - CROWS FOOT


MODEL
14

Entity

Relationship

<identfier>
name>
<attribute-1>

Verb phrase

<attribute-2>
<attribute-3>

Attribute

Example:

PROFESSOR
profID
profName

CLASS
teaches

classID
className

Sample of E-R Diagram


15

entity

attribute

identifier

relationship

Sample of E-R Diagram


16

Basic E-R Notation


17

A special entity
that is also a
relationship

Entity
symbols

Relationship
symbols

Attribute
symbols

Entity
18

Entity Type vs. Entity Instance


Entity Type - collection of entities (often
corresponds to a table)
Entity instance - a single occurrence of an entity
type (often corresponds to a row in a table)

Strong vs. Weak Entity Types


Strong Entity Type entity that exists
independently of other entity types
Weak Entity Type entity type whose existence
depends on some other entity type

Example of Entity Type vs. Entity


Instance
19

Entity type: STUDENT

Rows represented
entity instances of
the entity type

75115
75794
76740
77388
77512
77558
77655
78436
78447
84781
84817
84858
84904
85013
85042

Farazila Yusof
Wan Haniza Wan Hassim
Norwani Mohd Zain
Zarawahida Zakaria
Rozita Bt Bahamad
Armamorhana Ahmad
Siti Amrah Zakaria
Siti Nor Haiza Mad Janapi
Noriati Jaminah
Emilza Fuad
Azli Kamarudzaman
Faddly Mazlan
Balkhis Diba Mansor
Aina Najmi Shari
Ku Irdawaty Ku Yaakob

Naming and Defining Entity


20

Use singular noun.


Should be descriptive and specific.

Should be concise.

For example: PURCHASE_ORDER and


CUSTOMER_ORDER cannot be named as ORDER
For example:
REGISTRATION_FOR_STUDENT_IN_CLASS

Should be named for the result of the event, not


the activity or process of the event. For
example: an event of a project manager
assigning an employee to work on a project

Attribute
21

Simple vs. Composite Attribute


Simple attribute cannot broken into smaller
components
Composite attribute can broken into component parts

Single-Valued vs. Multivalued Attribute


Single-Valued each of the attributes has one value
Multivalued attribute more than one value

Stored vs. Derived Attributes


Stored attribute data input or set
Derived Attribute attribute whose values can be
calculated from related attribute values.

Identifier Attributes

22

An Example of Composite
Attribute
An attribute
broken into
component parts

Entity with a multivalued attribute (Skill) and derived


attribute (Years_Employed)
23

Derived
from date employed and current date

Multivalued:
an employee can have
more than one skill

Identifier (Key)
24

Identifier (Primary Key) - An attribute (or


combination of attributes) that uniquely
identifies individual instances of an entity
type
Composite Identifier an identifier that
consists of a composite attribute.
Candidate Key an attribute that could be a
keysatisfies the requirements for being a
key

Characteristic of Identifier
25

Will not change in value


Will not be null
No intelligent identifiers whose structure
indicates classification, location etc. (e.g.
containing locations or people that might
change)
Substitute new, simple keys for long,
composite keys

Simple Key Attribute


26

The key is underlined

Composite Key Attribute


27

The key is composed


of two subparts

Relationship

Associations between instances of one or


more entity types that is of interest
Given a name that describes its function.
relationship

name is an active or a passive verb.

Relationship name:
writes
Author

Book

An author writes one or more books


A book can be written by one or more authors.

Relationship
29

Relationship Types vs. Relationship Instances

Relationships can have attributes

The relationship type is modeled as the diamond and


lines between entity types whereas the relationship
instance is between specific entity instances
These describe features pertaining to the association
between the entities in the relationship

Two entities can have more than one type of


relationship between them (multiple
relationships)
Associative Entity = combination of relationship
and entity

Relationship type
30

Entity and Relationship instances

Degree of Relationship
31

Degree of a Relationship is the number of


entity types that participate in it
Unary

Relationship
Binary Relationship
Ternary Relationship

Degree of Relationship ..cont.


32

One entity
related to
another of
the same
entity type

Entities of
two different
types related
to each other

Entities of three
different types
related to each
other

Cardinality of Relationship
33

One to One

One to Many

Each entity in the relationship will have exactly one


related entity

An entity on one side of the relationship can have


many related entities, but an entity on the other
side will have a maximum of one related entity

Many to Many

Entities on both sides of the relationship can have


many related entities on the other side

Degree of relationships and Cardinality


34

(a) Unary relationships

(b) Binary relationships


35

(c) Ternary relationships (1)


36

STUDENT

registers

COURSE

LECTURER

A simultaneous relationship between instances of three


entity types.
The above E-R diagram shows that:

A student can register many courses and a course can be


registered by many students.
A student can have many lectures and a lecture can have
many students.
A lecturer can teach many course and a course can be taught
by many lecturers.

Binary relationships
37

STUDENT

registers

COURSE

teaches

has

LECTURER

Transforming a ternary relationships into a binary relationships

(c) Ternary relationships (2)


38

Note: a relationship can have attributes of its own

Cardinality Constraints
39

Cardinality Constraints - the number of instances


of one entity that can or must be associated with
each instance of another entity.
Minimum Cardinality
If

zero, then optional


If one or more, then mandatory

Maximum Cardinality
The

maximum number

Cardinality Mandatory and Optional


40

Cardinality Constraints
41

(a) Basic relationship with only maximum cardinalities showing

(b) Mandatory minimum cardinalities

Examples of multiple relationships


42

Employees and departments entities can be related to one


another in more than one way

Strong vs. Weak Entities, and


Identifying Relationships
43

Strong entities
exist independently of other types of entities
has its own unique identifier
represented with single-line rectangle

Weak entity
dependent on a strong entitycannot exist on its own
Does not have a unique identifier
represented with double-line rectangle

Identifying relationship
links strong entities to weak entities
represented with double line diamond

Strong and Weak Entity


44

Strong entity

Identifying relationship

Weak entity

Associative Entity
45

Its an entity it has attributes

AND its a

relationship it links entities together

When should a relationship with attributes instead be an


associative entity?

All relationships for the associative entity should be many


The associative entity could have meaning independent of
the other entities
The associative entity preferably has a unique identifier, and
should also have other attributes
The associative may be participating in other relationships
other than the entities of the associated relationship
Ternary relationships should be converted to associative
entities

46

An Example of Associative Entity CERTIFICATE


47

Associative entity involves a rectangle with a diamond inside.


Note that the many-to-many cardinality symbols face toward
the associative entity and not toward the other entities

(b)Ternary relationship as an associative entity

48

ERD Exercise (1)


49

For each pair of sentences, identify entities


and the relationship representing the
sentences.

"Each student must take one or more modules"


"Each module must be taken by one or more
student(s)"
"Each customer must receive at least one
delivery"
"Each delivery must be only for one customer"
"A client my have an account manager"
Each account manager has only one client"

ERD Exercise (2)


50

An automobile insurance company needs to


keep track of information about vehicle
policyholders. The company has to store
information of customer, car and accident.
Customer information is License_no, name
and address. Customers can own one or more
cars, where the car information is Plate_no,
model and year. A car not involved or involved
in many accidents. If the car is involved in an
accident the information that will be stored is
Report_number, location and date. Each car
that is involved in accident the damage
amount will be estimate.
Draw the ERD.

ERD Exercise (3)


51

A small company that rents canoes needs a database to track basic information
about the rental and the canoes. Eventually, the firm wants to identify customers who
cause problems by damaging the canoes, but for now, the managers just want to
track the costs. The managers have outlined the data as a form. Draw an ER
diagram for this case.