Object Relational Mapping(ORM) Nedir?
- ceydaozyalcin
- 19 Şub 2024
- 2 dakikada okunur

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 tekniği nesne yönelimli programlama dillerinde kullanılabilir.
ORM Araçları Nelerdir?
Dillere göre ORM araçları şu şekildedir:

C# (.NET):
Entity Framework (EF)
NHibernate
Dapper

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

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?
Code First Yaklaşımı
Database First Yaklaşım
Model First Yaklaşımı

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...
Teşekkür ederim.
Çok açıklayıcı ve Güzel bir Yazı olmuş, Ellerine Sağlık
Güzel yazı olmuş emeğine sağlık .
Güzel yazı olmuş ellerine sağlık.