Veri ambarı için bir veritabanı şeması seçerken, kar tanesi ve yıldız şemaları popüler seçenekler olma eğilimindedir. Bu karşılaştırma, yıldız ve kar tanesi şemalarının farklı senaryolardaki uygunluğunu ve özelliklerini tartışır..
Kar Tanesi Şeması | Yıldız Şeması | |
---|---|---|
Bakım / değişiklik kolaylığı | Artıklık yok, bu nedenle kar tanesi şemalarının bakımı ve değiştirilmesi daha kolay. | Gereksiz verilere sahiptir ve bu nedenle bakımı / değiştirilmesi daha az kolaydır |
Kullanım kolaylığı | Daha karmaşık sorgular ve dolayısıyla anlaşılması daha kolay | Daha düşük sorgu karmaşıklığı ve kolay anlaşılır |
Sorgu Performansı | Daha fazla yabancı anahtar ve dolayısıyla daha uzun sorgu yürütme süresi (daha yavaş) | Daha az sayıda yabancı anahtar ve dolayısıyla daha kısa sorgu yürütme süresi (daha hızlı) |
Veri Ambarı Türü | Karmaşık ilişkileri basitleştirmek için datawarehouse çekirdeği için iyi kullanılır (çok: çok) | Basit ilişkileri olan veri grupları için iyi (1: 1 veya 1: çok) |
Katıldı | Daha fazla Katılma | Daha Az Katılma |
Boyut tablosu | Bir kar tanesi şemasında her boyut için birden fazla boyut tablosu olabilir. | Yıldız şeması her boyut için yalnızca tek boyut tablosu içerir. |
Ne zaman kullanılır? | Boyut tablosu göreceli olarak büyük olduğunda, alanı azalttığı için kar tanesi yapmak daha iyidir. | Boyut tablosu daha az sayıda satır içerdiğinde, Yıldız şemasını seçebiliriz. |
Normalizasyon / Normalleştirmenin Giderilmesi | Boyut Tabloları Normalize edilmiş formda, ancak Gerçekler Tablosu Normalize Olmayan biçimde | Hem Boyut hem de Olgu Tabloları Normalleştirildi biçimindedir |
Veri örneği | Aşağıdan yukarıya yaklaşım | Yukarıdan aşağıya yaklaşım |
Her mağazanın birçok ürün kategorisinde ve çeşitli markalarda çok sayıda ürün sattığı birçok mağazaya sahip bir perakendeci için bir veritabanı düşünün. Böyle bir perakendeci için bir veri ambarı veya veri martının, analistlere mağaza, tarih (veya ay, çeyrek veya yıl) veya ürün kategorisi veya markasına göre gruplandırılmış satış raporları çalıştırma olanağı sunması gerekir..
Bu veri mart bir yıldız şeması kullanıyor olsaydı, aşağıdaki gibi görünecektir:
Yıldız şeması örneğiOlgu tablosu satış işlemlerinin bir kaydı olurken, tarih, mağaza ve ürün için boyut tabloları vardır. Boyut tablolarının her biri, olgu tablosu için yabancı bir anahtar olan birincil anahtarları aracılığıyla olgu tablosuna bağlanır. Örneğin, gerçek işlem tarihini olgu tablosunun bir satırında saklamak yerine, tarih_kimliği saklanır. Bu tarih_kimliği, Dim_Date tablosundaki benzersiz bir satıra karşılık gelir ve bu satır, raporlarda gruplama için gereken tarihin diğer niteliklerini de depolar. örneğin, haftanın günü, ay, yılın çeyreği vb. Veriler daha kolay raporlama için denormalize edilmiştir.
İşte iç birleşimler yardımıyla markaya ve ülkeye göre satılan televizyonların sayısı hakkında rapor almak için:.
Aynı senaryoda bir kar tanesi şeması da kullanılabilir, bu durumda aşağıdaki gibi yapılandırılır:
Kar tanesi şeması örneği (büyütmek için tıklayın)Yıldız şeması ile karşılaştırıldığında temel fark, boyut tablolarındaki verilerin daha normalize edilmesidir. Örneğin, Dim_Date tablosunun her satırında ay, çeyrek ve haftanın gününü depolamak yerine, bunlar kendi boyut tablolarına ayrılır. Benzer şekilde Dim_Store tablosu için, eyalet ve ülke, bir adım kaldırılan coğrafi niteliklerdir - Dim_Store tablosunda saklanmak yerine, artık ayrı bir Dim_Geography tablosunda saklanırlar.
Aynı rapor - ülke ve markaya göre satılan televizyon sayısı - şimdi bir yıldız şemasından biraz daha karmaşıktır:
Veritabanı bir kar tanesi şeması kullandığında, ülke ve marka tarafından satılan ürün sayısını almak için SQL sorgusu.