Many texts and articles will state that normalization to 3NF is sufficient.
a) Are there database environments that would require normalization to a higher normal form?
b) How about environments that do better when normalization is to a lower normal form?
c) Why do you think there are so many different normal forms to choose from?