SQL ve NoSQL Arasındaki Çizgiyi Silen Veritabanı: Gel ile Graph-Relational Dönemi

SQL ve NoSQL Arasındaki Çizgiyi Silen Veritabanı: Gel ile Graph-Relational Dönemi
audio-thumbnail
SQL ve NoSQL Arasındaki Çizgiyi Silen Veritabanı: Gel ile Graph-Relational Dönemi
0:00
/0

SQL ve NoSQL Arasındaki Çizgiyi Silen Veritabanı: Gel ile Graph-Relational Dönemi

Yıllardır yazılım dünyasında bitmek bilmeyen bir tartışma var: SQL mi, NoSQL mi?

Bir tarafta verinin tutarlılığını, ACID standartlarını ve güçlü ilişkisel yapısını savunan SQL (PostgreSQL, MySQL) kampı; diğer tarafta ise esnekliği, hızı, JSON tabanlı doküman yapısını ve geliştirici dostu olmasını öne çıkaran NoSQL (MongoDB, Redis) kampı.

Peki ya size bu iki dünyanın en iyi özelliklerini bir araya getiren, üstelik bunu yaparken ilişkisel veritabanlarının en büyük kabusu olan karmaşık JOIN işlemlerini tarihe gömen yeni bir dönemin başladığını söylesek?

Eski adıyla EdgeDB olarak bilinen ve yakın zamanda gerçekleştirdiği büyük marka değişimiyle sahneye çıkan Gel, veritabanı dünyasında "Graph-Relational" (Grafik-İlişkisel) dönemini başlatıyor. PostgreSQL tabanlı bu yenilikçi veritabanı, Vercel ile güçlerini birleştirerek modern web mimarisini ve geliştirici deneyimini (DX) tamamen yeniden tanımlıyor.


Gel (EdgeDB) Nedir? Gücünü Nereden Alıyor?

Gel, temelinde dünyanın en güvenilir ve gelişmiş açık kaynaklı ilişkisel veritabanı olan PostgreSQL'i barındırır. Ancak Gel, geleneksel bir SQL veritabanı gibi davranmaz. PostgreSQL'in güçlü depolama motorunu ve transaksiyonel güvenilirliğini arkasına alarak, üzerine tamamen yeni bir veri modeli, sorgu dili ve bağlantı protokolü inşa eder.

Gel'in amacı, geliştiricileri SQL'in hantal sözdiziminden ve ORM (Object-Relational Mapping) araçlarının getirdiği performans kayıplarından kurtarmaktır.


"Graph-Relational" Model: İki Dünyanın En İyisi

Geleneksel ilişkisel veritabanlarında veriler tablolar halinde saklanır ve bu tablolar birbirine "Foreign Key" (Yabancı Anahtar) mantığıyla bağlanır. NoSQL'de ise veriler iç içe geçmiş dokümanlar (JSON) olarak tutulur ancak bu sefer de veriler arasındaki güçlü ilişkileri yönetmek tam bir kabusa dönüşür.

Gel, bu iki yaklaşımı Graph-Relational (Grafik-İlişkisel) model ile birleştirir:

  • Nesne Yönelimli Şema: Veriler tablolar yerine "Nesneler" (Types) olarak tanımlanır.
  • Doğrudan Bağlantılar (Links): Nesneler arasındaki ilişkiler yabancı anahtarlarla değil, doğrudan grafik benzeri bağlantılarla (links) kurulur.
  • Katı Şema ve Tip Güvenliği: NoSQL esnekliğini sunarken, SQL'in şema güvenliğinden ve veri tutarlılığından asla ödün vermez.

Karmaşık JOIN İşlemlerine Elveda: GelQL Gücü

SQL yazarken en çok zorlandığımız ve kodun okunabilirliğini en çok azaltan şey karmaşık JOIN sorgularıdır. Gel, kendi özel sorgu dili olan GelQL (eski adıyla EdgeQL) ile bu problemi kökten çözer.

GelQL, SQL'den çok daha güçlü, okunabilir ve modern bir nesne yönelimli sorgu dilidir. GraphQL veya JSON yapısına benzeyen bu dil sayesinde, ilişkisel verileri çekmek çocuk oyuncağı haline gelir.

Klasik SQL Sorgusu vs. GelQL Sorgusu

