Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

RDBMS

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 113

Database Systems

A guide to
producing a
fully functional
RDBMS

How Can this Presentation


Help Me?
If you work through this presentation use the terminology
quoted and produce all the diagrams and documentation
mentioned throughout this presentation, you will have
succeeded in meeting most of the requirements necessary
to produce a successful report on the analysis, design and
implementation of a Relational Database.

Do not move on from one


section to the next until you
fully understand and can apply
the concepts described in this
presentation

Contents
Theory and terminology
The Analysis Phase

Requirements Definition

Functional Dependency & Relationships

Normalisation

Entity Relationship Diagrams

Data Dictionaries & Data Types

Functions [Input, Processes & Outputs]

The Design Phase


The Implementation Phase

Some Terminology
Data

A collection of raw facts and


figures

Information Final product created from


the raw data after processing
Database A collection of related
information organised in a
structured way to allow easy
retrieval of any one item

Elements of a database
Table

A complete set of data. Also


known as an entity or relation

Record One row of the table


Field

One column of the table. Also


known as an attribute

Types of Database
Flat file Database Single table
Relational Database Multi table

Flat-file Database Single table


A telephone directory is an
example of a flat file database

Problems with flat-file databases


Redundant Data
Data is repeated and hence stored many times. This
wastes disk space and slows down query time.

Typographical Errors
Greater likelihood of errors when data is being entered.

Problems with flat-file databases


Updating Data
Every occurrence of a piece of data will have to be
updated if its value changes
Modifying Data
If a record is deleted this may destroy all reference to a
particular piece of data
To overcome these problems it is better to store data
in multiple tables i.e. a Relational database

Characteristics of a
relational database
Data is stored in a set of tables
Tables are joined by relational links
Reduces duplication of data in database
- Normalisation
Allows greater flexibility and efficiency

Relational Database Multi table


The data is stored in multiple tables. This is the most
common way of keeping a computerised database
Each table must have a unique reference for each
record which is called the Primary key

Replicating these into other tables creates the

Foreign key

These foreign keys form the Relationships that link


the tables together

Relational Database Multi table


Redundant Data
The disk space required to store data is reduced and
queries can be performed more quickly.
Typographical Errors
As data is only entered once the chances of these errors
occurring are greatly reduced..

Relational Database Multi table


Updating Data
Data need only be updated once as it would only have
been entered once
Modifying Data
Problems of the kind mentioned earlier disappear. New
records will simply have their attributes added to the
relevant table

Database Management System [DBMS]


DBMS
A computer program or collection of computer programs
that provides the necessary tools to create and
manipulate the data in a database
RDBMS
Relational Database Management Systems are used to
create and manipulate relational databases e.g.

- Microsoft Access
- Oracle
- Lotus Approach

Database Systems Construct a data model of an


existing, non computerised
system
THE ANALYSIS PHASE

Database Systems
Analysis Phase

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Database Systems
Analysis

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Requirements Definition
When we normalise any type of database system we
need to know what the data in the system means.
Therefore we either have to talk to the people who
use the existing system or we have to be supplied
with very detailed information about how the
system works and the data stored within it.
The following slide shows an example of some
current data.
Below this are listed some questions that help
establish the requirements of the new system.

Can you think of anything else the analyst might ask?

Requirements Definition
Salesperson
Number
3462

Salesperson
Name
Walters

Sales
Area
West

3593

Dryne

East

Customer
Number
18765
18830
19242
18841
18899
19565

Customer
Name
Delta Systems
A.Levy & Sons
Rainer & Co.
R.W.Flood Inc.
Seward Systems
Stodola's Inc.

Warehouse
Number
4
3
3
2
2
1

Warehouse
Location
Fargo
Bismark
Bismark
Superior
Superior
Plymouth

Sales
Amount
13540
10600
9700
11560
2590
8800

Does each salesperson have their own sales area?


Does each customer deal with only one salesperson ?
Does each customer only receive goods from one warehouse?
The answer to these questions will influence how we structure
the database system.
The answer to these questions and others make up the
Requirements Definition

