ERD (Varlık İlişki Diyagramı) Nedir?

erd entity relationship diagram varlık ilişki diyagramı

Selam!

Bu yazımızda ER Diyagram (ERD)’ın ne olduğu, nasıl oluşturulduğu gibi konulara göz atacağız.
Bu yazıda geçen konu başlıkları kısaca şöyle:

  • ER Diyagram Nedir?
  • Varlık Nedir?
  • ER Diyagram Neden Kullanılır?
  • Yaygın ER Diyagram Sembolleri
    • Entity (Varlık)
      • Weak Entity (Zayıf Varlık)
    • Action (Eylem)
    • Attribute (Özellik)
      • Multivalued Attribute
      • Derived Attribute (Türetilmiş Özellik)
    • Cardinality (Sayısallık)
      • Sayısallık İlişkilerini Nasıl Belirleyebiliriz?
      • Sayısallık Gösterim Stilleri
  • Örnek ER Diyagram

ER Diyagram Nedir?

İngilizce adıyla “Entity Relationship Diagram“(ERD), Türkçe adıyla “Varlık İlişki Diyagramı” olarak kısaltmanın açılımını açıklayabiliriz. Varlık ilişki diyagramı, veritabanında bulunan tabloların birbirleri ile ilişkilerini gösterir.

Nedir bu Varlık?

Varlık dediğimiz şey aslında veritabanımızdaki her bir tablodur. Bu tablolar arasında ilişkiyi ifade etmeye de ERD diyoruz.
Bu tabloları yazılımlarımızda nesne olarak ifade ediyoruz. Nesne kavramına hakim değilseniz araştırmanızı öneririm. Örneğin ‘C# nesne nedir’ şeklinde arama yaparak inceleyebilirsiniz.
Aşağıda küçük bir örnek vereceğim.

Örneğin :

Şu anda basitçe Ogrenci adında bir nesne oluşturdum. Bu nesneyi kullanabilmek için new’lemek gerekiyor ancak şu anda basit olarak varlığı açıklamaya çalışıyoruz.
Sınıflara özellik ekleyerek o nesneyi işlevsel hale getiriyoruz. Burada varlığın özelliklerini tanımlayan bilgiler olabilir.(OgrenciNo, OgrenciAdi gibi…)

Varlıkların, özelliklerini tanımlayarak ve aralarındaki ilişkileri göstererek bir ER diyagramı oluşturmak, veritabanlarının mantıksal yapısını gösterir.

ERD Neden Kullanılır?

Veritabanı diyagramı oluşturmanın aslında iki nedeni vardır. Yeni bir şema tasarlamak istiyor olabilir ya da mevcut şema yapınızı anlaşılabilir halde göstermek istiyor olabilirsiniz. Bu iki durumdan herhangi birindeyseniz ER Diagram oluşturmak isteyebilirsiniz.

Yaygın ERD Sembolleri

Bir Varlık İlişki Diyagram’ın ana bileşenlerini inceleyelim. Açıklamalarda kafanız karışabilir ama merak etmeyin aşağıda bir örnek üzerinde hepsini kullanacağız.

1. Entity (Varlık) : Hakkında bilgi depolamak istediğimiz bir nesne olarak düşünebiliriz.
Örneğin yukarıda oluşturduğumuz Ogrenci varlığı(nesnesi) hakkında adı, soyadı, doğum yeri gibi bilgileri depolamak istiyor olabiliriz.
Dikdörtgen kullanılarak temsil ediliyor.

erd entity

Weak Entity (Zayıf Varlık) : Zayıf bir varlık, yalnızca kendi özellikleri ile benzersiz bir şekilde tanımlanamayacağı için başka bir varlığa Foreign Key ilişkisi ile tanımlanması gereken bir varlıktır. Yani kısaca, zayıf varlığın Primary Key’i yoktur. bu yüzden zayıf varlık olarak adlandırıyoruz.

erd weak entity

2. Action (Eylem) : İki varlığın veritabanında nasıl bilgi paylaştığını gösterir. Aşağıda göreceğiniz üzere eşkenar dörtgene benzer bir şekil ile temsil ediliyor.

erd relationship

3. Attribute (Özellik) : Varlıkların özelliklerini gösterir. “Key Attribute” dediğimiz özelliğin altı çizili olanı ile Primary Key özelliği gösteriyoruz.(örn. OgrenciNo)
Elips ile temsil ediliyor.

erd attribute
erd key attribute

Multivalued Attribute : Türkçe’ye “Birden Fazla Değerli Özellik” olarak çevirebiliriz. Adından da anlaşılacağı üzere bu özellikler birden fazla değer alabilir. Örneğin bir öğretmenin birden fazla telefon numarası olabilir. (örn. Sabit telefon, cep telefonu)

erd multivalued attribute

Derived Attribute (Türetilmiş Özellik): Bu özellikler başka bir özelliğe dayanır. Örneğin bir öğrencinin bilgilerini tuttuğumuz tabloda Doğum Günü bilgisini tutuyoruz, buna ek olarak birde Yaşını tutuyoruz diyelim. İşte burada yaş bilgisi Türetilmiş Özellik oluyor. Yani aslında biz doğum tarihini kullanarak öğrencinin yaşını bulabiliriz. Ama bazı durumlarda erişmek istediğimizde hızlıca erişebilmek için türetilmiş özelliği kullanabiliyoruz.

erd derived attribute

4. Cardinality (Sayısallık): Sayısallık, bir varlığın kaç örneğinin başka bir varlığın bir örneğiyle ilişkili olduğunu belirtir. Bunları 4 grupta inceleyebiliriz:

  1. One to one (Bire bir ilişkiler)
  2. One to many (Bire çok ilişkiler)
  3. Many to one (Çoka bir ilişkiler)
  4. Many to many (Çoka çok ilişkiler)
