# How to convert a table into second normal form

I am really struggling to convert the table into second normal form. I've tried examples which are much easier, however I can't seem to be able to identify the keys for this one and work my way forward. I have converted that to 1st normal form by duplicating the module information.

• what i have done is split the table into three, room no and capacity table, booking day and booking time table and module code,title,leader and ext no. is this correct? – user2359244 Jun 12 '13 at 15:54
• What is the question? And how do you expect anyone to answer it if you don't provide any information? – Tom W Jun 12 '13 at 15:58
• A table is not normalised - a logical data model is normalised, with reference to the situation it is modelling (the conceptual model). So, what is the situation this table is supposed to be modelling? What are the assumptions of the situation? What exactly is a module or a leader or a room? – Greenstone Walker Jun 12 '13 at 22:12
• Without any explanation of what dependencies the table is supposed to satisfy all anyone can do is make guesses based on the attribute names. – nvogel Jun 16 '13 at 21:19

``````1NF: Only the key
Remove repeated data/data groups
2NF: The whole key
Ensure that all nonkey columns are dependent on the whole key
So with a table where employee name and location could be a primary key,
and there is a skill attribute the skill attribute isn’t dependent
on the whole of the key as
it isn’t dependent on location therefore must be split into two tables
3NF And nothing but the key
Should not have any dependencies on things other than the primary key
``````

Now this seems like a bit of a homework question so I won't do it for you but make a module table, make a room table. If you want third normal form making a booking table with module code and room number as a compound primary key, and the fields relevant to a booking.

Remember normalisation is to make all the data related and remove repetition.

• thank you this helped i think i can do 1nf by splitting the table into roomno, capacity, booking time, and another table with the module data repeated and ext no? – user2359244 Jun 12 '13 at 16:01

Normalization has to do with avoiding to repeat the same data. As you can surely see in the image above, module data is (unnecessarily) repeated for some of the rows. The same goes for the extension number and the capacity.

Try to think about it like this. A room is booked at some time of some day for some module. A room has a capacity. A module has a title and a leader. When you want to call the Leader of a module you dial his extension.

From this I gather that there are 4 concepts in play which need a table:

``````Room