На сколько необходимы внешние ключи в базах данных?
1. Всегда ли необходимы внешние ключи? 
Внешние ключи необходимы несколько менее, чем всегда.2. Чем чревато отсутствие внешних ключей? 
Потерей консистентности данных3. Какие могут быть причины для отсутствия внешних ключей в этой базе? 
Производительность и локи. Вот здесь  отвечал на похожий вопрос в контексте постгреса, у других RDBMS примерно так же.
1. Только если пихать бизнес логику в СУБД
2. Неконсистентностью данных, если её не обеспечивает уровень бизнес-логики
3. Например приложение поддерживает несколько СУБД, не все из которых умеют внешние ключи.