Veritabanı Kavramsal Tasarımı

 

Kavramsal Tasarım

•Kavramsal tasarım veritabanı tasarım safhalarında gösterildiği gibi ihtiyaçlar analizini takip eder ve veritabanında tutulacak olan verilerin yüksek seviyede bir gösterimini verir. 

•Varlık-İlişki (Entity-Relationship-ER) Modeli, kavramsal tasarım için en popüler ve en çok kullanılan modeldir. ER’deki notasyonlar oldukça bilgi verici ve insan bakışına yakın özelliklere sahiptir. 

 

ER modelinin temel kavramları

•ER’in en temel kavramları, varlıklar (entities), ilişkiler (relationships) ve özellikler (attributes)dir. 

 

•Varlık: ER’nin sunduğu temel nesnedir. Gerçek dünyada bağımsız olarak var olan bir ‘şey’dir.  Fiziki veya kavramsal varlıklar bulunur. Fiziki varlıklar; işçi, ev, müşteri vb. kavramsal varlıklar ise satış, çalışma, futbol maçı vb.

 

Özellik: Varlığın belirli bir özelliğini belirtir. Varlığı tanımlayan özelliklerin değerleri veri tabanında depolanan verilerin ana kısmını oluştururlar.  Örneğin “Personel” varlığının özellikleri şu şekilde olabilir: Personel no, Adı ve Soyadı, Adresi, SGK no, Ücreti

 

Basit özellikler: Daha küçük parçaya bölünemeyen özelliklerdir. 

 

Birleşik özellikler: Birden fazla basit özellikten oluşan özelliklerdir.  Örneğin personelin “cadde” ve “şehir” özellikleri birleştirilerek “adres” isimli yeni bir özellik oluşturulabilir.

 

Tek verili özellikler: Birden fazla veriye herhangi bir nesnede sahip olamayan özelliklerdir. 

 

Çok verili özellikler: Birden fazla veriye herhangi bir nesnede sahip olabilen özelliklerdir. Örneğin personelin “son okuduğu kitaplar” isimli niteliği birden çok kitabı kapsayacağı için çok verili özellik olarak kabul edilir.

 

Oluşturulan özellikler: Öteki özelliklerden elde edilen özelliklerdir.  Örneğin personelin “doğum tarihi” özelliğinden yararlanılarak “yaş” özelliği elde edilebilir.

 

Varlık dizisi(kümesi): Aynı türdeki ve aynı özelliklere sahip varlıkların kümesidir.  Örneğin, bir okuldaki tüm öğrenciler “öğrenci”, bu okuldaki tüm dersler “ders” isimli varlık kümesi olarak değerlendirilebilir.

 

Örnekler: Belirli bir tipteki bireysel nesnelerin belirli bir zamanda ve andaki örnekler kümesini gösterir ve zamanla değişirler. 

 

İlişki : Varlıklar arasındaki bağlantıya ilişki adı verilir. Örneğin “öğrenci” varlığı ile “ders” varlığı arasında bir ilişki vardır.

 

•İlişki kümesi: Nesneler arasındaki ilişkiler kümesini gösterir. İlişki tipinin derecesi ilişkide yer alan nesnelerin sayısıyla belirlenir.

 

•E1, E2, …, En varlık kümeleri ise, bu kümeler arasındaki R ilişkisi şu şekilde tanımlanır :

Örnek :  

•E1={Burak, Begüm} öğrenci adlarını içeren varlık kümesi

 

•E2={Matematik, Fizik}  öğrencilerin aldıkları dersleri içeren varlık kümesi

 

•Bu iki küme arasındaki ilişki, öğrencilerle dersler arasında olan ilişkidir. Bu ilişkileri, öğrenci-ders çiftleri biçiminde ifade edebiliriz. Tüm öğrencilerle tüm dersler arasındaki ilişki ise Kartezyen çarpım yapılarak ortaya konulur. Kartezyen çarpım, iki küme arasında olası tüm çiftleri ifade etmektedir.

 

•E1 x E2 = { (Burak, Matematik), (Burak, Fizik), (Begüm, Matematik), (Begüm, Fizik) }

 

 

Müşteriler ve Hesaplar örneği

R1 = { (Burak,1353), (Burak,1412), (Begüm,1525), (Selin,1111), (Sezin,1206), (Dilay,1514), (Dilay,1754) }

Zayıf varlık tipi: Bunlar kendilerine ait anahtar niteliğe sahip değillerdir. Bu tür nesne tipine ait olan nesneler diğer bir nesne tipindeki belirli bir nesneye aittir ve kendi nitelikleri ve diğer nitelik tipinin anahtar niteliğiyle birlikte ayırt edilebilirler. Sözü edilen diğer nitelik tipine belirleyici sahip, bu ikisi arasındaki ilişki tipine de belirleyici ilişki denir. 

