Veritabanı Nedir? Temel Kavramlar ve SQL’e Başlangıç Rehberi

Veritabanının ne olduğunu, temel veritabanı kavramlarını, SQL komutlarını ve ilişkisel veritabanlarının web projelerinde nasıl kullanıldığını başlangıç seviyesinde öğrenin.

Veritabanı Nedir?

Veritabanı, bilgilerin düzenli, güvenli ve erişilebilir bir şekilde saklanmasını sağlayan sistemdir. Bir web sitesindeki kullanıcı hesapları, ürünler, siparişler, mesajlar ve ödeme kayıtları gibi bilgiler genellikle bir veritabanında tutulur.

Küçük bir projede birkaç bilgiyi dosyalarda saklamak mümkün olabilir. Ancak veri miktarı arttıkça bilgileri aramak, güncellemek, ilişkilendirmek ve güvenli biçimde yönetmek zorlaşır. Veritabanları, bu işlemlerin daha hızlı ve kontrollü şekilde yapılmasını sağlar.

Veritabanları Nerelerde Kullanılır?

Günümüzde kullanılan birçok dijital sistemin arka planında bir veritabanı bulunur.

  • E-ticaret sitelerinde ürün, stok, müşteri ve sipariş yönetimi
  • Üniversite sistemlerinde öğrenci, ders ve not kayıtları
  • Hastane sistemlerinde hasta ve randevu bilgileri
  • Sosyal medya platformlarında kullanıcı ve paylaşım verileri
  • Mobil uygulamalarda profil, mesaj ve uygulama ayarları
  • Kurumsal sistemlerde çalışan, müşteri ve muhasebe kayıtları

İlişkisel Veritabanı Nedir?

İlişkisel veritabanlarında bilgiler tablolar içerisinde saklanır. Her tablo belirli bir veri grubunu temsil eder. Örneğin bir e-ticaret sisteminde kullanıcılar, ürünler ve siparişler için ayrı tablolar oluşturulabilir.

Tablo Saklanan bilgiler
users Kullanıcı adı, e-posta adresi ve parola bilgileri
products Ürün adı, fiyatı, açıklaması ve stok miktarı
orders Sipariş sahibi, sipariş tarihi ve toplam tutar

Bu tablolar birbirleriyle ilişkilendirilebilir. Örneğin bir sipariş kaydı, siparişi oluşturan kullanıcının kimlik numarasını içerebilir. Böylece hangi siparişin hangi kullanıcıya ait olduğu kolayca bulunabilir.

Temel Veritabanı Kavramları

Tablo

Benzer türdeki verilerin satır ve sütunlar halinde tutulduğu yapıdır. Kullanıcılar tablosu, ürünler tablosu ve siparişler tablosu buna örnek olarak verilebilir.

Satır

Tablodaki tek bir kaydı temsil eder. Kullanıcılar tablosundaki her satır, farklı bir kullanıcıya ait olabilir.

Sütun

Kaydın sahip olduğu özellikleri belirtir. Kullanıcılar tablosunda ad, e-posta, parola ve kayıt tarihi gibi sütunlar bulunabilir.

Primary Key

Tablodaki her kaydı benzersiz biçimde tanımlayan alandır. Genellikle id isimli, otomatik artan bir sayı kullanılır.

Foreign Key

Bir tablodaki kaydı başka bir tabloyla ilişkilendiren alandır. Örneğin siparişler tablosundaki user_id alanı, kullanıcılar tablosundaki bir kullanıcıyı gösterebilir.

SQL Nedir?

SQL, ilişkisel veritabanlarıyla iletişim kurmak için kullanılan sorgu dilidir. SQL kullanılarak veritabanına yeni kayıt eklenebilir, mevcut kayıtlar görüntülenebilir, güncellenebilir veya silinebilir.

Temel SQL işlemleri genellikle CRUD olarak adlandırılır:

  • Create: Yeni kayıt oluşturma
  • Read: Kayıtları görüntüleme
  • Update: Mevcut kayıtları güncelleme
  • Delete: Kayıtları silme

Temel SQL Komutları

Tablo Oluşturma

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(150) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Bu komut users adında bir tablo oluşturur. Her kullanıcı için benzersiz bir id, ad, e-posta adresi ve kayıt tarihi saklanır.

Yeni Kayıt Ekleme

