Veritabanı Yönetiminin Temelleri: Adım Adım SQL Rehberi
Bir yazılım projesinin en kritik bileşeni veridir. Veriyi doğru bir şekilde saklamak, korumak ve işlemek için SQL (Structured Query Language) dilini bilmek hayati önem taşır. Bu rehberde, bir veritabanını sıfırdan nasıl inşa edeceğinizi adım adım öğreneceğiz.
Adım 1: Temeli Atmak - Tablo Oluşturma (CREATE TABLE)
Her şey bir tablo yapısı tasarlamakla başlar. Veritabanında her nesne (Kullanıcı, Ürün, Sipariş) bir tabloda saklanır.
-- Bir personel tablosu oluşturalım
CREATE TABLE Personel (
id SERIAL, -- Otomatik artan sayısal anahtar
isim VARCHAR(100), -- Metin alanı (maksimum 100 karakter)
departman VARCHAR(50), -- Departman bilgisi
baslangic_tarihi DATE -- Tarih alanı
);
Adım 2: Veri Güvenliği ve Kurallar - Kısıtlamalar (Constraints)
Tabloyu oluşturmak yetmez; verinin “temiz” ve “doğru” olmasını sağlamalıyız. Bunun için kısıtlamaları kullanırız:
- PRIMARY KEY: Her satırı benzersiz kılar.
- NOT NULL: Sütunun boş bırakılamayacağını söyler.
- CHECK: Verinin belirli bir aralıkta veya değerde olmasını zorunlu tutar.
- FOREIGN KEY: Tabloları birbirine bağlar ve referans bütünlüğü sağlar.
Örnek Uygulama:
CREATE TABLE Urunler (
urun_id INT PRIMARY KEY,
urun_adi VARCHAR(200) NOT NULL,
stok_miktari INT CHECK (stok_miktari >= 0),
fiyat DECIMAL(10, 2) DEFAULT 0
);
-- Siparişler tablosunu Ürünler'e bağlayalım
CREATE TABLE Siparisler (
siparis_no SERIAL PRIMARY KEY,
urun_id INT REFERENCES Urunler(urun_id),
miktar INT NOT NULL,
tarih TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Adım 3: Veri Yönetimi - Ekleme, Güncelleme ve Silme
Şemamız hazır olduktan sonra içine veri koymaya başlayabiliriz.
- Veri Ekleme (INSERT):
INSERT INTO Urunler (urun_id, urun_adi, stok_miktari, fiyat)
VALUES (101, 'Dizüstü Bilgisayar', 15, 25000.00);
- Veri Güncelleme (UPDATE):
UPDATE Urunler SET fiyat = 27500.00 WHERE urun_id = 101;
- Veri Silme (DELETE):
DELETE FROM Urunler WHERE urun_id = 101;
Adım 4: Veriyi Soyutlamak - Görünümler (Views)
Bazen kullanıcıların tüm tabloyu görmesini istemeyiz ya da çok karmaşık sorguları tek bir isimle çağırmak isteriz. Bu durumda sanal tablolar olan Views‘u kullanırız.
-- Sadece stokta olan ürünleri gösteren bir pencere açalım
CREATE VIEW StoktakiUrunler AS
SELECT urun_adi, fiyat
FROM Urunler
WHERE stok_miktari > 0;
-- Artık bu View'ı bir tablo gibi kullanabiliriz:
SELECT * FROM StoktakiUrunler;
Adım 5: Tabloları Birleştirme ve Analiz - JOIN & Aggregation
İlişkisel veritabanlarının en güçlü yanı, verinin farklı tablolara dağıtılmış olması ve bunları anlık olarak birleştirebilmemizdir.
- Tablo Birleştirme (JOIN):
-- Hangi siparişin hangi ürüne ait olduğunu görelim
SELECT s.siparis_no, u.urun_adi, s.miktar
FROM Siparisler s
JOIN Urunler u ON s.urun_id = u.urun_id;
- Veri Özeti (Aggregation):
-- Toplam satış adetlerini hesaplayalım
SELECT urun_id, SUM(miktar) as toplam_satis
FROM Siparisler
GROUP BY urun_id;
Adım 6: Güvenlik ve Şema Bakımı - GRANT & ALTER
Veritabanı canlıya geçtikten sonra yetkileri yönetmek ve yapıyı güncellemek gerekir.
- Yetki Verme:
-- Bir kullanıcıya sadece okuma yetkisi verelim
GRANT SELECT ON Urunler TO rapor_kullanicisi;
- Yapıyı Güncelleme:
-- Ürünler tablosuna 'kategori' sütunu ekleyelim
ALTER TABLE Urunler ADD COLUMN kategori VARCHAR(50);
Sonuç
Bu rehberde, veritabanı yönetiminin temel taşlarını adım adım inceledik. SQL dünyası bu kadarla sınırlı değil; ancak bu temel adımlar (Şema, Kısıtlamalar, Veri İşleme, Sorgulama ve Yetkilendirme), profesyonel bir veritabanı mimarı olma yolunda atılan en sağlam adımlardır.
Kendi veritabanınızı oluştururken kuralları (Constraints) sıkı tutmayı ve sorgularınızı optimize etmeyi ihmal etmeyin!