9 Ocak 2017 Pazartesi

Varlık-İlişki Modelinin Tablolaştırılması



Örnek-2: Bir müşteri birden fazla otomobile sahip ve her otomobil modeline birden fazla müşteri sahip olabilir. Bu durumda otomobiller ile müşteriler arasındaki ilişki çoktan-çoğa biçimindedir.
Varlık-İlişki Modelinin Tablolaştırılması


ER şemasına uygun olarak aşağıdaki ifadeler yazılabilir:
Müşteri ={Müşteri No, Adı}
    Otomobil ={Oto Model, Renk}
    Sahip ={Müşteri No, Oto Model, Tarih}

Sahip isimli ilişkiye dayanılarak aşağıdaki tablo oluşturulabilir.


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-3: Bir müşteri birden fazla otomobile sahip olabilir. Ancak tersi doğru değildir. Yani bir otomobil modeli iki farklı müşteriye ait olamaz. Bu durumda ER şeması aşağıdaki şekilde çizilebilir.





Varlık-İlişki Modelinin Tablolaştırılması

“Sahip” tablosu ile “Otomobil” tablosu aynı tablo içine birleştirilir.

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk, Müşteri No, Tarih}

Bu durumda “Otomobil” tablosunun görünümü şu şekilde olacaktır:


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-4: Bir müşteri sadece bir otomobil modeli satın alabilmektedir. Aynı biçimde, bir model otomobil sadece bir müşteriye satılabilmektedir. Böyle bir durumda varlık-ilişki modeli aşağıdaki şekilde olabilir:



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-1: Müşteri varlığı ile otomobil ve sahip ilişki şu şekilde ifade edilebilir:

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk}

Sahip = {Müşteri No, Oto Model, Tarih}

Burada Sahip ilişkisine Müşteri No niteliği anahtar olarak düşünülmüştür.


Varlık-İlişki Modelinin Tablolaştırılması

Bunun yerine Oto Model varlığı da bir anahtar olarak tasarlanabilir:

Sahip = {Müşteri No, Oto Model, Tarih}

Oto Model niteliği anahtar kabul edilerek Sahip isimli ilişki şu şekilde tabloya dönüştürülebilir.



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-2: Sahip ile Otomobil varlıkları birleştirilerek Otomobil ya da Müşteri tablosu elde edilir.

Sahip ile Otomobil varlıkları birleştirilerek Otomobil tablosu elde edilir.

Müşteri = {Müşteri No, Adı}

Otomobil = {Oto Model, Renk,  Müşteri No,  Tarih}

Sahip ile Müşteri varlıkları birleştirilerek Müşteri tablosu elde edilir.

Müşteri = {Müşteri No, Adı, Oto Model, Tarih}

Otomobil = {Oto Model, Renk}



Varlık-İlişki Modelinin Tablolaştırılması

Yöntem-3: Sahip ile Otomobil ve Müşteri varlıkları bir tablo üzerinde birleştiriliyor. Bu tablonun adı Satış olsun. Bu tablo,

Müşteri = {Müşteri No, Adı, Oto Model, Renk, Tarih} veya

Müşteri = {Müşteri No, Adı, Oto Model, Renk, Tarih} biçiminde olabilir.

Müşteri No niteliğinin anahtar olarak kabul edildiği birinci durum için tablo şu şekilde düzenlenebilir:



Varlık-İlişki Şemaları

Varlık-ilişki modelinde varlıklar ve ilişkileri tanımlamak için aşağıda belirtilen şema öğeleri kullanılır.

İlişki Türlerinin Gösterilmesi

İlişki türleri;

Birden-bire
Birden-çoğa
Çoktan-bire
Çoktan-çoğa

biçiminde tanımlanmıştı. Bu ilişkiler, varlık-ilişki yani ER şemaları ile yandaki şekilde gösterilebilir.


Varlık-İlişki Modelinin Tablolaştırılması

Bir veritabanı, tablolardan oluşur.

Varlık-ilişki şemaları biçiminde çizilen bir veritabanı tablolar halinde gösterilebilir.

Veritabanının her varlık kümesi ve her ilişki kümesi için, bu isimlerle simgelenen birer tablo düzenlenir.


Varlık-İlişki Modelinin Tablolaştırılması

Örnek-1: Aşağıdaki varlık-ilişki şemasını göz önüne alalım. SSK No ve Hesap No alanları anahtar alanlardır.