INSERT INTO users (name, email)
VALUES ('Ahmet Yılmaz', 'ahmet@example.com');

Kayıtları Listeleme

SELECT * FROM users;

Belirli bir kullanıcıyı bulmak için koşul eklenebilir:

SELECT * FROM users
WHERE email = 'ahmet@example.com';

Kayıt Güncelleme

UPDATE users
SET name = 'Ahmet Mehmet Yılmaz'
WHERE id = 1;

Kayıt Silme

DELETE FROM users
WHERE id = 1;

Güncelleme ve silme işlemlerinde WHERE koşulunun doğru kullanılması önemlidir. Koşul yazılmadığında tablodaki bütün kayıtlar etkilenebilir.

Popüler Veritabanı Yönetim Sistemleri

Sistem Öne çıkan kullanım alanı
MySQL PHP tabanlı web siteleri ve e-ticaret sistemleri
PostgreSQL Gelişmiş ve yüksek güvenilirlik gerektiren projeler
SQLite Küçük uygulamalar, mobil uygulamalar ve yerel geliştirme
Microsoft SQL Server Kurumsal ve Microsoft teknolojileriyle geliştirilen sistemler
MongoDB Esnek belge yapısına ihtiyaç duyan NoSQL projeleri

Veritabanı Tasarımında Dikkat Edilmesi Gerekenler

  • Her tablo belirli ve açık bir amacı temsil etmelidir.
  • Aynı bilgi gereksiz yere birden fazla tabloda saklanmamalıdır.
  • Tablo ve sütun isimleri anlaşılır olmalıdır.
  • Primary key ve foreign key ilişkileri doğru kurulmalıdır.
  • E-posta gibi benzersiz olması gereken alanlara uygun kısıtlamalar eklenmelidir.
  • Kullanıcı parolaları hiçbir zaman düz metin olarak saklanmamalıdır.
  • Önemli veriler düzenli olarak yedeklenmelidir.

SQL Injection Tehlikesi

Kullanıcıdan alınan verilerin doğrudan SQL sorgusuna eklenmesi ciddi güvenlik açıklarına neden olabilir. Bu saldırı türüne SQL injection adı verilir.

Güvensiz bir sorgu aşağıdaki gibi oluşturulabilir:

$sql = "SELECT * FROM users WHERE email = '" . $_POST['email'] . "'";

Bunun yerine prepared statement ve parametreli sorgular kullanılmalıdır:

$stmt = $pdo->prepare(
    "SELECT * FROM users WHERE email = :email"
);

$stmt->execute([
    'email' => $_POST['email']
]);

Parametreli sorgular, kullanıcı tarafından gönderilen verilerin SQL komutu olarak çalıştırılmasını engellemeye yardımcı olur.

Veritabanı Öğrenmeye Nereden Başlanmalı?

Veritabanı öğrenmeye başlayan bir kişi öncelikle tablo, satır, sütun, primary key ve foreign key kavramlarını anlamalıdır. Daha sonra temel SQL komutları üzerinde çalışılabilir.

  1. Basit bir kullanıcı tablosu oluşturun.
  2. Tabloya örnek kayıtlar ekleyin.
  3. SELECT sorgularıyla kayıtları listeleyin.
  4. WHERE, ORDER BY ve LIMIT kullanımını öğrenin.
  5. İki tablo oluşturup aralarında ilişki kurun.
  6. JOIN sorgularıyla ilişkili kayıtları görüntüleyin.
  7. PHP, Python veya başka bir backend diliyle veritabanı bağlantısı kurun.

Sonuç

Veritabanları modern web sitelerinin ve mobil uygulamaların temel bileşenlerinden biridir. Doğru tasarlanmış bir veritabanı; bilgilerin hızlı, güvenli ve düzenli biçimde yönetilmesini sağlar. SQL’in temel komutlarını öğrenmek, backend ve web geliştirme alanında ilerlemek isteyenler için önemli bir başlangıçtır.

Nizokka Soft Akademi içerisindeki sonraki içeriklerde SQL sorguları, tablo ilişkileri, JOIN işlemleri ve PHP ile güvenli veritabanı bağlantısı gibi konuları uygulamalı örneklerle inceleyeceğiz.

Teknik desteğe mi ihtiyacınız var?

Projenizin kapsamını birlikte değerlendirelim

İletişime geçin