arel ne demek?

Arel, Ruby programlama dili için geliştirilmiş, SQL sorguları oluşturmayı kolaylaştıran bir kütüphanedir. Temel olarak, veritabanı tablolarını ve sütunlarını Ruby nesneleri olarak temsil ederek, SQL sorgularını daha okunabilir ve sürdürülebilir bir şekilde yazmanızı sağlar. Arel, Active Record gibi ORM (Object-Relational Mapping) araçlarının altında yatan sorgu oluşturma katmanı olarak sıklıkla kullanılır.

Arel'in Temel Özellikleri:

  • Soyutlama: Veritabanı sistemlerinin (MySQL, PostgreSQL, vb.) farklılıklarını soyutlayarak, tek bir arayüz üzerinden sorgu oluşturmanızı sağlar.
  • Kompozisyon: Küçük ve basit parçaları bir araya getirerek karmaşık sorgular oluşturabilirsiniz. Bu, kodun tekrar kullanılabilirliğini artırır.
  • Okunabilirlik: SQL sorgularını doğrudan yazmak yerine, Ruby nesneleri ve metotları kullanarak daha anlaşılır bir sözdizimi sunar.
  • Güvenlik: SQL injection gibi güvenlik açıklarına karşı daha dirençli kod yazmanıza yardımcı olur. Arel, parametreleştirilmiş sorgular oluşturarak bu tür saldırıları engeller.
  • Esneklik: Arel, basit sorgulardan karmaşık alt sorgulara ve birleştirmelere kadar çok çeşitli SQL işlemlerini destekler.

Arel Kullanımı:

Arel genellikle doğrudan kullanılmaz, ancak Active Record gibi ORM araçlarının bir parçası olarak kullanılır. Örneğin, bir Active Record modeli üzerinde bir sorgu oluşturduğunuzda, aslında Arel arka planda çalışır ve uygun SQL sorgusunu oluşturur.

Örnek (Active Record ile):

# Active Record ile basit bir sorgu
User.where(name: 'John').where('age > ?', 25)

# Bu sorgu arka planda Arel tarafından aşağıdaki gibi bir SQL sorgusuna dönüştürülür:
# SELECT * FROM users WHERE name = 'John' AND age > 25;

Bu örnekte, where metotları Active Record'un bir parçasıdır, ancak bu metotların arkasında Arel çalışır ve veritabanına gönderilecek SQL sorgusunu oluşturur.