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.
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.
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.