Object Relational Mapping ORM Nedir ?

Veritabanı ile entegre çalışan bir yazılım geliştirici iseniz veritabanı işlemlerini de iyi bilmeniz gerekmektedir. Programın içerisinde veritabanında yapacağınız işlere karşılık gelen sorgularınızı oluşturmanız ya da veritabanında prosedürleriniz olması gerekmektedir. Ancak benim gibi veritabanı işlerini sevmiyorsanız ve geliştirmiş olduğunuz yazılım veritabanı ile entegre çalışıyorsa ORM kullanabilirsiniz.

ORM ile Her Tablonun Bir Nesnesi Bulunuyor

Entity Framework LINQ Object Relational Mapping’e bir örnek olarak gösterilebilir. Veritabanında bulunan her bir tablonun sizin programınızda bir nesne karşılığı bulunmaktadır. Veritabanında ekleme, güncelleme ve silme gibi işlemleriniz için herhangi bir sorgu kaydı yazmadan direk oluşturmuş olduğunuz yazılımın içerisinde kodla bu işi yapabiliyorsunuz. Bu oluşumlarda asıl amaçlanan yazılım geliştiricisinin veritabanından çok yazılımın mantığına odaklanmasıdır. Böylece yazılım geliştiricisi sadece iş akışını düşünüyor ve veritabanındaki işlemleri bypass edebiliyor.

Bu şekilde bir yapı kullanmanızın en büyük zararlarından birisi performans kaybı olabilmektedir. Yazımı kolay bu tarz yazılımlar büyük verilerle çalışırken yavaşlayabiliyor. Programlar çalışamayacak kadar yavaşlayabiliyor. Bu problemleri yaşayan çok büyük firmalar olduğu söyleniyor. Bu problemin önüne geçebilmek için programın belli kısımlarında ORM kullanmak ya da çeşitli spesifik fonksiyonları kullanmayı önerebilirim.

Kullanmış olduğunuz fonksiyonların içerisinde çalışan kod bloklarını göremiyorsunuz. Bu da sistemin kontrolünün %100 yazılım geliştiricisine ait olmadığını göstermektedir. Kimisi için bu bir problem olmuyor. Sonuçta bu fonksiyonlar Microsoft gibi büyük geliştiricilere ait fonksiyonlardır. İnsanların bu fonksiyonlara güveni tam ancak yine de bir güvenlik açığı bulunmaktadır.

Object Relational Mapping hakkında çok daha fazla ve doğru bilgiyi üniversiteden arkadaşım ve bu konuda bilgili isim olan Ulaş Karakaş’ın yazısından edilebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir