Τυπικά ναι, πάντοτε παίζεις σε 3NF. Ενίοτε για λόγους performance (βλ reporting) μπορεί και να χρειαστεί να κρατήσεις κάποια πεδία που να μπορούν να υπολογιστούν. Γενικά είναι το μεγάλο πρόβλημα OLTP vs OLAP databases. Όταν μια βάση εξυπηρετεί καθαρά OLTP ανάγκες παίζεις με full normalization ενώ όταν εξυπηρετεί OLAP ανάγκες το normalization πάει περίπατο. Το θέμα είναι τι γίνεται όταν μια βάση είναι κυρίως OLTP αλλά χρησιμοποιείται και για OLAP. Εκεί αρχίζουν τα "ανάλογα". Διάφορα trade-offs για να κουβεντιάσουμε... Πάντως συνήθως όταν λες "normalization" εννοείς το 3NF. Ποτέ δεν μου έχει τύχει να πω "ας κάνω το 2NF". Αυτά ήταν στη σχολή και για ένα-δυο εξάμηνα
Ως προς το θέμα των Files και Filegroups είναι μεγάλο το ζήτημα... Μπορούν να χρησιμοποιηθούν για να βελτιστοποιηθεί η ταχύτητα (όπως στην περίπτωση που δεν έχεις ένα RAID controller αλλά έχεις ας πούμε 3 δίσκους - το RAID του φτωχού) αλλά επίσης χρησιμοποιούνται και για διάφορους άλλους λόγους όπως για γρηγορότερα backups.
Γενικά, το performance δεν είναι τόσο θέμα "επιλογών" στις ρυθμίσεις της βάσης όσο επιλογών της αρχιτεκτονικής της βάσης. Είναι μια σύνθετη διαδικασία που ξεκινάει από το h/w του server και τις ρυθμίσεις του Λ/Σ, περνάει στις ρυθμίσεις του server, στον τρόπο που είναι φτιαγμένη η βάση και φτάνει μέχρι και την ίδια την εφαρμογή. Γι αυτό το λόγο και απαιτεί βαθειά γνώση ολόκληρου του συστήματος, ενώ πολλές φορές απαιτεί διαδικασίες τύπου "μετρώ - ρυθμίζω - ξαναμετρώ" μέχρι να επιτευχθεί ικανοποιητικό αποτέλεσμα.
Vir prudens non contra ventum mingit