SQL Veritabanlarındaki Yabancı Anahtarlar Nelerdir?

SQL Veritabanlarındaki Yabancı Anahtarlar Nelerdir?

Yabancı anahtarlar, veritabanı yöneticilerinin bir SQL veritabanı yönetim sistemi içinde bulunan farklı bağlantıları kolayca tanımlamasına olanak tanır.





SQL, bir veritabanı yönetim sistemi içindeki veriler üzerinde matematiksel işlemler gerçekleştirir. Bu veritabanları, her biri belirli bir varlıkta veri depolayan farklı tablolar içerir. Bir araç kiralama veritabanınız varsa, bu veritabanındaki bir varlık (veya tablo) müşteriler olacaktır (her müşteriye ait tüm kişisel verileri depolayacaktır).





Bu veritabanı tabloları, her satırın bir kaydı barındırdığı ve her sütunun özniteliğe özgü verileri tuttuğu satırlar ve sütunlar içerir.





Bir veritabanı yönetim sisteminde her kayıt (veya satır) benzersiz olmalıdır.

Birincil Anahtarlar

Koşul, tablodaki her kaydın farklı olması gerektiği olsa da, durum her zaman böyle değildir. Araç kiralama veritabanı örneğinden devam edersek, veritabanı her biri John Brown adına sahip iki müşteri içeriyorsa, bir John Brown'ın kiralamadığı bir Mercedes-Benz'i iade etmesi beklenebilir.



Birincil anahtar oluşturmak bu riski azaltacaktır. Bir SQL veritabanı yönetim sisteminde birincil anahtar, bir kaydı diğerinden ayıran benzersiz bir tanımlayıcıdır.

hangi model anakartım var

Bu nedenle, bir SQL veritabanı yönetim sistemindeki her kaydın bir birincil anahtarı olması gerekir.





Veritabanında Birincil Anahtarları Kullanma

SQL kullanan bir veritabanı yönetim sistemine birincil anahtarları dahil etmek için, yeni bir tablo oluştururken bunu normal bir öznitelik olarak ekleyebilirsiniz. Böylece müşterilerin tablosu dört özellik (veya sütun) içerecektir:

  • CarOwnerID (birincil anahtarı saklayacak)
  • İlk adı
  • Soy isim
  • Telefon numarası

İlgili: SQL'de Tablo Nasıl Oluşturulur





Artık veritabanına giren her müşteri kaydının benzersiz bir kimlik numarası, adı, soyadı ve telefon numarası olacak. Telefon numarası, birincil anahtar olacak kadar benzersiz değildir, çünkü her seferinde bir kişiye özel olsa da, bir kişi numarasını kolayca değiştirebilir, yani artık başka birine ait olur.

Birincil Anahtar Örneği Olan Bir Kayıt

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

Yukarıdaki SQL kodu, önceden var olana yeni bir kayıt ekleyecektir. müşteriler tablo. Aşağıdaki tablo, iki John Brown kaydıyla birlikte yeni müşteri tablosunu göstermektedir.

Yabancı Anahtar

Artık bir araba kiralayanı diğerinden benzersiz şekilde ayıran birincil anahtarlarınız var. Tek sorun, veritabanında, her John Brown ile kiraladığı araba arasında gerçek bir bağlantı olmamasıdır.

Bu nedenle, hata yapma olasılığı hala mevcuttur. Yabancı anahtarların devreye girdiği yer burasıdır. Sahiplik belirsizliği sorununu çözmek için birincil anahtar kullanmak, yalnızca birincil anahtar bir yabancı anahtar olarak ikiye katlanırsa başarılabilir.

Yabancı Anahtar Nedir?

Bir SQL veritabanı yönetim sisteminde yabancı anahtar, benzersiz bir tanımlayıcı veya bir veritabanındaki iki veya daha fazla tabloyu birbirine bağlayan benzersiz tanımlayıcıların bir birleşimidir.

Mevcut dört SQL veritabanı yönetim sisteminden ilişkisel veritabanı yönetim sistemi en popüler olanıdır. İlişkisel bir veritabanında hangi tablonun yabancı anahtara sahip olması gerektiğine karar verirken, öncelikle hangi tablonun özne, hangisinin ilişkisindeki nesne olduğunu belirlemelisiniz.

Araç kiralama veritabanına geri dönersek, her müşteriyi doğru araca bağlamak için bir müşterinin (konu) bir araba (nesne) kiraladığını anlamanız gerekir. Bu nedenle, yabancı anahtar arabalar tablosunda olmalıdır.

Yabancı anahtarlı bir tablo oluşturan SQL kodu, normdan biraz farklıdır.

Yabancı Anahtar Örneği ile Tablo Oluşturma

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Yukarıdaki kodda görebileceğiniz gibi, bir yabancı anahtar, yeni tabloya bağlanan birincil anahtara bir referansla birlikte açıkça bu şekilde tanımlanmalıdır.

çizik disk nasıl temizlenir

İlgili: Yeni Başlayanlar için Temel SQL Komutları Hile Sayfası

Yeni tabloya bir kayıt eklemek için yabancı anahtar alanındaki değerin, orijinal tablonun birincil anahtar alanındaki değerle eşleştiğinden emin olmanız gerekir.

Yabancı Anahtar Örneği ile Kayıt Ekleme

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Yukarıdaki kod, yeni dosyada yeni bir kayıt oluşturur. Arabalar tablo, aşağıdaki sonucu üretir.

Arabalar Tablosu

