Explain the principles of database normalization. When is denormalization acceptable in an enterprise system?