Создать идеальную базу очень сложно. Всё дело в том, что база данных не может быть оторвана от реальности — базы нужны для того, чтобы решать какие-то конкретные задачи. Например у вас есть список клиентов в таблице Экселя. Если их количество приближается к сотне, то есть смысл подумать о том, чтобы перевести эти данные в базу, чтобы можно было ими удобней управлять и быстро находить нужные контакты. То есть обычно ставится задача, а уже потом под неё проектируется база.
Я не знаю где сейчас учат этим навыкам, но лично мой опыт накапливался в «боевых» условиях — когда на нашем предприятии (это было давно, пока я не ушёл во фриланс), решили автоматизировать часть процессов. Опыта по базам у меня тогда не было, но я легко ухватил суть по учебникам и быстро спроектировал и запустил первую версию программы. Она прекрасно работала, пока не стал вопрос её расширить на другие задачи.