Re: Sixth normal form

From: Sameeksha <sameeksha.chepe_at_gmail.com>
Date: Mon, 30 Jul 2007 21:33:51 -0700
Message-ID: <1185856431.401857.276140_at_m37g2000prh.googlegroups.com>


On Jul 30, 9:30 pm, Jan Hidders <hidd..._at_gmail.com> wrote:
> On 30 jul, 12:45, Sameeksha <sameeksha.ch..._at_gmail.com> wrote:
>
> > Googling out for definition and explanation for sixth normal form only
> > resulted in the following information - "6th normal form states that a
> > relation R should not contain any non-trivial join dependencies". Also
> > everywhere it is stated that this normal form takes into account the
> > temporal (time) dimension to the relational model, and that current
> > implementations like SQL server 2005 do not implement this normal
> > form.
>
> It would help if you first explained what you already know, so we
> don't spend time on explaining what you already know. Do you know what
> at join dependency is? Do you know when it is trivial?
>
> Btw. where and in what context did you read that SQL server did not
> support this normal form? That is a rather odd statement since the
> normal form is just about how much to split your relations into
> projections, so strictly speaking it needs no support at all form the
> DBMS. But perhaps support for temporal features was meant?
>
> > Any more explanation and preferably an example would help in
> > understanding the concept behind this normal form.
>
> Informally put it says that every distinct fact gets its own relation
> or "if you can split, then you should". So if you have a relation
> Student(student_id, name, address) then the fact that the student with
> a certain id has a certain name is split form the fact the this
> student lives at a certain address. This is different from 5NF since
> there you only split when there is a risk of redundancy or update
> anomalies.
>
> -- Jan Hidders

Thanks for replying. Some explanations regarding your questions :- 1. Just to explain my concept of join dependency - consider this example - a table contains TeacherId, SkillId and CourseId as fields. These are related by the rule that teacher with certain skills can teach certain courses, however a teacher may possess skills required for a course, but he may not be teaching that course. Here there are 3 join dependencies - (TeacherId, SkillId), (SkillId, CourseId) and (TeacherId, CourseId) which should be separate tables as per the 5th normal form. Please verify whether this concept is nearly correct.

2. My concept of Trivial dependency is this - in case in a table we have id and name and both are unique the dependency of name on id is trivial.

3. Regarding RDBMS support - what you say is correct. The statement is there at http://en.wikipedia.org/wiki/Database_normalization, and it is about temporal dimension, not about the sixth normal form.

Now another question after getting more idea about the sixth normal form - If we consider the above example of a table teacherid, skillid and courseid, how will we split it to fit in sixth normal form? If this is not a suitable example for applying the sixth normal form, please give another example which will make the concept clearer.

Thanks again for your help

Sameeksha Received on Tue Jul 31 2007 - 06:33:51 CEST

Original text of this message