13 Mart 2017 Pazartesi

TEMEL KAVRAMLAR

Varlık-İlişki Modeli 

Öncelikle konunun daha iyi anlaşılması için varlık ilişki modelinden biraz bahsedelim.





Yandaki şekildeki ifadeler kullanılan sembollerdir.

Anlamlarının bilinmesi gerekir. Varlık dediğimiz şey nesneleri ifade eder. Nitelik sembolü Varlığ'a ait özellikleri ifade eder. Anahtar nitelik o varlığa ait ayırt edici bir özelliktir ve daha önceki anlatımda bahsettiğimiz primary key kavramına karşılık gelir.Çoklu değer alabilen nitelik. Bir diğer önemli sembol ise bağıntı-ilişki sembolü'dür varlık ile nitelik arasındaki ilişkiyi belirtir. Diğer sembollerden ise yeri geldikçe bahsedeceğiz. 

 Daha anlaşılabilir olması açısından basit bir örnek ile başlayarak Varlık-İlişki kavramını anlamaya çalışalım. 

Görsele baktığımızda Öğrenci ve Ders varlıklarını görüyoruz. Öğrenci varlığına ait  5 nitelik var. Öğrenci_No bu varlığa ait primary key'dir. Yaş ise türetilmiş niteliktir türetilmiş nitelik denmesinin nedeni öğrencinin aynı diyagramda D.Tarihi niteliği ile doğum tarihini barındırması ve yaşında o nitelikten türetilmiş olmasıdır. Ders varlığıda aynı özelliklere sahiptir. Öğrenci varlığına ders_kodu diye bir nitelik ekleyerek Ders varlığının primary key'ine foreign key atayabilir ve iki varlık arasında bu şekilde ilişki kurabiliriz.

İlişki Türleri

İlişkisel veri tabanında tabloların öneminden bahsetmiştik bu tablolar kadar tablolar arası ilişkide oldukça önemlidir. Tasarım aşamasında hangi ilişki türünün seçileceğine iyi karar vermek oldukça önemlidir. 3 çeşit ilişki türü bulunmaktadır. Şimdi bunları inceleyip nasıl seçim yapmamız gerektiğini öğrenelim.

   =>1-1 ilişki:
Konuyu bir örnek üzerinden anlamaya çalışalım. Buna Evlilik ilişkisi örnek verilebilir. TC Medeni Kanununa göre bir kişi yanlızca bir tane  eşe sahip  olamlıdır  ya  da bir başka örnek diyelim ki 30  kişilik  bir sınıfımız  ve   bu sınıfa yerleşecek 30 tanede öğrencimiz var. Bu durumda her sıraya bir   öğrenci  her   öğrenciye   bir  sıra   düşmektedir. Tabloya aktarımda  ise A tablosundaki  bir veri B tablosunda yanlızca bir veriyle  eşleşebilir. B tablosuda aynı şekilde A tablosunda yanlızca bir veriyle eşleşmelidir.

   =>1-N (Birden çoğa)ilişki:

Bir Okuldaki sınıf öğretmenlerini düşünelim.  Her öğrenciye bir sınıf öğretmeni düşmektedir. Bir sınıf öğretmeninin birden fazla öğrencisi bulunmaktadır. Böyle bir durumda eklemeleri nereye yapacağımıza şöyle karar veririz: 
Öğretmen tablosuna ğörenci id'si eklediğimizi düşünelim her öğrenci için tabloya tekrar ekleme yapmamız gerekecek ancak veri tekrarı bizim istemediğimiz bir durumdur.Bu durumda öğrenci tablosuna öğretmen id 'si eklemek mantıklı olur. Bu duruma şöylede karar verebiliriz. Bire N'lik ilişkinin N tarafına foreign key eklenmelidir.

   =>M-N (Çoktan çoğa)ilişki:

Diğer ilişki türlerine göre daha karmaşıktır. Bu tür de iki tabloda birden fazla bağa sahip olduğundan bu durumu iki tablo ile çözmek yeterli gelmemektedir. Yeni bir tablo daha eklenmektedir bu durumada yine öğrenci üzerinden açıklama yapalım .Bir ders seçim sisteminde bir öğrenci birden fazla ders seçtiği gibi bi dersi alan öğrenci sayısıda birden çoktur ve bu durumu açıklamak için üçüncü bir tablo daha tutulur.


Yukarıda hazırladığımız hastane sistemine ait varlık-ilişki diyagramı görülmektedir. Şuana kadar bahsettiğim nitelikler ve kavramların hepsini bu diyagram üzerinde yorumlayıp tablolarını inceleyelim

Tabloda kırmızı ile gözüken kısımlar foreign key kısımlarıdır ve oklar ile gösterildiği primary keylere işaret etmektedirler. Hasta-ilaç ve Hasta-Doktor varlıkları arasında M-N lik ilişki bulunmaktadır yani bu varlıkları tabloda ifade ederken ek bir tabloyada ihtiyacımız var.Hasta-ilaç tablosunu için reçete isimli üçüncü bir tablo, Hasta-Doktor tablosunda da Muayene isimli üçüncü tablo ekledik.




Hiç yorum yok:

Yorum Gönder