Database Systems
Analysis

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Functional Dependency
Functional dependency means that there must be only a oneto-one dependency for each attribute mapped from a
primary key to that attribute.

It defines a relationship in which the existence of one


entity/attribute is entirely dependent on the existence of
another (one-to-one).
For example, the engine number of a car [Primary Key] can
only have engine capacity as an attribute of that key creating
Functional Dependency
BUT
A particular engine capacity can be associated with the
engine numbers of many makes of car. This does not give rise
to Functional Dependency

Functional Dependency - Practical Example


SALES
Order Number
Acc.No.
Customer
Address
Date
Item
Quantity
Item Price
Total Cost

Order Number is the primary key.


The value for each attribute of SALES,
except Item Price, depends upon the value
of the primary key.
All attributes of SALES, except Item Price,
are Functionally Dependent on the
primary key
Item Price is Functionally Dependent on the
the attribute Item

Relationships
Having established a definition for the term Functional
Dependency we now need to explore the different types
of relationships that can exist between attributes in
different entities:
There are 3 types of relationships that can exist:
One to One Relationships
One to Many Relationships
Many to Many Relationships
Now lets take a closer look at each of these on the next
slides

Entity Relationships
One-to-one
A blind person owns a guide
dog which is exclusively
theirs.

J. Smith

Rover

B. Jones

Pippa

A. Gray

Patch

Entity Relationships
One-to-many
A doctor may have many
patients, but a patient is
assigned to only one doctor.
Grant
Dr Ache

Allan

Mark
Dr Payne

Jane
Amy

Entity Relationships
Many-to-many
A film may have many stars
and each star may act in
many films.

Film X

Star A

Star B
Film Y

Star C

Important Note:
An RDBMS system cannot produce a robust solution
if two or more of the entities have a many to many
relationship

To overcome this problem it is necessary to


introduce another entity thus creating One to
Many relationships between itself and the offending
entities

This can become a common occurrence when you are


working with larger and more complex database
systems

Now you should have the tools and understanding you


require in order to normalise the data in order that a
solution can be produced using an RDBMS [Relational
Database Management System]
Please take your time when working through the next
part of this presentation and revisit it again and
again until you are completely comfortable with the
concepts involved
Normalisation of the data is perhaps the single most
important aspect of developing a robust solution to
any database problem!

Normalisation
Normalisation is a 'fancy' term for a
set of rules, designed to make sure that
a database is organised in the best way
possible
This allows the data to be processed
more efficiently and any query to be
processed.
These rules depend on relationships being
established between the entities to
create a functional dependency between
them.

The normalisation process involves:


Finding and grouping together all the
entities and their attributes.
Removing repeating groups of data.
This is another way of saying that there is no point in
storing a persons' name and details etc. in many
different places within a database.

Providing unique keys for each entity in the


database system.
You need to have a way of making sure that when you
delete 'Paul Smith' from the Transactions entity that it
is the correct person.

The Three Major Stages of Normalisation:


First Normal Form
1NF is the first level of normalisation. An entity (table)
is in First Normal form if it contains no repeating
attributes (fields) or groups of attributes.

Second Normal Form


An entity is in 2NF if no attribute (not part of the
primary key) is dependent on only part of the primary
key. This only applies to entities with concatenated
primary keys.

Third Normal Form


An entity is in 3NF if all attributes are entirely
dependent on the primary key and not on any attribute
that is not part of the primary key.

To produce a set of entities in First Normal


Form (1NF):
Remove repeating (multiple) groups within the primary
entities (tables) so that each record (row) within the entity
is the same length.
Repeating groups then become new entities, linked together
by a one-to-many relationship.
Relationships are created by including a primary key from
one entity as a foreign key in another entity

Charlies Baker Shop


Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Item

Daisy's Caf

27 Bay Drive,
Cove

16/7

Bakewell
Tart
Danish
Pastry
Apple Pie

Qty.

Item
Total
Price
Cost
20
0.15 12.35
13

0.20

45

0.15

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

Butteries

120

0.20

24.00

2276

167

Sally's
Snacks

3 High Street,
Banchory

17/7

Apple Pie

130

0.15

56.50

Cherry
Pie
Steak Pie

100

0.18

30

0.50

Meringue
Pie

20

0.20

Apple Pie

15

0.15

Danish
Pastry

50

0.20

1788

032

Tasty Bite

17 Wood Place,
Insch

18/7

7.50

Charlies Baker Shop


Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Item

Daisy's Caf

27 Bay Drive,
Cove

16/7

Bakewell
Tart
Danish
Pastry
Apple Pie

Qty.

Item
Total
Price
Cost
20
0.15 12.35
13

0.20

45

0.15

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

Butteries

120

0.20

24.00

2276

167

Sally's
Snacks

3 High Street,
Banchory

17/7

Apple Pie

130

0.15

56.50

Cherry
Pie
Steak Pie

100

0.18

30

0.50

Meringue
Pie

20

0.20

Apple Pie

15

0.15

Danish
Pastry

50

0.20

1788

032

Tasty Bite

17 Wood Place,
Insch

18/7

7.50

Charlies Baker Shop


Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Item
Price
20
0.15
13
0.20
45
0.15

Orders

Qty.

Items Purchased

Charlies Baker Shop


Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Item
Price
20
0.15
13
0.20
45
0.15

Orders

Qty.

Items Purchased

Charlies Baker Shop


Orders Table:

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Order No. can be used to uniquely identify each record and can
therefore be made the primary key.
Orders

(Order No.
Acc. No.
Customer
Address
Date
Total Cost)

Charlies Baker Shop


Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Qty.

Item
Price
20
0.15
13
0.20
45
0.15

Items
Purchased

Items Purchased Table:


No one attribute can be used to
uniquely identify a record.
Concatenated key is required

Order No. and Item together can


uniquely identify a record.
(*Order No.
Item
Quantity
Item Price)

Charlies Baker Shop


First Normal Form

Orders

(Order No.
Acc. No.
Customer
Address
Date
Total Cost)

Items
Purchased

