Будут ли в каждой таблице столбцы адресов или таблицы адресов, на которые ссылаются другие таблицы?
Как уже упоминали другие, на самом деле это не вопрос нормализации, потому что вы не пытаетесь уменьшить избыточность или организовать зависимости. В любом случае это вполне приемлемо. Перемещение адресов в отдельную таблицу может иметь смысл, если вы собираетесь использовать централизованную проверку или бизнес-логику, специфичную для адресов.
Есть ли такая вещь, как чрезмерная нормализация?
Да. Как уже упоминалось, в больших системах (много данных, много транзакций или и то, и другое) вы можете нормализоваться до такой степени, что производительность становится проблемой. Вот почему многие системы используют денормализованную базу данных для отчетов и запросов.
В дополнение к производительности, существует также проблема того, насколько просто запрашивать данные. В системах, где конечный пользователь будет запрашивать данные (это может быть опасно!), Денормализованную структуру легче понять большинству людей, не являющихся специалистами, или не работающими с базами данных.
Как и большинство других вещей, с которыми мы имеем дело, это компромисс между пониманием, производительностью и ремонтопригодностью в будущем, и редко бывает четкий ответ на вопрос, где вы проводите черту в любой конкретной системе.
С опытом вы узнаете, где лучше всего провести черту для систем, которые вы пишете.
С учетом вышесказанного, я предпочитаю ошибаться в сторону большей, чем меньшей нормализации.