Tablo Verileri 4 Tablolar Arasinda İlişki Tanımlama

14/05/2014, 18:55

access_delisi

Microsoft.com'dan alıntıdır.

Tablo ilişkileri nedir?

İlişkisel bir veritabanında, ilişkiler gereksiz verileri önlemenizi sağlar. Örneğin, kitaplar hakkında bilgi izleyecek bir veritabanı tasarlıyorsanız, kitabın başlığı, yayım ve publisher tarihi gibi her kitap hakkında bilgi depolayan "Başlıklar" adlı bir tablo olabilir. Publisher'ın telefon numarası, adresi ve posta kodu gibi yayıncı hakkında saklamak isteyebileceğiniz bilgiler de bulunmaktadır. "Başlıklar" tablosunda bu bilgileri depolamak için olsaydı, yayıncının telefon numarası yayınladığı her başlık için çoğaltılması.

Publisher'ın bilgileri yalnızca bir kez "Yayıncılar" çağıracak ayrı bir tabloda depolamak için en iyi çözümdür Sonra "Yayıncılar" tablosunda bir girdi başvuran "Başlıklar" tablosuna bir işaretçi koyabilirsiniz.

Verileri eşitlenmiş kaldığından emin olmak için tablolar arasında bilgi tutarlılığını zorlayabilirsiniz. Bilgi tutarlılığı ilişkileri tek bir tablodaki bilgileri başka bir bilgi eşleştiğinden emin olun yardımcı olur. Örneğin, "Başlık" tablosundaki her başlık "Yayıncılar" tablosundaki belirli bir yayımcı ile ilişkili olmalıdır. Veritabanında varolmayan bir yayıncının veritabanına başlık eklenemez. 

Bir veritabanında mantıksal ilişkileri verimli bir şekilde veri sorgu ve raporlar oluşturmak etkinleştirin.

Tablo ilişkilerinin türleri
Bir ilişki anahtar sütunları, genellikle sütun (veya alanları) aynı ada sahip her iki tabloda bulunan veriler eşleştirilerek çalışır. Çoğu durumda, ilişki, bir tablodan başka bir tablodaki bir alan için birincil anahtar veya benzersiz tanımlayıcı sütun her satır için bağlanır. Diğer tablo sütununda bilinen bir "yabancı anahtar olarak." Her kitap başlığı satışları izlemek istiyorsanız, örneğin, arasında ilişki oluşturma (diyelim ki çağrı title_ID) birincil anahtar sütunu "Başlıklar" Tablo vetitle_IDadlı "Satış" tablodaki sütun. Title_ID sütun "Satış" tablosundaki yabancı anahtardır.

Tablolar arasındaki ilişkileri üç tür vardır. Oluşturulan ilişki türü ilişkili sütunların nasıl tanımlandığına bağlıdır.
-Çok ilişkiler
Bir-çok ilişkinin ilişki en yaygın türüdür. Bu tür bir ilişki içinde A tablosundaki bir satırın b tablosunda birçok eşleşen satırları olabilir Ancak B tablosundaki bir satırın a tablosunda yalnızca bir eşleşen satır olabilir Örneğin, "Yayıncılar" ve "Başlık" tabloların bir-çok ilişkisi vardır. Diğer bir deyişle, her yayıncı birçok başlık üretir. Ancak her başlık bir yayıncıdan geliyor.

Yalnızca ilgili sütunlardan biri birincil anahtar veya benzersiz kısıtlamaya sahip, bir-çok ilişkisi oluşturulur.

Access ilişki penceresinde bir-çok ilişkinin birincil anahtar tarafı bir sayı 1 ile belirtilir. Bir ilişkinin yabancı anahtar tarafı bir sonsuzluk simgesi tarafından gösterilir.




Çok-çok ilişkiler
Bir-çok ilişkisinde, A tablosundaki bir satırın B tablosunda birçok eşleşen satırları olabilir ve bunun tersi de geçerlidir.Birleşim tablosu olarak adlandırılan üçüncü bir tablo tanımlayarak, bu tür bir ilişki oluşturun. Birleşim tablosunun birincil anahtarı yabancı anahtar Tablo A ve b tablosundaki oluşur Örneğin, "Yazarlar" tablosunda ve "Başlık" tablosunda bir-çok ilişkisi bu tablolardan her biri "Yazarları" tablosu tarafından tanımlanan bir-çok ilişkisi vardır. Tablonun birincil anahtarı olarak "Yazarları" au_Id sütun ("Yazarlar" tablonun birincil anahtar) ve title_ID sütun ("Başlık" tablonun birincil anahtarı) birleşimidir.




Bire bir ilişki
Bire bir ilişkide, A tablosundaki bir satırın B tablosunda birden fazla eşleşen satır olabilir ve bunun tersi de geçerlidir. İkisi de ilişkili sütunların birincil anahtarsa veya benzersiz kısıtlamalara sahipse, bire bir ilişki oluşturulur.

Bu şekilde ilgili bilgilerin çoğu, bir tabloda olacağından bu tür bir ilişki pek olağan değil. Bire bir ilişkide, aşağıdaki eylemleri gerçekleştirmesi için kullanabilirsiniz:
  • Çok sayıda sütun içeren bir tabloyu bölmek.
  • Güvenlik nedenleriyle tablonun bir bölümünü yalıtmak.
  • Kısa ömürlü ve kolayca tablo silerek silinebilir verileri depolar.
  • Yalnızca bir ana tablonun altkümesine uygulanan bilgiyi saklar.

Access'te, bire bir ilişkinin birincil anahtar tarafı bir anahtar simgesi tarafından gösterilir. Yabancı anahtar tarafı bir anahtar simgesi de gösterilir.

Tablolar arasındaki ilişkileri tanımlama
Tablolar arasında bir ilişki oluşturduğunuzda, ilişkili alanlar aynı ada sahip gerekmez. Ancak, ilgili alanlar aynı veri türü OtomatikSayı alanı birincil anahtar alanı olmadığı sürece olması gerekir. FieldSize özelliği eşleştirme alanlarının ikisi de aynı ise, bir OtomatikSayı alanını bir sayı alanı ile eşleştirebilirsiniz. Örneğin, her iki alanın FieldSize özelliği Uzun tamsayıise, bir OtomatikSayı alanı ve bir sayı alanı eşleştirebilirsiniz. Eşleştirme alanlarının ikisi de sayı alanı olsa, bile, bunlar aynı FieldSize özellik ayarına sahip olmalıdırlar. 


Nasıl bir-çok veya bire bir ilişki tanımlamak için
Bir bir-çok oluşturmak için veya bire bir ilişki, şu adımları izleyin:

  1. Tüm tabloları kapatın. Oluşturamaz veya açık tablolar arasındaki ilişkileri değiştirin.
  2. Access 2002 veya Access 2003'te aşağıdaki adımları izleyin:
    1. Veritabanı penceresine geçmek için F11 tuşuna basın.
    2. Araçlar menüsünde İlişkiler' i tıklatın.
  3. Access 2007, Access 2010 veya Access 2013 Göster/Gizle grubunda Veritabanı Araçları sekmesinde İlişkiler ' i tıklatın.
  4. Veritabanınızda henüz herhangi bir ilişki tanımlamadıysanız, Tabloyu Göster İletişim kutusu otomatik olarak görüntülenir. Tablo Göster İletişim kutusu görüntülenmez ancak ilişkilendirmek istediğiniz tablolar eklemek istiyorsanız, Tabloyu Göster İlişkiler menüsünde tıklatın.
  5. İlişkilendirmek istediğiniz tabloların adlarını çift tıklatın ve sonra Tabloyu Gösteriletişim kutusunu kapatın. Bir tablo ile kendisi arasında ilişki oluşturmak için bu tabloyu iki kez ekleyin.
  6. Bir tablodan başka bir tablodaki ilgili alana ilişkilendirmek istediğiniz alana sürükleyin. Birden çok alanı sürüklemek için CTRL tuşunu basılı tutun, her alanı tıklatın ve sonra sürükleyin.

    Çoğu durumda, (Bu alan kalın metin olarak görüntülenir) birincil anahtar alanı bir tablodan diğer tabloda yabancı anahtar olarak adlandırılan benzer alana (Bu alan sık sık aynı adında) sürükleyin.
  7. İlişkileri Düzenleiletişim kutusu görüntülenir. İki sütunda görüntülenen alan adlarını doğru olduğundan emin olun. Gerekirse adlarını değiştirebilirsiniz.

    Gerekirse, ilişki seçeneklerini ayarlayın. İlişkileri Düzenle İletişim kutusunda özel bir madde hakkında bilgi sağlamak için varsa, soru işareti düğmesini tıklatın ve sonra öğeyi tıklatın. (Bu seçenekler bu makalenin ilerleyen kısımlarında ayrıntılı açıklanacaktır.)
  8. İlişkiyi oluşturmak için Oluştur düğmesini tıklatın.
  9. İlişkilendirmek istediğiniz tabloların her çifti için 4 ile 7 arasındaki adımları yineleyin.

    İlişkileri Düzenleiletişim kutusunu kapattığınızda, Access düzeni kaydetmek isteyip istemediğinizi sorar. Oluşturduğunuz ilişkiler düzeni kaydetmek veya düzeni kaydetmeyin veritabanına kaydedilir.

    Not: Yalnızca tablolarda aynı zamanda sorgularda ilişkiler oluşturabilirsiniz. Ancak, sorgularla başvuru bütünlüğü zorlanmaz.

