3.1 Veritabanı normalleştirme

Normal biçim, ilişkisel bir veri modelindeki bir ilişkinin, onu artıklık açısından karakterize eden ve potansiyel olarak mantıksal olarak hatalı örnekleme veya veri değiştirme sonuçlarına yol açan bir özelliğidir. Normal form, bir ilişkinin (veritabanındaki tablolar) karşılaması gereken gereksinimler kümesi olarak tanımlanır.

Veritabanı ilişkilerini normal formlara uyan bir forma dönüştürme işlemine normalizasyon denir. Normalleştirme, veritabanının yapısını en az mantıksal artıklık sağlayan bir forma getirmeyi amaçlar ve performansı düşürmeyi veya artırmayı ya da veritabanının fiziksel hacmini azaltmayı veya artırmayı amaçlamaz .

Normalleştirmenin nihai amacı, veritabanında depolanan bilgilerin potansiyel tutarsızlığını azaltmaktır. Normalleşme sürecinin genel amacı şu şekildedir:

  • belirli fazlalık türlerinin hariç tutulması;
  • bazı güncelleme anormalliklerini düzeltin;
  • gerçek dünyanın yeterince "yüksek kaliteli" bir temsili olan, sezgisel olan ve sonraki genişleme için iyi bir temel olarak hizmet edebilecek bir veritabanı projesinin geliştirilmesi;
  • gerekli bütünlük kısıtlamalarını uygulama prosedürünün basitleştirilmesi.

Fazlalık genellikle, her ilişkide yalnızca birincil gerçeklerin saklanacağı şekilde ilişkilerin ayrıştırılmasıyla ortadan kaldırılır (yani, diğer saklanan gerçeklerden türetilmeyen gerçekler).

Normalleştirme fikirleri veritabanı tasarımı için çok yararlı olmakla birlikte, hiçbir şekilde bir veritabanı tasarımının kalitesini iyileştirmenin evrensel veya kapsamlı bir yolu değildir. Bunun nedeni, veritabanı yapısında normalleştirme ile giderilemeyecek kadar çok çeşitli olası hata ve eksikliklerin olmasıdır.

Bu düşüncelere rağmen, normalleştirme teorisi, bir veritabanı projesinin kalitesi için bilimsel olarak titiz ve makul kriterler ve bu kaliteyi iyileştirmek için resmi yöntemler sağladığından, ilişkisel teori ve pratiğin çok değerli bir başarısıdır. Bu, normalleştirme teorisini diğer veri modellerinde sunulan tamamen ampirik tasarım yaklaşımlarından farklı kılar. Dahası, tüm bilgi teknolojisi alanında, biçimsel titizlik düzeyi açısından ilişkisel veritabanlarının normalleştirilmesi teorisiyle karşılaştırılabilecek tasarım çözümlerini değerlendirmek ve geliştirmek için pratikte hiçbir yöntemin olmadığı söylenebilir.

Normalleştirme bazen "sadece sağduyu" olduğu ve herhangi bir yetkin profesyonelin bağımlılık teorisini uygulamak zorunda kalmadan "doğal olarak" tamamen normalleştirilmiş bir veritabanı tasarlayacağı gerekçesiyle eleştirilir.

Bununla birlikte, Profesör Christopher Date'in belirttiği gibi, normalleştirme tam olarak olgun bir tasarımcıya zihninde rehberlik eden sağduyu ilkeleridir, yani normalleştirme ilkeleri resmileştirilmiş sağduyudur . Bu arada, sağduyu ilkelerini belirlemek ve formüle etmek çok zor bir iştir ve bunu çözmedeki başarı önemli bir başarıdır.

3.2 İlk normal biçim

Birinci normal biçim (1NF), ilişkisel veri modelindeki bir ilişkinin temel normal biçimidir.

Bir ilişki değişkeni, ancak ve ancak o değişkenin herhangi bir geçerli değerinde, her bir ilişki demetinin özniteliklerin her biri için tam olarak bir değer içermesi durumunda ilk normal biçimindedir.

İlişkisel bir modelde, ilişki kavramının tanımı gereği, bir ilişki her zaman ilk normal biçimdedir.

