Kavramlar İlişki (Relation)

Slides:



Advertisements
Benzer bir sunumlar
Veri Tabanı Yapıları İçerik aşağıdaki Kitaptan alınmıştır.
Advertisements

Veritabanına Giriş Zeliha Çetin
Veritabanı Nedir?
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
4 SQL- Yapısal Sorgulama Dili
SQL Structured Query Language
KAVRAMSAL MODEL ikinci aşama.
VT TASARIMI ve MODELLEME
RELATIONAL DATABASE MAGAMENT SYSTEM (RDMS)
ERD to ER Relations Fundemantals of Database systems Elmasri, Navate kitabından alıntılar içerir Veri Tabanı Sistemleri Dersi Teoriden pratiğe , Çağıltay,
EER. Domainof Attribute Temel olarak alacağı değerler kümesini tanımlar Komposit birleşik alanlar için domain – O alanların kartezyen çarpımına eşit olacaktır.
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği
VERİ TABANI YÖNETİMİ Ders 3: Genelleme, Kümeleme ve İlişkisel Model
E-R Çizelgelerini İVTYS’ye Dönüştürme
VERİTABANI ve YÖNETİMİ
Varlık-İlişki Modeli Örneği
İndeksler Sibel SOMYÜREK.
İlişkisel Veri Modeli.
The Relational Algebra and Relational Calculus
Veri Tabanı Yönetim Sistemleri
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Veri Tabanı Yönetim Sistemleri
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
4 Veri Bütünlüğü ve Constraint’ler
VERİ TABANI VE YÖNETİM SİSTEMLERİ  Birincil Anahtar Türleri  Access Veri Tabanında Bulunan İlişkiler  İlişkileri Tanımlama Bir – Çok İlişkisi Çok –
Veri Bütünlüğü Sibel SOMYÜREK.
Veritabanı Yönetim Sistemleri-I
SQL Dili ve MySQL Komutları
ER Şemaları Kullanılarak İlişkisel Veritabanının Tasarlanması
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
VERİTABANI ve YÖNETİMİ
Veritabanı Tasarımı ve Yönetimi
Normalizasyon Bütünlük Kısıtları. (integrity constraints) Veritabanında yer alacak değerleri sınırlar. Nesne bütünlüğü: Her nesne “unique” olarak ifade.
Üç Şema Modeli (Three Schema Model)
Veritabanı Kavramları
Veri Tabanı Yönetim Sistemleri 1 Ders 10 VTYS Yaşam Döngüsü ve DDL
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
RAISE RECORD/CURSOR TRIGGER
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Veritabanı Yönetim Sistemi
Veri Tabanı Dersi 4. Laboratuvarı
KÜMELER.
Veritabanlarına ve SQL'e Giriş Devrim GÜNDÜZ Kivi Bilişim Teknolojileri -
MUSTAFA GÜLTEKİN Matematik A Şubesi.
KÜMELER.
COMPANY Veritabanı Örneği (Gereksinimler)
SQL’ e Giriş Uzm. Murat YAZICI.
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
Bölüm 4: İleri SQL.
BAĞINTI & FONKSİYONLAR.
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
Veritabanı Kavramları
İnsan Kaynakları Bilgi Sistemleri
K ıSıT -V ıEW -S EQUENCE U NıON -I NTERSECTıON -E XCEPT E XıSTS -I N İbrahim Onur Sığırcı.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
4. İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
5. Temel SQL (Basic SQL) 5.1. SQL Veri Tanımlama ve Veri Tipleri (SQL Data Definition and Data Types) SQL de Şema ve Katalog Kavramı (Schema and.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
Veritabanlarına ve SQL'e Giriş Devrim GÜNDÜZ Teknoloji Destek Merkezi --
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
VERİ TABANI DERS NOTLARI
RA-Relational Algebra
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
VERİTABANI YÖNETİM SİSTEMLERİ 2- Tasarım ve ER Modeli
Sunum transkripti:

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

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

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,

İlişki (Relationship) Örneği

İ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

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).

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 30332", "(404) 894-2000"> Yukarıdaki örnek 4 özellik barındırdığı için 4-tuple olarak adlandırılır, Bir tablo tuple kümelerinden oluşur.

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)

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>

Ö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

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]

İ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.

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)

İ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

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

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

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,

İ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,

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

Veritabanına Veri Girilmesi INSERT DELETE MODIFY

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

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

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

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

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.