A table is in second normal form if it is first normal form and every non-primary key attribute is fully functionally dependant on the primary key.

Fully functionally dependant is a term which may seem confusing at first. If a non-key attribute is only dependant on a subset of the primary key it is said to have partial dependency. For example product is only dependant on the order and not of the customer. As such it is said to be partial. It is important to note that if the table does not have a composite primary key, that is one with more than one attribute, then the table is automatically in 2-NF. As such the customer table does not need to be considered at all as it only has one attribute in its primary key.

Looking at each attribute we can see that each one is only partially dependant. As such we should remove them into a new table called product.

Order

CustomerId

OrderNumber

ProductID

CU1

OR1

P20

CU1

OR2

P43

CU2

OR3

P20

CU2

OR4

P20

CU3

OR5

P2

CU3

OR6

P4

Product

Product

ProductID

Supplier

Frisbee

P20

Argos

T-Shirt

P43

Argos

Frisbee

P20

Argos

Frisbee

P20

Argos

A4 paper

P2

Partners

Envelopes

P4

Partners

The final result will be -

Customer( CustomerID, Name)

Order( CustomerID, OrderNumber, ProductID)

Product( ProductID, Product, Supplier)