1 of 37

Database Normalization

2 of 37

  • Normalization allows you to remove redundant data within your database.
  • This involves restructuring the tables to successively meeting higher forms of Normalization
  • A properly normalized database should have the following characteristics
    • Scalar values in each fields
    • Absence of redundancy.
    • Minimal use of null values.
    • Minimal loss of information.

Definition

3 of 37

  • Levels of normalization based on the amount of redundancy in the database.
  • Various levels of normalization are:
    • First Normal Form (1NF)
    • Second Normal Form (2NF)
    • Third Normal Form (3NF)
    • Boyce-Codd Normal Form (BCNF)
    • Fourth Normal Form (4NF)
    • Fifth Normal Form (5NF)
    • Domain Key Normal Form (DKNF)

Levels of Normalization

Redundancy

Number of Tables

Most databases should be 3NF or BCNF in order to avoid the database anomalies.

Complexity

4 of 37

Levels of Normalization

Each higher level is a subset of the lower level

DKNF

1NF

2NF

3NF

4NF

5NF

5 of 37

First Normal Form (1NF)

  • A relation will be 1NF if it contains an atomic value.
  • It states that an attribute of a table cannot hold multiple values. It must hold only single-valued attribute.
  • First normal form disallows the multi-valued attribute, composite attribute, and their combinations.

6 of 37

First Normal Form (1NF)

EMP_ID

EMP_NAME

EMP_PHONE

EMP_STATE

14

John

7272826385,�9064738238

UP

20

Harry

8574783832

Bihar

12

Sam

7390372389,�8589830302

Punjab

Example: Relation EMPLOYEE is not in 1NF because of multi-valued attribute EMP_PHONE.

EMPLOYEE table:

7 of 37

First Normal Form (1NF)

EMP_ID

EMP_NAME

EMP_PHONE

EMP_STATE

14

John

7272826385

UP

14

John

9064738238

UP

20

Harry

8574783832

Bihar

12

Sam

7390372389

Punjab

12

Sam

8589830302

Punjab

The decomposition of the EMPLOYEE table into 1NF has been shown below:

8 of 37

  • A table is considered to be in 1NF if all the fields contain only scalar values (as opposed to list of values)
  • There should not be any multi-valued attribute

Example (Not 1NF)

First Normal Form (1NF)

Author and AuPhone columns are not scalar

0-321-32132-1

Balloon

Sleepy, Snoopy, Grumpy

321-321-1111, 232-234-1234, 665-235-6532

Small House

714-000-0000

$34.00

0-55-123456-9

Main Street

Jones, Smith

123-333-3333, 654-223-3455

Small House

714-000-0000

$22.95

0-123-45678-0

Ulysses

Joyce

666-666-6666

Alpha Press

999-999-9999

$34.00

1-22-233700-0

Visual Basic

Roman

444-444-4444

Big House

123-456-7890

$25.00

ISBN

Title

AuName

AuPhone

PubName

PubPhone

Price

9 of 37

  1. Place all items that appear in the repeating group in a new table
  2. Designate a primary key for each new table produced.
  3. Duplicate in the new table the primary key of the table from which the repeating group was extracted or vice versa.

Example (1NF)

1NF - Decomposition

0-321-32132-1

Balloon

Small House

714-000-0000

$34.00

0-55-123456-9

Main Street

Small House

714-000-0000

$22.95

0-123-45678-0

Ulysses

Alpha Press

999-999-9999

$34.00

1-22-233700-0

Visual Basic

Big House

123-456-7890

$25.00

ISBN

Title

PubName

PubPhone

Price

ISBN

AuName

AuPhone

0-123-45678-0

Joyce

666-666-6666

1-22-233700-0

Roman

444-444-4444

0-55-123456-9

Smith

654-223-3455

0-55-123456-9

Jones

123-333-3333

0-321-32132-1

Grumpy

665-235-6532

0-321-32132-1

Snoopy

232-234-1234

0-321-32132-1

Sleepy

321-321-1111

10 of 37

  1. If one set of attributes in a table determines another set of attributes in the table, then the second set of attributes is said to be functionally dependent on the first set of attributes.

Example 1

Functional Dependencies

0-321-32132-1

Balloon

$34.00

0-55-123456-9

Main Street

$22.95

0-123-45678-0

Ulysses

$34.00

1-22-233700-0

Visual Basic

$25.00

ISBN

Title

Price

Table Scheme: {ISBN, Title, Price}

Functional Dependencies: {ISBN} 🡪 {Title}

{ISBN} 🡪 {Price}

11 of 37

Example 2

Functional Dependencies

1

Big House

999-999-9999

2

Small House

123-456-7890

3

Alpha Press

111-111-1111

PubID

PubName

PubPhone

Table Scheme: {PubID, PubName, PubPhone}

