Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İlişkisel Veri Modeli ve İlişkisel Kısıtlar (The Relational Data Model and Relational Constraints)

Benzer bir sunumlar


... konulu sunumlar: "İlişkisel Veri Modeli ve İlişkisel Kısıtlar (The Relational Data Model and Relational Constraints)"— Sunum transkripti:

1 İlişkisel Veri Modeli ve İlişkisel Kısıtlar (The Relational Data Model and Relational Constraints)

2 Kavramlar İlişki (Relation) Küme teorisi üzerine kurulan matematiksel bir kavramdır, İlk olarak Dr. E.F. Codd (IBM Research) tarafından 1970 yılında yayımlanan bir makalede ortaya çıkmıştır, "A Relational Model for Large Shared Data Banks," Communications of the ACM, June 1970

3 Resmi Olmayan (Informal) Tanım relationtablodur Bir ilişki (relation) bazı değerlerin oluşturduğu bir tablodur, Tipik olarak bir ilişki satırlardan oluşan bir veri kümesi gibi düşünülebilir, Her bir satırda bulunan değerler gerçek dünyadaki bir varlık (entity) ya da ilişki (relationship) ile ilgili bir durumu yansıtır, rowtuple Bir ilişki içindeki satırlar (row) resmi olarak (formal) tuple olarak adlandırılır, column header attribute Bir ilişki içindeki sütun başlıkları (column header) resmi olarak attribute (özellik) olarak adlandırılır,

4 İlişki (Relationship) Örneği

5 İlişki Anahtarı (Relationship Key) Bir tablo içerisindeki her bir satırı diğerlerinden ayırt etmeye yarayan özellik ya da özellikler kümesine anahtar (key) adı verilir, STUDENT tablosunda SSN Bir tabloda satırları bir birinden ayıracak özellikler bulunamaz ise bu durumda her bir satıra ardışık olarak artan numaralar anahtar değeri olarak verilir, artificial (yapay) key surrogate (vekil) keyBu tür anahtarlar artificial (yapay) key ya da surrogate (vekil) key olarak adlandırılır

