Download as pdf or txt
Download as pdf or txt
You are on page 1of 70

VERİTABANI YÖNETİM SİSTEMLERİ

BÖLÜM -3-
İLİŞKİSEL VERİ MODELİ &
İLİŞKİSEL CEBİR İFADELERİ
Genel Bakış…
• İlişkisel veritabanı kavramı ve ana bileşeni olan tabloların
özellikleri,
• Veritabanı şeması kavramı,
• Veritabanı bütünlüğü kavramı,
• Anahtarların bütünlük sınırlamalarındaki önemi,
• Veritabanı sınırlaması türleri,
• İlişkisel cebir kavramı,
• İlişkisel cebir temel işlemleri.
3.1. İlişkisel Model
İlişkisel model, varlıklar arasındaki bağlantının, içerdiği değerlere
göre sağlanması esasına dayanır. İlişkisel model, varlıklar
arasında oluşan karmaşık ilişkileri basite indirgemek amacıyla
geliştirilmiştir.

VERİTABANI

No Adı Bölüm No Bölüm No Bölüm Adı


3.2. İlişkisel Veritabanı
• İlişkisel veritabanı, her biri özel isimlere sahip tablolardan
oluşur. İlişkisel veri tabanında her bir tablo bir varlığa veya bir
ilişkiye karşılık gelmektedir.

No Adı Bölüm No
130 Cenk 10
132 Fatih 11
136 Cumhur 13
144 Semra 10
6

3.2.1. Tabloların Özellikleri


İlişkisel veritabanı içinde yer alan her bir tablo;
• Sütunlardan oluşur ve her bir sütunun ayrı bir adı vardır.
• Her bir sütun, aynı niteliğin tanımlandığı aynı etki alanının
(domain) belirlediği değerleri içerir.
• Her bir satır birbirinden farklıdır.
• Satırların ve sütunların sırası önemsizdir.

No Adı Bölüm No Adı No Bölüm No


130 Cenk 10 Cenk 130 10
132 Fatih 11 Fatih 132 11
136 Cumhur 13 Cumhur 136 13
7

3.2.2. Veritabanı Şeması


Veritabanının mantıksal tasarımına veritabanı şeması adı verilir.
Tablolar ve onların nitelikleri; veritabanı şemasını oluşturur.
Veritabanı şemalarını iki ana grup altında ortaya koymak
mümkündür.
✓ Fiziksel Şema
✓ Kavramsal Şema
8

3.2.2. Veritabanı Şeması (devam…)

Fiziksel şema, veritabanının fiziksel çevresi ile ilgili tanımları içerir.


Örneğin, veritabanı bilgisayarda bir disk dosyası biçiminde yer alacaktır. Bu
dosyanın disk üzerindeki adresi ve özellikleri ile ilgili tanımlar fiziksel
şemayı oluştur.

Kavramsal şema ise tüm veritabanının mantıksal tasarımıdır. Veritabanına


konulmasına karar verilen veriler arasındaki mantıksal ilişkilerin yapısının
saptanması için veritabanı şeması oluşturulur. Bu şemada, veritabanında veri
alanları, kayıtlar, dosyalar vb… gibi ne tür veri elemanlarının bulunacağı,
veri elemanları arasındaki ilişkiler ve veritabanının yapısı hakkında bilgiler
yer alır.
9

3.2.2. Veritabanı Şeması (devam…)


Veritabanı şeması veya bir başka deyişle kavramsal şema
tasarlandıktan sonra, her bir uygulama için alt-şemalar hazırlanır.
Örneğin, muhasebe uygulaması bir alt şemadır. Çünkü bu
uygulama veritabanının tümü ile ilgilenmez.
10

3.2.3. Veritabanı Bütünlüğü


• Veritabanının doğru ve tutarlı biçimde çalışması ve işlemleri
yerine getirmesi gerekir. Verinin doğru ve tutarlı olmasına
"veri bütünlüğü (data integrity)" denir.
• Veri bütünlüğünün sağlanması sonucunda, veritabanının eksik,
yanlış, tutarsız ve çelişkili olmaması sağlanır.
11

3.2.3. Veritabanı Bütünlüğü (devam…)


• Bir veritabanında belirli kurallar ve kısıtlar altında veri ekleme,
silme ve güncelleme işlemlerinin yapılmasının ardından, o
veritabanının fiziksel ve mantıksal yapısı içerdiği verilere
nazaran bozulmaz ise veri bütünlüğü sağlanmış olur.
• Veritabanında, veri bütünlüğünü sağlamak için birçok yol
bulunmaktadır. Bunlar;
❖ Constraint’ler (kısıtlayıcılar),
❖ Rule’lar (kurallar) ve
❖ Default’lar (varsayılanlar) olmak üzere üç çeşidi vardır.
30

3.3. İlişkisel Model Örneği


• Örnek olarak basit bir market veritabanı tasarlayalım. Bir
markette olabilecek tablolar aşağıda gösterilmiştir.
Reyon No Reyon Adı
23 Manav
34 Şarküteri
42 Deterjan

Ürün No Reyon No Ürün Ad Alış Fiyatı Satış Fiyatı Geliş Tarihi Miktar
4 23 Elma 100 130 10.10.2009 50
10 42 Sabun 20 50 12.10.2009 100

Personel No Adı Soyadı Maaş Reyon No


25 Fatih Yücalar 1500 23
55 Erdal Güvenoğlu 1000 42
31

3.3. İlişkisel Model Örneği (devam…)

• Tablolar arasında çeşitli ilişkiler bulunmaktadır.

• Örneğin, Personel tablosunda yer alan Reyon No, Reyonlar


tablosundaki Reyon No ile ilişkilidir. Burada Reyon No = 23
olan personel “Fatih Yücalar” ın Manav reyonunda çalıştığı
bu ilişkiye bakılarak söylenebilmektedir.

• Reyonlar tablosunda yer alan her ürün grubuna bir numara


verilerek birbirlerine karışmaları engellenmiştir. Ayrıca Ürünler
tablosundaki Reyon No alanı Reyonlar tablosundaki Reyon No
ile ilişkilidir.
32

3.3. İlişkisel Model Örneği (devam…)


• Burada her ürün grubuna bir numara verilerek sistematik bir
şekilde düzenlenmesi sağlanmıştır.

• Daha sonra Reyonlar ve Ürünler arasındaki ilişki kullanılarak


ürün bilgilerine erişim sağlanmıştır.

• Burada ayrıca ürün adına bakılarak, ürünün hangi reyonda yer


aldığı hemen tespit edilmektedir.
√ Örneğin; “Elma” ürünü “23” numaralı reyonda yer almaktadır.
√ 23 numaralı reyonda çalışan personelin ise “Fatih Yücalar” olduğu
aradaki ilişkilere bakılarak tespit edilebilmektedir.
33

3.3. İlişkisel Model Örneği (devam…)


• SQL Server’ da bu tablolar arasındaki ilişki aşağıdaki gibi
olacaktır.
34

3.4. İlişkisel Cebir


• İlişkisel cebir, bir ilişkisel sorgulama dilidir. Bu ifadeler
yardımı ile birçok sorgulama işlemi kodlama aşamasına
geçmeden önce tanımlanabilmektedir.

• Örneğin, belirli kayıtların seçilmesi, belirli sütunların


sorgulama sonucunda elde edilmesi gibi daha birçok işlem
ilişkisel cebir ifadeleri kullanılarak kolayca ortaya
konabilmektedir.

• İlişkisel cebir, bir veya iki ilişkiyi girdi olarak alıp, sonuçta
yeni bir ilişki üreten bir dizi işlemden oluşmaktadır. Ayrıca
ilişkisel cebir bir veritabanı sorgulama dilidir.
35

3.4. İlişkisel Cebir (devam…)


• İlişkisel cebir bir sorgulama dilidir fakat bu sorgulamalar
sadece biçimsel olarak yapılmaktadır.

• Yani sorgulama işleminin yapılması için bir yorumlayıcı yada


derleyiciye ihtiyaç yoktur. Bu bakımdan ele alındığında SQL’
den farklıdır.

