foreign key nedir

Foreign Key Nedir?

Foreign key, bir tablodaki bir sütunun, başka bir tablodaki bir sütuna referans vermesini sağlayan bir sütundur. Bu, iki tablo arasındaki ilişkiyi tanımlamak için kullanılır. Foreign key’ler, veritabanı bütünlüğünü korumak ve verilerin tutarlılığını sağlamak için önemlidir.

Foreign Key’lerin Kullanımı

Foreign key’ler, iki tablo arasındaki ilişkiyi tanımlamak için kullanılır. Bu, bir tablodaki bir satırın, başka bir tablodaki bir veya daha fazla satıra bağlı olduğunu belirtmek için kullanılır. Örneğin, bir “Siparişler” tablosu ve bir “Ürünler” tablosu olduğunu varsayalım. “Siparişler” tablosunda, her sipariş için bir sipariş numarası, sipariş tarihi, müşteri adı ve sipariş edilen ürünlerin listesi bulunur. “Ürünler” tablosunda ise, her ürün için bir ürün numarası, ürün adı, fiyatı ve stok miktarı bulunur.

“Siparişler” tablosundaki “Ürün Numarası” sütunu, “Ürünler” tablosundaki “Ürün Numarası” sütununa foreign key olarak tanımlanabilir. Bu, “Siparişler” tablosundaki her siparişin, “Ürünler” tablosundaki bir ürüne bağlı olduğunu belirtir. Bu sayede, bir sipariş için hangi ürünlerin sipariş edildiğini kolayca görebiliriz.

Foreign Key’lerin Türleri

Foreign key’ler, iki türde olabilir:

  • Basit foreign key: Basit foreign key, bir tablodaki bir sütunun, başka bir tablodaki tek bir sütuna referans vermesini sağlar. Örneğin, yukarıdaki örnekte, “Siparişler” tablosundaki “Ürün Numarası” sütunu, “Ürünler” tablosundaki “Ürün Numarası” sütununa basit foreign key olarak tanımlanmıştır.
  • Bileşik foreign key: Bileşik foreign key, bir tablodaki birden fazla sütunun, başka bir tablodaki birden fazla sütuna referans vermesini sağlar. Örneğin, bir “Öğrenciler” tablosu ve bir “Dersler” tablosu olduğunu varsayalım. “Öğrenciler” tablosunda, her öğrenci için bir öğrenci numarası, adı, soyadı ve bölümü bulunur. “Dersler” tablosunda ise, her ders için bir ders numarası, ders adı, kredisi ve öğretim görevlisi bulunur.

“Öğrenciler” tablosundaki “Ders Numarası” ve “Öğretim Görevlisi Numarası” sütunları, “Dersler” tablosundaki “Ders Numarası” ve “Öğretim Görevlisi Numarası” sütunlarına bileşik foreign key olarak tanımlanabilir. Bu, “Öğrenciler” tablosundaki her öğrencinin, “Dersler” tablosundaki belirli bir derse ve öğretim görevlisine kayıtlı olduğunu belirtir. Bu sayede, bir öğrencinin hangi derslere kayıtlı olduğunu ve hangi öğretim görevlilerinden ders aldığını kolayca görebiliriz.

Foreign Key’lerin Avantajları

Foreign key’lerin kullanılmasının birçok avantajı vardır. Bunlardan bazıları şunlardır:

  • Veritabanı bütünlüğünü korumak: Foreign key’ler, veritabanı bütünlüğünü korumak için kullanılır. Örneğin, yukarıdaki örnekte, “Siparişler” tablosundaki “Ürün Numarası” sütununa foreign key tanımlandığı için, “Ürünler” tablosunda olmayan bir ürün numarasıyla sipariş oluşturulamaz. Bu, veritabanındaki verilerin tutarlılığını sağlar.
  • Veri tutarlılığını sağlamak: Foreign key’ler, veri tutarlılığını sağlamak için kullanılır. Örneğin, yukarıdaki örnekte, “Öğrenciler” tablosundaki “Ders Numarası” ve “Öğretim Görevlisi Numarası” sütunlarına bileşik foreign key tanımlandığı için, bir öğrenci, “Dersler” tablosunda olmayan bir derse veya “Öğretim Görevlileri” tablosunda olmayan bir öğretim görevlisine kayıt olamaz. Bu, veritabanındaki verilerin tutarlılığını sağlar.
  • Veri erişimini kolaylaştırmak: Foreign key’ler, veri erişimini kolaylaştırmak için kullanılır. Örneğin, yukarıdaki örnekte, “Siparişler” tablosundaki “Ürün Numarası” sütununa foreign key tanımlandığı için, bir sipariş için hangi ürünlerin sipariş edildiğini kolayca görebiliriz. Bu, veri erişimini kolaylaştırır ve verilerin daha hızlı ve kolay bir şekilde işlenmesini sağlar.

Foreign Key’lerin Dezavantajları

Foreign key’lerin kullanılmasının bazı dezavantajları da vardır. Bunlardan bazıları şunlardır:

  • Veritabanı performansını etkileyebilir: Foreign key’ler, veritabanı performansını etkileyebilir. Örneğin, yukarıdaki örnekte, “Siparişler” tablosundaki “Ürün Numarası” sütununa foreign key tanımlandığı için, bir sipariş için hangi ürünlerin sipariş edildiğini bulmak için, “Ürünler” tablosuna bir sorgu gönderilmesi gerekir. Bu, veritabanı performansını etkileyebilir.
  • Veritabanı yönetimini zorlaştırabilir: Foreign key’ler, veritabanı yönetimini zorlaştırabilir. Örneğin, yukarıdaki örnekte, “Ürünler” tablosundaki bir ürünün numarasını değiştirmek istediğimizde, “Siparişler” tablosundaki tüm siparişlerin “Ürün Numarası” sütununu da değiştirmemiz gerekir. Bu, veritabanı yönetimini zorlaştırabilir.

Sonuç

Foreign key’ler, veritabanı bütünlüğünü korumak, veri tutarlılığını sağlamak ve veri erişimini kolaylaştırmak için kullanılan önemli bir araçtır. Ancak, foreign key’lerin kullanılmasının bazı dezavantajları da vardır. Bu nedenle, foreign key’leri kullanırken, avantajlarını ve dezavantajlarını dikkatlice değerlendirmek gerekir.


Yayımlandı

kategorisi