Üç Şema Modeli (Three Schema Model)
Üç Şema Modeli External Schema (Dış Şema, Kullanıcı Görüşü): VT içerisindeki verilerin kullanıcılara gösterildiği yüzüdür. Kullanıcı bilgi ihtiyacına göre VT’deki bilginin tamamı ya da belli bir bölümü sunulur. Conceptual Schema (Kavramsal Şema): VT içerisindeki tüm verileri ve aralarındaki ilişkilerin tanımını da içeren veri tabanının mantıksal görüntüsüdür. Bu yapı VT içerisinde meta data olarak tutulur ve üzerinde birden fazla dış şema tanımlanabilir. Bu tasarım herhangi bir VTYS’den bağımsızdır. Internal Schema (İç Şema): Kavramsal şemanın herhangi bir VTYS üzerinde gerçekleştirimi. Bir kavramsal şema farklı iç şemalarla ifade edilebilir.
Kavramsal Şemanın Oluşturulması Bir veri modeli yaratılırken öncelikli olarak kavramsal şema oluşturulur. Kullanıların kavramsal şema ile herhangi bir ilgileri yoktur, sadece dış şemayı görebilirler. Kavramsal şema oluşturulurken, gereksinimler kullanıcıya sunulacak görüntülere göre belirlenir kavramsal şema ise bu gereksinimlere göre oluşturulur. Kavramsal şema yaratılırken odak noktası kullanıcı gereksinimlerinin karşılanmasıdır, iç şema hiç düşünülmez. Kavramsal şema yaratmak için pek çok yaklaşım var ancak en çok kullanılanı ER Şemaları.
Entity-Relationship (ER) Veri Modelleme
Varlık – İlişki Veri Modeli Bu model kullanılarak, VTYS’den bağımsız olarak veri çözümlenir, modellemesi ve ilişkileri tamamlandıktan sonra herhangi bir VTYS içinde veri tabanı şemasına dönüştürülür.
ER Modeli Kavramları (1) Entity (Varlık): Gerçek dünaydaki nesnelerin, kavramların ve olayların veri tabanı içerisinde ifade ediliş biçimidir. Gerçek dünyadaki herhangi bir nesne varlık olarak ifade edilebilir.. ER Gösterimi PERSONEL BANKA DERSLER ÖĞRENCİLER
Öğrenciler Ahmet Can Hakan Ayşe ……….. Entity set (varlık kümesi): Aynı türdeki varlıkların oluşturduğu topluluk. Ahmet bir varlık, öğrenciler de bir varlık. Öğrenciler Öğrenciler Ahmet Can Hakan Ayşe ……….. Öğrenci Ahmet Sınıf
ER Modeli Kavramları (2) Attribute (Özellik): Bir varlığı (entity) tanımlamak için kullanılan özelliklerdir. Her bir varlık (entity) sahip olduğu özellikler için bazı değerlerle ifade edilir. Her bir özelliğin ifade edildiği bir değer kümesi (value set/data type) vardır (integer, string, date, time vs.). Özelliklerin alacağı değerlerin sınırlarını belirlemek mümkündür (domain). ER Gösterimi PNumara AdSoyad SSKNo
Özellik (Attribute) Tipleri Simple (Basit) – Her bir varlık ilgili özellik için atomik bir değere sahiptir. Örneğin, Ad, personel numarası, geliri gibi. Composite (Birleşik) – Özellik birden fazla değer kullanılarak ifade edilir. Multi-valued (Çok değerli) – Bir varlık içinde ifade edilen bir özellik birden fazla değere sahip olabilir. Örneğin, telefon numarası, bir kişinin birden fazla telefonu olabilir, Telefon(03122343434,05325323232) SSKNo Adres Cadde Sokak Şehir Telefon
Özellik (Attribute) Tipleri Composite / Multi-valued – Bir özellik hem birleşik hem de çok değerli olabilir. Örneğin bir öğrencinin bitirdiği okullar: {Telefon (Ülke, Alan, No)} Stored (saklı) ve Derived (türetilmiş) – Bazı özellikler VT içinde doğrudan değerleri ile saklanır (stored), bazı özellikler ise saklı özellikler kullanılarak türetilir (derived). Örneğin, doğum tarihi (stored), yaş (derived). NULL – Özelliğin hiç bir değere sahip olmadığını (boş) gösterir. Ülke Alan No Telefon Yaş
Varlık ve Özellikler barındıran bir örnek ER Personel ve ilgili personellere ait özellikleri tanımlamak istiyoruz. Her personelin: Doğum tarihi, Yaşı, Sicil Numarası, Tam Adı, Cinsiyeti, Adresi, Maaşı ve Telefon numaraları saklanacak. PERSONEL DTarihi Yaş AdSoyad SicilNo Adres Cadde Sokak Daire Şehir Maaş Telefon
ER Modeli Kavramları (3) Entity and Relationship Set (Varlık ve İlişki Kümesi): Gerçek dünyada olduğu gibi ER içinde de varlıklar arasında bir bağlantı vardır. Bu bağlantıya ilişki (relationship) adı verilir. Örneğin, öğrencilerle dersler arasında bir ilişki vardır, bütün öğrenciler bazı dersler alır ya da her dersin bir öğrencisi vardır gibi. Öğrenci-Ders İlişkisi Aynı tür ilişkilerin oluşturduğu kümeye ilişki kümesi denir ve bu ilişki kümeleri R ile gösterilir. R = { (e1, e2, e3,…, en) : e1ε E1, e2 ε E2, e3 ε E3, …, en ε En} ÖĞRENCİLER DERSLER
İlişki Kümeleri Öğrenciler (E1) ve dersler (E2) varlıklarından oluşan iki varlık kümesini düşünelim: E1= {Burak, Begüm} E2= {Matematik, Fizik} 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)} İki varlık kümesi arasındaki geçerli tüm ilişki kümeleri E1 x E2 kümesinin bir alt kümesidir. R1 = {(Burak, Matematik)} R2 = {(Burak, Fizik)} R3 = {(Burak, Matematik), (Begüm, Matematik)}
İlişki Kümeleri Örnek: Bir bankanın müşterileri ve bu müşteriler için banka tarafından oluşturulan hesapları birer varlık kümesi olarak kabul edersek. Bu iki varlık kümesi arasında müşteri-hesap ilişkisi şu şekildedir: R1 = {(Burak, 1350), (Burak, 1400)} R2 = {(Begüm, 1525} R3 = {(Selin,1111)} R4 = {(Sezin, 1200)} R5 = {(Dilay, 1500), (Dilay, 1750)}
İlişki (Relationship) Türleri Bire-bir (one-to-one)(1:1) A varlık kümesi içindeki bir varlık, B varlık kümesi içindeki sadece bir varlık ile ilişkili ve B varlık kümesi içindeki bir varlık, A varlık kümesi içinde sadece bir varlık ile ilişkili ise bire-bir ilişki söz konusudur. İlişki Varlık 1 Varlık 2 1 ER
Bire-bir ilişki örneği Müşteri-hesaplar ilişkisini göz önüne alalım. Her müşteri için sadece bir hesap açtırılabildiğini ve birden fazla kişi için ortak hesap açılmasına izin verilmediğini varsayalım. Tablolarda görüldüğü gibi, her bir müşteri sadece bir hesap numarası ile eşlenebilmektedir. Aynı biçimde bir hesap numarası sadece bir müşteriye verilebilmektedir. O halde bu bire-bir ilişkidir.
İlişki (Relationship) Türleri Bire-birçok (one-to-many)(1:n) A varlık kümesi içindeki bir varlık, B varlık kümesi içinde birden fazla varlık ile ilişkili ise bire-birçok ilişki söz konusudur. Bu durumun tersi geçerli değildir, yani B varlık kümesindeki bir varlık A varlık kümesinden sadece bir varlıkla ilişkiye geçebilir. İlişki Varlık 1 Varlık 2 1 n ER
Bire-birçok ilişki örneği A varlık kümesi anne isimlerinden, B varlık kümesi de bu annelerin çocuklarının isimlerinden oluşsun. Bu iki küme arasındaki ilişki, doğal olarak bire-birçok biçiminde olacaktır. Çünkü bir annenin bir veya daha fazla çocuğu olabilir. Ancak bir çocuğun sadece bir annesi olacakıýr. O halde iki küme arasındaki R ilişki kümesi şu şekilde ifade edilebilir:
İlişki (Relationship) Türleri Bir çoğa-bir (many-to-one)(n:1) A varlık kümesi içindeki bir çok varlık, B varlık kümesi içinde sadece bir varlık ile ilişkili ise birçoğa-bir ilişki söz konusudur. İlişki Varlık 1 Varlık 2 n 1 ER
Birçoğa-bir ilişki örneği A varlık kümesi çocukları, B varlık kümesi de bu çocukların annelerinin isimlerinden oluşsun. Bu iki küme arasındaki R ilişki kümesi şu şekilde ifade edilebilir:
İlişki (Relationship) Türleri Birçoğa-birçok (many-to-many)(n:m) A varlık kümesi içindeki bir çok varlık, B varlık kümesi içindeki bir çok varlıkla ilişkili ise B varlık kümesi içindeki bir çok varlık, A varlık kümesi içindeki bir çok varlıkla ilişkili ise birçoğa-birçok ilişki söz konusudur. İlişki Varlık 1 Varlık 2 n m ER
Birçoğa-birçok ilişki örneği Müşteri-hesap ilişkilerinde, aile üyelerinin ortak hesap açabilmesi durumunda birçoğa-birçok ilişki söz konusu olmaktadır. Müşteriler birden fazla hesaba sahip olabilmekte ve birden fazla müşteri aynı hesabı açabilmektedir. Örneğin, “Burak” isimli kullanıcı 4500 ve 2310 numaralı iki hesaba sahiptir. Buna karşılık, 4500 numaralı hesabın aynı aileye üye “Burak” dışında “Begüm” isimli bir başka müşterisi bulunmaktadır.
ER Modeli Kavramları (4) Varoluş Koşulu: Bir B varlığının oluşması A varlığının bulunmasına bağlı ise; B varlığı A varlığına varoluş koşulu ile bağlıdır. Yani B’nin oluşması için mutlaka bir A olmalıdır. Bu durumda A üstün (dominant-birincil) varlık, B bağımlı(subordinate-ikincil) varlıktır. Çalışan ve bu çalışanların bakmakla yükümlü oldukları yakınları arasında varoluş koşulu vardır. DEPENDENTS_OF EMPLOYEE DEPENDENT 1 n
Varoluş Koşulu örneği Bir işletmede “ürün” ve “stok hareket” varlıklarının mevcut olduğunu varsayalım. ürün={ürün isimleri} stok hareket={Günlük ürün giriş ve çıkış miktarları} Burada varlıklar arasındaki ilişki birden birçoğa biçimindedir. Her ürün birden fazla stok hareketi ile ilişkilidir. Bu durumda, “stok hareket” varlık kümesinden bir varlığın silinmesi durumunda, “ürün” varlık kümesinden bir varlık silinmesi söz konusu olmaz. Çünkü bu varlık “stok hareket” kümesindeki başka varlıklarla da ilişkilidir. Yukarıda söylenenin aksine “ürün” kümesinden bir varlık silinmesi söz konusu ise, bu varlıkla ilişkili olan tüm “stok hareket” varlıklarının da silinmesi gerekecektir.
ER Modeli Kavramları (5) Anahtar (Key): Bir varlık kümesi içindeki varlıkları ya da bir ilişki kümesi içindeki ilişkileri birbirinden ayırdetmek için kullanılan özellik(attribute) ya da özellik grubuna anahtar denir. Süper anahtar (super key) ve aday anahtar (candidate key) olmak üzere iki tür anahtar vardır. Öğrenci No Adı Soyadı Dtarihi 12345 Ali KAYA 1985 54321 Can ANIL 1986 25134 31245 KARA 1984 ÖgrNo ER
Süper Anahtar (Super Key) Varlık (ya da ilişki) kümesi içinde yer alan bir varlığı (ya da ilişkiyi) tekil olarak tanımlamaya yarayan anahtara süper anahtar denir. Bu anahtar sadece bir özellikten(attribute) oluşabileceği gibi, birden fazla özelliğin birleşiminden de oluşabilir.
Aday Anahtar (Candidate Key) Varlık kümesi içinde yer alan bir varlığı tekil olarak tanımlamaya yarayan ve alt kümeleri süper anahtar olmayan diğer özellik kümelerine anahtar da aday anahtar denilmektedir. Aday anahtarlarda amaç; olabildiğinde az alanı barındıran ve varlıkları tekil olarak niteleyebilen anahtarlara ulaşabilmektir. Süper anahtar, varlıkları kesin olarak birbirinden ayırt etme özelliğine sahip olmasına karşılık, bu özelliği kazanmak için gerekenden fazla niteliği içerebilir. Anahtar ise, aynı tanıma uygundur. Ancak, gerekenden fazla nitelik içermez. Yukarıda görüldüğü gibi, “SSK No” niteliği süper anahtarın bir parçası olmasına karşılık, tek başına varlıkları birbirinden kesin olarak ayırt etmekte kullanılabilir. O halde “SSK No” niteliği bir anahtardır.
ER Modeli Kavramları (6) Güçlü Varlık(Strong Entity): Eger bir varlık kümesinin niteliklerinden en az bir anahtar olusturulabiliyorsa, bu varlık kümesine güçlü (strong) varlık kümesi denir. Zayıf Varlık(Weak Entity): Eger bir varlık kümesinin niteliklerinin tümü alınsa bile bir anahtar olusturulamıyorsa bu varlık kümesine zayıf (weak) varlık kümesi denir. Zayıf bir varlık kümesinde niteliklerin degerleri ile varlıkları birbirinden ayırdetmek mümkün degildir. Zayıf bir varlık kümesinin anlamlı olabilmesi için; Bu varlık kümesi ile güçlü bir varlık kümesi arasında bire-bir yada bire-birçok (güçlüden zayıfa) bir ilişki bulunması, Zayıf varlıklar için bu ilişkinin varoluş bagımlılıgı olusturması gerekir. DEPENDENTS_OF EMPLOYEE DEPENDENT 1 n ER Name ………. SSN Name Sex BDate Relationship
COMPANY Veritabanı Örneği (Gereksinimler) Şirket (COMPANY) farklı bölümlerden (DEPARTMENT) oluşuyor. Her bölümün bir adı, numarası ve o bölümü yöneten (manage) bir yöneticisi bulunuyor. Yöneticinin bölümü yönetmeye başladığı tarihi bilmek istiyoruz. Her bir bölüm belirli sayıda projeyi (PROJECT) kontrol (control) ediyor. Her bir proje adı, numarası ve projenin gerçekleştirildiği bölge (location) bilgilerine sahip.
COMPANY Veritabanı Örneği (Gereksinimler) Her bir çalışanla (EMPLOYEE) ilgili olarak sicil numarası (social security number), adres (address), maaş (salary), cinsiyet (sex) ve doğum tarih (birth date) bilgilerini saklamak istiyoruz. Bir çalışan sadece bir bölüme ait olabilir (works for) ancak bir çalışan birden fazla projede çalışabilir (works on) alabilir. Bir çalışanın her bir projede haftada kaç saat çalıştığı bilgisini tutmak istiyoruz. Her bir çalışanın doğrudan bağlı olduğu amirini (supervisor) bilmek istiyoruz. Her bir çalışanın bakmakla yükümlü olduğu belirli sayıda yakını (DEPENDENT) olabilir. Bu kişiler için isim, cinsiyet, doğum tarihi ve yakınlık derecesini bilmek istiyoruz.
ER Şemaları İle Gösterim
“COMPANY” ER Şeması