Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me
Showing posts with label sql primary key. Show all posts
Showing posts with label sql primary key. Show all posts

Super Key
İlişkisel veritabanlarında var olan bir anahtar çeşidi olan super key bir satırı temsil eden kolonlara denir. Örnek verecek olursak bir kişi tablosunda kişilerin adı, soyadı ve telefon bilgisi birleşerek bir kişiyi temsil edebilir. Bu üç kolon birleşerek bir super key oluşturabilir. Aynı şekilde kişinin adı, soyadı, telefonu ve adreside bir kişiyi temsil edebileceği için bu dört kolon da bir super key olur. Bu şekilde bir kişiyi temsil edebilecek tüm kolonların kombinasyonları super key olabilir.

Candidate Key
İlişkisel veritabanlarında var olan bir anahtar çeşidi olan candidate key alt kümesi bir super key olmayan candidate key'lere denir. Örnek verecek olursak yukarıda kişinin adı, soyadı, telefonu ve adresi bir kişiyi temsil edebilir bu yüzden super key olabilir demiştik ancak bu dört kolon bir candidate key değildir. Çünkü kişinin ad, soyad ve telefon bilgileride bir super key'dir. Bir super key'in candidate key olması için hiç bir alt kümesi super key olmamalıdır. Kişinin ad, soyad ve telefon bilgileri de bir super key olabilir çünkü telefon bilgiside bir kişiyi tek başına tanımlamak için yeterlidir. Her kişinin telefon bilgisi ayrı olacağı için ve bu key'in alt kümelerinden hiç biri super key olmayacağı için(tek elemanlı bir küme olduğu için zaten alt kümesi yoktur ancak olabilirdi de) telefon bilgisi bir candidate key'dir.

Primary Key
İlişkisel veritabanlarında var olan bir anahtar çeşidi olan primary key bir tablodaki her kaydı temsil edebilecek bizim seçtiğimiz bir candidate key'dir. Örnek verecek olursak kişilerin telefon bilgisi veya tc kimlik bilgisi her kişi için ayrıdır. Bu iki bilgiden birisini primary key olarak seçebiliriz ve daha sonra bir kişinin bilgilerine erişmek için seçtiğimiz bu primary key bilgisini kullanırız. Primary key'lerin özellikleri şunlardır;
  • Birden fazla kolonun birleşiminden oluşabilirler.
  • Tabloda sadece bir tane primary key olabilir.
  • Null değer içeremezler.
  • Primary key olan kolona veya kolonların birleşimine farklı satırlarda aynı bilgiler girilemez.


Foreign Key
İlişkisel veritabanlarında var olan bir anahtar çeşidi olan foreign key iki tabloyu birbirine bağlamamızı sağlayan bir key çeşididir. Foreign key, başka bir tablodaki primary key bilgisine karşılık gelen bilgidir. Örnek verecek olursak kişi bilgileri tablosu ile adres tablosu düşünecek olursak kişi tablosu ana tablo adres tablosu alt tablo olur. Ana tablodaki primary key bilgisi ile alt tablodaki froign key bilgisi aynı bilgilerdir. Bu iki tablodaki key'ler aynı olan veriler birbiri ile ilişkilidir denir ve birleştirilerek kullanılabilir.


Primary Key
Birincil anahtar kısıtlayıcısıdır. Her tabloda bir adet bulunabilir. Girilen her değerin farklı olması anlamına gelmektedir. Yani eşsiz kayıtlar tutmakta kullanılır. Bu alanlar NULL değere sahip olamazlar. 
  • Primary Key null değer içeremez.
  • Bir tabloda sadece bir tane primary key olabilir.
  • Default olarak bir kolonu primary key olarak set ettiğinizde o kolon clustered index olarak oluşur ve tablo fiziksel olarak bu kolona göre dizilir.
  • Primary Key başka bir tablonun Foreing Key’i ile ilişkilendirilebilir.
  • Primary Key kolonunda otomatik artan identity set edilebilir.


Unique
Tablodaki bir sütünün benzersiz olmasını istediğimiz durumlarda kullanırız. Örnek vermek gerekirse, T.C Kimlik numaraları, Banka Hesap Numaraları gibi vs. Primary key den farkı ise Unique key bir tabloda birden fazla olmasıdır, primary key ise tabloda sadece 1 adet olabilir. Unique olarak tanımlanmış bir alan NULL olabilir. Değeri NULL’dan farklı olacak olursa kesinlikle daha önce girilen değerlerden farklı olmak zorundadır.
  • Her tabloda birden fazla Unique Constraint olabilir
  • Bir kolona unique constraint koyarsanız o kolon üzerinde default olarak non clustered index oluşur.
  • Otomatik artan identity set edilemez.
  • Null değer içerebilir.