Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Cebir
Konular Biçimsel Sorgulama Dilleri İlişkisel Cebir İlişkisel Cebir İşlemleri Seçme (select) işlemi Projeksiyon (project) işlemi Birleşim (union) işlemi Kesişim (intersect) işlemi Fark (difference) işlemi Kartezyen çarpım (cartesian product) işlemi Birleştirme (join) işlemi Bölme (division) işlemi Uygulamalar 2
Biçimsel Sorgulama Dilleri İlişkisel modelde sıklıkla kullanılan iki biçimsel sorgulama dili vardır. SQL ve QBE (Query By Example) dillerinin temelini oluştururlar. Bu diller biçimseldir. Herhangi bir yorumlayıcı veya derleyici yoktur. 1.İlişkisel Cebir (Relational Algebra): Prosedüreldir ve sorguların hangi adımlardan oluştuğu açıkça ifade edilir. Öğrenciler ve İller tablosunu birleştir. İli Sakarya olan öğrencileri seç. Bu öğrencilerin numara, ad soyad bilgilerini göster 2. İlişkisel Hesap (Relational Calculus): Prosedürel değildir. Kullanıcıların ne istediklerini bildirmelerine olanak tanır. Nasıl hesaplanması gerektiği bildirilmez. Sakarya da kayıtlı öğrencilerin, numara, ad ve soyadı bilgilerini listele. Her iki ifade birbirine dönüştürülebilir. 3
İlişkisel Cebir İlişkisel Veri Tabanı Yönetim Sistemlerinde temel yapı ilişkidir (ilişki yerine tablo ifadesi daha çok kullanılır). İlişkisel modelde kullanıcılar tablolar cinsinden düşünür, tablolar üzerinde işlem yaparlar ve sonuçlar da tablo yapısında elde edilir. İliskisel cebir, biçimsel sorgulama dilidir. İlişkisel cebir yardımıyla, veritabanının nasıl sorgulanabileceği yorumlanır. Sorgular SQL den farklı olarak biçimseldir. yoktur. Herhangi bir yorumlayıcı veya derleyici 4
İlişkisel Cebir İşlemleri Seçme (select) işlemi Projeksiyon (project) işlemi Birleşim (union) işlemi Kesişim (intersect) işlemi Fark (difference) işlemi Kartezyen çarpım (cartesian product) işlemi Birleştirme (join) işlemi Bölme (division) işlemi 5
Seçme İşlemi Belirli bir tablodan bir kritere göre bazı kayıtları alma işlemidir. Genel yazılış: seçim kriteri (Tablo) Örnekler: yas > 32 (Ogrenci) : Ogrenci tablosunda yas alanı 32 ten büyük olan satırlar seçilir. (stokno = A50) (miktar > 100) (Stok) : Stok tablosunda A50 stokno lu miktar ı 100 den fazla olan ürünler seçilir. 6
Projeksiyon İşlemi Belirli bir tablonun belirli nitelikleri seçilerek diğerleri atılır; elde edilen yeni tabloda, varsa, tekrarlı satırlar da atılır. Genel yazılış: nitelik-listesi (Tablo) Örnekler: ogrno, ad, soyad, telefon (Ogrenci) : Ogrenci tablosundaki alanlardan yalnızca ogrno, ad, soyad ve telefon sütunları seçilerek yeni bir tablo oluşturur. ogrno, adres ( bolum = Tarih (Ogrenci)): Ogrenci tablosundan bolum u Tarih olan satırlar seçilir ve alanlardan yalnızca ogrno ve adres sütunları seçilerek yeni bir tablo oluşturur. 7
Birleşim İşlemi Bu işlem, iki tablonun küme birleşimini alır. Rasgele 2 tablonun birleşimi alınamaz. İki tabloya birleşim işleminin uygulanabilmesi için iki tablonun nitelik sayıları aynı olmalı; aynı sıradaki nitelikleri de aynı değer alanı üzerinde tanımlanmış olmalıdır. Genel yazılış: Tablo 1 Tablo 2 Örnek: ogrno, telefon (Ogrenci) ogrno, telefon (Klup) : Ogrenci ve Klup tablolarındaki ogrno ve telefon sutünlarındaki alanlar birleştirilir. Yani her iki tablonun satırları alt alta toplanmış olur. (Kaydı silinen işçiler tablosu ile çalışan işçiler tablosunun birleşimi, işyerinde çalışan toplam kişileri döndürür). 8
Kesişim İşlemi Bu işlem iki tablonun küme kesişimi elde edilir. Birleşim işleminde olduğu gibi, rasgele 2 tablonun kesişimi alınamaz. İki tabloya kesişim işleminin uygulanabilmesi için iki tablonun nitelik sayıları aynı olmalı; aynı sıradaki nitelikleri de aynı değer alanı üzerinde tanımlanmış olmalıdır. Genel yazılış: Tablo 1 Tablo 2 Örnek: ogrno, telefon (Ogrenci) ogrno, telefon (Klup) : Ogrenci ve Klup tablolarındaki aynı satırdaki ogrno ve telefon sutünlarındaki değerleri aynı olan satırlar seçilir. 9
Fark İşlemi Fark işlemi ile iki tablonun küme farkı elde edilir. Birleşim ve kesişim işlemleri gibi fark işlemi de rasgele iki ilişkiye uygulanamaz. Bu operasyonun sonucunda elde edilen ilişki bir ilişkiye sonradan eklenen satırların bulunması gibi bir sonuç verecektir. Tablo1 ilişkinin son içeriği, Tablo2 ilişkinin önceki içeriği ise, Tablo1-Tablo2 aradaki satırların bulunduğu ilişkidir. Örnek: Genel yazılış: Tablo 1 Tablo 2 ogrno, telefon (Ogrenci) - ogrno, telefon (Klup) : Ogrenci ve Klup tablolarında aynı satırdaki ogrno ve telefon sutünlarındaki değerleri aynı olan satırlar çıkarılarak, yeni bir tablo elde edilir. 10
Çarpım İşlemi Kartezyen çarpım işlemi ile iki tablonun küme çarpımı bulunur. Farklı 2 tabloya uygulanır. Genel yazılış: Musteriler x Iller Örnek: X 11
Doğal Birleştirme (Natural Join - Inner Join) Birleştirme (join) işlemi ile, iki ilişkinin kartezyen çarpımının bir alt kümesi elde edilir. Birleştirme operasyonu kartezyen çarpım işlemine seçme işleminin uygulanmasıdır. Bu işlem sayesinde gereksiz veri tekrarı engellenmiş olur. Genel yazılış: Musteriler Iller il il 12
Left Outer Join Genel yazılış: Musteriler Iller il 33 il 33 NULL NULL 13
Right Outer Join Genel yazılış: Musteriler Iller il il 14
Bölme İşlemi Bölme işlemi, ilişkisel işlemler arasında en karmaşık olanıdır. Doğal birleştirme işleminde olduğu gibi, iki ilişkiye bölme işleminin uygulanabilmesi için, ilişkilerde en az bir ortak (aynı adlı) nitelik bulunması gerekir. Bölme işlemi bu ortak nitelik ya da nitelikler üzerinden uygulanır. Genel yazılış: Tablo 1 Tablo 2 15
UYGULAMA 3. Hafta ders notlarında geliştirilen Öğrenci Bilgi Sistemine ait veritabanının ilişkisel şeması (alt şema) aşağıdaki gibidir. İstenen sorgulara ait biçimsel ifadeleri ilişkisel cebir ile yapınız. Bolum (bolumno, ad) Ogrenci (ogrencino, ad, soyad, dogumtarihi, dogumyeri, cinsiyet, bolumno) AcilanDers (dersno, derskodu, donem, ogretimelemanino, bolumno) Kayit (kayitno, dersno, ogrencino, vize, final, ortalama. ) OgretimElemani (ogretimelemanino, ad, soyad, dogumtarihi, dogumyeri, unvan) 16
UYGULAMA Soru 1 : Öğrencileri ad ve soyadlarıyla listeleyiniz. Soru 2 : İstanbul da doğan öğrencilerin adını soyadını listeleyiniz. Soru 3 : Bilgisayar bölümünde ders veren öğretim elemanlarının ad ve soyadlarını listeleyiniz. Soru 4 : 2015-2016 Güz döneminde hiçbir dersi olmayan öğretim elemanlarının ad ve soyadlarını listeleyiniz. Soru 5 : İzmir de doğan veya Felsefe bölümünde okuyan öğrencilerin ad ve soyadlarını listeleyiniz. 17
UYGULAMA 18
UYGULAMA 19