28 Ekim 2007

Assocıatıve (Çağrısımsal) Model Database

Web 3.0 'ın mimari anlamındaki yaklaşım değişikliğinden ve semantic web kavramının merkezine yerleşmesinden bahsetmiştim. Bir database mimarı veya tasarımcısının web 3.0 ile birlikte bir takım değişikliklere maruz kalması muhtemel. Veritabanı sistemlerinde köklü bir değişliklik olan ilişkisel veritabanı tasarımının yerini web 3.0 da associative (çağrışımsal) model tasarıma kısmen bırakabileceğini söyleyebiliriz.

Aslında ilişkisel veritabanı modelinin daha katı kuralları olan ve net veriler söyleyen bir model olduğunu söyleyebiliriz. Semantic web in doğası da aslında metadataya (veri hakkında veri) dayanmakta. Yani herşeyin siyah ve beyaz olmayıp gri tonların değerlendirilmesi; bir nevi bulantık mantık yaklaşımı.

Bir giriş niteliğinde fikir oluşması açısından Mike Griffiths 'in 2001 yılında yazdığı makaledeki örnekler üzerinde duracağım.




Verilerimiz aşağıdaki cümleler olsun.

"Red is a Colour"
"Mary is a Vegetarian"
"Vegetarians eat Plants"
"Cardiff is located in Wales"
"Wales is part of the UK"

Bu verileri ilişkisel bir veritabanında tutmak isteseydik çeşitli unsur tablolarına ve özelliklerinin tutulacağı ilişkisel tablolara ihtiyaç duyacaktık. Ama 5 cümlenin de birbirinden alakasız fiil ve özellikler içermesi sebebiyle ilişkisel model bir hayli zahmetli olacaktı.

Associative model kullanarak bu cümleleri saklamak istediğimizde 2 tabloya ihtiyacımız olacak. İlki nesne, fiil ve özelliklerin saklandığı Items tablosu, İkincisi ise bu item ların ilişkilerinin tutulduğu Links tablosu

Items

Items (1. tablo)

Identifier Name (Tablo alanları)
12 Red
41 Is a
76 Colour
14 Mary
81 Vegetarian
43 Eats
82 Plants
15 Ski Lessons
39 Start at
83 08:00
42 On
85 Sunday


Links (2. tablo)

Identifier Source Verb Target (Tablo alanları)
101 12 41 76
103 14 41 81
124 81 43 82
105 15 39 83
107 105 42 85

Burada göze çarpan en önemli nokta link tablosundaki bir elemanın farklı bir elaman içerinde bir kaynak olarak kullanılabilmesi. Verileri dikkatli bir şekilde incelediğinizde sanırım bu model hakkında bir miktar fikir sahibi olacaksınız.

Note:This picture has been taken from flickr.

01 Ekim 2007

Web 3.0 Yazılımcısı Olmak

Web uygulamalarının yaygınlaştığı yıllarda yazılım geliştiriciler arasında yazılım geliştirici ve web yazılımcısı şeklinde iki kategori oluştu. 2. grupta yer alan kişiler genelde çok detaylı kod bilgisi ve tecrübesi olmayan, asp ve php gibi script dilleri kullanabilen, bunun yanında html, javascript, flash bilen ve hatta tasarım yapabilen kişiler durumuna geldiler. Ülkemiz web yazılım piyasası düşünülürse aslında bu tarz ihtiyaçlar için deneyimli ve mektepli yazılımcılar yerine kendisini bu alanda geliştirmiş farklı yerlerden gelen web yazılımcıları maaş olarak daha cazip olduğu için bu pozisyonlarda çalıştırıldı. Bu süreçte web yazılımcısı kavramı ortaya çıktı.

Ben web 3.0 ile birlikte bu 2. grubun işlevselliğinin azalacağını düşünüyorum. Çünkü servis odaklı mimarilerde web sayfaları sistemin merkezi değil bir parçası konumuna geliyor. Bu modelde işleyen yapıların görünmeyen kısmının görünen kısmından daha etkili olacağı düşünülürse web sayfalarının kullanım oranının düşmesi beklenen bir sonuç olacaktır.

Ülkemizde hala yükselmekte ve yaygınlaşması sürmekte olan bir konu olduğu için bu trendlerin işleyisi zamansal olarak biraz farklılık gösterecektir.

Artık bir web yazılımcısından çok iyi bir database tasarımı, performanslı ve güvenilir servisler ile bunların çerçevesinde ciddi altyapılar beklenecektir. Bu beklenti de sanırım birinci gruptaki yazılım odaklı kişilerin yöneleceği bir boşluk olacaktır.







Son günlerin trend sitesi Facebook'u web 3.0 ve bu geçiş süreci için örnek kabul edebiliriz. Facebook bir web sitesi, ama aynı zamanda bir uygulama geliştirme platform altyapısı sunuyor. web 3.0'ın programlanabilir web tanımlaması da aslında bunu gerektiriyor.

Web 3.0'ın bir diğer odağı semantic web için de durum aynı şekilde. Artık database işlemleri kayıt ekle, sorgula sürecinden çok fazla uzaklaşıyor. Geliştiriciden ihtiyaca çözüm olacak algortimaları öğrenmesi ve kullanması beklenecektir. Üzerinde biraz daha kafa yorulması bir gereklilik olacaktır.

Aslında burada bahsettiğimiz konu büyük web uygulamalarının gideceği bir yol gibi görünse de zamanla her web uygulamasından servis beklentisi olacaktır. Örneğin başka platformlara servis vermeyen bir e-ticaret sitesinden bahsedemeyeceğiz. Kişisel web sitelerinde dahi rss benzeri hizmetlerin olması kaçınılmaz. Bu durumda da tüm bu servislere uygun derli toplu altyapılar olacaktır. Aslında web sitelerinin veritabanlarına ve bunun etrafındaki servislere dönüşeceğini söyleyebiliriz.

Bir çoğumuzun programcılığı öğrendiği lokal uygulamaların artık büyük ölçüde değerlerini yitirmesi gibi web uygulama geliştirmenin de zamanla değerini yitireceğini söyleyebiliriz.

İşin ilginç yanı bunları hala web uygulamalarının daha yeni yeni oturduğu ve büyüyen bir trend izlediği bir ülkeden söylememiz. Web 2.0 'ın "geldi, yaşandı, bitiyor" veryansınları arasında hala anlaşılamaması ve hala yeni bir yaklaşım gibi sunulup insanları heyecanlandırması gibi.

Note:This picture has been taken from flickr.