Kolon Seviyesinde Veri Bütünlüğünü Sağlamak

Kolon seviyesinde tanımlanan şartlar (constraint) aynı tablo içerisinde kolonda yer alan değerlerin tutarlılığını sorgular.

Kolon seviyesinde veri bütünlüğü sağlama yollarını inceleyelim;

Primary Key:

Normalizayon kuralları gereği her tabloda en az bir anahtar alan bulunmak zorundadır. Tanımlanan bu anahtar alan primary key olarak tanımlanır ve NULL değer kabul etmeyen tekil bir anahtardır. Tablo üzerinde clustred bir anahtar tanımlı değilse ve primary key tanımında NONCLUSTERED değeri kullanılmadıysa clustered yapıda oluştururlur. Her tabloda en fazla bir tane olabilir.

Primary key tanımlama için kullanılan genel ifade:

</p>
<p>CREATE TABLE tablo_ismi(</p>
<p>sutun_adı sutun_veri_turu CONSTRAINT primary_key_adı PRIMARY KEY [CLUSTERED|NONCLUSTERED],</p>
<p>-- Diğer sütun tanımları</p>
<p>)</p>
<p>

Var olan tablo üzerinde PRIMARY KEY tanımlama:

</p>
<p>ALTER TABLE tablo_ismi</p>
<p>ADD CONSTRAINT primary_key_adı PRIMARY KEY (sutun_ismi)</p>
<p>[CLUSTERED|NONCLUSTERED]</p>
<p>

 

UNIQUE Constraint:

Primary Key tanımında sadece bir tane olabileceğini belirtmiştirk. Unique şartında ise birden fazla olabilr. Unique index tanımlandığı kolonda her değerden en fazla bir tane bulunabilir. NULL değer taşıyan bir satır olması durumunda ikinci bir NULL geldiğinde kabul etmeyecektir. Eğer var ise tekil yok ise NULL değer taşıyabilir diye bir şart olması durumunda bunu daha önceki ŞARTLI INDEX yazımızdan faydalanarak yapabilirsiniz.

Tablo Oluşturma Sırasında UNIQUE INDEX Oluşturma:

</p>
<p>CREATE TABLE table_ismi(</p>
<p>--SÜTUN TANIMLAMALARI</p>
<p>CONSTRAINT unique_index_ad UNIQUE [CLUSTERED|NONCLUSTERED]</p>
<p>)</p>
<p>

 

Tanımlı Tablo Üzerinde UNIQUE Tanımlama:

</p>
<p>ALTER TABLE table_ismi</p>
<p>ADD CONTRAINT unique_index_ad UNIQUE [CLUSTERED|NONCLUSTERED]</p>
<p>

One thought on “Kolon Seviyesinde Veri Bütünlüğünü Sağlamak

Add yours

Yorum Yapın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d blogcu bunu beğendi: