MySQL

Veri tabanı tasarımında normalizasyonun önemi

Arkadaşlar bugun normalizasyon nedir, veri tabanı tasarımda normalizasyonun önemini, normalizasyon kurallarını, kurallara uyarken oluşacak adımları inceleyeceğiz. Normalizasyon kuralları ile oluşturulan veri tabanı her zaman daha iyi bir tasarım ve sorunsuz yapıya sahip olur. Öncelik olarak normalizasyonun tanımı sonrasında normalizasyon işlemlerini yapmaktaki amacı kavradıktan sonra normalizasyon kurallarına geçiş yapacağız. Sevgili arkadaşlar yararlı bir yazı olması dileği ile keyifli okumalar 🙂

Normalizasyon; veri tabanı tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir.

Normalizasyon (Ayrıştırma) tanım olarak, veri tabanlarında çok fazla sütun ve satırdan oluşan bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir.

Normalizasyon Amaçları

  1. Veri Bütünlüğünün Sağlanması
    – Gereksiz veri tekrarını önleyerek verilerdeki bozulmaları önlemek
  2. Uygulamadan Bağımsızlık
    – Uygulama değişse bile veritabanı tutarlı olarak çalışmalı
  3. Performansı Arttırmak
    – Veri tekrarı en aza iner ve arama hızlı olur.
Normalizasyon yapılırken uyulması gereken kuralların her birine normal form adı verilir. 5 adet normal form vardır. Biz bu normal formların özellikle ilk üçü üzerinde duracağız.

  • Birinci Normal Form (1 NF)
  • İkinci Normal Form (2 NF)
  • Üçüncü Normal Form (3 NF)
  • Dördüncü Normal Form (4 NF)
  • Beşinci Normal Form (5 NF)
İlk 3 normal form ihlal edilmesi durumunda

  1. Kayıt güncelleme
  2. Kayıt silme
  3. Kayıt bulmakta zorluk çekilir.

Asterisk, star icon 3 NF’de olan tablolar 1 NF ve 2 NF’ye uygundur. 2 NF’de olan tablolarda 1 NF ‘ye uygundur.

 

Normalizasyon Kuralları

 

Birinci Normal Form

Tekrarlanan sütun yapıları olmamalıdır.

Birden fazla bilgi tek bir sütunda olamaz.

Bir alan içerisindeki bilgi özel karakterlerle ayrılarak tutulmamalıdır.

webmaster-kitchen-normalizasyon-2

<!> Yukarıdaki tablolarımıza 1. normal form kurallarına uygun hale getirirsek aşağıda şekilde gözüktüğü gibi bir görünüm elde ederiz.

webmaster-kitchen-normalizasyon

Oluşacak Sorunlar

Veri Ekleme
• Eklenen verinin daha önce olup olmadığının kontrolü zor
Veri güncelleme
• Kişiye ait bir telefon numarası güncellenmek istediğine hangisinin güncelleneceği
Veri silme
• Silinecek verinin hangisi olduğu

İkinci Normal Form

Tabloda bir birincil anahtar olmalı ve anahtar olmayan
sütunlar birincil anahtara bağımlı olmalı.

Birincil anahtar birden fazla sütundan oluşuyorsa
tablodaki veriler her iki sütuna da bağımlı olmalıdır.

webmaster-kitchen-normalizasyon-3

<!> Aşağıdaki tabloda 2. normal kuralına göre öğrenci bilgileri ve not bilgileri ayrılmalıdır.

webmaster-kitchen-normalizasyon-4

Üçüncü Normal Form

Anahtar olmayan sütunlar anahtar sütuna tam bağımlı olmalıdır. Anahtar olmayan sütuna bağımlı olmamalıdır. Yani bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlı olamaz.

webmaster-kitchen-normalizasyon-5

<!> Yukarıdaki tablomuzu 3. normal form kurallarına göre şekillendirdiğimizde birim ve ürün tablosu şeklinde ayırmış oluruz ve bu iki tablomuzu birim adındaki sütunumuz ile ilişkilendirerek iki tablomuzu birbirlerini bağlamış oluruz.

webmaster-kitchen-normalizasyon-6

 

Dördüncü Normal Form

Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin verilmez. Örneğin tabloda yer alan bir film, hem korku filmi hem de bilim-kurgu filmi olabilir. Bu durum Film tablosunda nasıl ifade edilebilir? 4. normal formu sağlamak için, her bağımsız bire çok ilişki için ayrı bir tablo oluşturulması gerekir. Örneğimizde, türler için yeni bir tablo açılması gerekir. Tablonun adına türler denilebilir. Sonrasında filmTurleri diye başta bir tablo açılması gerekir. ‘Korku filmleri’ adlı kitap film için, önceklikle film numarası, korku bölümünün kodunun yer aldığı bir satır ; ardından da yine film numarası, ardından da bilim-kurgu türünün kodunun aldığı yeni bir satırın daha eklenmesi gerekir.

Beşinci Normal Form

Tekrarlamaları ortadan kaldırmak için her bir tablonun mümkün olduğunca küçük parçalara bölünmesi gerekir. Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallar kapsamında olmayan tekrarlamalar da 5 normalizasyon kuralı ile giderilebilir. Bir tablomuzda bir sütun girdisi eklenmek istendiğinde bu bölüme girilecek bilgiler belli başlıdır. Bu bilgiler başka bir tabloda tutulabilir. Böylelikle, kullanıcıların bu alana gelişi güzel bilgiler girmesi engellenmiş olur.



Yazar hakkında

Hakan Karataş

Back-End Developer @Webmaster.Kitchen.

Ağırlıklı olarak Back-end tarafında bilgi, birikim ve yeni öğrendiğim bilgiler ile mutfakta yer almaktayım. Görüş, düşünce ve tecrübelerinizi bizlerle paylaşabilirsiniz. Yorum alanı ile mutfağa katkıda bulunun.

Yorumlar

2 Yorumlar

  • Merhabalar,
    Rica etsem veri tekrarını, veri kaybını veya veri yetersizliğini biraz açabilir miyiz. Teşekkürler hayatta başarılar

    • Merhabalar,
      Veri tekrarı aynı veya benzeri veriler birçok farklı tablolarda karşılaşabiliriz. Bundan dolayı en uygun tabloda mümkün olduğunca o bilginin en az sayıda tabloda gözükmesi daha sağlıklıdır. Bunun tam tersi de mevcuttur. Az sayıda tabloda yer alsın derken bazı verilerden tam anlamıyla bilgi sahibi olamayabiliriz. Veri kaybından söz edecek olursak depolanan verinin normal yollarla erişilemez hale gelmesi şeklinde tanımlayabiliriz. Bu durum dosyanın formatından, veri depo ortamında bozulma ve hasar görmelerin gözükmesinden ve daha birçok nedenden dolayı olabilir. Teşekkür ederim.

Bir yorum yaz