Ön hazırlık
Tanımı normal formda (1971 bir “veri tabanı ilişkisel model başka Normalizasyon” sunumundan olarak bilinen birinci normal formu ) ve güçlü bir koşulla ki kendisi bilimsel yazıda defa 1970 yılında, ilişkisel paradigma tanımı veritabanı yönetimi, yani uygulamasına temel, “Büyük Paylaşılan Veri Bankaları için Veri A ilişkisel Modeli” yarattığı (kısalık için RM) Dr EF Codd bir Turing Ödülü alıcı ve olduğunu ilişkisel çerçeve konusunda otorite.
Evet, Dr. Codd'un metni hakkında birçok açıklama, yorum, açıklama, sapma ve görüş var, ancak kişisel olarak orijinal kaynağa bağlı kalmayı tercih ediyorum ve kendi sonuçlarınızı çizebilmeniz için bunu kendiniz analiz etmenizi şiddetle tavsiye ediyorum.
RM'yi kesinlikle tam olarak anlamıyorum, ancak anladığım şey mükemmelliğini, vizyonunu, niyetini ve kapsamını takdir etmeme izin veriyor ve on yıllar sonra insanın birkaç küçük belirsizliği olduğunu not etse de, herhangi bir şekilde dehası ve zarafeti. Kendi alanında RM, zamanın testini benzersiz bir şekilde sürdürdü ve eşsiz kaldı.
Bahsedilen yanlışlıkları vurgulama eylemi - hayırsever bir terim kullanarak - haksızlık olurdu , çünkü bunu önemli bir mesafeden görmek, bu seminal malzeme birkaç iyileştirme ve uzatma gerektirdi, evet, ancak işin ana gövdesi, çok anlayışlı (ve aslında Dr. Codd, bu ayrıntılandırmaların ve uzantıların kendisinin hepsinden olmasa da - en iyisini yaptı).
Bu istisnai bilgi kaynağını anlamamı güçlendirmek için RM'yi sürekli olarak yeniden okumaya devam ediyorum (ve saygım her tekrarda büyümeye devam ediyor); amaç devlerin omuzlarında durmaktır.
İlişkiler ve tablolar
İlişkilerin soyut kaynaklar olduğu için, Dr. Codd'un bunları tablo şeklinde göstermenin faydasını öngördüğünü belirtmek önemlidir (başlangıçta “dizi gösterimi” terimini kullanmıştır, ancak daha sonra “tablo” veya “r-tablo” kullanmıştır). ilişkisel bir veritabanının (RDB) kullanıcıları, tasarımcıları ve yöneticileri onlara daha tanıdık veya somut bir şekilde yaklaşabilir . Bu nedenle, RDB uygulaması bağlamında, ilişki için bir kısayol olarak tabloyu kullanmak geçerlidirsöz konusu tablo gerçek bir ilişkiyi temsil ettiği sürece. Bu özellik - açık olsa da - oldukça önemlidir, çünkü bir tablonun ilk normal forma (1NF) uygun bir ilişki olup olmadığını değerlendirmeden önce, tam olarak bir ilişkiyi temsil etmesi gerekir.
RM doğal olarak bir tablonun aslında bir ilişkiyi gösterip göstermediğini belirlemek zorunda olması gereken nitelikleri içerir, ancak burada onlar hakkında gayri resmi ve iddiasız bir yorum sunacağım (başka bir tane, evet!):
- Bir adı olmalıdır (bir veritabanı yapısındaki her özel ilişki diğerlerinden ayrılmalıdır).
- Satırlarının her biri , ilgili ilişkinin tam olarak bir demetini tasvir etmelidir .
- Emir onun satırların hiç önemli değildir.
- Sütunlarının her birinin , ilgili ilişkinin tam bir alanının anlamını temsil eden bir adı olmalıdır ve adı geçen ad, tablonun diğer sütunlarının adlarından farklı olmalıdır (bir sütun benzersiz bir şekilde farklılaştırılmalı ve belirgin bir anlam ve evet, bir veritabanı modelleyici ve iş uzmanlarının her bir önem alanını doğru bir şekilde tanımlamak için oynadığı rol çok önemlidir)
- Emir onun sütun hiçbir önemi vardır.
- Tüm satırları aynı sayıda sütuna sahip olmalıdır.
- Satırlarla tasvir edilen tuple'ların her birini benzersiz şekilde tanımlayan en az bir sütuna veya bir sütun kombinasyonuna sahip olmalıdır ; bu şekilde, tüm satırlar farklı olmalıdır (evet, bu en az bir KEY'in bildirilmesinin önemini vurgular ve iki veya daha fazla KEY olduğunda pragmatik nedenlerle birincisi PRIMARY olarak tanımlanır, gerisi ALTERNATİF olarak kabul edilir; ancak evet, karar vermeden önce her ANAHTAR PRİMER olarak tanım için “aday” dı).
Gerçekte bir ilişkiyi temsil eden bir tabloya sahip olmak kritik bir öneme sahiptir, çünkü ilişkisel türde bir manipülasyon işlemine maruz kaldığında sonuç yine bir ilişkiyi temsil eden bir tablodur. Bu şekilde, söz konusu tablonun davranışı tahmin edilebilir .
Atomik alanlar (sütunlar)
RM'nin ilk bölümlerinde, Dr. Codd bazı kavramları tanıtmak için çeşitli ilişkiler örnekleri sunar; atomik alanın anlamını anlamak için , RM'den bazı ilgili noktaları ayrıntılandıran aşağıdaki alıntıdan başlayalım:
Şimdiye kadar, elementleri atomik (birleştirilemez) değerler olan alanlar gibi basit alanlarda tanımlanan ilişkilerin örneklerini tartıştık. Nontomik değerler ilişkisel çerçevede ele alınabilir. Bu nedenle, bazı alanların öğeler olarak ilişkileri olabilir. Bu ilişkiler, basit olmayan alanlarda tanımlanabilir.
Bu yolla, yukarıda zikredilen açıklayıcı ilişkilerin her birinin iki türden birine uyduğunu söyleyebiliriz, ya A tipi ya da B tipi :
Tür A yalnızca gruplarının (satırlarının) her birinde yalnızca basit değerler içeren alanlarla (sütunlar) yapılandırılmış ilişkileri (tablolar) , yani bu alanların (sütunların) değerler olarak ilişki (tablolar) içermediğini, bu bağlam, değerlerin atomik olduğu anlamına gelir, çünkü art arda yeni ilişkilere ayrılamazlar (tablolar). Bu nedenle, bu sınıfın ilişkileri normalleştirilmiş olanlardır , yani 1NF'ye uygundurlar, formları arzu edilir.
B Tipi, her bir ilişkide (satır) ilişkileri ilişki olarak tutan bir veya daha fazla etki alanına (sütun) sahip olan ve bahsedilen değerlerin daha sonra yeni ilişkilere ayrılabildikleri için anatomik olmadığını ifade eden ilişkiler (tablolar) ile bütünleştirilir. (tablolar), yani ayrıştırılabilirler . Bu nedenle, bu tür ilişkiler normalleşmez, yani 1NF'yi ihlal ederler, istenmeyen bir formdadırlar.
normalleştirme
Dr. Codd, RM'de normalleşme ile ilgili bölümü aşağıdaki paragrafla tanıtıyor:
Etki alanları tamamen basit olan bir ilişki, depolamada yukarıda tartışılan türden iki boyutlu kolon homojen bir dizi ile temsil edilebilir. Bir veya daha fazla basit olmayan alanla ilişki için biraz daha karmaşık veri yapısı gereklidir. Bu nedenle (ve diğer alıntılar aşağıda belirtilmiştir) basit olmayan alan adlarını ortadan kaldırma olasılığı araştırmaya değer görünmektedir! Aslında, normalleştirme diyeceğimiz çok basit bir eleme prosedürü vardır.
Sonra göstermeye devam ediyor:
Birinin normalleştirilmemiş olduğu bir grup ilişki (değer olarak ilişki içeren etki alanlarına sahiptir, yani bunlar anatomik değildir; yani basit değildir)
Normalize edilmiş bir grup ilişki (yani ayrıştırılmış olan bir ilişki; yani değerli alanlarla ilişkisinin atomik olduklarını gösteren basit olanlara ayrıldığı)
Ve sonra normalleştirilmemiş ilişkilerden normalleştirilmiş ilişkiler elde etme prosedürünü açıklar.
Bu bağlamda, normalleştirme alıştırması ve alıştırma tanımının kendisini göstermek için kullandığı ilişkiler oldukça açıktır ve bunları kendiniz analiz etmenizi tekrar öneririm (ve umarım bu bazı okuyucuları metinle etkileşime teşvik eder).
Başarıyla şöyle diyor:
Normalleştirici türde başka işlemler de mümkündür. Bunlar bu yazıda tartışılmamıştır.
Ve adı geçen işlemler, yani ikinci ve üçüncü normal form (2NF ve 3NF) aslında "Veri Tabanı İlişkisel Modelinin Daha da Normalleştirilmesi" ve yukarıda belirtildiği gibi, bu makalenin sunumundan (ve daha sonra basılması ve yayınlanmasından sonra) ayrıntılı olarak açıklanmaktadır. , orijinal normal biçimi ilk normal form olarak tanındı.
Bir uygulayıcının gözlemleyebileceği gibi, normalleşmemiş ilişkilere (tablolara) sahip olmak RDB uygulamalarına (neredeyse her zaman gereksiz) evrişim getirir.
1NF'yi karşılayan bir ilişki, Dr. Codd'un aşağıdaki satırlarda belirttiği gibi, normal olmayan ilişkiler (tablolar) için gerekenden daha az karmaşık bir veri alt dili vasıtasıyla uygulanabilecek kısıtlamaların ve veri işleme işlemlerinin tanımını kolaylaştırır:
Yukarıda tarif edildiği gibi ilişkisel bir veri modelinin benimsenmesi, uygulanan bir yüklem hesaplamasına dayanan evrensel bir veri alt dilinin geliştirilmesine izin verir. İlişkilerin toplanması normal formda ise birinci dereceden yüklem hesabı yeterlidir. Böyle bir dil, önerilen diğer tüm veri dilleri için bir dilsel güç göstergesi sağlayacak ve kendisi çeşitli ana bilgisayar dillerine (programlama, komut veya probleme yönelik) gömülmesi (uygun sözdizimsel modifikasyonla) için güçlü bir aday olacaktır. [...]
[...]
Veri alt dilinin evrenselliği, açıklayıcı yeteneğinde (hesaplama yeteneğinde değil) yatmaktadır.
Şaşkınlık
Benim bakış kaynaktan, şaşkınlık bağlı 1NF ve yaklaşık vb yorumlardan açıklamalar, (a) yukarıda sözü edilen aşırı, ortaya çıkmıştır daha fazla girişimi RM kendisi, çünkü (b) 'nin yeniden tanımlanması 1nF bu durum bu ilişkileri olan ilişkileri tutan değerleri olan etki alanlarında, karşılık olarak, her karşılık gelen demet için tek bir değer olduğu sürece ilişkiler 1NF'ye uygundur .
Diğer puanları almam
Satırlar arasında aynı başlıklara uymaları dışında herhangi bir ilişki olmamalıdır.
Bu ifadenin niyetini doğru anladığımdan emin değilim, ancak aynı başlıklara uymanın yanı sıra, bir ilişkinin (tablolar) satırları arasında bir bağlantı olması gerekir, çünkü her biri bir ilişkinin (tablonun) temsil etmesi gereken belirli varlık türünün (ilgili ticari bağlam bağlamında tanımlanan) belirli bir oluşumu.
Sütunlar arasında da bir ilişki olmamalı, ancak bunun daha yüksek normal formların konusu olduğuna inanıyorum.
Bu ifadenin anlamını da doğru bir şekilde yorumlayıp yorumlamadığımı bilmiyorum, ama aslında ve önceki yönüne verdiğim yanıta göre , bir ilişkinin (tablo) alan adları (sütunları) arasında da bir ilişki olmalı bu tam olarak bir ilişkidir ( ilişkisel modelin ve somut bir RDB uygulamasının temel yapısı ).
Varsayımsal ilişki ile ilgili örnek vermek (tablo)
Salary (PersonNumber, EffectiveDate, Amount)
demet (sıra)
anlamı iletir
The Salary payed to the Person identified by PersonNumber x, on EffectiveDate y corresponds to the Amount of z
Bu nedenle, Salary
ilişkinin (tablonun) her bir tupu (satırı) yukarıda gösterilen iddianın yapısına uymalıdır ve fark ilgili etki alanı (sütun) değerlerinin değiştirilmesi olacaktır, ancak (a) arasında bir ilişki olmalıdır. tüm Salary
alan (sütunlar) ve ayrıca (b) arasında her bir tuple (sıra) ile ilgili karşılık gelen değerleri; böyle bir ilişki vazgeçilmezdir.
Daha yüksek normal formlar (2NF ve 3NF), bir ilişkinin (tablo) etki alanları (sütunları) arasındaki işlevsel bağımlılıklardan kurtulmak için yararlıdır , söz konusu istenmeyen bağlantılar güncelleme anormalliklerinin eklenmesine izin verdiğinden , alanlar (sütunlar) arasında istenmeyen bağlantılardan kaçınmaya yardımcı olurlar. . Hem 2NF hem de 3NF, belirli bir RDB uygulamasında ilişkilerin (tabloların) yapısının sağlamlığını test etmeye yardımcı olur.