VARLIK-İLİŞKİ(ER) DİYAGRAMLARI
Varlık-ilişki diyagramları 1976 yılında P.P.Chen tarafından geliştirilmiştir. ER (Entity-Relationship) diyagramları olarak da bilinir. Bu model kullanılarak verilerin çözümlemesi, modellemesi yapılır ve veriler arasındaki ilişkiler belirlenir. Bu nedenle veritabanı dizayn aşamasında bu modelin rolü çok büyüktür. Bir ER diyagramına bakılarak veritabanının yapısı çok rahat anlaşılabilir.
Varlık-İlişki Modelinin Temel Kavramları
- Varlık (Entitiy): Varolan ve diğer nesnelerden ayırt edilebilen nesnelerdir. Varlıklar somut ya da soyut olabilir. Öğrenciler veya siparişler gibi…ER Diyagramlarında varlıklar dikdörtgen şeklinde gösterilir.
Varlıklar güçlü ve zayıf varlık olmak üzere ikiye ayrılır:
1- Güçlü varlıklar (Strong Entity): Diğer varlık türlerinden bağımsız olabilen varlık türüdür.
2- Zayıf varlıklar (Weak Entity): Varolması başka bir varlığa bağlı olan varlıklardır. Bir iş yerindeki çalışanlar güçlü varlıklar iken bu çalışanların çocukları zayıf varlıklardır. Çalışanlardan birisi ayrıldığında direk olarak çocukları da veritabanından silinir. Zayıf varlıkların birincil anahtarları elips içinde ve altı kesikli çizgi ile gösterilir.
- Nitelikler(Attributes): Bir varlık nitelikler kümesi (attribute set) kullanılarak tanımlanır. Örneğin bir çalışanın adı, sosyal sigorta numarası, maaşı o çalışanın (varlık) nitelikleridir ve bu nitelikler o varlığı diğer varlıklardan ayırt etmeye yarar. Nitelikler ER Diyagramlarında elips şeklinde gösterilirler.
Nitelikler de kendi aralarında dörde ayrılır:
1- Tek değerli nitelik (Single-Valued Attribute): Bir varlığın sadece 1 değer alabilen niteliğine denir. Örneğin bir iş yerindeki çalışanların tek sosyal sigorta numaraları vardır.
2- Çok değerli nitelik (Multi-Valued Attribute): Bir varlığın birden fazla değer alabilen nitelikleridir. Örneğin bir çalışanın birden fazla telefon numarası olabilir.
3- Birlieşik Nitelik (Composite Attribute): Bu nitelik birden fazla niteliğin birleşmesiyle oluşur. Örneğin mahalle, sokak, apartman, kapı numarası gibi nitelikler birleştirilerek tek bir adres niteliği oluşturulabilir.
4- Türetilmiş Nitelik (Derived Attribute): Bir varlığın nitelikleri kullanılarak yeni bir nitelik türetilebilir. Örneğin bir çalışanın doğum tarihi niteliğinden, tasarımda yeniden tasarlanmasına gerek olmayan, yaş niteliği oluşturulabilir.
- Veri Kümesi (Domain): Bir niteliğin alabileceği değerlerdir. Örneğin Cinsiyet->Kız,Erkek gibi.
- Anahtarlar: Varlıkları ya da ilişkileri birbirlerinden ayırt etmek için kullanılan nitelik ya da nitelik grubuna denir. Her varlığa ait bir nitelik anahtar olmalıdır.
1- Aday Anahtar (Candidate Key): Bir varlığı kesin olarak tanımlayan ve tek olan niteliklere aday anahtar denir. Örneğin bir çalışanın sigorta numarası ve TC kimlik numarası aday anahtar olabilir fakat, çalışanın adı aday anahtar olamaz çünkü aynı ada sahip birden fazla çalışan olabilir.
2- Birleşik Anahtar (Composite Key): Eğer br aday anahtar iki ya da daha fazla özellikten oluşuyor ise bu anahtar birleşik anahtardır.
3- Birincil Anahtar (Primary Key) : Aday anahtarlar arasından seçilen anahtardır. ER Diyagramlarında bir niteliğin birincil anahtar olduğunu belirtmek için o nitelik elips içinde altı çizili olarak yazılır.
- İlişki (Relationship): Varlıklar arasındaki bağlantılardır ve ER Diyagramlarında baklava dilimi şeklinde gösterilir.
Aynı varlıklar arasında farklı türden ilişkiler olabilir veya bir ilişki bir ya da daha fazla varlık arasında olabilir. Varlıklar arasında değişik ilişki türleri vardır:
- Birden-Bire (one-to-one): A varlık kümesindeki bir varlık B varlık kümesinden sadece 1 varlık ile ilişkili ise bu varlıklar arasında birebir ilişki vardır. Örneğin T.C kanunlarına göre her erkek sadece 1 kadınla ve bir kadın da sadece bir erkekle evli olabilir. Buradaki evlilik ilişkisi bire-bir ilişkidir.
- Birden-Çoğa (one-to-many): A varlık kümesindeki bir varlık, B varlık kümesindeki birden fazla varlık ile ilişkili ve B kümesindeki bir varlık A kümesindeki sadece bir varlık ile ilişkili ise aralarında birden çoğa ilişki vardır. Eğer bir öğrencinin tek bir bölümde okuyabildiğini farzedersek; bir öğrenci sadece bir bölümde okuyabilir ve bir bölümde okuyan birden fazla öğrenci olabilir ilişkisi birden-çoğa ilişkisidir. Aynı mantık ile Çoktan-bire ilişkisi de yaratılabilir.
- Çoktan-Çoğa (many-to-many): Her A ile sıfır, bir veya birçok B ve her B ile de sıfır, bir veya birçok A arasında ilişki kurulabilir. Bir öğrenci birden fazla dersi alabilir, bir dersi alan birden fazla öğrenci olabilir.
Şimdi bir örnek uygulama ile yukarda anlattığım kavramları kullanarak ER diyagramının nasıl çizileceğine bakalım.
Örnek: Aşağıda anlatılan bilgilerin bir üniversite veritabanına ait olduğunu farzediniz.
• Profesörlerin sosyal güvenlik numarası(SSN), adı, yaşı, derecesi ve araştırma konusu vardır.
• Profesörlerin çocuğu ve çocukların da adları ve yaşları vardır.
• Projelerin proje numarası, sponsor adı, başlangıç tarihi, bitiş tarihi ve bütçesi vardır.
• Mezun öğrencilerin SSN , adı, yaşı, derece programı( Master ya da doktora) vardır.
• Her proje sadece bir profesor tarafından yönetilmektedir(Temel araştırmacı).
• Bir projede bir ya da daha fazla profesor çalışmalıdır .
• Bir profesor birden fazla projenin yöneticisi ya da çalışanı olabilir.
• Her projenin bir veya daha fazla mezun öğrenci çalışanı olabilir(araştırmacı asistanı olarak).
• Mezun öğrenciler bir projede çalıştığında onları teftiş eden bir profesor olmalıdır. Mezun öğrenciler birden fazla projede çalışabilirler bu durumda mezun öğrencilerin her proje için kendilerini denetleyen bir profesorü vardır.
• Bölümlerin bir bölüm numarası, adı ve ana ofisi vardır.
• Her departmanın bir başkanı vardır.
• Profesörler bir ya da daha fazla departmanda çalışabilir ve çalıştığı her departman için zaman yüzdesi vardır.
• Mezun öğrencilerin derecesini yaptıkları bir tane ana departmanları olmak zorundadır.
• Her mezun öğrencinin bir tane hangi dersi alması gerektiğini belirten bir danışmanı vardır ve bu danışman daha deneyimli mezun öğrencilerden olmaktadır.
Verilen bu bilgilerden yararlanarak bu sistemin ER diyagramı çizelim. Çizim sırasında ise varlık-ilişki modelinin temel kavramlarını kullanalım.
Bu diyagramda soruda verilen her basamağın karşılığı mevcuttur. Bu basamakları okuyup şekilden karşılığını bulmanızı tavsiye ederim. Yalnız bir iki noktaya değineyim. Eğer zorunluluk durumu varsa, bizim örneğimizdeki her projede bir yada daha fazla profesör çalışmalıdır gibi, bu durumda kalın çizgi kullanılır. Mezun öğrencilerin sadece bir tane ana depertmanı (ne daha az ne daha fazla) olması gibi durumlarda ise kalın ok işareti kullanılır.
ER Diagramı hazırlayabilmek için hazır toollar vardır. Bunlarıdan bazıları Microsoft Visio, Sybase Power Designer ve ERwindir. Bu tool sayesinde primary key, foreign key, index, view gibi unsurlar da gösterilebilmektedir.
ER diyagramları veritabanı tasarımının olmazsa olmazlarındandır. Özellikle büyük projelerde veriler arasındaki ilişkiler ve bu verilerin çözümlenmesi işlemleri çok karışık olmaktadır. Bu tür durumlarda ER diyagramları tüm bu ilişkilerin açıkça belirtilmesi açısından önemlidir. Bu yazımda sizlere ER diyagramlarının ne işe yaradığını ve temel kavramlarının nasıl kullanıldığını bir örnek üzerinde anlatmaya çalıştım. Bir dahaki sayıda görüşmek üzere.
Kaynaklar:
Ramakrishnan R, Gehrke J “Database Management Systems”, Third Edition
rbozer.etu.edu.tr/Week2.ppt
yunus.hacettepe.edu.tr/…/Lecture03b_309-varlik-iliski-veri-modellemesi-araclar-teknikler.ppt
Gamze ÇUKURLUÖZ

 



hocam şu sorunun çizilmiş e-r diyagramı yok mu çözüm adımlarını gösteren