Veri Bütünlüğü Sibel SOMYÜREK
Veri Bütünlüğü Veri bütünlüğü nedir?
Veri Bütünlüğü İlişkisel veri tabanı modellerinde yanlış ya da ilişkisiz verilerin çeşitli yollarla veri tabanına kaydedilmesi önlenip, farklı tablolara dağıtılan verilerin kendi içerisinde tutarlılık göstermesine veri bütünlüğü denir.
Veri Bütünlüğü Veri bütünlüğü, verinin doğruluğunu ve tutarlılığını anlatmaktadır.
Veri Bütünlüğü Uygulamalarda önceden bir takım kurallar tanımlanarak, bozuk, tutarsız verilerin girişi önlenerek ya da mevcut bilgilerin üzerinde değişiklik yaparken bozulması engellenerek veri bütünlüğü sağlanır.
Veri Bütünlüğü Veri bütünlüğü, verinin Doğru olmasını Tam olmasını ve tutarlılığını anlatmaktadır.
Veri Bütünlüğü Örneğin öğrenci bilgilerinin tutulduğu bir tabloda: öğrenci numarası alanının tek olması, öğrenci numarası alanında 12 karakterden oluşan bir değer olması, bölüm kodu alanının bölümler tablosunda muhakkak bir karşılığının olması vb.
Veri Bütünlüğünü sağlama yöntemleri Veri tabanı yönetim sistemlerinde veri bütünlüğü hangi yollarla sağlanabilir?
Veri Bütünlüğünü sağlama yöntemleri VTYS’de veri bütünlüğünü iki yöntemle sağlanabilir Tanımlanabilir veri bütünlüğü Prosedürel (Programsal) veri bütünlüğü
Veri Bütünlüğünü sağlama yöntemleri Tanımlanabilir veri bütünlüğü Tanımlanan nesnelerin kendi özellikleri sayesinde sağlanabilen veri bütünlüğüdür. Prosedürel (Programsal) veri bütünlüğü Bir programlama mantığıyla bütünlüğün tasarlanması gerekir.
Veri Bütünlüğünü sağlama yöntemleri Tanımlanabilir veri bütünlüğü Constraint’ler (kısıtlayıcılar), Rule’lar (kurallar) ve Default’lar (varsayılanlar)
Veri Bütünlüğünü sağlama yöntemleri Prosedürel veri bütünlüğü Trigger (tetikleyici) Stored Procedure (saklı yordam)
Veri Bütünlüğünü sağlama yöntemleri Prosedürel veri bütünlüğü Trigger (tetikleyici) Stored Procedure (saklı yordam)
Veri Bütünlüğünü sağlama yöntemleri Constraint’ler (kısıtlayıcılar) Primary Key Constraint Unique Constraint Check Constraint Default Constraint Foreign Key Constraint
Veri Bütünlüğünü sağlama yöntemleri Primary Key Constraint Veri tabanı tablosundaki bir satır için benzersiz bir tanımlayıcıdır Primary key boş deger alamaz Her satırda farklı bir değer almak zorundadır Her tabloda en fazla bir tane primary key kısıtı olabilir. Yapısında primary key olmayan bir tablo hiçbir tabloyla ilişkilendirilemez.
Veri Bütünlüğünü sağlama yöntemleri Primary Key Constraint Örnek: Öğrenci bilgileri tablosu için öğrencino sütunu birincil anahtar zorlayıcısı olarak tanımlanabilir. Bu durumda öğrenci numarası olmayan hiçbir öğrenci tabloya eklenemez Girilmiş bir öğrenci numarası tekrar girilemez.
Veri Bütünlüğünü sağlama yöntemleri Primary Key Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11) PRIMARY KEY, ad CHAR(25), soyad CHAR(25));
Veri Bütünlüğünü sağlama yöntemleri Primary Key Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11), ad CHAR(25), soyad CHAR(25), CONSTRAINT PK_ogrenci PRIMARY KEY (ogrno));
Veri Bütünlüğünü sağlama yöntemleri Primary Key Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11), ad CHAR(25), soyad CHAR(25), CONSTRAINT PK_ogrenci PRIMARY KEY (ogrno, ad));
Veri Bütünlüğünü sağlama yöntemleri Unique Key Constraint Bir tabloda birçok sütunda tanımlanabilir Primary key’e benzer ancak küçük bir fark vardır Her satırda farklı bir değer almak zorundadır Boş deger alabilir
Veri Bütünlüğünü sağlama yöntemleri Unique Key Constraint Örnek: Örneğin öğrenci bilgileri tablosu için hem öğrenci no sürunu hem de tckimlikno sütunu tekildir. Öğrenci no birincil anahtar olarak tanımlanmışsa tckimlikno da unique key olarak tanımlanabilir.
Veri Bütünlüğünü sağlama yöntemleri UNIQUE Key Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11) PRIMARY KEY, Tckimlikno INT(11) UNIQUE, ad CHAR(25), soyad CHAR(25) );
Veri Bütünlüğünü sağlama yöntemleri UNIQUE Key Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11) PRIMARY KEY, Tckimlikno INT(11), ad CHAR(25), soyad CHAR(25), CONSTRAINT UN_ogr UNIQUE (Tckimlikno) );
Veri Bütünlüğünü sağlama yöntemleri Check Constraint Bir sütuna ait değerin belirli formata uygun şekilde girilmesi için oluşturulan bir kısıtlayıcıdır Bir sütundaki değerin geçerliliğini başka bir sütunla karşılaştırarak elde edebilmemize olanak sağlar.
Veri Bütünlüğünü sağlama yöntemleri Check Constraint Örnek: Bir sütuna bir metin ifadesi girmek istiyoruz ama metnin uzunluğunun 20 karakterden fazla olmamasını istiyoruz. Ya da bir sütuna bayan ya da erkek değer, girilmesi gerekiyor Bu durumda check constraint kullanılır.
Veri Bütünlüğünü sağlama yöntemleri CHECK Constraint Örnek: CREATE TABLE ogrenci( ogrno INT (11) PRIMARY KEY, Tckimlikno INT(11) UNIQUE, plakano INT(3), ad CHAR(25), soyad CHAR(25), CONSTRAINT ilplakano CHECK (plakano BETWEEN 1 and 81) );
Veri Bütünlüğünü sağlama yöntemleri CHECK Constraint Örnek: CREATE TABLE ogrenci4( ogrno INT (11) PRIMARY KEY, Tckimlikno INT(11) UNIQUE, ogrtur CHAR (12), ad CHAR(25), soyad CHAR(25), CONSTRAINT tur CHECK (ogrtur in ('Lisans', 'Yüksek Lisans', 'Doktora')) )
Veri Bütünlüğünü sağlama yöntemleri Default Constraint Bir sutüna varsayılan bir değer atama işlemi yapar. Bir satırın bir sütununa değer girilmediği bir durumda daha önceden belirlenen bir default değerin, o satıra otomatik olarak aktarılmasını yağar.
Veri Bütünlüğünü sağlama yöntemleri Default Constraint Örnek: E ticaret sistemine üye olan müşterilerin üyelik tarihlerini sistemden otomatik olarak alıp ilgili sütuna aktarmak için Ya da 2 farklı gruptaki öğrencilerden grup girilmediğinde otomatik bir değer girilmesi için kullanılır.
Veri Bütünlüğünü sağlama yöntemleri DEFAULT Constraint Örnek: CREATE TABLE ogrenci5( ogrno INT (11) PRIMARY KEY, Tckimlikno INT(11) UNIQUE, ogrtur CHAR (12) DEFAULT 'Lisans', ad CHAR(25), soyad CHAR(25) );
Veri Bütünlüğünü sağlama yöntemleri Not Null Constraint Bir tablodaki bir sütuna girilecek her kaydın mutlaka bir değer alması gerektiğini gsterir.ö
Veri Bütünlüğünü sağlama yöntemleri Not Null Constraint Örnek: Farklı illerden yarışmacıların kayıt yaptıkları bir uygulamada il adı alanı boş bırakılmasın istendiğinde bu kısıt kullanılabilir.
Veri Bütünlüğünü sağlama yöntemleri Not Null Constraint Örnek CREATE TABLE yarismacilar( no INT(4) PRIMARY KEY, ad VARCHAR(30), soyad VARCHAR(30), iladi CHAR (20) NOT NULL );
Veri Bütünlüğünü sağlama yöntemleri Foreign Key Constraint Örnek: Anket cevaplarının girildiği tablodaki soru no sütunun anket sorularının bulunduğu tablodaki soruno sütunundan aktarılması için kullanılır.
Veri Bütünlüğünü sağlama yöntemleri FOREIGN KEY Örnek: CREATE TABLE anketcevaplar( cevapno INT (11) PRIMARY KEY, soruno INT(11), cevap VARCHAR(100), CONSTRAINT anketsoru FOREIGN KEY (soruno) REFERENCES anketsorular(no) );
Veri Bütünlüğünü sağlama yöntemleri Update/Delete İşlem Kısıtları Yabancıl anahtar kısıtı ile referans alınan tablodaki değer üzerinde değişiklik ya da silme işlemi yapılacağında ne tür işlemlerin yapılabileceği ile ilgili kısıttır. Bu işlemler: No Action Set Null Cascade Set Default
Veri Bütünlüğünü sağlama yöntemleri Update/Delete İşlem Kısıtları No Action: Yabancıl anahtar tarafından referans verilen değer silinmeye ya da değiştirilmeye çalışıldığında işlem gerçekleşmez.
Veri Bütünlüğünü sağlama yöntemleri No Action Örnek CREATE TABLE yarismacilar( no INT(4) PRIMARY KEY, ad VARCHAR(30), soyad VARCHAR(30), iladi CHAR (20) NOT NULL, CONSTRAINT FK_iladi FOREIGN KEY (iladi) REFERENCES iller(adi) ON DELETE NO ACTION );
Veri Bütünlüğünü sağlama yöntemleri Update/Delete İşlem Kısıtları Set Null: Yabancıl anahtar tarafından referans verilen değer silinmeye ya da değiştirilmeye çalışıldığında, yabancıl anahtarın bulunduğu tablodaki ilgili alana boş değer atanır.
Veri Bütünlüğünü sağlama yöntemleri Set Null Örnek CREATE TABLE yarismacilar( no INT(4) PRIMARY KEY, ad VARCHAR(30), soyad VARCHAR(30), iladi CHAR (20) NOT NULL, CONSTRAINT FK_iladi FOREIGN KEY (iladi) REFERENCES iller(adi) ON DELETE SET NULL );
Veri Bütünlüğünü sağlama yöntemleri Update/Delete İşlem Kısıtları Cascade: Yabancıl anahtar tarafından referans verilen değer silinmeye ya da değiştirilmeye çalışıldığında, yabancıl anahtarın bulunduğu tablodaki ilgili alana değişiklik yansıtılır.
Veri Bütünlüğünü sağlama yöntemleri Cascade Örnek CREATE TABLE yarismacilar( no INT(4) PRIMARY KEY, ad VARCHAR(30), soyad VARCHAR(30), iladi CHAR (20) NOT NULL, CONSTRAINT FK_iladi FOREIGN KEY (iladi) REFERENCES iller(adi) ON DELETE CASCADE );
Veri Bütünlüğünü sağlama yöntemleri Update/Delete İşlem Kısıtları Set Default: Yabancıl anahtar tarafından referans verilen değer silinmeye ya da değiştirilmeye çalışıldığında, yabancıl anahtarın bulunduğu tablodaki ilgili alana daha önceden tanımlanmış olan varsayılan değer atanır.
Veri Bütünlüğünü sağlama yöntemleri Set Default: Örnek CREATE TABLE yarismacilar5( no INT(4) PRIMARY KEY, ad VARCHAR(30), soyad VARCHAR(30), iladi CHAR (20) NOT NULL, CONSTRAINT FK_iladi FOREIGN KEY (iladi) REFERENCES iller(adi) ON DELETE SET DEFAULT )
Veri Bütünlüğünü sağlama yöntemleri Tanımlamalı veri bütünlüğünün üç türü vardır: Alan Bütünlüğü(Domain) Varlık Bütünlüğü (Entity) Referans Bütünlüğü (Referential)
Veri Bütünlüğünü sağlama yöntemleri Tanımlamalı veri bütünlüğünün üç türü vardır: Alan Bütünlüğü(Domain) Alan kısıtları bir veya birkaç sütun ile ilişkilidir. Temel amaç sütunun ya da birkaç sütunun tanımlanan kritere uygun olmasıdır. Tabloya yeni satır eklendiğinde ya da var olan satırlardan birisi update edildiğinde kısıt gerekli kontrolü yapar.
Veri Bütünlüğünü sağlama yöntemleri Tanımlamalı veri bütünlüğünün üç türü vardır: Varlık Bütünlüğü (Entity) Varlık kısıtları satırlarla ilgilidir. Bu tarz kısıtlar tüm sütunu dikkate almak yerine özellikle tek bir satır ile ilişkilidir. Bir satırın bir kolonundaki bilginin diğer hiç bir satırda bulunmaması garanti altına alır.
Veri Bütünlüğünü sağlama yöntemleri Tanımlamalı veri bütünlüğünün üç türü vardır: Referans Bütünlüğü (Referential) Bir sütundaki bilginin diğer bir sütun ile eşleşmesi zorunluluğunu sağlayarak bütünlüğü korur. Eşleşen sütunlar farklı iki tablonun sütunları olabileceği gibi aynı tablonun sütunları da olabilir.
Veri Bütünlüğünü sağlama yöntemleri Tanımsal Bütünlük Türleri Yöntemler Alan Bütünlüğü(Domain) Check Constraint Default Constraint Primary ve Foreign Key Constraint çifti Varlık Bütünlüğü (Entity) Primary Key Constraint Unique Key Constraint Referans Bütünlüğü (Referential) Foreign Key Constraint
Veri Bütünlüğünü sağlama yöntemleri Rule Check constraint ile aynı işi yapan kurallar oluşturulabilir. Constraint’ten farkı tablodan ayrı bir nesne olarak oluşturulmasıdır Bu nedenle oluşturulduktan sonra hangi tablonun hangi sütunu ile ilişkili olduğu belirtilmek üzere bağ kurulmalıdır.
Veri Bütünlüğünü sağlama yöntemleri Default Default nesnesi default constraint ile aynı işleve sahiptir. Constraint’ten farkı ayrı bir nesne gibi derlenmesidir. Default nesnesine destek verilmesinin nedeni geriye dönük uyumluluğu sağlamak içindir.
Veri Bütünlüğünü sağlama yöntemleri Veri bütünlüğü ne kadar alt katmanda çözülürse o kadar iyi olur Veri Bütünlüğü sağlama yöntemleri Kısıtlar (constraint) Default ve rule Trigger Stored procedure veSQL server dışından performans fonksiyonellik