9 Aralık 2007 Pazar

Object/Relational Mapping Araçları Nedir ?

ObjectSpaces ve diğer O/R Mapping araçları kendi uygulamalarına ve özelliklerine sahiptir. Ama temel olarak hepsi sizin için aynı şeyi yapar. Kısaca Classlarınızın(Business objeleri) Propertylerini ve Attributelerini direk database tablonuzda columnlara , Viewlara haritalamanızı(Map etmek) sağlar. Bu size MSSQL'den ve Stored Procedurelerden kaçmanızı sağlayan bir framework'tur. Bütün datanız veritabanı ve objeler arasında saydam bir şekilde transfer edilir. Bunun anlamı siz sadece iş mantıklarını (Business Logic) yazmaya konsantre olacaksınız, veritabanına erişim kodu yazmayla değil. Classlarınız direk olarak veritabanına bağlı değildir. Böylece Business katmanından SQL cümleleri elenmiş olacak ve veritabanından ve geliştirmeye açık olan şemadan Business katmanını ayırır.

Pekçok O/R MApping araçları objenizi veritabanındaki uygun tabloya map yapmanızı sağlayan editörlerle gelir. Tablolar ve viewlar gibi class propertylerini ve attributtelerini sürükle-bırak tekniğiyle haritalayabilirsiniz(Map etmek).

Böylece, uygulamanızda nezaman O/R Mapping Modeli kullandığınızda, Hiçbirzaman düşük seviyede datalara erişim kodu yazmaya ihtiyacınız yok. Örnek olarak :
"UPDATE Kullanici SET Ad='Doğa' WHERE Kullanici_ID = '222'"

Onun yerine bunun gibi bir kod yazacaksınız :
Kullanici.Ad = "Doğa";
OR.Save( Kullanici );

Basitçe kendi class'ını O/R sistemine gönderiyorsun. Daha Nesneye yönelik gözüküyor değil mi? Bu O/R araçlarının sizin için yaptığıdır.

Küçük bir uygulamayla O/R model'i açıklayalım. Şuan genel O/R Modelleme konseptini tartışmaktayız herhangi bir O/R Modelleme aracını değil.

Tipik nesneye yönelik programlamada, her veritabanındaki tabloya karşılık bir class'ınız olacak. Basit bir senaryoda, 'Calisan' diye bir veritabanı tablomuz olduğunu farz edelim. Bu tabloya karşılık şöyle bir class yazmalısınız:


public class Calisan
{
public string Id;

public string Ad;
public string Gorev;
public string Departman;
public string Deneyimleri;
}

Şimdi, Tabloyu yansıtan bir classımız var. İlerki adım class'daki attributte'ü tabloda uygun sütun ile haritalamak. Bunun için O/R Mapping aracının sağladığı 'Mapping Editor' ünü kullanacaksınız. Mapping Editor'ü class attributtelerini ve veritabanındaki tablonun sütunlarını gösterir.Class ve tablo arasındaki haritalamayı bitirdikten sonra haritalamayı kaydedebilirsiniz. Pekçok O/R araçları haritalamayı xml dosyası olarak kaydeder.

Uygulamanızı çalıştırdığınızda bu xml haritalama dosyası yüklenir. Veritabanına erişmek için sadece Objelerin datalarını döndüren birkaç metodu çağırmanız gerekir. Sonrasında Insert(), Update() gibi basit metodları objenizi veritabanına kaydetmek için kullanacaksınız. Hiç bir SQL cümlesi ya da Stored Procedure yazmanıza gerek yok. O/R Mapper aracı tablonuz ve class'ınız arasındaki yaratılmış olan haritayı eline alır.


Calisan _Calisan = OR.GetObject( Calisan "Id = '222'" );

_Calisan.Ad = "UnquaLe";
_Calisan.Gorev = "Developer";
_Calisan.Departman = "Developer Center";
_Calisan.Deneyimleri = ".NET";
OR.Save( _Calisan );

Veritabanından veriyi çekip kaydetme yöntemleri aracdan araca farklılık gösterebilir ama Konsept tamamiyle aynı.

Kaynak : MSDN

Doğa Öztüzün

Hiç yorum yok: