SQL’de Deterministik Kavramı Nedir?
Merhaba,
Biliyorsunuz ki, yazılım ve veritabanı konularında terminoloji ve anlamlara oldukça önem vermekte ve dikkate almaktayım. Çünkü terimleri bilmenin ve anlam olarak neyi taşıdıklarının bilincinde olmanın verdiği kazancı bu güne kadar başka birşeyde tezahür ettiğini görmedim.
Dolayısıyla basit olabilir ama benim için öğrenmesi ve üzerine bu içeriği oluşturması oldukça lezzetli olan programlamadaki deterministik ve bunun zıt anlamlısı non deterministik terimleri üzerine SQL dili çerçevesinde konuşacağım.
Deterministik Nedir?
Deterministik bir fonksiyonun her ne zaman kullanılırsa kullanılsın, belli bir girişe her daim aynı çıkışı vermesidir. Eee bu demek oluyor ki, içerisinde olasılık bulunmayan bir durumdan bahsediyoruz demektir. Bundan da biz belirlenebilir yahut hesaplanabilir kanaatine varabilir miyiz? Evet, varabiliriz…
Belli bir girişe sürekli aynı çıkışı veren fonksiyona deterministik dedik. Bu durumun tam tersi ceyran eden fonksiyonlara ise non deterministik denmektedir. Yani bir fonksiyonun deterministik olması için her çağrıldığında aynı değeri üretmesi şart iken, non deterministik olması için farklı değerler üretmesinin bir ihtimal olması yeterlidir.
Örnekte kullanılan fonksiyon ve çıktılarına dikkat ederseniz eğer UPPER fonksiyonu bir deterministik özelliği gösterirken, GETDATE fonksiyonu non deterministik özellik sergilemektedir.
Determinizm akımınıda özetlersek eğer; bu akımın bir kesinlik, kurallılık ve kararlılık teşkil ettiğini görmekteyiz. Yani ilgili konu aslında bir felsefi temele dayanmaktadır. Farkına vardıysanız eğer, bilgisayar bilimlerinde programatik yaklaşımlar genellikle teknik, prensip ve desenler eşliğinde mimari temelli olmakla birlikte bu şekilde de felsefik açıdan da değerlendirilmekte ve terminolojide yer edinmektedir. Buda beni met eden onlarca noktadan sadece bir tanesidir.
İyi çalışmalar…