(*Order No.
Item
Quantity
Item Price

The Three Major Stages of Normalisation:


First Normal Form
1NF is the first level of normalisation. An entity (table)
is in First Normal form if it contains no repeating
attributes (fields) or groups of attributes.

Second Normal Form


An entity is in 2NF if no attribute (not part of the
primary key) is dependent on only part of the primary
key. This only applies to entries with concatenated
primary keys.

Third Normal Form


An entity is in 3NF if all attributes are entirely
dependent on the primary key and not on any attribute
that is not part of the primary key.

To produce a set of entities in Second Normal


Form (2NF):
Test for dependency by testing each particular attribute in
turn to check that it can be uniquely identified by making
use of all the primary key. This test need not be completed
unless you have at least one table which requires a
concatenated Primary Key

Remove all partially dependent attributes to a new entity.


N.B. A concatenated key occurs when you need two
fields together in order to uniquely identify a record

Charlies Baker Shop


First Normal Form

Orders

(Order No.
Acc. No.
Customer
Address
Date
Total Cost)

Items
Purchased

(*Order No.
Item
Quantity
Item Price)

Charlies Baker Shop


Orders Table:

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Because this entity has a single attribute as the primary key


there can be no partial dependencies and therefore the entity
is already in 2NF.

Charlies Baker Shop


(2NF Step 1)

Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Primary Key

Qty.

Item
Price
20
0.15
13
0.20
45
0.15

Attribute

Items Purchased Table:


Primary key is Order No. and Item
Test for dependency by testing each
particular attribute.
Functionally Dependent?

Charlies Baker Shop


(2NF Step 1)

Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Qty.

Item
Price
20
0.15
13
0.20
45
0.15

Items Purchased Table:


Primary key is Order No. and Item
Test for dependency by testing each
particular attribute.

Primary Key

Attribute

Functionally Dependent?

Order No
Item

Quantity

YES

Quantity is functionally dependent


on Order No. and Item.

Charlies Baker Shop


(2NF Step 1)

Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Qty.

Item
Price
20
0.15
13
0.20
45
0.15

Items Purchased Table:


Primary key is Order No. and Item
Test for dependency by testing each
particular attribute.

Primary Key

Attribute

Functionally Dependent?

Order No
Item

Quantity

YES

Order No
Item

Item Price

NO

Quantity is functionally dependent


on Order No. and Item.
Item price is functionally dependent
Item, but not on Order No. and Item

Charlies Baker Shop


(2NF Step 2)

Remove any partially dependent attributes to a new entity


Order
No.
7823
7823
7823

Item

4633

Butteries

120

0.20

0.20

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

0.15
0.18
0.50
0.20

0.15
0.18
0.50
0.20

1788
1788

Apple Pie
Danish Pastry

15
50

0.15
0.20

0.15
0.20

Bakewell Tart
Danish Pastry
Apple Pie

Qty.

Item
Price
20
0.15
13
0.20
45
0.15

Item
Price
0.15
0.20
0.15

Charlies Baker Shop


(2NF Step 2)

Remove any partially dependent attributes to a new entity


Order
No.
7823
7823
7823

Item

4633

Butteries

120

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

1788
1788

Apple Pie
Danish Pastry

15
50

Bakewell Tart
Danish Pastry
Apple Pie

Part Order

Qty.
20
13
45

Item
Price
0.15
0.15
0.20
0.18
0.20
0.20
0.50

Price List

Charlies Baker Shop


(2NF Step 2)

Create a relationship between the tables


and assign Primary Keys
Order
No.
7823
7823
7823

Item

4633

Butteries

120

2276
2276
2276
2276

Apple Pie
Cherry Pie
Steak Pie
Meringue Pie

130
100
30
20

1788
1788

Apple Pie
Danish Pastry

15
50

Bakewell Tart
Danish Pastry
Apple Pie

Qty.
20
13
45

Part Order
Primary Key: Order No.
and *Item

Item
Apple Pie
Bakewell Tart
Butteries
Cherry Pie
Danish Pastry
Meringue Pie
Steak Pie

Item
Price
0.15
0.15
0.20
0.18
0.20
0.20
0.50

Price List
Primary Key: Item

Charlies Baker Shop


Second Normal Form

Orders

(Order No.
Acc. No.
Customer
Address
Date
Total Cost)

Price List

(Item
Item Price)

Part Order

(*Order No.
*Item
Quantity)

The Three Major Stages of Normalisation:


First Normal Form
1NF is the first level of normalisation. An entity (table)
is in First Normal form if it contains no repeating
attributes (fields) or groups of attributes.

Second Normal Form


An entity is in 2NF if no attribute (not part of the
primary key) is dependent on only part of the primary
key. This only applies to entries with concatenated
primary keys.

Third Normal Form


An entity is in 3NF if all attributes are entirely
dependent on the primary key and not on any attribute
that is not part of the primary key.

To produce a set of entities in Third Normal


Form (3NF):
Test each attribute in turn to check for dependency on the
primary key.
Remove all transitive dependencies to a new entity.
A transitive dependency is where an attribute is
dependent on another attribute (or attributes) that is
(are) NOT the primary key

Charlies Baker Shop


Second Normal Form

Orders

(Order No.
Acc. No.
Customer
Address
Date
Total Cost)

Price List

(Item
Item Price)

Part Order

(*Order No.
*Item
Quantity)

Charlies Baker Shop - 3NF Step1


Test for
dependency

Primary Key Attribute

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Trasnsitive Dependency

Charlies Baker Shop - 3NF Step1


Test for
dependency

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Primary Key Attribute

Trasnsitive Dependency

Order No.

YES:

Acc.No.

Acc.No can be found if we know either


Customer or Address

Charlies Baker Shop - 3NF Step1


Test for
dependency

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Primary Key Attribute

Trasnsitive Dependency

Order No.

Acc.No.

YES:

Customer can be found if we know either


Acc.No. or Address

Order No.

Customer

YES

Customer can be found if we know either


Acc.No. or Address

Charlies Baker Shop - 3NF Step1


Test for
dependency

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Primary Key Attribute

Trasnsitive Dependency

Order No.

Acc.No.

YES:

Customer can be found if we know either


Acc.No. or Address

Order No.

Customer

YES

Acc.No. can be found if we know either


Customer or Address

Order No.

Address

YES

Address can be found if we know either


Customer or Acc.No

Charlies Baker Shop - 3NF Step1


Test for
dependency

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Primary Key Attribute

Trasnsitive Dependency

Order No.

Acc.No.

YES:

Customer can be found if we know either


Acc.No. or Address

Order No.

Customer

YES

Acc.No. can be found if we know either


Customer or Address

Order No.

Address

YES

Address can be found if we know either


Customer or Acc.No

Order No.

Date

NO

Dependent on Order No.

Charlies Baker Shop - 3NF Step1


Test for
dependency

Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

56.50

032

3 High Street,
Banchory
17 Wood Place,
Insch

17/7

1788

Sally's
Snacks
Tasty Bite

18/7

7.50

Primary Key Attribute

Trasnsitive Dependency

Order No.

Acc.No.

YES: Customer can be found if we know either


Acc.No. or Address

Order No.

Customer

YES

Acc.No. can be found if we know either


Customer or Address

Order No.

Address

YES

Address can be found if we know either


Customer or Acc.No

Order No.

Date

NO

Dependent on Order No.

Order No.

Total Cost

NO

Dependent on Order No.

Charlies Baker Shop - 3NF Step2


Remove transitive dependencies to a new entity
Order
No.
7823

Acc.
No.
178

Customer

Address

Date

Daisy's Caf

27 Bay Drive,
Cove

16/7

Total
Cost
12.35

4633

526

Smiths

12 Dee View,
Aberdeen

16/7

24.00

2276

167

Sally's
Snacks

3 High Street,
Banchory

17/7

56.50

1788

032

Tasty Bite

17 Wood Place,
Insch

18/7

7.50
Acc.
No.
178

Customer

Address

Daisy's Caf

27 Bay Drive,
Cove

526

Smiths

12 Dee View,
Aberdeen

167

Sally's
Snacks

3 High Street,
Banchory

032

Tasty Bite

17 Wood Place,
Insch

Charlies Baker Shop - 3NF Step2


Remove transitive dependencies to a new entity

Orders
Order
No.
7823

Date
16/7

Total
Cost
12.35

4633

16/7

24.00

2276

17/7

56.50

1788

18/7

7.50

Customers
Acc.
No.
178

Customer

Address

Daisy's Caf

27 Bay Drive,
Cove

526

Smiths

12 Dee View,
Aberdeen

167

Sally's
Snacks

3 High Street,
Banchory

032

Tasty Bite

17 Wood Place,
Insch

Charlies Baker Shop - 3NF Step2


Create a relationship between the tables
and assign Primary Keys
Orders

Customers

Order
No.
7823

Acc.
No.
178

Date
16/7

Total
Cost
12.35

4633

526

16/7

24.00

2276

167

17/7

56.50

1788

032

18/7

7.50

Primary Key:
Order No.

Acc.
No.
178

Customer

Address

Daisy's Caf

27 Bay Drive,
Cove

526

Smiths

12 Dee View,
Aberdeen

167

Sally's
Snacks

3 High Street,
Banchory

032

Tasty Bite

17 Wood Place,
Insch

Primary Key:
Acc.No.

Charlies Baker Shop


Third Normal Form
Customers

Price List

(Acc. No.
Customer
Address)

(Item
Item Price)

Orders

(Order No.
*Acc. No.
Date
Total Cost)

Part Order

(*Order No.
*Item
Quantity)

Normalisation Complete

Normalisation 1. Remove repeating groups to create a new entity


2. Create a relationship using one of the attributes
that are left [Usually the primary key]
3.Check out entities with concatenated keys. If any
attribute is not fully dependent on both parts of the
primary key remove it to create a new entity.
4. Create a relationship using one of the attributes
that are left [Usually the primary key]
5.Check out every entity. If any attribute is
dependent on any attribute other than the primary
key, remove it into a new entity.
6. Create a relationship using one of the attributes

Database Systems
Analysis

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Entity - Relationship Diagrams


E-R diagrams show the structure of the data to be

modelled.
They are a convenient method for representing
the relationships, entities and attributes in a

system.
This is done by illustrating a system with a
diagram to produce a detailed specification for
each entity and the attributes within them.

Symbols used in an E R diagram

ENTITY

Entity a collection
of data [table]

ATTRIBUTE

Attribute a data item


in an entity
[field]

Symbols used in an E R diagram

KEY ATTRIBUTE

RELATIONSHIP

Key Attribute a data item


which makes up the
primary key or part of it.

Relationship a
description of the
link between two
entities.

Simple Examples
1. A blind person owns a guide dog

Blind Person

owns

Guide Dog

2. A doctor treats many patients

Doctor

treats

Patients

Simple Examples
3. A film may have many stars and
each star may be in many films.

Film

has

Stars

Charlies Baker Shop


Third Normal Form
Customers

Price List

(Acc. No.
Customer
Address)

(Item
Item Price)

Orders

(Order No.
*Acc. No.
Date
Total Cost)

Part Order

(*Order No.
*Item
Quantity)

1. Determine the relationships between the

entities.
Customers

places

Orders

Charlies
Baker Shop

contains

M
Price List

has

Part Order

Charlies Baker Shop


Third Normal Form
Customers

Price List

(Acc. No.
Customer
Address)

(Item
Item Price)

Orders

(Order No.
*Acc. No.
Date
Total Cost)

Part Order

(*Order No.
*Item
Quantity)

Order No

2. List the attributes alongside

*Acc. No
Total Cost

each entity
Customers

places

Acc.No

Address

Price List
Item
Item Price

Charlies
Baker Shop

Customer

has

Orders

Date

contains

M
Part Order
*Order No
*Item
Quantity

Database Systems
Analysis

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Data Dictionary
A data dictionary is a database about a

database and is often called metadata [data about


data]
It is created at the analysis stage to provide a
record of the attributes and their properties:
- Data type
- Required [or not] I.e. Can this field be left
blank ?
- Range
- Format
When the database is up and running it acts as
a useful reference

Data Types
Text
A text attribute only stores letters from the
standard 26 character alphabet

Number
Used to hold numeric data. Remember to show the
range of numbers to be stored [ Use common sense]
Text and Number
Used for alphanumeric data e.g. An address that
may contain a house number and street name.

Data Types
Date
Dates can be laid out using various formats. Two
common formats are short (dd/mm/yy) or
(dd/mm/yyyy) and long (month day, year)
Time
Various formats can be used here. A time of
day, a duration, 24-Hr clock, am/pm etc.
Boolean
These are binary values only having two states.
True/false, yes/no or off/on.

Data Types
The data types and formats used at this
stage will be general and will be mapped
on to those available in the RDBMS
[Relational Database Management System]
in the design phase.

Data Dictionary for Charlies


Baker Shop
Entity
Orders

Attribute
Order No
Acc.No
Date
Total Cost

Customers

Price List

Part Order

Description
Unique Identifier. Numbers in the range 199999 required
Unique Identifier. Numbers in the range 199999 required
Short Form dd/mm/yy

Acc.No

Cost of total order; Value up to 9999.99


required.
Unique Identifier. See Orders entity

Customer

Company Name required; text only

Address

All address details for customer incl postcode


required. Text & Numbers

Item
Item Price

Unique Identifier. Numbers in the range 19999required


Cost of item; Value up to 99.99 required

Order No

Unique Identifier. See Orders entity

Item

Unique Identifier. See Item entity

Quantity

Numbers in the range 1-999 required

Database Systems
Analysis

Requirements Definition
Normalisation
Entity-Relationship Diagrams
Data Dictionaries
Functions

Functions
A function is anything that acts on the
data in a database system and is classified
as input, process or output.

Input
An input is a function that places new data in the
system such as creating, updating or deleting data

Process
An automated function within the database system
e.g. automatic update of an attribute, checking the
particular value of an attribute, changing or
calculating new values from the data

Functions
Output
A function that produces data from the
database system e.g. a report, letter or
summary of the data
Beyond these Operational functions modern
computerised database systems can provide a wide
range of Strategic and Tactical information which
can assist with planning and organising e.g. queries
and ordered lists can provide the Company with
invaluable marketing information

Listed Functions that affect each entity of


the Charlies Baker Shop database
Entity
Orders
Customers

Price List
Part
Order

Input

Process

Add a new order.


Update an order.
Add a new customer
Update a customers
details
Delete a customers
details
Add a new item
Delete an item
Add quantity of an
item ordered
Amend the quantity of
an item ordered

Output
List all orders
List all customers
with outstanding
orders

Automatically
update total cost
of an order

List items and


corresponding
prices
List all orders
containing a
particular item
List all customers
ordering a
particular item

Database Systems Design database structures


to represent the data
model
THE DESIGN PHASE

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent the
data model
Designed structures are appropriate to the
intended implementation method

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent the
data model
Designed structures are appropriate to the
intended implementation method

The conceptual design [Data Model or E- R

Diagram] has already been created in the


analysis phase using Entities, Relationships and
Attributes

The entities now become tables and the


relationships between these entities are
preserved between the tables

Most RDBMS have syntactical rules that

govern how fields and tables are named. This


may affect how we construct the field and
table names.

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent the
data model
Designed structures are appropriate to the
intended implementation method

Indexes
The keys chosen for the database structures are
the same as those identified in the data model.
These remember were established during the
normalisation process

Some RDBMS include tools that create


indexes of fields to speed up searches within
the database.
However, only Primary and Foreign keys
should normally be indexed to help speed up
this process.

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent the
data model
Designed structures are appropriate to the
intended implementation method

Data entered into the database should be valid


and correct. Most RDBMS contain tools which
will offer 3 types of validity check

PRESENCE
Checks to see if a value is present or not. E.g. if a field
value must be set, a presence check would be carried out
on it.

RANGE
Checks to see if a value entered is within a prescribed
range.

RESTRICTED CHOICE
This would ensure that the user only entered data that
corresponded to a list of pre-set values e.g. N S E or W

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent the
data model
Designed structures are appropriate to the
intended implementation method

Every RDBMS has its own set of data


types that it can implement.
In the design phase we create a more detailed
data dictionary that identifies the field
types, sizes, keys and validity checks that can

be implemented in the RDBMS

Database : Charlies Baker Shop


Table
Fieldname

: Orders
Type

Size

Order No

Autonumber

Acc. No
Customer
Address1
Address2
Address3
Postcode
Date
Total Cost

Number
Text
Text
Text
Text
Text
Date/Time
Currency

Validation

Req'd

Index

Size

Yes

Auto
35
50
50
50
8
Auto
Auto

Yes
Yes
Yes
No
Yes
Yes
Yes
Yes

Yes (Unique)
Primary Key
No
No
No
No
No
No
No
No

>=10.00

Format

XX9?_9XX
Short Date
99.99

Also refers to tables


that foreign keys
have come from

Database Systems-Design Phase

Database Structure and item names


relate to the data model
Unique keys are chosen for all
Database structures
Validity checks represent the data
model
Data item characteristics represent
the data model
Designed structures are appropriate to
the intended implementation method

Relationships
State the relationships that will be
implemented using the RDBMS. These
should be the same as for the E-R
diagram.
However, in the design phase we show the
relationships between the primary and
foreign key fields in each table.

Charlies Baker Shop


Customers

Price List

(Acc. No.
Customer
Address)

(Item
Item Price)

Orders

(Order No.
*Acc. No.
Date
Total Cost)

Part Order

(*Order No.
*Item
Quantity)

[Customers.Acc.No.]

1: M

[Orders.Acc.No.]

[Orders.Order No]

1: M

[Part Order.Order No]

[Price List.Item]

1: M

[Part Order.Item]

When you are designing the database

structures for your implementation you


must always consider what your RDBMS is
capable of doing.
There is no point designing a system that
cannot be implemented with the software
that you have available.

Database Systems Implement a designed database


structure based on an existing
system
THE IMPLEMENTATION PHASE

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

Using the chosen RDBMS each of the tables within


your design including all the relevant fields will be
specified and established.
Implement all the features of your detailed data
dictionary i.e.

Table names
Fieldnames and whether indexed or not
Validity checks
Primary/foreign keys

Once and only once the structure has been


established, is it possible to enter data into the tables

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

EDIT

An edit manipulation involves the user changing data


already present in the database

SORT

A sort manipulation takes a range of data from the


database and sorts it on the values in one or more fields

INSERT

An insert manipulation involves the user adding new


data to tables within the database

DELETE

A delete manipulation involves the user removing data


from tables within the database

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

Queries are questions you can ask of the data in tables

within the database. They are similar to searches you


would perform within a flat-file database
Queries create subsets of the data within the database by
field, record or both
A query performed on a relational database will always
produce a table
A query can be performed on more than one table because
the relationships between primary and foreign keys link
the tables together
Queries not only produce subsets of the data, but can be
used to perform mathematical operations on this data

Base Tables

The original table that the query acted upon

Answer Tables The table created by the query. This contains a


subset of the data from the base table/s

Styles of Query

Textual

Numeric

Exact

Inexact

Combinations of search criteria

Queries that act on fields of the text data type


Queries that act on fields of the numeric data type
Finds a specific match on a field for particular criteria
e.g. customers with surname Smith.

Looks for values within a range in a particular field


e.g. customers with names beginning with 'S'
Uses a combination of criteria e.g. All customers who
ordered items costing <1.50

Different tools have been developed to allow us to query


a relational database through the RDBMS

Graphical Tools

Allow us to select and enter the details for the query graphically
e.g. The tool you are using in Microsoft Access

Structured Query Language [SQL]

A recognised international standard for creating queries for relational


databases e.g.
SELECT DISTINCT [Orders].[Acc.No.],
Sum([Orders].[Total Cost]) AS [SumOfTotal Cost]
FROM [Orders]
GROUP BY [Orders].[Acc.No.];

Often, an RDBMS will use both types of tool.


Inexperienced users would use the graphical tool
Experienced users would use SQL

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

Reports
A report is like a query in that it can summarise
the data in the database. However reports are
used to produce printed output [ Hard Copy]
e.g. The user may require a listing of all
customers and their addresses from the database
N.B. When producing reports using MS Access
it is possible to perform some basic statistical
analysis on the data if the data type is numeric

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

When the relational database has been produced an evaluation


should be performed against the existing system to identify any
improvements and a report compiled to include the following:

Information summary of how the existing system is used


outlining restrictions of this system and limited usage

Improvements in the efficiency and effectiveness of the new


system e.g. Reduction in entry and storage of duplicate data

Automation of operations such as producing reports

Saving in man hours for entering data and reduction in data


entry errors

New facilities available through the new system such as reports


that analyse the data statistically or queries that automate the
production of summary data

Database Systems
Implementation Phase

Correctly implement database structures from


design

Perform data manipulations effectively

Carry out queries to meet given criteria efficiently

Ensure data is well managed and secure

Produce reports to meet given specifications


Evaluate the database structure against the
existing system

Legislation Your legal responsibilities

Data Protection Act (1998)


Ensures that people who keep information on computer (Data Users) give
rights to individuals (Data Subjects) who have information recorded about
them on computer

Copyright, Design & Patents Act (1988)


Most published material is protected by this act i.e. there are restrictions
to the use you can make of such material in respect of copying selling and
adapting it.

Computer Misuse Act (1990)


This act provides regulations that govern the access to and use of
computer systems and the information within them e.g. unauthorised use of
another person's username and password.

You might also like