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
© Copyright 2024 Paperzz