SQL Veritabanı Tabloları Arası Fiziksel Ilişki 1565215652 okunma
Veritabanı tabloları oluşturulduktan sonra içerisine satırlar girilir. Bunlar veritabanı tablosunun nitelikleridir. Çeşitli nitelikler belirlendikten sonra kağıt üzerinde bunlara bakılarak ilişkilendirilir. Bu ilişkide göz önüne alınan özellik baba-oğula benzetilir. Örneğin Kategoriler ve Altkategoriler diye iki tablo olduğunu düşünürsek, her ikisi de birbiriyle bağlantılı olduğu bariz bellidir. Ancak hangi tablonun Id’si diğerine geçeceğini belirleyen şey baba-oğuldur. Altkategoriler tablosuna KategorilerId eklenilerek ilişki eklenir. Yani baba, oğul tablosuna eklenilir. Fiziksel ilişkiyi Management Studio üzerinde yapacağız. Bu tür bilgilerin bilinmesi gerekir ki ben bunları sizlere tekrardan hatırlatmak istedim.
Not: Bu kafamızdan kurduğumuz sanal bir ilişkidir. Bu makalemizde bu sanal ilişkiyi fiziksel ortama aktaracağız.
Tablolarımız hazırsa ilişkilendirmeye başlayalım.
Başlangıç notu: Ilişkilendirme işlemi yapılmadan önce şunu bilmeniz gerekir, tablo içerisinde bir kayıt olmaması gerekir. Bu sizin için daha iyi olacaktır.
Kendi veritabanımdaki ürünler tablosuyla rezervasyonları ilişkilendireceğim.
Bunun için tablomuzu desing şeklinde açalım (SQL Server 2005’te Open Table). Sol üst taraftan Relation butonuna (üçgen şeklindedir) tıklayalım.
Karşımıza Foreign Key Relationships penceresi çıktı. Bu pencereden FK ataması yapacağız. Bunun için sol alt tarafta bulunan Add butonuna tıklayalım.
Sol taraftaki kısımda FK_Tabloismi_Tabloismi şeklinde bir nesne geldi. Şimdi buna bir düzenleme yapmamız gerek. Bunun için Tables and Columns Specification kısmına tıklayalım.
Bu kısımda sağ tarafta göz atma butonu çıktı. Ona tıklayalım.
Karşımıza Tables and Columns çıktı. Alt kısmında PK ve FK tabloları yer alıyor.
Öncelikle, burada yapmak istediğimiz işlem nedir?
Benim tabloma bakarsanız şudur:
Araclar.RezervasyonId=Rezervasyonlar.Id
Yukarıdaki ilişkiyi fiziksel ortama bu alandan aktarabilirim.
Sağ tarafta Foreign key table (Yabancıl anahtar tablosu) var. Varsayılan olarak Araclar seçili. Çünkü bu tablo üzerinden ilişkilendirme yapıyorum. Alt kısmındaki alan sütunu belirtir. Buradan tablodaki yabancıl anahtar olarak atanmış niteliği (id’yi) seçiyoruz. Yani bana bakılırsa RezervasyonId olması gerekiyor.
Sol tarafta Primary key table (birincil anahtar tablosu) var. Buradan FK’nın nereden geldiğini belirtmem gerekecek. Atanan FK’nın tablosu ve id sütunları seçilerek bu kısımda da tamamlanır. Yani bende Rezervasyonlar tablosu seçilir, sütun olarak da id belirtilir.
Ilişkiyi yaptıktan sonra OK diyerek diğer adıma geçelim. Bir diğer önemli adım Update-Delete işlemleridir. Bunun için Foreign Key Relationships tablosunda alt kısımda bulunan Insert and Update Specification kısmındaki artı işaretine tıklayarak bu alanı açalım.
Delete rule ve Update rule çıktı. Bunları Cascade yapalım.
Yani bu tablo üzerinde işlem olduğunda bundan ilişkide olan tablolarında etkilenmesini sağlıyoruz. Herhangi bir güncelleme ya da silme işlemi olabilir. Bunu da yaptıktan sonra close diyoruz ve tablonun bu halini kaydediyoruz.
Kaydederken aşağıdaki gibi bir uyarı gelebilir. Eğer ki karşınıza çıkarsa Yes butonuna tıklayabilirsiniz.
Bu işlemlerde en fazla kaydederken hata alırsınız, o da muhtemelen FK anahtarının daha önceden atandığını belirten hatalar gibidir. Bunun için dikkatli olmanız gerekir. Kısa bir işlemi uzun zamana dönüştürmek sıkıcı olabilir.
Kolay gelsin.
Recep ŞERIT
BİR YORUM YAZIN