SQL Veritabanları

İlişkisel veritabanı yönetim sistemleri, SQL sorgu dili ve modern veri yönetiminin temelleri.

SQL Veritabanları Nedir?

SQL (Structured Query Language) veritabanları, verilerin ilişkisel bir model içinde düzenlendiği, sorgulanabildiği ve yönetilebildiği veritabanı sistemleridir.

İlişkisel veritabanları, verileri tablolar (ilişkiler) halinde düzenler ve bu tablolar arasında ilişkiler kurarak veri bütünlüğünü ve tutarlılığını sağlar. SQL, bu veritabanlarını sorgulamak, güncellemek ve yönetmek için kullanılan standart bir dildir.

1970'lerde IBM'de Dr. Edgar F. Codd tarafından geliştirilen ilişkisel veritabanı modeli, günümüzde en yaygın kullanılan veritabanı paradigması haline gelmiştir. ACID (Atomicity, Consistency, Isolation, Durability) özellikleri sayesinde, SQL veritabanları özellikle finansal işlemler ve kritik iş uygulamaları için tercih edilmektedir.

SQL Veritabanlarının Temel Özellikleri

İlişkisel Model

Veriler, satır ve sütunlardan oluşan tablolarda saklanır. Tablolar arasında birincil ve yabancı anahtarlar aracılığıyla ilişkiler kurulur.

ACID Özellikleri

Atomicity (Atomiklik), Consistency (Tutarlılık), Isolation (İzolasyon) ve Durability (Dayanıklılık) özellikleri, veri bütünlüğünü ve güvenilirliğini sağlar.

Şema Yapısı

Veriler, önceden tanımlanmış bir şemaya göre saklanır. Bu şema, veri tiplerini, ilişkileri ve kısıtlamaları belirler.

Güçlü Sorgu Dili

SQL, karmaşık sorguları, birleştirmeleri (join), alt sorguları ve toplu işlemleri destekleyen zengin bir sorgu dilidir.

Popüler SQL Veritabanı Sistemleri

MySQL
Açık Kaynak

MySQL

Dünyanın en popüler açık kaynak ilişkisel veritabanı yönetim sistemidir. Web uygulamaları için özellikle yaygın olarak kullanılır ve LAMP (Linux, Apache, MySQL, PHP/Python/Perl) yığınının bir parçasıdır.

Temel Özellikleri
  • Yüksek performans ve ölçeklenebilirlik
  • Çapraz platform desteği
  • Kapsamlı uygulama geliştirme için API'ler
  • Tam ACID uyumluluğu (InnoDB motoru ile)
  • Replikasyon ve yüksek kullanılabilirlik özellikleri

Kullanım Alanları: Web siteleri, içerik yönetim sistemleri (WordPress, Drupal), e-ticaret uygulamaları

PostgreSQL
Açık Kaynak

PostgreSQL

Güçlü, açık kaynaklı bir nesne-ilişkisel veritabanı sistemidir. Karmaşık sorgular, yabancı anahtarlar, tetikleyiciler, güncellenebilir görünümler ve işlemsel bütünlük için güçlü destek sunar.

Temel Özellikleri
  • Gelişmiş veri tipleri (JSON, XML, dizi) desteği
  • Tam metin arama özellikleri
  • Coğrafi veri desteği (PostGIS uzantısı ile)
  • Tablo kalıtımı ve fonksiyon aşırı yükleme
  • Paralel sorgu işleme

Kullanım Alanları: Veri analizi uygulamaları, coğrafi bilgi sistemleri, büyük ölçekli web uygulamaları

Microsoft SQL Server
Ticari

Microsoft SQL Server

Microsoft tarafından geliştirilen ilişkisel veritabanı yönetim sistemidir. Windows ekosistemi ile güçlü entegrasyon sunar ve kurumsal uygulamalar için yaygın olarak kullanılır.

Temel Özellikleri
  • T-SQL (Transact-SQL) dili
  • Entegre iş zekası ve analitik araçları
  • Always On yüksek kullanılabilirlik çözümleri
  • Gelişmiş güvenlik özellikleri
  • In-memory OLTP yetenekleri

Kullanım Alanları: Kurumsal uygulamalar, iş zekası çözümleri, Microsoft ekosistemi ile entegre sistemler

Oracle Database
Ticari

Oracle Database

Dünyanın en kapsamlı kurumsal sınıf ilişkisel veritabanı yönetim sistemidir. Büyük ölçekli işlemler, veri ambarları ve kritik iş uygulamaları için tasarlanmıştır.

Temel Özellikleri
  • PL/SQL programlama dili
  • RAC (Real Application Clusters) için yüksek kullanılabilirlik
  • Otomatik depolama yönetimi
  • Gelişmiş güvenlik ve denetim özellikleri
  • Çok kiracılı mimarisi

Kullanım Alanları: Bankacılık sistemleri, ERP çözümleri, büyük ölçekli kurumsal uygulamalar

SQL Temel Komutları

Veri Tanımlama Komutları (DDL)

Veritabanı yapısını oluşturmak ve değiştirmek için kullanılan komutlar.

-- Veritabanı oluşturma
CREATE DATABASE okul;

-- Tablo oluşturma
CREATE TABLE ogrenciler (
    ogrenci_id INT PRIMARY KEY,
    ad VARCHAR(50),
    soyad VARCHAR(50),
    dogum_tarihi DATE,
    sinif_id INT,
    FOREIGN KEY (sinif_id) REFERENCES siniflar(sinif_id)
);

-- Tablo yapısını değiştirme
ALTER TABLE ogrenciler ADD email VARCHAR(100);

-- Tabloyu silme
DROP TABLE ogrenciler;

Veri İşleme Komutları (DML)

Veritabanındaki verileri eklemek, güncellemek ve silmek için kullanılan komutlar.

-- Veri ekleme
INSERT INTO ogrenciler (ogrenci_id, ad, soyad, dogum_tarihi, sinif_id)
VALUES (1, 'Ali', 'Yılmaz', '2005-05-15', 101);

-- Veri güncelleme
UPDATE ogrenciler
SET email = 'ali.yilmaz@okul.com'
WHERE ogrenci_id = 1;

-- Veri silme
DELETE FROM ogrenciler
WHERE ogrenci_id = 1;

Veri Sorgulama Komutları (DQL)

Veritabanından veri almak için kullanılan komutlar.

-- Basit sorgu
SELECT * FROM ogrenciler;

-- Koşullu sorgu
SELECT ad, soyad FROM ogrenciler
WHERE sinif_id = 101;

-- Sıralama
SELECT * FROM ogrenciler
ORDER BY soyad ASC;

-- Gruplama ve toplama fonksiyonları
SELECT sinif_id, COUNT(*) as ogrenci_sayisi
FROM ogrenciler
GROUP BY sinif_id;

-- Tablolar arası birleştirme (JOIN)
SELECT o.ad, o.soyad, s.sinif_adi
FROM ogrenciler o
JOIN siniflar s ON o.sinif_id = s.sinif_id;

Veri Kontrol Komutları (DCL)

Veritabanı erişim izinlerini yönetmek için kullanılan komutlar.

-- Yetki verme
GRANT SELECT, INSERT ON ogrenciler TO kullanici1;

-- Yetki alma
REVOKE INSERT ON ogrenciler FROM kullanici1;

İşlem Kontrol Komutları (TCL)

Veritabanı işlemlerini yönetmek için kullanılan komutlar.

-- İşlem başlatma
BEGIN TRANSACTION;

-- Değişiklikleri kaydetme
COMMIT;

-- Değişiklikleri geri alma
ROLLBACK;

SQL Veritabanlarının Avantajları ve Dezavantajları

