Ahmet Çığşar | GUID (Globally Unique IDentifier) Nedir? Nerelerde Kullanılır?
207
post-template-default,single,single-post,postid-207,single-format-standard,qode-quick-links-1.0,ajax_fade,page_not_loaded,,qode-theme-ver-11.0,qode-theme-bridge

GUID (Globally Unique IDentifier) Nedir? Nerelerde Kullanılır?

GUID (Globally Unique IDentifier) Nedir? Nerelerde Kullanılır?

Biz insanları dünya üzerinde benzersiz yapan (Globally Unique) şeyler vardır, örneğin parmak izi. Parmak izimiz bizim kimliğimizdir (IDentifier).  Peki sıradan bir örnek vereyim: Aynı marka, aynı model bir aracın yine aynı marka ve aynı model bir araçtan ayıran şey şasi numarasıdır değil mi?.  Peki son olarak cep telefonu kimliğiniz yani IMEI numarası desem. GUID mantığına güzel bir örnektir IMEI, zaten anlamı International Mobile Equipment Identity‘dir, benzersizdir.

GUID Nedir?

GUID’in orjinal açılımı “Globally Unique IDentifier” dır.  Türkçe kaynaklarda  çevirisi  “Genel Benzersiz Tanımlayıcı” olarak tanımlanmıştır ama ben bu çeviriyi pek doyurucu bulmadım çünkü GUID yapısı size küresel anlamda bir benzersizlik vaad eder.  Açılımındaki “globally” kelimesi de zaten “küresel” demektir. GUID’e  “Küresel Benzersiz Kimlik(Tanımlayıcı)” demek daha uygun olacaktır. Unutmadan, GUID yapısını Intel firması bulmuştur.

GUID’in Yapısı

GUID’ler üretildikleri sistemlerin MAC adresi, gün, ay, yıl, saat gibi değerlerini ve sistemin active directory’deki donanım bilgilerini de  kullanarak 128 Bitlik (16- Bytelık) veriler olarak oluşturulup saklanır; genellikle 32 basamaklı olarak, 16’lık sayı sistemine göre (hexadecimal) ve belirli dijitler (sayı grupları) halinde görüntülenir.  Örneğin :  21EC2020-3AEA-1069-A2DD-08002B30309D
GUID benzersizlik konusunda kendine fazlaca güvenir şöyle ki “dünyanın neresinde, kim, ne zaman oluşturursa oluştursun” benzersizdir.

Yazılım Dünyasında Nerede Kullanılır?

— Veritabanı Uygulamalarında GUID Kullanımı:
Bir veritabanı oluşturuyorsunuz ve tablolardaki ID’lerin de birbirleriyle benzersiz olmasını istiyorsunuz. Örneğin: Uyeler adlı tablodaki UyeId ile Siparisler adlı tablodaki SiparisId’sinin dahi aynı olmasını istemiyorsanız, bu durumda imdadınıza GUID yapısı yetişecektir. Aşağıdaki ekran görüntüsünde küçük ve orta ölçekli  ASP.NET projelerinde fazlaca kullanılan Membership uygulamasında ID’lerin oluşturulmasında GUID kullanıldığını görüyoruz.

Veritabanında Guid Kullanımı

ASP.NET Membership uygulamalarında GUID kullanımı.

Veritabanında GUID kullanımının dezavantajı var mı?

Evet var. Veritabanı kayıtlarının fazla  olmadığı küçük ve orta ölçekli projelerde etkilenmesenizde, büyük çaplı projelerde ve kayıtların yüzbinlerle veya milyonlarla ifade edildiği veritabanlarında Primary Key olarak GUID kullanımına dikkat edilmeli ve alternatiflerin olduğu, riskin olmadığı durumlarda Primary Key olarak GUID kullanmamaya özen gösterilmeli çünkü veritabanı indexlemede index yapısının hızını keseceğinden bu durum size ciddi bir performans kaybı olarak geri dönecektir. Burada dikkat edilmesi gereken GUID’in gereksiz yere Primary Key olarak kullanılmamasıdır.

— Web Tabanlı Projelerde GUID Kullanımı:

Web tabanlı projelerde GUID kullanımı daha fazla yer bulabiliyor, bu kullanım bazı yerler için neredeyse zorunlu bazı yerler içinse tercihinize bağlıdır. Bir kaç örnek vermem gerekirse:

Örnek 1:
Web sitenizde üyeler resim yüklüyor varsayalım. Resimler belirli bir dizinde saklanıyor ve veritabanında URL yolu (Path) tutuluyor. X kişisi abc.jpg adlı resim dosyasını sisteme yükledi, ardından Y kişisi de aynı ada ve uzantıya sahip abc.jpg resim dosyasını yükledi. Geçmiş olsun. Ortaya çıkacak sorunları konuşmaya gerek yok sanırım. 🙂 Bu durumu engellemek için kullanıcıların yüklediği resimlerin adlarına otomatik olarak bir GUID  değeri atarsak bu sorundan kurtuluruz.

Örnek 2:
Üyelik sisteminiz var ve her bir üyeye benzersiz ID’ler vermek istiyorsunuz.  Tabi bu zor bir durum değil bir çok yöntemle farklı ID atayabilirsiniz ama GUID kullanımı bu durum içinde hızlı bir çözüm sunar. Örneğin: Second Life adlı online oyun.  Second Life’da her bir üyenin sistemdeki kayıtlı kimliği için GUID yapısı kullanılmış.

Başka bir yazıda görüşmek üzere.

17 Yorum Var
  • Sevan Demirciyan
    18:27h, 03 Ekim Cevapla

    Gayet doyurucu bir makale olmuş. Emeğinize sağlık.

  • murat
    22:09h, 26 Aralık Cevapla

    iyi günler. ben asp.nette string a=guid.newguid().tostring(); diye bir tanımlama yaptım.
    ancak bunu bir sql tablosuna nasıl göndereceğimi bilmiyorum. ilginiz için teşekkürler.

    • Ahmet Çığşar
      19:10h, 27 Aralık Cevapla

      Murat,
      Yorumundan pek detayları çıkarabilmem mümkün olmadı malesef. Yazılım bilgin nedir bilmiyorum ama ADO.NET veya LINQ kullanarak veritabanıyla gerekli işlemleri yapabilirsin.

  • orhan
    08:47h, 30 Ekim Cevapla

    MUKEMMEL TEŞEKKÜRLER.

  • özgür atak
    14:33h, 28 Ocak Cevapla

    xp kullanıyorum. 3 tb hdd taktım. 2tb + 0,75gb gibi görebiliyorum 2 parça yani.. tek 3tb nasıl görebilirim sorun olurmu

    • Ahmet Çığşar
      20:26h, 28 Ocak Cevapla

      Özgür,

      Yazı ile nasıl bir ilgi kurdun merak ettim doğrusu. Bu gibi sorunlar için Google’da arama yapabilir veya forumlarda çözüm arayabilirsin.

  • Tarık CAN
    10:23h, 22 Eylül Cevapla

    GUID yi öğrenebileceğimiz bir yol var mıdır ?

    • Ahmet Çığşar
      15:41h, 22 Eylül Cevapla

      GUID’i öğrenmek derken? GUID bir yazılım dili veya bir yöntem değil. Soruyu daha detaylı alabilirsem yardımcı olmaya çalışırım

  • mechul
    21:46h, 06 Ekim Cevapla

    PHP ile guid nasıl çağrılır.Umarım bu konuda bir fikir sahibisinizdir.Normalde guid aspx ile örnekleri çok ama php ile herhangi bir bilgi paylaşımına ulaşamadım. Normalde guid oluşturma var php de. Ama kullanıcı adı, şifre ve guid paylaşım anahtarı verilen bir sisteme php ile nasıl bağlantı kurulur herhangi bir sitede yada kaynakta paylaşılmamış. şimdiden teşekkürler

  • ece gunduz
    02:50h, 22 Kasım Cevapla

    GUID’i nereden satın alabilirim? ücretsiz indirip kodlarıma ekleyebileceğim başka framework var mıdır? bir de guidi üreten şirketin web sitesi nedir onlardan gelip projeme kurmasını isteyebilriim.

    ilginiz için çok teşekkürler

    • Ahmet Çığşar
      10:11h, 22 Kasım Cevapla

      Ece merhaba,

      GUID’i satın alma gibi bir şey olmaz. 🙂 Kullandığın yazılım dilinde GUID oluşturan yapılar mutlaka vardır zaten. Bunun yanında online guid oluşturucular, API’ler mevcut onları da kullanabilirsin. Google’da “GUID generator” olarak arattığında üçüncü parti kaynaklara ulaşabilirsin. Kolay gelsin…

  • Ahmet Mesut Çağırkan
    14:29h, 18 Aralık Cevapla

    Guid ile güzel bir yazı olmuş teşekkür ederim. Microsoft management studio içinden guid oluşturmam münkün müdür ? Guid oluşturan bir yordam yazmam münkün mü?

  • Deniz nur
    00:29h, 05 Şubat Cevapla

    Helal olsun

  • mesut
    21:06h, 14 Şubat Cevapla

    guid partition table yani gpt hakkında bi makaleniz var mı?
    yoksa bizi biraz aydınlatabilir misiniz??

    • Ahmet Çığşar
      21:14h, 14 Şubat Cevapla

      Maalesef yazmadım bu saatten sonra da pek fırsatım olur gibi görünmüyor.

  • W
    18:12h, 10 Nisan Cevapla

    botu Derlerken sıkıntı ney diye düşündüm. asm ayarlarını bozdum gene yazmadım ama:) sanırım antivirüslerin bir numaralı dayanağı bu sayede yakalayorlar virüsleri.

Yorum Yapın