• Burada yazılan cebir ifadeleri daha sonraki aşamada bir sorgu


dili ile (örneğin SQL) komutlara dönüştürülmektedir.
35

3.4. İlişkisel Cebir (devam…)


• Aşağıda 3 tablodan oluşan bir veritabanı verilmiştir.
• Öğrenci(ogr no, ogr_adi, bolum)
• Ders(ders id, ders_adi)
• Notlar(ogr no, ders id, sinav1, sinav2)
• Burada, öğrenci tablosu öğrenci bilgilerini tutar ve birincil
anahtar sütun ogr_no sütunudur. Ders tablosu öğrencilerin
alabileceği dersleri tutar ve birincil anahtar sütun dersid
sütunudur. Notlar tablosu öğrencilerin derslerden almış olduğu
notları tutar ve birincil anahtar diğer iki tablosunun birincil
anahtarlarının birleşiminden oluşur.
35

3.4. İlişkisel Cebir (devam…)


• Bu veritabanı için ilişkisel cebirde yazılan sorgularla aşağıdaki
bilgiler elde edilebilir.
• Matematik dersini alan öğrencilerin isim, no ve bölüm bilgileri
bulunabilir.
• Matematik veya Fizik dersini alan öğrencilerin isim, no ve
bölüm bilgileri bulunabilir.
• Matematik ve Fizik dersini alan öğrencilerin isim, no ve bölüm
bilgileri bulunabilir.
• Matematik dersini alan veya bilgisayar bölümünde olan
öğrencilerin isim ve no bilgileri bulunabilir.
• Sınav1 ve sinav2 notunun ortalamasına göre Matematik ve
Fizik dersinden kalan öğrencilerin bilgileri bulunabilir.
36

3.4. İlişkisel Cebir (devam…)


• Bir ilişkisel veritabanında kullanılan temel ilişkisel cebir
ifadeleri şunlardır.

✓ Seçme (select) işlemi


✓ Projeksiyon / Atma (project) işlemi
✓ Kartezyen çarpım (cartesian product) işlemi
✓ Birleştirme (join) işlemi
✓ Kesiştirme (intersect) işlemi
✓ Fark (difference) işlemi
37

3.4.1. Seçme İşlemi


• Belirli bir ilişkiden bazı kayıtların seçilerek ortaya konulması
işlemidir. işareti ile gösterilmektedir. Seçme işlemi şu şeklide
tanımlanmaktadır.

Seçim Kriteri (TABLO)


• Seçim işleminde karşılaştırma işleçleri olan =, >, <, ≠, ≤, ≥
ifadeleri de kullanılmaktadır. Ayrıca mantıksal operatörler olan
“ve” için ^, “veya” için v işaretleri de kullanılmaktadır.
38

3.4.1. Seçme İşlemi (devam…)


• Örnek: Müşteri tablosu aşağıda verilmiştir. Bu tabloyu
kullanarak ilçesi “Maltepe” olan müşterileri listeleyiniz.

Müşteri No Adı İl İlçe Bakiye


25 Fatih İstanbul Maltepe 1250
55 Erdal İstanbul Beşiktaş 3524
32 Şenol Ankara Kızılay 2642

 İlçe="Maltepe" (MÜŞTERİ )
37

3.4.1. Seçme İşlemi - Örnek


37

3.4.1. Seçme İşlemi - Örnek

Aşağıda verilen sınıf tablosu için bina Watson olan ve kapasitesi


25'den fazla olan sınıfları ilişkisel cebir ifadesiyle bulalım.
(Silberschatz Univesity Database)
37

3.4.1. Seçme İşlemi - Örnek

Aşağıda verilen sınıf tablosu için bina Watson olan ve kapasitesi


25'den fazla olan sınıfları ilişkisel cebir ifadesiyle bulalım.
(Silberschatz Univesity Database)
39

3.4.2. Projeksiyon / Atma İşlemi


• Belirli bir ilişkiden sadece bazı sütunları atmak için yapılan bir
işlemdir. Bu işlem  sembolü ile gösterilmektedir. Atma işlemi
aşağıdaki şekilde tanımlanmaktadır.

 Sütun İsimleri
(TABLO)

• Yine burada da mantıksal operatörler ve karşılaştırma işlemleri


kullanılabilmektedir.
40

3.4.2. Projeksiyon / Atma İşlemi (devam…)

• Örnek:Müşteri tablosunda müşteri adı ve bakiye bilgilerini


listeleyiniz.

• Müşteri tablosunda bakiyesi 2000 den büyük olan müşterilerin


adı ve şehir bilgisi nedir?
40

3.4.2. Projeksiyon / Atma İşlemi (devam…)

• Aşağıda verilen tablo için Watson binasında olup zaman slotu A


veya D olan kursların idlerini listeleriniz.

https://dbis-uibk.github.io/relax/landing
40

3.4.2. Projeksiyon / Atma İşlemi (devam…)

• Aşağıda verilen tablo için Watson binasında olup zaman slotu A


veya D olan kursların idlerini listeleriniz.
41

3.4.3. Kartezyen Çarpım İşlemi


• Belirli bir ilişkiden mümkün olabilecek tüm ilişki çiftlerinin
elde edilmesi ve tek bir ilişki biçiminde gösterilmesi için
kartezyen çarpım kullanılmaktadır. Kartezyen çarpım X
sembolü ile gösterilmektedir. Kartezyen çarpımın genel
kullanım biçimi şöyledir.

TABLO1 X TABLO2
42

3.4.3. Kartezyen Çarpım İşlemi (devam…)


• Örnek: Aşağıda verilen Öğrenci ve Dersler tablolarını göz
önüne alarak Bilgisayar bölümünde okuyan ve tüm dersleri
alan öğrencileri listeleyen ilişkisel cebir ifadesi nedir?

Öğrenci Bölüm Ders Kredi


Fatih Yücalar Yazılım Veritabanı ve Yönetimi 3
Erdal Güvenoğlu Bilgisayar Matematik 4
Erdoğan Aydın Elektronik
Raif Onvural Bilgisayar

Bölüm="Bilgisayar " (ÖĞRENCİ X DERSLER)


43

3.4.3. Kartezyen Çarpım İşlemi (devam…)

• Sonuç olarak elde edilecek olan kartezyen çarpım tablosu


aşağıdaki gibi olacaktır.

Öğrenci Bölüm Ders Kredi


Erdal Güvenoğlu Bilgisayar Veritabanı ve Yönetimi 3
Erdal Güvenoğlu Bilgisayar Matematik 4
Raif Onvural Bilgisayar Veritabanı ve Yönetimi 3
Raif Onvural Bilgisayar Matematik 4
43

3.4.3. Kartezyen Çarpım İşlemi (devam…)

• Ankara’da bulunan markaları ve tüm ürünleri listeleyen ilişkisel


cebir
43

3.4.3. Kartezyen Çarpım İşlemi (devam…)

• Ankara’da bulunan markaları ve tüm ürünleri listeleyen ilişkisel


cebir
44

3.4.4. Birleştirme İşlemi


• Kurulan iki ilişkiden birinde veya her ikisinde birden bulunan
kayıtların seçilmesi için yapılan bir işlem türüdür. Bu işlem U
simgesi ile gösterilmektedir.
45

3.4.4. Birleştirme İşlemi (devam…)


• Örnek: Aşağıda verilen Kredi ve Mevduat tablolarını göz
önüne alarak, bankanın Maltepe şubesinde mevduat ve/veya
kredi hesabı bulunan müşterilerin isimlerini listeleyiniz?

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

 Kredi.Müşteri
( İlçe="Maltepe" (KREDİ )) 

 Mevduat.Müşteri
( İlçe="Maltepe" (MEVDUAT ))
46

3.4.4. Birleştirme İşlemi (devam…)


• Bu sorgu neticesinde elde edilen sonuç aşağıdaki gibi olacaktır.

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

Müşteri
Fatih
Erdoğan
46

3.4.4. Birleştirme İşlemi (devam…)


46

3.4.4. Birleştirme İşlemi (devam…)


Depo1 ve depo2 tabloları için depo1’de fiyatı 400 ve üzeri olan ürünler ile depo2 de
fiyatı 500 ve üzerinde olan ürünlerin adlarını listeleyiniz
47

3.4.5. Kesişme İşlemi


• Belirlenen iki ilişkiden birinde bulanan kayıtların belirlenmesi
için kullanılan bir işlemdir. Bu işlem ∩ simgesi ile
gösterilmektedir. Genel gösterimi aşağıdaki gibidir.
48

3.4.5. Kesişme İşlemi (devam…)


• Örnek: Aşağıda verilen Kredi ve Mevduat tablolarını göz
önüne alarak, bankanın Maltepe şubesinde hem mevduat hem
de kredi hesabı bulunan müşterilerin isimlerini listeleyiniz?

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

 Kredi.Müşteri
( İlçe="Maltepe" (KREDİ )) 

 Mevduat.Müşteri
( İlçe="Maltepe" (MEVDUAT ))
49

3.4.5. Kesişme İşlemi (devam…)


• Bu sorgu neticesinde elde edilen sonuç aşağıdaki gibi olacaktır.

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

Müşteri
Fatih
49

3.4.5. Kesişme İşlemi (devam…)


• Bu sorgu neticesinde elde edilen sonuç aşağıdaki gibi olacaktır.
50

3.4.6. Fark İşlemi


• Verilen iki ilişkide birinde bulunup diğerinde bulunmayan
kayıtların gösterilmesi için kullanılan bir işlemdir. ( - ) işareti
ile gösterilmektedir.
51

3.4.6. Fark İşlemi (devam…)


• Örnek: Aşağıda verilen Kredi ve Mevduat tablolarını göz
önüne alarak, bankanın Konak şubesinde mevduat hesabı olup
kredi hesabı olmayan müşterilerin isimlerini listeleyiniz?

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

 Mevduat.Müşteri
( İlçe="Konak " (MEVDUAT )) −

 Kredi.Müşteri
( İlçe="Konak " (KREDİ ))
52

3.4.6. Fark İşlemi (devam…)


• Bu sorgu neticesinde elde edilen sonuç aşağıdaki gibi olacaktır.

Müşteri Bakiye İlçe Müşteri Bakiye İlçe


Erdal 1500 Kartal Fatih 1500 Maltepe
Fatih 1750 Maltepe Erdal 1750 Kartal
Erdoğan 2000 Maltepe
Raif 1600 Konak

Müşteri
Raif
52

3.4.6. Fark İşlemi (devam…)


• Depo1 de bulunup depo2’de bulunmayan ürünler
50

3.4.7. Bölme İşlemi


• Elde edilen iki ilişkiyi karşılaştırarak, birinci ilişkide ikinci
ilişkinin tüm elemanlarını kapsayan satırları bulmak için kullanılır.
• Örneğin, ürün ve satış bilgilerinin tutulduğu iki tablo için satış
tablosundaki müşterilerden tüm ürünlerden de alanı bulmak için
kullanılabilir veya öğrenci ve ders tablosu için tüm dersleri alan
öğrencileri bulmak için kullanılabilir.
• Bölme : sembolü ile gösterilir ve aşağıdaki şekilde kullanılır.
• Tablo1 :Tablo2
• Bu ifadenin anlamı, Tablo1'de Tablo2'deki tüm satırları kapsayan
satırları bulmak için kullanılır.
50

3.4.7. Bölme İşlemi


• Personel tablosunda yaş tablosundaki satırların tamamını
kapsayan satırları bulmak için
50

3.4.7. Bölme İşlemi


• Aşağıda satış ve ürün tabloları verilmiştir. Tüm ürünlerden satın
alan carileri bulunuz.
50

3.4.8. Birleştirme Join


• Ortak sütunlara sahip ilişkilerin
birleştirilerek tek bir ilişkiye
dönüştürülmesine birleştirme denilir.
Birleştirilecek ilişkilerin ortak sütunlara
sahip olması gerekir. Tablolarda
kullanılan ortak anahtar sütunlar
birleştirmenin temelini oluşturmaktadır.
• Örneğin, öğrenciler tablosunda bulunan
bölüm kodu yabancı anahtar, bölüm
tablosunda bulunan bölüm kodu da
birincil anahtar olarak tanımlanan iki
tablo için doğal birleştirme yapılarak
öğrencilerin bölüm isimleri bulunabilir.
50

3.4.8.1 Şartlı Birleştirme(Condition Join)


• Şartlı birleştirmede, birleştirilen ilişkiler arasındaki ortak sütunlar
için koşul ifadesi belirtilir.
• Elde edilen sonuç ilişkisi Kartezyen çarpıma benzer ama koşul
ifadesinden dolayı Kartezyen çarpımdan daha az satır içerir.
50

3.4.8.1 Şartlı Birleştirme(Condition Join)


50

3.4.8.2 Eşit Birleştirme (Equal join)


• Eşit birleştirmede, birleştirilen ilişkiler arasındaki ortak sütunlar için
eşitlik ifadesi belirtilir. Elde edilen sonuç ilişkisi Kartezyen çarpıma
benzer ama ortak sütunlardan sadece bir tanesi vardır.
50

3.4.8.3 Doğal Birleştirme (Natural join)


• Doğal birleştirmede, birleştirilen ilişkiler arasında herhangi bir koşul
ifadesi yazmaya gerek yoktur. Ortak sütunlar otomatik birleştirilir ve
tek bir sütun olarak gösterilir. Ortak sütun sayısı bir tane ise eşit
birleştirmeyle aynı sonucu verecektir. Doğal birleştirme sayesinde
diğer birleştirmelerde olan satır tekrarı olmayacaktır.
50

3.4.8.3 Doğal Birleştirme (Natural join)


50

3.4.8.4 Dışşal Birleştirme (Outer join)


• Normal birleştirme işlemlerinde ilişkili olmayan satırlar
gösterilmemektedir. Outer join de ise ilişkili olmayan satırlarda
gösterilecektir ama ilişkisi olmayan satırlar için NULL değer
içerecektir.
• Üç tür outer join vardır. Bunlar,
• left outer join,
• right outer join
• full outer join.
50

3.4.8.4.1 Sol Birleştirme (Left Outer Join)


• Bu tür birleştirme kullanıldığında birleştirme sembolünün solundaki
ilişki belirleyicidir ve bunun diğer ilişkiyle bir ilişkisi bulunsun veya
bulunmasın tüm satırları listelenecektir.
• Sağındaki ilişkide sadece ilişkili satırlar listelenecektir. Eğer ilişki
bulunmuyor ise NULL değeri içerecektir.
50

3.4.8.4.1 Sol Birleştirme (Left Outer Join)


50

3.4.8.4.2 Sağ Birleştirme (Right Outer Join)


• Bu tür birleştirme kullanıldığında birleştirme sembolünün sağındaki
ilişki belirleyicidir ve bunun diğer ilişkiyle bir ilişkisi bulunsun veya
bulunmasın tüm satırları listelenecektir. Solundaki ilişkide ise sadece
ilişkili satırlar listelenecektir. Eğer bir ilişki bulunmuyorsa NULL
değer içerecektir.
50

3.4.8.4.3 Tam Birleştirme (Full Outer Join)


• Left Outer Join ve Right Outer Join işleminin birleşim kümesidir.
Yani her iki ilişkideki tüm satırlar listelenecek ve ilişkisi olmayanlar
NULL değer içerecektir.
50

3.4.8.4.4 Yarı Birleştirme (Semi Join)


• Semi-Join doğal birleştirmeye benzer şekilde çalışır. Farklı olarak
sadece belirtilen ilişkilerden bir tanesinin sütun bilgilerini içerir,
diğer ilişkinin sütun bilgilerini içermez.
50

3.4.8.4.5 Anti Join


• Anti-join, semi-join gibi ilişkilerden birinde bulunan sütunları
gösterir ama işlev olarak tam tersidir. İki ilişki arasında bağ
bulunmayan satırları belirlemek için kullanılır.
50

3.4.9 Yeniden Adlandırma (Renaming)


• Yeniden adlandırma, ilişkiler veya ilişkilerin içerdiği sütunlara takma
isim vermek için kullanılır. Birleştirme veya kartezyen çarpım
sonucu elde edilen aynı isimli sütunların isimleri karışıklığı önlemek
için değiştirilebilir veya ilişkisel cebir sonucu elde edilen tabloya
isim verilebilir.
50

3.4.9 Yeniden Adlandırma (Renaming)


50

3.4.9 Yeniden Adlandırma (Renaming)


Sno İsim Yönetici
• Örnek: Aşağıda personel tablosu verilmiştir.1 Turgut NULL
2 Ahmet 3
• Tablonun özelliği personel bilgisinin 3 Murat 1
• yanı sıra 4 Ayşe 3
• yönetici bilgisini de tutmaktadır. 5 Elif 1

• Bir personel başka bir personelin yöneticisi olabilir.


• Hem personel hem de yönetici bilgisi aynı tabloda tutulduğu için
tabloların farklı isimlerle birleştirilerek seçme işlemi yapılmalıdır.
Örneğin, Ayşe'nin yöneticisi Ahmet. Ayşe'nin yöneticisinin yöneticisi
Turgut.
• Bu bilgiler doğrultusunda aşağıdaki soruların ilişkisel cebir ile
çözümünü bulalım.
• Ayşe isimli personelin yöneticisinin ismini bulmak için gerekli
ilişkisel cebir ifadesini yazınız.
50

3.4.9 Yeniden Adlandırma (Renaming)


• Personel tablosu çalışan ve yönetici olmak üzere iki kez
isimlendirilmiştir. Yani, bir tablo iki farklı tablo gibi kullanılmıştır. Her
iki tabloda da aynı satırlar mevcuttur.
50

3.4.10 Özetleme ve Gruplama


• Özetleme işlemi bir tablo içeriğinin istenilen bir sütuna göre
hesaplamalar yapılmasını içerir. Örneğin, personel tablosu için
toplam personel sayısı, personellerin ortalama maaşlarının
hesaplanması gibi işlemler özetleme olarak ifade edilir.
• Gruplama da özetlemeye çok benzer ama aralarında fark vardır.
Gruplama, bir tablonun içeriğini istenilen bir sütun içeriğine göre
gruplandırarak her bir grup için hesaplamalar yapılmasını sağlar.
Örneğin, personel tablosu için her bir yöneticinin sorumlu olduğu
personel sayısının bulunması, A departmanında çalışan personellerin
ortalama maaşları gibi işlemler de gruplandırarak özetleme olarak
ifade edilir.
• Bu tür hesaplamalarda kullanılan ve çoğu veritabanı tarafından
desteklenen en temel 5 fonksiyon vardır. Bunlar; SUM, COUNT,
AVERAGE, MAX ve MIN fonksiyonlarıdır.
50

3.4.10 Özetleme ve Gruplama


• Kullanım şekli
• [Gruplandırılacak Sütun]  [fonksiyon adı] [Sütun adı]
• [Gruplandırılacak Sütun] parametresi, özetleme işlemi
gruplandırılarak yapılacak ise kullanılır. Sadece özetleme işlemi
için bu parametrenin kullanımına gerek yoktur.
• [fonksiyon adı] yapılan gruplandırma işlemi için fonksiyonu
belirler (SUM,COUNT vb)
58

Kaynaklar
• Veritabanı Yönetim Sistemleri, Turgut Özseven
• http://www.ortogon.com.tr/video/db/
• http://www.pau.edu.tr/ali/tr
• http://tr.wikipedia.org/wiki/Veritaban%C4%B1
• https://harunkolyigit.wordpress.com/2013/03/14/veritabani/
• http://botelabs.blogspot.com.tr/2014/02/geleneksel-dosyalama-
sistemleri.html
• Maltepe Ün, YZM 307 - Veritabanı Yönetim Sistemleri ders
notları
• https://www.slideshare.net/shashanksingh161/relational-
algebra-47310566?from_action=save

You might also like