Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bölüm 6: Varlık-İlişki Modeli (Entity-Relationship Model)

Benzer bir sunumlar


... konulu sunumlar: "Bölüm 6: Varlık-İlişki Modeli (Entity-Relationship Model)"— Sunum transkripti:

1 Bölüm 6: Varlık-İlişki Modeli (Entity-Relationship Model)

2 Modelleme (Tasarım) Ör: kişi, şirket, olay, bitki
Kavramsal tasarım veritabanında tutulacak verşlerin daha üst seviyede gösterilmesi için kullanılır. Kavramsal tasarım için en yaygın olarak kullanılan model Varlık-İlkişki Modelidir (E-R:Entity-Relationship Model) Bir veritabanı; varlıklar, ve varlıklar arasındaki ilişkiler kullanılarak modellenebilir. Varlık : Var olan ve benzerlerinden ayırt edilebilen herşey varlıktır. Ör: kişi, şirket, olay, bitki Varlıkların nitelikleri vardır. Ör: Kişilerin ismi ve adresleri vardır Birden fazla varlığın oluşturduğu kümeye varlık kümesi denir. Ör: kişiler kümes, şirketler kümesi, tatiller kümesi vb.

3 müsteri ve borc Varlık Kümeleri
Musteri_id musteri_ musteri_ musteri_ borc_no borc_miktarı isim sokak sehir musteri borc

4 İlişki Kümeleri Farklı varlıklar arasındaki ilişkileri ifade eder.
Ör: Hasan mevduat_sahibi A-102 musteri varlığı ilişki kümesi hesap varlığı İlişki kümesi birden fazla varlık arasında kurulan matematiksel bir ilişkiyi ifade eder. {(e1, e2, … en) | e1  E1, e2  E2, …, en  En} burada (e1, e2, …, en) bir ilişkidir. Ör: (Hasan, A-102)  mevduat_sahibi

5 borc_sahibi İlişki Kümesi
musteri borc

6 İlişki Kümeleri (Devam)
Varlıkların herhangi bir özelliği nitelik olarak ifade edilir. Nitelikler varlıkların bir özelliği olabileceği gibi ilişki kümelerine ait nitelikler de olabilir. Bu gibi niteliklere tanımlayıcı nitelik denir. Örneğin musteri ve hesap varlıkları arasındaki mevduat_sahibi ilişki kümesinde erisim_tarihi isimli bir nitelik gerekebilir. Mevduat_sahibi (erisim_tarihi) Hesap (hesap_no) Musteri (musteri_isim)

7 İlişkinin derecesi İlişkinin derecesi, bir ilişkide yer alan varlık sayısı ile belirlenir. Sadece iki varlığın oluşturduğu bir ilişkiye ikili (yada derece 2) bir ilişki denir. İlişki dereceleri genellikle ikilidir. Bazı durumlarda ilişki kümeleri ikiden fazla varlıktan oluşabilir. Ör: Bir banka çalışanları farklı şubelerde farklı gorevleri var ise bu durumda calısan, gorev , ve sube varlıkları arasında üçlü bir ilişki kurulur.

8 Nitelikler Varlıların her bir özelliği bir nitelik olarak ifade edilir. Etki Alanı– Niteliklerin alabileceği değerler kümesini tanımlar. Nitelik türleri: Basit ve Bileşik nitelikler. Tek-değerli ve çok-değerli nitelikler. Ör: çok-değerli nitelik: telefon_no Türetilmiş nitelikler Değerleri fiğer nitelikler kullanılarak bulunabilir Ör: Tarih ve Dogum_yılı niteliklerinin değerlerini biliyorsak yas niteliğinin değerini hesaplayabiliriz. Ör: musteri= (musteri_id, musteri _isim, musteri_sokak, musteri_sehir) borc= (borc_no, borc_miktari)

9 Bileşik nitelikler Bileşik nitelikler Bileşen nitelikler

