İlişkisel Veri Modeli İlişkisel Veri Modeli Kavramsal veri modeli (ODL, E/R) Grafikler (E/R) Mantıksal Model (İlişkisel Model) Fiziki Model tablolar Fizİki dosya yapıları İlişkisel Modelin Kısa Tarihi • E.F.Codd tarafından 1970’de önerilmiştir • İlk sistemler: – System R – INGRES • İlk uygulamalar – Peterlee Relational Test Vehicle – İlk ticari sistemler (1970’lerin sonu) Kavramlar • İlişki (relation)- satır ve sütunlardan oluşan ikiboyutlu tablo • Özellik (attribute)-ilişkinin adlandırılmış sütunu • Alan (domain)- bir veya birkaç özelliğin ala bileceği değerler kümesi • Satır (tuple)- ilişkideki bir satır • Derece(değree)- ilişkinin özellikleri sayısı • Satırlar sayısı(cardinality) • İlişkisel Veritabanı(relational database)normalleştirilmiş ilişkiler kümesi Kavramlar (örnek) Branch ve Staff ilişkilerinin özellikleri için alanlar İlişkilerin matematiksel anlamı • D1 ve D2 kümeleri D1={2,4} D2= {1,3,5} • Kartezyen çarpımı D1xD2 D1xD2={(2,1),(2,3),(2,5),(4,1),(4,3),(4,5)} Kartezyen çarpımın her bir altkümesi ilişkidir Örn., R={(x,y) |xD1, y D2, ve y=1} gibi tanımlanan bir R ilişkisi R={(2,1),(4,1)} olabilir S={(x,y) |xD1, y D2, ve x=2y} ilişkisi için R={(2,1)} Şemalar • İlişkisel şema: İlişki adı + özellik adları – Branch(Address, Tel_No,Fax_No) veya alan ve özellik adları çiftleri kümesi – {A1:D1, A2:D2 ,…, An:Dn} • R ilişkisi n-sayıda satırlar kümesidir: {A1:d1, A2:d2 ,…, An:dn} Burada d1 D1, d2 D2, dn Dn • Veri Tabanı Şeması – İlişkisel şemalar kümesi – Branch(Address,Tel_No,Fax_No) – Staff (Name, Address, Phone) Örnekler • İlişkisel şemanın örneği R(A1,…,Ak), uygun alanlardan değerler alan k özellikli ilişkidir. • Veri tabanı şemasının örneği R1(…), R2(…), …, Rn(…), uygun ilişkisel şema örneklerinden oluşmaktadır Veritabanının güncellenmesi Veri Tabanı, veri tabanının o andaki durumunu saklar Verilerin güncellenmesi: 1) satır ilave etme 2) satır silme 3) satırda özelliğin değiştirilmesi Verilerin güncellenmesi, yani veritabanı örneğinin değişmesi çok sıkı rastlanan işlemdir Şema ise çok daha az değişime uğrar. İlişki örneği- Şube(Branch) ilişkisi İlişki örneği-Personel (Staff) ilişkisi İlişki örneği-kiralık ev İlişki örneği-ev sahibi(owner) İlişki örneği-kiracı(Renter) İlişki örneği- kira(Lease) sözleşmesi İlişki örneği-kiralık ev(Property-for_rent) (küçültülmüş ilişki) İlişkilerin özellikleri • • • • • • • İlişkinin diğer ilişki adlarından farklı olan bir adı vardır İlişkinin her hücresi kesin olarak tek (atomik )değer içermelidir Her özelliğin farklı adı vardır Özelliğin değerleri aynı alandan olmalıdır Özelliklerin sırasının önemi yoktur Her satır farklıdır. Tekrarlanan satırlar olamaz Satırların sırasının önemi yoktur. (ama uygulamalarda bunun verimliliğe büyük etkisi ola bilir) Anahtarlar • Genel anahtar (superkey) ilişki dahilinde satırı eşsiz tanımlayan özellik veya özellikler kümesi • Basit anahtar- yalnız bir özellikten oluşan anahtar • Karmaşık anahtar- birkaç özellikten oluşan anahtar • Aday anahtar (candidate key)-Altkümesi genel anahtar olmayan genel anahtar, başka değişle, her hangi biçimde parçalandığı zaman anahtarlık özelliğini kaybeden karmaşık anahtar; her bir basit genel anahtar aday anahtardır. • Birincil anahtar-Aday anahtarlar içinden seçilmiş aday anahtar • Yabancı anahtar-Bir ilişkinin , başka bir ilişkinin aday anahtarı ile eşleşen özellik veya özellikler kümesi Anahtarlar (devamı) • Aday anahtarın özellikleri: eşsizlik- her bir satır için eşsiz değer alması; küçülmezlik- karmaşık aday anahtarın her hangi altkümesinin anahtar özelliği yoktur • Birincil anahtarın özellikleri: – Özellikler kümesi en küçük olmalı; – değerlerinin değişme olasılığı düşük olmalı; – eşsizlik özelliğini kaybetme olasılığı düşük olmalı – ismi çok sayıda karakterle ifade edilmemeli; – kullanıcı tarafından kolay kullanıla ve anlaşıla bilir olmalı; – satır için anlam ifade etmeli İlişkisel Bütünlük (relational İntegrity) • Boş (Null) değerler – Özelliğin, verilmiş satır için uygulana bilmeyen veya şuan belli olmayan değerini ifade eder • Varlık bütünlüğü (Entity İntegrity) – Taban ilişkide birincil anahtar özelliği boş değer alamaz • Erişimsel Bütünlük (Referential İntegrity) – İlişkide yabancı anahtar varsa, bu anahtarın değeri, ana ilişkinin her hangi bir satırındaki aday anahtarının değerine eşit olmalı veya boş değer almalıdır • Sınırlamalar – Kullanıcılar veya veri tabanı yöneticisi tarafından belirlenmiş kurallar