Veri Tabanında Normalizasyon

3 Oct 2024

Veritabanında Normalizasyon: Teknik Bir İnceleme

Veritabanı tasarımı, verilerin verimli ve hatasız bir şekilde depolanması ve yönetilmesi için kritik öneme sahiptir. Bu süreçte, normalizasyon, veritabanında tutarlılığı sağlamak, veri tekrarını minimize etmek ve anomali risklerini en aza indirmek için kullanılan temel bir tekniktir. Bu makale, veritabanında normalizasyon kavramını, normalizasyonun aşamalarını (normal formlar) ve her aşamanın sunduğu avantajları teknik açıdan ele alacaktır.

1. Normalizasyon Nedir?

Normalizasyon, ilişkisel bir veritabanı tasarımında, verilerin yapısal olarak en uygun hale getirilmesi işlemidir. Bu süreçte, veritabanındaki tablo ve alanlar düzenlenir, böylece:

  • Veri tekrarı (redundancy) azaltılır,

  • Veri tutarsızlıkları önlenir,

  • Veri ekleme, güncelleme ve silme işlemleri sırasında oluşabilecek anomaliler minimize edilir.

2. Normalizasyonun Amacı

Normalizasyonun temel amacı, her veriyi yalnızca bir kez depolamak ve gerektiğinde doğru ve tutarlı bir şekilde erişmek için gerekli yapılandırmayı sağlamaktır. Bu sayede:

  • Veritabanı daha düzenli ve sürdürülebilir olur,

  • Gereksiz veri tekrarından kaynaklanan veri büyüklüğü sorunu önlenir,

  • Veritabanında yapılan değişiklikler (ekleme, güncelleme, silme) sırasında veri tutarsızlığı oluşma riski en aza indirilir.

3. Normalizasyonun Aşamaları

Normalizasyon süreci, belirli kuralları uygulayarak veritabanını adım adım optimize etmeyi içerir. Bu adımlar, normal formlar (NF: Normal Forms) olarak adlandırılır ve her bir aşama, bir öncekine göre veritabanını daha verimli ve hatasız hale getirir. Başlıca normal formlar şunlardır:

3.1 Birinci Normal Form (1NF)

Birinci normal form, her bir tablo hücresinin atomik (bölünemez) değerler içermesini zorunlu kılar. Yani, her bir sütunda yalnızca bir değer bulunmalıdır; tekrarlanan gruplar ya da birden fazla değer içeren alanlar olmamalıdır.

Örnek:

Müşteri IDMüşteri AdıTelefon Numaraları
1Ali123-456, 789-101

Yukarıdaki tablo 1NF'de değildir, çünkü "Telefon Numaraları" alanında birden fazla değer bulunmaktadır. Bunu 1NF'ye dönüştürmek için her telefon numarasını ayrı bir satıra taşırız:

Müşteri IDMüşteri AdıTelefon Numarası
1Ali123-456
1Ali789-101

3.2 İkinci Normal Form (2NF)

Bir tablo, 1NF'de olup, her bir öznitelik (alan) birincil anahtara tamamen bağımlıysa 2NF'dedir. Yani, tabloda birincil anahtarın yalnızca bir kısmına bağlı olan öznitelikler olmamalıdır (bu tür bağımlılıklar kısmi bağımlılık olarak adlandırılır).

Örnek:

Sipariş IDMüşteri IDMüşteri AdıÜrün Adı
11AliBilgisayar
22AyşeTelefon

Bu tablo 1NF'dedir ancak 2NF'de değildir, çünkü "Müşteri Adı" sadece "Müşteri ID"ye bağlıdır, "Sipariş ID"ye değil. Bunu 2NF'ye dönüştürmek için "Müşteri Adı"nı ayrı bir tabloya alırız:

Müşteri Tablosu:

Müşteri IDMüşteri Adı
1Ali
2Ayşe

Sipariş Tablosu:

Sipariş IDMüşteri IDÜrün Adı
11Bilgisayar
22Telefon

3.3 Üçüncü Normal Form (3NF)

Bir tablo, 2NF'de olup, hiçbir öznitelik diğer özniteliklere transitif olarak bağımlı değilse 3NF'dedir. Yani, bir öznitelik, birincil anahtar dışında başka bir özniteliğe bağımlı olmamalıdır.

Örnek:

Sipariş IDMüşteri IDŞehir
11İstanbul
22Ankara

Burada, "Şehir" sadece "Müşteri ID"ye bağlıdır, ancak "Sipariş ID"den transitif olarak etkilenmektedir. Bu bağımlılığı ortadan kaldırmak için, "Şehir" bilgilerini "Müşteri" tablosuna taşırız:

Müşteri Tablosu:

Müşteri IDMüşteri AdıŞehir
1Aliİstanbul
2AyşeAnkara

Sipariş Tablosu:

Sipariş IDMüşteri IDÜrün Adı
11Bilgisayar
22Telefon

3.4 Boyce-Codd Normal Formu (BCNF)

Boyce-Codd normal formu, 3NF'nin bir genişletmesidir ve her belirleyicinin bir aday anahtar olmasını gerektirir. BCNF, 3NF'de hala var olabilecek bazı nadir durumları çözmek için geliştirilmiştir.

4. Normalizasyonun Avantajları

  • Veri Tutarlılığı: Normalizasyon, veritabanındaki çelişkili veya tutarsız verileri ortadan kaldırır.

  • Veri Tekrarının Azalması: Veriler yalnızca bir kez depolandığından, gereksiz veri tekrarı minimize edilir.

  • Veritabanı Performansı: İyi tasarlanmış ve normalize edilmiş veritabanları, verilerin yönetimini daha verimli hale getirir ve veri bütünlüğünü korur.

  • Anomali Önlenmesi: Ekleme, güncelleme ve silme işlemleri sırasında ortaya çıkabilecek veri anormalliklerini önler.

5. Denormalizasyon: Normalizasyonun Karşıt Yöntemi

Denormalizasyon, normalizasyon sürecinde bölünmüş olan tablolardaki verilerin birleştirilmesi işlemidir. Bu, özellikle yüksek performans gereken durumlarda tercih edilebilir. Ancak, denormalizasyon veri tekrarı yaratabilir ve tutarlılık sorunlarına yol açabilir. Bu nedenle, dikkatli bir şekilde uygulanmalıdır.

6. Sonuç

Normalizasyon, ilişkisel veritabanı tasarımında en önemli süreçlerden biridir ve veritabanlarının verimli, güvenli ve tutarlı bir şekilde çalışmasını sağlar. Bununla birlikte, normalizasyonun aşırı yapılması performans sorunlarına yol açabilir. Bu nedenle, veritabanı tasarımı sırasında kullanım senaryolarına göre doğru dengeyi bulmak önemlidir.


Bu teknik makale, veritabanı normalizasyon sürecini adım adım açıklayarak, veritabanı tasarımında karşılaşılan en yaygın sorunlara çözüm önerileri sunmuştur. Normalizasyonun doğru uygulanması, uzun vadede veritabanlarının yönetilebilirliğini ve performansını artırır.

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanacaktır. Bildirim almak isterseniz e-posta adresinizi girebilirsiniz.

Ziyaretçi İstatistiği
6 ay önce'den beri sayılıyor
13523

Designed & developed by
Kaan Tanış  with 🫶