Power BI Desktop'taki Bilgi Tutarlılığı Varsay ayarını uygulamaApply the Assume Referential Integrity setting in Power BI Desktop

DirectQuery kullanarak bir veri kaynağına bağlanırken, veri kaynağınızda daha verimli sorgular çalıştırılmasını sağlamak için Bilgi Tutarlılığı Varsay seçeneğini kullanabilirsiniz.When connecting to a data source using DirectQuery, you can use the Assume Referential Integrity selection to enable running more efficient queries against your data source. Bu özellik, temel alınan verilere ilişkin bazı gereksinimlere sahiptir ve yalnızca DirectQuery ile kullanılabilir.This feature has a few requirements of the underlying data, and it is only available when using DirectQuery.

Bilgi tutarlılığı varsay ayarı, veri kaynağındaki sorguların OUTER JOIN yerine INNER JOIN deyimlerini kullanmasını sağlar ve böylece sorgu verimliliği artar.Setting Assume referential integrity enables queries on the data source to use INNER JOIN statements rather than OUTER JOIN, which improves query efficiency.

Bilgi tutarlılığı varsay'ı seçmeyi sağlayan İlişkiyi Düzenle iletişim kutusunun ekran görüntüsü.

Bilgi tutarlılığı varsay ayarını kullanmaya ilişkin gereksinimlerRequirements for using Assume referential integrity

Bu gelişmiş bir ayardır ve yalnızca, verilere DirectQuery kullanılarak bağlanıldığında etkinleştirilir.This is an advanced setting, and is only enabled when connecting to data using DirectQuery. Bilgi tutarlılığı varsay ayarının düzgün çalışabilmesi için aşağıdaki gereksinimler söz konusudur:The following requirements are necessary for Assume referential integrity to work properly:

  • İlişkide From sütununda bulunan veriler hiçbir zaman Null veya boş olmazData in the From column in the relationship is never Null or blank
  • From sütunundaki her bir değer için To sütununda karşılık gelen bir değer bulunurFor each value in the From column, there is a corresponding value in the To column

Bu bağlamda From sütunu, Tek - Çok ilişkisindeki Çok kısmıdır veya Birebir ilişkide birinci tablodaki sütundur.In this context, the From column is the Many in a One-to-Many relationship, or it is the column in the first table in a One-to-One relationship.

Bilgi tutarlılığı varsay ayarının kullanımına ilişkin örnekExample of using Assume referential integrity

Aşağıdaki örnekte, Bilgi tutarlılığı varsay'ın veri bağlantılarında kullanıldığında nasıl davrandığı gösterilmiştir.The following example demonstrates how Assume referential integrity behaves when used in data connections. Örnekte bir Orders tablosu, Products tablosu ve Depots tablosu bulunan bir veri kaynağına bağlanılmıştır.The example connects to a data source that includes an Orders table, a Products table, and a Depots table.

  1. Orders tablosunu ve Products tablosunu gösteren aşağıdaki görüntüde Orders[ProductID] ve Products[ProductID] arasında bilgi tutarlılığı olduğuna dikkat edin.In the following image that shows the Orders table and the Products table, note that referential integrity exists between Orders[ProductID] and Products[ProductID]. Orders tablosundaki [ProductID] sütunu hiçbir zaman Null değildir ve tüm değerler Products tablosunda da görünür.The [ProductID] column in the Orders table is never Null, and every value also appears in the Products table. Bu nedenle, daha verimli sorgular elde etmek için Bilgi tutarlılığı varsay ayarlanmalıdır. (Bu ayar kullanıldığında, görsellerde gösterilen değerler değişmez.)As such, Assume Referential Integrity should be set to get more efficient queries (using this setting does not change the values shown in visuals).

    Siparişler tablosunun ve Ürünler tablosunun ekran görüntüsü.

  2. Sonraki görüntüde Orders[DepotID] ve Depots[DepotID] arasında hiçbir bilgi tutarlılığı olmadığına dikkat edin. Bunun nedeni, bazı Orders değerleri için DepotID değerinin Null olmasıdır.In the next image, notice that no referential integrity exists between Orders[DepotID] and Depots[DepotID], because the DepotID is Null for some Orders. Bu nedenle, Bilgi Tutarlılığı Varsay ayarı belirlenmemelidir.As such, Assume Referential Integrity should not be set.

    Siparişler tablosunun ve Depolar tablosunun ekran görüntüsü.

  3. Son olarak, aşağıdaki tablolarda Orders[CustomerID] ve Customers[CustID] arasında hiçbir bilgi tutarlılığı yoktur. CustomerID, Customers tablosunda bulunmayan bazı değerler (bu örnekte CustX) içerir.Finally, no referential integrity exists between Orders[CustomerID] and Customers[CustID] in the following tables; the CustomerID contains some values (in this case, CustX) that do not exist in the Customers table. Bu nedenle, Bilgi Tutarlılığı Varsay ayarı belirlenmemelidir.As such, Assume Referential Integrity should not be set.

    Siparişler tablosunun ve Müşteriler tablosunun ekran görüntüsü.

Bilgi tutarlılığı varsay ayarıSetting Assume referential integrity

Bu özelliği etkinleştirmek için aşağıdaki görüntüde gösterildiği üzere Bilgi tutarlılığı varsay'ın yanındaki onay kutusunu seçin.To enable this feature, select the checkbox next to Assume Referential Integrity as shown in the following image.

Bilgi tutarlılığı varsay'ı seçmenizi sağlayan İlişkiyi Düzenle iletişim kutusunun ekran görüntüsü.

Bu ayar seçili olduğunda, verilerde Null değer veya eşleşmeyen satır olmadığı doğrulanır.When selected, the setting is validated against the data to ensure there are no Null or mismatched rows. Ancak, çok yüksek sayıda değer içeren durumlarda doğrulamadan sonra bilgi tutarlılığı sorunları olmayacağı garanti edilemez.However, for cases with a very large number of values, the validation is not a guarantee that there are no referential integrity issues.

Ayrıca doğrulama işlemi, ilişkinin düzenlendiği sırada gerçekleşir ve verilerde daha sonra yapılan değişiklikleri yansıtmaz.In addition, the validation occurs at the time of editing the relationship, and does not reflect any subsequent changes to the data.

Bilgi tutarlılığı varsay ayarını yanlışlıkla ayarlarsanız ne olur?What happens if you incorrectly set Assume referential integrity?

Verilerde bilgi tutarlılığı sorunları varken Bilgi tutarlılığı varsay'ı ayarlamanız hata oluşmasına neden olmaz.If you set Assume Referential Integrity when there are referential integrity issues in the data, this will not result in errors. Ancak, verilerde görünür tutarsızlıklar oluşmasına neden olur.However, it will result in apparent inconsistencies in the data. Örneğin, yukarıda açıklanan Depots tablosu ile ilişki örneğinde sonuç aşağıdaki gibi olur:For example, in the case of the relationship to the Depots table described above, it would result in the following:

  • Toplam Order Qty değerini gösteren bir görsel, 40 değerini görüntülerA visual showing the total Order Qty would show a value of 40
  • Toplam Order Qty by Depot City değerini gösteren bir görsel, toplamda yalnızca 30 değerini görüntüler. Bunun nedeni, DepotID değeri Null olan Order ID 1 verilerinin dahil edilmemesidir.A visual showing the total Order Qty by Depot City would show a total value of only 30, because it would not include Order ID 1, where DepotID is Null.

Sonraki adımlarNext steps

DirectQuery hakkında daha fazla bilgi edininLearn more about DirectQuery

Power BI'daki İlişkiler hakkında daha fazla bilgi edininGet more information about Relationships in Power BI

Power BI Desktop'taki İlişki Görünümü hakkında daha fazla bilgi edinin.Learn more about Relationship View in Power BI Desktop.