Tablo ilişkileri kılavuzu
Uygulandığı Öğe
Microsoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

İyi veritabanı tasarımının hedeflerinden biri veri artıklığını (yinelenen veriler) ortadan kaldırmaktır. Bu hedefe ulaşmak için, verilerinizi konuya göre tablolara bölebilir ve böylece her olgunun yalnızca bir kez gösterilmesini sağlayabilirsiniz. Ardından Access bölünmüş bilgileri yeniden bir araya getirmenin bir yolunu sağlarsınız; bunu ilgili tablolara ortak alanlar yerleştirerek yaparsınız. Bu adımı doğru yapmak içinse, önce tablolarınız arasındaki ilişkileri anlamanız ve sonra veritabanınızda bu ilişkileri belirtmeniz gerekir.

Bu makalede

Giriş

Veritabanınızdaki her konu için bir tablo oluşturduktan sonra, Access gerektiğinde bu bilgileri yeniden bir araya getirmenin bir yolunu vermeniz gerekir. Bunu da, ilişkili olan tablolara ortak alanlar yerleştirerek ve tablolarınız arasında ilişkiler tanımlayarak yaparsınız. Bundan sonra, aynı anda bir çok tablodan bilgi görüntüleyen sorgu, form ve raporlar oluşturabilirsiniz. Örneğin, burada görülen form birkaç tablodan alınan bilgileri içermektedir:

Aynı anda beş tablodan alınan ilişkili bilgileri görüntüleyen siparişler formu

1. Bu formdaki bilgilere kaynaklık edenler: Müşteriler tablosu...

2. ...Siparişler tablosu...

3. ...Ürünler tablosu...

4. ...ve Sipariş Ayrıntıları tablosu.

Fatura Adresi kutusundaki müşteri adı, Müşteriler tablosundan, Sipariş No ve Sipariş Tarihi değerleri, Siparişler tablosundan; Ürün adı, Ürün tablosundan; Birim Fiyatı ve Miktar değerleri de Sipariş Ayrıntıları tablosundan alınır. Bu tablolar, içlerindeki bilgilerin forma getirilmesi için çok çeşitli şekilde birbirine bağlanır.

Önceki örnekte, aynı sipariş hakkındaki bilgiyi göstermek için bu tabloların alanları koordine edilmelidir. Bu koordinasyon, tablo ilişkileri kullanılarak gerçekleştirilir. Tablo ilişkisi anahtar alanlardaki veriler eşleştirilerek çalışır — genellikle adı iki tablo da aynı olan bir alan. Çoğu durumlarda, bu eşleştirme alanları, bir tablodan her kayıt için benzersiz bir tanımlayıcı sunan birincil anahtar ve diğer tablodaki yabancı anahtardır. Örneğin, Çalışanlar ve Siparişler tablolarındaki ÇalışanNo alanları arasında bir tablo ilişkisi oluşturularak, çalışanlar sorumlu oldukları siparişlerle ilişkilendirilebilir.

Çalışanlar tablosunda birincil anahtar ve Siparişler tablosunda ikinci anahtar olarak kullanılan ÇalışanNo.

1. ÇalışanNo her iki tabloda görünür — birincil anahtar olarak ...

2. ... ve yabancı anahtar olarak.

Sayfanın Başı

Tablo ilişkilerinin türleri

Access içinde üç tür tablo ilişkisi vardır.

  • Bir-çok ilişkisi

    Şimdi örnek olarak Customers tablosunu ve Orders tablosunu içeren bir sipariş izleme veritabanı kullanalım. Müşteri istediği kadar sipariş verebilir. Buna göre, Müşteriler tablosunda temsil edilen herhangi bir müşteri için, Siparişler tablosunda temsil edilen pek çok sipariş olabilir. Müşteriler tablosuyla Siparişler tablosu arasındaki ilişki "bir-çok" ilişkisidir.

    Veritabanı tasarımınızda bir-çok ilişkisini temsil etmek için birincil anahtarı ilişkinin "bir" tarafında tutup, bunu ilişkinin "çok" tarafında ek alan veya alanlar olarak tabloya ekleyin. Örneğin buradaki durumda, Siparişler tablosuna yeni bir alan (Müşteriler tablosundaki kimlik alanı) ekler ve Müşteri Kimliği adını verirsiniz. Access siparişler tablosundaki Müşteri Kimliği numarasını kullanarak her sipariş için doğru müşteriyi bulabilir.

  • Çok-çok ilişkisi

    Şimdi products tablosu ile Orders tablosu arasındaki ilişkiye bakalım. Tek bir siparişte birden fazla ürün olabilir. Diğer yandan, tek bir ürün birçok siparişte görülebilir. Bu nedenle, Siparişler tablosundaki her kayıt için Ürünler tablosunda bir çok kayıt bulunabilir. Ayrıca, Ürünler tablosundaki her kayıt için Siparişler tablosunda da bir çok kayıt olabilir. Bu ilişkiye, "çok-çok" ilişkisi adı verilir. Tablolarınız arasında varolan çok-çok ilişkilerini algılamak için ilişkinin her iki tarafını da dikkate almanın önemli olduğunu unutmayın.

    Çok-çok ilişkisi göstermek üzere, genellikle kesişme tablosu adı verilen ve çok-çok ilişkisini iki adet bir-çok ilişkisine bölen üçüncü bir tablo oluşturmanız gerekir. İki tablonun her birinden birincil anahtarı üçüncü tabloya eklersiniz. Bunun sonucunda, üçüncü tablo ilişkinin her yinelenişini veya örneğini kaydeder. Örneğin, Siparişler tablosu ve Ürünler tablosu, Sipariş Ayrıntıları tablosuna iki adet bir-çok ilişkisi oluşturularak tanımlanan çok-çok ilişkisine sahiptir. Bir siparişte pek çok ürün olabilir ve her ürün pek çok siparişte yer alabilir.

  • Bir-bir ilişkisi

    Bir-bir ilişkilerinde, ilk tablodaki her kayıt ikinci tabloda yalnızca bir eşleşen kayda sahip olabilir ve ikinci tablodaki her kayıt birinci tabloda yalnızca bir eşleşen kayda sahip olabilir. Bu şekilde ilişkilendirilen bilgiler çoğunlukla aynı tabloda saklandığı için, bu ilişki yaygın değildir. Bir-bir ilişkilerini, bir tabloyu bir çok alana bölmek, bir tablonun bir bölümünü güvenlik nedeniyle yalıtmak veya ana tablonun yalnızca bir alt kümesi için geçerli olan bilgileri saklamak için kullanabilirsiniz. Böyle bir ilişki saptadığınızda, iki tablo da ortak bir alanı paylaşmalıdır.

Sayfanın Başı

Neden tablo ilişkileri oluşturulur?

Tablo ilişkilerini, İlişkiler penceresini kullanarak veya Alan Listesi bölmesinden bir alanı sürükleyerek oluşturabilirsiniz. Access, tablo ilişkilerini kullanarak tabloları veritabanı nesnesinde kullanmanız gerektiğinde nasıl birleştireceklerine karar verir. Form, sorgu veya rapor gibi başka veritabanı nesneleri oluşturmadan önce, tablo ilişkileri oluşturmanız için birkaç neden vardır.

  • Tablo ilişkileri sorgu tasarımlarınıza bilgi sağlar

    Birden fazla tabloda bulunan kayıtlarla çalışmak için, genellikle, tabloları birleştiren bir sorgu oluşturmanız gerekir. Sorgu ilk tablonun birincil anahtar alanındaki değerleri ikinci tablodaki yabancı bir anahtar alanıyla birleştirerek çalışır. Örneğin, her bir müşterinin tüm siparişlerini listeleyen satırları döndürmek için, Müşteriler tablosunu, Müşteri Kimliği alanı temelinde Siparişler tablosuyla birleştiren bir sorgu oluşturursunuz. İlişkiler penceresinde, birleştirilecek alanları kendiniz belirtebilirsiniz. Ancak, tablolar arasında zaten tanımlanmış bir ilişkinin varsa, Access mevcut tablo ilişkisine bağlı olarak varsayılan birleştirmeyi sağlar. Ayrıca, sorgu sihirbazlarından birini kullanıyorsanız, Access zaten tanımlamış olduğunuz tablo ilişkilerinden topladığı bilgileri kullanarak size bilinçli seçenekler sunar ve özellik ayarlarını uygun varsayılan değerlerle önceden doldurulur.

  • Tablo ilişkileri form ve rapor tasarımlarınıza bilgi sağlar

    Form veya rapor tasarlarken, Access önceden tanımlamış olduğunuz tablo ilişkilerinden topladığı bilgileri kullanarak size bilgilendirilmiş seçenekler sunar ve özellik ayarlarını uygun varsayılan değerlerle önceden doldurulur.

  • Tablo ilişkileri, veritabanınızda başı boş kayıtlar oluşmasını önlemek amacıyla, üzerinde bilgi tutarlılığını yürürlüğe koyabileceğiniz temeli oluşturur. Başıboş kayıt, var olmayan başka bir kayda başvuru içeren kayıttır — örneğin, var olmayan bir müşteri kaydına başvuruda bulunan bir sipariş kaydı gibi.

    Bir veritabanını tasarlarken, bilgilerinizi, her birinde birincil anahtar bulunan tablolara ayırırsınız. Sonra, bu birincil anahtarlara başvuruda bulunan ilişkili tablolara yabancı anahtarlar eklersiniz. Bu yabancı anahtar ve birincil anahtar çiftleri tablo ilişkilerinin ve çok tablolu sorguların temelini oluşturur. Bu yabancı anahtar-birincil anahtar başvurularının eşitlenmiş kalması önemlidir. Tablo ilişkilerine bağımlı olan bilgi tutarlılığı, başvuruların eşitlenmiş durumda kalmasına yardımcı olur.

Sayfanın Başı

Bilgi tutarlılığını anlama

Veritabanı tasarlarken, veri artıklığını en aza indirmek için veritabanı bilgilerinizi konu temelinde bir çok tabloya ayırırsınız. Ardından Access ortak alanları ilgili tablolara yerleştirerek verileri yeniden bir araya getirmenin bir yolunu verirsiniz. Örneğin, bir-çok ilişkisi göstermek için, "bir" tablosundaki birincil anahtarı alır, "çok" tablosuna ek bir alan olarak eklersiniz. Verileri yeniden bir araya getirmek için Access "çok" tablosundaki değeri alır ve "bir" tablosunda karşılık gelen değeri arar. Bu şekilde, "çok" tablosundaki değerler "bir" tablosundaki ilgili değerlere başvuruda bulunur.

Nakliyeciler ve Siparişler arasında bir-çok ilişkisi bulunduğunu ve bir Nakliyeciyi silmek istediğinizi düşünelim. Silmek istediğiniz nakliyecinin Siparişler tablosunda siparişleri varsa, Nakliyeci kaydını sildiğinizde bu siparişler "başı boş" kalır. Siparişler yine nakliyeci kimliği içerir, ancak kimlik, başvuruda bulunduğu kayıt artık var olmadığı için geçersiz olur.

Bilgi tutarlılığının amacı, sahipsiz öğeler oluşmasını önleyerek ve başvuruları eşitlenmiş durumda tutarak, hiçbir zaman kuramsal durumlar oluşmamasını sağlamaktır.

Bilgi tutarlılığını zorlamak istediğinizde, bir tablo ilişkisi için etkinleştirirsiniz. Access zorunlu kılındıktan sonra, bu tablo ilişkisi için bilgi tutarlılığını ihlal eden tüm işlemleri reddeder. Bu, Access hem başvurunun hedefini değiştiren güncelleştirmeleri hem de bir başvurunun hedefini kaldıran silmeleri reddedeceği anlamına gelir. Siparişler tablosunda siparişleri olan bir nakliyecinin birincil anahtarını değiştirmek için son derece geçerli bir ihtiyacınız olabilir. Bu gibi durumlarda, Access tek bir işlemin parçası olarak tüm etkili satırları otomatik olarak güncelleştirmeniz gerekir. Bu şekilde Access, veritabanınızın tutarsız bir durumda bırakılmaması ve bazı satırların güncelleştirilmemesi için güncelleştirmenin tam olarak tamamlanmasını sağlar. Bu nedenle Accessİlişkili Alanları Art Arda Güncelleştir seçeneğini destekler. Bilgi tutarlılığını zorunlu kıldığınızda ve İlgili Alanları Art Arda Güncelleştir seçeneğini belirlediğinizde ve ardından bir birincil anahtarı güncelleştirdiğinizde, Access birincil anahtara başvuran tüm alanları otomatik olarak güncelleştirir.

Bir satırı ve ilişkili tüm kayıtları (örneğin, bir Nakliyeci kaydını ve bu nakliyecinin ilişkili tüm siparişlerini) silmek için de geçerli bir nedeniniz olabilir. Bu nedenle, Accessİlişkili Kayıtları Art Arda Sil seçeneğini destekler. Bilgi tutarlılığını zorunlu kıldığınızda ve İlişkili Kayıtları Art Arda Sil seçeneğini belirlediğinizde ve sonra ilişkinin birincil anahtar tarafındaki bir kaydı sildiğinizde Access birincil anahtara başvuran tüm kayıtları otomatik olarak siler.

