databasedatabase-designdatabase-normalization3nf

How to normalize this table up to third normal form (3NF)?


How to properly normalize this table?

Subscriber Number Name Magazine Code Magazine Start Date End Date
101 Jones TIM Time Mar-93 Feb-99
110 Allen NEW Newsweek Feb-96 Jan-99
SCI Science Jun-94 May-00
202 Smith NEW Newsweek Feb-94 Jan-99
TIM Time May-94 Apr-01
TIM Time May-94 Apr-01

(third row with two blanks are still the data of Allen which has the subscriber number of 110) (same goes with 5th and 6th row two blanks, data is still from its preceding term Smith which has the subscriber number 202) (they were just left blank to identify them as the values from their preceding terms)

My process of normalizing:

First Normal Form (1NF): 1NF

Second Normal Form (2NF): 2NF

Third Normal Form (3NF): 3NF

I used this site for reference:
https://www.sqa.org.uk/e-learning/MDBS01CD/page_27.htm


Solution

  • I suspect a spreadsheet is not the best way to normalize data.

    The first thing you do is determine the entities or objects that make up your database.

    In your example, I see Subscriber, Magazine, and Subscription as entities.

    The next thing you do is determine the relationship between the entities.

    I'm going to leave the rest to you. There are plenty of resources available that show you how to normalize data, including this Wikipedia article.