10 Eşleme Türleri Bir varlık kümesinde bulunan bir varlığın bir ilişki kümesi aracılığı ile diğer varlık kümesinde kaç varlığa eşlenebileceğini belirtir. İkili ilişki kümelerindeki ilişkileri tanımlamak için çokça kullanılr. İkili ilişki kümelerindeki eşlemeler aşağıdaki eşleme türlerinden biri ile ifade edilir : Bire - bir (1-1) Bire - çok (1-n) Çoğa - bir (n-1) Çoğa - çok (n-n)

11 Eşleme Türleri (devam)
1-1 1-n Not: A ve B kümelerindeki bazı elemanlar karşı kümedeki hiçbir elemana eşlenmeyebilir.

12 Eşleme Türleri (devam)
n-1 n-n Not: A ve B kümelerindeki bazı elemanlar karşı kümedeki hiçbir elemana eşlenmeyebilir.

13 Anahtarlar Bir varlık kümesindeki tüm varlıkları birbirinden ayrıştıran bir veya birden fazla niteliğe süper anahtar denir. En az nitelikten oluşan süper anahtara aday anahtar denir. Aday anahtarların birden fazla olduğu durumdan tabloda kullanılmak üzere seçilen anahtara ise birincil anahtar denir.

14 İlişki Kümelerinde Anahtarlar
İilşki kümelerinin süper anahtarları ilişkiyi oluşturan varlıkların birincil anahtarları bir araya getirilerek oluşturulur. Burada iki varlık kümesi arasındaki eşlemenin türüne bakmak gereklidir. Birden fazla birincil anahtar olduğu durumlarda birincil anahtarı belirlemek için ilişkinin ifade ettiği anlama bakılması gerekir.

15 İlişki Kümelerinde Birincil Anahtar oluşumu
Çoğa-çok Her iki varlık kümesinin birincil anahtarlarının birleşimi kullanılır. Bire-Çok veya Çoğa-Bir: İlişkinin “çok” tarafında yer alan varlık kümesinin birincil anahtarı kullanılır. Bire-Bir: İlişkiyi oluşturan iki varlıktan herhangi bir tanesinin birincil anahtarı kullanılır.

16 E-R Şeması Dikdörtgen: Varlık kümesi Baklava: İlişki Kümesi
Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi Dikdörtgen: Varlık kümesi Baklava: İlişki Kümesi Çizgiler: Varlıkları nitelik kümelerine ve nitelik kümelerini ilişki kümelerine bağlamak için kullanılır. Elips: Nitelik Çift çizgili elips: Çok değerli nitelik. Kesik çizgili elips: Türetilmiş nitelik. Altı çizilmiş nitelik: Anahtar nitelik

17 E-R Şeması (Bileşik, Çok Değerli ve Türetilmiş Nitelikler)
Customer =musteri (mus_id, mus_ilkisim, mus_orta_isim, mus_soy_isim, sokak_isim, sokak_no, daire_no, sehir, ulke, posta_kodu, telefon_no, dogum_tarihi, yas)

18 İlişki Kümelerinde Anahtarlar
Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Account = hesap (hesap_no, mevduat_miktari) Depositor= mevduat_sahibi (erisim_tarihi) Erişim tarihi burada tanımlayıcı niteliktir

19 Özyineli (Recursive) İlişkiler - Roller
İlişkiler çoğunlukla farklı varlık kümeleri ile oluşturulur. Ancak bazı durumlarda tek bir varlık kümesi kendisi ile ilişki kurabilir. Bu tür ilişkiler özyineli (recursive) ilişkiler olarak anılır. Bu tür ilişkilerde varlıkların bir birleri ile olan ilişkiler «roller» ile gösterilir. Roller E-R şemasında varlıkları ilişkiler birleştiren çizgiler üzerine yazılır (opsiyonel) Emp_id: calısan_id Emp_name: calısan_isim Emp_str: calisan_sok Emp_city: calisan_sehir Telephone_no: telefon_no patron calısan calısır isci

20 Eşlemelerin Gösterilişi
() : «Bir» tarafı (—) : «çok» tarafı Bire-bir (1-1) eşleme (ilişki) Bir müşterrini sadece bir boru vardır. Borc bir tek müşteriye aittir. Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

21 Bire-Çok (1-n) İlişki Her borç tek bir müşteriye aittir
Her müşterinin bir veya daha fazla (sıfır dahil !) borcu olabilir Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

22 Çoğa-bir (n-1) İlişki Her boçi bir veya daha fazla müşteriye (sıfır dahil !) ait olabilir. Her müşterinin en fazla tek bir borcu vardır. Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

23 Çoğa-Çok (n-n) İlişki Bir müşterinin birden fazla (sıfır dahil !) borcu olabilir Bir borç birden fazla müşteriye (sıfır dahil !) ait olabilir. Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

24 Varlık kümesindeki varlıkların eşlemeye katılma biçimi
Tam Katılım: (çift çizgi ile gösterilir) varlık kümesindeki her varlık ilişki kümesindeki en az bir ilişki ile eşlenmiştir Ör: borc kümesinin borc_sahibi ilişkisi ile eşlemesi tamdır (her borcun en az bir sahibi vardır) Kısmi Katılım: (tek çizgi ile gösterilir) varlık kümesindeki bazı varlık ilişki kümesindeki hiçbir ilişki ile eşlenmemiş olabiliri. Ör: Musteri kumesinin borc_sahibi ilişkisi ile eşlemesi kısmidir (bazı müşterilerin borcu olmayabilir) Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

25 Üçlü bir İlişki için E-R Şeması Örneği
Employee=musteri(mus_no, mus_isim, mus_sok, mus_sehir, telefon) Branch = sube (sube_isim, sube_sehir, mevduat_birikimi) Job= Görev (Görev_adı, seviye) Works_on= calisir

26 Eşleme Türünün Tasarıma olan etkisi
6. slayttaki örnekte bir müşterinin birden fazla hesabı ve her hesapında birden fazla sahibi olabileceği (çoğa-çok eşleme) durum modellenmişti. Bu durumda erisim_tarihi tanımlayıcı nitelik olarak kullanılmıştı. Eğer, her hesap bir tek müşteriye ait olursa, erisim_tarihi niteliği hesap varlığına ait bir nitelik olarak kullanılabilir. Hesap(hesap_no, erisim_tarihi) Musteri(musteri_isim) Mevduat_sahibi

27 Zayıf Varlık Kümeleri Birincil anahtar niteliğne sahip olmayan valık kümeleri zayıf varlık kümesi olarak adlandırılırlar Zayıf varlık kümeleri güçlü varlık kümeleri ile ilişkilendirilerek kullanılırlar. Yani zayıf varlık kümelerinin güçlü varlık kümelerine var olma bağımlılığı vardır. Zayıf varlık kümelerinin var olmasını sağlayan güçlü varlık kümelerine destekleyici varlık kümesi denir. Zayıf varlık kümelerinin destekleyici varlık kümeleri ile olan ilişkisine tanımlayıcı ilişki denir. Bu ilişki zayıf varlık kümesinden destekleyici varlık kümesine doğru çoğa-bir eşlemesi şeklinde ve tam katılımcı olarak yer alır. E-R şemasında zayıf varlık kümesi ve tanımlayıcı ilişki çift çizgi kullanılarak gösterilir. Zayıf varlık kümesindeki varlıkları birbirinden ayrıştıran niteliğe ayırıştırıcı (veya kısmi anahtar) denir. (E-R şemasında kesik çizgilerle alt çizilerek gösterilir) Zayıf varlık kümesinin birincil anahtarı onun var olmasını sağlayan destekleyici varlık kümesinin birincil anahtarı ve kısmi anahtarın bir arada kullanılması ile elde edilir.

28 Zayıf Varlık Kümeleri (devam)
Örnek: Aşağıdaki borc – taksit ilişkisinde borç olmadan taksit olamayacağı için ve ayni taksit numarası farklı borçlar için kullanılabileceğinden taksitvarlık kümesi zayıf bir varlık kümesidir. Taksit_no – Kısmi anahtar Taksit tablosu için birincil anahtar– (borc_no, taksit_no) Payment =taksit (taksit_no, taksit_tarih, taksit_miktari) Loan = borc (borc_no, borc_miktari) Loan_payment= borc_taksit

29 Zayıf varlık kümesi örnekleri
Üniversite- Fakülte (fakülte zayıf) Dersler – Açılan Dersler (açılan ders zayıf)

30 Özelleşme Genelden-özele doğru çalışan bir tasarım yöntemidir.
Bir ana varlık kümesine bağlı olarak biribirinden farklı olan alt varlık kümleri oluşturularak elde edilir. Alt varlık kümlerinin sadece kendilerine ait nitelikleri olabileceği gibi türedikleri ana varlık kümelerinin niteliklerini de taşırlar. Alt varlık kümeleri bağlı oldukları ana varlık kümlerinden bağımsız olarak diğer varlık kümleri ile ilişki oluşturabilirler. E-R şemasında üçgen olarak gösterilir (kısaca “is a” (ISA) ilişkisi olarak adlandırılır ) Ör: musteri is a kisi

31 Özelleşme - Örnek person= kişi (kisi_id, isim, sokak, sehir)
employee= çalışan (maas) Customer = müşteri (kredi_durumu) Officer = memur (ofis_no) Teller = vezne görevlisi (vezne_no, calistigi_saat) Secretary= sekreter (calistigi_saat)

32 Genelleştirme Genelleştirme özelleşmenin zıt işlemidir.
Genelleştirme ve özelleşme aynı tasarım amacına yönelik kullanılan teknikler olduğundan sıkça beraber kullanılırlar.

33 Özelleşme ve Genelleşme (devam)
Bir varlık kümesinde farklı kriterlere dayalı olarak farklı özelleşmeler uygulanabilir. Ör. Calisan varlık kümesi (tam_zamanlı ve yarı_zamanlı) olarak özelleşebileceği gibi (memur, sekreter, vezne_görevlisi) olarak da özelleşebilir. Bu durumda her bir calisan hem tam_zamanlı veya yarı_zamanlı olur Hemde memur veya sekreter veya vezne_görevlisi olabilir.

34 Özelleşme ve Genelleşme (devam)
Alt varlık kümelerinin oluşumunda iki yöntem uygulanabilir: Koşula dayalı yöntem Ör: 18 yaşından küçük tüm müşteriler, çocuk, diğerleri yetişkin olarak alt varlık kümelerine aktarılabilir. Kullanıcı tarafından tanımlanan yöntem Kullanıcı varlıkları alt varlık kümelerine yerleştirir. Ana varlık kümesindeki elemanlar tek bir alt varlık kümesine veya biden fazla alt varlık kümesine ait olabilir. Tek alt varlık kümesine ait olma durumu: Üst varlık kümesindeki elemanlar sadece bir alt varlık kümesinin elemanları olabilir. Ör: Kişi ya çalışan ya da müşteri dir. İki alt varlık kümesinde birden yer alamaz. E-R şemasında ISA üçgeninin yanında disjoint kelimesi ile belirtilir. Birden fazla alt varlık kümesine ait olma durumu Üst varlık kümesindeki elemanlar birden fazla alt varlık kümesinin elemanları olabilir Ör: Kişi ayni anda hem çalışan hem de müşteri olabilir.

