• I find it very hard to teach normalisation due to the poor examples in a number of textbooks. If people use a bad one they can confuse themselves horribly, on what should be a fairly common sence thing.

    Lets look at country being functionally dependant on city, and thus needing to be in another table.

    City Country

    London England

    Cardiff Wales

    Sheffield England

    Lincoln England

    looks good, for each city there is exactly one country value.

    The problem is that we haven't really understood the relationship, and are using only a tiny subset of the data.

    City Country

    London England

    Cardiff Wales

    Sheffield England

    Lincoln England

    Lincoln USA

    Oops, now that shouldn't have happened, and our relationship that was based on specific instances of the data suddenly appears to be utterly wrong.

    This means that you need to look at more than just the data, but at the reality of the relationship. Does city name actually define which country it is in, no. If you add geo data to it then yes, but then the country is functionally dependant on that geo data, not the city name still.

    Can't read and I see you've put county not country. Interestingly the same applies as Lincoln is in Lincolnshire or Lancaster County depending on the USA or UK.