Mantıksal tablolar arasındaki ilişkilendirmeler

Bir veritabanı çok sayıda tablo içerebilir. Her tablo bir öğe listesi olarak düşünülebilir; yani listedeki her kayıt, belirli türde bir nesnenin bir örneğini temsil eder.

Örnek:  

Bir tablonun müşteri listesi ve diğer tablonun fatura listesi olduğu bir örnekteki gibi iki tablo farklı öğeler içeren listelerse ve iki tablo müşteri numarası gibi ortak bir alana sahipse, bu genellikle iki tablo arasında bir ilişki olduğuna işaret eder. Standart SQL sorgu araçlarında, iki tablo neredeyse her zaman birleştirilmiş olmalıdır.

QlikView kodunda tanımlanan tablolara mantıksal tablo adı verilir. QlikView, tablolar arasında alan adlarına dayanarak ilişkilendirme yapar ve örneğin bir liste kutusunda bir alan değerinin seçilmesi gibi bir seçim yapıldığında birleştirmeleri gerçekleştirir.

Bu, ilişkilendirmenin birleştirme ile neredeyse aynı şey olduğu anlamına gelir. Tek fark, birleştirmenin kod çalıştırıldığında gerçekleştirilmesidir; mantıksal tablo genellikle birleştirmenin sonucudur. İlişkilendirme, mantıksal tablo oluşturulduktan sonra yapılır; ilişkilendirmeler her zaman mantıksal tablolar arasında yapılır.

Birbiriyle Country ve CustomerID alanları üzerinden ilişkilendirilen dört tablo: bir ülke listesi, bir müşteri listesi, bir işlem listesi ve bir üyelik listesi.

SQL doğal outer join ile kıyasla QlikView

QlikView ilişkilendirmesi, SQL doğal outer join ile benzerdir. Ancak ilişkilendirme daha geneldir: SQL içindeki bir outer join genellikle bir tablonun başka bir tabloya tek yönlü olarak yansıtılmasıdır. İlişkilendirme her zaman tam (çift yönlü) doğal outer join ile sonuçlanır.

İlişkili alanlarda sıklık bilgileri

Çoğu ilişkili alanın, yani iki veya daha fazla tabloda ortak olan alanın kullanımına ilişkin bazı sınırlamalar vardır. Bir alan birden çok tabloda var olduğunda, QlikView, veri sıklıklarını hesaplamak için tablolardan hangisini kullanması gerektiğini belirlemekte sorun yaşar.

QlikView, dahil edilecek bir ana tabloyu tanımlamanın belirsiz olmayan bir yolu olup olmadığını (bazen vardır) belirlemek için verileri analiz eder, ancak çoğu durumda program yalnızca tahminde bulunabilir. Hatalı bir tahmin önemli olabileceğinden (QlikView bir hesaplama hatası yapıyor gibi görünür), program, veri yorumlamasının ilişkili alanlar için belirsiz olduğu durumlarda belirli işlemlere izin vermemek üzere tasarlanmıştır.

İlişkili alanlara yönelik sınırlamalar

  1. Alanı gösteren bir liste kutusunda sıklık bilgilerinin görüntülenmesi mümkün değildir.
  2. Alana yönelik istatistik kutuları çoğu istatistiksel varlık için yok ifadesini gösterir.
  3. Grafiklerde, Distinct değiştiricisi etkinleştirilmemişse, alanda sıklık bilgilerine dayanan fonksiyonları (Sum, Count fonksiyonları, Average vb.) içeren ifadeler oluşturmak mümkün değildir. Her yeniden yüklemenin ardından, QlikView tüm grafik ifadelerini tarayarak veri yapılarındaki değişikliklerin sonucunda herhangi bir belirsizlik oluşup oluşmadığını kontrol eder. Belirsiz ifadelerin bulunması durumunda, bir uyarı diyalog penceresi gösterilir ve ifade devre dışı bırakılır. Sorun düzeltilene kadar ifadenin etkinleştirilmesi mümkün olmaz. Bir günlük dosyası etkinleştirilmişse, tüm belirsiz ifadeler günlükte listelenir.

Geçici Çözüm

Bu sınırlamaları aşmanın basit bir yolu mevcuttur. Sıklık sayımlarının yapılması gereken tablodan, alanı yeni bir ad altında fazladan bir kez yükleyin. Ardından, sıklığı içeren bir liste kutusu, bir istatistik kutusu veya grafiklerdeki hesaplamalar için yeni alanı kullanın.