ORM Nedir?
İngilizce: ORM (Object-Relational Mapping)
ORM, veritabanı tablolarını nesne olarak temsil eden; SQL yazmadan veritabanı işlemi yapılmasını sağlayan kütüphaneler bütünüdür.
ORM Nedir?
ORM (Object-Relational Mapping), ilişkisel veritabanı tablolarını uygulama kodundaki sınıf, model veya nesnelerle eşleştiren yaklaşımdır. Geliştirici users tablosuna doğrudan SQL yazmak yerine User.findMany() veya user.save() gibi metotlarla çalışabilir.
ORM, veritabanını tamamen ortadan kaldırmaz; SQL sorgularını soyutlar. Hangi sorgunun üretildiğini, indekslerin nasıl kullanıldığını ve transaction sınırlarını anlamak hâlâ önemlidir.
ORM Ne Sağlar?
- Model tanımı: Tablo ve kolonların kod içinde temsil edilmesi
- Query builder: Filtreleme, sıralama ve ilişki sorgularının kodla yazılması
- İlişki yönetimi: One-to-many, many-to-many gibi bağlantıların modellenmesi
- Migration desteği: Şema değişikliklerinin versiyonlanması
- Tip güvenliği: Bazı araçlarda model alanlarının editörde denetlenmesi
Prisma, TypeORM, Sequelize, Django ORM, SQLAlchemy, Entity Framework ve Hibernate yaygın örneklerdir. Her biri farklı dil, ekosistem ve performans tercihleriyle gelir.
İş Dünyasında Kullanımı
ORM, CRUD ağırlıklı iş uygulamalarında geliştirme hızını artırır ve model kurallarını kod tarafında görünür kılar. Yönetim panelleri, SaaS ürünleri, CRM modülleri ve e-ticaret arka uçları bu yaklaşımdan sık yararlanır.
Risk tarafında N+1 sorgu problemi, gereksiz eager loading, karmaşık rapor sorgularında yavaşlık ve veritabanı özelliklerinin gizlenmesi vardır. Kritik performans alanlarında ORM ile üretilen sorgu incelenmeli; gerekirse doğrudan SQL veya PostgreSQL özellikleri kullanılmalıdır.
İlgili Terimler
Drizzle ORM, TypeScript projelerinde veritabanı şemasını ve SQL sorgularını tip güvenli kodla yönetmeyi sağlayan hafif ORM'dir.
MigrasyonVeritabanı migrasyonu, tablo, kolon, indeks ve veri dönüşümü değişikliklerini sürümlü dosyalarla kontrollü şekilde uygular.
ORM MigrasyonuORM migrasyonu, Prisma veya Drizzle gibi ORM araçlarıyla veritabanı şema değişikliklerini kod dosyaları üzerinden yönetme pratiğidir.
PostgreSQLPostgreSQL, ilişkisel veri modelini JSON, indeksleme ve genişletilebilirlik özellikleriyle birleştiren açık kaynaklı ACID uyumlu veritabanıdır.
PrismaPrisma, TypeScript ve Node.js projelerinde veritabanı şemasını, migration süreçlerini ve type-safe sorguları birlikte yöneten modern ORM aracıdır.
SQLSQL, ilişkisel veritabanlarında tabloları sorgulamak, değiştirmek ve raporlamak için kullanılan standart veri işleme dilidir.
Stored ProcedureStored procedure, veritabanında saklanan ve parametreyle çağrılan SQL bloğudur; tekrarlanan işlemleri veri katmanında tutar.