Skip to main content

AccessTr.neT


İlişkisel Veritabanı Tasarımı

mesudi
mesudi
13
28814

İlişkisel Veritabanı Tasarımı

#1
İLİŞKİSEL VERİTABANI (RELATIONAL DATABASE)

[Resim: resim1f.jpg]

Bir tablo bir tek varlığa ait bilgileri tutmak için tasarlanır. Örneğin bir kitap tablosunda sadece kitaplara ait bilgiler vardır. 20 adet kitap bilgisi varsa, bu tabloya 20 adet satır eklenecek demektir. İlişkisel veri tabanı yaklaşımını ilişkisel yapan asıl unsur verilerin tablolara parçalanarak saklanmasıdır.
Tabloların kaç adet olacağı ve birbiriyle nasıl ilişkilendirileceğine karar verirken var olan kuralları kullanarak mantıksal bir plan ile hareket edilir.
Eğer tablolar üzerinde verileri normalize etmezseniz birçok sıkıntı oluşabilir. Bazı bilgiler birden fazla tekrarlanabilir. Bir bilgiyi güncellemek, veri eklemek ve silmek için birden fazla yerde bulma, değiştirme ve silme yapmanız gerekebilir. Bu nedenle normalizasyon kurallarını kullanmalısınız.

Genel kabul gören beş normalizasyon kuralı vardır. Bu kurallar, ilişkisel veri tabanının tanımı ile birlikte ortaya konmuştur. Veri tabanı normalizasyonu yukarıdaki resime bağlı olarak anlatılacaktır. Açıklamalar yapılırken bu resme dikkat etmelisiniz.

1. Normalizasyon Kuralı

Bir satırdaki bir alan yalnızca bir tek bilgi içerebilir. Örneğin kitap tablosunda, birden fazla yazarı olan kitap için yazar1, yazar2, yazar3 diye alanlar açsanız, bu kurala uymamış olursunuz. Böyle bir durumda, ayrıca yazarlar tablosu da oluşturarak kuralı çiğnememeye dikkat etmelisiniz.

2. Normalizasyon Kuralı

Bir tablo için, anahtar olmayan her alan, birincil anahtar olarak tanımlı tüm alanlara bağlı olmak zorundadır. Mesela, Ödünç tablosuna KitapAdi diye bir alan ekleseydik, bu sadece ödünç verilen kitap ile ilgili bir bilgi olacaktı ve oduncNo'na bağlı bir nitelik olmayacaktı. Bunu çözmek için, kitap adlarını ayrı bir tabloda tutarak sorun çözülür. Ya da anahtar alanın birden fazla alandan oluştuğu tablolarda, anahtar alanlardan sadece birine bağlı veriler, tabloda yer almamalı, ayrı bir tabloya taşınmalıdır. Bunun tersi de geçerlidir. Yani iki ya da daha fazla tablonun birincil anahtarı aynı olamaz. Şayet böyle ise, bu iki tablo tek tabloya indirilmelidir.

3. Normalizasyon Kuralı

Bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlı olamaz. Örneğin, kitaplarımız için cilt tipi adında bir alan ekleyip burada da karton kapak için K, deri cilt için D, spiral cilt için S yazsaydık, bu kodlama, kitap tablosunun birincil anahtarı olan kitapNo alanına bağlı bir kodlama olmayacaktı. Çünkü bu kodlama bir başka anahtarı olmayan alana bağlıdır. Bunun sonucunda da veri tabanımızda, karşılığı olmayan bir kodlama yer almış olacaktır. Cilt tipi bilgisini kodlu olarak tutan alan aslında cilt tipi açıklaması olan başka bir alana bağlıdır. Bu ilişki başka bir tabloda tutulmalıdır. Bu durumda, ciltŞekli adında bir tablo açmamız gerekir. Bu tablonun alanları da ciltTipKodu ve ciltSekli olmalıdır. Ancak bundan sonra, kitaplar tablosunda ciltTipi adında bir sütun açıp buraya da D,S,K gibi kodları yazabilirsiniz.

4. Normalizasyon Kuralı

Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin verilmez. Örneğin, tablomuzda yer alan bir kitap hem hikaye kitabı hem de kişisel gelişim kitabı olabilir.
4.normalizasyon kuralını sağlamak için, her bağımsız bire-çok ilişki için ayrı bir tablo oluşturmak gerekir. Bu örnekte, türler diye bir tablo açmamız ve daha sonra da kitapTurleri diye bir başka tablo daha açmamız gerekiyor. “Kişisel Gelişim Hikâyeleri” adlı kitap için, öncelikle kitap numarası, Hikâye bölümünün kodunun yer aldığı bir satır; ardından da yine kitap numarası,
ardından da kişisel gelişim türünün kodunun aldığı yeni bir satır daha eklemek gerekir.

5. Normalizasyon Kuralı

