Почему первичный ключ в БД это какое-то число, а не имя?
Все зависит от архитектуры. Никто не мешает сделать первичным ключом марку телефона. 
Но например у вас есть связь нескольких таблиц, таблица Марки телефонов и таблица Пользователи телефонов, где марка телефона будет внешним ключом. Так зачем там дублировать полное название марки телефона, если можно записать более короткое числовое значение.
Первичный ключ выполняет только функцию уникальности. Обеспечивает однозначную идентификацию, не повторяемость.
Это минимальный набор полей по которым можно идентифицировать строку.
Если есть уверенность что марка телефона никогда не повторяется, то столбец ID можно вообще выбросить из таблицы.
Если марки повторяются, то добавляют столбец ID для возможности однозначной идентификации строки. Делать составной первичный ключ из двух полей нет смысла.