Bir çoka çok ilişkisini tanımlama
Çok-çok ilişki oluşturmak için şu adımları izleyin:

  1. Çok-çok ilişkisi olan iki tablo oluşturun.
  2. Üçüncü bir tablo oluşturun. Birleşim tablosu budur. Kesişme tablosunda, adım 1'de oluşturduğunuz her tablodan birincil anahtar alanları olarak aynı tanımları sahip yeni alanlar ekleyin. Kesişme tablosunda, birincil anahtar alanları yabancı anahtar olarak işlev. Diğer bir tabloya yapabildiğiniz gibi kesişme tablosuna başka alanlar ekleyebilirsiniz.
  3. Kesişme tablosunda, diğer iki tablodan birincil anahtar alanları eklemek için birincil anahtarı ayarlayın. Örneğin, "Yazarları" Kesişme tablosunda, birincil anahtar SiparişNo ve ÜrünKodu alanlarından yapılmış.

    Not: Birincil anahtar oluşturmak için aşağıdaki adımları izleyin:
    1. Tablo Tasarım görünümünde açın.
    2. Alan veya birincil anahtar olarak tanımlamak istediğiniz alanları seçin. Bir alanı seçmek için istediğiniz alanın satır seçicisini tıklatın. Birden çok alan seçmek için Ctrl tuşunu basılı tutun ve sonra her alanın satır seçicisini tıklatın.
    3. Access 2002 veya Access 2003'te, araç çubuğunda Birincil anahtar ' ı tıklatın.

      Access 2007'de Tasarım sekmesindeki Araçlar grubunda Birincil anahtar ' ı tıklatın.

      Not: Çok alanlı birincil anahtar alanları sırası siparişinden tablodaki alanların sırasından farklı olmasını isterseniz, dizinler dizinler İletişim kutusunu görüntülemek ve sonra dizin adlı birincil anahtar için alan adlarını yeniden sıralamak için araç çubuğunda tıklatın.
  4. Her birincil tablo ve kavşak tablosu arasında bir-çok ilişkisi tanımlayın.
Bilgi tutarlılığı
Bilgi tutarlılığı kuralları Access ilgili tablodaki kayıtları arasındaki ilişkilerin geçerli olduğunu sağlamak için kullanır ve yanlışlıkla silme veya ilgili verileri değiştirmek, bir sistemdir. Tüm aşağıdaki koşullar doğru olduğunda bilgi tutarlılığını ayarlayabilirsiniz:
  • Eşleşen alan birincil tablodan birincil anahtar veya benzersiz dizin sahip.
  • İlgili alanlar aynı veri türüne sahip. Bunun iki istisnası vardır. Bir OtomatikSayı alanı FieldSize özelliği Uzun tamsayıayarı olan bir sayı alanı için ilgili olabilir ve Yineleme KimliğiayarıFieldSize özelliği olan bir sayı alanıFieldSize özellik ayarı Yinelemekimliği olan bir OtomatikSayı alanı ilgili olabilir.
  • Her iki tablo da aynı Access veritabanına aittir. Tablolar ilişkili tablolar ise tablo Access biçiminde olması gerekir ve bilgi tutarlılığını ayarlamak için saklandıkları veritabanını açmanız gerekir. Bilgi tutarlılığı, diğer biçimlerdeki veritabanlarından ilişkili tablolar için zorlanamaz.

Bilgi tutarlılığı kullandığınızda aşağıdaki kurallar uygulanır:
  • Birincil tablonun birincil anahtarında bulunmayan ilgili tablonun yabancı anahtar alanına bir değer giremezsiniz. Ancak, yabancı anahtar Null bir değer girebilirsiniz. Bu, kayıtların ilgisiz olduğunu belirtir. Örneğin, var olmayan bir müşteriye atanmış bir Siparişiniz olamaz. Ancak, MüşteriNo alanını boş değer girerek hiç kimseye atanmış bir sipariş olabilir.
  • İlgili tabloda eşleşen kayıtlar varsa, birincil tablodan kayıt silemezsiniz. Örneğin, "Siparişler" tablosunda çalışan için atanmış siparişler varsa "Çalışanlar" tablosundan bir çalışanın kaydını silemezsiniz.
  • Bu kaydın ilgili kayıtları varsa, birincil tablo bir birincil anahtar değerini değiştiremezsiniz. Örneğin, "Siparişler" tablosunda bu çalışan için atanmış siparişler varsa, "Çalışanlar" tablosunda çalışanın Kimliğini değiştiremezsiniz.
Güncelleştirmeleri ve silmeleri basamaklandırma
Başvurusal bütünlük içinde zorlandığı ilişkiler için istediğiniz erişimi otomatik olarak basamaklı güncelleştirme veya ilişkili kayıtları ardarda Sil belirtebilirsiniz. Bu seçenekleri ayarlarsanız, silmek ve genellikle bilgi tutarlılığı kuralları etkin engelleyen işlemleri güncelleştirebilirsiniz. Birincil tablodaki birincil anahtar değerleri kayıtları silmek veya değiştirildiğinde, Access bilgi tutarlılığını korumak için ilgili tablolarda gerekli değişiklikleri yapar.

İlişki tanımlarken, İlişkili alanları Ardarda Güncelleştironay kutusunu seçmek için tıklatın, birincil tablodaki bir kaydın birincil anahtarı her değiştirdiğinizde Microsoft Access otomatik olarak birincil anahtar ilgili tablolarda yeni değerde güncelleştirir. "Müşteriler" tablosunda bir müşterinin Kimliğini değiştirirseniz, İlişkisi kopmuş değil, örneğin, "Siparişler" tablosundaki MüşteriNoalanını otomatik olarak o müşterinin siparişlerini her biri için güncelleştirilir. Access güncelleştirmeleri hiçbir ileti görüntülemeden basamaklı.

Not: Birincil tablodaki birincil anahtar OtomatikSayı alanı ise, otomatik sayı alanındaki değeri değiştiremediğinizdenİlişkili alanları Ardarda Güncelleştironay kutusunu işaretleyerek hiçbir etkisi olmaz.

Birincil tablodaki kayıtları her sildiğinizde, ilişki tanımlarken İlişkili kayıtları ardarda Silonay kutusunu seçerseniz, Access ilgili tablodaki ilgili kayıtları otomatik olarak siler. Örneğin, "Müşteriler" tablosundan bir müşteri kaydını silerseniz, müşterinin tüm siparişlerini otomatik olarak "Siparişler" tablosundan silinir. (Bu kayıtları "Siparişler" kayıtlarla ilgili "Sipariş Ayrıntıları" tablo içerir). İlişkili kayıtları ardarda Silonay kutusu seçildiğinde, kayıtları bir form veya veri sayfasından sildiğinizde, Access, ilgili kayıtların da silinebileceği konusunda uyarır. Bir silme sorgusunu kullanarak kayıtları sildiğinizde, ancak, Access otomatik olarak ilgili tablodaki kayıtları uyarı görüntülemeden siler.

Birleşim türleri
Birleşim türü daha vardır. Onları aşağıdaki ekran görüntüsünde görebilirsiniz:



Seçenek 1, bir iç birleşim tanımlar. İç birleştirme olan birleştirme yalnızca birleştirilen alanlardaki değerleri belirtilen bir koşula uyuyorsa iki tablodaki kayıtların bir sorgunun sonuçlarında birleştirilir. Sorguda, yalnızca birleştirilen alanlardaki değerler eşleşiyorsa, kayıtlar seçen bir iç birleşim varsayılan birleşim dir.

Seçenek 2 sol dış birleşim tanımlar. Bir birleşim sol dış birleşim değil olsa bile hiçbir eşleşen değerleri sağdaki tabloda birleştirilmiş alanda içinde hangi tüm kayıtları sorgunun Sql deyimindeki sol birleştirme işleminin sol tarafından sorgunun sonuçlarına eklenir.

Seçenek 3 sağ dış birleşim tanımlar. Sağ dış birleşim join nedir sol taraftaki tabloda birleştirilmiş alanda eşleşen değer olmasa olsa bile içinde hangi tüm kayıtları sorgunun Sql deyimindeki sağ birleştirme işleminin sağ tarafındaki, sorgunun sonuçlarına eklenir.