ScholarGate
Asistan

Şema İyileştirme ve Ayrıştırma

Şema iyileştirme, bir ilişkiyi daha küçük ilişkilere ayrıştırma sürecidir; bu süreç, ayrıştırmanın kayıpsız olması ve ideal olarak orijinal bağımlılıkları koruması gereksinimlerine tabi olarak istenen bir normal forma ulaşmayı amaçlamaktadır.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Ayrıştırma, bir ilişki şeması R'yi, nitelikleri birlikte R'yi kapsayan bir şema kümesiyle değiştirmeyi ifade etmektedir; bu sayede orijinal ilişki, parçaları birleştirerek (kayıpsız birleştirme) geri kazanılabilmekte ve mümkün olduğunda, her orijinal fonksiyonel bağımlılık parçalar üzerinde uygulanabilmektedir (bağımlılık koruma).

Kapsam

Bu konu, ilişkisel şemaları ayrıştırmaya yönelik algoritmaları ve kriterleri ele almaktadır: kayıpsız birleştirme özelliği ve bunun nasıl test edildiği, bağımlılık koruma ve bunun daha yüksek normal formlarla olan gerilimi ile bir fonksiyonel bağımlılık kümesinden 3NF (bağımlılık koruyucu ve kayıpsız) veya BCNF (kayıpsız) bir tasarım üreten standart sentez ve ayrıştırma algoritmaları. Normal formların ve ayrıştırmayı yönlendiren bağımlılıkların tanımları bu kapsamın dışındadır.

Temel sorular

  • Bir ayrıştırmayı kayıpsız yapan nedir ve bu özellik nasıl test edilir?
  • Bir ayrıştırmanın bağımlılıkları koruması ne anlama gelmektedir?
  • BCNF ayrıştırması neden bağımlılıkları koruyamazken, 3NF sentezi koruyabilmektedir?
  • Standart BCNF ayrıştırma ve 3NF sentez algoritmaları nasıl çalışmaktadır?
  • BCNF ve 3NF arasındaki seçim pratikte nasıl yapılmaktadır?

Anahtar kavramlar

  • şema ayrıştırması
  • kayıpsız birleştirme özelliği
  • bağımlılık koruma
  • sahte demetler (spurious tuples)
  • BCNF ayrıştırma algoritması
  • 3NF sentez algoritması
  • minimal örtü (minimal cover)
  • BCNF ve 3NF arasındaki denge (trade-off)

Temel kuramlar

Kayıpsız birleştirme ayrıştırması
İkili bir ayrıştırma, iki parçanın ortak nitelikleri en az birinin anahtarını oluşturuyorsa kayıpsızdır; kayıpsızlık, parçaları birleştirmenin orijinal ilişkiyi hiçbir sahte demet (spurious tuple) olmaksızın tam olarak yeniden yapılandırdığını garanti etmektedir.
Bağımlılık koruma
Bir ayrıştırma, bireysel parçalar üzerinde uygulanabilir bağımlılıkların birleşimi tüm orijinal bağımlılıkları ima ediyorsa bağımlılıkları korumaktadır; bu sayede tutarlılık, birleştirmeler yeniden hesaplanmadan kontrol edilebilmektedir.
BCNF ayrıştırması ve 3NF sentezi
BCNF ayrıştırma algoritması kayıpsızlığı garanti etmekle birlikte bağımlılık korumayı feda edebilmektedir; oysa minimal bir örtüden (minimal cover) elde edilen 3NF sentez algoritması, muhtemelen 3NF'de durma pahasına hem kayıpsız birleştirmeyi hem de bağımlılık korumayı garanti etmektedir.

Klinik önem

Ayrıştırma algoritmaları, normalizasyon kuramının uygulanabilir bir tasarım prosedürü haline gelmesini sağlamaktadır: bu algoritmaların uygulanması, gereksiz tekrarları önleyen ancak yine de verimli bir şekilde yeniden yapılandırılabilen ve doğrulanabilen şemalar üretmekte, bu da üretim veritabanlarının doğruluğunu ve sürdürülebilirliğini doğrudan etkilemektedir.

Tarihçe

Kayıpsız birleştirme ve bağımlılık koruyucu ayrıştırma kuramı, araştırmacıların bir ilişkiyi bölmenin ne zaman güvenli olduğunu resmileştirmesiyle 1970'ler boyunca geliştirilmiştir. Bağımlılık koruyucu 3NF tasarımları üreten sentez algoritmaları ve BCNF'nin bağımlılık koruma ile çelişebileceği anlayışı, veritabanı metinlerinde standart materyal haline gelmiş ve şema tasarımında merkezi bir rol oynamaya devam etmektedir.

Öne çıkan isimler

  • Edgar F. Codd
  • Jeffrey D. Ullman
  • Philip Bernstein

İlgili konular

Temel eserler

  • silberschatz2019
  • ramakrishnan2003
  • garciamolina2008

Sıkça sorulan sorular

Sahte demet (spurious tuple) nedir ve neden önemlidir?
Sahte demet (spurious tuple), kötü seçilmiş bir ayrıştırmanın parçalarını birleştirdiğinizde ortaya çıkan ancak orijinal ilişkinin gerçek bir demetine karşılık gelmeyen bir satırdır. Kayıpsız birleştirme ayrıştırması, tam olarak hiçbir sahte demet üretmeyen bir ayrıştırma olup, bu nedenle kayıpsızlık vazgeçilmez bir gereksinim olarak kabul edilmektedir.
Neden BCNF yerine 3NF'yi tercih edebilirim?
BCNF'ye ayrıştırma her zaman kayıpsız birleştirme özelliğini korumakla birlikte bağımlılık korumayı bozabilmektedir; bu da bazı kısıtlamaların yalnızca tabloları birleştirerek kontrol edilebileceği anlamına gelmektedir. 3NF sentez algoritması hem kayıpsızlığı hem de bağımlılık korumayı garanti ettiğinden, tasarımcılar bağımlılık koruyucu bir BCNF tasarımı mevcut olmadığında 3NF'yi kabul etmektedirler.

Bu kavram için yöntemler

İlgili kavramlar