Veritabanı Kısıtları (Constraint) Oluşturma, İndeksler ve Viewler | Turkish Tutorial

in #siir7 years ago (edited)

CONSTRAINT'ler
Constraintler aslında indekslere benzerler ama indekslerden farklı olarak bir tek tablo üstünde etkili olmayabilirler. Aşağıdaki işlevleri yerine getirebilirler:

  1. INDEX gibi, birincil anahtar alan tanımlayabilirler.
  2. INDEX gibi tekil alan belirleyebilirler.
  3. Tablo oluşturma esnasında da yapılabilen, (NOT NULL) alan belirleyebilirler.
  4. Yabancı Anahtar belirleyebilirler.

Primary Key: Bir tablodaki, her bir satırın yerine geçecek anahtar veridir. Tekrarlamaması gerekir. Standart olarak bir tabloda verilerin, fiziksel hafıza üstünde de hangi alana göre dizileceğini de primary key belirler. Bu, bazen bir tek alan olabileceği gibi, bazen birden fazla alan da birleşerek bir birincil anahtar oluşturabilir. Primary key hiç bir zaman değişmeyecek ve unique bir değer olmak zorundadır. Tablolar primary keylere göre indekslenir.
Query'de Primary Key oluşturmak için: CONSTRAINT pk_StokKod PRİMARY KEY(StokKod) deyimi kullanılır.

Unique Key: Unique Key olarak tanımlanan alan için bir değer sadece bir kere girilebilir. Bir başka satıra daha aynı verinin girilmesine izin verilmez. Primary Key'den farklı olarak Unique Key, NULL değerini alabilir.

Foreign Key: Bir tabloya girilebilecek değerleri başka bir tablonun bir belli alanında yer alabilecek veri grubu ile sınırlandırmaya ve en önemlisi de ilişkilendirmeye yarar. Örneğin, olmayan bir çalışanın izinli işçiler tablosuna eklenememesi ve izinli işçiler tablosununa eklenen bir çalışanın numarası aracılığıyla detay bilgilerine erişilmesi. Burada isciler.isci_No birincil anahtar alan; izinli_isciler.isci_No ise yabancı anahtardır. Bir Foreign Key tanımı yapabilmek için, FOREİGN KEY yabancı anahtarının asıl tablosunda birincil anahtar olması gerekir.
Query'de Foreign Key oluşturmak için: CONSTRAINT FK_BolumNo FOREİGN KEY(BolumNo) REFERENCES Bölüm(BolumNo) Referans edilen yer primary key (parent) tablosudur, referans eden ise foreign key'dir.

INDEX'ler
Veritabanlarında indeks oluşturarak, verileri veritabanındaki kayıtlı oldukları sıradan başka bir sırada gösterebiliriz. Temelde indekslerin ilişkisel veritabanında şu üç işlevi vardır:

  1. Tekil indeksler, veri ilişkilerini ve veri bütünlüğünü sağlayan birincil anahtar alanlar oluşturmada kullanılır.
  2. İndeks olan alanın değerine göre bir kaydın kayıtlar arasındaki sırasını gösterirler.
  3. Sorguların sonuçlanma sürelerini kısaltırlar.

Bir indeksi silmek için:
DROP INDEX tablonun_adi.indeksin_adi deyimi kullanılır. Bir tablo ya da indeks alan silindiğinde, indeks de otomatik olarak silinmiş olur.

VIEW'ler
Bazen, tabloları olduklarından farklı gösterecek filtrelere ihtiyaç duyulur. Viewler, saklanmış sorgulardan ibarettir. Tablo gibi kullanılsa da böyle bir tablo normalde yoktur. Viewler şu görevler için kullanılır:

  1. Kullanıcıların bazı kritik tabloların sadece belli sütunlarını veya satırlarını görmesi istendiğinde,
  2. Kullanıcıların, çeşitli birim dönüşümlerinden geçmiş değerler görmeleri gerektiğinde,
  3. Mevcut tablolarda varolan verilerin başka bir tablo formatında sunulması gerektiğinde
Sort:  

güzel paylaşım olmuş ;)