Muhammad ibn Musa al-Khwarizmi Al-jabr kitabının
yazarıdır. Kitabın başlığı Al-jabr (Cebir) Algebra’ya ismini
vermiştir. İlişkisel Cebir genel anlamıyla ilişkisel veritabanının nasıl çalışacağına dair
kurallara uygun tanımdır. Veritabanında verinin nasıl saklandığına dair bir arayüzdür.
SQL işlemlerini destekleyen matematiktir.
İlişkisel cebirdeki operatörler SQL operatörleri
ile aynı isimlere sahip olmak zorunda değildirler. Mesela SELECT ifadesi SQL’de
de ilişkisel cebirde de vardır. Fakat kullanımları aynı değildir. Veri tabanı
yönetim sistemi kullanıcı her ne yazarsa, yazılanı veritabanına uygulamadan
önce alıp, ilişkisel cebir işlemlerine çevirmelidir.
İşlemler (Operations)
Bir İlişkili İşlemler (unary operations)
Seçim (Selection)(σ): İlişkinin
satırlarının bir alt kümesini seçer.
Yansıtma (Projection)(π): İlişkinin
istenmeyen sütunlarını siler.
Yeniden Adlandırma (Rename)(ρ): İlişkinin istenilen sütunlarının adını değiştirir.
Küme Teorisi İşlemleri
Küme farkı (Set-difference)(-): Birinci
ilişkide bulunup ikinci ilişkide bulunmayan çoklular.
Birleşim
(Union)(∪): Birinci ve ikinci ilişkide
bulunan çoklular.
Kesişim
(intersection)(∩): Birinci ve ikinci ilişkide ortak bulunan çoklular.
Kartezyen çarpım (Cross-product)(x): İki
ilişkiyi birleştirmeye yarar.
İkili İşlemler (binary operations)
Bitişme (join)
Bölme(division)
Diğer İşlemler
Aggregate Functions (Sum, Count, Avg, Min, Max)
Aşağıdaki ilişkiler üzerinden örneklerimizi verelim:
Örnek Veritabanı İçerisindeki Kayıtlar |
Örnek Veritabanı İlişkileri |
Seçim (Selection) (σ)
Seçim şartını gerçekleyen satırları seçer.
Sonuçta tekrarlar yoktur.
Sonucun şeması girdi ilişkisinin şeması ile
aynıdır.
Sonuç başka bir ilişkisel cebir işlemi için girdi
olarak kullanılabilir.
Yansıtma (Projection) (π)
Yansıtma listesinde olmayan özellikleri siler.
Sonuç şeması tam olarak yansıtma listesinde olan
özellikleri, girdi olan ilişkideki isimlerle, içerir.
Yansıtma işlemi tekrarları elemelidir.
Not: Gerçek
hayatta tekrarlar kullanıcı açıkça istemedikten sonra elenmez.
Yeniden
Adlandırma (Rename)(ρ)
İlişki veya ilişki özniteliklerinin adlarını değiştirmekte
kullanılır.
Birleşim (Union), Kesişim
(Intersection), Küme Farkı (Set-Difference)
Bütün bu işlemler girdi olarak iki ilişki alır, ki
bu iki ilişki birleşime uyumlu olmalıdır.
1. Aynı sayıda alana sahip olmalıdır.
2. Karşılıklı alanlar aynı tipte olmalıdır.
1. Aynı sayıda alana sahip olmalıdır.
2. Karşılıklı alanlar aynı tipte olmalıdır.
Örnek Veritabanı İçerisindeki Kayıtlar |
Birleşim (Union)(U)
Kesişim (Intersection) (∩)
Küme Farkı
(Set-Difference)(-)
Union ve intersection
yer değiştirme özelliği vardır.
R ∪ S = S ∪ R
R ∩ S = S ∩ R
Union ve intersection
birleşme özelliği vardır.
R ∪ (S ∪ T) =
(R ∪ S) ∪ T
(R ∩ S) ∩ T = R ∩ (S ∩ T)
Set difference işleminin
yer değiştirme özelliği yoktur.
R – S ≠ S – R
Kartezyen Çarpım (Cross-product) (x)
S1 x R1 : S1 in her satırı R1 in herbir satırıyla
eşleşir.
Sonucun şeması S1 ve R1 deki herbir alana karşılık
bir alan içerir.
Bitiştirme (Join) (⋈)
Kartezyen çarpım ve seçim işlemi birlikte
kullanılırsa bitiştirme işlemi yapılmış olur.
Yani Join belirtilen iki işlemi birleştiren özel
bir işlemdir.
Şartlı Bitiştirme (Conditional Join) (⋈c)
R ⋈c S
= σc(R x S)
Sonuç şeması kartezyen çarpımdaki gibidir.
Kartezyen çarpımdan daha az çoklu içermesi daha
verimli bir biçimde hesaplamayı sağlar.
Teta bitiştirmesi diye de adlandırılır.
Eşit Bitiştirme (Equijoin) (⋈e)
e’nin herhangi bir eşitliğe karşılık geldiği özel
bir şartlı bitiştirmedir.
Sonucun şeması kartezyen çarpımdakine benzerdir,
sadece eşitliğin belirlendiği alanın tek kopyası vardır.
Doğal Bitiştirme (Natural join) (*)
Equijoin’deki aynı isimli öznitelik karşılaştırmalarını
tekrar tekrar yazmamak için kullanılan işlemdir.
İki ilişkideki aynı isimli özniteliklerin
eşitliğini karşılaştırır.
Bölme (Division)(÷)
R’nin 2 A ve B isimli
alanı, S’nin yalnız A isimli
bir alanı olsun.
Eğer S' deki A kümesi R’deki bir A ile ilişkilendirilmişse ve R A ile ilişkili bir şekilde S deki tüm A’ları kapsıyorsa, bu A R/S kümesi içerisindedir.