SQL NEDİR?

SQL ilişkisel veri tabanı silindiri ve yapılandırılmış sorgu dilinin sembolik gösterimi

1974 yılında IBM'in San Jose araştırma laboratuvarında, Donald D. Chamberlin ve Raymond F. Boyce adında iki araştırmacı, Edgar F. Codd'un birkaç yıl önce yayımladığı ilişkisel veri modelini insanların kullanabileceği bir dile çevirmeye çalışıyordu. Ortaya çıkan dilin adı önce SEQUEL (Structured English Query Language) idi; sonra ticari marka çatışması yüzünden SQL'e dönüştü. Aradan elli yılı aşkın zaman geçti, programlama dilleri geldi geçti, ama SQL hâlâ ayakta — üstelik bulut çağında her zamankinden çok kullanılıyor. Bunun sebebini anlamak için dilin nereden geldiğine ve nasıl evrildiğine bakmak gerekiyor.

SEQUEL'den SQL'e: System R Projesi

1970'te Codd'un "A Relational Model of Data for Large Shared Data Banks" başlıklı makalesi yayımlandığında, dünya hâlâ hiyerarşik ve ağ tabanlı veritabanlarıyla çalışıyordu. Codd'un önerisi matematikseldi: veri, kümeler teorisi ve yüklem mantığı (predicate logic) üzerinden modellenebilirdi. Fakat bu fikrin pratik bir sorgu diline ihtiyacı vardı. IBM, fikri test etmek için System R adında deneysel bir proje başlattı.

Chamberlin ve Boyce, Codd'un önerdiği ilişkisel cebir ve ilişkisel calculus sözdizimlerinin çoğu kullanıcı için fazla matematiksel kaldığını fark etti. Bunun yerine İngilizceye yakın, deklaratif (ne istediğini söyle, nasıl getireceğini değil) bir dil tasarladılar. SEQUEL'in ilk versiyonu 1974'te tanıtıldı, 1976'da SEQUEL/2 olarak revize edildi, ardından isim SQL'e kısaltıldı. konuya dair temel başvuru konuya derinlemesine bir bakış sağlar.

İlk Ticari Uygulama Neden IBM Olmadı

İronik biçimde, SQL'i ilk ticarileştiren IBM değildi. 1977'de kurulan Relational Software Inc. — bugün bildiğimiz Oracle Corporation — 1979'da Oracle V2 ürününü piyasaya sürdü ve SQL'i çalışan ilk ticari ilişkisel veritabanını sundu. IBM kendi ürünü SQL/DS'i 1981'e kadar duyurmadı, DB2 ise ancak 1983'te geldi.

Bu süreçte SQL hızla yayıldı çünkü:

  • Deklaratif yapısı sayesinde geliştiriciler döngü yazmak yerine ne istediklerini ifade ediyordu.
  • İngilizceye yakın sözdizimi öğrenme eğrisini yumuşatıyordu.
  • Tek bir dil hem veri tanımı (DDL) hem veri manipülasyonu (DML) hem de yetkilendirme (DCL) için yetiyordu.
  • Aynı sorgu farklı veritabanı motorlarında — teorik olarak — çalışabiliyordu.

ANSI ve ISO Standartlaşması

SQL standartlarının yıllara göre evrim çizelgesi ANSI 1986 SQL-92 ve sonraki sürüm dönüm noktaları

SQL'in farklı satıcılar arasında lehçeleşmesini önlemek için ANSI (American National Standards Institute) 1986'da ilk SQL standardını yayımladı: SQL-86. Bir yıl sonra ISO da bu standardı kabul etti. Sonraki dönüm noktaları şunlardı:

  • SQL-89: Bütünlük kısıtlamaları (integrity constraints) eklendi.
  • SQL-92: Outer join, set işlemleri ve veri tipleri genişletildi. Bugün hâlâ "klasik SQL" denildiğinde akla bu sürüm gelir.
  • SQL:1999: Trigger, recursive query, kullanıcı tanımlı tipler.
  • SQL:2003: XML desteği ve window function'lar.
  • SQL:2011: Zamansal veri (temporal data) — geçmiş kayıtlarını sorgulama.
  • SQL:2016 ve sonrası: JSON desteği, çok-poligon (polymorphic) tablo fonksiyonları, makine öğrenmesi entegrasyonları.

Standardın varlığına rağmen her satıcı kendi lehçesini geliştirmeye devam etti: PostgreSQL'in PL/pgSQL'i, Microsoft'un T-SQL'i, Oracle'ın PL/SQL'i farklı sözdizimlerle aynı temel mantığı uyguluyor. SQL'i sıfırdan öğrenmeye başlayacak biri, dilin tarihiyle birlikte komutlarını da kavramak için SQL eğitim programı üzerinden ilerleyebilir.

SQL'in Dört Alt Dili

SQL aslında tek bir dil değil; dört işlevsel alt dilin birleşimidir:

  1. DDL (Data Definition Language): CREATE, ALTER, DROP — şema tanımlar.
  2. DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE — veriyi okur ve değiştirir.
  3. DCL (Data Control Language): GRANT, REVOKE — yetki yönetir.
  4. TCL (Transaction Control Language): COMMIT, ROLLBACK, SAVEPOINT — işlem bütünlüğünü kontrol eder.

Tipik bir geliştirici günde en çok DML komutlarıyla çalışır. Örnek bir sorgu:

SELECT ad, soyad FROM calisanlar WHERE maas > 50000 ORDER BY soyad ASC;

Bu cümle İngilizcede "50000'den fazla maaş alan çalışanların ad ve soyadını, soyada göre sıralayarak getir" demekle aynı şeydir — Codd'un başlangıçtaki vizyonu tam olarak buydu.

NoSQL Çağında SQL Neden Hâlâ Yaşıyor

SQL dilinin dört alt dili DDL DML DCL TCL kategorilerinin görsel olarak ayrılmış kart panosu

2000'lerin sonunda "big data" dalgasıyla birlikte MongoDB, Cassandra, Redis gibi NoSQL sistemleri yükseldi. "SQL öldü" söylentileri yıllarca dolaştı. Ama ne oldu? Hadoop ekosistemi Hive ile SQL'e döndü. Google BigQuery, Amazon Redshift, Snowflake — hepsi SQL arayüzü sundu. MongoDB bile 2018'den itibaren SQL benzeri agregasyon sözdizimini destekliyor.

Bunun sebebi basit: SQL'in deklaratif modeli, optimizasyonun motorun sorumluluğunda olmasını sağlıyor. Geliştirici "neyi" söylüyor, sorgu planlayıcısı "nasılı" çözüyor. Bu ayrım, donanımdaki ve depolama mimarisindeki tüm değişikliklere rağmen dilin uzun ömürlü olmasının matematiksel sebebi.

Bugünün SQL'i: Bulut, Analitik ve AI

2026'da SQL artık sadece OLTP veritabanlarında değil; veri ambarlarında, gerçek zamanlı stream işleme sistemlerinde (Apache Flink SQL, ksqlDB), makine öğrenmesi pipeline'larında (BigQuery ML, Snowflake Cortex) ve hatta vektör arama motorlarında (pgvector) kullanılıyor. Window function'lar, common table expression'lar (CTE), materialized view'lar gibi modern özellikler dilin gücünü katmerli artırdı.

İlişkisel veritabanlarının pratiğine daha derin bakmak isteyenler, yapılandırılmış SQL eğitimi içeriklerini inceleyerek hem temel komutları hem de window function gibi ileri konuları çalışabilir.

SQL ve NoSQL veri tabanlarının modern veri yığınında birlikte yer aldığını gösteren karşılaştırma

Donald Chamberlin'in 1974'te kâğıda döktüğü sözdizimi, bugün dünyadaki neredeyse her yazılım şirketinin altyapısında çalışıyor. Pek az teknoloji bu kadar uzun ömürlü oldu — ve SQL'in elli yıl daha kalmayacağına dair somut bir gerekçe henüz görünmüyor.