Kayas Commerce reklamı - sol taraf
Kayas Commerce reklamı - sağ taraf
Object-Relational Mapping ( ORM )

Object-Relational Mapping ( ORM )

Web Development

Bu yazıyı 2024 yılında medium platformunda yazmıştım. Blogta içerik zenginleştirmesi için tekrardan burada paylaşıyorum.

 

Dünü, bugünü ile aynı olmayan teknoloji çağında yeniliklere açık olmak çağımızın yadsınamaz gereksinimidir. İlgi alanımız olsun olmasın, her yeniliğe karşı kulak aşinalığı edinmek zorunda hissettiğimiz bu dönemde her alanda olduğu gibi programlama dillerindeki yeniliklere, programlama üzerindeki tekniklere ve bunların üzerindeki işleyişin devinimine de ayak uydurmalıyız. Bugünkü konumuz da programlama üzerindeki işleyişte bizlere kolaylık sağlayan Object-Relational Mapping (ORM) tekniği olacak.

Bu tekniği aşağıdaki adımlar ile açıklayarak daha anlaşılabilir bir anlatım sağlamak istiyorum:

  1. Object-Relational Mapping ( ORM ) tekniği nedir ?
  2. Object-Relational Mapping ( ORM ) tekniği neden varoldu ?
  3. Object-Relational Mapping ( ORM ) tekniğinin avantajları ve dezavantajları.
  4. Çeşitli programlama dillerindeki ORM destekli Frameworkler.
  1. Object-Relational Mapping ( ORM ) tekniği nedir ?

Object-Relational Mapping ( ORM ), ilişkisel veritabanı ile nesne tabanlı programlama arasında nesne yönelimli katman oluşturarak geliştiricilerin temel veritabanı yapısını anlamalarına yardımcı olmak için yapılandırılmış bir harita oluşturur.

Press enter or click to view image in full size

Bu teknik sayesinde veritabanındaki tablolar,sütunlar ve kayıtlar birer class, property, ve objelere dönüştürülerek üzerinde modifikasyon yapılması daha kolay olan nesne yapılarına dönüştürür. Bu sayede herhangi bir modifikasyon için uzunca SQL komut satırları yazmak yerine class özellikleri kullanılarak modifikasyon yapılabilir.

ORM tekniği ile elde edilen veri ile SQL sorgusu yazılarak elde edilen veri için gereken kodlar:

/*Normal SQL sorgusu için yazmamız gereken komutlar...*/
var sql= "SELECT id, first_name, last_name, phone, birth_date FROM Customers WHERE id = 7";
var result = context.Customers.FromSqlRaw(sql).ToList();
var name = result[0]["first_name"];
/* ORM tekniği kullanılan bir API yazılması gereken komutlar...*/
var person = repository.GetPerson(10);
var firstName = person.GetFirstName();

Görüleceği üzere ORM tekniği kullanılan Framework’te sorgunun anlaşılabilirliği ve kısalığı SQL sorgusuna göre oldukça iyi.

Peki böylesine güzel bir tekniğin çıkış noktası ne oldu? Hangi sebeplerden dolayı varoldu ?

2. Object-Relational Mapping ( ORM ) tekniği neden varoldu ?

Nesne tabanlı programlama geliştiricilerinin karşılaştığı zorluk, uygulamalarını bir SQL veritabanına bağlamak için yapılandırılmış sorgu dilini (SQL) anlama ve kodlama ihtiyacıydı. SQL bilen geliştiriciler veri erişim kodu yazabilse de bu SQL kodlaması oldukça zaman alıcı olabiliyordu. Bu sebeple bir veritabanını bir uygulamaya bağlamak için gereken SQL bilgisi miktarını en aza indirgeyen Object-Relational Mapping ( ORM ) tekniği kullanılmaya başlandı.

3. Object-Relational Mapping ( ORM ) tekniğinin avantajları ve dezavantajları.

ORM avantajları

  1. SQL sorgusu yazma derdiniz oldukça azalır.
  2. Uygulamanızın odağı ORM olacağı için uygulamanızın kendisi veritabanın ne olduğu ile ilgilenmez. Böylece veritabanı bağımlılığı ortadan kalkar, veritabanı değişimi yapılabilir.( MySQL, PostreSQL, Oracle…)
  3. Nesne tabanlı geliştirmeyi destekler.
  4. ORM araçları açık kaynak kodlu olduğu için araç içinde herhangi bir açık olma durumunda topluluk tarafından hızlıca giderilebilir.
  5. Sorgular bizzat ORM araçları tarafından olacağı için SQL Injection gibi durumlar ile sorgular manipüle edilemez.

ORM dezavantajları

  1. ORM araçlarının genellikle kendine has söz dizimi ve kuralları olduğundan dolayı bu söz dizimleri ve kuralları öğrenmek zaman alabilir.
  2. ORM tekniğinin kullanımı esasen veritabanı ile uygulama arasında bir katman oluşturmaktan geçtiği için ORM ile sorgu yapmak, direkt SQL sorgusu yapmaya göre zaman kaybı yaşatabilir.
  3. SQL sorguları ve işlemleri üzerindeki kontrolünüzü ve özelleştirmenizi sınırlayarak yetkinliğinizi azaltabilir.


John Doe
Article by

Görkem Kaya

Computer Engineering Student

Comments 0

You cannot comment because you are not logged in.


Log in to comment.

Give us your feedback

✓ Your feedback has been sent successfully. Thank you!

Important Notice

Some post images may not display properly. This issue occurred because I didn't mount volumes to the container. As a result, some posts may be missing their images. We apologize for the inconvenience and are working to resolve this.

Our Current Progress & Plans

📋 Planned Features

Advanced Analytics Planned

A detailed reporting and statistics system

Estimated: Q4 2025

🐛 Known Issues

Rich text editor problem Bug

Error that may occur while creating a post

Priority: High
About storing the content of the post. Bug

Storing the entire post content as binary is a problem. We'll work on it.

Priority: High

✅ Recent Updates

Feedback System Completed

User feedback form and admin panel added

July 18, 2025