KISITLAMALAR (CONSTRAINT) Tablo alanlarına veri girişini kontrol etmeyi amaçlayan düzenlemelerdir. Bir alana girilen değerleri sınırlayan bu düzenlemeler kullanıcı hataları açısından önemlidir. Verilerin doğruğ girilmesini zorunlu kılar. Kullanıcının hata yapmasını engeller. Örneğin öğrencilere ait not bilgilerini tutan bir alana 0 ile 100 arasında bir değerğ girilmesi şeklinde bir kısıtlama yapılmışsa yp ş kullanıcınınfarklı bir değer girilmesi engellenmiş olur. Kaynak : Veritabanı ve uygulamaları Yılmaz Kaya, Ramazan Tekin
KISITLAMALAR (CONSTRAINT) Şekilde görüldüğü gibi vize alanına 0 ile 100 arasında değerler girilmesi gerektiği belirtilmiştir. Farklı değerlerin girilmesi durumunda Geçerlilik Metni bölümündeki mesaj yazdırılacaktır.
BİRİNCİL ANAHTAR (PRIMARY KEY) Bu kısıtlama tanımlandığı alan için verilerin her kayıtta farklı olacağını belirtir. Örneğin OGRENCINO gibi bir alan için böyle bir tanımlama yapılmış ise bu alandaki tüm kayıtların birbirinden farklı olmasını sağlayacaktır. Tüm kayıtlar benzersiz olacaktır. Birincil Anahtar (Primary Key) tanımlı bir alana veri girilmesi zorunludur, boş, değersiz ğ (NULL) olamaz. Birincil anahtar, ilişkisel veritabanı sistemlerinin güçlü özelliklerinden biridir. Tanımlandığı alandaki verilerin benzersiz durmasını sağlar. Bir tabloda en çok bir tane birincil anahtar bulunabilir. Kaynak : Veritabanı ve uygulamaları Yılmaz Kaya, Ramazan Tekin
BİRİNCİL ANAHTAR (PRIMARY KEY) MS Access de birincil anahtar tablonun tasarım aşamasında ilgili alan sağ tıklanarak eklenebilir.
TEKİL (UNIQUE) KISITLAMASI Tekil (Unique) kısıtlaması tanımlandığı alandaki verilerin tekil, benzersiz olmasını sağlar. Birincil anahtar (Primary Key) kısıtlamasına benzer. Ancak bu kısıtlama alanının NULL olmasına ii izinverilir. ili Birincil anahtarı (Primary Key) olmayan alanlarda yinelenen verilerin girilmemesi için tanımlanırlar. Örneğin OGRENCILER tablosundaki OGRENCINO sütununda her öğrencinin numarasınınfarklı olması gerekir. Yani tüm numaralar benzersizdir. Böyle bir alanda Tekil (Unique ) sınırlaması tanımlanabilir.
YABANCI ANAHTAR (FOREIGN KEY) Tablolar arasındaki ilişkileriş tanımlayan bir kısıtlamadır. Birincil anahtar (Primary Key) tanımlı bir alan Yabancı Anahtar (Foreign Key) tanımlı bir başka tablodaki alana bağlanabilir. Birincil anahtar (Primary Key) tanımlı bir alanda bulunan bir değeri bir başka tablodaki Yabancı Anahtar (Foreign Key) tanımlı bir alanda bulunan bir grup kayıta bağlayan yapılardır. Tablolar arasındaki bilgi tutarlılığının sağlanması açısından önemli Tablolar arasındaki bilgi tutarlılığının sağlanması açısından önemli kısıtlamalardır.
YABANCI ANAHTAR (FOREIGN KEY) Şekilde görüldüğü gibi birinci tablodaki BOLUMNO ikinci tablonun BOLUMKOD alanı ile ilişkilidir. BOLUMNO sütunu ii için bulunduğu tabloda birincil anahtar tanımlanmıştır. Yani BOLUMNO bu tabloda tüm kayıtlar için farklı değerlerden oluşacaktır. Dikkat edilirse tüm kayıtlar için BOLUMNO farklıdır. İkinci tablonun BOLUMKOD alanı için yabancı anahtar tanımı vardır. Yani buradaki değerler ilişkili olduğu birinci tablodaki BOLUMNO alanına göre kayıtlar girilecektir. İkinci tablo için ayrıca istenilen bir alan için birincil anahtar tanımlanabilir. Görüldüğü gibi OGRENCINO alanı için birincil anahtar tanımlanmıştır.
VARSAYILAN (DEFAULT) KISITLAMASI Tanımlandığı alana bir değerin girilmemesi durumunda alan sabit varsayılan bir değerin atanmasını sağlayan kısıtlamadır. Tanımlanan bir alana bir değer girilmediğinde alanın NULL olmasını engeller yani değer girilmediğinde alanın değersiz kl kalmasını engellemek ii için bizimi belirlediğimiz bir değerin otomatik girilmesini sağlar. ğ
NOT NULL KISITLAMASI Tanımlandığı alana veri girişinin zorunlu olduğunu belirtir. Alanın boş, değersiz (NULL) olamayacağını belirtir. Tablonun oluşturma anında kullanılabilir. CREATE TABLE PERSONEL ( PERSONELNO INTEGER NOT NULL, AD CHAR(20) SOYAD CHAR(20), ) Oluşturulan PERSONEL tablosunun PERSONELNO alanına veri girişi zorunludur. Bu alan boş olamaz.
TABLOLARA VERİ GİRİŞİNİ MASKELEMEK Sayı veri tiplerinde i 999-9999-9999999 maskesini i ele alalım. l 9 rakkamı ile sadece 0 ila 9 arasındaki sayıların basamağa yazılabileceğini belirtiyoruz. 9, ayrıca isteğe bağlı girişi ifade eder. Yani yukarıdaki 10 basamaklı maske ile maskelenmiş bir alana 3 basamaklı bir sayıda girilebilir. Maskede 9 yerine 0 sayısı kullanılmış olsaydı 10 basamağın tümünü de girmek zorunda kalırdık. Özetle 9, isteğe bağlı girilen sayı basamağını, 0 ise girilmesi zorunlu olan basamağı temsil eder. işareti ise sadece görsel olarak veri girişini kolaylaştırır. Veri veritabanında sayı olarak tutulur. Aşağıda Access te kullanılan maske çeşitleri tablolanmıştır. Zorunlu sayı 0 İsteğe bağlı sayı 9 Değer- boşluk veya + - değerleri # Zorunlu Harf L İsteğe bağlı harf? Harf veya sayı girişi Zorunlu karakter boşluk İsteğe bağlı karakter boşluk Büyük karakter Küçük karakter a & C >& <& Sola yaslama Format:! Sağa yaslama Format: *
TABLOLARA VE SÜTUN ADLANDIRMA KURALLARI Tablo ve sütunlara isimi verilirken şu kurallara uymamız, daha anlaşılır l bir tasarım yapmamızı sağlayacaktır. Tablo içindeki verilere uygun bir tablo ismi verilmesi mantıklı olacaktır. Mümkün olduğunca tek kelimeden oluşan veya kısa isimler vermek gerekir. Tablo ve Sütun ismi tekil olmalıdır. Yani tek kelimeden oluşmalıdır. Örneğin personel bilgilerinin saklandığığ tabloyapersonel ismini vermek mantıklı olur. Tablo ve Sütun isimleri içinde boşluk bulunmamalıdır. PERSONEL KAYITLARI şeklinde bir tablo ismi verilmemelidir. Ama PERSONEL_KAYITLARI şeklinde kelimeleri _ ile birleştirerek oluşan ifadeler tablo ismi olarak verilebilir. Tablo ismi içinde özel Türkçe karakterler kullanılmamalıdır. Ç,Ş, Ş Ü, İ,Ğ, ş,ç,ü,ğ,ı çüğ ı gibi harflerin kullanılması uygun görülmez. Hatta Oracle ve MS SQL Server veritabanı sistemlerinde hiçbir şekilde kullanılamaz. Tablo ve Sütun isimleri rakam veya sayısal değerlerle başlamamalıdır. 09PERSONEL gibi bir tablo ismi olmaz.
İLİŞKİLENDİRME TÜRLERİ Tablo1 Tablo2 Birincil anahtar :Primary Key İkincil anahtar :Foreign Key Bir Bir etkileşmesi: Tablo1 ve Tablo2 de birbirine eşit olan kayıtlar listelenir. Bir Çok etkileşmesi: Tablo1 deki tüm kayıtlar ve Tablo2 deki eşit olan kayıtlar listelenir. Bu ilişki SQL içinde LEFT JOIN olarak tanımlanır. Çok Bir etkileşmesi: Tablo2 deki tüm kayıtlar ve Tablo1 deki eşit olan kayıtlar listelenir. Bu ilişki SQL içinde RIGHT JOIN olarak tanımlanır.
ÇALIŞMA SORULARI Veritabanı nedir? Sizce nerelerde kullanılabilir? Veritabanı sistemlerinin getirdiği kolaylıklar sizce ne olabilir? Bir hastane için ilişkili olabilecek en az 3 tablo oluşturun. Veritabanı ile veritabanı yönetim sistemi arasında ne fark vardır? Satır (Record), Sütun (Field),Tablo (Table) tanımlarını yapınız. Sizce tüm veritabanı sistemlerinde ortak bulunabilecek veri türleri hangileri olabilir? Neden kısıtlayıcılara ihtiyaç duyulur? Bir veritabanı sisteminde tam sayılar için neden birbirinden farklı birden çok veri türüü bulunur? Birincil ve yabancı anahtarlar nedir? Aralarındaki fark nedir?