top of page

Object Relational Mapping(ORM) Nedir?

Object Relational Mapping (ORM)

Merhaba Arkadaşlar, bu yazımda sizlere Object Relational Mapping (ORM) nedir?, ORM araçları ve yaklaşımları nelerdir?, Avantajları ve dezavantajları nelerdir? bu konulardan bahsetmek istiyorum.


Başlamadan önce kısa bir bilgi paylaşmak istiyorum. Geliştirdiğimiz projelerde veri tabanına bağlanmak istediğimizde eskiden genellikle ADO.NET denilen, veri tabanı işlemlerini SQL sorgusu ile yaptığımız ve veri tabanına uygulama içerisinden bağlandığımız bir yöntem kullanılırdı. Nesne tabanlı programlama dillerinin gelişmesi ve yaygınlaşması ile ADO.NET' in karmaşıklığını basite indiren ve daha okunaklı kod yazabilmemiz için ORM (Object Relational Mapping) ortaya çıktı.


Haydi gelin birlikte ORM' yi inceleyelim.




ORM Nedir?


.NET geniş bir geliştirme yelpazede geliştirme araçları sunar ve veri tabanı işlemleri için ORM bu araçlardan biridir. ORM veri tabanı işlemlerinin nesne odaklı bir şekilde gerçekleştirilmesini sağlayan bir tekniktir. Veri tabanı ile uygulama arasında bir köprü görevi görür. Aslında basit bir ifade ile söyleyecek olursak, sanki sanal bir veri tabanı oluşturuyor ve bu veri tabanını SQL gibi bir veri tabanına yansıtıyor da diyebiliriz.


ORM Veri Tabanı İlişkisi
ORM Veri Tabanı İlişkisi

ORM tekniği nesne yönelimli programlama dillerinde kullanılabilir.


ORM Araçları Nelerdir?


Dillere göre ORM araçları şu şekildedir:


C#
  1. C# (.NET):

  • Entity Framework (EF)

  • NHibernate

  • Dapper







Java

2. Java


  • Hibernate

  • JPA

  • MyBatis






3. Python


  • Django ORM

  • SQL Alchemy

  • Storm


4. PHP


  • Doctrine ORM

  • Eloquent ORM (Laravel)

  • PDOMap

  • CakePHP


5. Ruby


  • Active Record



Node.js

 6. Node.js


  • Sequelize

  • Mongoose








En popüler programlama dilleri için bunlar ORM dillerinden sadece birkaçıdır. Her dil için kendi içerisinde farklı ORM seçenekleri bulunabilir.


ORM Modelleme Tekniğinin Yaklaşımları Nelerdir?


  1. Code First Yaklaşımı

  2. Database First Yaklaşım

  3. Model First Yaklaşımı


ORM


  1. Code First Yaklaşımı:

Bu yaklaşımda öncelikle entityler için sınıflar oluşturulur ve daha sonra bu sınıflar arasında veri tabanı için ilişkiler oluşturulur. Sınıfların içindeki propertyler kolon olarak, sınıflar tablo alarak veri tabanına aktarılır.


2. Database First Yaklaşımı:


Bu yaklaşımda, var olan bir veri tabanı şeması ele alınır ve bu şema nesne modellerine dönüştürülür. Veri tabanında değişiklikler yapmak istendiğinde SQL de el ile yani manuel olarak değişiklikler yapıldıktan sonra modele aktarılır.


3. Model First Yaklaşımı:


Bu yaklaşımda, model, grafiksel bir ara yüz veya XML tabanlı bir dosya olarak tanımlanabilir. Önce yeni bir model oluşturmaya sonra o modelden bir veri tabanı şeması oluşturmaya izin verir. Bu yöntemde daha çok design ile çalışılır.


ORM Kullanmanın Avantajları Nelerdir?


  • Nesne tabanlı programlama olduğu için standartlara uygun olarak kod yazma imkanı vermektedir.

  • Daha az SQL bilgisi ile veri tabanı işlemlerinde daha az zaman harcamayı sağlar ve daha fazla veri tabanı işlemi yapmaya imkan verir.

  • Veri tabanı platformları arasında geçiş yapmaya izin verir. Veri tabanı platformu bağımlılığı yoktur. (Örnek: Oracle kullanırken MSSQL geçişi yapılabilir. )

  • Kod okunabilirliğini arttırır ve kod yazma süresin kısaltır.



ORM Kullanmanın Dezavantajları Nelerdir?


  • İlk kez kullanacaklar için yazım kuraları farklı gelebilir, öğrenmesi zaman alabilir.

  • Performans ile ilgili sorunlar oluşturabilir.

  • SQL sorgularına müdahele edilemeyebilir. Veri tabanı nesneler üzerinden modellendiğinden nesneler arasında bağ bulunmaktadır. Bazı durumlarda SQL sorguları farklı olabilmektedir.


Bir sonraki yazımda daha detaylı olarak görseller ile ORM Nasıl Kullanılır? anlatacağım. Umarım ORM hakkında yazdıklarımı beğenmişsinizdir. Bir sonraki yazımda görüşmek dileğiyle...



85 görüntüleme4 yorum

Son Yazılar

Hepsini Gör

Docker Nedir?

.NET Nedir?

bottom of page