Y R D . D O Ç . D R . M . B E T Ü L Y I L M A Z
İlişkisel Veri Modeli VTYS
İ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
Tablo
Aynı Kavramlar!
İ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]}
A B C
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)
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
1. Satırların (kayıtların) sırası önemsizdir.
2. 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.
İlişkinin (tablonun) Özellikleri
5. 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.
İ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.
No Adı BölümNo 25 Burak 10
13 Begüm 10 28 Dilay 20
BölümNo BölümAdı 10 Personel 20 Muhasebe 30 Satış
PK FK PK
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-İlişki Çizelgelerinin Tablolara Dönüştürülmesi
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
ÖĞRENCİ (Öğrno, Adı, Soyadı, Cinsiyeti, Doğtar)
DERS (Dkodu, Dersadı, Kredisi)
ÖĞRENCİ
ADI SOYADI
CİNSİYETi
ÖĞRNO DOĞTAR
DERS
DERSADI DKODU
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
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ı)
ÖĞRENCİ
ADI SOYADI
ÖĞRNO LİSE
LİSEADI LİSENO
OKUDUĞU KENT
İ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ĞAZA SATTIĞI MAL
MAĞNO MAĞADI MALKODU MALADI
MİKTAR
m n
SATTIĞI (Mağno, Malkodu, Miktar)
İ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
KONSER, ESER ve MÜZİSYEN varlık kümeleri arasındaki KATILIM adlı üçlü ilişki kümesini düşünelim.
KONSER
TARİH SALON GÖREVİ
KONSNO
MZSNO
ESER
ESTÜRÜ ESNO
BESTECİ KATILIM
MÜZİSYEN SOYADI
ESADI
ADI
Örnek
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.
KONSER
TARİH SALON GÖREVİ
KONSNO
MZSNO
ESER
ESTÜRÜ ESNO
BESTECİ KATILIM
MÜZİSYEN SOYADI
ESADI
ADI
Örnek
KONSER(Konsno, Tarih, Salon) ESER(Esno, Esadı, Estürü, Besteci) MÜZİSYEN(Mzsno, Adı, Soyadı)
KATILIM (Konsno, Esno, Mzsno, Görevi)
KONSER
TARİH SALON GÖREVİ
KONSNO
MZSNO
ESER
ESTÜRÜ ESNO
BESTECİ KATILIM
MÜZİSYEN SOYADI
ESADI
ADI
Ö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)
PERSONEL YÖNETİCİ
GBAŞTAR ADI
BÖLÜMÜ
GÖREVİ SİCİLNO
üst
ast 1
n
Genellemelerin (ISA) Dönüştürülmesi
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)
BANKA-HES
HNO
MÜŞADI MÜŞADR
VSZ-HES
SONİŞLTAR HTUTAR
VLİ-HES
MİKTAR FAİZ
VADE VBAŞTAR
ISA
Genellemelerin (ISA) Dönüştürülmesi
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)
BANKA-HES
HNO
MÜŞADI MÜŞADR
VSZ-HES
SONİŞLTAR HTUTAR
VLİ-HES
MİKTAR FAİZ
VADE VBAŞTAR
ISA
Kümelemelerin Dönüştürülmesi
İlişki bir varlık kümesi yerine bir kümelemeye bağlanıyorsa kümelemenin anahtarı kullanılır.
ÇALIŞAN
ÇNO ADI SOYADI
PROJE
PNO PADI PBÜTÇE
MAKİNE
MNO MADI MTÜRÜ YERİ ÇALIŞTIĞI
KULLANDIĞI SÜRE
m n
Kümelemelerin Dönüştürülmesi
Ç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)
ÇALIŞAN ÇNO ADI
Süre PROJE
PNO PADI PBÜTÇE
MAKİNE
MNO MADI MTÜRÜ YERİ ÇALIŞTIĞI
KULLANDIĞI m
n SOYADI
Kaynaklar
Veri Tabanları Sistemleri, Ünal Yarımağan.
Ders notları, Filiz Eyüboğlu