0

Veritabanı Temel kavramlar ve Modelleme Bölüm 3

Veritabanı konusu ile uğraşan herkes’in en temel seviyede bilmesi gereken konular serisine devam ediyoruz. Şu anda kullanılan en popüler veritabanları ilişkisel veritabanı modelini kullanmakta . Hemen aklınıza gelen soruya cevap verelim.

Nedir bu İlişkisel Veritabanı Modeli

İlişkisel veritabanı modelini şöyle  tarif edelim; 

Elimizdeki bir çok birbiri ile alakalı veriler olduğunu düşünelim. Şimdi bunların hepsini bir tabloya koysak bir tabloda çok kalabalık ve karışık olacaktır. Bu model der ki ; bütün verileri bir tabloda yada bir kaç tabloda tutmak yerine her tablo bir konuya ait veriler tutsun . örnekleyelim :

Kitaplarla alakalı bir işiniz var ve elinizde bir sürü bilgi var  kitap adları, kitap yazarları, yazarların detayları ,yayın evleri, kitap fiyatları , stok bilgileri ……. bir sürü bilgi 

bunların hepsini bir yere koymak neredeyse olanaksız gibi  koysanız bile bir sürü gereksiz tekrar eden veriden dolayı içinde çıkılması zor bir hale girer. O zaman şöyle yapsak yazarlar ayrı bir tablo , kitaplar ayrı bir tablo ,yayın evleri ayrı bir tablo şeklinde yapsak , hatta bunlarda kendi içinde daha alt tablolara bölünse verilerin okunması çok kolaylaşacaktır. 

Peki tamam bunları mümkün mertebe alt tablolara böldünüz ama verileri toplu bir şekilde çekmeniz gerekecek bunu nasıl toparlayacaksınız ? İşte burada ilişkisel veritabanı’nın tanımı ortaya çıkıyor ve diyor ki; 

Sen bu böldüğün alt tablolar arasında öyle bir ilişki kur ki bu ilişkiler vasıtasıyla istediğin veriyi ilişkisine göre çağırabilesin.  İşte ilişkisel veritabanı bunu ifade etmektedir. 

Peki bu ilişkiler nelerdir ? 

3 tane ilişki kurma yöntemimiz var bunlar neler bakalım;

  1.  Bir den Çoğa ( One to Many Relationship)
  2. Birden Bire  ( One to One Relationship)
  3. Çoktan Çoğa ( Many to Many Relationship)

burada ençok kullanılan olarak bir den çoğa ilişkidir diğerleri buna nazaran az kullanılan ilişkilerdir. 

Birden Çoğa İlişki ( One to Many Relationship)

Bu ilişki için şöyle bir senaryo üzerinden gidelim. Kitap satıyorsunuz ve Müşterileriniz var değil mi ?  Bir müşteri sizden defalarca ürün alabilir öyle bir durumda siz bu kayıtları şu şekilde tutsanız ne kadar anlamsız olur 

 

 

 

 

 

 

 

 

Evet bu tabloya bakınca veritabanı mantığına ters o kadar şey var ki ? MüsteriId alanı gerçekten bir anlamsızlık ifade etmekte sadece sıra tutuyor , Müsterinin adı kaç yerde gereksiz geçiyor bunlar hep gereksiz veri.Adres bilgileri tekrarlanıyor. İşte bu tabloyu böyle yapmaktansa bir sonraki bölümde anlatacağım formlar uygulanarak alt tablolara ayrılsa daha güzel olur. O zaman şimdi birden çoğa ilişkiyi tanımlayacak şekilde tabloda düzenlemeler yapalım.

Burada musteriID,musteriAdi,yasadigiIl bunlar müsterinin kişisel bilgileri olduğu için bunları aynı tabloda tutmak uygun olacak. Sipariş ile ilgili alanları siparisNo,siparisTarihi,siparisAdresi alanları da bir tabloda tutulabilir. Hatta bir müşterinin birden fazla sipariş alanı olabilir değil mi? Eğer böyle olursa veri tekrar durumuna girilir o yüzden siparisAdresi alanı içinde ayrı bir tablo oluşturursak uygun olacaktır. o halde yapalım

 

bu şekilde bir yapı daha uygun bir yapı olacaktır. Diyebilirsiniz ama burada da sayılar tekrar ediyor . onları tekrardan saymıyoruz 🙂 çünkü çok küçük veriler. Şimdi gelelim bir den çoğa ilişkiye ;

Müşteriler tablosundan Siparis tablosuna 1 den ∞ Birden Çoğa bir ilişki var çünkü müşteriler tablosunda musteriID tekrarlanmazken siparis tablosunda musteriID tekrarlanmaktadır. Aynı zamanda siparisler tablosundaki musteriID alanı “FOREIGN KEY” olarak adlandırılır. 

Bir sonraki bölümde devam edelim….

admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir