
Chen Notasyonu İle Veritabanı Tasarımı
Veri modelleme, bir işletmenin, kurumun hatırlamaya değer bulduğu verilerin şekil ve metin olarak ifade edilmesidir. Diğer bir deyişle bir işletmede teknik ve teknik olmayan herkesin bilişim ihtiyaçlarını ifade etmeye çalışırken birbirini anlamada kullanabileceği görsel bir iletişim dilidir. Yazılım geliştirmenin en önemli süreçlerinden biri olan veri modelleme bilişim ihtiyaçlarının keşfedilmesi ve herkesin anlayabileceği bir şekilde belgelenmesi işlemidir. [1]
VARLIK İLİŞKİSİ DİYAGRAMI (ER DİYAGRAMI) NEDİR?
Varlık İlişkisi Diyagramı (ER Diyagramı) veya İngilizce tanımıyla Entity Relationship Diagram (ERD) olarak da ifade edilir. Varlık İlişkisi Diyagramı, veri tabanı örneklerinin yapısını tanımlayan bir diyagramdır. Bu diyagramların çeşitli gösterimleri (notasyon) vardır; Barker Notasyonu, Chen Notasyonu, IDEF1X Notasyonu, Arrow Notasyonu, UML Notasyonu, Crow Foot Notasyonu, vb. Kullanılacak notasyonu seçmek, genellikle kişisel tercih veya sözleşmelere bağlı olarak değişir. Biz bu makalede Chen Notasyonu’nu inceleyeceğiz.
İlginizi Çekebilir: Büyük Veri
NEDEN CHEN NOTASYONU?
Varlık-ilişki modellemesini geliştiren ve çalışmalarını 1976’da yayınlayan Peter Chen, yazılım ve bilgi sistemi modelleme ve tasarımında varlık ilişkisi kavramlarını kullanmanın öncülerindendi. Chen Notasyonu halen kullanılmakta ve alternatif varlık-ilişki modellemelerinden daha fazla detay sunduğu kabul edilmekte. Bu yüzden biz de bu notasyonu tercih ediyoruz.
Ayrıca, Chen Notasyonu veri modelleme dışında beyin fırtınası ve hızlı diyagramlama için de kullanılır.
VARLIKLAR (ENTİTİES) [3]
Varlık tiplerini aşağıdaki gibi inceleyebiliriz;
Varlık (Entity)
Bir varlık, varlığın adını içeren bir dikdörtgenle gösterilir.
Zayıf Varlık (Weak Entity)
Tek başına sistemde bir anlam ifade etmez. Zayıf bir varlığın varlığı, sahibi varlık olarak adlandırılan başka bir varlığa bağlıdır.
İlişkilendirilmiş Varlık (Associative Entity)
Çoka-çok ilişkide kullanılan bir varlıktır (ek bir tabloyu temsil eder). İlişkilendirilmiş varlık için olan tüm ilişkiler çok olmalıdır.
Örnek Tablolar[2]:
CREATE TABLE User ( UserLogin varchar(50) PRIMARY KEY, UserPassword varchar(50) NOT NULL, UserName varchar(50) NOT NULL ) CREATE TABLE Permission ( PermissionKey varchar(50) PRIMARY KEY, PermissionDescription varchar(500) NOT NULL ) -- Birleşim tablosu. CREATE TABLE UserPermission ( UserLogin varchar(50) REFERENCES User (UserLogin), PermissionKey varchar(50) REFERENCES Permission (PermissionKey), PRIMARY KEY (UserLogin, PermissionKey) )
NİTELİKLER (ATTRİBUTES) [3]
Chen Notasyonunda her nitelik, nitelik adını içeren bir ovalle temsil edilir.
Nitelikler düz bir çizgi ile varlıklara bağlanırlar:
Bazı özel nitelik türleri aşağıdaki gibidir:
Anahtar Niteliği (Key Attribute)
Belirli bir varlığı benzersiz şekilde tanımlayan bir özellik. Bir anahtar özniteliğin adı altı çizili olarak gösterilir:
Örneğin, Araç Kimlik Numarası (VIN), tek tek araçları tanımlamak için kullanılan benzersiz bir kod olduğundan (iki araç aynı VIN’e sahip değildir), “VIN”, “CAR” öğesinin anahtar niteliği olarak düşünülebilir:
Kısmi Anahtar Niteliği (Partial Key Attribute)
Sahip öğesinin anahtar niteliğiyle birleştirildiğinde zayıf varlık için benzersiz bir tanımlama sağlayan bir özellik. Ayrımcıyı kesik çizgi ile belirtiyoruz:
Çok Değerli Nitelik (Multivalued Attribute)
Birden fazla değer taşıyabilen bir nitelik (tablonun aynı sütununa birçok farklı değer girilebilir). Çok değerli nitelik çift oval ile gösterilir:
Türetilen Nitelik veya Hesaplanan Nitelik (Derived Attribute or Computed Attribute)
Değeri diğer niteliklerden hesaplanan (türetilen) bir niteliktir. Türetilen nitelik, veritabanında fiziksel olarak saklanabilir veya saklanmayabilir.
Chen Notasyonunda bu nitelik kesik çizgili oval ile gösterilir:
Örneğin, KDV oranı (VAT RATE) ve KDV hariç fiyat (PRICE Excl. VAT) verildiğinde, KDV dahil fiyatı (PRICE INCL. VAT) hesaplayabiliriz:
Bileşik Nitelikler (Composite Attributes)
Bazı nitelikler daha küçük parçalara bölünebilir. Örneğin, “adres” niteliği sokak adı, sokak numarası, daire numarası, şehir, eyalet, posta kodu ve ülke olarak bölünebilir. Aşağıdaki gibi gösterilir:
İLİŞKİLER (RELATİONSHİPS) [3]
İlişki bağlantı türleri iki şekilde gösterilir:
1- Güçlü İlişki (Strong Relationship) – Varlığın var olduğu bir ilişki, diğer varlıklardan bağımsızdır. Çocuk birincil anahtarı (PK) ebeveyn varlığı PK bileşenini içermez. Güçlü bir ilişki tek bir eşkenar dörtgenle gösterilir:
2- Zayıf İlişki (Weak Relationship) – Çocuk varlığının ana varlığa bağımlı olduğu ilişkidir. Çocuk varlığının PK’sı ana varlığın PK bileşenini içerir. Bu ilişki çift eşkenar dörtgenle gösterilir:
Bir ilişkinin isteğe bağlılığı (Optionality of a relationship)
Barker’ın notasyonuna benzer şekilde, zorunlu bir ilişki düz çizgi ile gösterilir:
İsteğe bağlı bir ilişki Barker’ın gösteriminde olduğu gibi kesikli bir çizgiyle gösterilir:
İlişki Derecesi (Cardinality)
İlişki derecesi, genellikle ilişkilerin uçlarına yerleştirilen “1”, “N” veya “M” karakterleriyle temsil edilir:
Birden-bire (1:1) (one-to-one)
Örneğin; Bir çalışan yalnızca bir departmanı yönetebilir ve her bölüm yalnızca bir çalışan tarafından yönetilebilir:
Birden-çoğa (1:N) (one-to-many)
Örneğin; Müşteri birçok sipariş verebilir, ancak her sipariş sadece bir müşteriye aktarılır:
Çoktan-bire (N:1) (many-to-one)
Örneğin; Bir departmanda çok çalışan olabilir, ancak bir çalışan sadece bir departmana ait olabilir:
Çoktan-çoğa (M:N) (many-to-many)
Örneğin; Bir öğrenci birden fazla öğrenci organizasyonuna ait olabilir ve bir organizasyon birden fazla öğrenci kabul edebilir:
Katılım Kısıtlamaları (Participation Constraints)
Bir varlık grubu, tamamen veya kısmen bir ilişkiye katılabilir.
Tamamen katılım, kümedeki her varlığın ilişkide bulunduğu anlamına gelir; örneğin, her öğrencinin bir profesör tarafından yönlendirilmesi gerekir (herhangi bir profesör tarafından yönlendirilmeyen öğrenci yoktur). Chen notasyonunda, bu tür bir ilişki iki çizgi olarak gösterilir.
Kısmi katılım, kümedeki tüm varlıkların belirtilen ilişkide bulunmadığı anlamına gelir; örneğin, her profesör bir öğrenciyi yönlendirmez (bunu yapmayan profesörler vardır). Chen notasyonunda kısmi katılım tek bir çizgi ile gösterilir.
Yukarıda gösterilen ilişki, her öğrencinin, istisnasız olarak, seçilen bir profesör tarafından yönlendirilmesi ve birçok öğrenciye rehberlik edebileceği anlamına gelir (birden fazla değil yalnızca bir profesör). Dolayısıyla bir profesör tarafından yönlendirilmeyen bir öğrenci yoktur ve öte yandan herhangi bir öğrenciye rehberlik etmeyen profesörler olabilir.
Şimdi, tüm bu öğrendiklerimizle kitap ve bölüm örneğimizin Chen notasyonunda nasıl göründüğüne bir göz atalım.
REFERANSLAR
[2] From Wikipedia the free encyclopedia https://en.wikipedia.org/wiki/Associative_entity
[3] Vertabelo.com http://www.vertabelo.com/blog/technical-articles/chen-erd-notation
Aydoğan Emsiz – Yazılım Mühendisi – Aktif Mühendislik