Power BI Desktop’ta model ilişkileri

Bu makale, Power BI Desktop ile çalışan içeri aktarma veri modelleyicilerini hedefler. Kullanımı kolay, doğru ve en uygun modeller sunmak için temel bilgiler veren, önemli bir model tasarımı konu başlığıdır.

Tablo rolleri ve ilişkiler de dahil olmak üzere en uygun model tasarımı hakkında daha ayrıntılı bilgi için bkz. Yıldız şemasını ve Power BI için önemini anlama.

İlişkinin amacı

Model ilişkisi, bir model tablosunun sütununa uygulanan filtreleri farklı bir model tablosuna yayılır. Filtreler, izlenecek bir ilişki yolu olduğu sürece yayılmaya devam eder ve bu sayede birden fazla tabloya yayılabilir.

İlişki yolları belirlenimcidir ve bu nedenle filtreler her zaman aynı şekilde yayılır, rastgele değişime uğramaz. Ancak ilişkiler devre dışı bırakılabilir veya belirli DAX işlevlerini kullanan model hesaplamaları tarafından değiştirilen filtre bağlamına sahip olabilir. Daha fazla bilgi için bu makalenin ilerleyen bölümlerinde yer alan İlgili DAX işlevleri konu başlığına bakın.

Önemli

Model ilişkileri veri bütünlüğünü zorunlu kılmaz. Daha fazla bilgi için bu makalenin devamında yer alan ve verilerinizde veri bütünlüğü sorunları olduğunda model ilişkilerinin nasıl davrandığını açıklayan İlişki değerlendirme konusuna bakın.

İlişkilerin animasyonlu bir örnekle filtreleri yayma şekli aşağıda verilmiştir.

İlişki filtresi yayma animasyonlu diyagramı.

Bu örnekte model dört tablodan oluşmaktadır: Kategori, Ürün, Yıl ve Satış. Kategori tablosu Ürün tablosuyla, Ürün tablosu da Satış tablosuyla ilişkilendirilmiştir. Yıl tablosu da Satış tablosuyla ilişkilendirilmiştir. Tüm ilişkiler bir-çok türündedir (bu türle ilgili ayrıntılar bu makalenin ilerleyen bölümlerinde açıklanmaktadır).

Büyük olasılıkla Bir Power BI kart görseli tarafından oluşturulan bir sorgu, Cat-A ve tek bir yıl cy2018 için yapılan satış siparişlerinin toplam satış miktarını istemektedir. Bu nedenle Kategori ve Yıl tablolarına filtre uygulanmıştır. Kategori tablosundaki filtre Ürün tablosuna yayılarak Kat-A kategorisine atanmış olan iki ürünü yalıtmaktadır. Ardından Ürün tablosu filtreleri Satış tablosuna yayılarak bu ürünler için yalnızca iki satış satırını yalıtmaktadır. Bu iki satış satırı, Kat-A kategorisine atanmış olan ürünlerin satışlarını temsil etmektedir. Toplam miktar 14 birimdir. Ayrıca Yıl tablosunun filtresi, Satış tablosunu da filtreleyerek Kat-A kategorisine atanmış ve CY2018 yılında sipariş edilmiş olan ürünlere ait tek bir satış satırı sunmaktadır. Sorgu tarafından döndürülen miktar değeri 11 birimdir. Bir tabloya birden fazla filtre uygulandığında (bu örnekteki Satış tablosu gibi) her zaman AND işlemi gerçekleştirilir ve tüm koşulların doğru olması gerekir.

Yıldız şeması tasarım ilkelerini uygulama

Boyut ve olgu tablolarını içeren bir model oluşturmak için yıldız şeması tasarım ilkelerini uygulamanızı öneririz. Power BI'ın boyut tablolarını filtreleyen kuralları zorunlu kılması ve model ilişkilerinin bu filtreleri olgu tablolarına verimli bir şekilde yaymasına olanak tanıyacak şekilde ayarlanması yaygın bir durumdur.

Aşağıdaki görüntü Adventure Works satış analizi veri modelinin model diyagramıdır. Sales adlı tek bir olgu tablosundan oluşan yıldız şeması tasarımını gösterir. Diğer dört tablo ise tarihe, eyalete, bölgeye ve ürüne göre satış ölçülerinin analizini destekleyen boyut tablolarıdır. Tüm tabloları bağlayan model ilişkilerine dikkat edin. Bu ilişkiler filtreleri (doğrudan veya dolaylı olarak) Sales tablosuna yayılır.

Önceki paragrafta açıklandığı gibi tabloları ve ilişkileri içeren Power BI Desktop modeli diyagramının ekran görüntüsü.

Bağlantısı olmayan tablolar

Bir model tablosunun başka bir model tablosuna bağlı olmaması sık görülen bir durum değildir. Geçerli model tasarımında böyle bir tablo bağlantısı kesilmiş tablo olarak tanımlanır. Bağlantısı olmayan tablo, diğer model tablolarına filtre yayma amacıyla kullanılmaz. Bunun yerine, model hesaplamalarının giriş değerini anlamlı bir şekilde kullanmasına olanak tanıyarak "kullanıcı girişi" (belki bir dilimleyici görseliyle) kabul eder. Örneğin, bir para birimi döviz kuru değerleri aralığıyla yüklenen bağlantısız bir tablo düşünün. Tek bir oran değerine göre filtrelemek için filtre uygulandığı sürece, ölçü ifadesi satış değerlerini dönüştürmek için bu değeri kullanabilir.

Power BI Desktop durum parametresi, bağlantısı olmayan tablo oluşturan bir özelliktir. Daha fazla bilgi için bkz. Power BI Desktop'da değişkenleri görselleştirmek için Durum parametresi oluşturma ve kullanma.

İlişki özellikleri

Model ilişkisi, bir tablo içindeki sütunlardan biriyle farklı bir tablonun sütunlarından biri arasında ilişki oluşturur. (Bu gereksinimin doğru olmadığı özel bir durum vardır ve yalnızca DirectQuery modellerindeki çok sütunlu ilişkiler için geçerlidir. Daha fazla bilgi için COMBINEVALUES DAX işlevi makalesine bakın.)

Not

Bir sütun ile aynı tablodaki farklı bir sütun arasında ilişki kurmak mümkün değildir. Bu kavram bazen tabloya kendi kendine başvuran ilişkisel veritabanı yabancı anahtar kısıtlaması tanımlama özelliğiyle karıştırılır. Üst-alt ilişkileri depolamak için bu ilişkisel veritabanı kavramını kullanabilirsiniz (örneğin, her çalışan kaydı bir "rapor" çalışanıyla ilişkilidir). Ancak, bu ilişki türünü temel alan bir model hiyerarşisi oluşturmak için model ilişkilerini kullanamazsınız. Üst-alt hiyerarşi oluşturmak için bkz. Üst ve Alt işlevler.

Kardinalite

Her model ilişkisi bir kardinalite türüyle tanımlanır. "Kaynak" ve "hedef" ilişkili sütunların veri özelliklerini temsil eden dört farklı kardinalite türü seçeneği vardır. "Bir" tarafı sütunun benzersiz değerler içerdiği anlamına gelir; "çok" tarafı sütunun yinelenen değerler içerebileceği anlamına gelir.

Not

Bir veri yenileme işleminin "bir" taraflı sütuna yinelenen değer yükleme girişiminde bulunması durumunda veri yenileme işleminin tamamı başarısız olur.

Dört seçenek, kısaltmalarıyla birlikte aşağıdaki madde işaretli listede açıklanmıştır:

  • Bire çok (1:*)
  • Çoka bir (*:1)
  • Bir-bir (1:1)
  • Çoka çok (*:*)

Power BI Desktop'de bir ilişki oluşturduğunuzda tasarımcı kardinalite türünü otomatik olarak algılar ve ayarlar. Power BI Desktop hangi sütunların benzersiz değerler içerdiğini öğrenmek için modeli sorgular. İçeri aktarma modelleri için iç depolama istatistiklerini kullanır; DirectQuery modelleri için veri kaynağına profil oluşturma sorguları gönderir. Ancak bazen Power BI Desktop yanlış olabilir. Tablolar henüz verilerle yüklenmediğinde veya yinelenen değerler içermesini beklediğiniz sütunlar şu anda benzersiz değerler içerdiği için bu durum yanlış olabilir. Her iki durumda da "bir" tarafındaki sütunlarda benzersiz değerler bulunduğu (veya tabloya henüz veri satırları yüklenmediği) sürece kardinalite türünü güncelleştirebilirsiniz.

