GUID’in Yapısı Nedir? Nerelerde Kullanılır?

GUID’in Yapısı Nedir? Nerelerde Kullanılır? Merhaba arkadaşlar, Az evvela sizlere yazmış olduğum makalemde C# ile Guid kullanımını anlatmıştım ve kısaca da Guid’in tanımını yapmıştım. Bu yazımda ise Guid’in yapısına ve nerelerde kullanıldığına değineceğim. Biz kullanmakta olanları dünya üstünde benzersiz oluşturan (Globally Unique) şeyler vardır, misal verecek olursak;   Cep telefonu kimliğiniz yani IMEI numarası diyebiliriz. GUID mantığına güzel bir örnektir IMEI, zaten anlamı International Mobile Equipment Identity‘dir, benzersizdir.     GUID’in Yapısı GUID’ler üretildikleri sistemlerin MAC adresi, gün, ay, yıl, saat benzeri değerlerini ve sistemin active directory’deki donanım bilgilerini de  kullanarak 128 Bitlik (16- Bytelık) veriler şekilde oluşturulup saklanır; çoğunlukta 32 basamaklı olarak, 16′lık sayı sistemine göre (hexadecimal) ve belirli dijitler (sayı grupları) biçiminde görüntülenir.  sorun :  21EC2020-3AEA-1069-A2DD-08002B30309D GUID benzersizlik meselesinde kendine fazlaca güvenir şöyle ki “dünyanın neresinde, kim, ne süre 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 bile tıpkı olmasını istemiyorsanız, bu halde 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 planlarında fazlaca uygulanan Membership uygulamasında ID’lerin oluşturulmasında GUID kullanıldığını görüyoruz.     Veritabanında GUID kullanımının dezavantajı mevcut mı?   Evet var. Veritabanı kayıtlarının fazla  bulunmadığı küçük ve orta ölçekli projelerde etkilenmesenizde, büyük çaplı projelerde ve kayıtların yüzbinlerle yahut milyonlarla anlatım edildiği veritabanlarında Primary Key şekilde GUID kullanımına dikkat edilmeli ve alternatiflerin olduğu, riskin olmadığı durumlarda Primary Key şekilde GUID kullanmamaya İtina gösterilmeli çünkü veritabanı indexlemede index yapısının hızını keseceğinden bu vaziyet size Önemli birperformans kaybı olarak arka dönecektir. Burada dikkat edilmesi gereken GUID’in lüzumsuz yere Primary Key olarak kullanılmamasıdır.   – Web Tabanlı Projelerde GUID Kullanımı:   Web tabanlı projelerde GUID kullanması daha fazla yer bulabiliyor, bu kullanım bazı yerler için nerdeyse mecbur bazı yerler içinse tercihinize bağlıdır. Bir kaç Örnek vermemiz gerekirse:   misal 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 bulunmamaktadır sanırım. 🙂 Bu durumu engellemek için satın alanların yüklediği resimlerin adlarına otomatik şekilde bir GUID  kıymeti atarsak bu sorundan kurtuluruz.   misal 2: Üyelik sisteminiz mevcut ve her bir üyeye benzersiz ID’ler vermek istiyorsunuz.  Tabi bu zor bir vaziyet değil bir çok fazla yöntemle türlü ID atayabilirsiniz ama GUID kullanması bu vaziyet içerisinde 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ış.


Yapılan Yorumlar
Erdem OFLAZ

Bir mum, diğer mumu tutuşturmakla ışığından bir şey kaybetmez.
 Kategoriler
 Popüler yazılar