Should I apply PCA on the entire dataset or just the nominal values?
It is not advised for you to apply PCA on a dataset with nominal values. You can, but PCA translates variables in space. It is hard to find the relationship between nominal values in space. For example, how would one quantify the space between 'male' and 'female' or 'white' and 'red' or 'PC' and 'mobile phone'?

Some alternatives are


Use a tree model, like random forest, which will easily handle nominal values.
Use FactoMine in R.