Bire çok (ve çoka bir) kardinalitesi

Bire çok ve çoka bir kardinalite seçenekleri temelde aynıdır ve aynı zamanda en yaygın kardinalite türleridir.

Bire çok veya çoka bir ilişki yapılandırırken, sütunları ilişkilendirdiğiniz sırayla eşleşen ilişkiyi seçersiniz. Ürün tablosu ile Satış tablosu arasında ilişki kurmak için her birinde bulunan Ürün Kimliği sütununu nasıl yapılandıracağınızı düşünün. Product tablosundakiProductID sütunu benzersiz değerler içerdiğinden kardinalite türü bire çok olabilir. Tabloları ters yönde ( Sales to Product) ilişkilendirdiyseniz kardinalite çoka bir olur.

Bire bir kardinalite

Bire bir ilişki, her iki sütunun da benzersiz değerler içerdiği anlamına gelir. Bu kardinalite türü yaygın kullanılmaz ve genellikle gereksiz verilerin depolanması nedeniyle uygun olmayan bir tasarım ortaya çıkarır.

Bu kardinalite türünü kullanma hakkında daha fazla bilgi için bkz. Birebir ilişki kılavuzu.

Çoka çok kardinalitesi

Çoka çok ilişkisi, her iki sütunun da yinelenen değerler içerebileceği anlamına gelir. Bu kardinalite türü oldukça seyrek kullanılır. Bu tür özellikle karmaşık model gereksinimlerini tasarlarken yararlı olur. Bunu çoka çok olguları ilişkilendirmek veya daha yüksek taneli olguları ilişkilendirmek için kullanabilirsiniz. Örneğin, satış hedefi bilgileri ürün kategorisi düzeyinde ve ürün boyutu tablosu ürün düzeyinde depolandığında.

Bu kardinalite türünü kullanma yönergeleri için bkz. Çoka çok ilişkiler kılavuzu.

Not

Bir-çok kardinalite türü şu an için Power BI Rapor Sunucusu için geliştirilen modellerde kullanılamaz.

İpucu

Power BI Desktop model görünümünde, ilişki çizgisinin iki tarafındaki göstergelere (1 veya *) bakarak ilişkinin kardinalite türünü yorumlayabilirsiniz. Hangi sütunların ilişkili olduğunu belirlemek için, sütunları vurgulamak için ilişki çizgisini seçmeniz veya imlecin üzerine gelmeniz gerekir.

Model diyagramında kardinalite göstergelerinin vurgulandığı iki tablonun ekran görüntüsü.

Çapraz filtre yönü

Her model ilişkisi çapraz filtre yönüyle tanımlanır. Ayarınız filtrelerin yayılacağı yönü belirler. Çapraz filtre seçenekleri, kardinalite türüne göre değişir.

Kardinalite türü Çapraz filtre seçenekleri
Bir-çok (veya Çok-bir) Tek
Her ikisi
Bir-bir Her ikisi
Çok-çok Tek (Tablo1 - Tablo2)
Tek (Tablo2 - Tablo1)
Her ikisi

Tek çapraz filtre yönü "tek yön", Her İkisi ise "iki yön birden" anlamına gelir. İki yönde filtre uygulanan bir ilişki genellikle iki yönlü olarak tanımlanır.

Bire çok ilişkilerde çapraz filtre yönü her zaman "bir" tarafından ve isteğe bağlı olarak "çok" tarafından (çift yönlü) olur. Bire bir ilişkiler için çapraz filtre yönü her zaman her iki tablodandır. Son olarak, çoka çok ilişkiler için çapraz filtre yönü tablolardan birinden veya her iki tablodan da olabilir. Kardinalite türü "bir" tarafı içerdiğinde filtreler her zaman o taraftan yayılacaktır.

Çapraz filtre yönü Her İkisi olarak ayarlandığında, başka bir özellik kullanılabilir hale gelir. Power BI satır düzeyi güvenlik (RLS) kurallarını zorunlu kıldığında çift yönlü filtreleme uygulayabilir. RLS hakkında daha fazla bilgi için bkz. Power BI Desktop ile satır düzeyi güvenlik (RLS).

Model hesaplaması kullanarak filtre yayma devre dışı bırakma dahil olmak üzere ilişki çapraz filtre yönünü değiştirebilirsiniz. Bunun için CROSSFILTER DAX işlevi kullanılır.

çift yönlü ilişkilerin performansı olumsuz etkileyeebileceğini unutmayın. Ayrıca iki yönlü ilişki yapılandırma girişimi sonucunda belirsiz filtre yayma yolları elde edilebilir. Bu durumda Power BI Desktop, ilişki değişikliğini gerçekleştiremeyebilir ve sizi bir hata iletisiyle uyarır. Ancak Power BI Desktop bazen tablolar arasında belirsiz ilişki yolları tanımlamanıza izin verebilir. İlişki yolu belirsizliğini çözme bu makalenin devamında açıklanmıştır.

İki yönlü filtrelemeyi yalnızca ihtiyaç duyulması halinde kullanmanız önerilir. Daha fazla bilgi için bkz. Çift yönlü ilişki kılavuzu.

İpucu

Power BI Desktop model görünümünde, ilişki çizgisi üzerindeki ok uçlarına bakarak ilişkinin çapraz filtre yönünü belirleyebilirsiniz. Tek bir ok ucu, ok ucunun yönünde tek yönlü bir filtre olduğunu gösterirken çift ok ucu, iki yönlü bir ilişki olduğunu gösterir.

Çapraz filtre ok ucu vurgulanmış şekilde model diyagramındaki iki tablonun ekran görüntüsü.

Bu ilişkiyi etkinleştir

İki model tablosu arasında yalnızca bir etkin filtre yayma yolu olabilir. Ancak, bu ilişkileri etkin değil olarak ayarlamanız gerekse de ek ilişki yolları eklemek mümkündür. Etkin olmayan ilişkiler yalnızca model hesaplama sırasında etkin hale getirilebilir. UserELATIONSHIP DAX işlevi kullanılarak elde edilir.

Genel olarak mümkün olduğunca etkin ilişkiler tanımlamanızı öneririz. Rapor yazarlarının modelinizi nasıl kullanabileceğinin kapsamını ve potansiyelini genişletiyorlar. Yalnızca etkin ilişkilerin kullanılması, rol oynayan boyut tablolarının modelinizde çoğaltılması gerektiği anlamına gelir.

Ancak belirli durumlarda rol oynayan boyut tablosu için bir veya daha fazla etkin olmayan ilişki tanımlayabilirsiniz. Aşağıdaki durumlarda bu tasarımı göz önünde bulundurabilirsiniz:

  • Rapor görsellerinin aynı anda farklı rollere göre filtrelemesine gerek yoktur.
  • İlgili model hesaplamaları USERELATIONSHIP için belirli bir ilişkiyi etkinleştirmek için DAX işlevini kullanırsınız.

Daha fazla bilgi için bkz. Etkin ve etkin olmayan ilişki karşılaştırması kılavuzu.

İpucu

Power BI Desktop model görünümünde bir ilişkinin etkin mi yoksa devre dışı mı olduğunu anlayabilirsiniz. Etkin ilişkiler düz çizgiyle gösterilirken devre dışı olan ilişkiler kesik çizgiyle gösterilir.

Model diyagramındaki iki tablonun ve iki ilişkinin ekran görüntüsü; etkin için bir düz çizgi ve etkin olmayan için bir kesik çizgi

Bilgi tutarlılığı varsay

Bilgi tutarlılığı varsay özelliği yalnızca aynı kaynak grubuna ait iki DirectQuery depolama modu tablosu arasındaki bire çok ve bire bir ilişkiler için kullanılabilir. Bu özelliği yalnızca "çok" yan sütunDA DLL'ler olmadığında etkinleştirebilirsiniz.

Etkinleştirildiğinde, veri kaynağına gönderilen yerel sorgular iki tabloyu bir yerine kullanarak INNER JOIN birleştirir OUTER JOIN. Bu özelliğin etkinleştirilmesi genellikle sorgu performansını iyileştirse de bu durum veri kaynağına göre değişir.

İki tablo arasında veritabanı yabancı anahtar kısıtlaması mevcut olduğunda bu özelliği mutlaka etkinleştirin. Yabancı anahtar kısıtlaması olmasa bile, belirli bir veri bütünlüğüne sahip olduğunuz sürece özelliğini etkinleştirmeyi göz önünde bulundurun.

Önemli

Veri bütünlüğünün tehlikeye girmesi durumunda iç birleşim, tablolar arasındaki eşleşmeyen satırları ortadan kaldıracaktır. Örneğin, ilgili Product tablosunda mevcut olmayan bir ProductID sütun değerine sahip bir model Sales tablosu düşünün. Ürün tablosundan Satış tablosuna doğru olan yayılan filtre, bilinmeyen ürünlerle ilgili satış satırlarını ortadan kaldıracaktır. Bunun sonucunda bildirilen satış sonuçları normalden düşük olacaktır.

Daha fazla bilgi için bkz. Power BI Desktop'ta Bilgi tutarlılığı varsay ayarları.

İlgili DAX işlevleri

Model ilişkileriyle ilgili olan birçok DAX işlevi vardır. Bu işlevler aşağıdaki madde işaretli listede kısaca açıklanmıştır:

  • RELATED: Bir ilişkinin "bir" tarafından değeri alır. Satır bağlamında değerlendirilen farklı tablolardan hesaplamalar yaparken yararlıdır.
  • RELATEDTABLE: bir ilişkinin "çok" tarafından bir satır tablosu alın.
  • USERELATIONSHIP: Hesaplamanın etkin olmayan ilişki kullanmasına izin verir. (Teknik olarak bu işlev, kullanımını etkilemeye yardımcı olan belirli bir etkin olmayan model ilişkisinin ağırlığını değiştirir.) Modeliniz bir rol yapma boyut tablosu içerdiğinde ve bu tablodan etkin olmayan ilişkiler oluşturmayı seçtiğinizde kullanışlıdır. Filtre yollarındaki belirsizliği çözmek için de bu işlevi kullanabilirsiniz.
  • CROSSFILTER: İlişkinin çapraz filtre yönünü (bir veya iki yönlü) değiştirir veya filtrenin yayılmasını devre dışı bırakır (yok). Belirli bir hesaplamanın değerlendirmesi sırasında model ilişkilerini değiştirmeniz veya yoksaymanız gerektiğinde kullanışlıdır.
  • COMBINEVALUES: İki veya daha fazla metin dizesini tek bir metin dizesinde birleştirir. Bu işlevin amacı, tablolar aynı kaynak grubuna ait olduğunda DirectQuery modellerinde çok sütunlu ilişkileri desteklemektir.
  • TREATAS: Bir tablo ifadesinin sonucunu, ilişkili olmayan bir tablodaki sütunlara filtre olarak uygular. Belirli bir hesaplamanın değerlendirilmesi sırasında sanal ilişki oluşturmak istediğiniz gelişmiş senaryolarda yararlıdır.
  • Üst ve Alt işlevler: Bir üst-alt hiyerarşisini doğallaştırmak için hesaplanmış sütunlar oluşturmak için kullanabileceğiniz ilgili işlevler ailesi. Daha sonra bu sütunları kullanarak sabit düzeyli bir hiyerarşi oluşturabilirsiniz.

İlişki değerlendirmesi

Model ilişkileri, değerlendirme açısından normal veya sınırlı olarak sınıflandırılır. Yapılandırılabilir ilişki özelliği değildir. Aslında kardinalite türünden ve ilişkili iki tablonun veri kaynağından çıkarılır. Veri bütünlüğünün tehlikeye girmesi durumunda performans açısından belirli etkileri veya sonuçları olabileceğinden değerlendirme türünü anlamak önemlidir. Bu konu başlığında bu etkiler ve bütünlük açısından sonuçlar açıklanmaktadır.

Öncelikle ilişki değerlendirmelerini anlamak için modelleme konusunda bazı teorik bilgilerin dikkate alınması gerekir.

İçeri aktarma veya DirectQuery modeli, tüm verilerini Vertipaq önbelleğinden veya kaynak veritabanından kaynaklar. Her iki örnekte de Power BI, ilişkinin "bir" tarafının mevcut olduğunu tespit edebilir.

Ancak bileşik model, farklı depolama modları (içeri aktarma, DirectQuery veya ikili) veya birden çok DirectQuery kaynağı kullanan tablolardan oluşabilir. İçeri aktarılan verilerin Vertipaq önbelleği de dahil olmak üzere her kaynak bir kaynak grubu olarak kabul edilir. Model ilişkileri daha sonra kaynak grubu içi veya çaprazkaynak grubu olarak sınıflandırılabilir. Kaynak grubu içi ilişki bir kaynak grubu içindeki iki tabloyu ilişkilendirirken, kaynaklar arası/çapraz grup ilişkisi tabloları iki kaynak grup arasında ilişkilendirmektedir. İçeri aktarma veya DirectQuery modellerindeki ilişkilerin her zaman kaynak grubu içinde olduğunu unutmayın.

Aşağıda bileşik modelin bir örneği verilmiştır.

İki kaynak grubundan oluşan bileşik modelin diyagramı.

Bu örnekte bileşik model iki kaynak grubundan oluşur: Vertipaq kaynak grubu ve DirectQuery kaynak grubu. Vertipaq kaynak grubunda üç tablo, DirectQuery kaynak grubunda ise iki tablo bulunmaktadır. Vertipaq kaynak grubundaki bir tabloyu DirectQuery kaynak grubundaki bir tabloyla ilişkilendiren bir kaynak grupları arası ilişki mevcuttur.

Normal ilişkiler

Sorgu altyapısının ilişkinin "bir" tarafını belirleyebildiği model ilişkileri, normal ilişki olarak kabul edilir. Bu durum, "bir" taraftaki sütunun benzersiz değerler içerdiğini onaylar. Bire çok kaynak grubu içi ilişkilerin tümü normal ilişkilerdir.

Aşağıdaki örnekte, her ikisi de R olarak işaretlenmiş iki normal ilişki vardır. İlişkiler, Vertipaq kaynak grubunda yer alan bire çok ilişkisini ve DirectQuery kaynağında yer alan bire çok ilişkisini içerir.

Normal ilişkileri işaretlenmiş iki kaynak grubundan oluşan bileşik modelin diyagramı.

Tüm verilerin Vertipaq önbelleğinde depolandığı içeri aktarma modellerinde Power BI, veri yenileme zamanında her normal ilişki için bir veri yapısı oluşturur. Veri yapıları, tüm sütunlar arası değerlerin dizinlenmiş eşleşmelerini içerir ve sorgu zamanında tabloların daha hızlı birleştirilmesini sağlamak için kullanılır.

Sorgu zamanında, normal ilişkiler tablo genişletmenin gerçekleşmesine izin verir. Tablo genişletme işleminin sonucunda temel tablonun yerel sütunları alınıp ilişkili tablolarla genişletilerek bir sanal tablo oluşturulur. İçeri aktarma tabloları için sorgu altyapısında tablo genişletme yapılır; DirectQuery tabloları için, kaynak veritabanına gönderilen yerel sorguda yapılır ( Bilgi tutarlılığı varsay özelliği etkinleştirilmediği sürece). Ardından sorgu altyapısı genişletilen tabloya göre işlem yapar ve bu tablonun sütunlarında filtre uygulama ve gruplama işlemlerini gerçekleştirir.

Not

Hesaplama için kullanılmayanlar da dahil olmak üzere devre dışı ilişkiler de genişletilir. İki yönlü ilişkilerin tablo genişletme işlemi üzerinde bir etkisi yoktur.