Anahtar nitelik: Bu niteliklerin değerleri her nesne için farklı olmak zorundadır. 

  • Değerler kümesi(domain-alan): Bu her bir nesnenin her bir niteliğinin alabileceği değerler kümesidir. 

 

 

Varlıkların İlişkilendirilmesi

•Bir varlıkla ilişkiye girebilecek varlıkların sayısına eşleme sayısı adı verilir. Eşleme sayıları n>=2 varlık için söz konusudur ve ilişkilerin ortaya konulması açısından yararlıdır. A ve B gibi iki varlık kümesi arasındaki R ilişki kümesi için eşleme durumları şu şekilde ifade edilebilir :

•Birden-bire

•Birden-çoğa

•Çoktan-bire

•Çoktan-çoğa

 

Birden-bire ilişki

A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki sadece bir varlık ile ilişkili ise ve B varlık kümesi içindeki bir varlık, A varlık kümesi içindeki sadece bir varlık ile ilişkili ise birden-bire ilişki söz konusudur.

 

Birden-çoğa ilişki

A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki birden fazla varlık ile ilişkili ise, bu eşlemeye birden-çoğa ilişki adı verilir. Bu durumun tersi geçerli değildir. Yani B kümesi içindeki bir varlık, A kümesi içindeki sadece bir varlık ile eşleşebilir.

 

Çoktan-bire ilişki

A varlık kümesindeki birden fazla varlık B varlık kümesindeki bir varlık ile ilişkili ise, bu eşlemeye çoktan-bire ilişki adı verilir.

 

Çoktan-çoğa ilişki

A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki birden fazla varlık ile ilişkili ise ve B varlık kümesi içindeki bir varlık, A varlık kümesi içindeki birden fazla varlık ile ilişkili ise çoktan-çoğa ilişki vardır.

 

Örnek

Müşteri-Hesap ilişkilerinde aile üyelerinin ortak hesap açabilmesi durumunda çoktan-çoğa ilişki söz konusu olacaktır. Müşteriler birden fazla hesaba sahip olabilmekte ve birden fazla müşteri aynı hesabı açabilmektedir.

 

ER Modelde İlişki Tipleri

Nesne tipleri arasındaki ilişki tipleri 

 

Hasta <- - - - - > Yatak

1-1 ilişkisi söz konusudur

Hasta <<- - - - > Hastane       Odası

m-1 ilişkisi vardır

Hasta <<- - - >> Doktor

n-m ilişkisi ile tanımlanabilir

Örnekler

 

•1-1  Evli çiftler
  Yönetici-Bölüm

•1-m  Anneler-Çocukları
  Bölüm-Personel
  Program-Öğrenci
  Takım-Futbolcu vb.

•n-1  Çocuklar-Anneleri gibi, 1-m   ilişkilerin tersleri

•n-m  Müşteri-Hesap
  Öğrenci-Ders
  Müşteri-Ürün
  Mağaza-Müşteri
  Personel-Proje

  Sefer-Yolcu
  Takım-Takım (karşılaşmalar) vb.

 

 

ER Modele Örnek

Bu örnekte; 

Çalışan: Nesne tipine bir örnektir. 
Bağımlı: Zayıf nesne tipine bir örnektir. 
İçin_Çalışır: İlişki tipine bir örnektir. 
Bağımlısı_Olan: Tanımlayıcı ilişki tipine bir örnektir. 
Maaş: Nitelik. 
SSN: Anahtar nitelik. 
Yerleşim: Çok verili nitelik. 
İsim: Birleşik nitelik. 
Çalışan_sayısı: Oluşturulmuş nitelik.

Bu örnek bir önceki örneğin aynısıdır. Sadece yapısal kısıtlamalar(min, max) kullanmaktadır.

 

Üçlü ilişkiye örnek ER diyagramı

Üçlü ilişkiye örnek ER diyagramı-2

Bu üçlü ilişkiyi nesne tiplerinin ayrı ayrı ikili ilişkileri ile gösteremezsiniz. Yani aşağıdaki örnek yukarıdaki üçlü ilişki ile aynı değildir. 

 

ER Diyagramında IS-A Hiyerarşisi

Bazı karmaşık uygulamalarda ER’in şimdiye kadar tartıştığımız yapıları yeterli olmayabiliyor. Bundan dolayı ER modeli genişletilmiş ve IS-A hiyerarşileri modele dahil edilmiştir. Eğer A IS-A B olarak tanımlanırsa, bunun anlamı her A nesnesi bir B nesnesi olarak da düşünülebilecektir. 

 

Örnek ISA diyagramının ER'da gösterimi 

 

Bu örnekte her kontratlı çalışan ile saatli çalışan aynı zamanda bir çalışan nesnesidir ve çalışan nesne-tipine ait olan niteliklerin hepsi (no, isim, yaş) aynı zamanda kontratlı çalışan ve saatli çalışan nesnelerin de nitelikleridir. Bu kalıtım (inheritance) yoluyla IS-A hiyerarşisi durumunda daha genel nesne tipinden(üst sınıf) özeline(alt sınıf) geçer. 

 

Varlık – İlişki modelinin tablolaştırılması

Varlık-İlişki şemaları biçiminde çizilen bir veritabanı tablolar halinde gösterilebilir. Veri tabanının her varlık kümesi ve her ilişki kümesi için bu isimlerle simgelenen birer tablo düzenlenir.

Varlık – İlişki modelinin tablolaştırılması-Örnek

 

Müşteri – Hesap varlıklarının ER diyagramı

 

Müşteri varlığı için tablo

MuşteriNo AdSoyad Adres
     

 

Hesap varlığı için tablo

HesapNo Bakiye
   

 

Müşteri ve Hesap varlıkları arasındaki ilişki için gereken tablo

MüşteriNo HesapNo
   

 

 

Bu tabloda Müşteri ve Hesap varlıklarının anahtar nitelikleri yer almaktadır, bu sayede hangi müşterinin hangi hesapları açtığı ve hangi hesabın hangi müşteriler tarafından açıldığı bilgisi tutulmaktadır.

 

Bunun yerine Müşteri tablosunda HesapNo bilgisi veya Hesap tablosunda MüşteriNo bilgisi tutularak ta ilişki sağlanabilir. Ancak bu durumda örneğin bir müşteri kaç hesap açtırmışsa o kadar sayıda kayıt Müşteri tablosunda olmalıdır, bu da tablonun büyümesine ve kaynak israfına neden olur. Bu yüzden çoktan çoğa ilişkileri ayrı bir tabloda tutmak doğru olan yaklaşımdır.

 

Varlık – İlişki modelinin tablolaştırılması

•Eğer ilişkiyle ilgili anahtar nitelikler dışında başka nitelikler varsa (örn.Sipariş ve Parça varlıkları arasındaki ilişkideki Miktar niteliği gibi) bu nitelikler de ilişkiye ait tabloda yer almalıdır.

 

•İki varlık arasında birden çoğa veya çoktan bire ilişki varsa yine ilişki için ayrı bir tablo tanımlanabilir.

 

•Bunun dışında ayrı bir tablo tanımlanmayıp çok tarafındaki tabloya bir tarafındaki tablonun anahtar nitelikleri ve varsa o ilişkiye ait diğer nitelikler eklenebilir.

 

•Bu şekilde ayrı bir tablo oluşturmak yerine çok tarafındaki tabloya fazladan kayıt eklemeden sadece ilgili nitelikler eklenerek ilişki ile bilgiler bu tabloda tutulabilir.

 

•Örneğin, Müşteri ve Sipariş varlıkları arasındaki birden çoğa ilişki için MüşteriNo ve SiparişNo niteliklerine sahip bir tablo oluşturulmak yerine Sipariş varlığına ilişkin tabloda sadece MüşteriNo niteliği tutularak her siparişi veren müşterinin numarası bilgisi elde edilebilir.

 

•İki varlık arasında birden bire ilişki varsa yine ilişki için ayrı bir tablo tanımlanabilir.

 

•Bunun dışında ayrı bir tablo tanımlanmayıp istenilen bir tabloya diğer tabloya ait anahtar nitelikler ve varsa o ilişkiye ait diğer nitelikler eklenebilir.


Etiketler : veritabanı kavramsal tasarımı verirabanı er diyagramı varlık ilişki tablolaştırma veritabanı tablolaştırma

  • İzzet A.
  • 25.4.2019 20:57:32
  • 0 Yorum
  • 3739 Okunma

Henüz yorum yapılmamış ilk yorumu siz yapabilirsiniz.


  • Yeni Yüklenenler

  • C# textbox autocomplete
    C# textbox autocomplete "otomatik tamamlama" textbox a girilen değirin otomatik tamamlaması
  • İlişkisel Cebir
    İlişkisel cebir (Relational Algebra) biçimsel bir sorgu dili olarak tanımlanabilir.
  • Fiziksel Veri Tabanı Modellemesi
    Fiziksel veritabanı nedir? Fiziksel veritabanı fiziksel tasarımının mantıksal yapısı.
  • Veritabanı Kavramsal Tasarımı
    Veritabanı tasarım safhalarında gösterildiği gibi ihtiyaçlar analizini takip eder ve veritabanında tutulacak olan verilerin yüksek seviyede bir gösterimini verir.
  • Veritabanı Mimarileri
    Veritabanlarının mimari yapıları ve özellikleri.