Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-usewww.db-book.com Bölüm 6: Varlık-İlişki.

Benzer bir sunumlar


... konulu sunumlar: "Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-usewww.db-book.com Bölüm 6: Varlık-İlişki."— Sunum transkripti:

1 Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Bölüm 6: Varlık-İlişki Modeli (Entity-Relationship Model)

2 ©Silberschatz, Korth and Sudarshan6.2Database System Concepts - 5 th Edition, July 11, 2005 Modelleme (Tasarım) 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 ©Silberschatz, Korth and Sudarshan6.3Database System Concepts - 5 th Edition, July 11, 2005 müsteri ve borc Varlık Kümeleri Musteri_id musteri_ musteri_ musteri_ borc_no borc_miktarı isim sokak sehir musteri borc

4 ©Silberschatz, Korth and Sudarshan6.4Database System Concepts - 5 th Edition, July 11, 2005 İlişki Kümeleri Farklı varlıklar arasındaki ilişkileri ifade eder. Ör: Hasanmevduat_sahibiA-102 musteri varlığıilişki kümesihesap varlığı İlişki kümesi birden fazla varlık arasında kurulan matematiksel bir ilişkiyi ifade eder. {(e 1, e 2, … e n ) | e 1  E 1, e 2  E 2, …, e n  E n } burada (e 1, e 2, …, e n ) bir ilişkidir. Ör: (Hasan, A-102)  mevduat_sahibi

5 ©Silberschatz, Korth and Sudarshan6.5Database System Concepts - 5 th Edition, July 11, 2005 borc_sahibi İlişki Kümesi musteri borc

6 ©Silberschatz, Korth and Sudarshan6.6Database System Concepts - 5 th Edition, July 11, 2005 İ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. Musteri (musteri_isim) Hesap (hesap_no) Mevduat_sahibi (erisim_tarihi)

7 ©Silberschatz, Korth and Sudarshan6.7Database System Concepts - 5 th Edition, July 11, 2005 İ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. İlişkinin derecesi  Ö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 ©Silberschatz, Korth and Sudarshan6.8Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.9Database System Concepts - 5 th Edition, July 11, 2005 Bileşik nitelikler Bileşen nitelikler

10 ©Silberschatz, Korth and Sudarshan6.10Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.11Database System Concepts - 5 th Edition, July 11, 2005 Eşleme Türleri (devam) 1-11-n Not: A ve B kümelerindeki bazı elemanlar karşı kümedeki hiçbir elemana eşlenmeyebilir.

12 ©Silberschatz, Korth and Sudarshan6.12Database System Concepts - 5 th Edition, July 11, 2005 Eşleme Türleri (devam) n-1n-n Not: A ve B kümelerindeki bazı elemanlar karşı kümedeki hiçbir elemana eşlenmeyebilir.

13 ©Silberschatz, Korth and Sudarshan6.13Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.14Database System Concepts - 5 th Edition, July 11, 2005 İ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 ©Silberschatz, Korth and Sudarshan6.15Database System Concepts - 5 th Edition, July 11, 2005 İ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 ©Silberschatz, Korth and Sudarshan6.16Database System Concepts - 5 th Edition, July 11, 2005 E-R Şeması 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 Customer =musteri(mus_no, mus_isim, mus_sok, mus_sehir) Loan = borc (borc_no, borc_miktari) Borrower = borc_sahibi

17 ©Silberschatz, Korth and Sudarshan6.17Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.18Database System Concepts - 5 th Edition, July 11, 2005 İ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 ©Silberschatz, Korth and Sudarshan6.19Database System Concepts - 5 th Edition, July 11, 2005 Ö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) calısan calısır isci patron Emp_id: calısan_id Emp_name: calısan_isim Emp_str: calisan_sok Emp_city: calisan_sehir Telephone_no: telefon_no

20 ©Silberschatz, Korth and Sudarshan6.20Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.21Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.22Database System Concepts - 5 th Edition, July 11, 2005 Ç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 ©Silberschatz, Korth and Sudarshan6.23Database System Concepts - 5 th Edition, July 11, 2005 Ç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 ©Silberschatz, Korth and Sudarshan6.24Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.25Database System Concepts - 5 th Edition, July 11, 2005 Üç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 ©Silberschatz, Korth and Sudarshan6.26Database System Concepts - 5 th Edition, July 11, 2005 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. 6. slayttaki 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. Musteri(musteri_isim) Hesap(hesap_no, erisim_tarihi) Mevduat_sahibi

27 ©Silberschatz, Korth and Sudarshan6.27Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.28Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.29Database System Concepts - 5 th Edition, July 11, 2005 Zayıf varlık kümesi örnekleri Üniversite- Fakülte (fakülte zayıf) Dersler – Açılan Dersler (açılan ders zayıf)

30 ©Silberschatz, Korth and Sudarshan6.30Database System Concepts - 5 th Edition, July 11, 2005 Ö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 ©Silberschatz, Korth and Sudarshan6.31Database System Concepts - 5 th Edition, July 11, 2005 Ö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 ©Silberschatz, Korth and Sudarshan6.32Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.33Database System Concepts - 5 th Edition, July 11, 2005 Ö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 ©Silberschatz, Korth and Sudarshan6.34Database System Concepts - 5 th Edition, July 11, 2005 Ö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 ©Silberschatz, Korth and Sudarshan6.35Database System Concepts - 5 th Edition, July 11, 2005 Ö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 ©Silberschatz, Korth and Sudarshan6.36Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.37Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.38Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.39Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.40Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.41Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.42Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.43Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.44Database System Concepts - 5 th Edition, July 11, 2005 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 ©Silberschatz, Korth and Sudarshan6.45Database System Concepts - 5 th Edition, July 11, 2005 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: tablosü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 ©Silberschatz, Korth and Sudarshan6.46Database System Concepts - 5 th Edition, July 11, 2005 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 kisikisi_id, isism, sokak, sehir musterikisi_id, isism, sokak, sehir, kredi_durumu calisankisi_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.


"Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-usewww.db-book.com Bölüm 6: Varlık-İlişki." indir ppt

Benzer bir sunumlar


Google Reklamları