ben

OMÜ , Bilgisayar Mühendisliği, 13'

12 Aralık 2017 Salı

Ilişkiler





5.1 BİRE-BİR İLİŞKİ
Bir tablodaki bir kaydin diğer tablodaki bir kaydi göstermesidir.  Kayıtlar birebir eşleşir. Bu örnek üzerinde ;
Her filmin bir imdb puanı vardır. Bir filmde birden fazla imdb olmaz .Her imdb puanı da bir filme aittir. Bu durumda movie tablosu ile imdb tablosu ile bire bir ilişkilidir. 
  5.2 BİRE- ÇOK İLİŞKİ
 Bir tablodaki bir kaydın diğer tablodaki birden çok kaydı göstermesidir. Bu örnek üzerinde;   
 Her filmin bir gösterim yılı vardır. Bir film birden fazla yılda gösterilmez. Yıl tablosu tarafından bakarsak da bir yılda birden fazla film gösterilebilir. Örneğin 2017 de 20 tane film gösterime girebilir. Fakat bir film sadece 2017  gibi bir yılda gösterime girer. Bir filmin hem 2017 hem 2016 hem 2015 de gösterime giremez. 
5.3 ÇOKA ÇOK İLİŞKİ
    Bir tablodaki bir kaydın diğer tablodaki birden çok kaydı göstermesi aynı zamanda , diğer tablodaki bir kaydında ilk tablomuzda birden çok kayda denk gelmesir. Bu örnek üzerinde;
  Film ve kategori tablolarını düşünecek olursak, her filmin birden fazla kategorisi vardır. Örneğin; ‘ben efsaneyim’ filmi hem fantastik , hem macera, hem de bilim kurgu kategorisine sahip olabilir.  Aynı zamanda her kategoride de birden fazla film eklenebilir. Örneğin: fantastik kategorisinde, ‘harry potter’, ‘yuzuklerin efendisi’, ‘zamana karşı’ gibi filmler eklenebilir. Kategori ve film arasında çift yönlü , birden fazla kayda karşılık gelir. 



Access tarafında ilişkiler nasıl oluşturulur?

1- Öncelikle tablolarınızı oluşturun.
2-Veritabanı Araçlarından ilişkileri seçin




3. İlişki türlerinin yönünü belirleyin 

3.1 Bire bir ilişki:  Önemli tablodan(en sık kullanılan tablodan) , daha az önemli tabloya (az kullanılan) tabloya doğrudur. İlişkinin başlangıcı önemli tablo, bitişi önemsiz tablodur. Foreign key her zaman ilişkinin bittiği tablodadır.(Yolun sonunda). Önemsiz olan tabloya önemli olan tablonun Primary keyini, foreign key olarak ekleriz
3.2 Bire Çok ilişki: sorduğunuz sorulardan birinin evet diğerinin hayır olduğu iki tablo arasında evet yanıtını veren ilişkinin başlangıcıdır. Hayır yanıtını veren ilişkinin sonudur. Foreign keyi hayır cevabı verdiğiniz(yolun sonundaki) tabloya eklersiniz.
3.3. Çoka Çok: sorduğunuz sorulardan her ikisinindede evet cevabı alıyorsanız araya bağlantı tablosu oluşturmalısınız. Adı : tbl_birincitabloadiToİkincitabloadi standardına uygun olmalı. Her iki tablonunda primary keyini bu ara tabloya foreign key olarak eklersiniz


4. Tüm tablolara eklememiz gereken foreign keyi ekleyin

Not: Eklediğiniz foreign key alanı sayı turunde olmalı ve alan boyutuda Uzun Tamsayı olmalı. Çunku primary key alanının alan turu uzun tamsayısır. Derste aldığınız veri uyuşmuyor hatası bu nedenledir.

5. Birebir ilişki

Benzersiz alanı sadece bire bir ilişkideki foreign key alanına yapıyoruz. Diğer ilişkilerde benzersiz yapmıyoruz!


veritabanı sekmesinden ilişkileri seçin


 tbl_movie deki movie_id alanını fare ile tutup tbl_imdb alanındaki movie_id alanına bırakın . karşınıza aşağıdaki ekran gelecektir.Oluştura tıkladığınızda ilişkiniz tanımlanmış olur



6. Bire Çok Oluşturun




7. Coka çok ilişki oluşturma

Çoka çok ilişkilerde araya bir ara tablo oluşturmamız gerekiyor
ilişkiler ekranını açıp sağ tıklayarak oluşturduğumuz tabloyu alalım


Bire çok ilişkideki gibi primary key alanlarını ara tablodaki foreign key alanına sürükleyip bırakıyoruz
8. İlişkiler ekranı son durum




BAŞKA BİR VERİTABANININ İLİŞKİLERİNİ YORUMLAYALIM





Tabloya baktığımızda bir proje firmasındaki çalışan muhendisler,  bağlı oldukları departman yada uzmanlık alanları ile mühendislerin maaş bilgilerinin tutulduğu ve o firmanın ürettiği projelerin tutulduğu veri  tabanı olduğunu anlayabiliriz. Peki hangi tablo hangisiyle nasıl bağlanacak.  

Engineer  ve ssk tablolarına bakarsak :  bir mühendisin bir adet sigorta bilgisi olur. Bir ssk bilgisi ise bir kişiye aittir. Bu nedenle mühendis ile ssk arasında bire-bir ilişki vardır. 

Engineer ile section tablolarına bakarsak: bir mühendis birden fazla departmana yada uzmanlık alanına sahip olabilirmi? Günlük hayatta istisna vardır belki ama şirketler her bir  mühendisi bir uzmanlık alanında çalıştırır. Bu nedenle bir mühendis bir bölüme aittir. Örneğin bir mühendis aynı anda hem yazılımcı hem inşaat alanında mühendisliği olamaz.  Bolum tablosu tarafından bakarsak, bir bölümde birden fazla mühendis olabilir mi? örneğin bir yazılım depertmanında 3 adet bilgisayar mühendisi çalıştırabilir. Bu nedenle  bu iki tablo arasında bire çok ilişki türü vardır.


Project ile Engineer tablolarına bakarsak: Bir mühendis birden fazla projede çalışabilirmi?, bir projede birden fazla mühendis çalışabilir mi? burada her iki sorunun cevabı evet ise bu tablolar arasında çoka çok ilişki türü vardır 


Hiç yorum yok: