VERİTABANI YÖNETİMİ VERİ MODELİ 3.HAFTA ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Modelleri Veri tabanının oluşturulması amacıyla geçmişten günümüze kadar bir takım farklılıklarla çeşitli veri modelleri geliştirilmiştir. Her biri, bir öncekinin eksiğini tamamlamak amacına yöneliktir. Basit Veri Modelleri Geliştirilen ilk iki model (Hiyerarşik veri modeli ve Ağ veri modeli), diğerlerine göre basit bir yapı oluşturduğu için bu modelleri basit veri modelleri olarak adlandırmamız yerinde olacaktır. Modern Veri Modelleri Zamanla bilgisayarda bir işlem yapabilmek için sadece verinin islenmesi yeterli olmamaya başladı. Bu nedenle veri ilişkilerinin daha kolay, anlaşılır ve esnek olabilmesi amacıyla yapılan çalışmalar modern veri modellerinin ortaya çıkmasını sağladı. Modern veri modelleri aşağıdaki gibi sıralanır: Varlık-ilişki Veri Modeli İlişkisel Veri Modeli Nesne İlişkisel Veri Modeli Nesne Yönelimli Veri Modeli ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Modelleme Model: Bir nesnenin, bir sistemin veya bir fikrin temsilidir. İnsana ait düşünceleri, açık ve analiz edilebilir sunumlara dönüştürme sürecine modelleme denilir (Olson ve Courtney, 1992) Mühendisler bir sistemi tasarlarken; Tasarladıkları sisteme ait bir model geliştirirler Model üzerinde denemeler yaparlar Model’in farklı durumlarda davranışlarını incelerler Böylece problemi kolayca çözülebileceği bir yapıya oturtmaya çalışırlar. Temel modelleme araçları iki gereksinimi karşılamalıdır: İfade edebilme gücü: Gerçek dünyadaki durumları tanımlayabilecek şekilde genel bir yapıda olmalı. Kullanışlılık: Kolay kullanılabilen ve yönetilebilen bir yapıda olmalıdır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Modelleme Veri tabanında asıl önemli kavram, kayıt yığını ya da bilgi parçalarının tanımlanmasıdır. Bu tanıma şema adı verilir. Şema, veri tabanında kullanılacak bilgi tanımlarının nasıl modelleneceğini gösterir. Bu modele veri modeli (data model), yapılan işleme de veri modelleme denir. En yaygın olanı ilişkisel modeldir (relational model). Bu modelde veriler tablolarda saklanır. Tablolarda bulunan satırlar (row) kayıtların kendisini, sütunlar (column) ise bu kayıtları oluşturan bilgi parçalarının ne türden olduklarını belirtir. Başka modeller (sistem modeli ya da ağ modeli gibi) daha belirgin ilişkiler kurarlar. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Modelleri : Tarihçe Hiyerarşik Veri Modeli en eski model olup 60-70'li yıllarda kullanılmıştır 1969’da ortaya çıkan Ağ Veri Modeli 1970’li yıllarda ve 1980’li yılların ilk yarısında kullanılmıştır. İlişkisel veri modeli de ilk kez 1969 yılında ortaya atılmış, 1970’li yılların sonunda kullanılmaya başlanmış ve 1985 yılından sonra yaygınlaşmış bir yaklaşımdır. 1990’lı yıllarda yaygın kullanılan VTYS'lerin hemen hemen tümünün ilişkisel tabanlı olduğu söylenebilir. Nesneye-yönelik veri modeli yaklaşımı ise on yılı aşkın süredir gündemde olan, günümüzde çok yaygın kullanılmasa bile, kullanımı giderek yaygınlaşan bir yaklaşımdır. Geçmişe baktığımızda, ilişkisel yaklaşımın kullanılmaya başlanması ile sıradüzensel ve ağ yaklaşımlarının terk edildiği görülmektedir. Buna karşılık nesneye-yönelik yaklaşımın kullanılmaya başlanması ile ilişkisel yaklaşım terk edilmemiştir. Günümüzde hem ilişkisel hem de nesneye-yönelik yaklaşımı birlikte kullanan VTYS'lerinin yaygınlaştığı görülmektedir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Modeli Bir veri tabanı yapısının temelini veri modeli kavramı oluşturmaktadır. Veriyi mantıksal düzeyde düzenlemek için kullanılan kavramlar, yapılar ve işlemler topluluğuna veri modeli denir. Veri modeli, bir veritabanının yapısını açıklayan kavramlar bütünüdür. Veritabanı yapısı ise; veri türleri, bağıntılar ve veri kısıtlamalarından oluşur. Verileri mantıksal düzeyde düzenlemek için kullanılan yapılar, kavramlar ve işlemler topluluğuna veri modeli (data model) denir. Veri tabanı, bir veri modeli üzerine inşa edilir. Veri modelleri, veri tabanındaki ilişkileri soyut bir şekilde canlandırdığından kavramsal düzeyde oluşturulur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri modeli Bir VTYS'yi kullanarak oluşturulacak her veri tabanında yer alacak veriler ve veriler arası ilişkiler, mantıksal düzeyde ilgili veri modeline göre düzenlenir; bu veri modeli kullanılarak veri tabanının kavramsal şemaları oluşturulur. Varlıklar arasında oluşan karmaşık ilişkileri basite indirgemek amacıyla geliştirilmiştir. En çok kullanılan veri modeli “ilişkisel veri modeli” dir. Günümüzde kullanılan VTYS'lerin hemen hemen tümü ilişkisel veri modeline dayalıdır. Son zamanlarda ortaya çıkan nesneye yönelik veri modeli, ilişkisel veri modeli ile birlikte bazı VTYS'lerde kullanılmaktadır. İlişkisel veri modeli türlerinden olan Varlık-İlişki (Entitiy-Relationship ) modeli günümüzde yaygın şekilde kullanılmaktadır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık – İlişki Modeli (Entitiy-Relationship E-R ) Veritabanı tasarlanırken, ilk olarak, veritabanı yapılacak kuruluşun veri tabanına olan ihtiyacı belirlenir ve ihtiyaç hissedilen bilgilerin analizi yapılır. Bu süreçte, veritabanı tasarımcısı, kullanıcı ihtiyaçlarını tespit eder. Veriler toplanıp sistem analizi yapıldıktan sonra, ilişkisel veri modeline göre bir veritabanı şeması oluşturulur. Bu şema, aslında veritabanı kullanıcılarının ihtiyaç duydukları verilerin kısa açıklamasıdır. Bu şema içerisinde varlık tipleri ve ilişkilerin açıklaması bulunur. Daha sonra bu şemaya göre tablolar çıkarılır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişki Modeli Varlık-ilişki modeli,1976 yılında PP Chen tarafından geliştirilen bir modeldir. Varlık-ilişki modeli, VTYS'den bağımsız veri çözümlemede en çok kullanılan modeldir. Varlık-İlişki Modeli Kavrsamsal Tasarım aşamasında kullanılır ER modelinde veritabanı şeması ER diyagramları şeklinde gösterilir. Veritabanımızdaki varlıklar ve ilişkiler nelerdir? Bu varlıklar ve ilişkiler arasındaki hangi bilgileri veritabanında saklayacağız? Bütünlük kısıtlamaları ve iş kuralları nelerdir? Bu model kullanılarak önce; 1. VTYS'den bağımsız olarak veriler çözümlenir, 2. Veri Modellemesi Yapılır, 3. Veriler ve veriler arası ilişkilerin anlamları ve özellikleri incelenerek varlık ilişki şemaları oluşturulur; 4. Kullanılacak VTYS belirlenir. sonra da varlık ilişki çizelgeleri bu sistemin veri modeline dönüştürülerek Yönetimi veri tabanı şemaları oluşturulur. ©Veritabanı Prof. Dr. İbrahim Çil Varlık-İlişki Modeli Temel Kavramları Varlık (Entity) : Gerçek hayatta diğerlerinden ayırt edilebilen nesnelere varlık denir. Yada Var olan ve benzerlerinden ayırt edilebilen her nesneye varlık (entity) denir. Diğer nesnelerden ayırt edilebilen tekil (unique) mini-dünya nesnesidir. (Somut (ÜRÜN) veya Soyut (SİPARİŞ) olabilir) Örnek; Kütüphanedeki QA76.2345.R4 numaralı KİTAP İstanbul Üniversite’sindeki 98010076 numaralı ÖĞRENCİ, vb. Bir varlık, kişi, araba, ev veya çalışan gibi fiziksel nesneler olabileceği gibi, şirket, iş veya ders gibi fiziksel olmayan nesneler de olabilir. Her varlık kendisini tanımlayan kendisine has özelliklere sahiptir. Örneğin, bir çalışan varlığı, çalışan adı, yaşı, adresi, maaşı ve görevi özellikleri ile tanımlanır. Her varlığın niteliğinin bir değeri olur. Aynı türden benzer varlıkların oluşturduğu kümeye ise varlık kümesi Örneğin öğrenci varlıkların tümü öğrenci varlık kümesini oluştururlar. Öğrenciler, Endüstri Mühendisliği Bölümü öğrencileri, yurtta kalan öğrenciler, renkler, dersler, tarihler, satış miktarları,... vb. varlık kümesi örnekleridir. E-R Diyagramda Dikdörtgen şekli ile temsil edilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil ÖĞRENCİ Varlık-İlişki Modeli Temel Kavramları Özellik (Attribute) : Veritabanındaki varlıklar özellikler kümesiyle (attribute set) tanımlanır. Her bir varlığın, özellikleri için aldığı bir değer vardır. Örnek; 98010076 numaralı adı Ahmet soyadı Özer olan ÖĞRENCİ) Öğrenci { ÖğrenciNo, Adı, Soyadı} Özellik: Bir varlık kümesindeki varlıkların özelliklerini göstermek ve varlıkları birbirinden ayırt etmek için özellikler kullanılır. Gerçek dünyada varlık kümelerinin çok sayıda özellikleri olabilir, ancak veri modellemede, gerçek dünyanın soyut bir modeli oluşturulduğu için, bu özelliklerin yalnız küçük bir kısmı, uygulamalar için gerekli olanları (örn. Sicil no, Ad, Soyad, Adres, … vb) seçilerek kullanılır. Her bir varlığın, özellikleri için aldığı bir değer vardır. NULL – Özelliğin hiç bir değere sahip olmadığını (boş) gösterir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişki Modeli Temel Kavramları Gerçek dünyada varlık kümelerinin çok sayıda nitelikleri olabilir, ancak veri modellemede, gerçek dünyanın soyut bir modeli oluşturulduğu için, bu niteliklerin yalnız küçük bir kısmı, uygulamalar için gerekli olanları (örn. Sicil no, Ad, Soyad, Adres, … vb) seçilerek kullanılır. Varlık kümesi ve özellikleri Varlık ilişki şemasında varlık kümeleri dikdörtgen içinde belirtilir. özellikler ise oval bir daire içinde belirtilerek ilgili varlık kümesine çizgi ile bağlanır. Varlık kümesindeki bir veya daha fazla niteliğin değeri, herbir varlık için farklı ise bu özellik anahtar özelliktir. Örneğin öğrenci varlık kümesinde öğrencino anahtar özelliktir. Çünkü bir üniversitede, öğrenci varlık kümesinde hiçbir varlığın öğrencino niteliği aynı olamaz. Anahtar özellik, varlık ilişki şemasında niteliğin altı çizilerek gösterilir. Öğrenci varlık kümesi ve özellikleri ÖğrenciNo ÖĞRENCİ Öğrenci Soyadı kalitesi unosu Öğrenci Adı uadi ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil resmi URUN fiyat starihi Özellik (Nitelik) Bir varlık kümesindeki varlıkların özelliklerini göstermek ve varlıkları birbirinden ayırt etmek için nitelikler (attributes) kullanılır. Veritabanındaki varlıklar özellikler kümesiyle (attribute set) tanımlanır. E-R Diyagramda Oval / Elips şekli ile temsil edilir. Tekli Nitelik (Özellik): Bir varlığın bir niteliğinin aldığı değer tek ise bu niteliğe tek değerli nitelik denir. Öğr_No Ders_adı Çok Değerli Nitelik (Özellik): Birden fazla değer alabilen niteliklere çok-değerli nitelik denir. Öğr_tel Cep telefonu Ev telefonu … Öğr_mail ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil icil@sakarya.edu.tr icil@hotmail.com icil@gmail.com … Birleşik Nitelik Birleşik Özellik (Composite Attribute) : Birden fazla özelliğin birleşmesiyle oluşan özellik. Birden fazla nitelik birleştirilerek yeni bir nitelik oluşturulabilir. Bu tür niteliklere birleşik nitelik adı verilir. Örneğin, “mahalle”, “cadde”, “sokak”, “apartman”, “posta kodu” ve “şehir” gibi nitelikler birleştirilerek “adres” isimli yeni bir nitelik oluşturulabilir. Sokak Cadde posta kodu Şehir Adres Örneğin: Personel numarası (1966 2007 121) Personel işe giriş tarihi Kayıt numarası Personel doğum tarihi Personel numarası ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Türetilen Nitelik Bir varlığa ait özellikler kullanılarak yeni bir özellik türetilebilir. Diğer niteliklerin hesaplanması sonucunda elde edilen niteliklerdir. Bir nitelik kullanılarak bir başka varlık niteliği elde edilebiliyorsa, bu yeni niteliğe türetilen nitelik adı verilir. Örneğin, “personel” varlığının “doğum tarihi” niteliğinden yararlanılarak “yaş” niteliği elde edilebilir. Bu örnekte “yaş” niteliği türetilen niteliktir, tasarımda ayrıca tanımlanmasına gerek yoktur. Personel • Doğ_tar Yaş Örnek; Doğum Tarihi özelliğinden türetilen Yaş özelliği. Doğum Tarihi 1.1.1982 Yaş (Bugün - DoğumTarihi) = 32 Örnek: Sayaç son okuma tarihi => Suyu kullanma gün sayısı ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişki Modeli Temel Kavramları • Veri Türü (Data Type): Bir özelliğin içerebileceği verinin hangi türden olacağını belirler. Örnek; Tamsayı - INTEGER, Değişken sayıda karakter - VARCHAR, Tarih – DateTime, Para – Money, vs. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Değer Alanı Bir özelliğin alabileceği değerler. Her niteliğin bir etki alanı (domain) vardır. Etki alanı ilgili niteliğin olabilecek değerlerinin tümünü içeren bir kümedir. Cinsiyet → Erkek, Kız, Göz Rengi → Mavi, Ela, Kara, vs.) Vize → [0-100] İl→Adana, Adıyaman,………Zonguldak. Nitelik Göz Rengi Ela Değer Mavi Yeşil Siyah ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Anahtar Özellik Anahtar Özellik (Key Attribute): Varlık kümesinde yer alan her varlığı kesin olarak tanımlamaya yarayan özelliklere aday anahtar adı verilir. Çalışan varlık türünde SİCİLNO ve TC_KİMLİK_NO özellikleri aday anahtar olabilir. Fakat Çalışan_ADI özelliği olamaz, çünkü aynı ada sahip birden fazla Çalışan olabilir. Anahtar Özellik: Tablolar içindeki kayıtların diğerlerinden ayrıştırılması ve ihtiyaç durumunda diğer tablolardaki kayıtlar ile olan bağıntılarının kurulabilmesi için her kaydı tek (unique) olarak tanımlamaya yarayan anahtar nitelik belirlenir. Bir varlık kümesi içindeki varlıkları ya da bir ilişki kümesi içindeki ilişkileri birbirinden ayırt etmek için kullanılan özellik ya da nitelik grubuna bu varlık ya da ilişki kümesinin anahtar alanı yada özellik denir. Anahtar, hem varlık kümeleri hem de ilişki kümeleri için geçerli bir kavram olsa da, daha çok varlık kümeleri için kullanılır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişki Modelinin Elemanları Varlık Varlık-İlişki Diyagramlarında Kullanılan Semboller Nitelik(özellik) İlişki Varlık Özellik İlişki Anahtar Türetilen Özellik ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Çok değerli özellik Varlık-İlişki Diyagramlarında Kullanılan Semboller Sembol Anlamı Varlık Türü Zayıf Varlık Türü İlişki Türü Belirleyici İlişki Türü Özellik Anahtar Özellik Çok değerli Özellik Birleşik Özellik Türetilmiş Özellik 1 N 2-li İlişki ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişkiler İki veya daha fazla varlık kümesi arasında kurulan anlamlı bağıntılara ilişki denir. İlişkiler varlık ilişki şemasında dörtgen ile gösterilir. Dörtgen içine ilişkinin adı yazılır. • Müşteri varlık kümesi ile ürün varlık kümesi arasında satın alır ilişkisi Müşteri Satın alır Ürün Genelde ilişkiler iki varlık kümesi arasında yapılır. Ancak bazı durumlarda, ilişkide ikiden fazla varlık kümesi yer alabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişkisel Veri Tabanı: İlişki tipleri Üç temel ilişki tipi vardır: • Bire – bir: İlişki içinde her şeyden bir tane olduğunu gösterir. • Birden – çoğa: Bir tablodaki bir satır başka bir tablodaki birden fazla satırla bağlantılıdır. • Çoktan – çoğa: Bir tablodaki birden fazla satır başka bir tablodaki birden fazla satırla bağlantılıdır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişki Türleri Veri modeli üzerinde değişik biçimlerde gösterilebilir. Bu gösterimden biri şu şekildedir. Bire bir ilişki Bire-Çok İlişki çoğa-Çok İlişki ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişki Kümesi Örnekleri Varlık 1 Ülke Üniversite Öğrenci 1 1 n n İlişki Var Olur Aldığı ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil 1 Varlık 2 1 n m Başkent Fakülte Ders Veritabanı tasarımcıları kavramsal veri modelini bir varlık ilişki (entityrelationship) diyagramı kullanarak temsil ederler Varlık ilişki diyagramı SİPARİŞ 1 Sahip Varlık özellikleri Sipariş_no Sipariş_tarihi Teslim_tarihi Parca_no Parca _miktari Siparis_tutari M PARÇA M Sahip 1 SATICI Parca_no Parca _tanımı Brim_fiyat Satici_no Satici_no Satici_adi Satici_adresi Kutular varlıkları (entity), elmas şekli ise ilişkileri temsil eder. Her tarafta bulunan 1 yada M değerleri varlıklar arasındaki ilişkinin niteliğini belirler: 1-e-1, 1-e-çok, yada çok-a-çok. Burda, her SİPARİŞ birden fazla PARÇA ‘ya sahip olabilir. Her PARÇA ise sadece tek bir SATICI dan temin edilir. Ama aynı tedarikçi birden çok parça tedarik edebilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Tanımlayıcı Özellik Varlık kümeleri arasındaki ilişkiden oluşan özelliklere tanımlayıcı özellik denir. Tanımlayıcı özellikler ilişkinin olması ile var olabilir. İlişki oluşmaz ise bu özellikler de var olamaz. Müşteri varlık kümesi ile ürün varlık kümesi arasında satın alır ilişkisinde, müşterinin ürünü aldığı tarih ile satın aldığı ürünün miktarı özellikleri tanımlayıcı özelliklerdir. Tanımlayıcı özellikler ilişki ile bağlanır Tarih Ad UrunKod Ad MusteriNo Müşteri n Satın alır m Ürün Fiyat Adres Stokmiktarı Miktar ©Veritabanı Yönetimi Müşteri – ürün satın alır ilişkisinde tarih ve miktar tanımlayıcı özelliktir Prof. Dr. İbrahim Çil Varlık-İlişki Şemasının Tablolara Dönüştürülmesi ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişki Şemasının Tablolara Dönüştürülmesi Varlık-ilişki modeli kullanılarak veri modelleme yapıldığında, eğer veri tabanını gerçekleştirmek için ilişkisel bir VTYS kullanılacaksa, oluşturulan varlık-ilişki çizelgesinin ilişki şemalarına dönüştürülmesi gerekir. Bu amaçla varlık-ilişki modelindeki her farklı kavramın (varlık kümesi, nitelik, ilişki kümesi, ilişki kümesinin tanımlayıcı niteliği, güçlü ve zayıf varlık kümeleri, var olma bağımlılığı, genelleme, kümeleme, ..vb) ilişkisel modelde nasıl gösterileceğinin bilinmesi gerekir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık kümelerinin larına Dönüştürülmesi Varlık İlişki Şeması kalitesi unosu İlişki şeması: uadi resmi URUN starihi fiyat URUN (unosu, uadi, kalitesi, resmi, starihi, fiyat) Fiziksel olarak VTYS de tablonun oluşturulması: ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık kümelerinin ilişki şemalarına Dönüştürülmesi Varlık-ilişki modelindeki her varlık kümesi için ilişkisel modelde bir ilişki şeması oluşturulur. İlişkinin nitelikleri olarak da varlık kümesinin nitelikleri kullanılır. adı soyadi ÖĞRENCİ dersadı dogtar cinsiyeti kredisi DERS dkodu ogrno Örnek olarak, ÖĞRENCi ve DERS varlık kümelerine karşılık, ilişkisel modelde aşağıdaki ilişki şemaları oluşturulur. ÖĞRENCİ (ogrno, adı, soyadı, cinsiyeti, dogtar) DERS (dkodu, dersadı, kredisi) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil ilişki kümelerinin Dönüştürülmesi Genel olarak varlık-ilişki modelindeki her ilişki kümesi, ilişkisel modelde bir ilişki şemasına dönüştürülür. Ancak kimi ilişki kümeleri için ilişkisel modelde ayrı bir ilişki şeması oluşturmaya gerek yoktur. Bunun yerine varlık kümesi için oluşturulan ilişki şemalarından birine, diğer varlık kümesinin anahtarında yer alan nitelikleri eklemek yeterlidir. Her Varlık için birer tablo oluşturulur, ve Bir tarafta olan Varlığın Birincil Anahtarı, Çok tarafta olan Varlığa Yabancı Anahtar olarak eklenir. Birden-çoğa ya da çoktan-bire ilişkisel modelde ilişki kümesi için ayrı bir şema oluşturmaya gerek yoktur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişkisel Şema Tasarımı Ölçütleri Niteliklerin anlamları olmalı: her bir niteliğin bir diğerleriyle olan ilgileri ve nasıl yorumlanmaları gerektiği belirgin olmalıdır. Veri giriş ve güncelleme problemleri engellenmeli: aynı verinin iki kez girilmesi, olmayan verinin silinmeye çalışılması veya güncellenmeye çalışılması gibi hatalar engellenmelidir. Boş değerler minimize edilmeli: veri girişlerinde mümkün olduğu kadar boş geçmemeye dikkat edilmeli. İlave satırlar engellenmeli: tabloların birleştirilmesi sonucu bazen gereksiz satırlar meydana gelir. İlave satırların engellenmesi için şart cümlecikleri doğru yazılmalıdır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişkisel Modelin İlişkisel Tablolara Dönüştürülmesi Varlık türlerinin dönüştürülmesi- Her bir güçlü varlık türü için, bu varlık türünün tüm özelliklerini içeren tablo oluşturmalı. Karmaşık özelliklerin basit bileşenlerini kullanmalı. Anahtar özelliklerden birisini tablonun birincil anahtarı olarak kabul etmeli. Eğer, birincil anahtar varlık türündeki karmaşık özellik ise, bu özelliğin tüm bileşenlerini birlikte karmaşık anahtar olarak kabul etmeli Zayıf varlık için de benzer yolla tablo oluşturmalı. Ama bu tabloya, sahip (uygun güçlü ilişkinin) birincil anahtarını yabancıl anahtar olarak ilave etmeli. Her 1:1 ve 1:M türlü R ilişki türü için , bu ilişkiye katılan varlık türlerine uygun ilişkileri tanımlamalı. Bu ilişkilerden birisinin birincil anahtarını diğerinde (genelde ilişkinin «M» tarafında ) yabancıl anahtar olarak kullanmalı. Her M:M türlü ilişki için yeni bir S tablosu oluşturmalı. Katılımcı ilişkilerin birincil anahtarını S tablosunda yabancıl anahtarlar olarak kullanmalı. M:M ilişki türünün tüm özelliklerini (basit) bu tabloya ilave etmeli ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık-İlişkisel Modelin İlişkisel Tablolara Dönüştürülmesi Varlık kümelerinin dönüştürülmesi Her bir varlık türü için, bu varlık türünün tüm özelliklerini içeren tablo oluşturmalı. Karmaşık Anahtar özelliklerin basit bileşenlerini kullanmalı. özelliklerden birisini tablonun birincil anahtarı olarak kabul etmeli. ilişki kümelerinin Dönüştürülmesi Her 1:1 ve 1:M türlü R ilişki türü için, bu ilişkiye katılan varlık türlerine uygun ilişkileri tanımlamalı. Bu ilişkilerden birisinin, genellikle 1 tarafındaki varlığın birincil anahtarını diğerinde (genelde ilişkinin «M» tarafında ) yabancıl anahtar olarak kullanmalı. Birden-çoğa ya da çoktan-bire ilişkisel modelde ilişki kümesi için ayrı bir şema oluşturmaya gerek yoktur. Her Varlık için birer tablo oluşturulur, ve Bir tarafta olan Varlığın Birincil Anahtarı, Çok tarafta olan Varlığa Yabancı Anahtar olarak eklenir. Her M:M türlü ilişki için yeni bir tablo oluşturmalı. Varlık tablolarının ilişkilerin birincil anahtarı yeni tabloya yabancıl anahtarlar olarak kullanmalı. M:M ilişki türünün tüm tanımlayıcı özelliklerini (basit) bu tabloya ilave etmeli ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bire-bir ilişkilerin dönüştürülmesi Bire-bir varlık kümelerini ilişkisel modelde göstermek için, varlık kümelerinden birinin anahtarını, varsa ilişkinin tanımlayıcı nitelikleri ile birlikte, diğer varlık kümesine karşı gelen şemaya eklemek yeterlidir. Birden-bire (ilişki her iki yönde de işlevsel) ilişkisel modelde ilişki kümesini göstermek için de ayrı bir şema oluşturmaya gerek yoktur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Varlık İlişki Şemasının Tablolara Dönüştürülmesi Bire-bir ilişkilerin dönüştürülmesi Birebir ilişkiyi oluşturan varlık kümeleri tablolara dönüştürülür. özellikleri tabloların alanlarına dönüşür. Uygun olan varlık kümesinin anahtar alanı diğer varlık kümesine yabancı anahtar olarak eklenir. Bire-bir ilişkide belirtilen tanımlayıcı özellikler, yabancı anahtar eklenen tabloya alan olarak eklenir. Çalışan-Bölüm çalışır bire-bir ilişkisi şeması ad sicilno bölümno 1 Çalışan çalışır 1 bölümadı Bölüm adres soyad Bölüm (bölümno, bölümadı) Çalışan (sicilno, ad, soyad, adres, bölümno) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bire-Bir İlişki : A varlık kümesindeki bir varlık, B varlık kümesindeki sadece bir varlık ile ilişkili ise. Ücret Proje Adı Adı 1 PROJE Proje_No Bütçe Proje_Yöneticisi Süresi Soyadı 1 Çalışan Giriş Tarihi Sicil No Doğum Tarihi Yaş Çalışan Proje Proje No Proje Adı Bütçe Süresi Sicil No Adı Soyadı Giriş Tarihi Doğum Tarihi 1 A1 200 10 yıl 1 Mehmet Taner 06/03/2004 15/10/1970 2 B2 100 3 yı 2 Aysu Şahin 15/10/2003 01/08/1966 3 A2 100 4 yıl 3 Kemal Atlı 29/05/2002 10/02/1971 4 Ali Demirci 12/05/2005 18/07/1974 Proje_Yöneticisi Proje No Sicil No Ücret Yaş 2 4 10 35 3 2 12 43 1 3 9 39 ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil BİRE-BİR (1:1) İlişki Bire-çok(1-n) ilişkilerin tablolara dönüştürülmesi İlişkinin n tarafındaki tabloya 1 tarafındaki tablonun anahtar alanı yabancı anahtar olarak eklenir. İlişkide belirtilen tanımlayıcı özellikler n tarafına alan olarak eklenirler. Bölüm_No Soyadı Hoca Adı Bölüm Adı 1 Bölüm N Bölüm_hoca Hoca Sicil No Telefon Web Sayfası Kodu N Hoca Sicil No Hoca Adı Soyadı Telefon Bölüm No 10 Ali Dal 2929843 2 20 Emel Kel 2924573 1 32 Mahmut Gül 2928462 3 Bölüm No Bölüm Adı Kodu Web Sayfası 11 Ali Bal 2928382 4 1 Endüstri 108238 www.mat.etu.edu.tr 24 Can Gür 2928373 4 2 Çevre 198347 www.fiz.etu.edu.tr 16 Nur Ser 2926523 null 3 Makine 102938 www.kim.etu.edu.tr 4 Bilgisayar 178293 www.biy.etu.edu.tr 1 Bölüm ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bire-çok(1-n) ilişkilerin tablolara dönüştürülmesi Örneğin ÜRÜN VE TEDARİKÇİ varlık kümeleri arasındaki 1-n okur ilişkisinde parça ve tedarikçi varlık kümeleri tablolara dönüştürülür. İlişkinin n tarafındaki tablo olan parça tablosuna tedarikçi tablosunun anahtar alanı olan ted_kodu alanı yabancı anahtar olarak eklenir. TEDARİKÇİ Telefon_No ParçaKodu Adı Ted_Kodu 1 Satın Alma N Adresi PARÇA Açıklama Ted_Kodu Adı Miktar Yukarıdaki varlık ilişki şeması tablolara dönüştürülürse; Tedarikçi(ted_kodu, adı, Adresi, Telefon_No) Parça(parçakodu, adı, miktar, açıklama, ted_kodu) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Çoğa-çok(n-m) ilişkilerin tablolara dönüştürülmesi İlişkiyi oluşturan varlık kümeleri tablolara dönüştürülür. Ancak ilişki isminde yeni bir tablo oluşturulur. İlişkiyi oluşturan tabloların anahtar alanları yeni tabloya yabancı anahtar olarak eklenir. İlişkide belirtilen tanımlayıcı özellikler varsa yeni tabloya alan olarak eklenir. Yeni tablonun anahtar alanı ilişkiyi oluşturan tabloların yabancı anahtarlarından oluşan ikili veya daha fazla alandan oluşur. Ancak bazı durumlarda bu anahtar tanımı yeterli olmaz. Yeni tabloya tabloya uygun şekilde yeni bir anahtar alan eklenir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Çoğa-çok(n-m) ilişkilerin tablolara dönüştürülmesi Ad Ders Adı Final N Soyad M ÖĞRENCİ ÖĞRENCİ_ DERS Ad Ali Fatma Ruhu Soyad Can Kara Say Ders Kodu 1 N 1 N DERS Vize Numara ÖĞRENCİ Numara 101 102 103 Kredi ÖĞRENCİ_DERS numara Ders Kodu 101 201 101 207 103 207 103 105 ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil DERS Ders Kodu 201 105 207 Vize 60 80 75 67 Ders Adı Programlama Veri Tabanı Fizik Final 67 89 45 36 Kredi 4 4 3 Tablolar Arası İlişki (Bağıntı) Tablodaki örnekte Karar verme isimli kitap Yağız Baş, Access isimli kitap ise Selim Taş ve Ali Can tarafından yazılmıştır. Kitap Tablosu Yazar Tablosu Kitap_No Kitap_Ad 1 Karar verme 2 Access Kitap_Fiyat Yazar_No Yazar_Ad Yazar_Soyad 16.50 1 Selim Taş 45.50 2 Yağız Baş 3 Ali Can KitapYazar Tablosu Kitap_No Yazar_No 1 2 2 1 2 3 ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Örnek Bu örnek bölümleri ve çalışanları ile bir şirketi temsil etmektedir. Her çalışan yalnızca tek bir bölüme aittir. Bir bölümde bir yada daha çok sayıda çalışan bulunabilir. Çalışanların görevleri projeler üzerinedir. Her biri aynı zamanda birkaç projede çalışır ve projede çalışan birden çok çalışan bulunmaktadır. Buradan hareketle önce veri tabanında oluşturulacak varlıkları belirlemeye çalıştığımızda bunların; Bölüm, Çalışan ve proje olduğu görülür. Bu varlıkların özellikleri de göz önüne alındığında aşağıdaki varlık ilişki şeması oluşturulur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Örnek Bno ÇalışanNo Bölüm Badi 1 Çalıştığı bölüm Bütçe Proje Çadı Çalışan N Yeri ProjeAdı N ÇSoyadi Baş Tarihi M Çalıştığı proje Pno İş Oluşturulan Tablolar Bölüm (Bno, Badi, Yeri) Çalışan (ÇalışanNo, Çadi, Çsoyadı, Bno) Proje (Pno, ProjeAdı, Bütçe) Çalıştığıproje(ÇalışanNo, Pno, Baş Tarihi, İş) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil soru Veritabanı Gereksinimleri •Şirket, BÖLÜM’lerden oluşmaktadır. Her bölümün bir numarası, bir adı ve bir adresi vardır. •Her BÖLÜM, belli sayıda PROJE kontrol etmektedir. Her projenin bir numarası, bir adı, bir bütçesi ve bir süresi vardır. •Veritabanında şirket ÇALIŞAN’larının sicil numarası, adı, maaşı, cinsiyeti ve doğum tarihi saklanacaktır. Her çalışan bir BÖLÜM’de yer almaktadır, fakat birden fazla PROJE’de çalışabilir. Her çalışanın, projelerde haftalık çalışma saatleri kaydedilecektir. Yukarıdaki açıklamaya göre Varlık-İlişki şemasını çiziniz. soru Bir futbol oyuncusu sadece bir takımda oynayabilir, ancak bir futbol takımında birden fazla oyuncu vardır. Yukarıdaki açıklamaya göre Varlık-İlişki şemasını çiziniz. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil DOĞUM TAR. DOKTOR_NO ADRES ADI UZMANLIK DOKTOR SOYADI TELEFON CİNSİYET n MUAYENE _İD TARİH MUAYEN E EDER KARAR m DOĞUM TAR. ADI HASTA SOYADI ADRES CİNSİYET TELEFON HASTA_NO ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Ders no ad dersadi vize n Dersler Öğrenci no final cinsiyet m notlar soyad Öğrenciler Doğum tar durum teorikkredi n bütünleme uygulamakredi okur n 1 açılır 1 Fakülteler 1 açılır n Bölümler Fakülte_no Fakülte adi Bolüm_no ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bolüm_adi