Türkiye'de T.C. Kimlik Numarası, doğrulama için tanımlı bir sağlama algoritmasına sahip 11 haneli, merkezi olarak atanan bir kimlik numarasıdır — son iki hanesi önceki dokuz haneden belirli bir hesaplamayla türetilir. UUID ise tam tersi bir yaklaşımı temsil eder: hiçbir merkezi otoriteye ihtiyaç duymadan, herhangi bir makinede tamamen bağımsız üretilebilir, yine de pratikte çakışma olasılığı neredeyse sıfırdır.
UUID sürümleri
- v1 — geçerli zamana ve ağ kartının MAC adresine dayanır. Benzersizliği garanti eder ama tanımlayıcının ne zaman ve hangi cihazda oluşturulduğunu kısmen ortaya koyar.
- v4 — sürümü belirten birkaç bit dışında tamamen rastgeledir. Tam olarak yan bilgi sızdırmadığı için bugün en yaygın kullanılan seçenektir.
- v5 — deterministiktir, bir ad alanı ve bir dizenin hash'i olarak hesaplanır — aynı girdi her zaman aynı UUID'i verir.
Çakışma olasılığı neden pratikte sıfırdır
UUID v4'te 122 bit rastgeledir. Yüzyıllar boyunca saniyede milyarlarca UUID üretilse bile, en az bir çakışma olasılığı astronomik derecede küçük kalır — bu, bu büyüklükteki bir alan için doğum günü paradoksuna dayanan matematiksel bir gerçektir.
Bu neden gereklidir
- Merkezi bir sayaç veya sunucular arası koordinasyon olmadan veritabanı birincil anahtarları üretmek.
- T.C. Kimlik No gibi merkezi bir kayıt otoritesi gerektirmeden, dağıtık sistemlerde oturum veya işlem tanımlayıcıları oluşturmak.
- Tahmin edilebilir, ardışık ID'lerden kaçınmak (
1, 2, 3...'ün aksine, bunlar kolayca numaralandırılabilir).
UUID v7: rastgelelik ile sıralama arasında bir uzlaşma
Tamamen rastgele bir UUID v4, veritabanı indeksinin performansını olumsuz etkiler — yeni kayıtlar indeks ağacının sonuna değil, kaotik konumlara eklenir. Daha yeni olan UUID v7, tanımlayıcının ilk bitlerine bir zaman damgası gömerek bunu çözer: değerler v4 gibi neredeyse benzersiz kalırken, ardışık bir sayaç gibi oluşturulma zamanına göre doğal olarak sıralanır.