Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

 

SPONSORED BY

How to convert a table into second normal form


Asked
9 years, 3 months ago Modified
5 years, 6 months ago Viewed
4k times

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
1 forward. I have converted that to 1st normal form by duplicating the module information.

normalization

Share Improve this question Follow edited Mar 12, 2017 at 20:58 asked Jun 12, 2013 at 15:42
wogsland user2359244
366 1 6 16

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, 2013 at 15:54

1 What is the question? And how do you expect anyone to answer it if you don't provide any information?
– Tom W
Jun 12, 2013 at 15:58
,

1 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,
2013 at 22:12

1 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, 2013 at 21:19

Sorted by:
3 Answers
Highest score (default)

1NF: Only the key

Remove repeated data/data groups

1 i.e. having a person and address table instead of single mega-table

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.

Share Improve this answer Follow answered Jun 12, 2013 at 15:55
user1646196
126 2

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, 2013 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
0 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

Leader (or employee)

Module

Booking

I will leave it up to you to find out which columns go where.

Hope it helps.

Share Improve this answer Follow answered Jun 12, 2013 at 15:56
Klaus Byskov Pedersen
101 2

This is almost exactly the example used for 'factless fact tables' in analysis services, which
illustrates the point. The thing represented by the table is a 'booking', which has no natural
0 primary key. The true key would be a composite key of location-timeslot. You need to create an
artificial primary key if you don't want to do that or the DBMS does not support that.

You need at least these tables- Location(room #, Capacity) Timeslot(day,starttime),


module(code,name).

It's not clear if the person is tied to the module or tied to the booking. It's not clear if the
extension is tied to the person or the location.

Share Improve this answer Follow answered Jun 12, 2013 at 17:44
Jeff Sacksteder
1,289 2 17 29

You might also like