Bu varlık-ilişki diyagramı aynı zamanda dış model (external model) olarakta adlandırılır.

Varlık-İlişki Modelinin Tablolaştırılması


Zayıf ve Kuvvetli Varlıklar


Bazı durumlarda varlık kümesi içinde bir anahtar bulmak mümkün olmayabilir. Hatta niteliklerinin tümü bir araya getirildiğinde yine bir anahtar elde edilemeyebilir. Böyle varlık kümelerine zayıf varlık kümesi adı verilir.

Buna karşılık, varlık kümesinin içerdiği niteliklerden en az biri bir anahtar oluşturabiliyorsa bu varlık kümesine kuvvetli varlık kümesi adı verilir.


Zayıf ve Kuvvetli Varlıklar

Örnek: Bir “PERSONEL” varlığının aşağıda belirtilen niteliklere sahip olduğunu varsayalım.

“Adı ve Soyadı”
“Doğduğu İl”
“Eğitim Düzeyi”

Bu üç nitelikten oluşan varlık kümesi, bir zayıf varlık kümesi olarak değerlendirilir.
Çünkü, bu küme içinde aynı isim ve soyadına sahip çok sayıda PERSONEL olabilir. O halde bir anahtar olarak kabul edilemez. Benzer biçimde “doğduğu il” ve “eğitim düzeyi” nitelikleri de aynı nedenlerden ötürü birer anahtar olamaz. Bu niteliklerin tümünün birleşimi bile bir anahtar olamaz.

Anahtar



Varlık kümesi içindeki varlıkları birbirinden ayırt etmek için kullanılan niteliklere varlık kümesinin anahtarı denir.

"Süper Anahtar" ve "Aday Anahtar" olmak üzere iki tür anahtar vardır.

Varlıkları ve ilişkileri tanımlamış bulunuyoruz. Ancak, bir varlık kümesi veya bir ilişki kümesi içinde yer alan varlıkları birbirinden nasıl ayırt edebileceğiz sorunu karşımıza çıkmaktadır.
Örneğin öğrenci? varlık kümesi içinde her bir öğrenciyi diğerinden ayırt eden nitelikler neler olabilir?
Öğrencileri birbirinden ayırt etmek için, öğrenci numarasını kullanabileceğimizi söyleyebiliriz.


Süper Anahtar

Varlık kümesi içinde yer alan bir varlığı kesin olarak tanımlamaya yarayan anahtara süper anahtar denir.

Bu anahtar sadece bir nitelikten oluşabileceği gibi, birden fazla niteliğin birleşiminden de oluşabilir.

Süper anahtarlar süper küme oluşturur. Bir süper anahtarın herhangi bir süper kümesi daima bir süper anahtar olarak kabul edilir.


Örnek: SSK numarası bir PERSONEL’i diğerinden ayırt etmek için yeterlidir. Çünkü bir ülkedeki tüm çalışanların sadece bir SSK numarası vardır.

İki farklı kişinin aynı SSK numarasına sahip olması olanaksızdır.

PERSONEL’in “adı” süper anahtar olarak tanımlanamaz. Çünkü aynı isme sahip birçok PERSONEL var olabilir. Ancak, “SSK numarası” bir süper anahtar olması nedeniyle, "SSK numarası" ve "PERSONEL’in adı" birlikte süper anahtar olarak değerlendirilebilir. Hatta “SSK Numarası, Adı, Bölümü” nitelikleri birlikte bir süper anahtar olarak kabul edilebilir.








Aday Anahtar




Varlık kümesi içinde yer alan bir varlığı kesin olarak tanımlamaya yarayan bir başka anahtar da aday anahtar olarak bilinmektedir.

Bir varlık kümesinin süper anahtarı bir veya daha fazla niteliğin birleşiminden oluşabiliyordu. Bu tür bir süper anahtarın herhangi bir alt kümesi aynı zamanda bir süper anahtar değil ise, bu anahtara aday anahtar ya da kısaca anahtar adı verilir.

Bazı durumlarda; varlıklara ilişkin birkaç nitelik, birlikte bir anahtar olarak tanımlanabilir.


Örnek: Aşağıda görüldüğü üzere, “SSK No” niteliği süper anahtarın bir parçası olmasına karşılık, tek başına varlıkları birbirinden kesin olarak ayırt etmekte kullanılabilir. O halde “SSK No” niteliği bir anahtardır.

