Object Relational Mapping (ORM) Nedir ?
ORM, nesne ile veri tabanı arasında olan köprü görebi üstlenen bir programlama teknolojisidir. ORM aracılığıyla veri tabanındaki ilişkileri ve nesneleri yönetebiliriz. ORM çoğu nesne yönelimli programlama dilinde kullanılabilir ve dilden bağımsız bir çözümdür. Veri tabanı nesnelerinin kod tarafındaki yansımalarıyla arasında olan haritalandırma tekniğinin adıdır. Temel olarak amaç, yazılımcıyı veri tabanı karmaşıklığından kurtarmak ve veri tabanı konusunda esneklik sağlamaktır. Çünkü yazılımcı, veri tabanı ile direkt uğraştığında o veri tabanı dilini bilmek zorundadır. ORM burada bu veri tabanı dilini öğrenme sürecini ortadan kaldırmayı amaçlar.
En Popüler ORM Araçları
- C# : Entity Framework, Dapper
- Java : Hibernate, JPA, MyBatis
- Phyton : Django, Storm
- PHP : PdoMap, CakePHP
- Nodejs : Sequelize, Mongoose
ORM AVANTAJLARI NELEDİR?
- Veri tabanı bağımlılığını ortadan kaldırır.
- SQL, JDBC, TSQL, PLSQL gibi veri tabanı dillerini bilmeye gerek kalmaz.
- Nesne yönelimli programlamayı (OOP) destekler.
- ORM araçlarının çoğu açık kaynak kodludur.
- İyi ve kolay test edilebilir kod yazılmasını sağlar.
- Polymorphism, Caching, Transaction gibi teknolojilerin desteklenmesini sağlar ve yeni çözümler üretir.
- Geliştirme ve bakım maliyeti düşüktür.
- Daha az SQL sorgusu yazmayı sağlar.
ORM DEZAVANTAJLARI NELERDİR?
- Veri tabanına bağlanıp SQL çalıştırmaya göre daha az performanslıdır.
- ORM araçlarını öğrenmek için zaman harcamak gerekebilir.
ORM Modelleme Yaklaşımları Nelerdir?
ORM modelleme yaklaşımları üçe ayrılır;
- Database First Yaklaşımı
- Model First Yaklaşımı
- Code First Yaklaşımı
1. Database First Yaklaşımı
Database First yaklaşımda var olan bir veri tabanından modeli .EDMX uzantılı dosya olarak oluşturur. Bu yaklaşımda veri tabanında değişiklikler yapmak istendiğinde, SQL Server’da manuel olarak değişiklikler yapıldıktan sonra modele aktarılır.
2. Model First Yaklaşımı
Model First yaklaşımında önce yeni bir model oluşturmaya daha sonra o modelden bir veri tabanı şeması oluşturmaya izin verir. Model bir .EDMX dosyasında saklanır. Bu yaklaşımda entity’leri, ilişkileri vb. EDMX tasarımda da oluşturmalı ve daha sonra modelden veri tabanı oluşturulmalıdır.
3. Code First Yaklaşımı
Code First, kod ile veri tabanı ve entity modeli oluşturma yaklaşımıdır. Öncelikle entity classları oluşturulur, classlar arası ilişkiler belirlenir. Daha sonra classlar tablo olarak, classlardaki propertyler ise kolon olarak veri tabanına aktarılır. Code First yaklaşımında EDMX tasarımı yapılmaz.