Yazılım Notları
Bilgi Paylaştıkça Çoğalır...

Primary Key (Birincil Anahtar)

Primary Key Nedir? Ne zaman kullanılır? Kaç farklı şekilde Primary Key Oluşturulabilir? Bir tabloda kaç tane PK Olabilir? Primary Key hakkında kapsamlı bir bilgi için lütfen yazının devamını okuyun.

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.

Primary Key kolonunun veri tipi genel olarak AutoIncrement olarak belirlenir. Bununla birlikte, eğer benzersiz olacağını garanti edebiliyorsanız alphanumeric karakterler de kullanabilirsiniz. Ancak, ilişkisel veri tabanı yönetim sistemlerinde Integer tipindeki kayıtlar sorgulanırken performans çok yüksek olacaktır. Örneğin “kimlik ID’si 122543132 olan satırı getir” sorgulamasına SQL Server, MySQL ve Oracle çok hızlı bir şekilde cevap verecektir. Ancak

“Kimlik ID’si  8e51f728-5214-4fbc-bfca-e9a1db74dad9 olan satırı getir” sorgulamasına cevap vermek için çok daha uzun bir süre beklemek zorunda kalabilirsiniz.

SQL Server Management Studio üzerinden bir tablonun Primary Key’ini oluşturmak için aşağıdaki adımları takip edin:

Primary Key 1


Primary Key 1


Primary Key 1


Primary Key 1


Primary Key 1

SSMS user Interface üzerinden yukarıdaki işlemler yapmak yerine, yine SSMS’da New Query açılarak aşağıdaki scripti çalıştırırsanız da aynı tabloyu CREATE edebilirsiniz.

 

CREATE TABLE [dbo].[Tablo1]

(

       [KimlikID] [int] IDENTITY(1,1) NOT NULL,

       [Ad] [nvarchar](50) NULL,

       [Soyad] [nvarchar](50) NULL,

       [Cinsiyet] [char](1) NULL,

CONSTRAINT [PK_Tablo1] PRIMARY KEY CLUSTERED

(

                     [KimlikID] ASC

)

)

 

Bu scripti kendiniz yazmak için şu adımları takip edin:

1.       CREATE TABLE [Tablo Adı] yazın

2.       Parantez içinde

a.       kolonların adlarını

b.      her kolon adından sonra veri tipini yazın.

c.       Eğer bu kolon bir PK(Primary Key) olacaksa IDENTITY(1,1) NOT NULL ekleyin

d.      Kolonları yazdıktan sonra da Primary Key’e bir ad verin ve parantez içinde hangi kolon olduğunu belirtin

Dikkat edeceğiniz noktalar:

1.       Bir tabloda sadece bir tane Primary Key tanımlayabilirsiniz.

2.       Başka bir deyişle bir tabloda sadece bir tane CLUSTERED INDEX oluşturabilirsiniz.

3.       Ancak, bir Primary Key aynı anda iki kolondan oluşturulabilir. Bu durumun örneği için aşağıdaki durumu inceleyin:

 

Öregin, TC Kimlik numarası olmasaydı ve bir okulda aynı ad soyadla birden fazla öğrenci olsaydı bu öğrenci kayıtlarının benzersiz kimlik ID leri sınıf+ad+soyad tan oluşurdu.

Tabi aynı sınıfta olsalardı bu öğrenciler o zaman benzersizliği sağlayacak başka bir bilgileri eklenebilirdi. Mesela doğum yerleri gibi.

 

Öğrenci tablosu şu şekilde olsun:

Sınıf

Ad

Soyad

Doğum Yeri

5A

Ahmet

VARDARSIZ

Erzurum

5A

Mehmet

EN

Kırıkkale

 

 

 

5B

Ahmet

VARDARSIZ

İstanbul

 

 

 

 

Böyle bir öğrenci tablosunda Unique’liği sağlayabilecek şey 3 kolonun birleşimidir

[Sınıf] + [Ad] + [Soyad]

 

Bu tablonun SSMS(SQL Server Management Studio) ile oluşturulması ise aşağıdaki gibi olacaktır:

Primary Key 6


Primary Key 7


Primary Key 8

 


Yukarıda görüldüğü üzere, Sanki 3 tane PK varmış gibi duruyor. Aslında bir tabloda sadece 1 tane PK olabilir. Ama konuyu açıklayabilmek adına kullandığımız bu kötü(asla böyle bir yöntemi önermiyorum) örneğimizde 3 tane kolon birlikte 1 PK oluşturuyor.

 

 

Bu durumun scripti ise şu şekildedir:

CREATE TABLE [dbo].[Ogrenci]

(

       [Sinif] [char](2) NOT NULL,

       [Ad] [nvarchar](50) NOT NULL,

       [Soyad] [nvarchar](50) NOT NULL,

       [DogumYeri] [nvarchar](50) NULL,

    CONSTRAINT [PK_Ogrenci] PRIMARY KEY

    CLUSTERED

        (

               [Sinif] ASC,

               [Ad] ASC,

               [Soyad] ASC

        )

)

  

İyi ki varsın TC Kimlik Numarası J

 

Banka Hesap Numaralarınızı, IBAN Numaralarınızı bir kere telefonunuza kaydedin. İhtiyaç duyduğunuzda elinizin altında olsun.

Banka Hesaplarım

En Güzel Sözler Uygulaması İçin


Ana Sayfa       Arama       Valid CSS!
Önceki Makale