Avantajlar

  • Veri Bütünlüğü: İlişkisel model ve ACID özellikleri sayesinde veri tutarlılığı sağlanır
  • Standartlaşma: SQL, yaygın kabul görmüş bir standarttır
  • Karmaşık Sorgular: JOIN, alt sorgular ve toplu işlemler için güçlü destek
  • Olgunluk: Onlarca yıllık geliştirme ve test sonucu güvenilirlik
  • Ekosistem: Geniş araç, kütüphane ve uzman desteği

Dezavantajlar

  • Ölçeklenebilirlik Zorlukları: Yatay ölçeklendirme genellikle karmaşıktır
  • Şema Katılığı: Şema değişiklikleri zor olabilir
  • Büyük Veri Zorlukları: Çok büyük veri setleri için performans sorunları
  • Karmaşık Veri Tipleri: Hiyerarşik veya yarı yapılandırılmış veriler için sınırlı destek
  • Nesne-İlişkisel Empedans Uyumsuzluğu: Nesne yönelimli programlama ile entegrasyon zorlukları

SQL Veritabanı İndeksleme

İndeksler, veritabanı performansını artırmak için kullanılan veri yapılarıdır. Sorgu hızını artırır ancak yazma işlemlerini yavaşlatabilir.

-- İndeks oluşturma
CREATE INDEX idx_ogrenci_ad ON ogrenciler(ad);

-- Bileşik indeks
CREATE INDEX idx_ad_soyad ON ogrenciler(ad, soyad);

İlişki Türleri

  • Bire Bir (One-to-One)

    Her öğrenci bir öğrenci kimlik kartına sahiptir.

  • Bire Çok (One-to-Many)

    Bir öğretmen birden fazla sınıfı yönetebilir.

  • Çoka Çok (Many-to-Many)

    Öğrenciler birden fazla kursa kaydolabilir ve her kurs birden fazla öğrenciye sahip olabilir.

Normalizasyon

Veritabanı tasarımını iyileştirmek, veri tekrarını azaltmak ve veri bütünlüğünü sağlamak için kullanılan bir süreçtir.

  • Birinci Normal Form (1NF): Atomik değerler, tekrarlanan gruplar yok
  • İkinci Normal Form (2NF): 1NF + Kısmi bağımlılıklar yok
  • Üçüncü Normal Form (3NF): 2NF'nin daha sıkı bir versiyonu
  • Boyce-Codd Normal Form (BCNF): 3NF'nin daha sıkı bir versiyonu

SQL Öğrenme Kaynakları

  • W3Schools SQL Tutorial: Başlangıç seviyesi için interaktif öğretici
  • SQLZoo: Pratik yaparak öğrenme platformu
  • HackerRank SQL Challenges: SQL becerilerini geliştirmek için zorlu alıştırmalar
  • Mode Analytics SQL Tutorial: Veri analizi odaklı SQL eğitimi
  • PostgreSQL Documentation: Kapsamlı SQL referansı

İlgili Konular

Veri tabanları ve veri yönetimi hakkında daha fazla bilgi edinmek için ilgili konularımıza göz atın.

NoSQL Veritabanları

NoSQL Veritabanları

İlişkisel olmayan veritabanları, özellikleri ve SQL veritabanlarından farkları hakkında bilgi edinin.

Daha Fazla
Veri Modelleme

Veri Modelleme

Veri modelleme teknikleri, ER diyagramları ve veritabanı tasarımı hakkında detaylı bilgiler.

Daha Fazla
Veri Analizi

Veri Analizi

Veritabanlarından elde edilen verilerin analizi, veri madenciliği ve iş zekası uygulamaları.

Yakında

Veritabanı Dünyasında Güncel Kalın

Veritabanı teknolojileri, SQL yenilikleri ve veri yönetimi hakkında en son gelişmeleri almak için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. E-posta adresinizi asla paylaşmayacağız.