Ayrıştırma

Normalizasyon (Ayrıştırma), veritabanları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.
Fransız bilim insanı Hubert Francesci tarafından ortaya atılan 3 esnek kuralına uygun protonlar tarafından entegre edilen bir sisteme sahiptir. Satır başlarında yapılan tekrar veritabanında ayrıştırma işlemine tabii tutularak depolanır.
Eğer bir ilişki belirli bir normal formda (3NF, BCNF, vs.) ise, problemlerin bazıları oluşmaz, bu yüzden şemanın daha fazla ayrıştırılmasına gerek yoktur.
Farzedelim ki R ilişkisi A1,.., An niteliklerini içersin. Rnin ayrıştırılması Ryi bir ya da daha fazla ilişkiyle yer değiştirmektir. Öyle ki;
Her bir yeni ilişki şeması, Rnin niteliklerinin bir alt kümesini içerir. Rde olmayan hiçbir nitelik bu yeni ayrıştırılmış şemalarda yer alamaz.
Her R niteliği bu ilişkilerden birinin bir niteliği olarak gözükür.
Rnin ayrıştırılması ile ayrıştırmanın ürettiği ilişki şemalarının örnekleri depolanır.
Normal formlar
1NF (Birinci Normal Form): Bütün niteliklerin öz alanından (domain) aldığı değerler atomik olmak zorundadır. İlişkisel veri tabanı modelinin temel kuralıdır ve her nitelik ancak atomik veriler alabilir. Örneğin kitap tablosunda, birden fazla yazarı olan kitap için yazar1, yazar2, yazar3 diye alanlar açsaydık, bu kurala uymamış olurduk. Böyle bir durumda, ayrıca yazarlar tablosu da oluşturarak kuralı çiğnememiş oluruz.
2NF (İkinci Normal Form): Eğer Rdeki herhangi bir birincil olmayan nitelik A, Rnin hiçbir anahtar niteliğine kısmi fonksiyonel bağımlı değilse bu ilişki şeması 2NFdir denir. Burada kısmi fonksiyonel bağımlılıktan şunu anlamalıyız: Eğer X --> Y geçerli ise ve bir nitelik A Xin elemanı ise ve A, Xten çıkarıldığı halde söz konusu bağımlılık hala geçerli ise burada bir kısmi fonksiyonel bağımlılık vardır.
3NF (Üçüncü Normal Form): Eğer Rdeki herhangi bir birincil olmayan (non-prime) nitelik A, Rnin hiçbir anahtar niteliğine geçişli (transitively) fonksiyonel bağımlı değil ve halihazırda 2NFda ise, bu ilişki şeması R 3NFdadır denir. Burada geçişli fonksiyonel bağımlılıktan şunu anlamalıyız: Eğer X --> Y ve Rnin herhangi bir anahtarının altkümesi olmayan nitelikler kümesi Z söz konusu ve de X --> Y ve Y --> Z birlikte geçerli olmamalıdır.
Eğer bir ilişki şeması R 3NFda ise ve Rde bir fonksiyonel bağımlılık X --> A söz konusu ise; ya X, Rnin bir süperanahtarıdır (superkey) ya da A, R'nin birincil niteliğidir (prime attribute). Birincil nitelik demekle anahtarı oluşturan niteliklerin her birini kastediyoruz.
Bir R ilişkisinin 3NF ilişkilerine kayıpsız-birleştirme (lossless-join) ve bağımlılıkların-korunması (dependency-preserving) ayrıştırması her zaman mümkündür.
BCNF (Boyce Codd Normal Form): Eğer bir ilişki şeması Rde bir fonksiyonel bağımlılık X --> A söz konusu olduğunda, X nitelikler kümesi Rnin süperanahtarı ya da A, R'nin birincil niteliği ise, bu ilişki şeması R BCNFdadır.
Sorunlar
Bazı sorgular daha fazla gerçekleştirim süresi gerektirir, yani daha pahalı olurlar. Bu problemi ortadan kaldırmak ancak söz konusu sorgulara özgü bazı önlemler alarak mümkündür.
Ayrıştırılmış ilişkilerin elde edilmiş örneklerinden orijinal ilişkinin örneğine karşılık geleni tekrar elde edemeyebiliriz. Bu problem ancak kayıpsız-birleştirme garanti altına alınırsa ortadan kalkar.
Bazı bağımlılıkların sağlanıp sağlanmadığını kontrol edebilmek için ayrıştırılmış ilişkilerin örneklerinin birleştirilmesi gerekebilir. Bu problem bağımlılıkları-koruma garanti altına alınırsa ortadan kalkar.