What if there were cause for many to many relationship? For example, if you had a list of products and keywords. A product could have more than one keyword and vice versa. How would you normalize that situation?

For example if we were describing fruit.

Fruit
---------
Apples
Grapes
Oranges
Lemon
Pears
Bananas
Lime

Keywords
---------
Round
Citrus
Green
Red
Yellow
Orange
Tart
Sweet

You can see how a lemon could use both citrus and yellow. On the same token the keyword citrus could also be applied to lime and orange. Either way it goes, you'll still have redundant data wouldnt you? Even if you set up a junction table wouldn't it be redundant data?