Bir kullanıcının bilgilerini, yazdığı makaleleri ve bu makalelere gelen yorumları çekmek istediğimizi düşünelim.

Geleneksel SQL ile:

SELECT users.id, users.username, posts.title, comments.body
FROM users
LEFT JOIN posts ON posts.author_id = users.id
LEFT JOIN comments ON comments.post_id = posts.id
WHERE users.id = '12345';

GelQL ile:

select User {
  id,
  username,
  posts: {
    title,
    comments: {
      body
    }
  }
}
filter .id = <uuid>'12345';

GelQL sorgusunun ne kadar temiz, anlaşılır ve doğrudan çıktının şekline (JSON yapısına) uygun olduğunu görebiliyor musunuz? Herhangi bir ORM kullanmanıza gerek kalmadan, veritabanından doğrudan uygulamanızın ihtiyaç duyduğu formatta veri alabilirsiniz.


Vercel Birleşmesi: Serverless Dünyasında Gel Rüzgarı

Modern web geliştirme süreçleri hızla "serverless" (sunucusuz) ve "edge" mimarilerine kayıyor. Vercel, frontend dünyasının lideri olarak bu dönüşümün öncüsü konumunda. Ancak geleneksel veritabanları, serverless fonksiyonların getirdiği anlık bağlantı patlamalarını (connection pooling sorunları) yönetmekte zorlanıyor.

Gel'in Vercel ile gerçekleştirdiği derin entegrasyon ve iş birliği, bu sorunu kökten çözüyor:

  1. Sıfır Yapılandırma (Zero-Config): Vercel üzerinde çalışan bir Next.js projesine Gel veritabanını bağlamak sadece birkaç saniye sürüyor.
  2. Edge-Ready: Gel, serverless mimariler için optimize edilmiş bağlantı havuzlama (connection pooling) mekanizmasına sahiptir. Bu sayede uygulamanız ne kadar trafik alırsa alsın, veritabanı bağlantı sınırlarına takılmazsınız.
  3. Mükemmel DX (Geliştirici Deneyimi): Kodunuzu Vercel'e push ettiğinizde, veritabanı şemanız ve TypeScript tipleriniz otomatik olarak senkronize edilir.

Neden Gel Tercih Etmelisiniz?

Eğer yeni bir projeye başlıyorsanız veya mevcut mimarinizi modernize etmek istiyorsanız, Gel size şu avantajları sunar:

  • PostgreSQL Güvenilirliği: Altta çalışan motor PostgreSQL olduğu için veri kaybı riski yaşamazsınız, ACID garantisi altındasınızdır.
  • Yerleşik Göç (Migration) Sistemi: Gel, şema değişikliklerini otomatik olarak algılar ve sizin için güvenli göç dosyaları oluşturur. Harici bir kütüphaneye (Prisma, Liquibase vb.) ihtiyacınız kalmaz.
  • TypeScript ile Kusursuz Uyum: Şemanızı tanımladığınız anda Gel, projeniz için tam tip güvenli (fully type-safe) istemci kodunu otomatik üretir.
  • Yüksek Performans: ORM'lerin ürettiği hantal SQL sorgularının aksine GelQL, PostgreSQL motorunun en optimize şekilde çalıştıracağı SQL sorgularına derlenir.

Sonuç: Veritabanı Mimarisinde Yeni Bir Çağ

SQL'in katı ama güvenli yapısı ile NoSQL'in esnek ve geliştirici dostu yapısı arasındaki savaş artık sona eriyor. Gel (EdgeDB), "Graph-Relational" yaklaşımıyla bu iki dünyayı birleştirerek veritabanı yönetimini modern yazılım geliştirme süreçlerinin hızına ulaştırıyor.

Vercel desteğiyle birlikte özellikle Next.js ve modern JavaScript/TypeScript ekosisteminde adını çok daha sık duyacağımız Gel, karmaşık JOIN'lerden, hantal ORM'lerden ve bağlantı sorunlarından yorulan geliştiriciler için adeta bir can kurtaran simidi.

Siz de bir sonraki projenizde Gel'i deneyerek veritabanı yönetiminde yeni bir döneme adım atabilirsiniz!


Gel hakkında daha fazla bilgi edinmek ve ilk projenizi oluşturmak için geldata.com adresini ziyaret edebilirsiniz.