erd sayısallık ilişkileri cardinality

*Çoka bir veya çoka çok için sadece yönleri değişiyor.

Bunları daha iyi ve anlaşılır olarak açıklayabilmek için tablolar şeklinde inceleyelim.

İlişkileri nasıl belirleyebiliriz?

Aşağıdaki basit şema, bir üniversite öğrencisinin ders kaydını gösteriyor.

Ogrenci tablosu ile Kayit tablosu arasındaki ilişkinin neden Bire Çok olduğuna beraber bakalım.
Bir öğrenci birden fazla derse kayıt olabilir mi? Tabii ki olabilir. Bu yüzden Ogrenci tablosu ile Kayit tablosu arasındaki sayısallık ilişkisinin “Bire Çok” olduğunu söyleyebiliriz. Gelin daha iyi anlamak için diğer tablolar arasındaki ilişkilere bakalım.

ERD Table Varlık İlişkisi Diyagramı Tablosu
PK : Primary Key (Birincil Anahtar)
FK : Foreign Key

Aynı şekilde Kayit ile Ders tabloları arasındaki sayısallık ilişkisine bakarsak, bir ders birden fazla kez kayıt edilebilir. Örnek vermek gerekirse, Fizik dersini düşünelim. Bilgisayar Mühendisliğinden bir öğrenci de Fizik dersine kayıt olabilir, Makine Mühendisliğinden başka bir öğrenci de aynı hocanın Fizik dersine kayıt olabilir. Bu durumda ne oldu? Bir ders, birden fazla kez kayıt tablosuna farklı öğrenciler tarafından eklenmiş oldu.

Daha açık bir şekilde bakmak gerekirse, Kayit tablosundaki verilere baktığımızda, aynı OgrenciNo’ya ait birden çok veri görebiliriz(Aynı öğrenci birden fazla farklı derse kayıt olabilir). Aynı şekilde aynı DersId’ye ait birden çok veri görebiliriz(Farklı öğrenciler aynı derse kayıt olabilir).

Sonuç olarak Ogrenci ile Kayit tablosu arasında ve Ders ile Kayit tablosu arasında “Bire Çok” ilişki olduğunu görüyoruz.

Son olarak Bolum ve Ders tablosu arasındaki ilişkiye bakacak olursak, bir bölümde birden fazla ders olabilir. Örneğin, Bilgisayar Mühendisliği bölümünde Nesneye Yönelik Programlama, Algoritma Analizi, Web Tasarım gibi dersler olabilir. Sonuç olarak Bolum tablosu ile Ders tablosu arasındaki sayısallık ilişkisinin de “Bire Çok” olduğunu görüyoruz.

Yukarıda One to Many(Bire Çok) ve Many to One(Çoka Bir) ilişkilerinin nasıl olduğunu örneklerle beraber gördük. Diğer ilişkiler için de aynı soruyu sorarak, başka örneklerdeki tablolar arasındaki ilişkileri belirleyebilirsiniz.

Örneklediğimiz ERD :

ERD Entity Relationship Diagram Varlık İlişkisi Diyagramı

Sayısallık Gösterim Stilleri

Cardinality(Sayısallık) gösterimi farklı kaynaklarda ve videolarda farklı şekillerde gösterilebiliyor. Aslında hepsi benzer şeyleri ifade etse de bazen kafa karışıklığına yol açabiliyor. Sık kullanılan gösterim stillerine kısaca göz atalım. Biz Information Engineering Style’ı kullandık. Diğerlerinin detaylarına bu yazıda çok girmeyeceğim sadece gördüğünüzde kafa karışıklığını önlemek için hangi gösterimin adının ne olduğu hakkında bilginiz olması için adlarını ve birer görsellerini inceleyelim. Bizim kullandığımızın dışındaki gösterimlerin detaylıca araştırmasını internette yapabilirsiniz.

INFORMATION ENGINEERING STYLE :

erd information engineering style

CHEN STYLE :

erd chen style

BACHMAN STYLE :

erd bachman style

Kendi Varlık İlişki Diyagramı‘nızı çizmek istiyorsanız, internette bunu yapabileceğiniz web sayfaları mevcut. Ancak buraya tıklayarak bu yazıda kullandığım sayfaya ulaşabilirsiniz.


Umarım faydalı bir yazı olmuştur. Yanlış olduğunu düşündüğünüz veya aklınıza takılan bir kısım olursa yorumlarda berlirtebilir veya mail ile iletişime geçebilirsiniz.
Herkese iyi çalışmalar dilerim.

Faydalandığım kaynaklar:
https://www.smartdraw.com/entity-relationship-diagram/


Bir sonraki yazı olan “Windows’a Kendi Git Servisinizi Kurun” yazısına gitmek için TIKLAYIN.


Göz atmak istersen :

SÜPER MARKET OTOMASYONU
ÖĞRENCİ OTOMASYONU
PYTHON İLE 2.DERECEDEN DENKLEM KÖKÜ BULAN KOD


Paylaşmak istersen?

0

Author: Serdar Sarı

Ben İ. Serdar Sarı. Balıkesir Üniversitesi, Bilgisayar Mühendisliği 4.sınıf öğrencisiyim. Özel bir şirkette Yazılım Geliştirici olarak yarı-zamanlı çalışıyorum. Vaktim oldukça, bu blogda C#, Python ve Java programlama dilleri ile ilgili bildiğim ve yeni öğrendiğim bilgileri diğer yazılıma hevesli arkadaşlara paylaşmayı ve yeri geldiğinde sizden öğrenmeyi, aynı zamanda Teknoloji ile ilgili haber ve paylaşımlar da yapmayı planlıyorum.

2 Replies to “ERD (Varlık İlişki Diyagramı) Nedir?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir