SQL Normalizasyonu ve Denormalizasyonu Nedir?

Veritabanı tasarımı, veritabanının etkinliğini ve performansını belirleyen önemli bir aşamadır. Veritabanı tasarımında iki temel yaklaşım bulunur: normalizasyon ve denormalizasyon. Bu makalede, normalizasyon ve denormalizasyon kavramlarını, avantajlarını ve dezavantajlarını ele alacağız.

Veritabanı Normalizasyonu

Normalizasyon Nedir?

Normalizasyon, veritabanı tasarımında veri tekrarını azaltmak ve veri tutarlılığını artırmak amacıyla yapılan bir süreçtir. Bu süreç, verilerin mantıksal bir yapıya göre düzenlenmesini ve belirli kurallara uygun hale getirilmesini içerir. Normalizasyon, genellikle bir dizi normal formu (1NF, 2NF, 3NF, vb.) takip eder.

Örnek: Müşteri Siparişleri Veritabanı

Normalizasyon Öncesi

Tüm müşteri siparişlerini depolayan tek bir tablo düşünün:

CustomerIDCustomerNameCustomerAddressOrderIDOrderDateProduct
001Joe123 Apple St.10012021-08-01Laptop
001Joe123 Apple St.10022021-08-05Phone
002Austin Smith456 Orange Ave.10032021-08-03Tablet

Bu tabloda tekrar eden veriler bulunuyor. (müşteri ayrıntılarının nasıl tekrarlandığına dikkat edin)

Normalizasyon Sonrası

Bunu normalleştirmek için, fazlalığı azaltmak için iki veya daha fazla tabloya bölebiliriz.

Customers Table (1NF, 2NF, 3NF)

CustomerIDCustomerNameCustomerAddress
001Joe123 Apple St.
002Austin Smith456 Orange Ave.v

Orders Table (1NF, 2NF, 3NF)

OrderIDOrderDateProductCustomerID
10012021-08-01Laptop001
10022021-08-05Phone001
10032021-08-03Tablet002

Normalleştirilmiş yapıda, fazlalığı ortadan kaldırdık (her müşterinin ayrıntıları yalnızca bir kez listelenir) ve müşteri kimliği aracılığıyla iki tablo arasında bir ilişki kurduk.

Normalizasyonun Avantajları:

  1. Veri Tutarlılığı: Normalizasyon, veri tekrarını azaltır ve veri tutarsızlıklarını önler. Aynı veri birden fazla yerde saklanmadığı için, güncellemeler merkezi bir noktada yapılabilir.
  2. Depolama Verimliliği: Veri tekrarının azalması, veritabanının daha az yer kaplamasını sağlar. Bu da daha az depolama alanı kullanımı anlamına gelir.
  3. Kolay Bakım: Normalizasyon, verilerin düzenli ve anlaşılır bir yapıda olmasını sağlar, bu da veritabanının bakımını ve yönetimini kolaylaştırır.
  4. Gelişmiş Sorgu Performansı: Verilerin düzenli bir şekilde depolanması, belirli türde sorguların daha hızlı ve etkili bir şekilde çalışmasını sağlayabilir.

Normalizasyonun Dezavantajları:

  1. Sorgu Karmaşıklığı: Çok sayıda tablo ve ilişki oluşturulması, karmaşık JOIN işlemlerine neden olabilir. Bu, bazı sorguların performansını olumsuz etkileyebilir.
  2. Veri Erişim Zamanı: Normalizasyon sürecinde, verilerin birden fazla tablodan alınması gerekebilir, bu da veri erişim süresini artırabilir.
  3. Ekstra İşlem Maliyeti: Veritabanı işlemlerinin daha fazla tablodan ve ilişkilerden oluşması, daha fazla işlem maliyeti ve kaynak tüketimine yol açabilir.

Veritabanı Denormalizasyonu

Denormalizasyon Nedir?

Denormalizasyon, normalizasyonun tersine, performans iyileştirmeleri sağlamak için veri tekrarını artırma sürecidir. Verilerin birden fazla tabloda tekrar saklanması, bazı sorguların daha hızlı çalışmasına olanak tanır.

Denormalizasyonun Avantajları:

  1. Performans Artışı: Denormalizasyon, sık kullanılan sorguların daha hızlı çalışmasını sağlar. Bu, özellikle okuma işlemleri yoğun olan uygulamalar için faydalıdır.
  2. Daha Az JOIN İhtiyacı: Verilerin birden fazla tabloda tekrar saklanması, bazı durumlarda JOIN işlemlerinin azaltılmasını sağlar, bu da sorgu performansını artırabilir.
  3. Hızlı Veri Erişimi: Veri tekrarının artırılması, verilerin doğrudan erişilmesini sağlar ve veri erişim süresini kısaltabilir.

Denormalizasyonun Dezavantajları:

  1. Veri Tutarsızlığı: Veri tekrarının artması, veri tutarlılığı sorunlarına yol açabilir. Güncellemeler birden fazla yerde yapılmalıdır ve bu da tutarsızlıklara neden olabilir.
  2. Depolama Maliyeti: Daha fazla veri tekrarı, daha fazla depolama alanı gerektirir ve bu da ek maliyetler doğurabilir.
  3. Bakım Zorluğu: Denormalize edilmiş veritabanları, veri güncellemeleri ve bakımı konusunda daha fazla karmaşıklık ve zorluk içerebilir.

Normalizasyon ve Denormalizasyon Karşılaştırması

Kullanım Senaryoları:

  • Normalizasyon: Veri tutarlılığının ve bakımının ön planda olduğu uygulamalarda tercih edilir. Genellikle işlem (OLTP) sistemlerinde ve veri bütünlüğünün kritik olduğu durumlarda kullanılır.
  • Denormalizasyon: Performansın ön planda olduğu ve okuma işlemlerinin yoğun olduğu uygulamalarda tercih edilir. Genellikle veri ambarları (OLAP) ve yüksek performans gerektiren sorgular için kullanılır.

Kaynakça

https://medium.com/@ndleah/a-brief-guide-to-database-normalization-5ac59f093161

https://www.guru99.com/database-normalization.html

https://www.simplilearn.com/automated-recruiting-in-companies-article

Leave a Reply

Your email address will not be published. Required fields are marked *