Çeşitli tablolara gelince, ilişkilerin doğru temsili olmayabilirler ve dolayısıyla 1NF'de olmayabilirler. Christopher Date'in böyle bir durum için tanımına göre, bir tablo ancak ve ancak bir ilişkinin doğrudan ve doğru bir temsiliyse normalleştirilir (eşdeğer olarak, ilk normal biçimdedir). Daha spesifik olarak, söz konusu tablo aşağıdaki beş koşulu karşılamalıdır:

  • Yukarıdan aşağıya sıra sıralaması yoktur (başka bir deyişle, sıraların sırası herhangi bir bilgi taşımaz).
  • Sütunların soldan sağa sıralaması yoktur (başka bir deyişle, sütunların sırası bilgi taşımaz).
  • Yinelenen satır yok.
  • Bir satırın ve bir sütunun her kesişimi, karşılık gelen etki alanından tam olarak bir değer içerir (başka hiçbir şey içermez).
  • Tüm sütunlar "normaldir".

Bir tablonun tüm sütunlarının "düzenliliği", tabloda, normal sütun adlarına atıfta bulunmak yerine yalnızca bazı özel işleçlerin çağrılmasıyla erişilebilen veya satırlar için yan etkilere yol açan "gizli" bileşenlerin olmadığı anlamına gelir. veya standart operatörleri çağırırken tablolar.

Orijinal normalleştirilmemiş (yani, bazı ilişkilerin doğru bir temsili olmayan) tablo:

Çalışan Telefon numarası
İvanov I.I.

283-56-82

390-57-34

Petrov P.P. 708-62-34
Sidorov S.S.

Bazı ilişkilerin doğru gösterimi olan 1NF'ye indirgenmiş bir tablo:

Çalışan Telefon numarası
İvanov I.I. 283-56-82
İvanov I.I. 390-57-34
Petrov P.P. 708-62-34

3.3 İkinci normal biçim

Bir ilişki değişkeni, ancak ve ancak birinci normal biçimdeyse ve anahtar olmayan her öznitelik (her) aday anahtarına indirgenemez şekilde bağımlıysa ikinci normal biçimdedir .

İndirgenemezlik, potansiyel anahtarın, bu fonksiyonel bağımlılığın da türetilebileceği daha küçük bir öznitelik alt kümesi içermediği anlamına gelir. İndirgenemez bir işlevsel bağımlılık için, "tam işlevsel bağımlılık" eşdeğer kavramı sıklıkla kullanılır.

Aday anahtar basitse, yani tek bir öznitelikten oluşuyorsa, o zaman ona herhangi bir işlevsel bağımlılık indirgenemez (tam). Aday anahtar bir bileşik anahtar ise, ikinci normal formun tanımına göre, bileşik aday anahtarın bir kısmına bağlı olan ilişkide hiçbir anahtar olmayan öznitelik olmamalıdır.

Bir ilişkiyi ikinci normal forma dönüştürme örneği

{Şirket şubesi, Pozisyon} özellik çiftinin aşağıdaki ilişkide birincil anahtarı oluşturmasına izin verin:

R
şirket şubesi İş unvanı Maaş Bir bilgisayarın kullanılabilirliği
Tomsk'ta şube temizleyici 20000 HAYIR
Moskova'daki şube Programcı 40000 Yemek yemek
Tomsk'ta şube Programcı 25000 Yemek yemek

Diyelim ki maaş şubeye ve pozisyona, bilgisayar olup olmaması ise sadece pozisyona bağlı.

İşlevsel bir bağımlılık vardır Konum -> Sol tarafın (belirleyici), ikinci normal formun koşulunu ihlal eden birincil anahtarın yalnızca bir parçası olduğu bir bilgisayara sahip olmak.

2NF'ye düşürmek için orijinal ilişki iki ilişkiye ayrıştırılmalıdır:

R1
şirket şubesi İş unvanı Maaş
Tomsk'ta şube temizleyici 20000
Moskova'daki şube Programcı 40000
Tomsk'ta şube Programcı 25000
R2
İş unvanı Bir bilgisayarın kullanılabilirliği
temizleyici HAYIR
Programcı Yemek yemek
Programcı Yemek yemek

3.4 Üçüncü normal biçim (3NF)

Bir ilişki değişkeni R, ancak ve ancak aşağıdaki koşullar doğruysa 3NF'dedir:

  • Rikinci normal formdadır.
  • anahtar olmayan özellik yokRaday anahtara geçişli fonksiyonel bağımlılık içinde değilR.

Tanım için açıklamalar:

Bir R ilişkisinin anahtar olmayan özelliği, R'nin aday anahtarlarının hiçbirine ait olmayan bir niteliktir.

Z öznitelikleri kümesinin X öznitelikleri kümesine işlevsel bağımlılığı (X → Z yazılır, "x z'yi belirler" olarak telaffuz edilir) X → Y ve Y → Z şeklinde bir Y öznitelikleri kümesi varsa geçişlidir. durumda, X, Y ve Z kümelerinden hiçbiri diğerinin alt kümesi değildir, yani X → Z, X → Y ve Y → Z işlevsel bağımlılıkları önemsiz değildir ve ayrıca Y → X işlevsel bağımlılığı da yoktur.

3NF'nin tanımı, Codd'unkine eşdeğer, ancak farklı ifadelerle, 1982'de Carlo Zaniolo tarafından verildi. Buna göre, bir ilişki değişkeni ancak ve ancak X → A fonksiyonel bağımlılıklarının her biri aşağıdaki koşullardan en az birini karşılıyorsa 3NF'dedir:

  • X, A'yı içerir (yani, X → A, önemsiz bir işlevsel bağımlılıktır)
  • X - süper anahtar
  • A bir anahtar özniteliğidir (yani, A bir aday anahtarın parçasıdır).

Zaniolo'nun tanımı, 3NF ile daha katı olan Boyce-Codd Normal Formu (BCNF) arasındaki farkı açıkça tanımlar: BCNF, üçüncü koşulu ("A, bir anahtar niteliktir") hariç tutar.

Codd'un 3NF tanımının akılda kalıcı ve geleneksel olarak açıklayıcı bir özeti Bill Kent tarafından verildi: anahtar olmayan her öznitelik "anahtar, tam anahtar ve anahtar dışında hiçbir şey hakkında bilgi sağlamalıdır" .

Anahtar olmayan özniteliklerin "tam anahtarına" bağlı olma koşulu, ilişkinin ikinci normal formda olmasını sağlar; ve "anahtardan başka hiçbir şeye" bağlı olmalarının şartı ise üçüncü normal formda olmalarıdır.

Chris Date, Kent'in özetinden 3NF'nin "sezgisel olarak çekici bir özelliği" olarak bahsediyor ve küçük bir değişiklikle, bunun aynı zamanda daha katı Boyce-Codd normal formunun bir tanımı olarak da hizmet edebileceğini gözlemliyor: "her öznitelik, bir anahtar hakkında bilgi sağlamalıdır. , tam bir anahtar ve anahtardan başka bir şey değil.

Kent'in 3NF tanımı versiyonu, Data'nın formülasyonunun Boyce-Codd normal form versiyonundan daha az katıdır, çünkü ilki yalnızca anahtar olmayan niteliklerin anahtarlara bağlı olduğunu belirtir.

Birincil niteliklerin (anahtarlar veya bunların parçaları olan) işlevsel olarak bağımlı olması gerekmez; her biri anahtarın kendisini veya bir kısmını sağlayarak anahtar hakkında bilgi sağlar. Burada, bu kuralın yalnızca anahtar olmayan nitelikler için geçerli olduğuna dikkat edilmelidir, çünkü böyle bir anahtarın her bir öğesi "tam anahtar" koşulunu ihlal edeceğinden, tüm niteliklere uygulanması tüm karmaşık alternatif anahtarları tamamen devre dışı bırakacaktır.

Örnek olarak R1 ilişki değişkenini ele alalım:

R1
Çalışan Departman Telefon
grishin Muhasebe 11-22-33
Vasilyev Muhasebe 11-22-33
Petrov Tedarik 44-55-66

Her çalışan münhasıran bir departmana aittir; her departmanın tek bir telefonu vardır. Çalışan özniteliği birincil anahtardır. Çalışanların kişisel telefonları yoktur ve çalışanın telefon numarası tamamen departmana bağlıdır.

Örnekte, aşağıdaki işlevsel bağımlılıklar mevcuttur: Çalışan → Departman, Departman → Telefon, Çalışan → Telefon.

İlişki değişkeni R1, ikinci normal formdadır çünkü her öznitelik, potansiyel çalışan anahtarına indirgenemez bir işlevsel bağımlılığa sahiptir.

Çalışan → Telefon ilişkisi geçişlidir, dolayısıyla ilişki üçüncü normal formda değildir.

R1'i bölmek, 3NF'de bulunan iki ilişki değişkeniyle sonuçlanır:

R2
Departman Telefon
Muhasebe 11-22-33
Tedarik 44-55-66

R3
Çalışan Departman
grishin Muhasebe
Vasilyev Muhasebe
Petrov Tedarik

Başlangıç ​​ilişkisi R1, gerekirse, R2 ve R3 bağıntılarının birleştirilmesi işleminin bir sonucu olarak kolayca elde edilir.