Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Kavramlar İlişki (Relation)

Benzer bir sunumlar


... konulu sunumlar: "Kavramlar İlişki (Relation)"— 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
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, Bir ilişki içindeki satırlar (row) resmi olarak (formal) tuple olarak adlandırılır, 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, Bu 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) biçiminde ifade edilir, R  İlişki adı A1, A2, .....An  İlişkiye ait özellikler Örneğin; CUSTOMER (Cust-id, Cust-name, Address, Phone#) 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, <632895, "John Smith", "101 Main St. Atlanta, GA ", "(404) "> 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 r(R)  dom (A1) X dom (A2) X ....X dom(An)
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 of the relation R  name of the relation A1, A2, …, An  the attributes of the relation r(R) = {t1, t2, …, tn} where each ti is an n-tuple ti = <v1, v2, …, vn> where each vj element-of dom(Aj)

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

10 Özet Informal Terms Formal Terms Table Relation Column Header Attribute All possible Column Values Domain Row Tuple Table Definition Schema of a Relation Populated Table State 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)
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 Anahtar kısıtları (Key constraints ) Varlık bütünlük kısıtları (Entity integrity constraints) Referans bütünlük kısıtları (Referential integrity constraints) 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)
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) 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)
Önceki kısıtların hepsi tek bir ilişki (relation) üzerinde geçerliydi Referans kısıtları iki ilişki içerir ve iki tablonun satırları arasındaki kısıtları belirler Bir tablodaki PK özelliği başka bir tabloya aktarılırsa Foreign Key (Yabancı Anahtar) özelliği kazanır Bir FK değeri, referans veren ilişkiden alınan PK değeri yada NULL olabilir 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
Her bir relation (tablo) özelliklerden oluşan bir satır gibi gösterilir, Relation isimleri özelliklerin üzerine yazılır, PK özellikleri altı çizili yazılır, 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
INSERT DELETE MODIFY

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

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

23 INSERT ihlalleri Domain constraint: Key constraint:
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.


"Kavramlar İlişki (Relation)" indir ppt

Benzer bir sunumlar


Google Reklamları