Veritabanı Tasarımı İlişkileri Eşleştirme
Konular Eşleştirmede Üstsınıf (supertype) uygulaması Altsınıf (subtype) uygulaması Üstsınıf ve altsınıf yay uygulaması 2
Amaç Hayalinizdeki evi yapan bir marangoz evin farklı yerlerinde farklı lambalar kullanacağınızı bilir. Fakat, eğer nereye hangi lambanın konulacağını bildirmezseniz sonuçta fazla aydınlık olan salon ve karanlık olan mutfakla karşılaşabilirsiniz. Üsttip ve alttiplerin eşleştirilmesi ile her bir tip için doğru bilginin saklandığından emin olunur. 3
Üsttip Uygulaması: Tek Tablo Bu seçenek üsttip varlık ve onun alttiplerini tek tablo ile gerçekleştirir. Bu tek tablo uygulaması olarak adlandırılır. Kurallar: 1. Tablolar: Alttiplerin sayısına bakılmaksızın tek bir tablo oluşturulur. 2. Sütunlar: Tablo üsttipin her bir niteliği için aynı seçimlilik durumunda bir sütun oluşturur. 4
Üsttip Uygulaması: Tek Tablo (devam ) Kurallar (devam ): 3. Tablo aynı zamanda alttipin herbir niteliği için bir sütun oluşturulur ancak tamamı seçimli olur. 4. İlave olarak varlığın farklı alttiplerini ayırt etmek için bir zorunlu sütun oluşturulmalıdır. Değerleri bütün alttiplerin kısa isimlerinden almalıdır. (örnek için TMZ, YRZ, DĞR). Bu ayırt edici sütun çoğunlukla <tablo kısa ismi>_tip olarak belirlenir. Örnekte bu çal_tip olacaktır. 5
Üsttip Uygulaması: Tek Tablo (devam ) yönetir 6 ÇALIŞAN * adı * soyadı yönetilir TAM ZAMANLI * maaşı YARI ZAMANLI * saat ücreti dahildir çalıştırılır içerir sağlar BÖLÜM * adı AJANS * adı AJANSLAR (AJN) BÖLÜMLER (BÖL) pk * no pk * no * adı * adı ÇALIŞANLAR (ÇAL) Anahtar Tipi Seçimlilik Sütun Adı pk * no * adı * soyadı o maaşı o saat_ücreti fk1 * böl_no fk2 o ajn_no * çal_tip fk3 o yön_no
Üsttip Uygulaması: Tek Tablo (devam ) Kurallar: 1. Tanımlayıcılar: Eşsiz tanımlayıcılar PK ve UK ye dönüşür 2. İlişkiler: Üstsınıftaki ilişkiler normal şekilde dönüşür. Alttipteki ilişkiler seçimli FK ile gerçeklnir. 3. Bütünlük kısıtları: İlave bir check kısıtı ile her bir alttip için nitelikleri zorunlu olanların NULL olmaması sağlanmalıdır. 7
Üsttip Uygulaması: Tek Tablo (devam ) Kavramsal modelde maaş tam zamanlı çalışanlar için saat ücreti ise yarı zamanlı çalışanları için zorunludur. ÇALŞAN üstsınıfı fiziksel modelde tek tablo ile gerçekleştirilirse bu nitelikler seçimli olur. check kısıtı ERD da modellenen bu iş kurallarının uygulanmasını sağlar. 8
Üsttip Uygulaması: Tek Tablo (devam ) Örnekte, check kısıtı aşağıdaki gibi olacaktır: CHECK (çal_tip = TMZ and maaş is not null and saat_ücreti is null and ajn_no is null) OR (çal_tip = YRZ and maaş is null and saat_ücreti is not null and ajn_no is not null) 9
Üsttip Uygulaması: Tek Tablo (devam ) Kod, değer tam zamanlı çalışan (çal_tip = TMZ ) ise maaş sütununda değer bulunmasını ve saat_ücreti ile ajn_no sütunlarının boş olması gerektiğini kontrol eder. Diğer taraftan değer yarı zamanlı çalışan (çal_tip = YRZ ) ise saat_ücreti ile ajn_no sütunlarında değer bulunması ve maaş sütunun boş olması gerektiğini kontrol eder. 10
Üsttip Uygulaması: Tek Tablo (devam ) ÇALIŞANLAR için örnek veriler ÇALŞAN_NO ADI SOYADI MAAŞI SAAT_ÜCRETİ BÖLÜM_NO AJN_NO ÇAL_TİP ÇAL_NO 100 Ali Okur 5000 90 TMZ 101 101 Hasan Yağız 7000 90 TMZ 102 Mehmet Gür 20 90 17 YRZ 101 200 Saliha Genç 25 10 17 YRZ 205 205 Nermin Ufuk 8000 110 TMZ 11
Tek Tablo/Üsttip Uygulaması Ne Zaman Yapılır Tek tablo uygulaması yaygın ve esnek bir uygulamadır. Tercih edilebilecek durumlar: Niteliklerin çoğunluğu üsttip seviyesinde bulunur. İlişkilerin çoğunluğu üsttip seviyesinde bulunur. İş kuralları alttipler için büyük oranda aynıdır. İlişkileri Eşleştirme 12
Alttip Uygulaması: İki Tablo «İki tablo uygulaması» olarak da adlandırılır. Her bir alttip için bir tablo oluşturulur. Gerçekte, ikiden fazla alttip olacağından dolayısıyla ikiden fazla da tablo olacaktır. 13
Alttip Uygulaması: İki Tablo Kurallar: 1. Tablolar: Her bir alttip için bir tablo. 2. Sütunlar: Her bir üsttipin bir niteliği orijinal seçimlilik durumu ile birlikte bir tabloda sütun olarak yer alır. 3. Her bir alttipin bir niteliği orijinal seçimlilik durumu ile birlikte bir tabloda sütun olarak yer alır. 14
Alttip Uygulaması: İki Tablo (devam ) Kurallar (devam ): 4. Tanımlayıcılar: Üst tip seviyesindeki birincil eşsiz tanımlayıcı anahtarı(uid) her tabloya bir PK oluşturur. Üsttipin ikincil eşsiz tanımlayıcı anahtarları UK olur. 5. İlişkiler: Her tablo üsttip seviyesinde bulunan ilişkiler için aynı seçimlilik durumunda bir FK oluşturur. Alttip seviyesindeki ilişkiler ise sadece ilgili alttipin eşleştirildiği tabloda yer alır. Aynı seçimlilik durumu korunacaktır. 15
Alttip Uygulaması: İki Tablo (devam ) ÇALIŞAN * malzeme GÖMLEK * kol boyu * yaka boyu O yaka tipi AYAKKABI numarası tipi O topuk yük 16 üretilir düzeltilir tamir edilir üretir düzeltilir tamir eder ÜRETİCİ TERZİ AYAKKABICI Anah Tipi GÖMLEKLER (GML) Seçim pk * no Sütun Adı * malzeme * kol_boyu * yaka_boyu o yaka_tipi fk1 o trz_no fk2 * ürt_no Anah Tipi AYAKKABILAR (AYK) Seçim. pk * no Sütun Adı * malzeme * numara * tipi o topuk yük fk1 o tmr_no fk2 * ürt_no
Alttip Uygulaması: İki Tablo (devam ) Bu örnekte GÖMLEK ve AYAKKABI için ayrı tablolar oluşturulur. GÖMLEK için örnek veriler NO MALZEME KOL_BOYU YAKA_BOYU YAKA_TİPİ ÜRT_NO TRZ_NO 10 Keten 33 16 içten düğmeli 65 14 11 Yün 32 15,5 haki 65 22 14 Pamuk 33 15,5 60 22 AYAKKABI için örnek veriler NO MALZEME NUMARA TİPİ TOPUK_YÜK ÜRT_NO TMR_NO 3 Deri 7,5 rugan 1,5 75 44 4 Hasan Yağız cırtlı 1 70 44 17
İki Tablo/Üsttip Uygulaması Ne Zaman Yapılır Alttip uygulamasının tercih edilebileceği durumlar: Alttipler çok az ortak nokta içerir. Üsttipte çokaz nitelik bulunurken alttip seviyesinde daha fazla nitelikler bulunur. İlişkilerin çoğunluğu alttip seviyesinde bulunur. İlişkileri Eşleştirme İş kuralları ve fonksiyonlar alttipler için büyük oranda farklıdır. Tabloların kullanılması farklıdır (Örneğin, bir tablo sorgulanırken diğeri güncellenir) 18
Üsttipi Yay Olarak Modelleme Üsttip varlığıve onun alttipleri bir yay ilişkisi şeklinde modellenebilir. Üsttip ve alttiplerin ERD yapısı şu şekildedir. KIYAFET * malzeme GÖMLEK * kol boyu * yaka boyu o yaka tipi AYAKKABI numarası tipi O topuk yük üretilir düzeltilir tamir edilir üretir düzeltilir tamir eder ÜRETİCİ TERZİ AYAKKABICI 19
Yay Olarak Modelleme Bu ERD de KIYAFET üsttipi ve onun alttiperi olan GÖMLEK ve AYAKKABI bağımsız varlıklar olarak yeniden çizilir. KIYAFET * malzeme üretir üsttipi alttipi üsttipi alttipi GÖMLEK * kol boyu * yaka boyu o yaka tipi AYAKKABI numarası tipi o topuk yük üretilir düzeltilir tamir edilir düzeltilir tamir eder ÜRETİCİ TERZİ AYAKKABICI 20
Yay Olarak Modelleme (devam ) Herbir alttipten oluşturulan tablolar üsttiple 1:1 zorunlu ilişkiye sahip olur. İlişkiler bir yaydır. KIYAFET * malzeme üsttipi üretir alttipi GÖMLEK * kol boyu * yaka boyu o yaka tipi üretilir düzeltilir düzeltilir ÜRETİCİ TERZİ üsttipi alttipi AYAKKABI numarası tipi o topuk yük tamir edilir tamir eder AYAKKABICI 21
Üsttip ve Alttip (Yay) Uygulaması Bu seçenek her bir varlık için bir tablo oluşturur. Üsttip tablosu her bir alttipte bir FK ye sahiptir. Bu FK ler dışlayan tipte ilişkiye sahiptir. Tablodaki her bir satırda bu ilişkilerden sadece bir değer alabileceğinden seçimlidir. Kurallar: 1. Tablolar: Alttip sayısı kadar tablo ve ilave olarak da üsttip için bir tablo oluşturulur 2. Sütunlar: Her tablo bağlı olduğu varlığın bütün niteliklerini orijinal seçimlilik durumuna göre bulundurur. 22
Üsttip ve Alttip (Yay) Uygulaması (devam ) 3. Tanımlayıcılar: Üsttipin birincil eşsiz tanımlayıcısı her bir tablonun PK si olur. Diğer bütün eşsiz tanımlayıcılar ilgili tablolarda UK olur. İlişkileri Eşleştirme 4. İlişkiler: Her tablo varlık seviyesinde kurduğu ilişkiler için bir FK ye orijinal seçimlilik durumuyla sahip olur.. 23
Üsttip ve Alttip (Yay) Uygulaması (devam ) İlişkileri Eşleştirme 5. Bütünlük kısıtları: Üsttip seviyesinde ilave iki sütun eklenir. Bunlar alttiplere işaret eden FK sütunlarıdır. Sütunlar seçimlidir. Çünkü FK ler yay yapısındadır. İlave CHECK kısıtı ile yayın uygulanması sağlanır. FK sütunları 1:1 zorunlu ilişkiyi gerçekleştirdikleri için aynı zamanda UK dir. 24
Üsttip Alttip Uygulaması: İki Tablo (devam ) İlişkileri Eşleştirme KIYAFETLER (KYF) Anah Tipi Seçim Sütun Adı pk * no * malzeme fk1, uk1 o gml_no gömlekler işaret eder fk2, uk2 o ayk_no ayakkabılara işaret eder fk3 * ürt_no üreticilere işaret eder 25 GÖMLEKLER (GML) Anah Tipi Seçim Sütun Adı pk * no * kol_boyu * yaka_boyu o yaka_tipi fk1 o trz_no AYAKKABILAR (AYK) Anah Tipi Seçim. Sütun Adı pk * no * numara * tipi o topuk yük fk1 o tmr_no terzilere işaret eder tamircilere işaret eder
Bu durum çok nadir olarak uygulanır: Alttipler çok az ortak nokta içerir ve her tablo bağımsız olarak bilgiyi gösterir. Örneğin, KIYAFET tablosu bütün global bilgiyi verirken alttipleri olan AYAKKABILAR ve GÖMLEKLER ise spesifik bilgileri verir. Global ve spesifik bilgilerin birleşimi ise çok nadiren gereklidir. İş kuralları ve fonksiyonlar bütün tipler için oldukça farklıdır. Tabloların kullanılması farklıdır. İlişkileri Eşleştirme Üsttip ve Alttip Beraber (Yay) Ne Zaman Uygulanır 26