I have been given a task to normalise a set of attributes, I have started with 0 normal form (the attributes) and have attempted to normalise them.

Quite frankly im useless when it comes to normalising and I was hoping someone could have a look at my attempt and explain to me where I went wrong .

P.S The attributes are based on a risk assessment form. Basically a database is needed to store information about possible risks and it stores the following info

Assessor (The person assessing the risk)
Date of assessment.
The Hazzard (the risk and details of it)

RA ID: Risk assesment Id

If you would like to me upload the orginal form (The one I used to get un-normalised attributes) then I can do so.

9 Years
Discussion Span
Last Post by liamfriel

I usually find the simplest way to normalise a database is draw a couple of conceptial UML, when normalising the only issue really is the *-* relationships which need to be split into 2 1-* relationships with a 3rd table in the middle.


First normal form,
Remove repeating Groups. If there are fields here, that will be required to store more than 1 piece of information, they need to be moved to a new table. You may need to go through it a few times until you are satisfied. Because even those repeating groups can have repeating groups.
Second Normal Form is when the non attribute data depends entirely on the key, and not part of it or multiple keys.
Third Normal Form is basically breaking it down more into seperate entities. The actual definition for 3NF is:
A 3NF definition states that a table is in 3NF if and only if, for each of its functional dependencies X → A, at least one of the following conditions holds:
X contains A (that is, X → A is trivial functional dependency), or
X is a superkey, or
A is a prime attribute (i.e., A is contained within a candidate key)

I wouldnt usually bother with 4NF. I have never bothered, some people argue that it is mandatory for larger systems with lots of transactions, and certain database stored procedures may be written for 4NF. But i assume you are not that far yet. Infact I dont know much about 4NF, I never learned this when I was at University, so you will have to google it to find out more.

You need to also know the types of the information. Multiple groups of information? Or single fields.


It seems to be that for universities teaching beyond the third normalised form is moot as most developers will build only medium scale products.

I had the same experience.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.