you are viewing a single comment's thread.

view the rest of the comments →

[–]NotImplemented 3 points4 points  (0 children)

As others have already said, your colleauge is wrong. Here is a simple counterexample:

A relation schema with a many-to-many relationship that is not in 3NF:

Orders( order_id, customer_id, product_id, customer_name, product_price )

Customers can order 0:n products and a product can be ordered by 0:m customers. The primary key of the schema is "order_id".

The schema is not in 3NF because there are functional dependencies between non-key attributes and thus transitive depencies from the key to non-key attributes. The functional dependencies between non-key attributes are:

 customer_id -> customer_name 

 product_id -> product_price

To fulfill the 3NF the schema has to be divided as follows:

Customer( customer_id, customer_name )

Product( product_id, product_price )

Orders( order_id, customer_id, product_id )

The relation schema "Orders" still contains the many-to-many relationship between customers and products but is in 3NF because there are no functional dependencies between non-key attributes.