1. если есть Родной, естественный уникальный ключ, для субъекта таблицы - то нужно использовать его как первичный ключ.
например, номер ИНН или Паспорта.
2. Составной ключ используется в разных случаях, один из них - когда БД распиливается несколько кусков, тогда один из ключей составного - будет Instance СУБД.
Другой вариант составного, когда надо соединить 2 таблицы как М:М (М:1-1:М) - тогда таблица связей будет иметь составной ключ.
3. Autoincrement используют для первичного ключа в том случае, когда в субьекта таблицы невозможно выделить естественный уникальный ключ. Тогда технически его создают. Можно нумеровать записи программными средствами, можно возложить на СУБД.