35 Özelleşme ve Genelleşme (devam)
Tam Katılım -- Kısmi Katılım Ana varlık kümesindeki elemanların tamamının veya sadece bir kısmının alt varlık kümelerinden birinin elemanı olacağını gösteriri. Tam katılım: Ana varlık kümesindeki tüm elemanlar alt varlık kümlerinden en az birine aittir. Kısmi katılım: Ana varlık kümesindeki elemanlardan bazıları hiç bir alt varlık kümesine ait olmayabilir.

36 E-R Modeline uygun Tasarım yaparken Karar verme
E-R modeline uygun olarak tasarım yaparken sıkça aşağıdaki soruları cevaplamak durumda kalırız. Bir «nesne» nin varlık mı yoksa bir varlığa ait bir nitelik mi olduğu. Gerçekte var olan bir durumun en iyi varlık olarak mı yoksa ilişki olarak mı modellenceği. Genellikle elle tutulur, gözle görülür nesneler varlık, bir aksiyonu ifade eden durumlar ise varlıklar arasında bir ilişki olarak modellenir. İlişkinin derecesi ne olmalıdır? En yaygın olarak kullanılan derece 2 dir ancak bazı durumlarda üçüncü derece ilişkiler kaçınılmaz olabilir. Kullanılan varlığın güçlü veya zayıf olacağı Alt varlık kümelerinin tasarıma dahil edilp edilmeyeceği.

37 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
(Güçlü) Varlık Kümelerinin Tabloya Dönüştürülmesi Varlık kümeleri tabloya dönüşürken, nitelikleri de tablonun sütunlarını oluşturur. Ör: Musteri (musteri_id, musteri_isim, musteri_sokak, musteri_sehir)

38 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Zayıf Varlık Kümelerinin Tabloya Dönüştürülmesi Zayıf varlık kümleri tabloya dönüşürken, nitelikleri de tablonun sütunlarını oluşturur. Destekleyici varlık kümesinin anahtar niteliği tabloya eklenir. Ör: taksit= ( borc_no, taksit_no, taksit_tarihi, taksit_miktari ) Payment (loan_number, payment_number, payment_date, taksit= ( borc_no, taksit_no, taksit_tarihi, taksit_miktari )

39 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
İlişkilerin Tabloya Dönüştürülmesi Çoğa-Çok (n-n) İlişkilerin Tabloya Dönüştürülmesi Varlık Kümeleri tablolara dönüştürülür. Nitelikler tabloların sütunlarına dönüştürülür. Oluşturulan ilişki isminde üçüncü bir tablo oluşturulur. İlişkiyi oluşturan tabloların birincil anahtarları bu tablonun sütunlarını oluşturur. Tanımlayıcı nitelikler (eğer varsa) bu tabloya sütun olarak eklenirler. Ör: borc ve musteri tabloları arasındaki ilişkiyi modelleyen borc_sahibi tablosu: borc_sahibi= (musteri_id, borc_no ) olarak oluşturulur.

40 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
İlişki Tablolarının elimine edilmesi Bire-Çok veya Çoğa-Bir ilişkilerinde, ilişkinin çok tarafında varlıkların katılımı TAM ise ilişki için üçüncü bir tablo yaratmaya gerek yoktur. Account (account_number, balance) = hesap (hesap_no, mevduat_miktari) Branch (branch_name, branch_city,assets) = sube (sube_isim, sube_sehir, mevduat_birikimi Account-branch = hesap-şube

41 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Bu durumda: Varlık kümeleri tabloya dönüşürken, nitelikleri de tablonun sütunlarını oluşturur. İlşkinin çok tarafındaki varlığın oluşturduğu tabloya bir tarafındaki varlığın birincil anahtarı eklenir. Tanımlayıcı nitelikler (eğer varsa) bu tabloya sütun olarak eklenirler. Ör: Şekildeki account-branch (hesap-şube) ilişkisini üçüncü bir tablo için üçüncü bir tablo yaratmak yerine branch (şube) tablosunun birincil anahtarı olan branch-name (sube_isim) niteliği account (hesap) talosuna sütun olarak eklenir. Böylece 3 yerine 2 tablo kullanılmış olur.

42 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Bire-Bir İlişkilerinin Tabloya Dönüştürülmesi Varlık kümeleri tabloya dönüşürken, nitelikleri de tablonun sütunlarını oluşturur. İlişkinin herhangi bir tarafı çoğa-bir (veya bire-çok) ve tam katılımlı ilişkideki «çok» taraf olarak kabul edilir. Çoğa-biri tam katılımlı ilişkideki kural uygulanır: İlşkinin çok tarafındaki varlığın oluşturduğu tabloya bir tarafındaki varlığın birincil anahtarı eklenir. Tanımlayıcı nitelikler (eğer varsa) bu tabloya sütun olarak eklenirler. Böylece 3 yerine 2 tablo kullanılmış olur.

43 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Bire-Çok veya Çoğa-Bir ilişkilerinde, ilişkinin çok tarafında varlıkların katılımı KISMİ ise ilişki tablosu elimine edilemez. Bu durumda 3 tabloya ihtiyaç vardır. Varlık Kümeleri tablolara dönüştürülür. Nitelikler tabloların sütunlarına dönüştürülür. Oluşturulan ilişki isminde üçüncü bir tablo oluşturulur. İlişkiyi oluşturan tabloların birincil anahtarları bu tablonun sütunlarını oluşturur. Tanımlayıcı nitelikler (eğer varsa) bu tabloya sütun olarak eklenirler.

44 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Bileşik ve Çok Değerli Niteliklerin Tabloya Dönüştürülmesi Bileşik Nitelikler Bileşik nitelikler için en uçtaki her bir alt nitelik tabloya sütun olarak eklenir. Ör: musteri varlığında isim bileşik niteliğini oluşturan alt nitelikler ilkisim, orta_isim ve soyisim ise tabloya ilkisim, orta_isim ve soyisim isimli 3 sütun eklenir ( isim tabloya eklenmez) Çok Değerli Nitelikler Bir varlığa ait her bir çok değerli nitelik için ayrı bir tablo oluşturulur. Tablonun sütunları; 1- çok değerli niteliğin kendisi 2- niteliğin ait olduğu varlığın birincil anahatrından oluşur. Ör: musteri (musteri_no, isim, adres, tel_no) varlığı tabloya dönüşürken; Tablo 1: musteri (musteri_no, isim, adres) Tablo 2: telefon (musteri_no, tel_no) olarak dönüşür.

45 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Özelleşmenin Tabloya Dönüştürülmesi Metod 1: Modeldeki her ana varlık için bir tablo oluşturulur. Her alt varlık için sütunlarının kendisine ait niteliklerden ve ait olduğa ana varlığın anahtar niteliğinden oluşan bir tablo yaratılır. Ör: tablo sütunlar kişi kisi_id, isim, sokak, sehir musteri kisi_id, kredi_durumu calisan kisi_id, maas Dezavantaj: Ör: musteri hakkındaki tüm bilgileri elde etmek için 2 şemaya erişim gerekir. Genel olarak sorgularda birden fazla şemaya erişim gerekir.

46 Varlık-İlişki Modelinin Tablolara Dönüştürülmesi
Metod 2: Her varlık için kendine ait ve ait olduğu ana varlığa ait tüm niteliklerden oluşan bir tablo yaratır. Ör: tablo sütunlar kisi kisi_id, isism, sokak, sehir musteri kisi_id, isism, sokak, sehir, kredi_durumu calisan kisi_id, isism, sokak, sehir, maas Dezavantaj: Ör: sokak ve sehir sütunları gereksiz bir sekilde her tabloda yer alıyor. Genel olarak gereksiz şekilde fazlada veri tutuluyor.


"Bölüm 6: Varlık-İlişki Modeli (Entity-Relationship Model)" indir ppt

Benzer bir sunumlar


Google Reklamları