Shouldn't 不贵be translated as 'not expensive', whereas they should have used 便宜to indicate 'cheap'. The meanings are similar, but the translation does not seem completely accurate.
Is the second word here necessary? 'jia'
It's character, not word, since in Chinese language, sentences involve combinations of characters that form certain meanings.
Here, 家 is used as the classifier for "restaurant".