Aynı Şifre, Farklı Kader: Tuzlama Bize Kim Olduğumuzu Ne Anlatır?

Aynı Şifre, Farklı Kader: Tuzlama Bize Kim Olduğumuzu Ne Anlatır?

Bir veritabanının karanlık raflarında milyonlarca insan yan yana durur: kullanıcı adları, e-postalar, parolaların izleri, son giriş tarihleri. Dışarıdan bakınca bu manzara modern çağın nüfus defteri gibidir. Fakat burada küçük, neredeyse şiirsel bir teknik ayrıntı vardır: kriptografik tuzlama. Aynı şifreyi kullanan iki insanın bile sistemde farklı görünmesini sağlar. Yani “123456” gibi trajikomik bir ortak kader bile, rastgele eklenen bir tuz sayesinde bambaşka izlere dönüşür.

Teknik olarak tuzlama basittir: Parola doğrudan saklanmaz; önce rastgele bir veri parçasıyla, yani tuzla birleştirilir, sonra hash fonksiyonundan geçirilir. Böylece aynı parola, farklı tuzlarla farklı sonuçlar üretir. Bir saldırgan veritabanını ele geçirse bile, herkesin aynı parolaya sahip olduğunu kolayca anlayamaz. Toplu kırma saldırıları zorlaşır, hazır tabloların gücü azalır, kimliklerin çıplak benzerliği perdelenir.

Soy Ağacımız Bir Veritabanı Olsaydı: Dedeler, Genler ve Kayıp Düğümler

İnsan soyunu yazılımsal olarak modellemek, ilk bakışta masum bir aile ağacı çizmek gibi görünür: kökte büyük büyük büyükanne, dallarda çocuklar, yapraklarda biz. Fakat biraz yaklaşınca tablo çatırdamaya başlar. Çünkü insanlık tarihi, düzenli klasörlere ayrılmış fotoğraflardan değil; göçlerden, kayıp kayıtlardan, evlat edinmelerden, bilinmeyen babalardan, akraba evliliklerinden, mutasyonlardan ve bazen de aile yemeklerinde kimsenin konuşmak istemediği sırlardan oluşur. Yani mesele yalnızca “Ahmet, Mehmet’in babasıdır” demek değildir; mesele, biyolojik aktarımı, kültürel kimliği ve belirsizliği aynı veri yapısında yaşatabilmektir.

Hiyerarşi Güzel, Ama Hayat Daha Kurnaz

Hiyerarşik veritabanları, veriyi ağaç biçiminde düzenler: her düğümün bir ebeveyni, onun da çocukları vardır. Dosya sistemleri, organizasyon şemaları ve klasik soy ağaçları bu modele çok yakındır. Bir kişinin anne ve babasını üst düğümler, çocuklarını alt düğümler olarak düşünürüz. Sorgu da basittir: “Bu kişinin ataları kimler?”, “Şu soydan kimler geliyor?” Ağaçta yukarı çık, aşağı in, dalları takip et.

Ctrl+Z Evreni Bozar mı? Bir Hatayı Silmenin Görünmeyen Bedeli

Bir zaman makineniz olduğunu ve geçmişte yaptığınız küçük bir hatayı düzeltmek istediğinizi düşünün. Yanlış kişiye gönderilen mesajı siliyor, kaçırdığınız trene yetişiyor ya da kötü bir kararı hiç verilmemiş hâle getiriyorsunuz. İlk bakışta hayatın klavyesinde Ctrl+Z tuşuna basmış gibisinizdir. Fakat evren bir metin editörü değildir. Geçmişteki hata ortadan kalktığında, o hatanın ürettiği sonuçlar, ilişkiler ve yeni kararlar da açıklamasız kalabilir.

Silinen olay, kalan sonuçlar

Yazılım sistemlerinde buna benzeyen sorunlarla sürekli karşılaşırız. Bir veritabanındaki kaydı silmek basit görünür; ancak başka tablolar o kayda bağlıysa sistem itiraz eder. Siparişi silersiniz ama fatura hâlâ oradadır. Kullanıcıyı kaldırırsınız ama yazdığı yorumlar sahipsiz kalır. Bu durum referans bütünlüğü sorunudur: Bir neden yok edildiğinde, ona bağlı sonuçların ne olacağı belirlenmelidir.

Zihnini Üçüncü Normal Forma Sokarsan Ruhun Nerede Kalır?

Veritabanı normalizasyonu, kulağa kuru bir mühendislik ritüeli gibi gelir: tekrar eden bilgiyi ayır, tabloları parçala, ilişkileri tanımla, çelişkiyi azalt. Bir müşterinin adı üç yerde geçmesin; adres değişirse bütün evreni tek tek düzeltmek zorunda kalmayalım. Ne güzel, ne temiz, ne akıllıca. Fakat insan zihni de bazen kendini böyle düzenlemeye kalkar: anıları ayrı tablolara, duyguları ayrı sütunlara, ilişkileri yabancı anahtarlara bağlar. Sonra bir gün fark ederiz ki hayatımız çalışıyor ama yaşamıyor olabilir.

Normalizasyonun temel vaadi şudur: tekrar kötüdür, belirsizlik tehlikelidir, fazlalık hataya yol açar. Bu, bilgisayar sistemleri için son derece doğrudur. Ama ruh için her zaman değil. Çünkü insan, yalnızca veriden oluşmaz; yankıdan, fazlalıktan, tekrar eden rüyalardan, aynı hataya farklı kostümler giydirerek dönmekten oluşur. Bir veritabanında tekrar, depolama israfıdır. Bir bilinçte tekrar, bazen travmanın kapıyı yeniden çalmasıdır; bazen de ruhun henüz sindiremediği bir hakikati tekrar tekrar sahnelemesidir.

Veri madenciliği

Basit bir tanım yapmak gerekir ise veri madenciliği, büyük ölçekli veriler arasından bilgiye ulaşma, bilgiyi madenleme işidir. Ya da bir anlamda büyük veri yığınları içerisinden gelecek ile ilgili tahminde bulunabilmemizi sağlayabilecek bağıntıların bilgisayar programı kullanarak aranmasıdır. Veri madenciliği deyimi yanlış kullanılan bir deyim olabileceğinden buna eş değer başka kullanımlar da literatüre geçmiştir. Veritabanlarında bilgi madenciliği (knowledge mining from databases), Bilgi çıkarımı(knowledge extraction), data/pattern anaysis (veri ve örüntü analizi), veri arkeolojisi gibi.

Bunların arasındaki en popüler kullanım Veritabanlarında Bilgi Keşfi (VBK – Knowledge Discovery From Databases – KDD) ‘dir. Alternatif olarak veri madenciliği aslında bilgi keşfi sürecinin bir parçası şeklinde kabul görmektedir. Bu adımlar: