Primary Key, Unique Key ve Foreign Key Nedir ?
Primary Key: Birincil Anahtar. İlişkisel veri tabanı yönetim sistemlerinde (Relational Database Management System) tablolar oluşturulurken, tablonun her kaydının kimlik numarası niteliğinde bir kolon oluşturulur ve bu kolon içinde tablonun her kaydı için benzersiz(unique) bir değer verilir. Bu tıpkı Vergi Kimlik Numarası ya da TC Kimlik Numarası (National Identification Number) gibi düşünülebilir. Yani, tabloda sorgulama yaparken istediğimiz kaydı bulmak için sadece o kaydın benzersiz kimlik ID’sini vermemiz yeterli olacaktır.
Unique Key :Veritabanı ilişkisel modellemesi ve uygulamasında benzersiz bir anahtar, ilişkisel veritabanı tablosundaki bir dizi özniteliktir, öyle ki: tablonun bu sütunlar için aynı değerlere sahip iki ayrı satırı veya kaydı yoktur;
Not : 1 Tabloda yalnızca 1 tane primary Key olabilir.
DBEAVER üzerinden table oluşturduktan sonra Columns üzerinden alanlarınızı ve table içerisinden Costraints kısmından da PK ve UK (Primary Key ve Unique Key) ‘i seçebilirsiniz.
Yukarıdaki alanlar’dan egitmenders kısmında dersId ve egitmenId unique key’dir.
Hangi sql server ‘ı kullanıyorsanız datatype ‘lerini araştırıp öğrenebilirsiniz.
//www.postgresql.org/docs/9.5/datatype.html
//www.postgresql.org/docs/10/datatype-numeric.html
Database ‘e örneğin TCKN ‘sı eklenecek. Sabit bir değer ve 11 karakterden oluşuyor. VARCHAR(11) Yerine CHAR(11) olarak tanımlamamız gerekiyor. Sebebi ise bellekte tutulma şeklinden.
Primary Key ve Unique Key Vermek için :
Primary KEY için yukarıdaki örnekte sql ‘de verdik ama dbeaver ‘da vermek için tablonun olduğu kısımda Constraints alanından Create New Constraint kısmını seçin ve alttaki ekranda TYPE Kısmında PRIMARY KEY seçin.
Yukarıdaki örnekte 2 kolon unique keydir. Misal egitmen için identityNo gibi bir tablo olsaydı ne yapardık, onu da unique key olarak seçerdik. Egitmen için DBEAVER ‘da tablonun olduğu kısımda Constraints alanından Create New Constraint kısmını seçin ve alttaki işlemi uygulayın. Type ‘i değiştirmeyi unutmayın ve dersId ile egitmenId ‘yi seçin. SQL olarak’ta yukarıdaki alanları inceleyebilirsiniz.
DBEAVER ‘Da tablo üzerinde ER_Diagram içerisinde ilişkileri de gösterebilirsiniz. Neler öğrendik ? PRIMARY KEY ve UNIQUE KEY. Bu alanda bir ‘e N bir ilişki var. EgitmenDers n diğer tablolar ise 1 tane değer alabilir. Nasıl mı önce onu açıklayayım, sonra da FOREIGN KEY ‘e bakalım.
bir tabloda örneğin ders tablosunda id primary key olduğu için tek değer alacaktır. Aynı durum egitmenler tablosu içinde geçerli. Ama EgitmenDers tablosunda hangi eğitmenin hangi derse gireceğini tuttuğumuz için bir eğitmen birden fazla derse girebilir. Ya da bir dersin birden fazla eğitmeni olabilir. Peki egitmenDers veritabanın da egitmenler ya da dersler tablosunda olmayan bir kaydın eklenmesi durumunu nasıl kontrol edicez ?
İşte Foreign key ekleyerek bunu kontrol edebiliyoruz.
Sql Foreign Key (Yabancı Anahtar): ilişkisel veri tabanlarında iki tabloyu bir birine bağlamak ve bunları uygulamak için kullanılan sütun veya sütunların birleşimidir. SQL ile ilgili yazılı kaynaklarda referans anahtar olarak da isimlendirilir.
Sql Foreign Key değerleri farklı bir tabloda bulunan Primary Key (Birincil Anahtar) ile eşleşen sütun yada sütunların birleşimini ifade eder.












Geri bildirim: Mayıs Ayı Bülten | Ümit KÖSE