Birbiri arasında eylem
gerçekleşecek olan iki parçamız olduğunu düşünelim. Bunlardan biri kimyasal
madde biri de tedarikçisi olsun. Kimya malzemesi ile tedarikçisi arasında ne
gibi bir bağ olabilir? Sipariş.
Peki sipariş, kimyasal madde
ve tedarikçi ilişkileri kendi içlerinde neleri barındırır?
Yani bu üçlünün ilişkisel
durumları nedir?
Kimya malzemesi (basit
düşünürsek); isim ve formülden oluşmaktadır.
Tedarikçi (basit düşünürsek);
İsim ve iletişimden oluşmaktadır. (Ya da paydaş nelerden oluşuyor/oluşacak
diyorsa onlardan oluşmaktadır.)
Aradaki köprü yani sipariş
eylemi neleri barındırır?
Miktar, Sipariş alım tarihi,
toplam tutar.
İşte yukarıdaki çizime bakarak
tüm bu yazdığımız metinleri yok ettiğimizi düşünün.
Çok karmaşık bir projenin ürün
yapısını çözme işlemini gerçekleştirmek istediğimizi varsayalım. Burada
hazırlayacağımız ER Model, gerek dokümanın kalitesini gerekse anlaşılabilirliğini
yüksek oranda değiştirecektir. Peki buraya gelene kadar nelere dikkat
etmeliyiz? ER Model elemanları nelerdir? Doğru ERM çizimi nasıl olmalıdır?
Şimdi biraz da konuyu derinlemesine incelemeye başlayalım.
Birbiriyle ilişki içerisinde
bulunacak olan her bir parça, kendi içlerinde özellikler barındırabildikleri
gibi yine bu özelliklerin de bir alt özellik taşıyabileceklerini unutmamak
gerekir. ER Model bize bunu da göstermemizde yardımcı oluyor ve
açıklayıcılığımızı güçlendiriyor.
Her öğrencinin bir tam ismi
vardır. Her tam isim bir isim ve soy isimden oluşmaktadır.
Tek ya da birden fazla değerli özelliklerin sınıflandırılması:
Örneğin bu proje içerisinde
bir laboratuvarımız olsun ve bu laboratuvar içerisinde ya da anlatacağımız bu akış içerisinde birden
fazla asistanımız olsun:
Birden çok değere sahip alan gösterimi (multi-valued attribute domain)
Türetilmiş özellik gösterimi:
Bir
elemanın birden fazla özelliği varsa ya da buna alternatif özellik de
diyebiliriz, bu gibi durumlarda kullanacağımız özel belirteçler bulunmaktadır.
Bu özellikler "----" şeklinde diyagram üzerinde gösterilir. Alttaki örnekte
olduğu gibi dairenin bir çapı var bu dairenin bir özelliği. Ama bir de yarıçapı
var. Ve biz dairesel bir hesaplamayı çapını ve yarıçapını ayrı ayrı ele alarak
yapabiliriz. Yani yarıçap bizim için çaptan türetilmiş başka bir özelliktir.
Tanımlayıcı - Ayrıştırıcı özellik gösterimi:
Tanımlayıcı özellikler birden fazla
biçimde karşımıza çıkabilir. Karmaşıklığı yüksek projelerde, birden fazla
tablonun birbirine bire bir ya da çoka çok ilişkide olduğu veritabanlı
sistemlerdeki ilişkiyi gösterebilmek için; ER Model, ayrıştırıcı özellikleri
(unique attributes) diyagram üzerinde altını çizerek belirtir. Bunlara Anahtar
Özellikler de denir. Örneğin; Ozan bir öğrencidir ve sistemimizde binin
üzerinde öğrenci vardır, Ozan'ı ayırt etmemizi sağlayacak şey "Öğrenci
Numarası" 'dır. Yani Ozan elemanının anahtar özelliği "Öğrenci
Numarası"'dır. Ama bir varlık bazen tek başına Unique identifier(tekil
belirleyici) olmayabilir. Sınıf örneğini ele alalım aşağıdakilerin birleşimi
bana sadece bir dersi=sınıfı belirler.
1994 – 2.Dönem - Matematik
Bolumu -11A (Mat1) hepsi birlikte bir tanımlayıcı özellik olur. Bu sayede bu ve
bunun gibi tanımlayıcı özelliğe sınıf ya da öğretmen atayabilirim. Sonuç olarak
eğer birden fazla varlık bir ayrıştırıcı (anahtar) özellik oluşturuyorsa, buna “Composite
Key (Bileşik Anahtar)” denir.
Ders
kodu (catalognumber) - Bölüm (Section)- Dönem(Semester) - Yıl (year)
İlişki Gösterimi:
ERM
üzerinde ilişki gösterimi birden fazla biçimde olabilir. Örneğin; Emanuel Vagas
bir öğrencidir ve bağlı olduğu öğrenim grubu Phys201F2005A04 ID'li gruptur.
Onunla berber aynı grupta olan Ignatios Trekas eğitimine ara vermiş ve daha
sonra yeniden dâhil olmuştur. Dolayısıyla Ignatios daha önceki grupta yer
aldığı gibi ayrıca bir yeni grupta daha yer almıştır.
Oklar
açıklayıcı olarak kullanılmıştır. ERM diyagramı üzerinde oklar
kullanılmamalıdır.
ER Diyagramı içerisinde ilişki
tanımı “diamond” kullanılarak gösterilir. Soldan sağa doğru okunur.
Öğrenci, elemanıdır/üyesidir takımın
Yukarıdaki ilişki durumu 2. Derece ilişki durumu olarak
adlandıracağımız durumdur. Fakat bundan daha karışık durumlarla karşı karşıya
kalacağımızı düşünürsek bir de şu örneğe göz atalım;
Bir öğrenci, bir takımın elemanıdır aynı zamanda bir
öğrenci bir takımın lideri de olabilir.
Bir öğrenci, bir takımın elemanıdır aynı zamanda bir öğrenci bir takımın lideri de olabilir.
Bu ve bunun
gibi ilişki tipleri aynı zamanda farklı özelliklere de sahip olabilirler. Kimyasal
madde ve dağıtıcı örneğini ele alalım; ikisi arasındaki ilişki çok-a çok ilişki
olarak adlandırılabilir. Çünkü her kimyasal madde birden çok dağıtıcı
tarafından alınabileceği gibi, her dağıtıcı da birden çok kimyasal madde alabilir
ya da dağıtabilir. Burada kimyasal madde ve dağıtıcı arasında
"sipariş" ilişkisi yer almaktadır. Dolayısıyla siparişinde sahip
olduğu bir takım özellikler vardır. Bunlar; Satın Alış Tarihi, Miktar, Fiyat
olarak nitelendirilebilir. Şimdi bu ilişkiyi ER Model ile gösterelim;
Tekrarlanan İlişki:
Bir oluşum birden fazla durum
içerisinde yer alabilir. Bir takım düşünelim, işi denetlemek olsun.
Peki neyi denetleyecektir?
Bir başka takımı.
Yani aslında aynı genel
oluşumun birden fazla rolde yer aldığını görebiliyoruz. “Takım” oluşumu bir
denetleyici rolünde olabiliyorken aynı zamanda denetlenen rolünde de olabilir. ER
diyagramında bu durumu “Takım” ve “Denetim” alanları arasında çizdiğimiz olası
rol sayısı kadar hatla belirliyoruz. Şimdi bunu ERM çiziminde görelim;
Burada da gördüğümüz gibi
“takım” ve “denetim” alanları arasında iki rol var ve bunlardan biri
“denetleyen” bir diğeri ise “denetlenen”. Bu sebeple takım ve rol arasında iki
hat çiziyor ve her hattın üstüne rolün adını yazıyoruz.
Zayıf / Güçlü Varlık:
Zayıf ve güçlü varlık tiplerini kısaca şu şekilde açıklayabiliriz. Bir başka oluşumdan bağımsız
olarak varlığını sürdüren ya da var olabilen oluşum tipi güçlü varlık tipidir.
Yani yine bunu bir sınıf ortamı olarak örneklendirirsek eğer; bir sınıfın var olabilmesi
için “öğrenci” oluşumuna ihtiyacı vardır. Dolayısıyla bu ikili oluşum
içerisinde “öğrenci” oluşumu güçlü varlık olarak adlandırılırken, “sınıf”
zayıf varlık olarak adlandırılır. Bu iki oluşumun ER diyagramında
gösterimine gelirsek:
Güçlü varlık çift
çizgiler ile gösterilirken, zayıf varlık tek kare içerisinde
gösterilir.
Bu örnekte görüldüğü gibi her
LabSection (Laboratuvar Bölümü) bir en az bir takım var olursa olabilir. Yani
ortada bir takım yoksa eğer laboratuvar olmasına da gerek yoktur. Dolayısıyla
bu ilişkide “takım” oluşumu, güçlü varlık, laboratuvar oluşumu ise zayıf
varlık tipidir.
Bire-Bir / Çoka-Çok / Çoka-Bir İlişki Tanımı:
Veritabanı ile uğraşan kişilerin
çok rahat bildiği ve ilişki tanımı olan bire-bir ve çoka-çok ilişki modelinin
ERM diliyle anlatımına bir göz atalım. Bu konuyu incelerken direkt olarak
örneklemeler ile ilerleyeceğiz. Böylece gereksiz tanımlamalardan kaçınmış
olacak ve daha kolay bir şekilde konuyu idrak edeceğiz.
Bir “Sınıf” oluşumunu ele
alalım:
Her “Sınıf” oluşumu bir “Sınıf
Başkanı” oluşumuna/durumuna sahiptir.
Her “Sınıf Başkanı”
oluşumu/yapısı da yine bir “Sınıf” oluşumuna sahiptir. Bu durum Bire-Bir ilişki örneğidir.
Yani kabaca her bir x durumu
bir y durumuna sahipken, her bir y durumu da bir x durumuna sahiptir. X ve Y
durumları arasındaki ilişki bire-bir ilişkidir. Bu iki durum arasındaki
ilişkiyi ER diyagramında aşağıdaki gibi gösterebiliriz;
Her
öğrenci, lideridir bir takımın ve her takım bir öğrenci liderine sahiptir.
Zayıf ve güçlü iletişim
tiplerini anlatırken kullandığımız örneği ele alırsak ise şöyle bir durum
ortaya çıkmaktadır.
Her “laboratuvar” oluşumu bir “takım” oluşumuna
sahiptir. Ama her bir “Takım” oluşumu sadece bir “laboratuvar” oluşumuna sahip
olabilir. Dolayısıyla bu iki durum
arasındaki ilişki Bire - Çok ya da Çoka - Bir ilişki örneğidir.
Bu iki durum arasındaki
ilişkiyi (güçlü ve zayıf oluşum tiplerini unutmayarak) ER diyagramında
aşağıdaki gibi gösterebiliriz;
Her
“laboratuvar” birden fazla takıma sahip olabilir. Ama her takım sadece 1
“laboratuvar”’a sahiptir.
Şimdi
ise direkt olarak öğrenci ve takım arasındaki ilişkiye göz atalım. Burada ise
her bir öğrenci birden fazla takımda yer alabilecektir. Dolayısıyla her bir
takımda birden fazla öğrenci barındırabilecektir. Bu ilişki türü Çoka - Çok ilişki türü olarak adlandırılır.
Her
bir öğrenci üyesi olabilir birden fazla takımın ve her bir takım birden fazla
öğrenci üye alabilir.
İlişki Türleri Gösterimi ve Açıklamaları
| |
1:1
|
Bire - Bir
|
N:1
|
Çoka - Bir
|
1:N
|
Bire - Çok
|
N:M
|
Çoka - Çok
|
Katılım Kısıtlamaları:
Her öğrenci bir takımın
elemanı olmalıdır. Bir başka deyişle “Öğrenci” oluşumu, “üyesidir(member of)”
ilişkisine katılıyorsa bir takımın üyesi olarak katılır.
Bununla birlikte “Lideridir (Leader of)”
ilişkisindeki “öğrenci” oluşumu katılımı istisnai/kısmi bir katılımdır çünkü
“Öğrenci” oluşumu bir “Lider” olabilir/olmayabilir.
Yani iki durum arasındaki farkı şu şekilde yazarsak
daha açıklayıcı olacaktır;
Öğrenci, üyesidir bir
takımın/sınıfın. (must be)
Öğrenci, lideri olabilir
bir takımın (might be)
Sonuç olarak şu ana kadar değindiğimiz parçaların tümünü ER Diyagramında birleştirelim:
Gösterim ve Açıklama Tablosu:
Kaynakça: http://wofford-ecs.org/DataAndVisualization/ermodel/
Katkılarından dolayı Murat DEMİRCİOĞLU'na teşekkür ederim.
Ozan TÜRK
İş Analisti
Ozan TÜRK
İş Analisti
0 yorum:
Yorum Gönder