Tekrarlamaları ortadan kaldırmak için her bir tabloyu mümkün olduğunca küçük parçalara bölmek gerekir. Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallar kapsamında olmayan tekrarlamalar da 5.normalizasyon kuralı ile giderilir. Örneğin, kitaplarımız için bir edinme şekli bilgisi girilecek sütun eklemek isteyelim:
Bu bölüme girilebilecek bilgiler bellidir: Bağış veya satın alma gibi.
Bu bilgileri başka bir tabloda tutabiliriz. Böylece, kullanıcıların bu alana gelişigüzel bilgiler girmesini engellemiş olursunuz. Bu da sorgulama esnasında verileriniz arasında bir tutarlılık sağlar. Bu işlem sonucunda, tutarsızlıklara neden olabilecek ve sık tekrarlayan “look-up table” terimi kullanılır. Ancak, veri tabanı normalizasyon kuralları, bir ilişkisel veri tabanının tasarlanma aşamalarını değil de ilişkisel veri tabanında yer alacak kayıtların ilişkisel veri tabanı ile uyumlu olup olmadığını denetlemeye yöneliktir. Özetle ilişkisel bir veri tabanı tasarımı şu dört ögeyi barındırmalıdır.
• Veri tekrarı yapılmamalıdır.
• Boş yer mümkün olduğunca az olmalıdır.
• Veri bütünlüğü sağlanmalıdır.
• Veriler, aralarında bir ilişki tanımlamaya müsait olmalıdır.

KAYITLARIN İLİŞKİLENDİRİLMESİ

İlişkiler tablolardan verileri birbirine bağlayarak tabloların kullanışlılığını artırır. Böylece ilişkisel veri tabanları oluşturulur. Veriler konu veya göreve göre çeşitli tablolarda depolanır, ancak veriler ilişkilidir ve belirttiğiniz şekilde bir araya getirilebilir. Tablolar arasında ilişki kurmak suretiyle, veri tabanı dosyası düz veri tabanı olmaktan kurtarılır. Tablolar arası ilişki, daha hızlı sorgu icrası yapılmasını sağlar; veri-işlem işleri daha verimli olur. Bu sayede verileri güncelleştirirken, bütün tabloları elden geçirmek ve hatta yeniden girmek zorunda kalınmaz. Sadece güncelleştirilmesi gereken tabloya ek veya bu tabloda değişiklik yapılır. İlişkilendirme temelde bir tablodaki varlığa ait bilgilerin anahtar olan sütundan hareketle başka bir tablodan takip edilmesini sağlar. Tablolar arasında üç tip ilişki vardır:

1.Bire-Bir İlişki

İlişkilendirdiğiniz iki tablodan birincisi ile ikincisi arasında sadece bir kayıt
eşleşebilir. Bu tür ilişkilere bire-bir ilişki denir. İki tablo arasında bire bir ilişki varsa bu iki tablo birbirinin devamı demektir ve genellikle bir tek tablo olarak birleştirilir. Bu tür ilişkilendirme tablolarda sık kullanılmaz.

2.Bir-Çok İlişki

En çok kullanılan ilişki şeklidir. Bu ilişkide A tablosundaki bir kayıt B tablosundaki birden çok eşleşen kayda sahiptir. Bunun tersi doğru değildir. Yani B tablosundaki bir kayıt A tablosundaki yalnızca bir kayıt ile eşleşir.
Örneğin, Müşteriler ve Siparişler tablolarının birçok ilişkisi vardır: Her müşteri birçok sipariş verir ancak her sipariş bir müşteriye aittir.

3. Çok-Çok İlişki

Bir çok-çok ilişkide, A tablosundaki bir satırın B tablosunda çok sayıda eşi vardır ve tam tersi de geçerlidir. Bu tür ilişkileri, birincil anahtarları A ve B tablolarının yabancı anahtarlarından oluşan bağlantı tablosu diye adlandırılan üçüncü bir tablo tanımlayarak oluşturabilirsiniz.

KAYNAK : Internet'ten alıntıdır.

NOT : Okumada kolaylık olması amacıyla konu tekrar elden geçirilmiştir. alpeki99
Son Düzenleme: 02/06/2009, 16:43, Düzenleyen: mesudi.
Cevapla
#2
Bu konuları çoktan aşmış olduğunu düşünen birçok
üyemizin tasarımlarına bir daha dönüp bakmalarını tavsiye
ediyorum
Hatırlatma için tşk Mesudi
okileturc, 18-03-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#3
eline sağlık bu normalizasyon işini birinin anlatması gerekiyordu ne diyelim sana nasipmiş valla ne yalan söyleyeyim ben eriniyordum kim bu kadar yazıyı yazacak diye mesudi kardeş sana binlerce teşekkürler utteraccess accessmonster accessbuho gib bir çok sitede bu normalizasyon hakkında bir çok makale var bir tek bizde yoktu accesstr seni ve kazanımlarını kazanmakla ne iyi etmiş tekrar teşekkürler
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla
#4
Teşekkürler Sayın Mesudi
Kaplumbağa ya dikkat et...
Sadece  başını çıkartıp risk aldığında ilerleyebiliyor...
Cevapla
#5
Paylaşım için teşekkürler üstad... Yaptığımız ve yapacaklarımız projelerimizde bu sayede hatasız bir şekilde çalışmasına vesile olacak bir konu da aydınlatma için çok minnetdarız...
Son Düzenleme: 02/06/2009, 21:58, Düzenleyen: Aykay.
Cevapla
#6
Teşekkürler, konu Access dersleri bölümüne taşınmıştır.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task