13 Aralık 2013 Cuma

Entity Relationship Model




     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


                                                                                                            

                                             




0 yorum:

Yorum Gönder