Veri Ambarı Modelinde Kar Tanesi Şeması

⚡ Akıllı Özet

Veri ambarı modellemesinde kar tanesi şeması, merkezi bir olgu tablosundan dallanan ve kar tanesine benzeyen normalleştirilmiş boyut tablolarını düzenler. Yıldız şemasını genişletir, veri fazlalığını azaltır ve birden fazla ilgili arama tablosu arasında hiyerarşileri düzenler.

  • 🧩 Çekirdek Yapısı: Merkezi bir olgu tablosu, daha alt boyut ve arama tablolarına normalize edilmiş boyut tablolarına bağlanır.
  • ❄️ normalleştirme: Her boyutu ilgili tablolara bölmek, tekrarlayan öznitelikleri ortadan kaldırır ve hiyerarşileri üçüncü normal forma doğru iter.
  • 🌟 Yıldız Şeması ile İlişkisi: Kar tanesi şeması, düzleştirilmiş, normalleştirilmemiş boyut tablolarını normalleştirerek yıldız şemasını genişletir.
  • 💾 Depolama Avantajı: Daha küçük, normalleştirilmiş arama tabloları disk kullanımını azaltır ve gereksiz verileri ortadan kaldırarak bakımı kolaylaştırır.
  • 🔗 Sorgulama ve Karşılıklı Taviz: Daha fazla tablo, daha fazla birleştirme işlemi anlamına gelir; bu da sorgu performansını yavaşlatabilir ve raporlamayı karmaşıklaştırabilir.
  • 🧭 Ne Zaman Kullanılır: Depolama tasarrufu ve veri bütünlüğünün en önemli olduğu, derin hiyerarşilere sahip büyük boyutlu sistemler için bunu tercih edin.
  • 🪐 İlgili Şemalar: Galaksi ve yıldız kümesi tasarımları, daha karmaşık modeller için yıldız ve kar tanesi kavramlarından yola çıkılarak geliştirilmiştir.

Veri ambarında, merkezi bir olgu tablosundan dallanan normalleştirilmiş boyut tablolarına sahip kar tanesi şeması.

Kar Tanesi Şeması Nedir?

A kar tanesi şeması Veri ambarında, çok boyutlu bir veritabanındaki tabloların mantıksal düzenlemesidir. Varlık ilişkisi (ER) diyagramı Kar tanesi şekline benziyor. Bu bir boyutlu model Burada merkezi bir olgu tablosu boyut tablolarına bağlanır ve bu boyut tabloları da ilgili alt boyut tablolarına ayrılır.

Kar tanesi şeması, yıldız şemasının bir uzantısıdır. Yıldız şeması her boyutu tek bir düz tabloda tutarken, kar tanesi şeması bu boyutları normalleştirir ve tekrarlayan veri gruplarını ek arama tablolarına böler. Bu normalleştirme, gereksizliği ortadan kaldırır ve şemaya adını veren dallanma, hiyerarşik yapıyı oluşturur.

Kar Tanesi Şeması Örneği

Aşağıdaki kar tanesi şema örneğinde, Satış olgu tablosu merkezde yer alırken, etrafında Ürün, Tarih ve Mağaza gibi boyutlar bulunmaktadır. Her özniteliği tek bir boyut tablosunda saklamak yerine, coğrafya bilgileri normalleştirilerek Ülke ayrı bir tabloya taşınmıştır.

Merkezi olgu tablosu ve normalleştirilmiş Ülke boyut tablosu içeren bir kar tanesi şeması örneği
Kar Tanesi Şeması Örneği

Burada, Mağaza boyutu bir Şehir tablosuna, Şehir tablosu bir Eyalet tablosuna ve Eyalet tablosu da bir Ülke tablosuna referans vermektedir. Her değer yalnızca bir kez saklanır ve yabancı anahtar ile bağlanır, bu nedenle bir ülke adı milyonlarca satırda asla tekrarlanmaz. Bu katmanlı normalleştirme, kar tanesi şemasını düz yıldız şemasından ayıran şeydir.

Kar Tanesi Şemasının Özellikleri

Kar tanesi şemasının birkaç belirleyici özelliği vardır:

  • Normalleştirilmiş boyut tabloları tekrarlanan değerleri saklamaktan kaçındığı için daha az disk alanı kullanır.
  • Şemaya nispeten az bir çabayla yeni boyutlar eklenebilir.
  • Veri alma işlemi birçok tablonun birleştirilmesini gerektirdiğinden, sorgu performansı düşebilir.
  • Daha fazla sayıda arama tablosunun yönetilmesi gerektiğinden, daha fazla bakım çabası gerektirir.

Kar Tanesi Şeması Nasıl Tasarlanır?

Kar tanesi şeması tasarlamak, herhangi bir boyutlu modelle aynı şekilde başlar ve ardından bir normalleştirme adımı eklenir. Amaç, analiz etmek istediğiniz iş sürecini belirlemek, önce onu yıldız şeması olarak modellemek ve ardından derin hiyerarşiler içeren boyutları normalleştirmektir. Aşağıdaki adımları izleyin:

  1. İş sürecini ve ayrıntı düzeyini belirleyin. Gerçek tablonun tek bir satırının neyi temsil ettiğine (örneğin bir satış işlemi) karar verin ve raporlamanız gereken sayısal ölçümleri veya gerçekleri tanımlayın.
  2. Merkezi olgu tablosunu oluşturun. Sayısal ölçümleri, her bir boyuta işaret eden yabancı anahtarlarla birlikte toplayın; bu yabancı anahtarlar genellikle bileşik birincil anahtarı oluşturur.
  3. Boyut tablolarını tanımlayın. Ürün, Müşteri, Tarih ve Mağaza gibi her bir tanımlayıcı boyut için bir tablo oluşturun ve her birine vekil birincil anahtar atayın.
  4. Hiyerarşileri normalleştirin. Tekrarlayan öznitelikler içeren her boyutu alt boyut tablolarına ayırın; örneğin, Kategori'yi Ürün boyutundan veya Şehir, Eyalet ve Ülke'yi Mağaza boyutundan çıkarın.
  5. Tabloları yabancı anahtarlar kullanarak birbirine bağlayın. Her bir alt boyutu ana tablosuna geri bağlayın, böylece dallar kar tanesine benzeyen net bire çok hiyerarşiler oluşturur.
  6. Sorgularla doğrulayın ve test edin. Birleştirme işlemlerinin doğru sonuçlar döndürdüğünü ve genel performansın kabul edilebilir düzeyde kaldığını doğrulamak için temsili raporlama sorguları çalıştırın.

Tasarım verileri üçüncü normal forma doğru normalleştirdiği için, analistlerin her bir dala nasıl erişeceğini anlamaları için birleştirme yollarını açıkça belgeleyin. Yapı tanımlandıktan sonra, şemanın faydalarını maliyetleriyle karşılaştırmak faydalı olacaktır.

Kar Tanesi Şemasının Avantajları

Kar tanesi şeması bir dizi avantaj sunmaktadır:

  • Başlıca avantajı, daha küçük normalleştirilmiş arama tablolarının birleştirilmesiyle boyut verilerinin tekrarlanmasının önlenmesi sayesinde disk depolama alanının azalmasıdır.
  • Bileşenler ve boyut düzeyleri arasındaki ilişkilerde daha fazla ölçeklenebilirlik sağlar.
  • Bu, gereksiz tekrarları ortadan kaldırarak veri bütünlüğünü artırır ve modelin bakımını kolaylaştırır.
  • Tanımlayıcı bir özellik yalnızca tek bir yerde güncellenir, bu da tutarsız veri riskini azaltır.

Kar Tanesi Şemasının Dezavantajları

Tasarımın beraberinde getirdiği bazı dezavantajlar da göz önünde bulundurulmalıdır:

  • Normalleştirilmiş yapı, birçok ilişkili tabloyu yönetmek için gereken bakım miktarını artırır.
  • Birden fazla birleştirmeyi içeren karmaşık sorguları yazmak ve anlamak zor olabilir.
  • Tablo sayısının artması, daha fazla birleştirme işlemi anlamına gelir ve bu da sorgu yürütme süresini uzatır.
  • İş kullanıcıları genellikle dallanma modelini basit bir yıldız şemasına göre gezinmesi daha zor bulurlar.

Kar Tanesi Şeması vs Yıldız Şeması

Kar tanesi şeması ve yıldız şeması Veri ambarlamada en yaygın iki çok boyutlu tasarım türü yıldız şema ve kar tanesi şemadır ve aralarındaki temel fark normalizasyondur. Yıldız şema, sorgu hızını en üst düzeye çıkarmak için her boyutu tek bir düz, normalleştirilmemiş tabloda tutarken, kar tanesi şema depolama alanından tasarruf etmek ve veri bütünlüğünü korumak için bu boyutları birkaç ilişkili tabloya normalleştirir. Bu nedenle, iki şema farklı önceliklere uygundur.

GörünüşYıldız Şemasıkar tanesi şeması
Boyut tablolarıNormalleştirilmemiş, her boyut için bir tabloAlt boyut tablolarına normalize edildi
DepolamaGereksiz tekrarlar nedeniyle daha fazla yer kaplar.Daha az yer kaplar, gereksiz tekrarlardan kaçınır.
Sorgu performansıDaha hızlı, daha az birleştirmeDaha yavaş, daha fazla bağlantı
Sorgu karmaşıklığıYazması kolayDaha karmaşık
En uygunHızlı raporlama ve iş zekasıBüyük, hiyerarşik boyutlar

Özetle, sorgu hızı ve raporlama kolaylığı en önemli olduğunda yıldız şema, depolama verimliliği, temiz hiyerarşiler ve düşük veri fazlalığı öncelikli olduğunda ise kar tanesi şema seçin. Birçok gerçek veri ambarı, her boyutun büyüklüğüne ve derinliğine bağlı olarak her iki modeli de birleştirir.

Kar tanesi şeması ne zaman kullanılır?

Kar tanesi şeması her zaman doğru seçim olmayabilir, bu nedenle tasarımı iş yüküne ve raporlama ihtiyaçlarına uyarlamak faydalı olur. Genellikle aşağıdaki durumlarda en iyi sonucu verir:

  • Boyutlar çok büyük ve tekrar eden birçok özellik içeriyor; bu da normalleştirilmedikleri zaman depolama alanını israf etmelerine neden oluyor.
  • Boyutlar, Bölge, Ülke, Eyalet, Şehir gibi derin ve iyi tanımlanmış hiyerarşilere sahiptir ve bunlar doğal olarak ayrı tablolara eşlenir.
  • Veri bütünlüğü ve tutarlılığı, proje için ham sorgu hızından daha önemlidir.
  • Depolama maliyetleri gerçekten önemli bir sorun ve devasa boyutlu tablolar genelinde disk tasarrufu anlamlıdır.
  • Model besliyor OLAP Normalleştirilmiş hiyerarşilerde verimli bir şekilde gezinmeyi sağlayan araçlar.

Öte yandan, iş analistleri için hızlı ve basit raporlama öncelikli olduğunda, yıldız şema veya hibrit yıldız küme tasarımı genellikle daha uygun olur. veri ambarı mimarileri Hız ve depolama alanı arasında denge kurmak için her iki yaklaşımı da bilinçli olarak bir araya getirdik.

Galaksi Şeması Nedir?

A Galaxy Şeması İki veya daha fazla olgu tablosunu içeren ve bu tabloların boyut tablolarını paylaştığı bir şema türüdür. Ayrıca Olgu Takımyıldızı Şeması olarak da adlandırılır ve bir yıldız kümesi olarak görülebileceği için galaksi şeması adını almıştır.

Uyumlu boyut tablolarını paylaşan iki olgu tablosuna sahip bir galaksi şeması örneği
Galaksi Şeması Örneği

Yukarıdaki örnekte de görebileceğiniz gibi, iki adet olgu tablosu bulunmaktadır:

  1. Satış Tutarı
  2. PLATFORM

Bir galaksi şemasında, olgu tabloları arasında paylaşılan boyutlara uyumlu boyutlar denir.

Galaksi Şemasının Özellikleri

Galaksi şeması aşağıdaki özelliklere sahiptir:

  • Boyutlar, hiyerarşinin çeşitli seviyelerine bağlı olarak ayrı boyutlara ayrılmıştır.
  • Örneğin, coğrafyanın dört hiyerarşik seviyesi varsa —bölge, ülke, eyalet ve şehir— o zaman galaksi şemasının da dört boyutu olmalıdır.
  • Tek bir yıldız şemasını birden fazla yıldız şemasına bölerek bu tür bir şema oluşturmak mümkündür.
  • Bu şemadaki boyutlar büyüktür ve hiyerarşinin seviyelerine göre oluşturulmalıdır.
  • Bu şema, daha iyi analiz ve anlayış sağlamak amacıyla olgu tablolarını bir araya getirmede faydalıdır.

Yıldız Nedir Cluster Şema?

Kar tanesi şeması, tamamen genişletilmiş hiyerarşiler içerir; bu da karmaşıklığı artırabilir ve ek birleştirmeler gerektirebilir. Yıldız şeması ise tamamen daraltılmış hiyerarşiler içerir; bu da gereksizliğe yol açabilir. En iyi çözüm genellikle bu iki tasarım arasında bir denge kurmaktır ve buna Yıldız şeması denir. Cluster Şema.

Yıldız ve kar tanesi tasarımlarını dengeleyen bir yıldız kümesi şeması örneği
Yıldız Örneği Cluster Şema

üst üste gelmeping Boyutlar hiyerarşilerde çatallanmalar olarak görünür. Bir varlık iki farklı boyutsal hiyerarşide ebeveyn görevi gördüğünde çatallanma meydana gelir. Bu çatallanma varlıkları daha sonra bire çok ilişkilere sahip sınıflandırmalar olarak tanımlanır ve bu da tasarımın oluşturduğu ek tablo sayısını sınırlar.

SSS

Şema, adını varlık ilişkisi diyagramının kar tanesi gibi dışa doğru dallanmasından almaktadır. Her boyutu alt boyutlara ve arama tablolarına normalleştirmek, merkezi olgu tablosundan yayılan ve kar tanesi kristaline benzeyen bir şekil oluşturan çoklu bağlantılı seviyeler yaratır.

Normalizasyon, tekrarlayan verileri ortadan kaldırmak için bir boyut tablosunu daha küçük, ilişkili tablolara böler. Kar tanesi şemasında, kategori veya ülke gibi özellikler kendi tablolarına taşınır ve genellikle üçüncü normal forma ulaşarak gereksizliği azaltır ve her değerin yalnızca bir kez saklanmasını sağlar.

Bir olgu tablosu, satış tutarları gibi ölçülebilir, sayısal iş olaylarını ve boyutlara ait yabancı anahtarları depolar. Bir boyut tablosu ise, bu olgulara bağlam kazandıran ürün adı veya bölge gibi açıklayıcı nitelikleri depolar. Olgu tabloları genellikle boyut tablolarından çok daha büyüktür.

Bazen yan tablo olarak da adlandırılan bir alt boyut, ana boyuttan dallanan normalleştirilmiş bir tablodur. Örneğin, bir Ürün boyutu ayrı bir Kategori tablosuna bağlanabilir. Bu ek tablolar, kar tanesinin karakteristik çok seviyeli hiyerarşisini oluşturur.

Evet. Birçok depo her iki modeli de karıştırıyor; sadece bundan fayda sağlayan büyük boyutları normalleştirirken, diğer boyutları da koruyor.ping Daha küçük boyutlara sahip düz bir yapı. Bazen yıldız küme şeması olarak da adlandırılan bu hibrit yapı, yıldız şemasının sorgu hızını kar tanesi şemasının depolama tasarrufuyla dengeler.

Evet. Bir kar tanesi şeması besler. OLAP Normalleştirilmiş hiyerarşileri ülke, eyalet ve şehir gibi detaylı seviyelere düzgün bir şekilde eşlendiği için sistemlerde iyi sonuç verir. Ancak, fazladan birleştirmeler küp işlemeyi yavaşlatabilir, bu nedenle çok sorgu yoğun OLAP iş yükleri bazen yıldız şemayı tercih eder.

Yapay zekâ asistanları, hangi boyutların normalleştirileceğini önerebilir, iş tanımından tablo yapıları oluşturabilir ve performansı artıran indeksler veya birleştirme yolları önerebilir. Ayrıca gereksiz verileri ve tutarsız anahtarları da tespit edebilirler, ancak her öneriyi uygulamadan önce bir veri mühendisinin gözden geçirmesi gerekir.

Evet. ChatGPT hem de GitHub Yardımcı Pilotu Kısa bir komut istemiyle Snowflake şeması için CREATE TABLE ifadeleri ve JOIN sorguları oluşturabilirsiniz. Üretim ortamında çalıştırmadan önce oluşturulan anahtarları, veri türlerini ve ilişkileri daima gözden geçirin.

Bu yazıyı şu şekilde özetleyin: