SQL NEDİR?

Veri Akademi7 dk okuma
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.

1. 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.

2. İ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.

3. 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.

4. 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.

5. 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.

6. 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.

Sıkça Sorulan Sorular

SEQUEL ile SQL arasındaki fark nedir?

SEQUEL, 1974'te Chamberlin ve Boyce tarafından IBM System R için tasarlanan dilin orijinal adıdır ve Structured English Query Language kelimelerinin baş harflerinden gelir. Hawker Siddeley şirketinin ticari marka iddiası nedeniyle isim SQL'e kısaltıldı. Sözdizimi temel olarak aynıdır; sadece isim değişti.

SQL'i ilk ticarileştiren şirket IBM mi?

Hayır. İronik biçimde, SQL'i ilk ticarileştiren Larry Ellison'ın 1977'de kurduğu Relational Software Inc. — bugünkü Oracle — oldu. Oracle V2, 1979'da piyasaya çıktı. IBM kendi ticari ürünü SQL/DS'i 1981'e, DB2'yi ise 1983'e kadar duyurmadı. Bu gecikme Oracle'ın pazarda öne geçmesine yol açtı.

ANSI SQL standardı her veritabanında aynı mı çalışır?

Tamamen değil. SQL-92 gibi temel standartlar büyük ölçüde uyumludur, ancak her satıcı kendi lehçesini geliştirir: Oracle'da PL/SQL, SQL Server'da T-SQL, PostgreSQL'de PL/pgSQL. Window function ve CTE gibi modern özellikler standart olsa da satıcıya özgü sözdizimi farkları taşınabilirliği sınırlar.

SQL deklaratif bir dil olmak ne anlama gelir?

Deklaratif dilde geliştirici sonucun nasıl üretileceğini değil, ne istediğini tarif eder. SELECT cümlesinde döngü, koşul veya indeks kullanımı yazmazsınız — sadece hangi sütunları hangi koşullarda istediğinizi söylersiniz. Sorgu optimizasyonunu veritabanı motorunun planlayıcısı yapar. Bu, dilin uzun ömürlü olmasının temel sebebidir.

NoSQL veritabanları SQL'in sonu mu olacak?

2010'larda öyle düşünülüyordu, ama gerçekleşmedi. NoSQL sistemleri belirli kullanım senaryolarında — şemasız veri, yatay ölçek, anahtar-değer erişimi — üstün, ancak ilişkisel sorgular için SQL benzersiz kalmaya devam ediyor. Hadoop, BigQuery, Snowflake gibi büyük veri platformları sonunda SQL arayüzü ekledi. NewSQL hareketi de bu eğilimin somut göstergesi.

SQL kaç alt dilden oluşur?

Dört alt dilden: DDL (CREATE, ALTER, DROP gibi şema tanım komutları), DML (SELECT, INSERT, UPDATE, DELETE gibi veri işlem komutları), DCL (GRANT, REVOKE gibi yetki komutları) ve TCL (COMMIT, ROLLBACK, SAVEPOINT gibi transaction komutları). Pratikte geliştiriciler en çok DML komutlarıyla çalışır.

SQL standardı en son ne zaman güncellendi?

SQL standardı düzenli olarak güncellenmeye devam ediyor. SQL:2016 JSON desteği ve polymorphic tablo fonksiyonlarını getirdi; SQL:2019 ve SQL:2023 sürümleri çok boyutlu dizi tipleri, property graph sorguları ve makine öğrenmesi entegrasyonu gibi özellikleri ekledi. Standart, modern veri ihtiyaçlarına paralel evrilmeye devam ediyor.

SQL öğrenmeye nereden başlanmalı?

Önce ilişkisel model mantığı kavranmalı: tablo, satır, sütun, birincil ve yabancı anahtar kavramları. Ardından SELECT, WHERE, JOIN, GROUP BY gibi DML temelleri pratikle pekiştirilir. Sonra alt sorgular, window function ve CTE gibi ileri konulara geçilir. Gerçek veri kümeleri üzerinde çalışmak teorik öğrenmeden çok daha hızlı sonuç verir.