Sayfanın Başı

Tablo ilişkilerini görüntüleme

Tablo ilişkilerinizi görüntülemek için, Veritabanı Araçları sekmesinde İlişkiler'i tıklatın. İlişkiler penceresi açılarak varolan tüm ilişkileri görüntüler. Hiçbir tablo ilişkisi tanımlanmamışsa ve İlişkiler penceresini ilk kez açıyorsanız Access pencereye tablo veya sorgu eklemeniz istenir.

İlişkiler penceresini açma

  1. Dosya'ya tıklayın, Aç'a tıklayın ve ardından veritabanını seçip açın.

  2. Veritabanı Araçları sekmesinin İlişkiler grubunda İlişkiler'e tıklayın.

  3. İlişkiler Tasarımı sekmesinin İlişkiler grubunda Tüm İlişkiler'e tıklayın.Bu, veritabanınızdaki tüm tanımlı ilişkileri görüntüler. Gezinti Seçenekleri iletişim kutusundaki Gizli Nesneleri Göster onay kutusu seçili olmadıkça, gizli tabloların (tablonun Özellikler iletişim kutusunda Gizli onay kutusu işaretli olan tablolar) ve bunların ilişkilerinin görünmeyeceğini unutmayın.

Tablo ilişkiler, İlişkiler penceresinde tablolar arasında çizilen ilişki çizgileriyle gösterilir. Bilgi tutarlılığının zorunlu olmadığı bir ilişki, kendisini destekleyen ortak alanlar arasında ince bir çizgi olarak görünür. Çizgisini tıklatarak ilişkiyi seçtiğinizde, çizgi kalınlaşarak seçili olduğunu gösterir. Bu ilişki için bilgi tutarlılığını zorunlu kılarsanız, çizgi her iki uçta daha kalın görünür. Ayrıca, çizginin ilişkinin bir tarafındaki kalın kısmında 1 sayısı ve çizginin diğer taraftaki kalın kısmında sonsuzluk simgesi () görünür.

İlişkiler penceresi etkin olduğunda, Şerit üzerinde aşağıdaki komutlar arasından seçim yapabilirsiniz:

İlişkiler Tasarımı sekmesinin Araçlar grubunda:

  • İlişkileri Düzenle İlişkileri Düzenle iletişim kutusunu açar. Bir ilişki çizgisini seçtiğinizde, tablo ilişkisini değiştirmek için İlişkileri Düzenle'yi tıklatabilirsiniz. Ayrıca ilişki çizgisini de çift tıklatabilirsiniz.

  • Düzeni Temizle İlişkiler penceresinde tüm tabloları ve ilişkileri görüntüden kaldırır. Bu komutun tabloları ve ilişkileri silmediğini, yalnızca gizlediğini unutmayın.

  • İlişkiler Raporu Veritabanınızdaki tabloları ve ilişkileri gösteren bir rapor oluşturur. Rapor yalnızca, İlişkiler penceresinde gizli olmayan tabloları ve ilişkileri gösterir.

İlişkiler Tasarımı sekmesinin İlişkiler grubunda:

  • Tablo Ekle    İlişkiler penceresinde gösterilecek tablo seçimini etkinleştirir.

  • Tabloyu Gizle İlişkiler penceresinde seçili tabloyu gizler.

  • Doğrudan İlişkiler Seçili tablonun tüm ilişkilerini ve ilişkili tablolarını İlişkiler penceresinde görünmüyorsa görüntüler.

  • Tüm İlişkiler Veritabanınızdaki tüm ilişkileri ve ilişkili tabloları İlişkiler penceresinde görüntüler. Gezinti Seçenekleri iletişim kutusunda Gizli Nesneleri Göster seçili olmadıkça, gizli tabloların (Özellikler iletişim kutusunda Gizli onay kutusu seçili olan tablolar) ve bunların ilişkilerinin görünmeyeceğini unutmayın.

  • Kapat İlişkiler penceresini kapatır. İlişkiler penceresinin düzeninde herhangi bir değişiklik yaptıysanız, bu değişiklikleri kaydetmek isteyip istemediğiniz sorulur.

Sayfanın Başı

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.