Personel için; “SSK No, Adı, Bölümü” nitelikleri, birlikte "PERSONEL" varlığı içindeki her bir varlığı diğerinden ayırt etmek için kullanılabilir. Süper anahtar, varlıkları kesin olarak birbirinden ayırt etme özelliğine sahip olmasına karşılık, bu özelliği kazanmak için gerekenden fazla niteliği içerebilir. Anahtar ise, aynı tanıma uygundur. Ancak gerekenden fazla nitelik içermeme özelliğine sahiptir.
















Varlıkların Eşlendirilmesi

Bir varlıkla ilişkiye girebilecek varlıkların sayısına eşleme sayısı denir. Eşleme sayıları n>2 varlık için söz konusudur ve ikili ilişkilerin ortaya konulması açısından yararlıdır.

A ve B gibi iki varlık kümesi arasındaki R ilişki kümesi için dört farklı eşleme durumları olabilir. :

Birden – Bire,
Birden – Çoğa,
Çoktan – Bire,
Çoktan – Çoğa.

Birden–Bire İlişki



A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki sadece bir varlık ile ilişkili ve B varlık kümesi içindeki bir varlık, A varlık kümesi içinde sadece bir varlık ile ilişkili ise birden-bire ilişki söz konusudur.

A ve B kümelerinin,

A = {a1, a2, …,an}
B = {b1, b2, …,bm}

biçiminde olduğunu varsayalım. A kümesinin her bir elemanının, B kümesindeki bir elemanla ilişkide olması bire-bir ilişkiyi ifade etmektedir.


Birden–Bire İlişki 

Örnek: Müşteri-Hesaplar ilişkisini göz önüne alalım. Her müşteri için sadece bir hesap açtırılabildiğini ve birden fazla kişi için ortak hesap açılmasına izin verilmediğini varsayalım.



Şekil üzerinde gösterildiği gibi, her bir müşteri sadece bir hesap numarası ile eşlenebilmektedir. Aynı biçimde bir hesap numarası sadece bir müşteriye verilebilmektedir. O halde bu birden-bire ilişkidir.

Birden–Çoğa İlişki

A kümesi içindeki bir varlık, B kümesi içindeki birden fazla varlık ile ilişkili ise, bu eşlemeye birden-çoğa ilişki adı verilir. Bu durumun tersi geçerli değildir. Yani B kümesindeki bir varlık, A kümesindeki sadece bir varlık ile eşleşebilir.



Çoktan–Bire İlişki

A varlık kümesindeki birden fazla varlık, B kümesindeki bir varlık ile ilişkili ise, bu eşlemeye çoktan-bire ilişki adı verilir.

Örnek: A kümesi çocukları; B kümesi ise bu çocukların annelerini içermektedir.

A = {Çocuklar}
B = {Anneler}
küme elemanlarını daha açıkça yazabiliriz:

A = {Ali, Burak, Seçkin, Canan, Berk}
B = {Ayşe, Fatma}

Bu iki varlık kümesi arasındaki ilişki şu şekilde ifade edilebilir:

R={(Ali, Ayşe), (Seçkin, Ayşe), (Canan, Ayşe), (Burak, Fatma), (Berk, Fatma)}





Çoktan–Çoğa İlişki

A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki birden fazla varlık ile ilişkili ise ve B kümesindeki bir varlık A kümesindeki birden fazla varlık ile eşleniyorsa çoktan-çoğa ilişki vardır.

Örnek: Müşteri-hesap ilişkilerinde, aile üyelerinin ortak hesap açabilmesi durumunda çoktan-çoğa ilişki söz konusu olmaktadır.



Bu şekil, müşteri-hesap ilişkisinin çoktan-çoğa biçiminde olduğunu göstermektedir. Müşteriler birden fazla hesaba sahip olabilmekte ve birden fazla müşteri aynı hesabı açabilmektedir. Örneğin, ?Burak? isimli kullanıcı 4500 ve 2310 numaralı iki hesaba sahiptir. Buna karşılık, 4500 numaralı hesabın aynı aileye üye ?Burak? dışında ?Begüm? isimli bir başka müşterisi bulunmaktadır.



Varoluş Koşulu

Eğer X varlığının bulunması, Y varlığının bulunmasına bağlı ise, X’in Y’ye bağlı olduğundan söz edilir.

Bir başka deyişle, Y silinirse X’in bir anlamı kalmayacaktır. O halde X’de silinmelidir sonucuna ulaşılır.

Böyle bir durumda;
Y’ye baskın varlık (dominant entity),
X’e bağımlı varlık (subordinate entity) adı verilir.

Örnek: Bir işletmede «ürün» ve «stok hareket» varlıklarının mevcut olduğunu varsayalım.

ürün={ürün isimleri}

stok hareket={günlük ürün giriş ve çıkış miktarları}

Burada varlıklar arasındaki ilişki birden çoğa doğrudur. Her ürün birden fazla stok hareketi ile ilişkilidir. Bu durumda, stok hareket varlık kümesinden bir varlığın silinmesi durumunda, ürün varlık kümesinden bir varlık silinmesi söz konusu olmaz. Çünkü bu varlık stok hareket kümesindeki başka varlıklarla da ilişkilidir.

Yukarıda söylenenin aksine ürün kümesinden bir varlık silinmesi söz konusu ise, bu varlıkla ilişkili olan tüm stok hareket varlıklarının da silinmesi gerekecektir. Bu durumda ürün varlığı baskın varlık, stok hareket varlığı ise bağımlı varlık olarak değerlendirilir.





Etki Alanı: Niteliğin aldığı değerlere etki alanı (domain) adı verilir.


Örneğin, “PERSONEL” varlığının “adı ve soyadı” niteliği, birçok PERSONEL adını ve soyadını içeren bir dizidir.
O halde nitelik, matematiksel anlamda bir fonksiyon olarak da değerlendirilebilir. Bir varlık kümesinden bir etki alanına eşlendirmeyi sağlar. Bu sayede her varlık, nitelik ve veri değeri olarak veri çiftleri biçiminde gösterilebilir.



Örneğin bir “PERSONEL” varlığı;
(nitelik, etki alanı)


“PERSONEL” varlığının bir elemanı için veri çiftleri yandaki şekildeki gibi ifade edilebilir.

Türetilen Nitelik

Bir nitelik kullanılarak, bir başka varlık niteliği elde edilebiliyorsa, bu yeni niteliğe türetilen nitelik adı verilir.
Örneğin; “PERSONEL” varlığının “doğum tarihi” niteliğinden yararlanılarak, “yaş” niteliği elde edilebilir.

Bir PERSONEL’in doğum tarihi 1961 ise, içinde bulunduğumuz yıldan yararlanılarak, bu tarih çıkarılır ve bu PERSONEL’in yaşı bulunur. O halde, PERSONEL’in “doğum tarihi” niteliği belirli ise, “yaş” isimli bir nitelik tanımlamaya gerek yoktur. “Yaş” niteliği bir türetilen nitelik olarak değerlendirilir.


Çok Değere Sahip Nitelikler

Bir nitelik birden fazla değer ile eşlenebiliyorsa, çok değere sahip nitelik adı verilen bir kavramdan söz edilir.
Örnek: Bir kişinin “beğendiği araba markaları” isimli nitelik, birden çok arabayı kapsayacağı için bu niteliğin çok değere sahip bir nitelik olduğu kabul edilir.
Araba Markaları Niteliği: Renault, Ford, Wolksvagen, Toyota, Nissan, Opel …vs.

Birleşik Nitelik

Birden fazla nitelik birleştirilerek yeni bir nitelik oluşturulabilir. Bu tür niteliklere birleşik nitelik adı verilir.




Rol: Bir ilişki varlığın bir fonksiyonu ise, buna rol adı verilir.

Örneğin, “PERSONEL” varlığı hem yöneticileri hem de işçileri kapsayacaktır. Bu varlıklar arasında bazıları diğerlerinin yöneticisidir. “Kim kimin yöneticisidir?” biçimindeki bir ilişkiyi göz önüne alalım. Bu ilişki;

(Yönetici, İşçi) çiftleriyle karakterize edilir. Ancak bu çiftler arasında, (İşçi, Yönetici) çiftleri göz ardı edilir.



Örnek: “PERSONEL” varlığı ile niteliklerini göz önüne alalım. Bu varlığın nitelikleri ve etki alanı, yani içerdiği değerler gösterilmiştir.

Buna hangi PERSONEL’in, diğerinin yöneticisi olduğunu belirleyen “çalıştığı kişi” ilişkisini göz önüne alarak rol çiftlerini belirlersek;

(Neslihan, Derya)
(Neslihan, Semih)
(Serkan, Mehmet)