Материала по этой теме много даже в пределах рунета. Но для начала желательно почитать про нормализацию и функциональные зависимости. Примеры хорошего проектирования можно подсмотреть в опенсорсных проектах, например, в багзилле.
Рекомендую задачник под редакцией Сканави. Там есть и разделение по уровням подготовки, и примеры использования методов решения, и все типовые вещи, которые встречаются на вступительных испытаниях.