6 VT Şeması (Schema veya Description) Tablolarla ilgili yapısal bilgileri tanımlayan yapıdır, R(A1, A2,.....An) R(A1, A2,.....An) biçiminde ifade edilir, R  İlişki adı A1, A2,.....An  İlişkiye ait özellikler ; CUSTOMER (Cust-id, Cust-name, Address, Phone#) Örneğin; CUSTOMER (Cust-id, Cust-name, Address, Phone#) domain Bir tablo içerisinde bulunan her bir özellik (attribute) bir domain içerisinde tanımlıdır, Diğer bir deyişle her bir özelliğin alabileceği değerler için tanımlı bir aralık vardır, Örneğin, öğrenci numarası 5 haneden oluşan bir pozitif tam sayı olmak zorundadır (domain = tam sayı veya integer).

7 Tuple (Row veya Satır) Bir tuple içerisinde, tablo için tanımlanmış olan özelliklerin değerleri tutulur ve bu değerler arasında gösterilir, Yukarıdaki örnek 4 özellik barındırdığı için 4-tuple olarak adlandırılır, Bir tablo tuple kümelerinden oluşur.

8 Relation State Tablo içerisindeki özelliklerin domain değerlerine göre kartezyen çarpımı sonucu ortaya çıkan kümenin bir alt kümesidir, Given R(A1, A2, , An), r(R)  dom (A1) X dom (A2) X....X dom(An) R(A1, A2, …, An)  schema R(A1, A2, …, An)  schema of the relation Rname R  name of the relation A1, A2, …, An attributes A1, A2, …, An  the attributes of the relation r(R) = {t1, t2, …, tn} where each ti is an n-tuple ti = where each vj element-of dom(Aj)

9 Relation State Örneği R (A1, A2) R (A1, A2) bir relation schema olsun dom(A2) = {a,b,c} dom(A1) = {0,1}, dom(A2) = {a,b,c} dom (A1) X dom (A2) dom (A1) X dom (A2) = tüm olası kombinasyonlar {,,,,, } r(R)  dom(A1) X dom(A2) Relation State r(R)  dom(A1) X dom(A2) r(R) = {,, } Örneğin, r(R) = {,, } olabilir Üç 2-tuples Bu küme Üç 2-tuples olarak tanımlanır:,,

10 Özet Informal Terms Formal Terms TableRelation Column HeaderAttribute All possible Column Values Domain RowTuple Table DefinitionSchema of a Relation Populated TableState of the Relation

11 Tablo (Relation) Özellikleri  Tuple değerleri  Tüm değerlerin atomik olduğu kabul edilir (bölünemez - indivisible)  Tuple içindeki her bir değer ilgili özelliğe (attribute) ait domain’in bir elemanı olmak zorundadır  NULL ilgili özellik için değerin bilinmediği ya da bir değer kullanmanın uygun olmadığı durumlarda kullanılır  Gösterim (Notation)  t tuple’ı için bileşen değerleri (component values) t[Ai] veya t.Ai biçiminde gösterilir  Anlamı: t tuple’ı için A özelliğinin (attribute) vi değeri  Benze şekilde: t[Au, Av,..., Aw]

12 İlişkisel Bütünlük Kısıtları (Relational Integrity Constraints) constraint uyulması zorunlu olan koşulları  Kısıtlama (constraint) bir ilişkinin (veya tablonun) bütün durumlarında (states) uyulması zorunlu olan koşulları ifade eder  Genel olarak 3 farklı kısıttan söz edebiliriz Key  Anahtar kısıtları (Key constraints ) Entity integrity  Varlık bütünlük kısıtları (Entity integrity constraints) Referential integrity  Referans bütünlük kısıtları (Referential integrity constraints) domain  Diğer bir dolaylı kısıtta domain constraints’ dir  Bir tuple içerisindeki her bir değer ilgili özelliğin (attribute) domain kümesinden bir elemen olmalıdır  Eğer izin verilirse değer domain kümesi dışından bir değer olan NULL da olabilir.

13 Key Constraints  Superkey of R  Herhangi bir geçerli relation state’ inde r(R) var olan tuple değerleri için (t1, t2); t1[SK]  t2[SK]  Bu koşul tüm geçerli relation state için korunmak zorundadır  Key of R  Minimal superkey anlamına gelir  Herhangi bir key aynı zamanda superkey’dir  Tersini söyleyemeyiz  Bir key içeren herhangi bir özellik (attribute) kümesi bir superkey’ dir  Minimal superkey aynı zamanda bir key’ dir  Bir tabloda birden fazla aday anahtar (candidate keys) varsa en kısa olanı seçilir (zorunluluk değildir)

14 İlişkisel Veritabanı Şeması (Relational Database Schema)  Veritabanı içerisinde yer alan tabloların bir kümesini tanımlar  S = {R1, R2,..., Rn}  S tüm veritabanı şemasını ifade eder  R1, R2…. Rn veritabanı içerisinde bulunan ilişkileri (tabloları) ifade eder

15 İlişkisel Veritabanı Şeması (Relational Database Schema) S = {EMPLOYEE, DEPARTMENT, DEPT_LOCATIONS, PROJECT, WORKS_ON, DEPENDENT}

16 Varlık Bütünlüğü (Entity Integrity) o Bir S veritabanında bulunan herhangi bir tablonun (R) Primary Key (PK) değeri NULL olamaz, t[PK]  null for any tuple t in r(R) o Eğer PK değeri birden fazla özelliğin birleşimi ile oluşturulmuşsa, PK’yi oluşturan hiçbir özellik NULL olamaz

17 Referans Bütünlüğü (Referential Integrity) o Önceki kısıtların hepsi tek bir ilişki (relation) üzerinde geçerliydi o Referans kısıtları iki ilişki içerir ve iki tablonun satırları arasındaki kısıtları belirler o Bir tablodaki PK özelliği başka bir tabloya aktarılırsa Foreign Key (Yabancı Anahtar) özelliği kazanır o Bir FK değeri, referans veren ilişkiden alınan PK değeri yada NULL olabilir o Eğer FK değeri NULL olacaksa bu FK’in, ilgili tablonun PK’sının bir parçası olmaması gerekir,

18 İlişkisel Veritabanı ve Kısıtlamaların Gösterilmesi o Her bir relation (tablo) özelliklerden oluşan bir satır gibi gösterilir, o Relation isimleri özelliklerin üzerine yazılır, o PK özellikleri altı çizili yazılır, o FK özellikleri hangi tablodan geliyorsa bir okla gösterilir,

19 İlişkisel Veritabanı ve Kısıtlamaların Gösterilmesi

20 Veritabanına Veri Girilmesi o INSERT o DELETE o MODIFY

21 Veri Düzenleme ve Kısıtlar o INSERT a tuple o DELETE a tuple o MODIFY a tuple o Düzenleme işlemleri esnasında herhangi bir bütünlük kısıtı ihlal edilemez o Aynı anda birden fazla düzenleme işlemi yapabilmek mümkündür o Bazı düzenleme işlemleri otomatik olarak yeni düzenlemeleri tetikler

22 Bütünlük Kısıtlarının İhlali o Yapılmak istenen işlem iptal edilebilir (RESTRICT or REJECT option) o İşlem gerçekleştirilir ancak öncelikle kullanıcı ihlal konusunda uyarılır o Yapılan işlemle beraber yeni düzenlemeler tetiklenir ve hata düzeltilir (CASCADE option, SET NULL option) o Kullanıcı tanımlı bir hata düzeltme prosedürü çalıştırılır

23 INSERT ihlalleri  INSERT işlemi aşağıdaki ihlallere yol açabilir : Domain constraint: Girilen değer tanımlı domain sınırlarında olmayabilir, Key constraint: Yeni satırla girilen key değeri tabloda zaten vardır, Referential integrity: Yeni satırdaki FK değeri ilgili tabloda var olmayan bir PK değerini gösterebilir, Entity integrity: Yeni satırdaki PK değeri NULL olabilir

24 DELETE ihlalleri  DELETE işlemi yalnızca renferans kısıtlarının (foreign key constraint) ihlal edilmesine yol açar: Eğer silinen bir PK diğer tablolarda FK olarak kullanılıyor ise; RESTRICT option: silme işlemini gerçekleştirme CASCADE option: silinen PK’e bağlı tüm FK satırlarını da sil SET NULL option: silinen PK’e bağlı tüm FK değerlerini NULL yap  VT tasarlanırken silme işleminde ne yapılacağı mutlaka belirlenmelidir

25 MODIFY ihlalleri  Satırların yeniden düzenlenmesi domain constraint veya NOT NULL constraint ihlallerine yol açabilir  Updating the primary key (PK): DELETE ve INSERT işlemlerine benzer şekilde ihlaller olabilir, ne yapılacağı tasarım esnasında belirlenmelidir,  Updating a foreign key (FK): Referans kısıtının ihlal edilmesine yol açabilir,  Updating an ordinary attribute (neither PK nor FK): Sadece domain ihlallerinin neden olur.


"İlişkisel Veri Modeli ve İlişkisel Kısıtlar (The Relational Data Model and Relational Constraints)" indir ppt

Benzer bir sunumlar


Google Reklamları