Bire çok ilişkilerde, tablo genişletme semantiği kullanılarak LEFT OUTER JOIN "çok" tarafından "bir" tarafına doğru gerçekleştirilir. "Çok" tarafından "bir" tarafına eşleşen bir değer yoksa "bir" tarafındaki tabloya boş bir sanal satır eklenir. Bu davranış yalnızca normal ilişkiler için geçerlidir, sınırlı ilişkiler için geçerli değildir.

Tablo genişletme, bire bir kaynak grubu içi ilişkiler için de gerçekleşir, ancak semantik kullanılır FULL OUTER JOIN . Bu birleştirme türü, gerektiğinde boş sanal satırların her iki tarafa da eklenmesini sağlar.

Boş sanal satırlar, etkili bir şekilde bilinmeyen üyelerdir. Bilinmeyen üyeler, "çok" tarafındaki değere "bir" tarafında karşılık gelen bir değerin bulunmadığı bilgi tutarlılığı ihlallerini temsil eder. İdeal olan bu boşlukların mevcut olmamasıdır. Bunlar, kaynak verileri temizleyerek veya onararak ortadan kaldırılabilir.

Tablo genişletme, animasyonlu bir örnekle şu şekilde çalışır.

Tablo genişletmenin animasyonlu diyagramı.

Bu örnekte model üç tablodan oluşmaktadır: Kategori, Ürün ve Satış. Kategori tablosu ile Ürün tablosu arasında Bir-çok ilişkisi, Ürün tablosu ile de Satış tablosu arasında Bir-çok ilişkisi vardır. Kategori tablosunda iki satır, Ürün tablosunda üç satır, Satış tablosunda ise beş satır vardır. Tüm ilişkilerin iki tarafında da eşleşen değerler vardır ve bu nedenle bilgi tutarlılığı ihlali mevcut değildir. Sorgu zamanında oluşturulan bir genişletilmiş tablo gösterilmektedir. Bu tablo, üç ayrı tablodan alınan tüm sütunları içermektedir. Bu tablo, üç tabloda yer alan verilerin normalleştirilmişlikten çıkarılmış bir perspektifini sunmaktadır. Satış tablosuna yeni bir satır eklenmiştir ve bu satırda Ürün tablosunda karşılığı bulunmayan üretim tanımlayıcısı değeri (9) mevcuttur. Bu bir bilgi tutarlılığı ihlalidir. Genişletilmiş tablodaki yeni satır (Boş), Kategori ve Ürün tablosundaki sütunların değerlerini içermektedir.

Sınırlı ilişkiler

"Bir" taraf garantisi bulunmayan model ilişkileri, sınırlı ilişki olarak kabul edilir. Sınırlı bir ilişki iki nedenle gerçekleşebilir:

  • İlişkide çoka çok kardinalite türü kullanılır (bir veya her iki sütun da benzersiz değerler içerse bile).
  • İlişki çapraz kaynak grubudur (bu yalnızca bileşik modeller için geçerli olabilir).

Aşağıdaki örnekte, her ikisi de L olarak işaretlenmiş iki sınırlı ilişki vardır. İki ilişki, Vertipaq kaynak grubunda yer alan çoka çok ilişkisini ve bire çok çapraz kaynak grubu ilişkisini içerir.

sınırlı ilişkileri işaretlenmiş iki tablodan oluşan bileşik modelin diyagramı.

İçeri aktarma modellerinde veri yapıları hiçbir zaman sınırlı ilişkiler için oluşturulmaz. Bu durumda Power BI, sorgu zamanında tablo birleştirmelerini çözümler.

Sınırlı ilişkiler için tablo genişletme işlemi gerçekleştirilmez. Tablo birleştirmeleri semantik kullanılarak INNER JOIN elde edilir ve bu nedenle bilgi tutarlılığı ihlallerini telafi etmek için boş sanal satırlar eklenmez.

Sınırlı ilişkilerle ilgili başka kısıtlamalar da vardır:

  • RELATED DAX işlevi "bir" yan sütun değerlerini almak için kullanılamaz.
  • RLS'yi zorunlu tutmanın topoloji kısıtlamaları vardır.

İpucu

Power BI Desktop model görünümünde, bir ilişkiyi sınırlı olarak yorumlayabilirsiniz. Sınırlı bir ilişki, kardinalite göstergelerinin ardından parantez benzeri işaretlerle ( ) temsil edilir.

Sınırlı ilişki vurgulanmış şekilde model diyagramındaki iki tablonun ekran görüntüsü.

İlişki yolu belirsizliğini çözme

Çift yönlü ilişkiler, model tabloları arasında birden çok ve bu nedenle belirsiz filtre yayma yolları ortaya çıkarabilir. Belirsizliği değerlendirirken Power BI, filtre yayma yolunu önceliğine ve ağırlığına göre seçer.

Öncelik

Öncelik katmanları, Power BI'ın ilişki yolu belirsizliğini çözmek için kullandığı bir kural dizisini tanımlar. İlk kural eşleşmesi, Power BI'ın izleyeceği yolu belirler. Aşağıdaki her kural, filtrelerin kaynak tablodan hedef tabloya nasıl aktığını açıklar.

  1. Bire çok ilişkilerinden oluşan bir yol.
  2. Bire çok veya çoka çok ilişkilerinden oluşan bir yol.
  3. Çoka bir ilişkilerden oluşan bir yol.
  4. Kaynak tablodan ara tabloya bire çok ilişkilerinden oluşan bir yol ve ardından ara tablodan hedef tabloya çoka bir ilişkiler.
  5. Kaynak tablodan ara tabloya bire çok veya çoka çok ilişkilerinden oluşan bir yol ve ardından ara tablodan hedef tabloya çoka bir veya çoka çok ilişkileri.
  6. Başka bir yol.

Bir ilişki tüm kullanılabilir yollara eklendiğinde, tüm yollardan dikkate alınmadan kaldırılır.

Ağırlık

Bir yoldaki her ilişkinin bir ağırlığı vardır. Varsayılan olarak, USERELATIONSHIP işlevi kullanılmadığı sürece her ilişki ağırlığı eşittir. Yol ağırlığı, yoldaki tüm ilişki ağırlıklarının üst sınırıdır. Power BI, aynı öncelik katmanındaki birden çok yol arasındaki belirsizliği çözmek için yol ağırlıklarını kullanır. Daha düşük önceliğe sahip bir yol seçmez, ancak daha yüksek ağırlığa sahip yolu seçer. Yoldaki ilişkilerin sayısı ağırlığı etkilemez.

USERELATIONSHIP işlevini kullanarak bir ilişkinin ağırlığını etkileyebilirsiniz. Ağırlık, en içteki çağrının en yüksek ağırlığı aldığı bu işleve yapılan çağrının iç içe yerleştirme düzeyine göre belirlenir.

Aşağıdaki örneği inceleyin. Product Sales ölçüsü Sales[ProductID] ile Product[ProductID] arasındaki ilişkiye daha yüksek ağırlık atar ve ardından Inventory[ProductID] ile Product[ProductID] arasındaki ilişkiyi izler.

Product Sales = 
CALCULATE(
    CALCULATE(
        SUM(Sales[SalesAmount]), 
        USERELATIONSHIP(Sales[ProductID], Product[ProductID])
    ),
    USERELATIONSHIP(Inventory[ProductID], Product[ProductID])
)

Not

Power BI aynı önceliğe ve aynı ağırlığa sahip birden çok yol algılarsa, belirsiz bir yol hatası döndürür. Bu durumda, USERELATIONSHIP işlevini kullanarak veya model ilişkilerini kaldırarak veya değiştirerek ilişki ağırlıklarını etkileyerek belirsizliği çözmeniz gerekir.

Performans tercihi

Aşağıdaki listede en hızlıdan en yavaşa doğru olmak üzere filtre yayma performansları listelenmiştir:

  1. Birden-çoğa kaynak grubu içi ilişkiler
  2. Aracı tabloyla elde edilen ve en az bir çift yönlü ilişki içeren çoka çok model ilişkileri
  3. Çok-çok kardinalite ilişkileri
  4. Kaynak grupları arası ilişkiler

Sonraki adımlar

Bu makale hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: