Normalizasyon ve Denormalizasyon
İlişkisel veritabanları ilişkilerden oluşur (ilgili tablolar). Tablolar sütunlardan oluşur. Tablolar iki büyükse (yani bir tabloda çok fazla sütun), veritabanı anormallikleri oluşabilir. Tablolar iki küçükse (yani veritabanı birçok küçük tablodan oluşursa) sorgulama için yetersiz kalır. Normalleştirme ve Denormalizasyon, veritabanının performansını optimize etmek için kullanılan iki işlemdir. Normalleştirme, veri tablolarında bulunan fazlalıkları en aza indirir. Denormalizasyon (normalleştirmenin tersi) gereksiz veriler veya grup verileri ekler.
Normalizasyon Nedir?
Normalleştirme, ilişkisel veritabanlarındaki verilerde bulunan fazlalıkları en aza indirmek için gerçekleştirilen bir işlemdir. Bu işlem büyük tabloları daha az yedekli küçük tablolara böler (“Normal formlar”). Bu daha küçük tablolar, iyi tanımlanmış ilişkiler yoluyla birbirleriyle ilişkilendirilecektir. İyi normalleştirilmiş bir veritabanında, verilerdeki herhangi bir değişiklik veya değişiklik yalnızca tek bir tablonun değiştirilmesini gerektirir. Birinci Normal Form (1NF), İkinci Normal Form (2NF) ve Üçüncü Normal Form (3NF) Edgar F. Codd tarafından tanıtıldı. Boyce-Codd Normal Formu (BCNF) 1974 yılında Codd ve Raymond F. Boyce tarafından tanıtıldı. Daha Yüksek Normal Formlar (4NF, 5NF ve 6NF) tanımlanmıştır, ancak nadiren kullanılmaktadır..
1NF ile uyumlu bir tablo, bunun aslında bir ilişkiyi temsil ettiğini (yani, yinelenen hiçbir kayıt içermediğini) ve ilişkisel değerli herhangi bir özellik içermediğini garanti eder (yani, tüm özelliklerin atom değerleri olmalıdır). Bir tablonun 2NF ile uyumlu olması için, tabloya 1NF ile uyulmalıdır ve herhangi bir aday anahtarının parçası olmayan herhangi bir özellik (yani asal olmayan özellikler) tablodaki aday anahtarlardan herhangi birine tamamen bağlı olmalıdır. Codd'un tanımına göre, bir tablonun 3NF'de olduğu söylenir, ancak bu tablonun ikinci normal formda (2NF) olması ve tablodaki bir aday anahtara ait olmayan her özellik doğrudan her bir bu tablonun aday anahtarı. BCNF (3.5NF olarak da bilinir), 3NF tarafından ele alınmayan bazı anomalileri yakalar.
Denormalizasyon Nedir?
Denormalizasyon normalleştirme sürecinin tersi işlemidir. Denormalizasyon, performansı optimize etmek için yedekli veriler ekleyerek veya verileri gruplayarak çalışır. Gereksiz veri eklemek karşı üretken olsa da, bazen denormalizasyon, ilişkisel veritabanı yazılımındaki normalleştirilmiş veritabanlarıyla (hatta daha yüksek performans için ayarlanmış) ağır performans cezalarına neden olabilecek bazı eksikliklerin üstesinden gelmek için çok önemli bir süreçtir. Bunun nedeni, bir sorguya bir sonuç üretmek için (normalleştirmenin sonuçları olan) birkaç ilişkinin birleştirilmesinin, veritabanı sistemlerinin gerçek fiziksel uygulamasına bağlı olarak bazen yavaş olabilmesidir..
Normalizasyon ve Denormalizasyon arasındaki fark nedir? - Normalizasyon ve denormalizasyon tamamen zıt iki süreçtir. - Normalleştirme, daha büyük tabloları daha küçük olanlara bölme işlemidir ve gereksiz verileri azaltırken, normal olmayanlaştırma performansı optimize etmek için fazlalık veri ekleme işlemidir. - Veritabanlarının anormalliklerini önlemek için normalleştirme yapılır. - Denormalizasyon genellikle veritabanının okuma performansını artırmak için gerçekleştirilir, ancak denormalizasyon için kullanılan ek kısıtlamalar nedeniyle, yazma işlemleri (yani ekleme, güncelleme ve silme işlemleri) yavaşlayabilir. Bu nedenle, normalleştirilmemiş bir veritabanı normalleştirilmiş bir veritabanından daha kötü yazma performansı sunabilir. - Sık sık “ağlayana kadar normalleştirmeniz, çalışana kadar denormalize etmeniz” önerilir..
|