Tablo ilişkileri kılavuzu

Tablo ilişkileri kılavuzu

İ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'e bölünmüş bilgileri bir araya getirmenin yollarını sağlar ve bunu da ilişkili tablolara ortak alanlar ekleyerek 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ş

Tablo ilişkilerinin türleri

Neden tablo ilişkileri oluşturulur?

Bilgi tutarlılığını anlama

Tablo ilişkilerini görüntüleme

Giriş

Veritabanınızdaki her konu için bir tablo oluşturduktan sonra, Access uygulamasına, gerektiğinde bu bilgileri yeniden bir araya getirme yöntemini sağlamanız 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'te üç tür tablo ilişkisi vardır.

  • Bir-çok ilişkisi

    Örnek olarak, bir Müşteriler tablosu ve bir de Siparişler tablosu bulunan sipariş izleme veritabanını 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 böylece, her sipariş için doğru müşteriyi bulmak amacıyla Siparişler tablosundaki Müşteri Kimliği numarasını kullanabilir.

  • Çok-çok ilişkisi

    Şimdi de, bir Ürünler tablosuyla bir Siparişler tablosu arasındaki ilişkiyi inceleyelim. 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. Bir veritabanı nesnesinde tabloları kullanmanız gerektiğinde, Access bu tabloların nasıl birleştirileceğine karar vermek için tablo ilişkilerini kullanır. 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şkiniz varsa, Access varolan tablo ilişkisini temel alarak varsayılan birleştirmeyi sunar. Ayrıca, sorgu sihirbazlarından birini kullanırsanız, Access tanımlamış olduğunuz tablo ilişkilerinden topladığı bilgileri kullanarak, size bilgi içeren seçenekler sunar ve özellik ayarını uygun varsayılan değerlerle önceden doldurur.

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

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

  • 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 ve birincil anahtar başvurularının eşitlenmiş olarak 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. Sonra ilişkili tablolara ortak alanlar yerleştirerek Access uygulamasına, verileri yeniden bir araya getirme yolunu sağlarsınız. Örneğin, bir-çok ilişkisi göstermek için, "bir" tablosundaki birincil anahtarı alır, "çok" tablosuna ek bir alan olarak eklersiniz. Access verileri yeniden bir araya getirmek için, "çok" tablosundaki değeri alır ve "bir" tablosunda bunun karşılığı olan 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.

Tablo ilişkisi için etkinleştirerek bilgi tutarlılığını zorunlu kılarsınız (adım adım yönergeler için Bilgi tutarlılığını zorunlu kılma konusuna bakın). Zorunlu kılındıktan sonra, Access bu tablo ilişkisi için bilgi tutarlılığını ihlal edecek tüm işlemleri reddeder. Bu da, Access’in hem başvurunun hedefini değiştiren iki güncelleştirmeyi hem de başvurunun hedefini kaldıran silme işlemlerini reddedeceği anlamına gelir. Siparişler tablosunda siparişleri bulunan bir nakliyecinin birincil anahtarını değiştirmek için tamamen geçerli bir nedeniniz olabilir. Böyle durumlarda, aslında size gereken Access'in etkilenen tüm satırları tek işlemle otomatik olarak güncelleştirmesidir. Böylece Access güncelleştirmenin bir bütün olarak gerçekleştirilmesini ve veritabanınızın tutarsız bir durumda (bazı satırların güncelleştirilip bazılarının güncelleştirilmediği bir durumda) kalmamasını güvence altına alır. Bu nedenle Accessİlişkili Alanları Art Arda Güncelleştir seçeneğini destekler. Bilgi tutarlılığını zorunlu kılıp, İlişkili Alanları Art Arda Güncelleştir seçeneğini kullandıktan sonra, birincil bir anahtarı güncelleştirirseniz, Access birincil anahtara başvuruda bulunan 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ılar ve İlişkili Kayıtları Art Arda Sil seçeneğini kullanırsanız ve sonra da ilişkinin birincil anahtar tarafındaki bir kaydı silerseniz, Access birincil anahtara başvuruda bulunan 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 eklemek isteyip istemediğinizi sorar.

İlişkiler penceresini açma

  1. Dosya'yı ve ardından 'ı tıklatın.

  2. Veritabanını seçip açın.

  3. Veritabanı Araçları sekmesindeki İlişkiler grubunda İlişkiler'i tıklatın.

    Veritabanı ilişkiler içeriyorsa, İlişkiler penceresi görüntülenir. Veritabanı ilişkiler içermiyorsa, İlişkiler penceresini ilk kez açıyorsanız, Tabloyu Göster iletişim kutusu görüntülenir. İletişim kutusunu kapatmak için Kapat'ı tıklatın.

  4. Tasarım sekmesindeki İlişkiler grubunda Tüm İlişkiler'i tıklatın.

    Veritabanınızdaki tüm tanımlı ilişkiler görüntülenir. 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:

Tasarım sekmesinde, 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.

Tasarım sekmesinde, İlişkiler grubunda:

  • Tabloyu Göster    İlişkiler penceresinde görüntülemek üzere tablo ve sorgular seçebileceğiniz Tabloyu Göster iletişim kutusunu açar.

  • 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şı

Office yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×