I've this table to normalize where there are no primary keys and mutual functional dependencies.

The table is R = { a1,a2,a3,a4 }

Functional dependencies:

fd1 = a1->a2
fd2 = a2->a1
fd3 = a1,a3->a4
fd4 = a1,a2->a3

I think it's in 2NF because there are no keys. But what about 3NF?

A relation is in 3NF if for every fd X->A:

- X is a superkey of R
- A is an attribute which belongs to a key of R

in the f.d a1<->a2 neither of the conditions apply. So how to normalize this?

Could be

R gets decomposed in:

R1 = {a1 (Key) ,a2} for the fd a1<->a2

R = {a1,a3,a4}

But i lose the a1,a2->a3 fd because the a2 attribute was removed from R and moved to R1 due to a1<->a2 not complying with 3NF.

Any help please?

Thanks!