Ogólnie, id w bazie danych to Primary Key - klucz główny, czyli jakieś pole unikalne dla każdego rekordu (wiersza, wpisu). Stosuje się je w celu rozróżnienia rekordów w tabeli bazy danych.
Naturalne id to takie, które przychodzi na myśl intuicyjnie z rzeczywistości, dla przykładu: mamy tabelę z osobami zawierającymi kolumny:
- Imie
- Nazwisko
- Wiek
- Płeć
- E-mail
Każda osoba, ma unikalny e-mail, więc naturalnie, kluczem głównym będzie tutaj kolumna E-mail.
Tyle, że E-mail jest typu tekstowego (np VARCHAR) i w wyszukiwanie osób po parametrze tego typu jest bardzo nieoptymalne i trwa stosunkowo długo.
Dlatego, stosuje się pole o nazwię, załóżmy
typu numerycznego (np. INT). To jest, tzw. sztuczne id. Dla każdego rekordu (dla każdej osoby), jest generowane unikalne id. Pierwsza osoba ma Id - 1, druga - 2, trzecia - 3, itd. Dzięki temu odczytywanie rekordów z bazy danych jest szybsze niż w przypadku naturalnego id. Bazy danych mają najczęściej wbudowane automatyczne generatory identyfikatorów, z których można skorzystać. Podczas definicji tabeli możemy użyć takich generatorów, np w bazie MySQL będzie wyglądało to tak: (słówko kluczowe AUTO_INCREMENT)
CREATE TABLE Osoby(
Id INT AUTO_INCREMENT,
-- definicje pozostałych kolumn
PRIMARY KEY (id)
);