Functional Dependencies: {PubId} 🡪 {PubPhone}

{PubId} 🡪 {PubName}

{PubName, PubPhone} 🡪 {PubID}

AuID

AuName

AuPhone

6

Joyce

666-666-6666

7

Roman

444-444-4444

5

Smith

654-223-3455

4

Jones

123-333-3333

3

Grumpy

665-235-6532

2

Snoopy

232-234-1234

1

Sleepy

321-321-1111

Example 3

Table Scheme: {AuID, AuName, AuPhone}

Functional Dependencies: {AuId} 🡪 {AuPhone}

{AuId} 🡪 {AuName}

{AuName, AuPhone} 🡪 {AuID}

12 of 37

Database to track reviews of papers submitted to an academic conference. Prospective authors submit papers for review and possible acceptance in the published conference proceedings. Details of the entities

    • Author information includes a unique author number, a name, a mailing address, and a unique (optional) email address.
    • Paper information includes the primary author, the paper number, the title, the abstract, and review status (pending, accepted,rejected)
    • Reviewer information includes the reviewer number, the name, the mailing address, and a unique (optional) email address
    • A completed review includes the reviewer number, the date, the paper number, comments to the authors, comments to the program chairperson, and ratings (overall, originality, correctness, style, clarity)

FD – Example

13 of 37

Functional Dependencies

    • AuthNo 🡪 AuthName, AuthEmail, AuthAddress
    • AuthEmail 🡪 AuthNo
    • PaperNo 🡪 Primary-AuthNo, Title, Abstract, Status
    • RevNo 🡪 RevName, RevEmail, RevAddress
    • RevEmail 🡪 RevNo
    • RevNo, PaperNo 🡪 AuthComm, Prog-Comm, Date, Rating1, Rating2, Rating3, Rating4, Rating5

FD – Example

14 of 37

Second Normal Form (2NF)�

  • In the 2NF, relational must be in 1NF.
  • In the second normal form, all non-key attributes are fully functional dependent on the primary key
  • Example: Let's assume, a college can store the data of teachers and the subjects they teach. In a college, a teacher can teach more than one subject.

15 of 37

Second Normal Form (2NF)�

TEACHER_ID

SUBJECT

TEACHER_AGE

25

Chemistry

30

25

Biology

30

47

English

35

83

Math

38

83

Computer

38

TEACHER table:

In the given table, non-prime attribute TEACHER_AGE is dependent on TEACHER_ID which is a proper subset of a candidate key. That's why it violates the rule for 2NF.

16 of 37

  • To convert the given table into 2NF, we decompose it into two tables:

TEACHER_ID

TEACHER_AGE

25

30

47

35

83

38

TEACHER_DETAIL table:

17 of 37

TEACHER_ID

SUBJECT

25

Chemistry

25

Biology

47

English

83

Math

83

Computer

TEACHER_SUBJECT table:

18 of 37

Third Normal Form (3NF)�

  • A relation will be in 3NF if it is in 2NF and not contain any transitive partial dependency.
  • 3NF is used to reduce the data duplication. It is also used to achieve the data integrity.
  • If there is no transitive dependency for non-prime attributes, then the relation must be in third normal form.
    • Or No attribute is transitively dependent on the primary key

19 of 37

Third Normal Form (3NF) �

  • A relation is in third normal form if it holds atleast one of the following conditions for every non-trivial function dependency

X → Y.

  • X is a super key.
  • Y is a prime attribute, i.e., each element of Y is part of some candidate key.

20 of 37

Third Normal Form (3NF) �

EMP_ID

EMP_NAME

EMP_ZIP

EMP_STATE

EMP_CITY

222

Harry

201010

UP

Noida

333

Stephan

02228

US

Boston

444

Lan

60007

US

Chicago

555

Katharine

06389

UK

Norwich

666

John

462007

MP

Bhopal

Example:

EMPLOYEE_DETAIL table:

21 of 37

Third Normal Form (3NF) �

Super key in the table above:

  • {EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on  

Candidate key: {EMP_ID}

22 of 37

Third Normal Form (3NF) �

  • Non-prime attributes: In the given table, all attributes except EMP_ID are non-prime.
  • Here, EMP_STATE & EMP_CITY dependent on EMP_ZIP and EMP_ZIP dependent on EMP_ID. The non-prime attributes (EMP_STATE, EMP_CITY) transitively dependent on super key(EMP_ID). It violates the rule of third normal form.
  • That's why we need to move the EMP_CITY and EMP_STATE to the new <EMPLOYEE_ZIP> table, with EMP_ZIP as a Primary key.

23 of 37

Third Normal Form (3NF) �

EMP_ID

EMP_NAME

EMP_ZIP

222

Harry

201010

333

Stephan

02228

444

Lan

60007

555

Katharine

06389

666

John

462007

EMPLOYEE table:

24 of 37

Third Normal Form (3NF) �

EMP_ZIP

EMP_STATE

EMP_CITY

201010

UP

Noida

02228

US

Boston

60007

US

Chicago

06389

UK

Norwich

462007

MP

Bhopal

EMPLOYEE_ZIP table:

25 of 37

�Boyce Codd normal form (BCNF)�

  • BCNF is the advance version of 3NF. It is stricter than 3NF.
  • A table is in BCNF if every functional dependency X → Y, X is the super key of the table.
  • For BCNF, the table should be in 3NF, and for every FD, LHS is super key.
  • Example: Let's assume there is a company where employees work in more than one department.

26 of 37

EMP_ID

EMP_COUNTRY

EMP_DEPT

DEPT_TYPE

EMP_DEPT_NO

264

India

Designing

D394

283

264

India

Testing

D394

300

364

UK

Stores

D283

232

364

UK

Developing

D283

549

EMPLOYEE table:

In the above table Functional dependencies are as follows:

  1. EMP_ID  →  EMP_COUNTRY  
  2. EMP_DEPT  →   {DEPT_TYPE, EMP_DEPT_NO}  

Candidate key: {EMP-ID, EMP-DEPT}

The table is not in BCNF because neither EMP_DEPT nor EMP_ID alone are keys.

27 of 37

EMP_ID

EMP_COUNTRY

264

India

264

India

To convert the given table into BCNF, we decompose it into three tables:EMP_COUNTRY table:

EMP_DEPT

DEPT_TYPE

EMP_DEPT_NO

Designing

D394

283

Testing

D394

300

Stores

D283

232

Developing

D283

549

EMP_DEPT table:

28 of 37

EMP_ID

EMP_DEPT

D394

283

D394

300

D283

232

D283

549

EMP_DEPT_MAPPING table:

Functional dependencies:

EMP_ID   →    EMP_COUNTRY  

EMP_DEPT   →   {DEPT_TYPE, EMP_DEPT_NO}  

Candidate keys:

For the first table: EMP_ID�For the second table: EMP_DEPT�For the third table: {EMP_ID, EMP_DEPT}

29 of 37

Fourth normal form (4NF)�

  • A relation will be in 4NF if it is in Boyce Codd normal form and has no multi-valued dependency.
  • For a dependency A → B, if for a single value of A, multiple values of B exists, then the relation will be a multi-valued dependency.

30 of 37

Example�

STU_ID

COURSE

HOBBY

21

Computer

Dancing

21

Math

Singing

34

Chemistry

Dancing

74

Biology

Cricket

59

Physics

Hockey

STUDENT

The given STUDENT table is in 3NF, but the COURSE and HOBBY are two independent entity. Hence, there is no relationship between COURSE and HOBBY.

In the STUDENT relation, a student with STU_ID, 21 contains two courses, Computer and Math and two hobbies, Dancing and Singing. So there is a Multi-valued dependency on STU_ID, which leads to unnecessary repetition of data.

31 of 37

  • So to make the above table into 4NF, we can decompose it into two tables:

STU_ID

COURSE

21

Computer

21

Math

34

Chemistry

74

Biology

59

Physics

STUDENT_COURSE

32 of 37

STU_ID

HOBBY

21

Dancing

21

Singing

34

Dancing

74

Cricket

59

Hockey

STUDENT_HOBBY

33 of 37

Fifth normal form (5NF)�

  • A relation is in 5NF if it is in 4NF and not contains any join dependency and joining should be lossless.
  • 5NF is satisfied when all the tables are broken into as many tables as possible in order to avoid redundancy.
  • 5NF is also known as Project-join normal form (PJ/NF).

34 of 37

SUBJECT

LECTURER

SEMESTER

Computer

Anshika

Semester 1

Computer

John

Semester 1

Math

John

Semester 1

Math

Akash

Semester 2

Chemistry

Praveen

Semester 1

Example

In the above table, John takes both Computer and Math class for Semester 1 but he doesn't take Math class for Semester 2. In this case, combination of all these fields required to identify a valid data.

Suppose we add a new Semester as Semester 3 but do not know about the subject and who will be taking that subject so we leave Lecturer and Subject as NULL. But all three columns together acts as a primary key, so we can't leave other two columns blank.

35 of 37

  • So to make the above table into 5NF, we can decompose it into three relations P1, P2 & P3:
  • P1:

SEMESTER

SUBJECT

Semester 1

Computer

Semester 1

Math

Semester 1

Chemistry

Semester 2

Math

36 of 37

SUBJECT

LECTURER

Computer

Anshika

Computer

John

Math

John

Math

Akash

Chemistry

Praveen

P2

37 of 37

SEMSTER

LECTURER

Semester 1

Anshika

Semester 1

John

Semester 1

John

Semester 2

Akash

Semester 1

Praveen

P3