ID field
воспользуюсь моим примером. допустим, машины имеют уникальный номерной знак, который мы можем определить ключом в таблице машин.
Предположим мы хотим связать водителя с одной машиной. К одной машине могут быть приписано несколько водителей, водитель всегда только к одной машине. Как мы такое в БД представим? В таблице ВОДИТЕЛЬ будет колонка МАШИНА_ID в которой стоит уникальный ID машины. МАШИНА_ID определена в БД как foreign key ссылающийся на MAШИНА.ID с правилом каскадирования "если на ID есть ссылка, запретить удаление записи из МАШИНА" (DELETE RESTRICT). Позволяет нам на уровне БД добиться целостности данных - не полусится удалить машину оставив водителя, который на ней работать должен.
Представим себе что нам надо поменять номерной знак машины. Перерегистрировали мы ее. Что делать будем?
1.
ID машины = номерной знак. Просто UPDATE в том же DB2 не пройдет - иззя менять ключи, на которые ссылается запись. Меняем все записи в ВОДИТЕЛЬ, которые на нее ссылаются, меняем номер, опять меняем все записи теперь с новым номером.
2. ID машины - технический. int. Просто UPDATE с новым номером. Всё.