For more clarification please look my for older post here 
[Database normalization - who's right?](https://stackoverflow.com/questions/10768696/database-normalization-whos-right)

I appreciate those nice answers, but I want to emphasize that this system that we are making is not just for the purpose of learning. It is a true enrollment system for our school. We started about four months ago and the system went alright except for the confusion about denormalization.

Like I said, his reasons are:
1. The queries may be deleted accidentally, thus making more problems.

2. He said 2nd normal form is enough, as he did in all his systems from his past experience.
3. People (with not enough technical knowledge) working with us cannot make queries they wanted out of from tables with not enough attributes/rows.(in my case, I decided to remove the total units because that can be easily computed from the other attributes.)
4. Other systems such as accounting, payroll, inventory and purchasing are planned to integrate with the enrollment system. If that is the case, he said, it is good to connect each new systems database to our enrollment system database directly, without accessing the queries.
5. He argued that all dependent rows, such as the computed average grades of each student must also be included in tables, because what we need, he said, is the physical data, not to be recomputed by means of views.
6. More importantly, I guess, is that he wanted every transactions to be entered in the database. As in the case of debit and credit for the purpose of balancing transactions.

In my case, from what Ive heard from him, he doesn't mention anything about the speed except making queries fom queries(which I believe the main reason why we need to denormalize). He simply wants everything documented in the database.

My position is in the contrary of all of these. If accuracy is our concern over the speed, Normalization is perfect, by the way we are using microsoft sql server.

One last thing, I remembered he wanted to include the full\_name column in the students\_info table. His reason? He said "It is better to read from table than making another query. Just make sure the program can control the user input for the full\_name".

Before I decide to discontinue making this system, please let me know from you, more experienced people.