Varlık ilişkisel Modelleme

Varlık ilişkisel (ER) modeli için geliştirilen önemli bir teori, işlevsel bağımlılık (FD) kavramını içerir. Bu eğitimin amacı, veriler arasındaki ilişkilere dair anlayışınızı geliştirmek ve pratik veritabanı tasarımına yardımcı olacak yeterli formalizmi kazanmaktır.

Kısıtlamalar gibi, FD'ler de uygulama alanının semantiğinden çıkarılır. Esasen, işlevsel bağımlılıklar bireysel niteliklerin nasıl ilişkili olduğunu açıklar. FD'ler bir ilişki içindeki nitelikler arasında bir tür kısıtlamadır ve iyi bir ilişkisel şema tasarımına katkıda bulunur. Bu bölümde şu konulara bakacağız:

  • İşlevsel bağımlılığın temel teorisi ve tanımı
  • Normalleştirme olarak da adlandırılan şema tasarımlarını iyileştirme metodolojisi

İlişkisel Tasarım ve Yedeklilik

Genel olarak, iyi bir ilişkisel veritabanı tasarımı gerekli tüm nitelikleri ve ilişkileri yakalamalıdır. Tasarım bunu minimum miktarda depolanmış bilgi ve gereksiz veri olmadan yapmalıdır.

Veritabanı tasarımında fazlalık genellikle istenmeyen bir durumdur çünkü güncellemelerden sonra tutarlılığın korunmasında sorunlara neden olur. Bununla birlikte, artıklık bazen performans iyileştirmelerine yol açabilir; örneğin, verileri bağlamak için birleştirme yerine artıklık kullanılabildiğinde. Birleştirme, iki ilgili tabloya dayalı olarak bilgi edinmeniz gerektiğinde kullanılır.

Aşağıdaki şekli düşünün: 1313131 numaralı müşteri iki kez görüntülenir, bir kez hesap no. A-101 ve tekrar A-102 hesabı için. Bu durumda, müşteri numarası gereksiz değildir, ancak tablo ile silme anormallikleri vardır. Ayrı bir müşteri tablosuna sahip olmak bu sorunu çözecektir. Ancak, bir şube adresi değişirse, birden fazla yerde güncellenmesi gerekecektir. Müşteri numarası tabloda olduğu gibi bırakılsaydı, bir şube tablosuna ihtiyacınız olmazdı ve birleştirme gerekmezdi ve performans artardı.

Şekil; Banka hesapları ve şubeleri ile kullanılan bir yedeklilik örneği.

Yerleştirme Anomalisi

Bir tabloya tutarsız bilgiler eklediğinizde bir ekleme anomalisi oluşur. Yeni bir kayıt eklediğimizde, örneğin aşağıdaki şekildeki hesap no. Şekil 10.2'deki A-306 gibi, şube verilerinin mevcut satırlarla tutarlı olup olmadığını kontrol etmemiz gerekir.

Şekil; Bir ekleme anomalisi örneği.

Güncelleme Anomalisi

Aşağıdaki şekildeki Round Hill şubesi gibi bir şube adres değiştirirse, bu şubeye atıfta bulunan tüm satırları güncellememiz gerekir. Mevcut bilgilerin yanlış bir şekilde değiştirilmesine güncelleme anomalisi denir.

Şekil; Güncelleme anomalisi örneği.

Silme Anomalisi

Silinmemesi gereken öznitelikler içerebilecek bir kaydı sildiğinizde silme anomalisi oluşur. Örneğin, aşağıdaki şekildeki Downtown şubesindeki A-101 hesabı gibi bir şubedeki son hesapla ilgili bilgileri kaldırırsak, tüm şube bilgileri kaybolur.

Şekil; Bir silme anomalisi örneği.

A-101 satırının silinmesiyle ilgili sorun, Downtown şubesinin nerede olduğunu bilmememiz ve 1313131 müşterisiyle ilgili tüm bilgileri kaybetmemizdir. Bu tür güncelleme veya silme sorunlarından kaçınmak için orijinal tabloyu, her tablonun diğer tablolarla minimum örtüşmeye sahip olduğu birkaç küçük tabloya ayırmamız gerekir.

Her banka hesabı tablosu, aşağıdaki şekilde gösterildiği gibi, Şube veya Müşteri gibi yalnızca bir varlık hakkında bilgi içermelidir.

Şekil; Her biri bir varlık içeren banka hesap tablolarına örnekler, A. Watt.

Bu uygulamanın takip edilmesi, şube bilgileri eklendiğinde veya güncellendiğinde bunun sadece bir kaydı etkilemesini sağlayacaktır. Böylece, müşteri bilgileri eklendiğinde veya silindiğinde, şube bilgileri yanlışlıkla değiştirilmeyecek veya yanlış kaydedilmeyecektir.

Örnek: çalışan proje tablosu ve anomaliler

Aşağıdaki şekilde bir çalışan proje tablosu örneği gösterilmektedir. Bu tablodan şunu varsayabiliriz:

  • EmpID ve ProjectID bileşik bir PK'dır.
  • Proje Kimliği Bütçeyi belirler (örneğin, Proje P1'in 32 saatlik bir bütçesi vardır).
Şekil; Çalışan proje tablosu örneği, A. Watt tarafından.

Şimdi, aşağıdaki adımlar sırasında bu tabloda meydana gelebilecek bazı olası anormalliklere bakalım.

  1. Eylem: Satır ekle {S85,35,P1,9}
  2. Problem: Çelişen bütçelere sahip iki kuple var
  3. Eylem: Tuple'ı sil {S79, 27, P3, 1}
  4. Sorun: Adım #3, P3 projesi için bütçeyi siler
  5. Eylem: S75, 32, P1, 7} çiftini {S75, 35, P1, 7} olarak güncelle
  6. Sorun: Adım #5, P1 projesinin bütçesi için farklı değerlere sahip iki tuple oluşturur
  7. Çözüm: Aşağıdaki şekilde gösterildiği gibi Projeler ve Çalışanlar için ayrı birer tablo oluşturun.
Şekil; Çözüm: Proje ve Çalışan için ayrı tablolar, A. Watt tarafından.

Anomaliler Nasıl Önlenir

Anormallik içermeyen tablolar oluşturmaya yönelik en iyi yaklaşım, tabloların normalleştirilmesini sağlamaktır ve bu da işlevsel bağımlılıkları anlayarak gerçekleştirilir. FD, bir tablodaki tüm özniteliklerin o tabloya ait olmasını sağlar. Başka bir deyişle, fazlalıkları ve anormallikleri ortadan kaldıracaktır.

Örnek: ayrı Proje ve Çalışan tabloları

Şekil; Verileri içeren ayrı Proje ve Çalışan tabloları, A. Watt tarafından.

Ayrı Proje ve Çalışan tabloları kullanarak verileri ayrı tutarak:

  • Bir bütçe değiştirilirse hiçbir anormallik yaratılmayacaktır.
  • Atanmış çalışanı olmayan projeler için kukla değerlere gerek yoktur.
  • Bir çalışanın katkısı silinirse, önemli veriler kaybolmaz.
  • Bir çalışanın katkısı eklenirse hiçbir anormallik oluşmaz.

Alıştırmalar
1. Normalleştirme aşağıdaki şekil
Yukarıdaki şekil Soru 1 için tablo, A. Watt tarafından hazırlanmıştır.

2. Çevrimiçi bir film kiralama hizmeti için mantıksal bir ERD oluşturun (çoktan çoğa ilişki olmaksızın). İş kurallarınızın temel alması gereken işlemlerin aşağıdaki açıklamasını kullanın: Çevrimiçi film kiralama hizmeti, film başlıklarını türlerine göre sınıflandırır: komedi, western, klasik, bilim kurgu, çizgi film, aksiyon, müzikal ve yeni sürüm. Her tür birçok olası başlık içerir ve bir tür içindeki çoğu başlık birden fazla kopya halinde mevcuttur. Örneğin, aşağıdaki özete dikkat edin: TÜR BAŞLIK
Musical My Fair Lady (Kopya 1)
My Fair Lady (Kopya 2)
Oklahoma (Kopya 1)
Oklahoma (Kopya 2)
Oklahoma (Kopya 3)
etc. 

3. Hangi üç veri anomalisinin veri fazlalığının sonucu olması muhtemeldir? Bu tür anomaliler nasıl ortadan kaldırılabilir?

Ayrıca bkz Ek; Örnek ERD Alıştırmaları

Atıf

Veritabanı Tasarımı'nın bu bölümü (aksi belirtilmedikçe resimler dahil) Nguyen Kim Anh tarafından yazılan Relational Design Theory adlı eserin Creative Commons Attribution License 3.0 lisansı altında lisanslanmış türevidir.

Önceki Ders: Bütünlük Kuralları ve Kısıtlamalar

Sonraki Ders: Fonksiyonel Bağımlılıklar

Yorumlar

Bu blogdaki popüler yayınlar

Gelişim ve Kalıtım Eleştirel Düşünme Soruları

Periodonsiyum Klinik Uygulamalar

Dentin Oluşumu