Bu bölümü cevaplamak için:
Boyut tablolarının olgu tablosu olup olamayacağını anlamaya mı çalışıyordum?
Kısa cevap (INMO) Hayır, çünkü 2 tür tablo farklı nedenlerle oluşturulmuştur. Bununla birlikte, bir veritabanı tasarımı perspektifinden, bir boyut tablosunda, her zaman üst öğe olarak bir boyut tablosuna (veya daha fazlasına) sahip olan olgu tablosunda olduğu gibi bir üst tablo olabilir. Ayrıca, olgu tabloları toplanabilir, ancak Boyut tabloları toplanmaz. Diğer bir neden de olgu tablolarının yerinde güncellenmemesi, bazı durumlarda Boyut tablolarının yerinde güncellenebilmesidir.
Daha fazla detay:
Olgu ve boyut tabloları, genellikle Yıldız Şeması olarak bilinen bir ortamda görünür. Yıldız şemasının birincil amacı, karmaşık normalleştirilmiş bir tablo kümesini basitleştirmek ve verileri (muhtemelen farklı sistemlerden) çok verimli bir şekilde sorgulanabilen tek bir veritabanı yapısında birleştirmektir.
En basit haliyle, bir olgu tablosu (Örnek: StoreSales) ve bir veya daha fazla boyut tablosu içerir. Her Boyut girişinin kendisiyle ilişkili 0,1 veya daha fazla olgu tablosu vardır (Boyut tabloları örneği: Coğrafya, Öğe, Tedarikçi, Müşteri, Zaman vb.). Boyutun bir ebeveyni olması da geçerli olacaktır, bu durumda model "Snow Flake" tipindedir. Ancak tasarımcılar, performansı yavaşlatan daha fazla birleşime neden olduğu için bu tür bir tasarımdan kaçınmaya çalışırlar. StoreSales örneğinde, Coğrafya boyutu sütunlardan oluşabilir (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)
Bir Kar Tanesi modelinde, Coğrafi bilgiler için 2 normalleştirilmiş tablonuz olabilir: İçerik Tablosu, Ülke Tablosu.
Star Schema'da pek çok örnek bulabilirsiniz. Ayrıca, yıldız şeması modeli Inmon ile Kimball'un alternatif bir görünümünü görmek için buna göz atın . Kimbal'ın iyi bir forumu var, buradan da kontrol etmek isteyebilirsiniz: Kimball Forum .
Düzenleme: 4NF örnekleri hakkındaki yorumları yanıtlamak için:
- 4NF'yi ihlal eden bir olgu tablosu örneği:
Satış Bilgisi (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)
- 4NF'yi ihlal etmeyen bir olgu tablosu örneği:
AggregatedSales (BranchID, TotalAmount)
İşte ilişki 4NF'de
Son örnek oldukça nadirdir.