Yukarıdaki tablodan Mercedes-Benz kiralayan doğru John Brown'u kayıttaki yabancı anahtar ile tespit edebilirsiniz.

Gelişmiş Yabancı Anahtarlar

Veritabanında yabancı anahtar kullanmanın iki yolu daha vardır.

Yukarıdaki yabancı anahtarın tanımına bakarsanız, yabancı anahtarın benzersiz bir tanımlayıcı veya benzersiz tanımlayıcıların bir kombinasyonu olabileceğini söylediğini görürsünüz.

Araç kiralama veritabanı örneğine geri dönersek, bir müşteri o arabayı her kiraladığında (aynı arabaya ait) yeni bir kayıt oluşturmanın, aracın amacını boşa çıkardığını göreceksiniz. Arabalar tablo. Arabalar satılıksa ve tek bir müşteriye satılmışsa, mevcut veri tabanı mükemmeldir; ancak arabaların kiralık olduğu göz önüne alındığında, bu verileri göstermenin daha iyi bir yolu var.

Bileşik Anahtarlar

Bileşik anahtarın iki veya daha fazla benzersiz tanımlayıcısı vardır. İlişkisel bir veritabanında, tek bir yabancı anahtarın kullanımının o veritabanındaki ilişkileri yeterince temsil etmeyeceği durumlar olacaktır.

Araç kiralama örneğinde en pratik yaklaşım, kira detaylarını saklayan yeni bir tablo oluşturmaktır. Araç kiralama tablosundaki bilgilerin faydalı olması için hem araç hem de müşteri tablolarına bağlanması gerekmektedir.

Bileşik Yabancı Anahtarlarla Tablo Oluşturma

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Yukarıdaki kod önemli bir noktayı göstermektedir; SQL veritabanındaki bir tablo birden fazla yabancı anahtara sahip olabilse de, yalnızca tek bir birincil anahtara sahip olabilir. Bunun nedeni, bir kaydı tanımlamanın yalnızca bir benzersiz yolunun olması gerektiğidir.

Benzersiz bir anahtara sahip olmak için tablodaki üç özelliğin tümünü birleştirmek gerekir. Bir müşteri aynı gün içinde birden fazla araba kiralayabilir (böylece Müşteri Kimliği ve TarihKiralanan iyi bir kombinasyon değil) birden fazla müşteri aynı arabayı aynı günde kiralayabilir (yani Lisans numarası ve TarihKiralanan iyi bir kombinasyon değil).

Ancak, hangi müşteriyi, hangi arabayı ve hangi gün olduğunu söyleyen bir bileşik anahtarın oluşturulması, mükemmel bir benzersiz anahtar yapar. Bu benzersiz anahtar, hem bileşik yabancı anahtarı hem de bileşik birincil anahtarı temsil eder.

iphone takviminden etkinlikler nasıl kaldırılır

Yabancı Birincil Anahtarlar

Ah evet, yabancı birincil anahtarlar çıkıyor. Bunun için resmi bir isim olmamasına rağmen, yabancı anahtar aynı tabloda birincil anahtar da olabilir. Bu, mevcut bir varlık (veya başka bir tabloya kayıt) hakkında özel veriler içeren yeni bir tablo oluşturduğunuzda olur.

Diyelim ki Fred (araba kiralama şirketinde çalışan) şirketin veri tabanında çalışan tablosunun altında. Birkaç yıl sonra süpervizör olur ve süpervizör masasına eklenir.

Fred hala bir çalışan ve yine aynı kimlik numarasına sahip olacak. Yani Fred'in çalışan kimliği artık yönetici tablosunda yabancı bir anahtar olarak bulunuyor ve bu da o tabloda birincil anahtar olacak (çünkü o bir süpervizör olduğu için Fred için yeni bir kimlik numarası oluşturmanın bir anlamı yok).

Artık SQL Veritabanlarında Yabancı Anahtarları Tanımlayabilirsiniz

Yabancı anahtarlar, bir SQL veritabanındaki farklı tabloları birbirine bağlar. Bu makaleden, yabancı anahtarın ne olduğunu, nasıl çalıştığını ve bunları bir veritabanında bulundurmanın neden önemli olduğunu görebilirsiniz. Ayrıca, yabancı anahtarların temel ve hatta daha karmaşık biçimlerini de anlıyorsunuz.

Yabancı anahtarların ilginç olduğunu düşünüyorsanız, SQL veritabanlarınızı sorgulamak için proje ve seçim işlemlerini kullanmaya başladığınızda bir saha gününüz olacak.

Paylaş Paylaş Cıvıldamak E-posta SQL'de Proje ve Seçim İşlemlerinin Nasıl Kullanılacağını Öğrenin

Bu örneklerle Proje ve Seçim işlemlerini anlayarak SQL ilişkisel veritabanlarını kavrayın.

Sonrakini Oku
İlgili konular
  • Programlama
  • Programlama
  • SQL
  • veri tabanı
Yazar hakkında Kadeisha Kean(21 Makale Yayınlandı)

Kadeisha Kean, Full-Stack Yazılım Geliştirici ve Teknik/Teknoloji Yazarıdır. En karmaşık teknolojik kavramların bazılarını basitleştirme konusunda belirgin bir yeteneğe sahiptir; her teknoloji acemisinin kolayca anlayabileceği malzeme üretmek. Yazmak, ilginç yazılımlar geliştirmek ve dünyayı gezmek (belgeseller aracılığıyla) konusunda tutkulu.

Kadeisha Kean'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın