Sıralama ve collation: metinler nasıl karşılaştırılır
Kısaca: Collation, dizelerin nasıl karşılaştırılıp sıralanacağını belirler: büyük/küçük harf, aksanlar, dil kuralları. “ä”nın “z”den önce mi sonra mı geleceğine o karar verir.
Biraz daha ayrıntılı: Bilgisayarlar metni alfabeye göre değil, kurallara göre karşılaştırır. Basit kurallar (kod noktasına göre) hızlıdır; dile uygun kurallar (Unicode collation) daha karmaşıktır ama insanlar için daha anlamlıdır.
Ayrıntılı
- İkili: Bayt veya kod noktası değerine göre karşılaştırma. “Z”, “a”dan önce gelir, “ä” en sona. Hızlı ama kullanıcılara yabancı.
- Dile uygun: Almanca “ä”yı “a” ile, İsveççe alfabenin sonunda sıralar. Veritabanlarında
de_DE,utf8mb4_unicode_ci,und-x-icuvb. olarak. - Düzeyler: Büyük/küçük harf duyarlılığı olan veya olmayan (
ci/cs), aksanlı veya aksansız (ai/as). - Sonuçlar: Benzersizlik (
UNIQUE) collation’a bağlıdır: “Anna” ve “anna”,cialtında eşit sayılır. İndeksler collation’a bağımlıdır. - Yükseltme: İşletim sistemi veya kütüphane sürümü sıralama kurallarını değiştirirse indeksler geçersiz olabilir (PostgreSQL buna karşı uyarır).
- Programlama: Programlama dillerinde varsayılan dize karşılaştırması çoğunlukla ikilidir. Kullanıcı listeleri için
Intl.Collator,locale.strxfrmveya benzerini kullan.