1. Ünite: Veri Tabanı Yönetim Sistemi Kavramı
Veri Tabanı Yönetim Sistemleri (VTYS), verilerin saklanması, sorgulanması ve yönetilmesi için geliştirilen özel yazılımlardır. Geleneksel dosya sistemlerinin yetersiz kaldığı karmaşık veri ilişkilerini yönetmek amacıyla ortaya çıkmıştır. Veriler alan (sütun) ve kayıtlardan (satır) oluşan dosyalarda tutulur. VTYS; veri tekrarını önler, veri tutarlılığını sağlar ve yetkisiz erişimleri kısıtlayarak güvenliği artırır . Günümüzde en yaygın kullanılan modeller ilişkisel veri modelleridir.
Örnek: Bir okul sisteminde öğrenci numarası, ad-soyad ve doğum tarihi bilgilerini içeren “ÖĞRENCİ” tablosu, bir veri grubu oluşturur.
2. Ünite: Varlık – İlişki Modeli
Varlık-İlişki (ER) modeli, verileri herhangi bir yazılımdan bağımsız olarak modellemek için kullanılır. Varlık, dünyadaki ayırt edilebilir her nesnedir; nitelikler ise bu varlıkları tanımlayan özelliklerdir. Varlıklar arasında birden-bire, birden-çoka, çoktan-bire ve çoktan-çoka olmak üzere farklı eşleşme biçimleri (ilişkiler) kurulabilir . Kayıtları birbirinden ayırmak için “anahtar” (key) kavramı kullanılır.
Örnek: Bir danışman öğretim üyesinin birden fazla öğrencisinin olması, “Danışman” ve “Öğrenci” varlıkları arasında birden-çoka bir ilişkidir.
3. Ünite: İlişkisel Veri Tabanı Yönetim Sistemi
İlişkisel model, verileri tablolar halinde düzenler ve bu tablolar arasındaki bağlantıları ortak değerler üzerinden sağlar. Her tablo benzersiz bir isme sahiptir; satırlar kayıtları, sütunlar ise nitelikleri ifade eder . Veri bütünlüğünü korumak için “birincil anahtar” (primary key) ve “dış anahtar” (foreign key) gibi sınırlamalar kullanılır. Bu sınırlamalar sayesinde verilerde tutarsızlık ve çelişki oluşması önlenir.
Örnek: Personel tablosundaki “Bölüm No” alanı, Bölüm tablosundaki aynı alanla eşleşerek personelin hangi birimde çalıştığını hatasız gösterir.
4. Ünite: İlişkisel Veri Tabanı Yönetim Sistemi Tasarımı
Veri tabanı tasarımı aşamasında veri tekrarını ve kaybını önlemek için “normalleştirme” işlemi uygulanır. Tasarım, niteliklerin birbirini belirleme durumu olan “fonksiyonel bağımlılıklar” üzerine inşa edilir. Temel kurallar Birinci Normal Form (1NF), İkinci Normal Form (2NF) ve Üçüncü Normal Form (3NF) olarak sıralanır . Üst formlara geçildikçe veri ekleme, silme ve güncelleme sırasında oluşabilecek mantıksal sorunlar giderilir.
Örnek: Bir sipariş tablosunun, güncelleme hatalarını önlemek için “Şehirler” ve “Sipariş Miktarları” gibi iki ayrı tabloya bölünmesi bir normalleştirme işlemidir.
5. Ünite: İlişkisel Cebir
İlişkisel cebir, veri tabanı üzerinde biçimsel sorgulamalar yapmayı sağlayan matematiksel bir dildir. Temel işlemleri arasında belirli kayıtları seçmek için kullanılan “Seçim”, belirli sütunları almak için kullanılan “Atma” ve tabloları birleştiren “Kartezyen Çarpım” yer alır . Ayrıca iki kümedeki kayıtları birleştiren “Birleşme”, ortak kayıtları bulan “Kesişme” ve farkı gösteren “Fark” işlemleri de mevcuttur .
Örnek: Bir tablodaki binlerce öğrenci arasından sadece “İşletme” bölümünde okuyanları süzmek için “Seçim” işlemi kullanılır.
6. Ünite: SQL Yapısal Sorgulama Dili
SQL (Structured Query Language), veri tabanı işlemlerini gerçekleştirmek için kullanılan evrensel dildir. En temel deyimi olan SELECT, tablolardan veri çekmek için kullanılırken; INSERT yeni kayıt eklemek, FROM ise kaynağı belirtmek için kullanılır. Sorgu sonuçlarında sütunlara geçici başlıklar vermek için AS anahtar kelimesi, tekrarlı kayıtları gizlemek için ise DISTINCT kelimesinden faydalanılır.
Örnek: “SELECT BölümAdı, Konum FROM BÖLÜM” sorgusu, bölüm tablosundaki tüm birimleri yer bilgileriyle birlikte listeler.
7. Ünite: Verinin Sınırlandırılması
Sorgularda tüm kayıtlar yerine sadece belirli kriterlere uyanları getirmek için WHERE deyimi kullanılır. Karşılaştırma operatörleri (=, <>, <, >) dışında, belirli bir aralığı kapsayan BETWEEN, bir liste içindeki değerleri kontrol eden IN ve metin kalıplarını arayan LIKE operatörleri de bu aşamadadır. AND ve OR mantıksal bağlaçları ile birden fazla koşul birleştirilebilir.
Örnek: Ücreti 3000 ile 5000 TL arasında olan personelleri listelemek için “WHERE Ücret BETWEEN 3000 AND 5000” koşulu kullanılır.
8. Ünite: Tek Satır SQL Fonksiyonları
Tek satır fonksiyonları, tablonun her bir satırı için ayrı ayrı çalışır ve her satır için tek bir sonuç üretir. Karakter fonksiyonları (UPPER, LOWER, LENGTH) metinleri düzenlemek, sayısal fonksiyonlar matematiksel hesaplar yapmak, tarih fonksiyonları ise zaman verilerini işlemek için kullanılır. Bu fonksiyonlar, ham veriyi kullanıcıya daha anlamlı ve düzenli bir biçimde sunmayı sağlar.
Örnek: “UPPER(Adı)” fonksiyonu, veri tabanındaki tüm personel isimlerini büyük harfe dönüştürerek ekrana basar.
9. Ünite: Çoklu SQL Fonksiyonları
Gerçek uygulamalarda veri genellikle birden fazla tabloya yayılmıştır; bu durumda “birleştirme” (join) işlemleri kullanılır. Tablolar, aralarındaki ortak sütunlar (ID’ler) üzerinden birbirine bağlanır. Eşiti olan birleştirmeler dışında, eşleşmeyen kayıtları da dahil eden “Dış Birleştirme” (Outer Join) ve tablonun kendisiyle birleştirildiği “Kendine Birleştirme” yöntemleri de mevcuttur.
Örnek: “Personel” ve “Bölüm” tablolarını birleştirerek, her personelin isminin yanına çalıştığı bölümün tam adını getirmek bir birleştirme işlemidir.+1
10. Ünite: Gruplama Kavramı
Gruplama, verileri belirli bir sütundaki değerlere göre özetlemek için kullanılır. GROUP BY deyimi ile satırlar gruplara ayrılır ve SUM (toplam), COUNT (sayı), AVG (ortalama), MIN-MAX gibi “Grup Fonksiyonları” ile bu gruplar üzerinde hesaplamalar yapılır. Gruplanmış verilere filtre uygulamak için ise WHERE yerine HAVING deyimi tercih edilmelidir.
Örnek: Şirketteki her bölümün ayrı ayrı toplam maaş giderini görmek için bölüm numarasına göre gruplama (GROUP BY) yapılır.
11. Ünite: Karmaşık Sorgular
Bazen bir sorgunun sonucunu elde etmek için başka bir sorgunun çıktısına ihtiyaç duyulur; bu duruma “alt sorgu” (subquery) denir. Alt sorgular genellikle WHERE veya FROM deyimlerinin içinde yer alarak ana sorguya girdi sağlar. Bu yöntem, dinamik kriterlere göre veri çekilmesini sağlayarak SQL’in işlem gücünü büyük ölçüde artırır.
Örnek: Maaşı, “Selçuk” isimli personelin maaşından daha yüksek olan tüm personelleri bulmak için önce Selçuk’un maaşını bulan bir alt sorgu yazılır.
12. Ünite: DML İşlemleri
Veri İşleme Dili (DML), tablo içindeki verileri yönetmek için kullanılan komutlardır. INSERT INTO ile tabloya yeni kayıtlar eklenir, UPDATE ile mevcut kayıtlar güncellenir, DELETE ile de istenmeyen satırlar silinir. Bu işlemler sırasında bütünlük sınırlamaları (anahtarlar) devreye girerek, sisteme hatalı veya tutarsız veri girişi yapılmasını engeller.
Örnek: Satış bölümündeki tüm personellerin kayıtlarını tablodan kaldırmak için DELETE komutu kullanılır.
13. Ünite: Veri Tabanı Yönetim Sistemi Nesneleri
VTYS’de sadece tablolar değil, farklı amaçlara hizmet eden nesneler de bulunur. Tablolar veriyi fiziksel olarak saklarken; “Görünümler” (Views) sık kullanılan sorguları sanal tablo gibi kaydeder. “Dizinler” (Indexes) ise, bir kitaptaki fihrist gibi çalışarak verilere çok daha hızlı erişilmesini sağlar ve sorgu performansını optimize eder.
Örnek: Maaş sütunu üzerinde bir dizin (Index) oluşturmak, maaş kriterine göre yapılan aramaların saniyelerden milisaniyelere düşmesini sağlar.
14. Ünite: Kullanıcı İşlemleri
Veri tabanları çok sayıda kullanıcı tarafından aynı anda kullanılır; bu nedenle erişim yetkileri yönetilmelidir. Yönetici (DBA), kullanıcıları oluşturur ve onlara belirli haklar tanır. GRANT komutu ile yetki verilirken (örneğin sadece okuma veya güncelleme), REVOKE komutu ile bu yetkiler geri alınabilir. Bu süreç, veri güvenliğinin en temel aşamasıdır.
Örnek: Bir memura sadece kendi departmanındaki maaş bilgilerini görme (SELECT) yetkisi verip, bu bilgileri değiştirme (UPDATE) yetkisini kısıtlamak bir kullanıcı işlemidir
