VTYS - Hf4 - Iliskisel Veri Modeli

VTYS
İlişkisel Veri Modeli
YRD.DOÇ.DR.M.BETÜL YILMAZ
İlişkisel Veri Modelinde İlişki Kavramı
 Bu modelde “İlişki (relation) kavramı” matematiksel
bir kavramdır.

Daha önce gördüğümüz “Varlık-İlişki” modelindeki ilişkiden
farklıdır.
 Aslında bu modeldeki ilişki, Varlık-İlişki modelindeki
"varlıkların + ilişkilerin" yerini tutar.
Tablolar ile Gösterim
 İlişki şeması, ilişkinin adı ile niteliklerini gösteren
R(A1, A2, ...., Ak) biçimindeki bir tanımdır.
 R ilişki şemasına göre gerçekleşen her r ilişkisi (ya
da ilişki olgusu), yukarıdaki tanıma uygun olarak
oluşmuş k-çoklular kümesi ya da bir tablodur.
 Veri tabanı ilişkisi ile matematiksel ilişki arasındaki
başlıca fark;

veri tabanı ilişkisinin kullanıldığı ortama ve zamana göre
değişmesine karşın matematiksel ilişkinin evrensel olması,
ortama ve zamana göre değişmemesidir.
Temel İlişki Yapısı
 Matematiksel ilişki kavramı aşağıdaki gibi
tanımlanır:
Her biri birer değerler kümesi olan D1, D2, ... , Dk etki
alanları (domains) göz önüne alınsın.
 Bu alanların kartezyen çarpımı D1 x D2 x ... x Dk ile
gösterilir ve 1. elemanı D1 alanından, 2. elemanı D2
alanından, .. , k. elemanı ise Dk alanından alınan [d1, d2, ...
, dk] k-çoklular kümesidir.
 Bu k adet alan üzerinde tanımlanan her r ilişkisi, bu
alanların kartezyen çarpımının bir altkümesidir:
r  D1 x D2 x ... x Dk

Örnek
 D1 = {a, b, c}
D2 ={1, 2, 3} D3 = {x, y} olsun. Bu üç
alanın kartezyen çarpımı 3x3x2 = 18 adet 3-çokludan
oluşan bir kümedir.
D1 x D2 x D3 = { [a,1,x], [a,2,x], [a,3,x], [a,1,y], [a,2,y], [a,3,y], [b,1,x],
[b,2,x], [b,3,x], [b,1,y], [b,2,y], [b,3,y], [c,1,x], [c,2,x], [c,3,x], [c,1,y],
[c,2,y], [c,3,y] }
Örnek
 Eğer A, B, C niteliklerinin değer alanı sırasıyla D1, D2
ve D3 ise, bu üç değer alanı üzerinde tanımlı, şeması
R(A, B, C) olan bir r ilişkisi örneğin aşağıdaki gibi
olabilir.

r = {[a,2,x], [a,2,y], [a,3,y], [b,1,x], [c,1,y], [c,3,x]}
Kavramlar
 İlişki (≠ E-R’deki değil!)
 Çizelge
Aynı Kavramlar!
 Tablo
 İlişki  Matematiksel ifadesi (akademik dil)
 Çizelge  Kullanıcıların kullandığı (gündelik dil)
 Tablo = çizelge
 Matematiksel ilişki yapısı, özde hiçbir değişiklik
yapmadan, kullanıcının alışık olduğu ve görsel bir
yapı olan tablo yapısı olarak sunulur.
Tablolar ile Gösterim
 Tablo, niteliklerin değer alanlarının kartezyen
çarpımının bir altkümesidir.
 Böylece modeli sağlam bir matematiksel temele
oturtarak gerek tasarım kriterlerinde, gerekse
kullanıcı dillerinde bu kuramdan yararlanır.
 Her ilişkinin (tablonun) tekil bir adı vardır.
Örnek
 D1 x D2 x D3 = { [a,1,x], [a,2,x], [a,3,x], [a,1,y], [a,2,y], [a,3,y],
[b,1,x], [b,2,x], [b,3,x], [b,1,y], [b,2,y], [b,3,y], [c,1,x], [c,2,x], [c,3,x],
[c,1,y], [c,2,y], [c,3,y] }
 r = {[a,2,x], [a,2,y], [a,3,y], [b,1,x], [c,1,y], [c,3,x]}
Nitelik İsimleri
Değer Alanları
(Kayıtlar / Çoklular)
A
B
C
a
2
x
a
2
y
a
3
y
b
1
x
c
1
y
c
3
x
Tablolar ile Gösterim
 Her İlişki iki boyutlu bir tablo olarak gösterilir.
 Tablonun her sütununa bir nitelik atanır.
 Tablonun her satırı ise bir kaydı gösterir.
 1. elemanı 1. niteliğin değer alanından, 2. elemanı 2. niteliğin
değer alanından, .. , k. elemanı ise k. niteliğin değer alanından
alınan ve k değerden oluşan bir çoklu değerler topluluğu kayıt
olarak adlandırılır.
İlişkinin (tablonun) Özellikleri
Satırların (kayıtların) sırası önemsizdir.
Tüm satırların birbirinden farklı olması gerekir
(ilişki bir satırlar kümesi olduğuna göre aynı satır
ilişkide birden çok kez yer alamaz).
3. Tüm satırlar birbirinden farklı olduğuna göre
ilişkinin en az bir anahtarı vardır.
En kötü olasılıkla, tüm niteliklerin birleşimi
anahtarı oluşturur.
4. İlişkinin her sütunu bir niteliğe karşı geldiğine ve
sütun başlığında niteliğin adı yer aldığına göre,
sütunların sırası da önemsizdir.
1.
2.
İlişkinin (tablonun) Özellikleri
Bir sütünda yer alan tüm değerler, belirli bir
değer alanından gelen değerler olup tümünün
türü aynıdır.
6. Tabloda yer alan her değer bir sayı, bir ad, bir
miktar, bir tutar, bir adres, bir tarih,.. vb gibi
yalın değerler olabilir. Tablonun bir öğesi bir dizi,
bir vektör, bir başka tablo ya da karmaşık bir
değer olamaz. Başka bir deyişle tablonun
nitelikleri yalın ve tek değerli niteliklerdir.
5.
İlişki Şeması
 İlişkinin adı ile ilişki niteliklerinin adlarından oluşan
tanım deyimine ilişki şeması denir.
 İlişki şemasının özet gösterimi R(N1, N2, .... , Nk)
biçimindeki tanımdır (ayrıntılı ilişki şemasında ise
niteliklerin değer alanları, veri türleri, bütünlük
kısıtlamaları gibi ileride görülecek tanımlar da yer
alır).
 İlişki şemasında genellikle, ilgili niteliklerin altı
çizilerek, ilişki anahtarı gösterilir.
İlişkisel Veri Tabanı Şeması
 Eğer ilişkinin birden çok anahtarı varsa bunlardan
en çok kullanılanı, en anlamlısı seçilir ve ilişki
şemasında bu anahtar gösterilir.
 Belirli bir kuruluşa/konuya ilişkin verilerin mantıksal
düzeyde düzenlenmesini gösteren ve kendi
aralarında anlamlı bir bütün oluşturan ilişki
şemalarının bütününe, ilişkisel veri tabanı şeması
adı verilir.
 Şemada varlık kümeleri BÜYÜK harflerle, nitelikler
ise Küçük harflerle gösterilir.
İlişki Şeması Örneği
 ÖĞRENCİ (Öğrno, Adı, Soyadı, Cns, Doğ-tar, Öğr-bno)
 BÖLÜM (Bno, Badı, Fakülte)
 DERS (Dkodu, Dadı, Krd, Aç-bno)
 ÖĞRDERS (Öğrno, Dkodu, Dönemi, Notu)
Veri Tabanı Örneği
 Veri tabanlarında sürekli olarak veri ekleme, silme,
güncelleme işlemleri yapılmaktadır.
 Bu işlemler neticesinde veri tabanı sürekli değişime
uğrar.
 Veri tabanının herhangi bir andaki durumu çok
önemlidir ve buna veri tabanı örneği (database
instance) adı verilir.
Veri Tabanı Örneği (DB instance)
Birincil Anahtar
 İlişkisel veri tabanında bir tablonun benzer değerler
içermeyen (tekil : unique) bir sütunu ya da birkaç
sütunu birlikte birincil anahtar (primary key - PK)
olarak tanımlanabilir.
 Birincil anahtar bir aday anahtardır ve söz konusu
varlığın kayıtlarını en iyi biçimde karakterize eden
bir anahtardır.
 Birincil anahtar tanımlandığında bir sınırlama
konulmuş olacaktır:

Birincil anahtar NULL (boş) değerleri veya birbirinin aynı
değerleri içeremez.
Dış (Haricî) Anahtar
 Bir dış anahtar (foreign key - FK) bir sütun veya
çok sayıdaki sütunların birleşiminden oluşur.
 Dış anahtar aynı tablo ya da başka bir tablodaki
bir birincil anahtar ile eşleştirilir.
PK - FK
 Tablodaki her bir kayıt birincil anahtar (PK) yardımıyla
diğerlerinden ayırt edilir.
 Çoklu tablolar harici anahtarlar (FK) yoluyla
birbirleriyle ilişkilendirilir.
PK
FK
PK
No
Adı
BölümNo
BölümNo BölümAdı
25
Burak
10
10
Personel
13
Begüm 10
20
Muhasebe
28
Dilay
30
Satış
20
Varlık-İlişki Çizelgelerinin Tablolara Dönüştürülmesi
 Varlık-ilişki modeli kullanılarak veri modelleme
yapıldığında, eğer veri tabanını gerçekleştirmek için
ilişkisel bir VTYS kullanılacaksa,
oluşturulan varlık-ilişki çizelgesinin ilişki şemalarına
dönüştürülmesi gerekir.
 Bu amaçla varlık-ilişki modelindeki her farklı
kavramın (varlık kümesi, nitelik, ilişki kümesi, ilişki
kümesinin tanımlayıcı niteliği, güçlü ve zayıf varlık
kümeleri, var olma bağımlılığı, genelleme,
kümeleme, ..vb) ilişkisel modelde nasıl
gösterileceğinin bilinmesi gerekir.
Varlık Kümelerinin Dönüştürülmesi
 Varlık-ilişki modelindeki her varlık kümesi için ilişkisel
modelde bir ilişki şeması oluşturulur.
 İlişkinin nitelikleri olarak da varlık kümesinin
nitelikleri kullanılır.
Örnek
DKODU
ADI
SOYADI
CİNSİYETi
DERS
ÖĞRNO
ÖĞRENCİ
DOĞTAR
DERSADI
ÖĞRENCİ (Öğrno, Adı, Soyadı, Cinsiyeti, Doğtar)
 DERS (Dkodu, Dersadı, Kredisi)

KREDİSİ
Varlık Kümelerinin Dönüştürülmesi
 Varlık kümesi  Güçlü bir varlık kümesi ise,

ilişki nitelikleri olarak varlık kümesi özelliklerinin
kullanılması yeterlidir.
 Varlık kümesi  Zayıf bir varlık kümesi ise,
ilişki nitelikleri olarak zayıf varlık kümesinin niteliklerinin
kullanılması yeterli değildir.
 Çünkü bu durumda anahtar yoktur ve anahtarı
bulunmayan bir ilişki olamaz.

Varlık Kümelerinin Dönüştürülmesi
 Çözüm
 Zayıf bir varlık kümesine karşı gelen ilişki şeması
oluşturulurken, ilişki nitelikleri olarak zayıf varlık
kümesinin niteliklerine ek olarak, bu varlık kümesinin var
olma bağımlı olduğu güçlü varlık kümesinin anahtarında
yer alan nitelikler de kullanılır.
Örnek
ADI
ÖĞRNO
LİSENO
SOYADI
ÖĞRENCİ
OKUDUĞU
LİSE
LİSEADI
KENT
 Güçlü LİSE varlık kümesi ile zayıf ÖĞRENCİ varlık
kümelerine için;
LİSE (Liseno, Liseadı, Kent)
 ÖĞRENCİ (Liseno, Öğrno, Adı, Soyadı)

İlişki Kümelerinin Dönüştürülmesi
 Genel olarak varlık-ilişki modelindeki her ilişki
kümesi, ilişkisel modelde bir ilişki şemasına
dönüştürülür.
 Ancak kimi ilişki kümeleri için ilişkisel modelde ayrı
bir ilişki şeması oluşturmaya gerek yoktur.
 Bunun yerine varlık kümesi için oluşturulan ilişki
şemalarından birine, diğer varlık kümesinin
anahtarında yer alan nitelikleri eklemek yeterlidir.
İkili Birden-Bire İlişki Kümelerinin Dönüştürülmesi
 Eğer bir ikili ilişki kümesinin türü birden-bire (ilişki
her iki yönde de işlevsel) ise ilişkisel modelde bu ilişki
kümesini göstermek için de ayrı bir şema
oluşturmaya gerek yoktur.
 Örneğin BÖLÜM ve PERSONEL varlık kümeleri
arasındaki BBAŞKANI (bölüm başkanı) ilişkisini
düşünelim.
Örnek
 Eğer her bölümün bir başkanı olabiliyorsa; bir
personel de en çok bir bölümün başkanı
olabiliyorsa, her iki yönde de işlevsel olan bu
ilişkinin türü bire-birdir.
Örnek
 Bire-bir varlık kümelerini ilişkisel modelde göstermek
için, varlık kümelerinden birinin anahtarını, varsa
ilişkinin tanımlayıcı nitelikleri ile birlikte, diğer varlık
kümesine karşı gelen şemaya eklemek yeterlidir.
 Bunun için de olası iki seçenekten biri seçilir.
İlişkilerin anlamlarına ve kullanım ortamına göre bu
seçeneklerden biri daha uygun olabilir.
Örnek
 1. seçenek:
 BÖLÜM (Bno, Badı)
 PERSONEL (Pno, Adı, Soyadı, Doğtar, Ybno, Gbaştar)
 Burada YBNO personelin (bölüm başkanının)
yönettiği bölümün numarasıdır.
Örnek
 2. seçenek:
 BÖLÜM (Bno, Badı, Bbpno, Gbaştar)
 PERSONEL (Pno, Adı, Soyadı, Doğtar)
 Burada BBPNO bölüm başkanı personel
numarasıdır. (Bu örnek için bu seçenek daha
uygun bir çözüm olarak görülmektedir.) Neden???
İkili Birden-Çoğa İlişki Kümelerinin Dönüştürülmesi
 Eğer bir ikili ilişki kümesinin türü birden-çoğa ya da
çoktan-bire (ilişki bir yönde işlevsel) ise ilişkisel
modelde bu ilişki kümesi için ayrı bir şema
oluşturmaya gerek yoktur.
 Örneğin BÖLÜM ve PERSONEL varlık kümeleri
arasındaki ÇALIŞAN ilişkisini düşünelim.
Örnek
 Eğer her personel yalnız bir bölümde çalışıyorsa, bu
ilişkinin türü BÖLÜM'den PERSONEL'e birden-çoğadır.
Yani ilişki PERSONEL'den BÖLÜM'e işlevseldir.
 Bu varlık-ilişki çizelgesi ilişkisel modele dönüştürülürken
BÖLÜM ve PERSONEL varlık kümelerine karşı gelen ve
anahtarları sırasıyla BNO ve PNO olan iki şema
oluşturulur.
Örnek
 Eğer ÇALIŞAN ilişki kümesi için ayrı bir şema
oluşturulursa, bu şema, anahtarı PNO olan ve çalışan her
personel için yalnız bir satırı olan bir şema olacaktır.
 Oysa anahtarı PNO olan ve kurumdaki her personel için
yalnız bir satır içeren PERSONEL şeması zaten vardır.
 Dolayısıyla ÇALIŞAN ilişki kümesini göstermek için ayrı bir
ilişki oluşturmaya gerek yoktur.
Örnek
 Bu ilişki kümesini göstermek için PERSONEL ilişkisine
BÖLÜM varlık kümesinin anahtarı olan BNO ile ilişkinin
tanımlayıcı nitelikleri olan GÖREVİ ve GBAŞTAR eklenir.
 Bu durumda, yukarıdaki çizimdeki PERSONEL ve BÖLÜM
varlık kümeleri ile aralarındaki ÇALIŞAN ilişkisine karşılık,
ilişkisel modelde iki şema oluşturulur.
Örnek
BÖLÜM (Bno, Badı)
PERSONEL (Pno, Adı, Soyadı, Doğtar,
Bno, Görevi, Gbaştar)
 Yukarıdaki ilişki şemalarından ilki varlık-ilişki
çizeneğindeki BÖLÜM varlık kümesine, ikincisi ise hem
PERSONEL varlık kümesine hem de ÇALIŞAN ilişkisine
karşılık gelmektedir.
İkili Çoktan-Çoğa İlişki Kümelerinin Dönüştürülmesi
 Eğer bir ikili ilişki kümesinin türü çoktan-çoğa (ilişki
hiçbir yönde işlevsel değil) ise ilişkisel modelde bu
ilişki kümesi için ayrı bir şema oluşturulur.
 İlişki kümesine karşılık gelen ilişki şemasında, her iki
varlık kümesinin anahtarları ile, varsa ilişki tanımlayıcı
niteliklerine yer verilir.
Örnek
 Örneğin SATTIĞI ilişkisi ilişkisel modelde aşağıda
şeması verilen ilişki ile gösterilir.
MAĞNO
MAĞADI
MAĞAZA
n
MALKODU
SATTIĞI
m
MİKTAR
SATTIĞI (Mağno, Malkodu, Miktar)
MALADI
MAL
İkiden Büyük Dereceli İlişki Kümelerinin Dönüştürülmesi
 Eğer bir ilişki kümesi ikiden çok varlık kümesi arasında
kurulmuşsa (ilişki üçlü, dörtlü,.. bir ilişki ise), ilişkinin diğer
özellikleri (eşleme sınırlamaları, ilişkinin tanımlayıcı
niteliklerinin bulunup bulunmaması, ..vb.) ne olursa olsun,
ilişkisel modelde bu ilişki kümesine karşılık ayrı bir ilişki
şeması oluşturulur.
 Oluşturulan ilişki şemasında, aralarında ilişki kurulan tüm
varlık kümelerinin anahtarlarına ek olarak, varsa ilişkinin
tanımlayıcı niteliklerine yer verilir.
 Bu varlık kümelerinden biri ya da birkaçı zayıf varlık kümesi
ise, bu varlık kümelerinin anahtarlarını bulmak için ilgili
yöntem kullanılır.
Örnek
TARİH
KONSNO
SALON
KONSER
GÖREVİ
KATILIM
ESNO
ESADI
BESTECİ
ESER
ESTÜRÜ
MZSNO
MÜZİSYEN
SOYADI
ADI
 KONSER, ESER ve MÜZİSYEN varlık kümeleri
arasındaki KATILIM adlı üçlü ilişki kümesini
düşünelim.
Örnek
TARİH
KONSNO
SALON
KONSER
GÖREVİ
KATILIM
ESNO
ESADI
BESTECİ
ESER
ESTÜRÜ
MZSNO
MÜZİSYEN
SOYADI
ADI
 Bu ilişki kümesi hangi konserde, hangi eser
çalınırken orkestrada hangi müzisyenlerin yer
aldığını ve görevlerinin ne olduğunu
göstermektedir.
Örnek
TARİH
KONSNO
SALON
KONSER
GÖREVİ
KATILIM
ESNO
ESER
ESADI
BESTECİ
ESTÜRÜ
MZSNO
MÜZİSYEN
ADI
SOYADI
KONSER(Konsno, Tarih, Salon)
ESER(Esno, Esadı, Estürü, Besteci)
MÜZİSYEN(Mzsno, Adı, Soyadı)
KATILIM (Konsno, Esno, Mzsno, Görevi)
Örnek
 Eğer varlık kümeleri arasındaki ikili eşlemelerin
(konser-eser, konser-müzisyen ve eser-müzisyen)
her üçü de çoktan-çoğa ise KATILIM ilişkisinin
anahtarı, görüldüğü gibi üç varlık kümesinin
anahtarlarının birleşiminden oluşur.
Aynı Varlık Kümesi İçindeki İlişki Kümeleri
 Eğer ilişki kümesi iki farklı varlık kümesi arasında
tanımlanmak yerine, aynı varlık kümesi içinde
tanımlanmışsa, bu varlık kümesinin ilişkisel modele
dönüştürülmesinde hiçbir farklılık yoktur.
 İlişki kümesinin türünün birden-bire, birden-çoğa ya
da çoktan-çoğa olmasına göre yukarıda
söylenenlerin tümü geçerlidir.
Aynı Varlık Kümesi İçindeki İlişki Kümeleri
 Ancak aralarında ilişki kurulan varlık kümeleri aynı
olduğu için, bir ilişki şemasında aynı niteliğin farklı
rollerde yer alması söz konusu olabilir.
 Bunun için de, roller de düşünülerek niteliklere uygun
adlar seçilmesi gerekir.
Örnek
 PERSONEL varlık kümesi ve bu varlık kümesi
içindeki birden-çoğa YÖNETİCİ ilişkisi ilişkisel
modelde tek bir şema ile gösterilebilir.
PERSONEL(Sicilno, Adı, Bölümü, Görevi,
Gbaştar, Ysicilno)
SİCİLNO
ADI
BÖLÜMÜ
1
PERSONEL
üst
YÖNETİCİ
n
GBAŞTAR
ast
GÖREVİ
Genellemelerin (ISA) Dönüştürülmesi
HNO
BANKA-HES
ISA
MÜŞADI
MÜŞADR
VADE
VLİ-HES
VSZ-HES
SONİŞLTAR
HTUTAR
VBAŞTAR
FAİZ
MİKTAR
 1. Çözüm
BANKA_HES(Hno, Müşadı, Müşadr)
VSZ_HES(Hno, Sonişltar, Htutar)
VLİ_HES(H_no, Vade, Vbaştar, Miktar, Faiz)
Genellemelerin (ISA) Dönüştürülmesi
HNO
BANKA-HES
ISA
MÜŞADI
MÜŞADR
VADE
VLİ-HES
VSZ-HES
SONİŞLTAR
HTUTAR
VBAŞTAR
FAİZ
MİKTAR
 2. Çözüm
VSZ_HES(Hno, Müşadı, Müşadr, Sonişltar, Htutar)
VLİ_HES(H_no, Müşadı, Müşadr, Vade, Vbaştar, ;
Miktar, Faiz)
Kümelemelerin Dönüştürülmesi
ÇNO
ADI
PNO
SOYADI
ÇALIŞAN
ÇALIŞTIĞI
PADI
PBÜTÇE
PROJE
n
KULLANDIĞI
SÜRE
m
MAKİNE
MNO
MADI
MTÜRÜ
YERİ
 İlişki bir varlık kümesi yerine bir kümelemeye
bağlanıyorsa  kümelemenin anahtarı kullanılır.
Kümelemelerin Dönüştürülmesi
ÇNO
ADI
PNO
SOYADI
ÇALIŞAN
ÇALIŞTIĞI
PADI
PROJE
n
KULLANDIĞI
Süre
m
MAKİNE
MNO
MADI
ÇALIŞAN(Çno, Adı, Soyadı)
PROJE(Pno, Padı, PBütçe)
ÇALIŞTIĞI(Çno, Pno)
MAKİNE(Mno, Madı, Mtürü, Yeri)
KULLANDIĞI(Çno, Pno, Mno, Süre)
MTÜRÜ
YERİ
PBÜTÇE
Kaynaklar
 Veri Tabanları Sistemleri, Ünal Yarımağan.
 Ders notları, Filiz Eyüboğlu