İlişkisel Veri Modeli
İlişkisel Veri Modeli Kavramsal veri modeli (ODL, E/R) Mantıksal Model (İlişkisel Model) Fiziki Model Grafikler (E/R) 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 R ilişkisi n-sayıda satırlar kümesidir: İ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