Bu makalede veritabanı ile bağlantısız bir biçimde çalışmamızı sağlayan DataSet sınıfının Relations koleksiyonundan bahsedeceğiz. .NET ile birlikte veriye erişim modelinde büyük ölçüde değişiklikler olmuştur. Bütün bu değişikliklerin temelinde yatan neden veriye bağlantısız(disconnected) bir şekilde erişme modelinin gerçekleştirilmesidir. .NET Framework içerisinde veriye erişmek için sunulan arayüzlerin tamamı ADO.NET kütüphanesi şeklinde anılmaktadır. ADO.NET ile veriye(veritabanı, XML) erişmek için iki metot kullanılabilir.
1 - Bağlantılı Erişim : Bu yöntem eski ADO versiyonunda da kullanılan yöntemdir. Bu metotta kullanıcı veritabanına bağlantı sağlar ve istediği sorguyu çalıştırır. Sorgu sonucunda geri döndürülen veriler uygulamanın ihtiyacına göre kullanılır. Veritabanına açılan bağlantı herhangi bir nedenden dolayı kesilirse kullanıcının yeni sorgular yapması mümkün değildir. Bu yüzden veri tabanı bağlantısının mümkün oılduğunca hızlı bir şekilde kullanılması gerekir.
2 - Bağlantısız Erişim : Bu yöntem ADO.NET ile birlikte kullanılmaya başlanmıştır. ADO.NET kütüphanesindeki çeşitli sınıflar yardımıyla bir veritabanındaki istenilen tablodaki kayıtların tamamı istemcinin hafızasına alınır ve veritabanına olan bağlantı kesilse bile istemci verilerle oynayabilir. Tabi veritabanı bağlantısı kesildiği anda hafızadaki verileri veritabanına güncellemek mümkün değildir.(Güncelleme için yeni bir bağlantının açılması gerekir) Bu yöntemle istemcinin hafızasında, veritabanındaki tabloların resmen bir modeli oluşturulur. DataSet isimli sınıf ile hafızadaki bu verilere sistematik bir şekilde erişmek mümkündür. Üstelik hafızadaki bu veriler içinde çeşitli kompleks işlemler bile yapılabilmektedir. Bu işlemlerden en önemlisi DataSet içindeki tablolar arasında ilişki kurmak ve gerektiğinde bu ilişkiye dayanarak çeşitli sorgular yapmaktır. Bu yazının ana konusu DataSet’teki tablolar arasında nasıl ilişki kurulacağını göstermektir. Ancak hatırlatma olması açısından DataSet ile yakından ilişkili olan diğer yapılarıda aktarmakta fayda görüyorum.
DataSet Nesneleri
Continue Reading »