Veri her yazılım uygulamasının merkezinde yer alır. Bu nedenle, herhangi bir yazılımın başarısı ve kullanılabilirliği, büyük ölçüde verilerin nasıl organize edildiğine bağlıdır. Yazılımın uğraştığı iş kullanım durumlarının türüne bağlı olarak verileri düzenlemenin birden çok yolu olabilir. Örneğin, çoğu işlem uygulaması veya OLTP uygulaması, verileri depolamak için “normalleştirilmiş” veri yapılarını kullanır. Normalleştirmenin detaylarına geçmeden önce OLTP kavramını anlayalım.
OLTP
OLTP veya Çevrimiçi İşlem İşleme, “işlemlerin” desteklenmesini ve işlenmesini ifade eder. Alışveriş için çevrimiçi bir kitapçıya gittiğinizi hayal edin. Kitabı seçin, sepetinize ekleyin, kontrol edin ve kredi veya banka kartınızı kullanarak ödeme yapın. Bir fatura alırsınız. Kitap size e-postanızda PDF kopyası olarak gönderilir. Bu işlemler “işlemler” olarak bilinir. Uygulamanın sorunsuz çalışması, veritabanı depolamasının işlem verileriyle başa çıkmak için nasıl tasarlandığına veya modellendiğine bağlıdır. LTP uygulamaları her yerdedir. Çevrimiçi bankacılık, alışveriş, Satış Noktası terminalleri, Uçuş rezervasyonu vb. gibi günlük uygulamaların tümü çevrimiçi işlem işlemlerini içerir. İşlemlerin başlıca özellikleri aşağıdaki gibidir:
- İşlemler sıktır. Örneğin, bir çevrimiçi alışveriş mağazası örneğinde, birden fazla müşteri birden fazla ürün sipariş ederek birçok ödeme işlemiyle sonuçlanabilir ve bunların çoğu aynı anda gerçekleşir. Bu nedenle, veri değişiklikleri çok sıktır. Hızlı ve çok sık yürütülmesi gereken birçok Ekle, Güncelle, Sil eylemi vardır.
- Veri değişiklikleri birden fazla kullanıcı tarafından gerçekleştirilir.
Böyle bir OLTP uygulamasının veritabanı tasarımı, işlemlerin yukarıdaki özelliklerini dikkate almalıdır. Normalizasyon kavramının geldiği yer burasıdır. Bu kavramlar en çok, verileri satırlar ve sütunlar olarak tablo formlarında depolayan ilişkisel veritabanı sistemlerine uygundur.
Normalizasyon
Normalleştirme, veritabanındaki verileri, işlemleri verimli bir şekilde yapacak şekilde düzenleme sürecidir. Normalleşmeyi sağlamak için kurallar vardır. Her kural “normal form” olarak bilinir. Farklı normal formları anlamak için, bir Öğrenci verisi örneğini ele alalım. Bir veya daha fazla öğretmen tarafından verilen bir veya daha fazla kursa kayıtlı birkaç öğrencimiz var. Bu tür verilerin ham şekli aşağıda gösterilmiştir:
Birinci Normal Form (1NF): Verileri 1. Normal Formda saklamanın temel ilkeleri şunlardır:
- Her tablodaki yinelenen veri gruplarını ortadan kaldırın.
- Her bir ilgili veri kümesi için ayrı bir tablo oluşturun
- Tabloda bir birincil anahtar tanımlayın
Yukarıdaki örnekte aynı tabloda tekrar eden derslerimiz olmamalıdır. Öğrenciler ve Dersler için ayrı tablolar oluşturulmalıdır.
İkinci Normal Form (2NF): Bir tablodaki öznitelikler, işlevsel olarak birincil anahtara bağlı olmalıdır. Fazlalık olmamalıdır. Yukarıdaki örnekte, her öğrenci için birden çok ders değeri vardır. İşlevsel olarak, kurs Student’a bağlı değildir, bu nedenle bu, aşağıdaki gibi çıkarılmalıdır:
Üçüncü Normal Form (3NF): Bir tablodaki nitelikler “yalnızca” birincil anahtara bağlı olmalıdır. Karşılıklı bağımlılık olmamalıdır. Yukarıdaki örnekte, Öğretmen odası Öğretmene bağlıdır ancak doğrudan Öğrenci Kimliğine bağlı değildir. Dolayısıyla, bu bağımlılığı ortadan kaldırmak için ayrı bir tablo olmalıdır.
Normalizasyonun özeti şu şekilde ifade edilebilir:
Bir tablonun nitelikleri, birincil anahtara, tüm anahtara ve anahtardan başka bir şeye bağlı olmamalıdır.