# Re: BCNF

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: Sat, 2 Aug 2008 12:39:36 +0100
Message-ID: <SLSdnckC2I3k2gnVnZ2dnUVZ8qTinZ2d@giganews.com>

"DA Morgan" <damorgan_at_psoug.org> wrote in message news:1217605733.949337_at_bubbleator.drizzle.com...

```> aarklon_at_gmail.com wrote:
```

>> Hi all,
>>
>> BCNF
>>
>> the following is the definition is the definition of BCNF , which i
>> saw in a schaum series book
>>
>> 1) The relation is 1 N.F
>>
>> 2) for every functional dependency of the form X -> A , we have
>> either A C X or X is a super key of r. in other words,
>> every functional dependency is either a trivial dependency or in
>> the case that the functional dependency is not trivial then X must
>> be a super key.
>>
>> now my questions are as follows
>>
>> 1)
>>
>> we know that 2-ND normal form is all about separating partial
>> dependencies and full dependencies.third normal form is all about
>> removing transitive dependencies, in these lines can any one give
>> simple/ easy to understand method/explanation for converting a
>> relation in 3rd normal form to BCNF
>>
>>
>> 2) how correct is the following definition of transitive
>> dependencies
>>
>>
>> transitive dependencies
>>
>> assume that A,B, and C are the set of attributes of a relation(R).
>> further assume that the following
>> functional dependencies are satisfied simultaneously : A -> B , B -/-
>>> A, B -> C , and C -/-> A and A -> C
>> observe that C -> B is neither prohibited nor required. if all these
>> conditions are true, we will say that attribute C is transitively
>> dependent on attribute on A
```>
> Personally I prefer the following definition:
>
> Boyce Codd Normal Form (BCNF) is a further refinement of 3NF. In his later
> writings Codd refers to BCNF as 3NF. A row is in Boyce Codd normal form
> if, and only if, every determinant is a candidate key.

```

To be precise: A relation is in BCNF if and only if every non-trivial determinant is a SUPER key. Sometimes paraphrased as "arrows out of super keys".

3NF is arguably a mistake because it is concerned only with dependent non-prime attributes. BCNF is much more important than 3NF although it should be understood that BCNF is not dependency-preserving whereas 3NF is.

```--
David Portas
```
Received on Sat Aug 02 2008 - 06:39:36 CDT

Original text of this message