Sequence kavramı bir çok yerde kullanılıyor olsa da makale içinde "Sequence Nedir?" sorusunun karşılığı aslında veritabanlarında "Sequence Nedir?" sorusunun yanıtı olacak.
Veritabanı optimizasyonu için en temel konulardan biri olan normal formların ikinci konusu bir tablodaki verilerin tablo içinde tekil(unique) bir alana bağımlı olması ile ilgilidir. Bu tekil alandan da çoğu zaman kullanıcı tarafından değil de veritabanı tarafından üretilmesi gerekir. Bu gibi durumlarda imdadımıza "sequence" kavramı yetişir. Özellikle birçok kanaldan farklı transaction içinden bir tabloya verilerin yazılabileceğini göz önünde bulundurursak sequence kavramının ne kadar önemli bir özellik olduğunu anlayabiliriz.
Not: Aslında profesyonel hayatta tüm tablolar için sequence üretilmesi "best practice" olarak kabul görür. Yani, sizin kullanıcı tablonuzda kimlik numarası tekil alan değil, ID alanı tekil olmalıdır. (Bu fikrin yanlış olduğunu düşünenler varsa konuyu yorumlar kısmından yazarlarsa detaylı anlatabilirim).
"Sequence Nedir?" sorusunun veritabancılar için aslında bir numeratör görevi gördüğünü söyleyebiliriz. Örneğin siz bir bankada sıra numarası almakla buradaki süreç de aynı. Hatta farklı işlemler tipleri için arklı sıra numara almanız da aynı mantıktır. Veritabanlarında da her tablo için ayrı sequence oluşturabilirsiniz.
Sequence sözünü Türkçe'ye çevirecek olursak sıra, sekans gibi anlamları çıkar. Türkçede kullanılan sekans sözü de aslında sequence sözünün Türkçe'leşmiş halidir.
Makalenin bu kısmına kadar "Sequence Nedir?" sorusunun yanıtını bulabildiğinizi düşünüyorum. Son olarak da sequence kavramının veritabanlarında uygulanma yöntemleri ile ilgili genel bilgiler vermek istiyorum.
Hemen hemen tüm veritabanlarında sequence ile tekil numara üretme mantığı vardır. İsterseniz tüm tablolarınızı tek sequence bağlayıp tüm veritabanı verileriniz tekilleştirebilirsiniz. Ama bunun da performans kaybına yol açacağını bilmeniz lazım. Yani genelde tercih edilen yöntem her tablo için yeni sequence oluşturmaktır. Veritabanlarına göre farklılık gösterse de genelde her sequence'nin minimum, maksimum değer aralığı, başlangıç değeri, artım değeri(bir sonraki değerin mevcut değerden ne kadar fazla olacağı), en son değeri gibi özellikleri olur ve bu özellikler doğrultusunda bir sonraki değer üretilir.
Makale genel olarak "Sequence Nedir?" kavramını açıklamak için oluşturulduğu için burada makaleme son vermek istiyorum. Konuyla alakalı blog için başka makaleler de yer almaktadır. Aşağıdaki linkleri takip ederek bu makalelere de erişebilirsiniz.
Yorumlar
Yorum Gönder