İlişkisel veri modelinin avantajları şunları içerir: Kurs: İlişkisel Veri Modeli. Ayrıntılar Nesne İlişkisi

  • 31.10.2019

yerel model

Dosya Sunucusu Modeli

Dosya sunucusu uygulamaları, yapı olarak yerel uygulamalara benzeyen ve programları ve verileri depolamak için bir ağ kaynağı kullanan uygulamalardır. Sunucu işlevleri: verilerin ve program kodunun depolanması. İstemci işlevleri: veri işleme yalnızca istemci tarafında gerçekleşir.

Müşteri sayısı onlarca ile sınırlıdır.

Artıları:

1. Verilerle çok kullanıcılı çalışma modu;

2. Merkezi erişim kontrolünün rahatlığı;

3. Düşük geliştirme maliyeti;

eksileri:

1. Düşük verimlilik;

2. Düşük güvenilirlik;

3. Zayıf genişletilebilirlik;

Dosya sunucusu mimarisinin dezavantajları açıktır ve esas olarak verilerin bir yerde saklanması ve başka bir yerde işlenmesi gerçeğinden kaynaklanmaktadır. Bu, ağ üzerinden gönderilmeleri gerektiği anlamına gelir, bu da çok yüksek ağ yüklerine ve bunun sonucunda eşzamanlı istemci sayısı arttıkça uygulama performansında keskin bir düşüşe yol açar. Böyle bir mimarinin ikinci büyük dezavantajı, veri bütünlüğü ve tutarlılığı ve eşzamanlı veri erişimi sorunlarına merkezi olmayan çözümdür. Bu çözüm azaltır

Uygulamanın güvenilirliği.



Uzaktan erişim modeli

Veri Sunucusu Modeli

teleişlem modeli

Uygulama Sunucusu Modeli

2. Veritabanı mimarisi. Fiziksel ve mantıksal bağımsızlık

terminoloji VTYS ve terimlerin kendileri " veri tabanı" ve " veri tabanı"kısmen ödünç alınmış finansal faaliyetler... Bu borçlanma tesadüfi değildir ve bilgi ile çalışmanın ve para arzı ile çalışmanın birçok yönden benzer olduğu gerçeğiyle açıklanır, çünkü hem orada hem de orada işleme nesnesinin kişileştirilmesi yoktur: yüz ruble cinsinden iki banknot iki özdeş bayt kadar ayırt edilemez ve birbirinin yerine kullanılabilir (elbette seri numaraları hariç). Bir hesaba para yatırabilir ve akrabalarınız veya iş arkadaşlarınız için başka amaçlarla kullanma fırsatı sağlayabilirsiniz. Bankaya ödemeniz için talimat verebilirsiniz. masraflar hesabınızdan veya başka bir bankadan nakit olarak alın ve bunlar zaten başka banknotlar olacak, ancak değerleri, onları hesabınıza koyduğunuzda sahip olduğunuz değere eşit olacaktır.

Tam olarak nasıl düzenlenmesi gerektiğine dair bilimsel araştırma sürecinde VTYS, çeşitli uygulama yolları önerilmiştir. Bunlardan en uygun olanı Amerikan komitesi tarafından önerilen oldu. üzerinde standardizasyon ANSI(Amerikan Ulusal Standartlar Enstitüsü) üç katmanlı organizasyon sistemi DBŞek. 2:

Pirinç. 2. ANSI Üç Katmanlı Veritabanı Yönetim Sistemi Modeli

1. Dış modellerin seviyesi - her modelin kendi veri "vizyonuna" sahip olduğu en yüksek seviye. Bu seviye, bireysel uygulamaların veri tabanındaki bakış açısını tanımlar. Her uygulama, yalnızca bu özel uygulama için gerekli olan verileri görür ve işler. Örneğin, bir iş dağıtım sistemi, bir çalışanın nitelikleri hakkındaki bilgileri kullanır, ancak çalışanın maaşı, ev adresi ve telefon numarası gibi bilgilerle ilgilenmez ve tam tersi, bu bilgiler İK alt sisteminde kullanılır.

2. kavramsal seviye- merkezi kontrol bağlantısı, burada veritabanı, bu veritabanı ile çalışan tüm uygulamalar tarafından kullanılan verileri birleştiren en genel biçimde sunulur. Aslında kavramsal seviye veritabanının oluşturulduğu konu alanının (gerçek dünyanın nesneleri) genelleştirilmiş modelini yansıtır. Herhangi bir model gibi, kavramsal model de gerçek dünyadaki nesnelerin işleme açısından yalnızca temel özelliklerini yansıtır.

3. Fiziksel katman - dosyalarda veya harici depolama ortamında bulunan sayfa yapılarında bulunan gerçek veriler.

Bu mimari verilerle çalışırken mantıksal (1. ve 2. düzeyler arasında) ve fiziksel (2. ve 3. düzeyler arasında) bağımsızlık sağlamanıza olanak tanır. Mantıksal bağımsızlık, aynı veritabanıyla çalışan diğer uygulamaları ayarlamadan bir uygulamayı değiştirme yeteneği anlamına gelir. Fiziksel bağımsızlık, bu veritabanıyla çalışan tüm uygulamaların performansını korurken, saklanan bilgileri bir ortamdan diğerine aktarma yeteneği anlamına gelir. Dosya sistemlerini kullanırken tam olarak bu eksikti.

Kavramsal seviyenin tahsisi, merkezi veritabanı yönetimi için bir aparat geliştirmeyi mümkün kıldı.

3. Veri modelleri.

Bilgi sisteminin temeli, işlenmesinin amacı bir veritabanıdır (DB). Veri tabanı herhangi bir konu alanı veya konu alanının bir bölümünde gerçek dünyanın belirli nesneleri hakkında bilgi topluluğudur. Örneğin, üniversitelerle ilgili bir veri tabanı (yüksek öğretim), ilaçlarla ilgili bir veri tabanı (tıp), otomobiller üzerine bir veri tabanı (otomatik), yapı malzemeleri üzerine bir veri tabanı (depo), vb. "Veritabanı" teriminin eş anlamlısı "veri bankası"dır.

Herhangi bir veritabanının çekirdeği, veri örneği , bir veri yapısı, onun nasıl temsil edileceğine ve nasıl manipüle edilebileceğine dair kurallar. Başka bir deyişle, konu alanındaki nesnelerin ve aralarındaki ilişkilerin resmileştirilmiş bir açıklamasıdır.

Üç ana veri modeli türü vardır: hiyerarşik, ağ ve ilişkisel.

Hiyerarşik yapı bir düzeyin verilerinin başka bir düzeyin verilerine tabi olduğu ve öğeler arasındaki bağlantıların bir ağaç yapısı oluşturduğu bir öğeler topluluğudur. Böyle bir yapıda, orijinal öğeler diğer öğeleri doğurur ve bu öğeler sırayla sonraki öğeleri doğurur, vb. Oluşturulan her öğenin yalnızca bir "ebeveyn" olması önemlidir. Hiyerarşik bir yapıda, ana öğenin nesnenin kendisi değil, yalnızca nesnenin belirli bir örneği olabileceğini unutmayın. Hiyerarşik bir veritabanı örneği, soy ağacınız olabilir.

Daha karmaşık olanlar var - ağ yapıları her çocuğun birden fazla ebeveyni olabileceği. Ağ veri modeli, ağ veri yapısının her bir öğesinin başka herhangi bir öğeyle ilişkilendirilmesi bakımından hiyerarşik olandan farklıdır. Karmaşık bir ağ yapısına bir örnek, çeşitli çevrelerdeki öğrenciler hakkında bilgi içeren bir veritabanının yapısıdır. Bu durumda aynı öğrenci farklı çevrelerde çalışabileceği gibi aynı çevreden birkaç öğrencinin katılımı da mümkündür. Ağ ve hiyerarşik yapılar basit iki boyutlu tablolara indirgenebilir.

4. İlişkisel veri modelinin temel tanımları

İlişkisel veri modeli- mantıksal veri modeli. İlk olarak İngiliz bilim adamı, IBM çalışanı Edgar Frank Codd (E. F. Codd) tarafından önerildi. Şu anda bu model, neredeyse tüm modern ticari VTYS'nin kılavuzluk ettiği fiili standarttır.

Christopher Date, ilişkisel bir veri modelinin üç yapı taşını tanımladı:

§ yapısal

§ manipülatif

§ bütünsel

Yapısal kısım Model, tek veri yapısının normalleştirilmiş bir n-ary ilişkisi olduğunu belirtir. İlişkiler, her satırın bir tanımlama grubu olduğu ve her sütunun bir etki alanında tanımlanmış bir öznitelik olduğu tablolar biçiminde uygun bir şekilde temsil edilir. İlişki kavramına yönelik bu gayri resmi yaklaşım, geliştiriciler ve kullanıcılar için, ilişkisel bir veritabanının sonlu bir tablo kümesi olduğu daha tanıdık bir sunum biçimi sağlar.

Manipülasyon kısmı model, verileri işlemek için iki temel mekanizma tanımlar - ilişkisel cebir ve ilişkisel hesap. İlişkisel modelin manipülasyon bölümünün ana işlevi, ilişkisel veritabanlarının herhangi bir belirli dilinin göreliliğinin bir ölçüsünü sağlamaktır: ilişkisel cebir veya ilişkisel hesaptan daha az ifade gücü ve gücü yoksa, bir dile ilişkisel denir.

ayrılmaz parça model gereksinimleri tanımlar varlık bütünlüğü ve bağlantı bütünlüğü... İlk gereklilik, herhangi bir ilişkinin herhangi bir demetinin, o ilişkinin diğer herhangi bir demetinden ayırt edilebilir olmasıdır, yani. başka bir deyişle, herhangi bir ilişkinin birincil anahtarı olmalıdır. Başvuru bütünlüğü gereksinimi veya yabancı anahtar gereksinimi, başvuru ilişkisinde görünen her bir yabancı anahtar değeri için başvurulan ilişkinin aynı birincil anahtar değerine sahip bir tanımlama grubuna sahip olması veya yabancı anahtar değerinin tanımsız olması gerektiğidir (örn. t hiçbir şeye işaret etme).

İlişkisel veri modeli yapısı

Bir ilişkisel veri modelinin öğeleri ile bir varlık-ilişki modelinin öğeleri arasında bir analoji kurulabilir. İlişkisel ilişkiler varlık kümelerine karşılık gelir ve demetler varlıklara karşılık gelir. Bu nedenle, varlık-ilişki modelinde olduğu gibi, tablodaki ilişkisel ilişkiyi temsil eden sütunlara nitelikler denir.

İlişkisel bir ilişkinin ana bileşenleri

Her öznitelik bir etki alanında tanımlanır, bu nedenle bir etki alanı, o öznitelik için geçerli bir değerler kümesi olarak görüntülenebilir. Aynı ilişkinin birkaç niteliği ve hatta farklı ilişkilerin nitelikleri aynı etki alanında tanımlanabilir.

Şekildeki örnekte Maaş ve Bonus özellikleri Money domain üzerinde tanımlanmıştır. Bu nedenle, alan kavramının anlamsal bir anlamı vardır: veriler ancak aynı alana ait olduğunda karşılaştırılabilir olarak kabul edilebilir. Bu nedenle, örneğimizde "Personel numarası" ve "Maaş" niteliklerinin karşılaştırılması, aynı türde veriler içermelerine rağmen anlamsal olarak yanlıştır.

Adlandırılmış "özellik adı - etki alanı adı" çiftleri kümesine denir. ilişki şeması... Bu kümenin kardinalitesine denir. derece ya da ilişkinin "arity"si. Bir dizi adlandırılmış ilişki şeması veritabanı şeması.

Değeri tuple'ları benzersiz şekilde tanımlayan bir özniteliğe denir. anahtar(ya da sadece anahtar). Bizim durumumuzda anahtar, değeri işletmenin her çalışanı için benzersiz olduğundan, "Personel numarası" özelliğidir. Tuple'lar yalnızca birkaç özelliğin değerlerinin birleştirilmesiyle tanımlanırsa, ilişkinin bileşik bir anahtara sahip olduğu söylenir. Bir ilişki birden çok anahtar içerebilir. Anahtarlardan biri her zaman birincil olarak bildirilir, değerleri güncellenemez. Diğer tüm ilişki anahtarları denir olası tuşlar.

Hiyerarşik ve ağ veri modellerinin aksine ilişkisel, grup ilişkisi kavramına sahip değildir. Farklı ilişkilerin demetleri arasındaki ilişkileri yansıtmak için yinelenen anahtarlar kullanılır.

5. Veritabanının yaşam döngüsü. Veritabanının yaşam döngüsünün aşamaları.

Veritabanı yaşam döngüsü bir veritabanının oluşturulmasından kullanım sonuna kadar geçtiği bir dizi aşamadır.

  1. Çözümü için bir veritabanı oluşturulan problemin araştırılması ve analizi.
  2. Bilgibilimsel ve Veribilimsel Bir Model Oluşturma.
  3. Elde edilen İnfolojik ve Datalojik modellerin normalleştirilmesi. Bu aşamanın sonunda, kural olarak, boş bir veritabanı tablosu ve bunlar arasında bir dizi bağlantı (birincil ve ikincil anahtarlar) elde edilir.
  4. Veritabanı Bütünlüğü Kontrolü (Veritabanı Bütünlüğü)
  5. Veritabanının fiziksel depolama ve çalıştırma yönteminin (teknik araçlar) seçimi.
  6. Girdi ve çıktı formlarının tasarlanması.
  7. Uygulama arayüzü geliştirme.
  8. Uygulamanın işlevsel içeriği
  9. Hata ayıklama: sistemin işlevsel içeriğinin doğru çalışıp çalışmadığını kontrol etme
  10. Test etme: giriş/çıkış verilerinin doğruluğunu test edin, maksimum aktif oturum sayısını test edin, vb.
  11. Devreye alma: BT altyapısında hata ayıklama, kullanıcıları ve BT personelini eğitme.
  12. Gerekirse, çıktı formları ve ek işlevler ekleyin. Daha ciddi değişiklikler gerekiyorsa, ilk adımdan itibaren tüm adımları tekrarlamalısınız.
  13. Hizmetten Çıkarma: verilerin yeni bir DBMS'ye aktarılması.

6. Bilgi birimlerinin temel özellikleri. Bileşik bilgi birimi. SEI yapısının tanımı. Göstergeler

Bileşik bilgi birimi (SEI) Bir dizi nitelik ve muhtemelen diğer SEI'lerdir. SEI tanımı özyinelemelidir. Veritabanı da EI'dir. Birçok özellik, aşağıdaki kriterlere göre tek bir SKU'da birleştirilir:

Karşılık gelen nitelikler aynı gerçeği veya ekonomik süreci tanımlar

SEI'de yer alan niteliklerin değerleri aynı anda ortaya çıkar, aritmetik veya mantıksal ilişkilerle bağlanır.

Bir SEI'nin en basit özelliği isim, yapı ve anlam ile temsil edilir.

İsim - bilgi işleme süreçlerinde SEI'nin tanımı

Yapı - bazı bilgi birimlerinin diğer birimlerin bileşimine girişi

bilgi.

Belgeleri analiz ederken, görev belgeyi göstergeler adı verilen temel anlamlı parçalara bölmektir. Bu, çeşitli belgeler arasında anlamsal ilişkiler kurmayı, kullanılan bilgi birimlerinin tüm kullanıcıları tarafından aynı şekilde anlaşılmasını ve bunların tek tip tanımlanmasını, elde edilen sonuçların veritabanının yapısını belirlemek için kullanılmasını mümkün kılar.

SKU yapısının açıklaması

Belirli programlama dillerine ve DBMS'ye bağlı olmayan bir açıklama için, SEI adından sonra niteliklerinin ve SEI'nin adlarının bir listesini belirtmek yeterlidir. Liste parantez içinde verilmiştir. SEI adına bir boyut eşlik edebilir, yani. bu SEI'nin yapı olarak aynı olan değerlerinin sayısını gösteren. Boyut 1'e eşit değilse SEI adından sonra parantez içinde belirtilir. Boyut tanımı ile yapının tanımı arasına bir nokta konur.

dizin

Gösterge, bir nesneyi veya süreci karakterize eden nicel bir parametrenin tam açıklamasıdır. Rastgele bir özelliğin (mutlaka nicel olması gerekmez) karşılık gelen açıklamasına atomik gerçek denir.

Maddi süreçlerin niteliksel ve niceliksel özellikleri vardır. Buna göre, nitelikler-işaretler ve nitelikler-tabanlar, belirli bir nesnenin niteliksel ve niceliksel özelliklerinin sırasıyla bir bilgi gösterimi olarak bölünür.

Gösterge, bazın mevcudiyeti için koşulları açık bir şekilde karakterize eden bir nitelik-tabanı ve birkaç nitelik-işaretini içermelidir. Bir bilgi birimi olarak gösterge, bir tür SEI'dir.

Gösterge yapısı:

P. (P1, P2, ..., Pk, Q),

nerede Q - nitelik-tabanı, Р1, Р2, ..., Рк - nitelik-işaretleri. Böylece göstergeler, nesnelerin ve süreçlerin nicel özelliklerini yansıtır.

Asgari metrik öznitelik kümesi şunları içermelidir:

1. Nesne tanımlayıcılarını gösteren nitelikler

2. Zamanın işaretini gösteren nitelikler

3. Bir nesnenin veya etkileşimin bazı nicel özelliklerini yansıtan bir nitelik.

Bir niteliği bir işaret veya temel olarak tanımlamak için aşağıdaki kalıplar kullanılabilir:

1. Öznitelik değeri, hesaplamalar için ilk veri veya bir aritmetik işlemin sonucuysa, bu tabandır.

2. Öznitelik değeri metin ise, bu bir işarettir.

3. Bir öznitelik bir özneyi ifade ediyorsa, bu bir işarettir.

4. Eğer bir göstergedeki bir özellik bir özellik ise, diğer göstergelerde de bu rolü oynayacaktır.

5. Göstergeler benzer süreçleri tanımlıyorsa, nitelik kısımları çakışmaktadır.

6. Gösterge tabanı, diğer bazların değerlerine göre hesaplanırsa, böyle bir göstergenin özellik seti, bu bazlarla ilişkili özelliklerin bir kombinasyonudur.

7. SEI üzerinden işlemler: normalleştirme, evrişim, ayrıştırma, bileşim, seçim, ayarlama.

normalleştirme- keyfi bir yapıya sahip bir SEI'den iki seviyeli bir yapıya sahip bir SEI'ye geçiş işlemi. Aynı zamanda SKU değerleri yeniden düzenlenir. Normalleştirilmiş bir SEI'deki toplam değer sayısı, orijinal yapı açıklamasındaki tüm SEI'lerin boyutlarının çarpımına eşittir.

evrişimİki seviyeli bir yapıya sahip bileşik bir bilgi biriminin, keyfi çok seviyeli bir yapıya sahip bileşik bir bilgi birimine dönüştürülmesidir. Normalleştirilmiş bir yapının evrişimi bu anlamda orijinalinde gerçekleştirilebilir, normalleştirme ve evrişim karşılıklı olarak ters işlemlerdir.

Ayrışma Orijinal bir SKU'yu farklı yapılara sahip birkaç SKU'ya dönüştürme işlemidir. Ayrıştırmadan önceki SKU öznitelikleri kümesi, ayrıştırma sonrasındaki öznitelikler kümesiyle eşleşmelidir.

Kompozisyon Farklı yapılara sahip birkaç bileşik bilgi birimini tek bir SEI'ye dönüştürme işlemidir. Birleştirme işlemi, ayrıştırmanın tersidir ve yalnızca normalleştirilmiş orijinal bileşik bilgi birimleri için kesin olarak tanımlanır. İki SEI'nin bileşimini gerçekleştirmenin koşulu, bunların bağlantılı olduğu niteliklerin varlığıdır.

ÖrneklemÖnceden ayarlanmış örnekleme koşullarını karşılayan bir bileşik bilgi biriminin bir değer alt kümesini tahsis etme işlemidir.

Ayarlama Aşağıdaki işlemlerden birinin yürütülmesidir:

1. Yeni bir değer ekleme

2. Mevcut bir değeri hariç tutma

3. Bazı değerleri yenisiyle değiştirmek

Daha karmaşık düzeltme modları mümkündür, örneğin

aynı anda birkaç SEI.

8. İki ilişki sınıfı: nesne ve bağlantılı. İlişki Anahtarları. Endeksler.

İlişkilerle ilgili işlemler:

1. Geleneksel işlemler (birleşim, kesişim, fark, kartezyen çarpım, bölme)

2. Özel ilişkisel işlemler (projeksiyon, birleştirme, seçim) Bu işlemler, iki sınıfa ayrılan özel diller kullanılarak gerçekleştirilir:

1. İstenen sonucu elde etmek için eylemlerin sırasını tanımlayan ilişkisel cebir dilleri

2. Kullanıcıya yalnızca istenen sonuç hakkında bilgi içeren veritabanı sorguları yazmak için bir dizi kural sağlayan ilişkisel analiz dilleri

İçeriğe bağlı olarak 2 sınıf ilişki vardır:

1. Nesne ilişkisi

2. Bağlantılı tutum

Bir nesne ilişkisi, nesneler veya bir varlığın örnekleri hakkındaki verileri depolar. Niteliklerden biri, her nesneyi benzersiz şekilde tanımlar. Birden çok öznitelikten (bileşik anahtar) oluşabilen veya öznitelik değerinin bir parçası olabilen (kısmi anahtar) birincil anahtardır. Birincil anahtarın iki özelliği olmalıdır:

1. Kayıt, anahtar değer tarafından benzersiz bir şekilde belirlenmelidir

2. Benzersiz tanımlama özelliklerini ihlal etmeden anahtardan hiçbir alan kaldırılamaz

Bağlı bir ilişki, iki veya daha fazla ilişkinin anahtarlarını tutar, yani. anahtarlar, ilişkilerin nesneleri arasında bir bağlantı kurmak için kullanılır.

Tutarlı bir ilişkideki anahtarlara harici anahtarlar denir, çünkü onlar diğer ilişkilerin birincil anahtarlarıdır. İlişkisel model, referans bütünlüğü adı verilen yabancı anahtarlara bir bütünlük kısıtlaması getirir. Bu, her yabancı anahtarın bazı nesne ilişkilerinin karşılık gelen bir dizesine sahip olması gerektiği anlamına gelir, aksi takdirde yabancı anahtarın bilinmeyen bir nesneye atıfta bulunduğu ortaya çıkar. İlişkisel bir veritabanındaki ilişkilerle ilgili bir başka sınırlama, her ilişkinin basit niteliklere sahip olması gerektiğini söyler, yani. atomik, bölünemez değerler içerir.

Tüm niteliklerin basit olduğu bir ilişkiye birinci normal biçim denir.

9. İlişkilerin normalleştirilmesi. İlişkisel bir veritabanında öznitelikleri ilişkiler halinde gruplamak için gereksinimler.

normalleştirme Adım adım tersine çevrilebilir bir ayrıştırma sürecidir, yani orijinal ilişkilerin daha küçük ve daha basit ilişkilere ayrıştırılmasıdır. Aynı zamanda, nitelikler arasındaki her türlü işlevsel bağımlılık açıklığa kavuşturulmuştur.

Bir IS veritabanı tasarlamanın temel görevi, ilişkilerin (veya diğer bileşik bilgi birimlerinin) sayısını ve bunların öznitelik bileşimini belirlemektir.

Öznitelikleri önceden sabit olmayan ilişkiler halinde gruplama sorunu, birçok farklı çözüme izin verir. Rasyonel gruplama seçenekleri aşağıdaki gereksinimleri dikkate almalıdır:

Bir dizi ilişki, bilginin sunumunda minimum fazlalık sağlamalıdır,

İlişkilerin ayarlanması belirsizliğe veya bilgi kaybına yol açmamalı,

· Veritabanına yeni nitelikler eklerken ilişki setini yeniden oluşturmak minimum düzeyde olmalıdır.

Bu gereksinimlerin karşılanması, veritabanı ilişkilerinin normalleştirilmesiyle sağlanır.

10. İşlevsel bağımlılıklar. Normal formlar.

Özellikler için işlevsel bağımlılıklar tanımlanır, konumlanmış aynı ilişki 1NF'yi tatmin eder.

Örneğin, R1'e göre 2 nitelik A ve B olsun.B Niteliği işlevsel olarak A niteliğine bağlıdır, eğer herhangi bir zamanda A niteliğinin her bir değeri B niteliğinin tek bir değerine tekabül ediyorsa. Bu, A → B ile gösterilir. (bağımlılık yoksa, o zaman AB).

İlişki 1NF ise, anahtar olmayan tüm nitelikler işlevsel olarak anahtara bağlıdır, ancak bağımlılık derecesi farklı olabilir.

Anahtar olmayan bir özellik anahtarın yalnızca bir kısmına bağlıysa, o zaman hakkında derler. kısmi bağımlılık.

Anahtar olmayan bir öznitelik, bileşik anahtarın tamamına bağlıysa ve kısmen onun parçalarına bağlı değilse, o zaman bileşik anahtara tam bir işlevsel bağımlılıktan bahsedebiliriz.

Her NF, belirli bir tür işlevsel bağımlılıkla sınırlıdır ve DB düşünüldüğünde Op'un yürütülmesindeki anormallikleri ortadan kaldırır.

Bu tür kısmi bağımlılıklar, örneğin aşağıdakilere yol açar: anomaliler:

1) işçi hakkındaki verilerin çoğaltılması, çünkü her biri farklı işçiler tarafından üretilebildiğinden, birkaç çeşit parça ve parça hakkında veri üretebilir;

2) veri artıklığı kontrolü sorunu, çünkü örneğin, orandaki bir değişiklik şunları gerektirir:

tüm tuplelerde fiyat değerlerini arama ve değiştirme ihtiyacı;

3) şu anda çalışmayan işçilerle ilgili sorun (bir demetin tüm niteliklerinin belirli değerlere sahip olması gerektiğinden ilişkiye dahil edilemezler), yani. Parça verileri olmayan çalışan verileri ilişkiye dahil edilemez; işçi ayrılırsa, o zaman onunla ilgili veriler ilişkiden çıkarılırken, parça ile ilgili veriler de silinir ve bu olmamalıdır.

Bir ilişki 1NF'deyse 2NF'dedir ve anahtar olmayan her öznitelik işlevsel olarak bileşik anahtara tamamen bağlıdır. Kısmi bağımlılığı ortadan kaldırmak ve ilişkiyi 2NF'ye getirmek için, onu aşağıdaki gibi birkaç ilişkiye ayırmanız gerekir:

1) kısmen bileşik anahtara bağlı nitelikler olmadan bir projeksiyon oluşturmak;

2) bileşik anahtarın bir parçası ve bu parçaya bağlı nitelikler üzerine bir izdüşüm oluşturun.

A, B, C nitelikleri için A → B ve B → C koşulları karşılanıyorsa, ancak ters ilişki yoksa, o zaman C, A'ya bağlıdır. geçişli, onlar. geçişli bağımlılıktan bahsedebiliriz. Geçişli bağımlılıkların varlığı, aşağıdaki türden rahatsızlıklara ve anormalliklere yol açar:

1) Birden fazla çalışan için yinelenen telefon bilgileri

2) Telefon numarasını değiştirirken arama ve kontrol sorunu.

Bu nedenle, 2NF ayrıca başka dönüşümler gerektirebilir.

Bir ilişki 2NF'deyse 3NF'dedir ve anahtarda anahtar olmayan özniteliklerin geçişli bağımlılıkları yoktur. Bir DB, tüm ilişkileri 3NF'deyse, 3NF'dedir.

3NF elde etmek için algoritma:

Algoritmanın ilk verileri, bir ilişkiyi, bir veritabanını veya onun bir bölümünü kapsayan belirli bir nitelikler listesidir. Her durumda, belirli bir nitelikler listesiyle (en azından teoride) bir ilişkinin varlığı varsayılır.

ZNF'de ilişki elde etme algoritması aşağıdaki özelliklere sahiptir:

Tüm orijinal işlevsel bağımlılıkları korur, yani. R'de geçerli olan bir bağımlılık, türetilmiş ilişkilerden birinde de geçerlidir. Bu, kolay yorumlanabilir bir yapı ile anlamlı bir ilişkiyi garanti eder,

Kayıpsız bir bağlantı sağlar, yani. orijinal oran R'nin değerleri, birleştirme işlemi kullanılarak R oranının izdüşümlerinden yeniden oluşturulabilir,

ZNF'deki ayrışmanın sonucu genellikle orijinal R ilişkisinden daha az öznitelik değeri içerir (artıklıkta bir azalma vardır)

Algoritma aşağıdaki adımlardan oluşur:

1) Dikkate alınan veritabanının öznitelikleri için ilk işlevsel bağımlılıklar kümesini alın.

2) Bir dizi işlevsel bağımlılığın minimum kapsamını alın. Özellikle, aynı sol tarafla işlevsel bağımlılıkları tek bir bağımlılıkta birleştirmek gerekir.

3) Adım 2'de elde edilen her bir işlevsel bağımlılık için, R [X] başlangıç ​​ilişkilerinin bir izdüşümünü oluşturun; burada X, işlevsel bağımlılıkların sol ve sağ taraflarından niteliklerin birleşimidir.

4) Orijinal ilişkinin birincil anahtarı herhangi bir projeksiyona tam olarak dahil edilmemişse, anahtar niteliklerden bir ilişki oluştururuz.

BKNF (Boyce-Codd)

3NF ise bir ilişkinin normal BC formunda olduğu ve anahtar nitelikler ile anahtar olmayan nitelikler arasında herhangi bir bağımlılığın olmadığı kabul edilir.

NFBC'de ise bir ilişki 4NF'dedir ve işlevsel olmayan çok değerli bağımlılıklar yoktur.

5NF... Davranış r içinde beşinci normal form (5NF ) ancak ve ancak mevcut herhangi bir bağlantı bağımlılığı önemsizdir .

Bağlantı bağımlılığı denir önemsiz olmayan bağlantı bağımlılığı iki koşul karşılanırsa:

11. İlişkiler üzerinden işlemler: birleşim, kesişim, fark, Kartezyen çarpım.

İlişki

İlişkisel cebirde işlenenler ilişkilerdir ve ilişkiler üzerinde gerçekleştirilen ana işlemler şunlardır:

· Birlik

kavşak

Fark

Kartezyen ürün

Bölüm

Projeksiyon

Bağlantı

Bazı kavramları tanıtalım.

ilişki derecesi içerdiği özelliklerin sayısı denir.

Güç Bir ilişkinin (ana) sayısı, ilişkinin demet sayısıdır. Bazı işlemler yapılırken ilişkilerin uyumlu olması (uyumlu şemalara sahip olması), yani. karşılık gelen niteliklerin aynı derecesine ve aynı türlerine sahiptir.

BİRLEŞTİRME (R U S) R ve S ilişkileri R veya S'ye veya her ikisine de ait olan bir demet kümesidir. Birleştirme işlemi iki uyumlu ilişki üzerinde gerçekleştirilir.

GEÇİT. R ve S'nin kesişiminin sonucu, yalnızca ikinci S'de bulunan ilk R ilişkisinin demetlerini içerir.

FARK.Çıkarma işleminin sonucu (R-S), yalnızca ikinci S'de olmayan ilk R ilişkisinin demetlerini içerir.

DECARD İŞİ (R x T). Burada işlenen-ilişkiler R ve T farklı şemalara sahip olabilir: Ortaya çıkan ilişkinin derecesi (R x T), işlenenlerin (R ve T) ilişkilerinin derecelerinin toplamına eşittir ve kardinalite çarpımdır. onların kardinaliteleri.

12. İlişkiler üzerinden işlemler: bölme.

BÖLÜM (R / T).İşlem bir anlamda "Kartezyen çarpım" işleminin tersidir. Bir temettü (R) ilişkisi, bir bölen (T) ilişkisinin niteliklerinin bir alt kümesini içermelidir. Ortaya çıkan oran (R / T), temettünün yalnızca bölende olmayan özelliklerini içerir. Yalnızca, bölenle Kartezyen ürünü temettüde bulunan demetleri içerir.

13. İlişkiler üzerinden işlemler: projeksiyon, seçim, bağlantı.

PROJEKSİYON. Bu işlem, öncekilerden farklı olarak teklidir, yani. bir ilişki (R) üzerinden gerçekleştirilir. Ortaya çıkan P (R) ilişkisi, üzerine projeksiyonun gerçekleştirildiği orijinalin niteliklerinin bir bölümünü içerir. Yinelenen tuple yok.

Burada X, ilişki şemasındaki bir öznitelik listesidir.

BİRLEŞTİRMEK. Birleştirme işlemi iki ilişki (R ve S) üzerinde gerçekleştirilir. Her ilişkide, bağlantının kurulacağı öznitelik vurgulanır. Bağlantı için öznitelik olarak B özniteliğini seçelim.Sonuçtaki ilişki, birinci ilişkinin (R) ve ikinci ilişkinin (S) tüm özniteliklerini içerir:

TERCİH.İşlem bir ilişki (R) üzerinde gerçekleştirilir. Ortaya çıkan ilişki (OB = b (R)) bir koşul (B = b) tarafından seçilen demetlerin alt kümelerini içerir.

14. Veritabanı tasarımı (ANSI / SPARC mimarisi)

ANSI-SPARC mimarisi(Ayrıca 3 katmanlı mimari) veritabanı yönetim sistemlerinin (DBMS) oluşturulmasının önerildiği ilkeyi tanımlar.

Mimari proje, 1975 yılında SPARC ANSI alt komitesi tarafından ortaya atıldı.

3 seviye DBMS:

  1. harici(gelenek)
  2. orta düzey ( kavramsal)
  3. iç mekan(fiziksel)

ANSI-SPARC mimarisi kavramsal katmana dayanmaktadır. Modern DBMS'lerde bir görünüm kullanılarak uygulanabilir. Kavramsal katman, verileri ve ilişkilerini en genel bakış açısından, temelin mimarları kavramından, ilişkisel veya başka bir model kullanarak tanımlar.

İç katman, verilerin (medya, dosyalar, tablolar, tetikleyiciler ...) fiziksel olarak depolanmasının ayrıntılarını kavramsal katmandan gizlemenizi sağlar. İç seviyenin kavramsal seviyeden ayrılması, sözde sağlar. fiziksel bağımsızlık veri.

Dış düzeyde, çeşitli kullanıcı programlarına veri sunmak için kavramsal düzey öğelerinin çeşitli alt kümeleri açıklanmıştır. Her kullanıcı, veri gösteriminin bir kısmını kendi emrinde alır, ancak tüm kavram gizlidir. Dış katmanı kavramsal katmandan ayırmak, mantıksal bağımsızlık veri.

15. İnfolojik modelleme. Varlık-ilişki modeli (ER-modeli)

Bilgi modeli (MI) depolamanın müteakip uygulamasından bağımsız olarak, konu alanındaki bilginin doğal yapısının resmileştirilmiş bir açıklamasıdır.

acil durum modeli(Varlık-İlişki Modeli - "varlık-ilişki" modeli) - "varlık", "mülk", "ilişki" yapısal unsurlarına dayalı IM'nin temsili.

Varlıklar ve mülkler

Belirli bir dizi özellik ile karakterize edilen konu alanı nesnesinin türünü tanımlar. Bir varlığın belirli bir özelliğini tanımlar. Gerçekte, bir varlık birçok örneğe karşılık gelir.

Basit nesne- bir dizi basit tek, koşulsuz özellik ile karakterize edilir.

tanımlayıcı- değerleri bir varlığın (nesnenin) tüm örneklerini benzersiz bir şekilde ayıran bir veya daha fazla özellik.

Basit özellik- bağımsız varlığı olan bir bileşenden oluşur.

bileşik özellik- her biri bağımsız bir varlık ile karakterize edilen birkaç bileşenden oluşur.

Tek mülk- bir varlığın herhangi bir örneği için belirli bir türden yalnızca bir değer içerebilir.

Çoklu özellik- bir varlığın herhangi bir örneği için belirli bir türden birkaç değer içerebilir.

Bağlantı- iki varlığın ve bunların örneklerinin bağlanabilirliğinin bir açıklaması.

çoğulluk(kardinalite), her bir taraf için, başka bir varlığın bir örneği ile aynı anda ilişkilendirilebilen bir varlığın örneklerinin sayısını gösterir. Çokluk için iletişim seçenekleri: 1: 1, 1: M, M: M.

1. bire bir ilişki (1: 1), bir tablodaki her kaydın başka bir tablodaki yalnızca bir kayıtla eşleştiği anlamına gelir;

2. "Bire çok" (1: M) ilişkisi, bir kayıt diğer birçok kayıtla bağlantılı olduğunda ortaya çıkar;

3. Çoktan bire ilişki, birçok kaydın bir kayıtla ilişkilendirildiği anlamına gelir (M: 1);

4. Aşağıdaki durumlarda iki tablo arasında çoktan çoğa (M: N) bir ilişki oluşur:

· Birinci tablodaki bir kayıt, ikinci tablodaki birden fazla kayıtla ilişkilendirilebilir;

· İkinci tablodan bir kayıt, birinci tablodan birden fazla kayda bağlanabilir.

Bu modelin dezavantajı, aynı öğelerin aynı anda bir varlık, bir nitelik ve bir bağlantı olarak hareket edebilmesidir.

Yükümlülük(katılım derecesi) - her bir taraf için bir varlığın örneklerinin başka bir varlığın örnekleri ile bir ilişkiye zorunlu olarak girilmesini belirtir.

Dernek şu amaçlarla kullanılabilir:

M: M bağlantısının uygulanması

Üç veya daha fazla varlığı birbirine bağlama

Ek iletişim bilgilerinin saklanması

İnfolojik tasarım sırası:

varlıkların tanımı

Varlıkların tabi kılınmasının ve kompleks oluşumunun sağlanması

nesneler

Bağlantıların kurulması ve derneklerin tanımlanması

Varlıkların özelliklerini tanımlama

tanımlayıcıların tanımı

16. Mantıksal veri modelinin kalitesini değerlendirmek için kriterler. İlişkisel veri modeline geçiş (6 kural)

Mantıksal bir veri modelinin kalitesini değerlendirmek için kriterler

Etki alanı veritabanının yeterliliği
Veritabanı konu alanını yeterince yansıtmalıdır. Bu, aşağıdaki koşulların karşılanması gerektiği anlamına gelir:
1. Veritabanının her an durumu, konu alanının durumuna karşılık gelmelidir.
2. Konu alanının durumundaki bir değişiklik, veritabanının durumunda ilgili bir değişikliğe yol açmalıdır.
3. Etki alanı modeline yansıyan etki alanının sınırlamaları, bir şekilde yansıtılmalı ve veritabanı tarafından dikkate alınmalıdır.
Veritabanı geliştirme ve bakım kolaylığı
Tamamen temel olanlar dışında hemen hemen her veritabanı, tetikleyiciler ve saklı prosedürler biçiminde belirli miktarda program kodu içerir.
Saklı prosedürler, derlenmiş biçimde doğrudan veritabanında depolanan ve veritabanıyla çalışan kullanıcılar veya uygulamalar tarafından çalıştırılabilen prosedürler ve işlevlerdir.
Tetikleyiciler, veritabanı çalışırken meydana gelen belirli olaylarla ilişkili saklı prosedürlerdir. Bu tür olaylar, tablo satırlarının eklenmesi, güncellenmesi ve silinmesi işlemleridir. Veritabanında bir tetikleyici tanımlanırsa, bu tetikleyicinin ilişkilendirildiği bir olay meydana geldiğinde otomatik olarak başlatılır.
Veri güncelleme işlemlerinin hızı (ekleme, güncelleme, silme)
Mantıksal modelleme düzeyinde, ilişkisel ilişkileri ve bu ilişkilerin niteliklerini tanımlarız. Bu seviyede herhangi bir fiziksel depolama yapısı (indeksler, hashing vb.) tanımlayamıyoruz. Kontrol edebileceğimiz tek şey, niteliklerin çeşitli ilişkiler üzerindeki dağılımıdır. Çok sayıda öznitelik içeren birkaç ilişkiyi veya her biri birkaç öznitelik içeren birçok ilişkiyi tanımlayabilirsiniz. Bu nedenle, şu soruyu cevaplamaya çalışmak gerekir - bir ilişkideki ilişki sayısı ve öznitelik sayısı veri güncelleme işlemlerinin hızını etkiler mi? Böyle bir soru elbette yeterince doğru değil, çünkü veritabanı işlemlerinin hızı, büyük ölçüde veritabanının fiziksel uygulamasına bağlıdır. Yine de, fiziksel modellemeye aynı yaklaşımlarla bu etkiyi niteliksel olarak değerlendirmeye çalışacağız.
Bu nedenle, mantıksal modelleme sırasında geliştirilen ilişkiler ne kadar çok özniteliğe sahip olursa, veri güncelleme işlemlerinin o kadar yavaş olacağı ve daha fazla indeksin yeniden oluşturulması için gereken zaman pahasına olacağı varsayılabilir.
Veri getirme hızı
Veritabanının amaçlarından biri kullanıcılara bilgi sağlamaktır. Bilgi, SQL - SELECT deyimi kullanılarak ilişkisel bir veritabanından alınır. En pahalı SELECT işlemlerinden biri tablo birleştirme işlemidir. Bu nedenle, mantıksal modelleme sırasında ne kadar çok bağlantılı ilişkiler oluşturulursa, bu ilişkilerin sorgular yürütülürken bağlanma olasılığı o kadar yüksek olur ve bu nedenle sorgular o kadar yavaş olur. Bu nedenle, ilişki sayısındaki artış, özellikle sorgular önceden bilinmiyorsa, veri getirme işlemlerinin yürütülmesinde yavaşlamaya neden olur.

Çünkü ilişkisel veri modelinde, ilişkiler arasında yalnızca bire çok ilişkiler desteklenir ve ER modelinde çoktan çoğa ilişkilere izin verilir, bu durumda, ilişkiye özgü olmayan çoklu ilişkileri yansıtacak özel bir dönüşüm mekanizmasına ihtiyaç duyulur. kategorileri için geçerli olmayanları kullanan ilişkisel model. Mantıksal modeller, ilişkisel veritabanları oluşturmak için, ayrıştırma yöntemini kullanarak, "veritabanı ilişkilerinde ER diyagramlarını dönüştürmek için kurallar" olarak adlandırılan bir dizi kural formüle edilmiştir. Kurallar, DB ilişkilerinin şemalarını normal biçimlere getirmenize izin verir. Varlıklar arasındaki ilişkinin derecesi belirlenirse, birkaç alternatif incelenerek ve alan kuralları açısından en uygun olan seçenek seçilerek bir ön ilişki elde edilebilir. İlişkiyi ve varlığın sınıfını temsil etmek için alternatif seçeneklerden birini seçmek için tanımlayıcı kriterler.

Kural 1. eğer derece ikili iletişim 1: 1 ve her iki varlığın da mülkiyet sınıfı gereklidir, bu durumda yalnızca bir ilişki gereklidir. nerede ilişkinin birincil anahtarı herhangi bir varlığın anahtarı olabilir.

Kural 2... eğer derece ikili iletişim 1: 1 ve bir varlığın aitlik sınıfı zorunludur ve diğer varlık isteğe bağlıdır, o zaman her varlık için bir tane olmak üzere iki ilişki kurmak gerekir. Bu durumda, her ilişkinin birincil anahtarı, kendi varlığının anahtarıdır ve isteğe bağlı bir aitlik sınıfına sahip varlığın anahtarı, nitelik olarak gerekli aitlik sınıfına sahip bir varlık için ilişkiye eklenir (anahtar geçişi) .

Kural 3... eğer derece ikili iletişim 1: 1 ve her iki varlığın mülkiyet sınıfı isteğe bağlıdır, o zaman üç ilişki gerekir - her varlık için bir tane ve bağlantı ilişkisi için bir tane. Bu durumda, her varlığın anahtarı, karşılık gelen ilişkinin birincil anahtarıdır ve birincil anahtar varlıkların anahtarlarından oluşan ilişki için bir ilişkidir.

Kural 4... eğer derece ikili iletişim 1: N ve n bağlantılı bir varlığın üyelik sınıfı gereklidir, o zaman her varlık için bir tane olmak üzere iki ilişki kurmak yeterlidir. Bu durumda, her varlığın anahtarı, karşılık gelen ilişkinin birincil anahtarıdır ve 1-bağlı varlığın anahtarı, bir öznitelik olarak n ile ilgili varlığın ilişkisine eklenir.

Kural 5. eğer derece ikili iletişim 1: N ve n bağlantılı bir varlığın üyelik sınıfı isteğe bağlıdır, o zaman her varlık için bir tane olmak üzere üç ilişki kurulmalıdır. Bu durumda, her varlığın anahtarı, karşılık gelen ilişkinin birincil anahtarı ve ilişki için bir ilişkidir. Varlık anahtarları, son ilişkinin öznitelikleri olmalıdır.

Not eğer derece ikili iletişim 1: N, o zaman kurallardan birinin (kural 4, 5) seçimini belirleyen faktör, n bağlantılı varlığın üyelik sınıfıdır. 1 bağlantılı bir varlığın üyelik sınıfı, ayrıştırmanın nihai sonucunu etkilemez. Kural 4 durumunda Konu özniteliği için boş değerler sorunu, kural 5 durumunda Özne ve Öğretmen öznitelikleri için boş değerler sorunu vardır. Bu nedenle, kural 4 ve 5 durumunda tekrarlama ve sıfır değerlerinden kaçınmak için sırasıyla iki ve üç sonuç ilişkisi kurmak gerekir. 1 bağlantılı bir varlığın anahtar geçişi, birleştirme sırasında orijinal ilişkiyi geri yüklemek için gerçekleştirilir.

eğer derece ikili iletişim N: M, o zaman tekrardan ve boş değerlerden kaçınmak için her zaman üç ilişki kurmalısınız. Altıncı kuralı formüle edelim.

Kural 6... eğer derece ikili iletişim M: H, o zaman üç ilişki kurmanız gerekiyor - her varlık için bir tane ve ilişki için bir tane ilişki. Bu durumda, her varlığın anahtarı, karşılık gelen ilişkinin birincil anahtarıdır ve bileşikte yer alır. ilişkinin birincil anahtarı iletişim için.

17. İlişkisel veri modellerinde bütünlüğü koruma ilkeleri. Yapısal bütünlük. Sıfır değer sorunu.

Bütünlük, veritabanında saklanan etki alanının bilgi modelinin gerçek dünyadaki nesnelere ve bunların her anki ilişkilerine uygunluğu olarak anlaşılır. Oluşturulan model için önemli olan konu alanındaki herhangi bir değişiklik veri tabanına yansıtılmalı ve aynı zamanda bilgi modelinin konu alanı açısından açık bir yorumu korunmalıdır. Bilgi modelinde yalnızca etki alanındaki önemli veya önemli değişiklikler izlenmelidir. Aslında, model her zaman gerçek bir nesnenin basitleştirilmesini temsil eder, modelde sadece belirli bir dizi problemi çözmek için bizim için önemli olanı yansıtırız. Veri modeli, tutarlı bir bilgi değişikliği ile ilişkili tutarlı eylemlerin veritabanında dinamik izleme sağlamamıza olanak sağlayacak araçlar ve yöntemler sağlamalıdır.

Klasik anlamda ilişkisel veri modelinde bütünlük desteği 3 yönü içerir.

Birincisi, ilişkisel bir VTYS'nin yalnızca "ilişkisel ilişki" türündeki homojen veri yapılarıyla çalışmaya izin vermesi gerektiği şeklinde yorumlanan yapısal bütünlük desteğidir. Bu durumda, "ilişkisel ilişki" kavramı, ilişkisel bir veritabanının klasik teorisinde kendisine uygulanan tüm kısıtlamaları karşılamalıdır (sırasıyla yinelenen demetlerin yokluğu, bir birincil anahtarın zorunlu varlığı, kavramın yokluğu). demetlerin sıralanması). Yapısal bütünlüğün yanı sıra tanımsız Null değerler sorununu da göz önünde bulundurmak gerekir. Daha önce belirtildiği gibi, tanımsız bir değer, ilişkisel modelde şu anda bilinmeyen bir değer olarak yorumlanır. Herhangi bir zamanda ek bilgiler göründüğünde, bu değer belirli bir değerle değiştirilebilir. Boş değerleri karşılaştırırken standart karşılaştırma kuralları uygulanmaz: bir boş değer hiçbir zaman başka bir boş değere eşit kabul edilmez. Bazı özniteliklerin değerinin tanımsız olana eşitliğini belirlemek için özel standart yüklemler kullanılır:

<имя атрибута>NULL ve<имя атрибута>NULL DEĞİLDİR.

Belirli bir tanımlama grubunda (bu satırda) belirtilen özniteliğin tanımsız bir değeri varsa, IS NULL yüklemi TRUE ve IS NOT NULL yüklemi FALSE, aksi takdirde IS NULL yüklemi FALSE ve IS NOT NULL yüklemi NS. Null değerlerin korunması, klasik iki değerli mantığın değiştirilmesini ve üç değerli mantığa dönüştürülmesini gerekli kılmıştır. Tanımsız değerlerle gerçekleştirilen tüm mantıksal işlemler, belirtilen doğruluk tablosuna göre bu mantığa uyar.

Tablo 8.1 Tanımsız değerlere sahip mantıksal işlemler için doğruluk tablosu

A V bir değil A & B A ve B
NS NS YANLIŞ NS NS
NS YANLIŞ YANLIŞ YANLIŞ NS
NS Boş YANLIŞ Boş NS
YANLIŞ NS NS YANLIŞ NS
YANLIŞ YANLIŞ NS YANLIŞ YANLIŞ
YANLIŞ Boş NS YANLIŞ Boş
Boş NS Boş Boş NS
Boş YANLIŞ Boş YANLIŞ Boş
Boş Boş Boş Boş Boş

SQL2 standardında, özelliklerin yalnızca belirli değerlerini tanımsız bir değerle karşılaştırmak değil, aynı zamanda mantıksal ifadelerin sonuçlarını tanımsız bir değerle karşılaştırmak mümkün hale geldi; bunun için özel bir UNKNOWN boole sabiti tanıtıldı. Bu durumda karşılaştırma işlemi şöyle görünür:

Boole ifadesi> IS (DOĞRU | YANLIŞ | BİLİNMİYOR)

18. İlişkisel veri modellerinde bütünlüğü koruma ilkeleri. Dil bütünlüğü. Bilgi tutarlılığı. (17. sorunun devamı)

ikinci olarak, bu dil bütünlüğü desteğidir; bu, ilişkisel bir DBMS'nin verileri en azından SQL standardını tanımlamak ve işlemek için diller sağlaması gerektiği anlamına gelir. Standarda uymayan diğer düşük seviyeli veri işleme araçları mevcut olmamalıdır. Bu nedenle veritabanında saklanan bilgilere erişim ve bu bilgilerde yapılacak herhangi bir değişiklik ancak SQL deyimleri kullanılarak gerçekleştirilebilir.

Üçüncüsü, bu, referans bütünlüğünün (Bildirimsel Referans Bütünlüğü, DRI) desteğidir, birbiriyle ilişkili ilişkilerin tuple örnekleri arasındaki ilişkinin belirtilen ilkelerinden birinin sağlanması anlamına gelir:

  • Alt ilişkinin demetleri, onlarla ilişkili ana ilişkinin demeti silindiğinde yok edilir.
  • ana ilişkinin demetleri, kendileriyle ilişkili ana ilişkinin demeti silindiğinde değiştirilir ve üst ilişkinin anahtarının yerine tanımsız bir Null değeri konur.

Referans bütünlüğü, ekleme veya silme işlemleri gerçekleştirilirken veri değişikliği sırasında veritabanının tutarlı bir durum sürdürmesini sağlar.

19. Anlamsal bütünlük desteği. Bildirimsel bütünlük kısıtlamaları türleri

Genel olarak veritabanının anlamını tanımlamayan belirtilen bütünlük kısıtlamalarına ek olarak, veritabanının içeriğiyle ilişkilendirilen anlamsal bütünlük desteği kavramı tanıtılır. Anlamsal bütünlük desteğinin ilkeleri, tam olarak aşağıdaki koşulların otomatik olarak yerine getirilmesini sağlamayı mümkün kılan şeydir:

  1. Kütüphanenin en az 17 yaşında olan okuyucuları olmalıdır.
  2. Kütüphane 1960'dan bu yıla kadar yayınlanmış kitapları içermektedir.
  3. Her okuyucu en fazla 5 kitap tutabilir.
  4. Kütüphaneye kaydolurken, her okuyucu iletişim için bir telefon numarası vermelidir: iş veya ev olabilir.

Anlamsal destek iki şekilde sağlanabilir: bildirimsel ve prosedürel. Bildirim yolu, çoğunlukla "İş Kuralları" veya bildirime dayalı bütünlük kısıtlamaları olarak adlandırılan, bildirime dayalı olarak belirlenmiş bir dizi kısıtlama kuralının doğrulanmasını ve uygulanmasını sağlayan DBMS içindeki mekanizmaların varlığı ile ilişkilidir.

Aşağıdaki bildirimsel bütünlük kısıtlamaları türleri ayırt edilir:

§ Bir öznitelik için bütünlük kısıtlamaları: varsayılan değer, zorunlu veya isteğe bağlı değerlerin ayarlanması (Boş), öznitelik değerlerinde koşulların ayarlanması.

§ Etki alanı yapısı tarafından desteklenen, etki alanı düzeyinde ayarlanan bütünlük kısıtlamaları.

§ İlişki düzeyinde ayarlanan bütünlük kısıtlamaları. Bazı anlamsal kurallar, yalnızca bir sütuna uygulanan ifadelere çevrilemez.

§ İlişkiler arasındaki iletişim düzeyinde belirlenen bütünlük kısıtlamaları: iletişim yükümlülüğünün belirlenmesi, basamaklı silme ve basamaklı veri değişiklikleri ilkeleri, iletişim gücü üzerindeki kısıtlamalar için destek belirlenmesi. Bu tür kısıtlamalar, birbiriyle ilişkili ilişkilerde yabancı anahtar değerlerin gerekli olup olmadığı belirtilerek ifade edilebilir.

Bildirimsel bütünlük kısıtlamaları, hemen doğrulanabilen kısıtlamalara atıfta bulunur. Ertelenen bütünlük kısıtlamaları vardır. Bu bütünlük kısıtlamaları, işlem ve tetik mekanizması tarafından desteklenir.

20. İşlemler. Tetikleyiciler ve Saklı Prosedürler.

İşlem tek bir bütün (tümü ya da hiçbiri) olarak yürütülen ve bir veritabanını bir tutarlı durumdan başka bir tutarlı duruma taşıyan bir veri işleme ifadeleri dizisidir.

Bir işlemin, özellikler olarak bilinen dört önemli özelliği vardır. A LED:

(A) Atomiklik. Bir işlem atomik bir işlem olarak yürütülür - ya tüm işlem yürütülür ya da tamamen yürütülmez.

(C) Tutarlılık. Bir işlem, bir veritabanını bir tutarlı (tutarlı) durumdan başka bir tutarlı (tutarlı) duruma taşır. Bir işlemde, veritabanı tutarlılığı ihlal edilebilir.

(I) Yalıtım. Farklı kullanıcıların işlemleri birbirine müdahale etmemelidir (örneğin, kesinlikle sırayla yürütülmüş gibi).

(E) Dayanıklılık.İşlem tamamlandıysa, bir sonraki anda sistem çökse bile, çalışmasının sonuçları veritabanına kaydedilmelidir.

Bir dizi ilkel

- BEGIN_TRANSACTION; sınırlar

- END_TRANSACTION; işlemler

- ABORT_TRANSACTION;

- YAZI YAZMAK.

İşlem genellikle kullanıcının DBMS'ye bağlandığı andan itibaren otomatik olarak başlar ve aşağıdaki olaylardan biri gerçekleşene kadar devam eder:

Verilen komut İŞLEM BAŞLAYIN;

Verilen komut ABORT_TRANSACTION(geri alma işlemi);

Kullanıcının DBMS ile bağlantısı kesildi;

Sistemde bir arıza vardı.

Tetiklemek tablo veya görünüme bir satır eklendiğinde (tetikleyici ekle), değiştirildiğinde (güncelleme tetikleyicisi) veya silindiğinde (tetikleyiciyi sil) tablo veya görünüme otomatik olarak dahil edilen, bir tablo veya görünümle ilişkili veritabanında depolanan ayrı bir alt yordamdır.

Tetikleyiciler şunları yapmanızı sağlar:

Girdi verilerini kontrol edin, bilgilerin doğruluğunu ve mantıksal tutarlılığını sağlayın.

Mantıksal veri tutarlılığını sağlamak için birden çok tabloda eşzamanlı değişiklikler gerçekleştirin.

Tablolardaki değişikliklerin otomatik olarak kaydedilmesini sağlayın. Uygulama, bir tablo her değiştirildiğinde tetiklenen tetikleyicileri kullanarak tam bir değişiklik günlüğü tutabilir.

Tetikleyiciler tarafından oluşturulan olayları kullanarak veritabanındaki değişiklikleri otomatik olarak bildirin.

Uygulama yazılımının bağımsızlığını artırın. Tetikleyicideki kontrol şemasındaki değişiklikler, herhangi bir değişiklik yapılması gerekmeden tüm uygulamalara otomatik olarak yansıtılır.

Saklı yordam- DBMS sunucusunda depolanan ve yürütülen ayrı bir alt program. Giriş parametrelerini alabilir ve kendisini çağıran istemci uygulamalarına değerler döndürebilir. Saklı yordamlar, tek kayıtları ve birden çok kaydı işleyebilir ve döndürebilir.

Tetikleyiciler ve saklı yordamlar için SQL, birçok zorunlu programlama ifadesi içerir:

Dizi birleştirme,

Aritmetik işlemler,

Karşılaştırma işlemleri,

Mantıksal (değil, ve, veya),

Yapılandırılmış programlama operatörleri (IF, FOR, WHILE),

Değişken bildirimi (DECLARE),

Bu ifadeler, bildirime dayalı programlama ifadeleri INSERT, UPDATE, DELETE ve SELECT ile birlikte kullanılır.

Modern DBMS'de, saklı yordamların ve tetikleyicilerin kodu, örneğin Oracle'da - PL / SQL veya Java'da SQL lehçeleri ve üst düzey dillerin bir karışımında yazılabilir. Aslında, bildirimsel bir dilde yazılmış sorgular, zorunlu bir dilde yazılmış prosedürlerde iç içedir.

Rusya Federasyonu Eğitim Bakanlığı Tacikistan Cumhuriyeti Eğitim Bakanlığı

Rus-Tacik (Slav) Üniversitesi

Bölüm "Ben ve IS"

ders çalışması

disipline göre: Veri tabanı

konuyla ilgili: İlişkisel veri modeli

Duşanbe - 2008


Plan

Tanıtım

1 Veri modeli

2 İlişkisel veri modelinin temel kavramları

3 Veri modelinin genel olarak anlaşılması

Çözüm

bibliyografya


Tanıtım

İnsanlık hızla onun için temelde yeni bir bilgi çağına giriyor. İnsanların yaşam biçiminin tüm bileşenleri önemli ölçüde değişir. Modern toplumda, bilgi düzeyi, devletin gelişme düzeyini karakterize eder. Uzmanlar XXI yüzyılın başlangıcını bilgisayar teknolojisi yüzyılı olarak adlandırıyor. Devrimci etkileri, sivil toplumun devlet yapıları ve kurumları, ekonomik ve sosyal alanlar, bilim ve eğitim, kültür ve insanların yaşam tarzı ile ilgilidir. Pek çok gelişmiş ve gelişmekte olan ülke, bilgi ve iletişim teknolojilerinin gelişmesi ve yaygınlaşmasıyla birlikte gelen muazzam faydaların tam olarak farkına varmıştır. Bilgi toplumuna doğru hareketin insan uygarlığının geleceğine giden yol olduğundan hiç kimse şüphe duymaz.

İlişkisel modele göre, bir veritabanı, üzerinde işlemlerin yapılabileceği, ilişkisel cebir ve ilişkisel analiz açısından formüle edilmiş bir dizi tablo olarak temsil edilir. İlişkisel modelde, veritabanı nesneleri üzerindeki işlemler, doğası gereği küme-teoriktir. İlişkisel veri modeli kavramları, veritabanı sistemleri alanındaki ünlü uzmanın adı E. Codd ile ilişkilendirilir. Bu nedenle ilişkisel veri modeline genellikle Codd modeli denir.

Herhangi bir veritabanının çekirdeği veri modelidir. Bir veri modeli, bir dizi veri yapısı, bütünlük kısıtlamaları ve veri işleme operasyonlarıdır. Bir veri modeli yardımıyla, etki alanının nesneleri ve aralarındaki ilişkiler gösterilebilir.


1 Veri örneği

Veri örneği- bir dizi veri yapısı ve bunların işleme işlemleri.

Veri modelleri tanımlanır:

a) verilerin nasıl düzenlendiği.

b) verilerin değerini sınırlamak.

c) veri işlemleri.

DBMS, hiyerarşik, ağ veya ilişkisel bir modelin kullanımına, bu modellerin bir kombinasyonuna veya bunların bir alt kümesine dayanmaktadır.

3 ana veri modeli türüne bakalım: hiyerarşik, ağ ve ilişkisel.

Hiyerarşik veri modeli

a) Hiyerarşik yapı, belirli kurallara göre birbirine bağlı bir dizi öğedir. Hiyerarşik ilişkilerle bağlanan nesneler, görünümü Şekil 1'de gösterilen yönlendirilmiş bir grafik (ters çevrilmiş ağaç) oluşturur.

1. Seviye

В1 В2 В3 В4 В5 Düzey 2

C1 C2 C3 C4 C5 C6 C7 C8 Seviye 3

Pirinç. 1

Hiyerarşik yapının temel kavramları şunları içerir: seviye, eleman (düğüm), bağlantı.

Düğüm Bazı nesneleri tanımlayan veri öznitelikleri topluluğudur. Hiyerarşik bir ağacın diyagramında düğümler, bir grafiğin köşeleri ile temsil edilir. Alt düzeydeki her düğüm, daha yüksek düzeydeki yalnızca bir düğümle ilişkilendirilir. Hiyerarşik bir ağacın yalnızca bir tepe noktası (ağacın kökü) vardır, başka bir tepe noktasına bağlı değildir ve en yüksek (birinci) seviyede bulunur. Bağımlı (alt) düğümler ikinci, üçüncü vb. seviyeler. Veritabanlarındaki ağaç sayısı kök kayıt sayısına göre belirlenir. Her biri ikinci, üçüncü zirvede bulunur ve en üst (birinci) seviyede bulunur. eşit olarak. Veritabanı kayıtları, kök kayıttan yalnızca 1 hiyerarşik yol vardır. Örneğin, Şekil 1'de görüldüğü gibi, C4 kaydı için yol, A ve B3 kayıtlarından geçer.

Şekil 2'de sunulan örnek, hiyerarşik bir veritabanı modelinin kullanımını göstermektedir. İncelenen örnek için hiyerarşik yapı meşrudur, çünkü her öğrenci, belirli (sadece bir) kuruma ait olan belirli (sadece bir) grupta çalışır.

B) Bütünlük kısıtlaması- Temel kural göz önünde bulundurularak, ata ile torun arasındaki bağların bütünlüğü: ata olmadan hiçbir torun var olamaz.

Örnekleri : 1) OKA 3) TOPLAM

2) INES 4) IMS

c) Verilerle ilgili işlemler:

Belirtilen ağacı bulun.

Bir ağaçtan diğerine geçin.

Bir kayıttan diğerine geçme.

Hiyerarşiyi geçme sırasına göre bir kayıttan diğerine geçin.

Geçerli kaydı silin.


Enstitü (uzmanlık, isim, rektör)


Pirinç. 3 Veritabanının grafik şeklinde ağ yapısı

Öğrenci ( kayıt defteri numarası, soyadı, grup)



Çalışmak ( şifre ,

süpervizör,

Pirinç. 4.

Karmaşık ağ yapısına bir örnek, araştırma çalışmasına (Ar-Ge) katılan öğrenciler hakkında bilgi içeren bir veri tabanının yapısıdır. Bir öğrencinin birden fazla araştırma projesine katılması ve aynı zamanda bir araştırma projesinin geliştirilmesine birden çok öğrencinin katılması mümkündür. Örnekte açıklanan ve yalnızca iki kayıt türünden oluşan ağ yapısının grafiksel bir gösterimi Şekil 4'te gösterilmektedir. Tek ilişki, her iki yöndeki kayıtlar arasındaki karmaşık bir ilişkidir.

c) Ağ veri modelinin verilerine ilişkin işlemler:

Aynı türdeki bir dizi kayıtta belirli bir kaydı bulun.

Bazı bağlantılar boyunca üst düzey düğümden ilk alt düzey düğüme gidin.

Bazı bağlantılarda bir sonraki düğüme gidin.

Yeni bir giriş oluşturun.

Girişi yok et.

Girişi değiştirin.

1 bağlantı ekleyin.

İletişimden hariç tutun.

Başka bir bağlantıya yeniden düzenleyin.

Ağ veri modelinin özelliği: veri bağlantıları arasında gezinme yeteneği, yani. bir kayıt türünün bir örneğinin ayrıntılarını görüntülemekten, kayıt türüyle ilişkili bir örneğin ayrıntılarını görüntülemeye geçiş. Kullanıcıya, DBMS'de yerleşik dilde sorguların oluşturulması yoluyla bilgi ihtiyaçlarının doğrudan resmileştirilmesine gerek kalmadan veritabanının çok kriterli analizi imkanı verilir.

Ağ veri modelinin bir başka gücü, nesne bilgisinin niteliklerini tanımlamak için çoklu veri türlerinin kullanılmasıdır. Bu, tablo şeklinde bir veri biçimini temsil eden bilgi yapıları oluşturmanıza izin verir.Ağ veri modelinin geliştirilmesine rağmen, uygulanan bilgi sistemlerinde bir ağın verilerini tanımlamasına izin verecek, bunlara dayalı dil yazılımı oluşturmak mümkün değildi. organizasyon da aynı şekilde.

İlişkisel veri modeli.

İlişkisel (İngilizce ilişki - ilişki) kavramı, ünlü Amerikalı uzmanın veritabanı sistemleri E. Codd alanındaki gelişimi ile ilişkilidir.

2 İlişkisel veri modelinin temel kavramları

İlişkisel bir veri modeli, bilgiyi ilişkiler veya ilişkiler adı verilen ilgili tabloların bir koleksiyonu olarak temsil eder.

Veri tipi- algoritmik dillerdeki veri türü kavramına eşdeğerdir. Mevcut:

Tamsayı türleri;

Gerçek türleri;

Dize türleri;

Parasal değerler için veri türleri;

Geçici değerler için veri türleri;

İkili nesne türleri (programlama dillerinde analogları yoktur ve Blob ile gösterilir)

İlişkisel bir modeldeki en küçük veri birimi, belirli bir model için ayrı bir atomik (birleştirilemez) veri değeridir. İhtisas aynı türden bir dizi atomik değerdir. Başka bir deyişle, bir etki alanı, belirli bir türdeki geçerli bir potansiyel değer kümesidir.Alan kavramı, bir dizi programlama dilinde bulunan aralık türleri ve kümelerle bazı analojileri olmasına rağmen, veritabanlarına daha özgüdür. En genel haliyle, bir etki alanı, etki alanının öğelerinin ait olduğu bazı temel veri türleri belirtilerek tanımlanır ve veri türünün öğesine rastgele bir mantıksal ifade uygulanır. Bu mantıksal ifade doğru olarak değerlendirilirse, veri öğesi bir etki alanı öğesidir.

Alan kavramının anlamsal yüküne de dikkat edilmelidir: veriler yalnızca aynı alana atıfta bulunuyorlarsa karşılaştırılabilir olarak kabul edilir. İki özelliğin değerleri farklı alanlardan alınırsa, bunların karşılaştırılması muhtemelen anlamsızdır. Etki alanı kavramı tüm VTYS'lerde kullanılmaz. Etki alanlarını kullanan ilişkisel veritabanlarının örnekleri arasında Ogasle ve InterBase bulunur.

Nitelikler, ilişki şeması, veritabanı şeması

Bir ilişkinin sütunlarına nitelikler denir ve bunlar adlandırılır ve ardından bunlara erişilir.

Etki alanı adları (veya etki alanları desteklenmiyorsa türler) içeren ilişki öznitelik adlarının listesine ilişki şeması denir.

Bir ilişkinin derecesi, niteliklerinin sayısıdır. Birinci derecenin ilişkisine birli, ikinci derece - ikili, üçüncü derece - üçlü, ... ve derece n - n-ary denir.

Bir veritabanı şeması, bir dizi adlandırılmış ilişki şemasıdır.

demet

Belirli bir ilişki şemasına karşılık gelen bir tanımlama grubu, ilişki şemasına ait her bir öznitelik adının bir örneğini içeren bir çiftler kümesidir (öznitelik adı, değer). "Değer", bu öznitelik (veya etki alanı kavramı desteklenmiyorsa veri türü) için geçerli bir etki alanı değeridir. Böylece, bir demetin derecesi, yani içindeki elemanların sayısı, karşılık gelen ilişki şemasının derecesi ile örtüşür. Başka bir deyişle, bir demet, belirli bir türdeki adlandırılmış değerlerin bir koleksiyonudur. İlişki şemasına bazen ilişki başlığı da denir ve bir grup demet olarak ilişki, ilişki gövdesidir. Bir ilişki şeması kavramı, programlama dillerinde yapısal bir veri türü kavramını hatırlatır (C / C ++ 'da yapı, Pascal'da notasyon). Ancak ilişkisel veritabanlarında ilişkinin şema adı her zaman karşılık gelen örnek ilişkisinin adıyla aynıdır. Klasik ilişkisel veritabanlarında, veritabanı şeması tanımlandıktan sonra sadece örnek ilişkileri değiştirilir. İçlerinde yeni demetler görünebilir ve mevcut demetler silinebilir veya değiştirilebilir. Bununla birlikte, birçok uygulama, veritabanı şemasının değiştirilmesine de izin verir: yeni tanımlama ve mevcut ilişki şemalarını değiştirme. Bu genellikle veritabanı şemasının evrimi olarak adlandırılır.

İlişki Anahtarları

Matematiksel açıdan bir bağıntı bir küme olduğundan ve tanımları gereği kümeler çakışan öğeler içermediğinden, o zaman bir ilişkinin iki demeti herhangi bir zamanda herhangi bir keyfi anda birbirinin kopyası olamaz. Bu nedenle, bir ilişki her zaman ilişkinin her bir demetini benzersiz bir şekilde tanımlayan ve tablo satırlarının benzersizliğini sağlayan bir öznitelik (veya bir dizi öznitelik) içermelidir. Böyle bir öznitelik (veya öznitelikler kümesi), ilişkinin birincil anahtarı olarak adlandırılır.

Her ilişki için, en azından özniteliklerinin tam kümesi benzersizlik özelliğine sahiptir. Ancak asgari koşulun sağlanması da gereklidir. Bu nedenle, kural olarak, bir ilişkide her zaman benzersizlik özelliğine sahip olan ve birincil anahtar olan bir nitelik vardır.

Anahtarda bulunan özniteliklerin sayısına bağlı olarak, basit ve karmaşık (veya bileşik) anahtarlar ayırt edilir.

Basit bir anahtar, yalnızca bir öznitelik içeren bir anahtardır. Genel olarak, anahtar olarak mümkün olan en kısa ve en basit veri türü kullanıldığında birleştirme işlemleri daha hızlıdır. Bu açıdan, üzerinde mantıksal işlemler gerçekleştirmek için donanım desteğine sahip bir tamsayı türü en uygunudur.

Karmaşık veya bileşik anahtar - birkaç özellikten oluşan bir anahtar. Benzersiz ancak minimal olmayan bir dizi özelliğe süper anahtar denir. Süper anahtar, benzersiz bir tanımlayıcı olması gerekenden daha fazla sütun içeren karmaşık (bileşik) bir anahtardır. Fazlalık kullanıcı için yararlı olabileceğinden, bu tür anahtarlar pratikte sıklıkla kullanılır.

Birincil anahtar olan özniteliğin herhangi bir bilgi içerip içermediğine bağlı olarak yapay ve doğal anahtarlar arasında bir ayrım yapılır.

Yapay veya yedek anahtar, VTYS'nin kendisi veya bir kullanıcı tarafından bazı prosedürler kullanılarak oluşturulan ve kendisi bilgi içermeyen bir anahtardır. Belirli bir öğeyi benzersiz bir şekilde tanımlamak için bir varlığın tam olarak tanımlanması gerektiğinde benzersiz satır tanımlayıcıları oluşturmak için yapay bir anahtar kullanılır. Gerçek bir veritabanında kullanılamayacak kadar hantal olan anlamlı bir karmaşık anahtar yerine genellikle yapay bir anahtar kullanılır. Sistem yapay bir anahtarı destekler, ancak kullanıcıya hiçbir zaman gösterilmez.

Doğal anahtar, anlamlı nitelikler içeren ve dolayısıyla bilgi içeren bir anahtardır.

Birincil anahtar türlerinin her birinin avantajları ve dezavantajları vardır; çok sayıda yayın bunların tartışmasına ayrılmıştır. Bunların ayrıntılı bir karşılaştırmasını yapmayacağız, ancak her bir anahtar türünün yalnızca ana artılarını ve eksilerini not edeceğiz.

Doğal anahtarların başlıca avantajları, iyi tanımlanmış bilgiler taşımaları ve kullanımları, değerleri hiçbir anlam ifade etmeyen ve yalnızca ilişkiler arası iletişim için kullanılan tablolara nitelik ekleme ihtiyacına yol açmamasıdır. Başka bir deyişle, doğal anahtarların kullanılması, daha kompakt bir tablo biçimi (bunda gereksiz, bilgi vermeyen veri olmayacak) ve bunlar arasında daha doğal ilişkiler elde etmenizi sağlar.

Doğal anahtarların ana dezavantajı, konu alanının değişkenliği durumunda kullanımlarının çok zor olmasıdır. Birincil anahtar niteliklerinin değerlerinin değişmemesi gerektiğini anlayın. Yani, bir kez belirtildiğinde, bir tanımlama grubu için birincil anahtar değeri daha sonra değiştirilemez. Bu gereksinim esas olarak veritabanının bütünlüğünü korumak için yapılır. İlişkiler arasındaki ilişki genellikle kesin olarak birincil anahtar tarafından kurulur ve bunun değiştirilmesi bu ilişkilerin bozulmasına veya birkaç tablodaki kayıtları değiştirme ihtiyacına yol açacaktır. Nispeten basit veritabanlarında bile, bu bir dizi zorlu soruna neden olabilir. Bazı ilişkisel VTYS'ler birincil anahtarın değiştirilmesine izin verir. Bu bazen gerçekten yardımcı olabilir. Ancak, bu sadece kesinlikle gerekli olduğunda yapılmalıdır.

Bir varlık için değişmeyen bir doğal anahtar belirlemenin imkansız olduğu uçucu bir konu alanının tipik bir örneği, bir kişinin varlık olarak hareket ettiği herhangi bir alandır. Gerçekten de, bir insan için yaşamı boyunca benzersiz ve değişmeyecek bir dizi özellik tanımlamak imkansızdır.

Doğal anahtarların ikinci, oldukça önemli dezavantajı, kural olarak, benzersiz doğal anahtarların bileşik olması ve dize nitelikleri içermesidir. Yukarıda belirtildiği gibi, basit tamsayı tuşları kullanıldığında, veriler üzerinde işlem gerçekleştirmenin maksimum hızı sağlanır. Bu nedenle, sistem performansı açısından, doğal anahtarlar genellikle yetersizdir.

Doğal anahtarların her iki dezavantajı da, genellikle bir tamsayı türünden evrensel bir nitelik olan ve ne alana ne de tanımladığı ilişkinin yapısına bağlı olmayan ilişkilerde vekil anahtarlar tanımlanarak aşılabilir. Böylece anahtarın benzersizliğini ve değişmezliğini sağlamak mümkündür (konu alanına hiçbir şekilde bağlı olmadığı için asla değiştirmeye gerek olmayacaktır). Ancak bu, tablolardaki verilerde fazlalık pahasına gelir. İlişkisel VTYS'lerin birçok pratik uygulamasında, sorgular yürütülürken örtük olarak oluşturulan ara ilişkiler için tanımlama gruplarının benzersizlik özelliğinin ihlaline izin verildiğine dikkat edilmelidir. Bu tür ilişkiler kümeler değil, bazı durumlarda kişinin belirli avantajlar elde etmesine izin veren, ancak bazen ciddi sorunlara yol açan çoklu kümelerdir.

Tablolardan herhangi biri, anahtar olarak seçilebilecek birkaç nitelik kümesi içerebilir. Bu tür kümelere potansiyel veya alternatif anahtarlar denir.

Genellikle sözde ikincil anahtarlar bir ilişki içinde tanımlanır. İkincil anahtar, birincil anahtarı oluşturan bileşimden farklı bir öznitelik bileşimidir. Ayrıca, ikincil anahtarlar mutlaka benzersizlik özelliğine sahip değildir. Bunları tanımlarken aşağıdaki kısıtlamalar ayarlanabilir:

BENZERSİZ - benzersizlik kısıtlaması, bu kısıtlama altındaki ikincil anahtarların değerleri çoğaltılamaz;

NOTNULL — bu kısıtlamayla, ikincil anahtarda bulunan özniteliklerin hiçbiri NULL olamaz.

Çakışan anahtarlar, ortak bir veya daha fazla sütunu olan karmaşık anahtarlardır.

bağlantılı ilişkiler

İlişkisel bir modelde veriler, birbirine bağlı tabloların bir koleksiyonu olarak temsil edilir. Tablolar arasındaki bu ilişkiye rilationship denir. Dolayısıyla ilişkisel modelin bir diğer önemli kavramı da ilişkiler arasındaki ilişkidir.

İlgili tablolara bakıldığında yabancı anahtar kavramı önemlidir. Daha ayrıntılı olarak düşünelim.

Bir ilişkinin yabancı anahtarları

Veritabanları genellikle aynı öznitelik adlarını farklı şekillerde kullanır. Yabancı anahtar, başka bir (veya aynı) ilişkinin anahtarı olan bir ilişkinin özniteliğidir (veya öznitelikler kümesidir).

Yabancı anahtarlar, ilişkiler arasında mantıksal bağlantılar kurmak için kullanılır. Bir tablonun yabancı anahtar değerleri diğerinin anahtar değerlerine atanarak iki tablo arasındaki ilişki kurulur.

Diğer herhangi bir anahtar gibi, yabancı anahtarlar da basit veya bileşik olabilir.

İlişkiler genellikle bir birincil anahtarla bağlanır, yani bir ilişkinin yabancı anahtar değerlerine diğerinin birincil anahtarının değerleri atanır. Ancak bu gerekli değildir - genel olarak iletişim ikincil anahtarlar kullanılarak da kurulabilir. Ayrıca tablolar arasında ilişki kurarken, ilişkinin kurulduğu anahtarın benzersizliğini gerektirmek gerekli değildir. Yabancı anahtar nitelikleri, karşılık geldikleri anahtar niteliklerle aynı adlara sahip olmak zorunda değildir. Bir yabancı anahtar, ait olduğu tabloya da başvurabilir. Bu durumda, yabancı anahtar özyinelemeli olarak adlandırılır.

Veri bütünlüğü koşulları

Veritabanında saklanan bilgilerin açık ve tutarlı olması için ilişkisel model bazı kısıtlamalar getirir. Kısıtlamalar, verilerin olası değerlerini tanımlayan kurallardır. Veritabanında doğru veri değerlerini korumak için mantıklı bir temel sağlarlar. Bütünlük kısıtlamaları, verileri güncellerken ve işlerken oluşan hataları en aza indirmeye yardımcı olur.

· En önemli veri bütünlüğü kısıtlamaları şunlardır: kategorik bütünlük, referans bütünlüğü.

Kategorik bütünlüğün sınırlandırılması aşağıdaki gibidir. İlişkisel demetler, belirli gerçek dünya nesnelerinin veritabanı öğelerinde veya ilişkisel VTYS terminolojisinde kategorileri temsil eder. Bir tablonun birincil anahtarı, her bir demeti ve dolayısıyla kategorideki her bir öğeyi benzersiz şekilde tanımlar. Bu nedenle, bir tablo satırında bulunan verileri almak veya bu verileri işlemek için o satırın anahtar değerini bilmeniz gerekir. Bu nedenle, birincil anahtarının tüm öznitelikleri belirleninceye kadar veritabanına bir satır girilemez. Bu kurala kategorik bütünlük kuralı denir ve şu şekilde özetlenir: bir satırın hiçbir birincil anahtar özelliği boş olamaz.

İkinci koşul, başvuru bütünlüğü adı verilen yabancı anahtarlarda veri bütünlüğü kısıtlamalarını zorlar.

İki tablo birbiriyle ilişkiliyse, tablonun yabancı anahtarı yalnızca ilişkinin yürütüldüğü anahtarın değerleri arasında zaten var olan değerleri içermelidir. Yabancı anahtar değerlerinin doğruluğu DBMS tarafından kontrol edilmiyorsa, verilerin referans bütünlüğü ihlal edilebilir.Kategorik ve referans bütünlüğü kısıtlamaları DBMS tarafından desteklenmelidir. Varlığın bütünlüğünü korumak için, herhangi bir ilişkide aynı birincil anahtar değerine sahip hiçbir demetin bulunmadığından emin olmak yeterlidir. Bilgi bütünlüğü söz konusu olduğunda, bilgi bütünlüğünü zorlamak biraz daha zordur. Bir referans ilişkisini güncellerken (yeni tanımlama grupları ekleme veya mevcut tanımlama gruplarında yabancı anahtar değerini değiştirme), geçersiz yabancı anahtar değerleri almamaya dikkat etmeniz yeterlidir. Ancak başvurulan bir ilişkiden bir demeti silerken, her biri başvuru bütünlüğünü koruyan üç yaklaşımdan birini kullanmak mümkündür:

· İlk yaklaşım, referansları olan bir demetin silinmesinin yasak olmasıdır (yani, önce referans verilen demetleri silmeniz veya yabancı anahtarlarının değerlerini buna göre değiştirmeniz gerekir);

· İkinci yaklaşımda, başvurulan bir demet silinirken, başvurulan tüm demetlerdeki yabancı anahtar değeri otomatik olarak tanımsız hale gelir;

· Üçüncü yaklaşım (basamaklı silme olarak da adlandırılır), referans verilen bir ilişkiden bir tanımlama grubu silindiğinde, referans verilen tüm tanımlama grupları otomatik olarak referans verilen ilişkiden kaldırılır.

Gelişmiş ilişkisel veritabanlarında, genellikle her bir yabancı anahtar tanımı durumu için referans bütünlüğünün nasıl korunacağını seçebilirsiniz. Elbette böyle bir karar verebilmek için belirli bir uygulama alanının gereksinimlerini analiz etmek gerekir. Modern VTYS'lerin çoğu bilgi bütünlüğü sağlamasına rağmen, bilgi bütünlüğü kısıtlamalarını zorlamayan ilişkisel VTYS'ler olduğunu unutmayın.

Tablolar arasındaki ilişki türleri

İki tablo arasında bir bağlantı kurarken, bunlardan biri ana (ana) ve ikincisi - alt (detay) olacaktır. Aralarındaki fark biraz basit bir şekilde şu şekilde açıklanabilir. İçindeki tüm kayıtlar her zaman ana tabloda mevcuttur. Alt tabloda, yalnızca yabancı anahtar özniteliklerinin değerinin ana tablonun geçerli kaydının karşılık gelen özniteliklerinin değeriyle çakıştığı kayıtlar mevcuttur. Ayrıca, ana tablonun mevcut kaydının değiştirilmesi, alt tablonun mevcut kayıtlarının kümesini değiştirecek ve alt tablodaki mevcut kaydın değiştirilmesi, tabloların hiçbirinde herhangi bir değişikliğe neden olmayacaktır. Uygulamada, genellikle ikiden fazla tablo bağlantılıdır. Aynı tablo, bir tabloya göre ana, diğerine göre bağımlı olabilir. Veya bir ana tablonun bir değil, birkaç tablosu olabilir. Ancak, alt tablo iki tablo tarafından yönetilemez. Bu nedenle, bir ana tablonun birkaç astı olabilir, ancak bir alt tablonun yalnızca bir astı olabilir.

İlişkisel veritabanı tabloları arasında dört tür ilişki vardır:

· Bire bir - bir tablonun her kaydı, başka bir tablonun yalnızca bir kaydına karşılık gelir;

· Birden çoğa - ana tablonun bir kaydı, alt tablonun birkaç kaydına karşılık gelebilir;

· Çoktan bire - ana tablonun birkaç kaydı, alt tablonun aynı kaydına karşılık gelebilir;

· Çoktan çoğa - ana tablonun bir kaydı, alt tablonun birkaç kaydıyla ilişkilendirilir ve alt tablonun bir kaydı, ana tablonun birkaç kaydıyla ilişkilendirilir.

Bire çoğa ve çoktan çoğa ilişki türleri arasındaki fark, hangi tablonun ana, hangisinin bağımlı olarak seçildiğine bağlıdır.

İlişkilerin temel özellikleri

Şimdi ilişkisel veri modelindeki ilişkilerin en önemli özelliklerinden bazılarına bakalım.

3 Veri modelinin genel olarak anlaşılması

Bir veri modeli kavramını farklı şekillerde karakterize edebilirsiniz. Bir yandan, bir veri modeli, konu alanından izole edilmiş bir tür soyutlama olarak kabul edilen verileri yapılandırmanın bir yoludur. Öte yandan, bir veri modeli, alanın kavramsal modelini ve değişiminin dinamiklerini bir veritabanı biçiminde temsil eden bir araçtır.

Yukarıdaki her iki tarafı da göz önünde bulundurarak, alanın kavramsal modelini (varlıklar, nitelikler, ilişkiler) temsil etmek için kullanılan veri modellerinin temel yapılarını tanımlayacağız.

Veri öğesi(alan) adlandırılmış en küçük veri birimidir. Bir özniteliğin değerini temsil etmek için kullanılır.

Kayıt Adlandırılmış bir alan koleksiyonudur. Varlık özniteliklerinin (varlık kayıtları) bir koleksiyonunu temsil etmek için kullanılır.

Kayıt örneği- belirli alan değerlerine sahip bir kayıt.

Toplama- tek bir bütün olarak görüntülenebilen bir kayıt içindeki veri öğelerinin adlandırılmış bir koleksiyonu.

Dosya- aynı türdeki kayıt örneklerinin adlandırılmış bir kümesi. Homojen bir varlık kümesini temsil etmek için kullanılır.

Dosya kümesi- sistemde işlenen adlandırılmış bir dosya koleksiyonu. Birden çok varlık kümesini temsil etmek için kullanılır.

"Agrega" ve "kayıt" kavramlarını genelleştiren "grup" kavramını tanıtalım.

Grup Veri öğelerinin veya veri öğelerinin ve diğer grupların adlandırılmış bir koleksiyonudur.

Kavramsal modelin en önemli kavramı, varlıklar (varlıklar kümeleri) arasındaki ilişkiler kavramıdır. Veri modellerinde, karşılık gelen kavram "grup ilişkisi" kavramına yansıtılır.

Grup ilişkisi Söz konusu grupların iki örnek kümesinde tanımlanan adlandırılmış bir ikili ilişkidir. İkili bağların doğası gereği, 1: 1, 1: M, M: 1, M: N şeklindeki grup ilişkileri ayırt edilir. Sayı çiftlerine grup oranı katsayıları denir. Bir grup ilişkisinde, grubun bir üyesi ilişkinin sahibi ve diğer bir üye belirlenir.

Veri tabanı- grup örneklerinin ve grup ilişkilerinin adlandırılmış bir koleksiyonu.

Grup ilişkileri iki şekilde temsil edilir:

a) Graphova... Gruplar, grafiğin köşeleri ile temsil edilir, gruplar arasındaki bağlantılar, sahip gruptan üye grubuna yönlendirilen, ilişkinin adını ve katsayıyı gösteren yaylarla temsil edilir.

Grafik türleri ayırt edilir:

􀂃 hiyerarşik model (döngüsüz grafik - ağaç);

􀂃 ağ modeli (genel formun yönlendirilmiş grafiği).

B) tablo şeklinde... Gruplar arasındaki ilişki, sütunları karşılık gelen grupların anahtarlarını temsil eden bir tablo ile temsil edilir. Tablonun resmi bir açıklaması için, bir ilişkinin matematiksel (küme-teorik) kavramı kullanılır. Karşılık gelen veri modeline ilişkisel model denir.

Veri modeli şu şekilde açıklanmaktadır:

􀂃 mantıksal veri yapılarının türleri ve özellikleri tanımlanır

(alanlar, kayıtlar, dosyalar);

􀂃 daha basit tipteki yapılardan daha genel bir tür yapı oluşturma kurallarını açıklar;

􀂃 yapılar ve kuralları üzerindeki olası eylemleri açıklar

aşağıdakileri içeren infazlar:

- verilerle ilgili temel temel işlemler;

- genelleştirilmiş işlemler (prosedürler);

- veri girişinin nispeten basit doğruluk koşulları (kısıtlamalar) üzerinde kontrol araçları;

- belirli eylemlerin (kuralların) performansının doğruluğu için keyfi karmaşık koşulların kontrol araçları. Temel temel işlemler olarak genellikle aşağıdakiler dikkate alınır: belirli bir anahtar değerine sahip bir kaydı arama, gerekli kaydı okuma, kayıt ekleme, düzeltme, silme. Veri modelleri ayrıca grup ilişkileri kurmak için özel işlemler sağlar.

Genelleştirilmiş işlemler veya prosedürler - belirli bir veri işleme algoritmasını uygulayan bir işlem dizisi. Prosedürler VTYS tarafından otomatik olarak başlatılabileceği gibi kullanıcı tarafından da başlatılabilir. Prosedür örnekleri, bir veritabanını kopyalama, bir veritabanını geri yükleme prosedürleri, veritabanındaki belirli özniteliklerin değerlerini diğer özniteliklerin değerlerinden hesaplayan prosedürler vb.

Kavramsal modelin bütünlüğü üzerindeki kısıtlamaları zorlamak için kontroller kullanılır. En basit kısıtlama kontrolleri, hem kavramsal modelin dış kısıtlamalarını hem de veri modelinin dahili kısıtlamalarını zorlamak için kullanılır. Son kısıtlamalar olarak, özellikle, uygun olmayan tipte, uygun olmayan özelliklerde (bit sayısı, alan sayısı, kayıt sayısı vb. ile) veri girişi üzerinde kısıtlamalar uygulanır. Daha karmaşık kontroller (kurallar), veritabanına veri eklediğinizde veya değiştirdiğinizde belirli bir işlem dizisinin (ne kadar karmaşık olursa olsun) yürütülmesini tetiklemenize ve böylece özel yapılar kullanılarak açıklanan bütünlük kısıtlamalarını uygulamanıza izin verir.


Çözüm

Önceki bölümlerde ilişkisel veritabanlarının temel kavramlarından bahsettiğimizde, belirli bir uygulamaya dayanmadık. Bu akıl yürütme, ilişkisel bir yaklaşım kullanılarak oluşturulmuş herhangi bir sisteme eşit derecede uygulanabilirdi. Başka bir deyişle, sözde ilişkisel veri modeli kavramlarını kullandık. Veri modeli, bu modeli temel alıyorlarsa, tüm belirli VTYS ve yönettikleri veritabanlarının sahip olması gereken belirli bir dizi genel kavram ve özelliği tanımlar. Bir veri modeline sahip olmak, belirli uygulamaların tek bir ortak dil kullanılarak karşılaştırılmasına olanak tanır. Her ne kadar veri modeli kavramı genel olsa da hiyerarşik, ağ, bazı semantik vb. hakkında konuşabiliriz. veri modellerinde, bu kavramın ilişkisel sistemlerle ilgili olarak kullanıma sunulduğu ve bu bağlamda en etkili şekilde kullanıldığı belirtilmelidir. Benzer modelleri doğrudan ilişki öncesi kuruluşlara uygulama girişimleri, ilişkisel modelin onlar için çok "büyük" olduğunu, ancak ilişki sonrası kuruluşlar için "küçük" olduğunu göstermektedir.


bibliyografya

1. Ofisteki ve evdeki bilgisayarlar: İlişkisel veri tabanları: 2004. 228 s.

2. Michie D., Jonathon R. İlişkisel DBMS. 2004 8, sayfa 4

3. www.libbooks.ru (2006 - 2008. Bölüm: Veritabanı).

4. www.bankreferatov.ru (2004 - 2008. Bölüm: Veritabanı).

5. Jones E., Sutton D. Office 97./K.: Diyalektik, 1999.

6. Petrov V.N. Bilgi sistemleri: yüksek öğretim kurumlarının öğrencileri için bir ders kitabı, 2003. 2. baskı. s.139

ders 12

İlişkisel veri modeli.

Normalleştirme. Normal formlar.

Kavramsal bir veritabanı modelini ilişkisel bir veri modeline eşleyen teknoloji

1. İlişkisel veri modelinin temel kavramları

Önceki derste gösterildiği gibi, ilişkisel bir veri modeli tanımlamak için veri yapısını, bunları işlemenin bir yolunu ve bütünlük kısıtlamalarını bildirmeniz gerekir (slayt 2).

1.1. İlişkisel modelin yapısal bileşeni

Veri yapısı açısından, ilişkisel model, tablo şeklinde veri sunumunun uygun ve en tanıdık şeklidir. "Tablo" kavramı, "ilişki" (ilişki) kavramına karşılık gelir. Dolayısıyla modelin adı - ilişkisel. Yani, veri tabanlarıyla ilgili olarak, "ilişkisel veritabanı" ve "tabular veritabanı" kavramları esasen eşanlamlıdır. Hiyerarşik ve ağ modelinin aksine, bu temsil şekli

1) programcı olmayan bir kullanıcı için anlaşılabilir;

2) şemayı kolayca değiştirmenize olanak tanır - ilgili alt devreleri değiştirmeden yeni veri öğeleri ve kayıtları eklemek için;

3) Beklenmeyen talepleri işlemek için gerekli esnekliği sağlar.

Ek olarak, herhangi bir ağ veya hiyerarşik şema, iki boyutlu ilişkilerle temsil edilebilir.

İlişkisel modelin ana avantajlarından biri tek biçimli olmasıdır. Tüm veriler, her satırın aynı biçime sahip olduğu tablolarda depolanmış olarak kabul edilir. Tablodaki her satır, bazı gerçek dünya nesnelerini veya nesneler arasındaki ilişkiyi temsil eder. Modelin kullanıcısı, gerçek dünyanın karşılık gelen varlıklarının homojenliğe sahip olup olmadığına kendisi karar vermelidir. Bu, modelin amaçlanan uygulama için uygunluğu sorununu çözer.

İlişkisel modelin tanımlandığı temel kavramlar şunlardır: etki alanı, ilişki, demet, kardinalite, nitelikler, derece, birincil anahtar. Kavramların ilişkisi slaytta gösterilmiştir (slayt 3).

İhtisasBelirli bir ilişkinin karşılık gelen niteliklerinin değerlerinin alındığı bir değerler kümesidir. Programlama açısından etki alanı, sistem (standart) veya kullanıcı tarafından tanımlanan bir veri türüdür.

Birincil anahtarBenzersiz olan bir sütun veya sütunların bir alt kümesidir, ör. Satırlar benzersiz bir şekilde tanımlanır.Birden fazla sütun içeren bir birincil anahtara çoklu, birleşik veya bileşik denir. Nesne bütünlüğü kuralı, birincil anahtarın tamamen veya kısmen boş olamayacağını belirtir, yani. boş ol.

Birincil anahtar olarak da kullanılabilen anahtarların geri kalanına potansiyel veya alternatif anahtarlar.

Varlıklara birincil anahtar atamak için kuralları formüle edelim:

1) .Birincil anahtar benzersiz bir şekilde tanımlamak bir varlığın herhangi bir örneği.

2) Mümkün olduğunda, birincil anahtar en kompakt itibarentüm aday anahtarlar arasında birincil anahtar için en iyi veri türü bir tamsayıdır.

3) .Birincil anahtar bileşik olabilir, ancak sayıyı arttırıriçerdiği sütunlar, kompaktlık gerekliliği ile çelişmektedir. Kompaktlık şartı, örneğin şu durumlarda da karşılanamaz:birincil anahtar olarak dize niteliğini seçinuzun veri türü.

4). Birincil Anahtar Değerler sık değişikliklere tabi tutulmamalıdır.İdeal olarak, alanın iş mantığı, bu değerlerin hiç değişmemesi gerektiği şekildedir.

5). Birincil anahtar değişiklik kuralları kontrol edilmelidir dahili iş mantığı konu alanı ve bu çözümler değilonu devraldı. Örneğin, bunun için geliştirilmiş bir veritabanındaBir ÖĞRENCİ özü için dekanlığın ihtiyaçlarıPasaportun seri ve numarasını birincil anahtar olarak seçmemelisiniz.Öğrenci. Bu veriler prensipte bir yükümlülük niteliği taşımasına rağmenkimlik ve benzersizlik, ancak değişimleri öğrenci tarafından başlatılabilirohm, fakülte yönetimi tarafından değil.

5). Bir kuruluş hakkında toplanan bilgiler arasında yukarıda sıralanan gereksinimleri karşılayan verileri ayırmak mümkün değilse, nehiryaratma olasılığını düşünmeye teşvik ediliyorum. vekil birincil anahtar,herhangi bir anlamsal yük taşımadan sadece hizmet eden bir varlığın belirli bir örneğinin tanımlayıcısı. Tipik olarak, her türlü şey vekil birincil anahtar olarak seçilir.yeni kodlar veya tanımlayıcılar. Yedek anahtar genellikle ilişkisel bir veritabanının dış modelleme katmanı.

Harici anahtarBaşka bir tablo için birincil anahtar görevi görebilecek bir tablonun sütunu veya alt kümesidir. Harici anahtar tablo, başka bir tablonun birincil anahtarına bir başvurudur. Başvuru bütünlüğü kuralı, bir yabancı anahtarın boş olabileceğini veya başvurduğu birincil anahtarın değeriyle eşleşebileceğini belirtir. Yabancı anahtarlar, veritabanı tabloları arasındaki ilişkileri uyguladıkları için ilişkisel modelin ayrılmaz bir parçasıdır.

Birincil anahtar gibi bir yabancı anahtar da sütunların bir kombinasyonu olabilir. Pratikte, bir yabancı anahtar, başka bir tablodaki bileşik birincil anahtara atıfta bulunuyorsa, her zaman bileşik (çok sütunlu) olacaktır. Açıkçası, birincil ve yabancı anahtarlardaki sütun sayısı ve veri türleri aynıdır.

Bir tablo birden çok başka tabloyla ilişkiliyse, birden çok yabancı anahtara sahip olabilir.

İlişkisel modelin kavramları, teorik temellerin yazarları tarafından sunulan özel bir terminolojiyi temsil eder, ancak aynı zamanda, yazışmaları aşağıdaki tabloda gösterilen daha tanıdık analogları (ancak tüm eşdeğerleri değil!) slayt 4 ).

12.1.2. İlişkisel model yönetim bileşeni

Bir dizi ilişki biçiminde sunulan veriler üzerinde kabul edilebilir işlemler kümesi, ilişkisel cebir ile tanımlanır. İlişkisel veri işleme işlemlerine ek olarak, kontrol bileşeni bir veri tanımı içermelidir; görünümlerin tanımı; bütünlük koşulları; erişim haklarının belirlenmesi; işlem sınırları (başlangıç, bitiş ve iptal).

12.1.3. Veri bütünlüğü ( slayt 5)

Etki alanı düzeyinde bütünlük

İlişkisel teoride, bir ilişkinin niteliklerinin tüm değerlerinin atomik olduğu genel olarak kabul edilir. Bu, bir alan kavramının yorumlanmasından kaynaklanmaktadır. Bir etki alanı, belirli bir anlamı olan bazı veri türlerinin değerlerinin bir alt kümesi olarak düşünülebilir. İlişkisel model, kullanılan veri tiplerinin basit (skaler) yani içsel bir yapıya sahip olmamalarını gerektirir.

Bir etki alanı, veritabanı içinde benzersiz bir ada sahiptir, basit bir veri türünde veya başka bir etki alanında tanımlanır. Aslında ilişkisel veri modeli için kullanılan verinin türü önemli değildir. Veri türünün olmasını gerektiren basit,şekilde anlaşılmalıdır. ilişkisel işlemler dahili veri yapısını dikkate almamalıdır.

Alan adlarının temel amacı, karşılaştırmaları sınırlayın. Aynı türden olsalar bile, farklı alanlardaki değerleri karşılaştırmak mantıksal açıdan yanlıştır. Böylece, bir alan kavramı doğru bir şekilde yardımcı olur benzetmek konu alanı.

İlişki düzeyinde bütünlük

Potansiyel anahtarlar yalnızca demet düzeyinde adresleme araçları ilişkisi var. Yalnızca bir demetin potansiyel anahtarının değeri hakkında bilgi sahibi olmak, bu demeti doğru bir şekilde belirlemenize izin verir.

Anlamsal veri modelleme açısından, potansiyel anahtarlar tanımlama araçları etki alanı nesneleri - verileri bir ilişkide depolanan varlıkların örnekleri. Bu örneklerin tanım gereği ayırt edilebilir olması gerektiğinden, tanımlayıcıları bilinmeyen değerler içeremez.

Genellikle, bilinmeyen veya eksik verilerin mevcudiyeti durumu için, sözde tarafından artırılan veri türleri kullanılır.BOŞ-kirlenme.

BOŞ -değer, değerin bilinmediği bir tür işaretçidir. Kullanım sorunu BOŞ -ilişkisel veritabanı teorisindeki değerler kesin olarak çözülmemiştir. Modern ilişkisel VTYS'lerin hemen hemen tüm uygulamaları, BOŞ -değerler, yetersiz teorik geçerliliklerine rağmen.

Bütünlük Kuralı okur: her ilişki, kurucu özellikleri alınamayan en az bir aday anahtara sahip olmalıdır. boş - değerler. Bu potansiyel anahtarı, verilen ilişkiye karşılık gelen tablonun birincil anahtarı olarak ilan etmek en iyisidir.

Çoğu DBMS'nin birincil anahtarlar olmadan tablolar oluşturma yeteneğine sahip olduğuna dikkat edilmelidir. Ancak uygulamada ilişkilerin bütünlüğü kuralının ihlali hemen kendini hissettirir. Örneğin, bir DBMS için HANIM SQL sunucusu, teknolojiyi kullanarak verilere erişmek imkansız hale gelecek OLE DB Sağlayıcısı.

Yabancı Anahtar Bütünlüğü (DB Düzeyinde Bütünlük)

Bilgiler veritabanında saklanan konu alanının çeşitli nesneleri her zaman birbirine bağlıdır. İlişkiler arasındaki böyle bir ilişkinin en tipik yolu, bir yabancı anahtar kısıtlaması ile tanımlanır ( FK, Yabancı Anahtar).

Yabancı anahtar genellikle teklik özelliğine sahip değildir. Bu olması gerektiği gibidir, çünkü bir çocuk ilişkisinde, aslında bire çok ilişkiler arasındaki ilişki tipini veren, ebeveyn ilişkisinin aynı demetine atıfta bulunan birkaç demet olabilir. . Bu, standart referans bütünlüğü ilişkisidir. Yabancı anahtar hala benzersizlik özelliğine sahipse, ilişki arasındaki ilişki "bire bir" türündedir. .

Her bir yabancı anahtar değeri, ana ilişkinin bazı demetlerinde aday anahtar değerlerle eşleşmesi gerekse de, bunun tersi genellikle doğru değildir. Üst tablonun bağlantı alanı, herhangi bir yabancı anahtar değeri tarafından başvurulmayan değerler içerebilir.

BOŞ -yabancı anahtar öznitelikleri için değerler, yalnızca yabancı anahtar öznitelikleri herhangi bir aday anahtarın parçası değilse geçerlidir.

Yabancı anahtarlar aslında farklı (veya aynı) bir ilişkideki demetlere referans olarak hizmet ettiğinden, bu referanslar var olmayan nesnelere işaret etmemelidir.

Yukarıdaki hususlar belirler yabancı anahtar bütünlüğü kuralı veya bilgi tutarlılığı ilişkisel veritabanı: yabancı anahtarlar tutarsız olmamalıdır, yani her yabancı anahtar değeri için üst ilişkideki ilişki alanında karşılık gelen bir değer olmalıdır.

12.1.4. morina kuralları

Genel olarak, ilişkisel model kavramı aşağıdaki on iki Codd kuralıyla tanımlanır ( slayt 6 ):

1.Bilgi kuralı. Veritabanındaki tüm bilgiler, yalnızca mantıksal düzeyde ve yalnızca tek bir şekilde - tablolarda yer alan değerler biçiminde sağlanmalıdır.

2.Garantili erişim kuralı. İlişkisel bir veritabanındaki her bir veri öğesine (atomik değer) mantıksal erişim, tablo adı, birincil anahtar ve sütun adı kombinasyonu kullanılarak sağlanmalıdır.

3.Geçersiz destek kuralı. İlişkisel bir veritabanı, sıfır uzunluklu karakter dizisinden, boşluk karakter dizisinden, sıfırdan veya başka herhangi bir sayıdan farklı olan ve veri türünden bağımsız olarak eksik verileri temsil etmek için kullanılan geçersiz değerleri desteklemelidir.

4.İlişkisel modele dayalı dinamik dizin kuralı. Veritabanının mantıksal düzeydeki açıklaması, uygun haklara sahip kullanıcıların, ana verilerle çalışmak için kullandıkları aynı ilişkisel dili kullanarak onunla çalışabilmeleri için ana verilerle aynı biçimde sunulmalıdır.

5.Kapsamlı veri alt dili kuralı . İlişkisel sistem, kullanıcı ile farklı dilleri ve etkileşim modlarını destekleyebilir (örneğin, soru-cevap modu). Ancak, operatörleri iyi tanımlanmış bazı sözdizimlerine göre karakter dizileri olarak temsil edilebilen ve veri tanımını tam olarak destekleyen en az bir dil olmalıdır; görünümlerin tanımı; veri işleme (etkileşimli ve yazılım); bütünlük koşulları; erişim haklarının belirlenmesi; işlem sınırları (başlangıç, bitiş ve iptal).

6. Yenileme kuralını görüntüleyin. Teorik olarak güncellenebilen tüm görünümler güncellemeye açık olmalıdır.

7. Ekleme, güncelleme ve silme kuralı. Bir ilişkiyle tek bir işlenen olarak çalışma yeteneği, yalnızca veri okunurken değil, aynı zamanda veri eklenirken, güncellenirken ve silinirken de mevcut olmalıdır.

8. Fiziksel verilerin bağımsızlık kuralı. Uygulama programları ve verilerle çalışmaya yönelik yardımcı programlar, veri saklama biçiminde veya verilere erişim yöntemlerinde herhangi bir değişiklik olması durumunda mantıksal düzeyde bozulmadan kalmalıdır.

9. Mantıksal verilerin bağımsızlık kuralı. Temel tablolarda teorik olarak bu tablolarda bulunan verilerin olduğu gibi kalmasına izin veren herhangi bir değişiklik yapıldığında, veri uygulamaları ve yardımcı programları mantıksal olarak bozulmadan kalmalıdır.

10. Bütünlük koşullarının bağımsızlık kuralı. Belirli bir ilişkisel veritabanına özgü bütünlük koşullarının, ilişkisel veritabanının bir alt dilinde tanımlanması ve bir uygulama programından ziyade bir dizinde saklanması mümkün olmalıdır.

11. Yayılım bağımsızlık kuralı. İlişkisel bir veritabanı yönetim sistemi, belirli bir müşterinin ihtiyaçlarına bağlı olmamalıdır.

12. Teklik kuralı. Bir ilişkisel sistem düşük seviyeli bir dile sahipse (bir seferde bir kayıt işliyor), o zaman yüksek seviyeli bir ilişkisel dilde ifade edilen kuralları ve bütünlük koşullarını atlamak için kullanmak mümkün olmamalıdır (birkaç kaydı aynı anda işleme). bir zaman).

Kural 2, veritabanında bilgi bulmada birincil anahtarların rolünü gösterir. Tablo adı gerekli tabloyu bulmanızı sağlar, sütun adı gerekli sütunu bulmanızı sağlar ve birincil anahtar aradığınız veri öğesini içeren satırı bulmanızı sağlar.

Kural 3, eksik verilerin geçersiz değerler kullanılarak temsil edilmesini gerektirir ( BOŞ) .

Kural 4, ilişkisel bir veritabanının kendisini tanımlaması gerektiğini söylüyor. Başka bir deyişle, veritabanı kümeyi içermelidir. sistem tabloları, veritabanının kendisinin yapısını açıklayan.

Kural 5, DBMS'nin ilişkisel bir veritabanı dili kullanmasını gerektirir, örneğin SQL ... Böyle bir dil, bir DBMS'nin tüm temel işlevlerini desteklemelidir - bir veritabanı oluşturma, veri okuma ve girme, veritabanı güvenliğini uygulama, vb.

Kural 6 endişe temsiller, farklı kullanıcıların veritabanı yapısının farklı parçalarını göstermesine izin veren sanal tablolardır. Bu, pratikte uygulanması en zor kurallardan biridir.

Kural 7, veritabanlarının doğası gereği küme yönelimli olduğu gerçeğine odaklanır. Birden çok satırda ekleme, silme ve güncelleme işlemlerinin yapılabilmesini gerektirir. Bu kuralın amacı, yalnızca tek satırlı işlemleri destekleyen uygulamalara izin vermemektir.

tüzük 8 ve 9, kullanıcı ve uygulamanın veritabanının düşük seviyeli uygulamasından ayrılmasını ifade eder. DBMS'de kullanılan belirli depolama veya erişim uygulamasının ve hatta veritabanı tablolarının yapısındaki değişikliklerin, kullanıcının verilerle çalışma yeteneğini etkilememesi gerektiğini savunuyorlar.

Kural 10, veritabanı dilinin girdi verilerine uygulanan kısıtlamaları ve veriler üzerinde gerçekleştirilebilecek eylemleri desteklemesi gerektiğini belirtir.

Kural 11, veritabanı dilinin diğer bilgisayar sistemlerinde bulunan dağıtılmış verilerle çalışma yeteneği sağlaması gerektiğini belirtir.

Kural 12, veritabanının bütünlüğünü tehlikeye atabileceğinden, veritabanı dili dışındaki özelliklerin kullanılmasını engeller.

12.2. Normalleştirme.

Fazla veri içeren ilişkilerle çalışırken, adı verilen sorunlar ortaya çıkabilir. anormallikleri güncelle ve ekleme anomalileri, silme anomalileri ve modifikasyon anomalileri olarak sınıflandırılır. Örneğin, slaytta gösterilen ilişkiyi düşünün ( slayt 7 ).

Ekleme anomalileri. İlişkisel bir tabloya, örneğin henüz hiçbir öğrencinin geçmediği bir disiplin hakkında bilgi ekleyemezsiniz. Öte yandan, bir öğrenci için yeni bir disiplinin eklenmesi, öğrenci ile ilgili bilgilerin zorunlu olarak çoğaltılmasını gerektirecek ve bu da potansiyel veri uyumsuzluğuna yol açacaktır (giriş hataları durumunda).

Kaldırma anomalileri. İlişkisel tablodan belirli bir disiplinde sınav veya testi geçen öğrencilerle ilgili bilgileri sildiğinizde, disiplinin kendisi ile ilgili bilgiler tamamen silinecektir.

Değişiklik anomalileri. Yinelenen veriler girdiğinizde (bir veya daha fazla değerde hatalı giriş olması durumunda) ve yinelenen verileri düzenlerken oluşan olası veri tutarsızlığına neden olur.

Listelenen anormallikler, başlangıç ​​oranı normalize edilerek önlenebilir.

Normalleştirme işlemi, veri tekrarını ve olası tutarsızlığı ortadan kaldırmak için bir tablonun ikiye veya daha fazlasına ayrıştırılmasıdır. Normalleştirmenin nihai amacı, "her olgunun yalnızca tek bir yerde göründüğü" bir veritabanı tasarımı elde etmektir.

12.2.1. Fonksiyonel bağımlılıklar

Normalleştirme süreci, işlevsel bağımlılık kavramına dayanmaktadır. fonksiyonel bağımlılık bir ilişkinin öznitelikleri arasındaki ilişkiyi tanımlar: A ve B özniteliklerini içeren bir R ilişkisinde, B özniteliği işlevsel olarak A özniteliğine bağlıysa, o zaman A özniteliğinin her bir bireysel değeri, B özniteliğinin yalnızca bir değeri ile ilişkilendirilir (ayrıca, nitelikler A ve B gibi davranabilir) ... Öznitelik veya öznitelik grubu A burada denir belirleyici fonksiyonel bağımlılık ( slayt 8 ).

Böylece, A → B fonksiyonel bağımlılığının varlığında, aynı A niteliği değerine sahip olan demetler (diziler), B niteliğinin değerinde çakışır. Ancak bunun tersi doğru değildir: B özelliği için aynı değer, A özelliği için farklı değerlere karşılık gelebilir. Örneğin, işlevsel bağımlılık Çalışan → Pozisyon, "VK Eremeev" çalışanının belirtildiği her yerde, "Profesör" pozisyonunun ona karşılık geleceğini, ancak "Profesör" pozisyonunun başka çalışanları da olabileceğini takip eder.

A → B fonksiyonel bağımlılığı tamamlayınız A öznitelik grubundan bir özniteliğin silinmesi bağımlılığın kaybolmasına neden oluyorsa işlevsel bağımlılık. A → B fonksiyonel bağımlılığı kısmi A öznitelik grubu, kaldırılırsa bağımlılığı koruyan bir veya daha fazla öznitelik içeriyorsa işlevsel bağımlılık.

Bir ilişkinin A, B ve C nitelikleri için A → B, B → C fonksiyonel bağımlılıkları varsa, C niteliğinin ilişkili olduğu söylenir. geçişli bağımlılık A özniteliği ile B özniteliği arasında (A özniteliği işlevsel olarak B özniteliğine veya C özniteliğine bağlı olmamalıdır).

Çok değerli bağımlılık... Bir tablonun bir özniteliğinin, ilk özniteliğin her değeri için ikinci özniteliğin iyi tanımlanmış bir karşılık gelen değerleri kümesi varsa, aynı tablonun başka bir özniteliğini çarptığı söylenir ( slayt 9 ).

Örnek olarak, "Sınavların kabulü (krediler)" tablosunun bir parçasını düşünün. Tablo, disiplin ve raporlama formu arasındaki ilişkiyi öğretmenin adıyla yansıtmaktadır. Bu tabloda, çok değerli bir "Disiplin - Öğretmen" ilişkisi vardır: "Matematiksel Analiz" disiplini birkaç öğretmen (Rakov II, Rybin KK, Karpov K.Yu.) tarafından öğretilir ve buna göre hepsi katılmaya katılabilir. sınavlar (krediler). Çok değerli bir başka bağımlılık da "Disiplin - Raporlama Formu"dur: Aynı disiplinde hem sınav hem de test yapılabilir. Aynı zamanda, Raporlama Formu ve Öğretmen, işlevsel bağımlılıkla bağlantılı değildir, bu da fazlalığın ortaya çıkmasına neden olur (başka bir öğretmenin soyadını eklemek için tabloya iki yeni satır girmeniz gerekecektir).

12.2.2. Normal formlar

Normalleştirmenin her aşamasında, ilişkilerin her biri sözde normal formlar... Normal formlar (en küçüğünden en eskisine) bir dahil etme işlemi ile bağlanır, yani. eski normal form, öncekilerin tümünün özelliklerine sahiptir ve ayrıca kendi ayırt edici özelliklerine sahiptir.

Normalleştirme, birincil anahtarı ve mevcut işlevsel bağımlılıkları tanımlamaya dayalı ilişkileri analiz etmek için resmi bir yöntemdir. Kısmi işlevsel bağımlılıkların ve geçişli bağımlılıkların sıralı olarak kaldırılması, ilişkilerin ayrıştırılması ve bir sonraki (eski) normal forma aktarılmasıyla gerçekleştirilir.

İlişkisel tablo birinci normal formdadır (1NF), Eğer ( slayt 10 )

Niteliklerinden herhangi birinin her değeri atomiktir;

Tabloda aynı satır yok;

Her sütun, bir özniteliğin adıyla benzersiz bir şekilde adlandırılır ve o özniteliğin geçerli değerini içerir;

Her öznitelik, belirli bir etki alanı (veri türü) ile ilişkilendirilir.

1NF'deki ilişkisel tablo birincil anahtar - değerleri her kaydı benzersiz bir şekilde karakterize eden bir nitelik veya nitelikler topluluğu.

İlişkisel tablo ikinci normal formdadır (2NF), 1NF tanımını karşılıyorsa ve birincil anahtara dahil olmayan tüm özellikleri birincil anahtara bağlı olarak tamamen işlevseldir.

İlişkisel tablo üçüncü normal formdadır (3NF)(slayt 11 ), 2NF tanımını karşılıyorsa ve anahtar olmayan özniteliklerinden hiçbiri birincil anahtarla geçişli olarak işlevsel olarak ilişkili değilse (yani, anahtar olmayan özniteliklerin hiçbiri, anahtar olmayan başka bir öznitelikle işlevsel olarak ilişkili değilse).

tablo şurada Boyes-Codd üçüncü normal formu (NFBK)(gelişmiş üçüncü normal form) ancak ve ancak özellikleri arasındaki herhangi bir işlevsel bağımlılık, tam bir işlevsel bağımlılığa indirgenirse mümkün birincil anahtar (yani, bir ilişkinin tüm belirleyicileri potansiyel birincil anahtarlardır).

Genellikle, pratikte, ilişkisel bir veritabanını 3NF'ye veya NFBK'ya dönüştürmekle yetinilir, bu yüzden burada eski normal formları dikkate almayacağız.

Aşağıdaki normal biçimler (4NF ve 5NF) yalnızca işlevsel değil, aynı zamanda nitelikler arasındaki çok değerli bağımlılıkları da hesaba katar. Bu normal formların tanımlarını vermek için, bir tablonun tam bir ayrıştırma kavramını tanıtıyoruz ( slayt 12 ).

Tam tablo ayrıştırma bağlantısı tablonun içeriğiyle tamamen çakışan keyfi sayıda projeksiyon koleksiyonuna denir.

tablo şurada beşinci normal form (5NF) ancak ve ancak tam ayrıştırmada tüm projeksiyonlar olası bir anahtar içeriyorsa. Tam bir ayrışmaya sahip olmayan bir tablo da 5NF'dedir.

Dördüncü normal form (4NF) tam ayrıştırmanın tam olarak iki projeksiyonun birleşimi olması gerektiğinde, 5NF'nin özel bir durumudur. Pratikte 4NF'de olacak ama 5NF'de olmayacak gerçek bir tablo bulmak kolay değil.

12.3. Normalleştirme prosedürü ( slayt 14)

Tabloları 3NF'ye dönüştürme prosedürü, herhangi bir tablodaki tek işlevsel bağımlılıkların formun bağımlılıkları olması gerektiği gerçeğine dayanmaktadır. AK, nerede K birincil anahtardır ve A- bazı nitelikler. Normalleştirmenin amacı, diğer işlevsel bağımlılıkları ortadan kaldırmaktır.

İki durum mümkündür:

1. Tablonun birleşik bir birincil anahtarı vardır, örneğin ( K1, K2) ve ayrıca özniteliği içerir A, işlevsel olarak bu anahtarın bir bölümüne bağlıdır (örneğin, K2), ancak tam anahtardan değil. Bu durumda, öznitelikleri içeren başka bir tablonun oluşturulması önerilir. K2 ve A(birincil anahtar - K2) ve özelliği kaldırın A orijinal tablodan ( slayt 15 ).

2. Tablonun birincil (olası) anahtarı vardır İLE, bağlanmak A1, olası bir anahtar değildir, ancak işlevsel olarak şunlara bağlıdır: İLE, ve anahtar olmayan başka bir özellik A2 hangi işlevsel olarak bağlıdır A1... Buradaki çözüm temelde öncekiyle aynıdır - özellikleri içeren başka bir tablo oluşturulur A1 ve A2, birincil anahtarla A1 ve nitelik A2 orijinal tablodan kaldırıldı (slayt 16).

Böylece, neredeyse tüm gerçek pratik durumlarda verilen herhangi bir tablo için, dikkate alınan iki kuralın uygulamasını tekrarlayarak, sonuçta 3NF veya NFBC'de olan ve herhangi bir formun işlevsel bağımlılığını içermeyen bir dizi tablo elde edilebilir. AİLE.

12.4. Bir ER diyagramından ilişkisel bir şema alma ( slayt 17)

1. Her basit varlık bir tabloya (ilişkiye) dönüşür. Varlığın adı, tablonun adı olur.

2. "Çoktan çoğa" ilişkisi bir varlık-ilişkisi olarak kabul edilir ve bir tabloya (ilişkiye) dönüşür. Böylece, çoktan çoğa ilişki, iki çoktan çoğa ilişkiye dönüştürülür.

3. Her öznitelik, aynı ada sahip olası bir sütun haline gelir. İsteğe bağlı niteliklere karşılık gelen sütunlar boş değerler içerebilir; gerekli niteliklerle eşleşen sütunlar olamaz. Öznitelik birden fazlaysa, bunun için ayrı bir ilişki kurulur.

4. Varlığın benzersiz tanımlayıcısının bileşenleri birincil anahtara dönüştürülür. Birkaç olası benzersiz tanımlayıcı varsa, en çok kullanılan seçilir. Benzersiz tanımlayıcı ilişkiler içeriyorsa, ilişkinin uzak ucunda bulunan varlığın benzersiz tanımlayıcısının bir kopyası, birincil anahtarın sütun sayısına eklenir (bu işlem yinelemeli olarak devam edebilir). Bu sütunlar, uç nokta adları ve/veya varlık adları kullanılarak adlandırılır.

5. Çoktan bire ve bire bir ilişkiler yabancı anahtarlar haline gelir. Onlar. İlişkinin sonunda benzersiz tanımlayıcının bir kopyası "bir" yapılır ve karşılık gelen sütunlar yabancı anahtarı oluşturur.

6. Birincil anahtar (benzersiz dizin) için dizinler, ayrıca yabancı anahtarlar ve sorgularda sıklıkla kullanılacak öznitelikler için oluşturulur.

7. Kavramsal diyagramda alt tipler varsa, iki seçenek mümkündür.

Tüm alt türler, en dıştaki üst tür için oluşturulan tek bir tabloda saklanır ve alt türler için görünümler oluşturulur. TÜR kodunu içeren en az bir sütun tabloya eklenir ve birincil anahtarın parçası olur.

İkinci durumda, her alt tür için ve birinci seviyenin her alt türü için (alt olanlar için - görünümler için) ayrı bir tablo oluşturulur, üst tür UNION görünümü kullanılarak yeniden oluşturulur (ortak sütunlar tüm alt tür tablolarından seçilir - üst tür sütunları ).

8. Kalan yabancı anahtarların tümü aynı etki alanına aitse, yani. ortak bir biçime sahipse, iki sütun oluşturulur: ilişki tanımlayıcısı ve varlık tanımlayıcısı. Bağlantı tanımlayıcı sütunu, bağlantıları ayırt etmek için kullanılır. Varlık kimliği sütunu, karşılık gelen ilişkinin uzak ucundaki benzersiz varlık kimliğinin değerlerini depolamak için kullanılır.

Ortaya çıkan yabancı anahtarlar aynı etki alanına ait değilse, dışlama yayı tarafından kapsanan her ilişki için açık yabancı anahtar sütunları oluşturulur.

Bu makale dizisi, geleneksel modellerden önemli ölçüde farklı olan bir beyin dalgası modelini açıklamaktadır. Yeni katılanların ilk bölümden okumaya başlamalarını şiddetle tavsiye ediyorum.

1970 yılında Edgar Codd, ilişkisel veri depolama modelinin temellerini açıkladığı bir makale yayınladı (Codd, 1970). Tüm modern ilişkisel veritabanları bu modelin pratik bir uygulaması haline geldi. Modelin resmileştirilmesi, ilişkisel hesabın ve ilişkisel cebirin yaratılmasına yol açtı.

İlişkisel modelin ana unsuru bir demetdir. Tuple, her biri belirli bir kümeye ait olan veya başka bir deyişle kendi tipine sahip olan sıralı bir öğe kümesidir. Yapıda homojen olan demetler kümesi bir ilişki oluşturur.

Bütün bunlar veritabanlarında kullanılan terimlerle biraz daha net görünüyor (aşağıdaki şekil). İlişki bir veri tablosudur. Tuple bir tablo satırıdır. Bir ilişkinin ne tür demetler içerdiği veya buna eşdeğer olarak bir tablodaki satırların biçiminin ne olduğu, ilişkinin veya tablonun başlığına göre belirlenir. Tablodaki sütunların her biri bir etki alanı oluşturur. Etki alanı öğelerinin alabileceği değerlere nitelikler denir. Tablo satırları, etki alanlarına karşılık gelen bir öznitelik koleksiyonudur.


Örnek ilişki (Zaborov)

Tablo satırları öznitelikleriyle, yani tuple öğelerinin aldığı değerlerle tanımlanabilir. Bir demetin içeriği onu diğerlerinden farklı kılar. Ancak bazı dizelerin niteliklerinde eşleşeceği ortaya çıkabilir. Tesadüfün kendisi korkutucu değildir, ancak artık bir ilişkideki demetleri benzersiz bir şekilde tanımlamak için böyle bir dizi özelliğin kullanılmasına izin vermez. Tanımlamayı açık hale getirmek için, her satır için benzersiz bir değer alan böyle bir anahtar alan girin. Böyle bir anahtar, anlamsal bir yük taşıyabilir veya yapay olarak oluşturulmuş bir sayı olabilir.

Tüm ilişkilerin toplanması veritabanını tanımlar. Her ilişki kendi mantıksal bilgi parçasını saklar. Belirli bilgileri elde etmek için, farklı ilişkilerden gelen bilgileri ilişkilendirmek gerekebilir. Codd, demetleri manipüle etmek için sekiz temel ilişkisel cebir işlemini tanımladı:

  • Birlik;
  • Kavşak;
  • Çıkarma;
  • Kartezyen ürün;
  • Örneklem;
  • Projeksiyon;
  • Birleştirmek;
  • Bölüm.
İlişkisel cebirin harika bir özelliği kapalı olmasıdır, yani ilişkiler üzerindeki işlemler sonucun kendisi bir ilişki olacak şekilde belirtilir. Yani, birkaç tabloya sahip olmak ve üzerlerinde uygun işlemleri yapmak, sonuç olarak bir tablo da alacağız.

Birçok işlemin anlamı, küme teorisindeki karşılık gelen işlemlerle örtüşür. Özleri hakkında genel bir fikir aşağıdaki şekilde verilmiştir.


Tuples üzerindeki işlemlere bir örnek (Zaborov)

Farklı ilişkilerin aynı türden etki alanlarını içerebilmesi önemlidir. Bu demektir ki, eğer iki demet aynı alanları içeriyorsa, içlerinde aynı niteliklere sahipse, o zaman bu nitelikleri içeren belirli bir demet ilişkisinden bahsedebiliriz. Yani bir sütunda aynı tablonun farklı satırları aynı değerlere sahipse bu satırlar arasında belirli bir ilişkiden bahsedebiliriz. Veya farklı tablolarda aynı anlama sahip sütunlar (domainler) varsa, bu sütunlarda aynı değerlere sahip satırlar birbiriyle ilişkilidir.

İzdüşüm işlemi, orijinal ilişkinin öğelerinin bir kısmından oluşan ve kullanılan etki alanları kümesini sınırlayan bir ilişki elde edilmesini sağlar. Seçim veya seçim, yalnızca alanları seçim koşullarını karşılayan demetleri içeren ilişkiler elde etmenizi sağlar. Örneğin, yalnızca belirtilen etki alanları belirtilen öznitelik değerlerine sahip olan demetleri seçebilirsiniz.

İlişkiler üzerindeki tüm işlemlerin toplamı, veri tabanından ilgili herhangi bir bilgiyi çıkarmanıza ve önceden belirlenmiş özelliklere (başlık) sahip bir ilişki (tablo) şeklinde oluşturmanıza olanak tanır.

İlişkisel veri modeli tesadüfen ortaya çıkmadı, ancak büyük miktarlarda çeşitli verilerle çalışma ihtiyacının bir sonucuydu. Böyle bir veri depolama yapısının ve bu yapıda tanımlanan işlemlerin çok çeşitli uygulamalı problemlerin çözümü için uygun olduğu ortaya çıktı. Doğal seçilimin bir sonucu olarak, benzer başarılı bir çözümün doğa tarafından el yordamıyla elde edilmiş olabileceği varsayılabilir.

Tanımladığımız tanımlayıcılar, kavramlar ve olay belleği sistemi birçok yönden ilişkisel modele çok benzer. Bir dizi analojiden söz edilebilir:

  • Bir nöron, her biri belirli bir tipteki verilere ayarlanmış birkaç dendritik segmentten gelen bilgiler üzerinde çalışır. Aynı tipteki dendritik segmentler belirli bir alanla ilişkilendirilebilir;
  • Dendritik segmente özgü bilgileri tanımlayan kavramların kombinasyonları, alanda bulunan niteliklere karşılık gelir;
  • Kabuk bölgesi tarafından kullanılan kavramlar ve bu bölgeye özgü paket yapısını tanımlayan tanımlayıcılar, etki alanlarının (başlık) yapısını belirler;
  • Bölgeler arası bilgi projeksiyonunda ortak kavramların kullanılması, ortak alanların farklı açılardan kullanımına karşılık gelir;
  • Beyni oluşturan korteks alanları kümesi, veritabanını oluşturan ilişkiler kümesine karşılık gelir;
  • Anılar arasındaki çağrışım, çeşitli demetlerin ortak nitelikleri aracılığıyla bağlantılılığa karşılık gelir;
  • Korteks bölgeleri boyunca belleğin dağılımı, bir olayın tek bir benzersiz anahtarla birleştirilen farklı ilişkilerde birkaç demeti nasıl oluşturabileceğine karşılık gelir;
  • Beynin mevcut durumunu tanımlayan bir dalga, bir veritabanına yapılan bir sorgunun analogu olarak hareket edebilir. İlişkiler üzerindeki bir işlemin sonucunun bir ilişki olması gibi, beynin tepkisi de tek bir dalga resminde birleştirilmiş, çağrışımsal olarak ilişkili bir dizi tanım olabilir.
Elbette beyin modelimiz ile ilişkisel sistemlerimiz arasında kesin bir eşleşme yoktur. Beynin mimarisi çok daha zengindir, çünkü yalnızca veri depolama ve alma görevlerini değil, bununla birlikte birçok başka işlevi de çözer. Ancak mevcut benzerlikler bile kortekste meydana gelen bilgi süreçlerinin özünün daha iyi anlaşılmasını mümkün kılmaktadır.