İyi veri modelleme uygulamaları, performans için optimize edilmiş ve ihtiyaç halinde ölçeklenebilen Power BI raporları oluşturmak için son derece önemlidir.
Bu eğitim, Microsoft tarafından sağlanan bir örnek veri kümesini kullanır; ancak bu makalede ele alacağımız veri modelleme en iyi uygulamalarını yansıtacak şekilde uyarlanmıştır. Veri kümesini buradan indirebilirsiniz.
Veri Modellemesi Nedir?
Veri modellemesi, veri yapıları arasındaki bağlantıların ve bu veri yapılarında yer alan bireysel özniteliklere ilişkin bilgilerin görsel temsillerini oluşturma sürecidir.
Genel olarak veri modellemesinden bahsederken en sık duyacağınız terim yıldız şemasıdır. Bu, veri ambarları ve ilişkisel veritabanları tasarlamada yaygın olarak benimsenen bir yaklaşımdır ve Power BI’da da önerilen yaklaşımdır.
Yıldız şemasını kullanmanın iki temel faydası vardır:
- Kullanılabilirlik: Yıldız şeması veri modelinizi daha temiz ve düzenli hâle getirir; raporunuzun kullanımı kolaylaşır.
- Performans: Yıldız şemaları raporunuzu çok büyük veri hacimlerine kolayca ölçeklendirmenize olanak tanır. DAX ölçümleri daha hızlı hesaplanır ve Power BI raporu genel olarak daha hızlı yenilenir.
Yıldız şeması nasıl çalışır?
Yıldız şeması, merkezde bir olgu tablosu ve bu olgu tablosundan dallanan birden çok boyut tablosundan oluşur; görünümü bir yıldıza benzer. İdeal olarak, bir veri modelinde yalnızca bir olgu tablosu bulunması iyi bir uygulamadır. Ancak Power BI’da birden fazla olgu tablosu dahil etmek de mümkündür.
Power BI yıldız şeması. Görsel: Yazar
Bir olgu tablosu, özetlenip birleştirilebilen değerlerden ve boyut tablolarına bağlanan bir veya daha fazla anahtardan oluşur. Anahtarın amacı tablolar arasında bağlantı kurmaktır. Karmaşık veri modelleriniz veya büyük veri hacimleriniz varsa, anahtarların metin dizeleri yerine sayısal değerler olması modelin performansını iyileştirebileceğinden iyi bir fikirdir.
Olgu tabloları çok dar olmalı ve mümkün olduğunca az sütun içermelidir. Ürün Adı veya Ürün Kategorisi gibi bir veri kümesinin özelliklerini tanımlayan her sütun, olgu tablosundan (veri ambarında ayrılmamışsa) çıkarılarak ilgili boyut tablolarına taşınmalıdır. Bu işleme verinin normalleştirilmesi denir ve amaç tekrarlılığı önlemektir.
Boyut tabloları, veri kümesinin özelliklerini tanımlar; özellikler, tek bir tabloyu şişirmemek veya ilişki kurmayı zorlaştırmamak için mantıksal olarak ayrı tablolarda gruplanır. Boyut tabloları, tanımladıkları özellikler için benzersiz değerler içermelidir ve bu sütunlar Power BI raporunda veriyi filtreleme veya gruplamadan sorumludur.
Yıldız şemasının bir uzantısı da kar tanesi şemasıdır. Bu yaklaşımda, bir özelliğin alt kategori veya alt kırılımları varsa boyut tabloları daha da bölünür. Bizim örneğimizde, Ürün Kimliği, Ürün Adı ve Ürün Kategorisini içeren bir Ürünler tablomuz var. Kar tanesi şemasında bu Ürünler tablosu yalnızca Ürün Kimliği ve Ürün Adını içerirken, Ürün Kategorisi ise Ürün Kategori Kimliği ve Ürün Kategorisini içeren ayrı bir tabloya ayrılır.
Power BI kar tanesi şeması. Görsel: Yazar
Ancak kar tanesi şeması kullanmak, veri modelinizin karmaşıklığını gereksiz yere artırabilir; bu ek tabloları dahil etmek performansı düşürebilir ve ilişki kurmayı zor ve kafa karıştırıcı hâle getirebilir.
Power BI’da İlişki Nasıl Oluşturulur
Power BI’da ilişki oluşturmanın iki yolu vardır:
- Bir tablodan bir alan seçip, ilişki kurmak istediğiniz ikinci tablodaki alana sürükleyip bırakın.
- Şeritten İlişkileri Yönet’i seçin ve “Yeni”ye tıklayarak, birazdan ele alacağımız (ancak boş başlayacak) aynı pencerede bir ilişki ekleyin.
Varsayılan olarak Power BI tablolar arasında bir ilişki çıkarsamaya çalışır; bunu her zaman doğru yapmaz, bu nedenle bu özelliği ayarlardan kapatmak veya otomatik oluşturulan ilişkileri silmek isteyebilirsiniz. İlişkiyi düzenlemek için, tabloları bağlayan çizgiye sağ tıklayın ve “Özellikler”i seçin.
Bu pencerede, bir ilişki tanımlarken seçebileceğiniz iki ilginç seçenek vardır: kardinalite ve çapraz filtre yönü. Bu seçeneklerin her biri için yapacağınız seçim, ortaya çıkan rapor üzerinde büyük etkiye sahip olabilir; bu nedenle dikkatli seçin. Şimdi bu seçeneklerin her birini inceleyelim.
Power BI’da ilişki oluşturma. Görsel: Yazar
Kardinalite
Dört kardinalite seçeneği vardır: çoktan-bire, birden-bire, birden-çoğa veya çoktan-çoğa.
İlişki oluştururken, bağlanan alanın en az bir tabloda benzersiz değerler içermesi önerilir. Bu, veri modelinizde birden-çoğa veya çoktan-bire seçeneklerini kullanmanıza olanak tanır.
Verilerimizde, Finansal veriler tablosu ile Ürünler tablosu arasında Ürün Kimliği alanı üzerinden bir ilişki vardır. Ürünler tablosunda Ürün alanı için benzersiz değerler bulunur (her ürün tabloda yalnızca bir kez görünür). Ancak Finansal veriler tablosunda her ürün tarih, ülke, segment vb. bazında birden çok kez görünebilir.
Çoktan-çoğa seçeneği en sorunlu olanıdır; karmaşık modellerde çok faydalı olsa da, yalnızca bu ilişkinin sonuçlarını tamamen anlıyorsanız seçilmelidir.
Çoktan-çoğa ilişkilerin sorun yaratabileceği bir durumu göstermek için, veri modelinde Ürün Kategorisine göre yıllık Satış Hedefi tablosu oluşturuyoruz. Satış rakamlarını ve bu hedefleri aynı görselde yan yana raporlayabilmemiz gerekir. Bu, Satış Hedefi tablosu ile Ürün tablosu arasında çoktan-çoğa ilişki oluşturarak sağlanabilir.
Power BI’da çoktan-çoğa ilişkiler. Görsel: Yazar
Aşağıdaki tablo görselinde, her ürün kategorisi için satış değerlerimizi ve hedefleri yan yana görebiliriz.

Ürün kategorisi, satışlar ve tutar. Görsel: Yazar
Ancak bu tabloyu Ürün düzeyinde görüntülemeye çalışırsak, hedeflere ait değerler tamamen hatalı olur. Bunun nedeni verideki ayrıntı düzeylerinin (granülarite) farklı olmasıdır; satış hedefleri yalnızca ürün kategorisi düzeyinde bulunduğundan, Power BI bu hedefleri ürün düzeyinde makul şekilde gösteremez ve bu nedenle hedefler, ilgili ürün kategorisindeki her ürün için basitçe çoğaltılır. Çoktan-çoğa ilişki kullanmanın böyle bir sonuca yol açabileceğini bilmiyor olsaydınız, bu durum iş raporlaması için oldukça sorunlu olabilirdi.
Ürün kategorisi, satışlar ve tutar. Görsel: Yazar
Yönlülük
Çapraz filtre yönü seçeneği, tek yön veya her iki yön arasında seçim yapmanızı sağlar. İlişkiler, benzersiz değerlere sahip tablodan çok değerli tabloya doğru akar. Bizim durumda ilişki, Ürünler tablosundan Finansal veriler tablosuna doğru akar. Bu, çapraz filtre yönü tek yön olarak ayarlanmışsa, Finansal veriler tablosunun Ürünler tablosundaki ürün ve ürün kategorisi alanlarıyla filtrelenebileceği anlamına gelir. Ancak Ürünler tablosu, Finansal veriler tablosundaki ürün kimliği alanı kullanılarak ya da diğer boyut tablolarında yer alan herhangi bir özellik kullanılarak filtrelenemez.
Çoğu durumda tek yön önerilir. Bunun nedeni, çift yönlü ilişkilerin (‘her ikisi’ seçeneği) yalnızca modelde performansı düşürmekle kalmayıp, veriyi filtrelerken belirsizlik de yaratabilmesidir.
Bizim örneğimizde, Ürün, Ülkeler ve Finansal veriler tabloları arasındaki ilişkilere bakın. Her ikisi de tek yönlü, birden-çoğa ilişkilerdir. Bu, raporu ülkeye göre filtrelemenin, Ürünler tablosunu da dolaylı olarak filtrelemeyeceği anlamına gelir. Bunu göstermek için aşağıdaki dilimleyicileri düşünün. Bir ülke (örneğin ABD) seçmek, ürün dilimleyicisinin yalnızca o ülkeyle ilgili ürünlere göre ayarlanmasına neden olmaz.

Power BI’da dilimleyiciler. Görsel: Yazar
Ancak, Ürünler tablosu ile Finansal veriler tablosu arasındaki ilişkiyi çift yönlü olarak değiştirerek filtrenin Ürünler tablosuna akmasına izin verebiliriz. Bu durumda, Amerika Birleşik Devletleri’nde bu ürün için satış olmadığından Carretera ürününün Ürün dilimleyicisinde görünmediğini görürüz.
Power BI’da dilimleyiciler. Görsel: Yazar
Alternatif olarak, çift yönlü ilişkiler kullanmaktan kaçınmak için, dilimleyici görseline boş olan öğeleri hariç tutan bir filtre ekleyebilirsiniz. Bunun, boyut tablolarındaki alanları kullanan her görsel için ayrı ayrı yapılması gerektiğini unutmamak gerekir.
Power BI’da filtreler ve dilimleyiciler. Görsel: Yazar
Power BI Modelinizi Nasıl Optimize Edersiniz
Power BI modelinizi optimize etmenin en önemli faktörü, bu eğitimde ortaya koyduğumuz türden iyi veri modelleme uygulamalarını kullanmaktır. Çoğu zaman, iyi bir veri modeli tek başına bir Power BI raporunun milyonlarca ve milyarlarca veri satırına ölçeklenmesini sağlarken yine de makul bir performans seviyesini korumasına imkân tanır.
Ancak, iyi veri modelleme uygulamalarını izlemenin yanı sıra Power BI modelinizi optimize etmek için yapabileceğiniz birkaç başka şey daha vardır; örneğin:
- Zaman zekâsını kapatmak – Power BI’daki bu özellik, bir görsele her tarih alanı eklendiğinde otomatik olarak tarih/saat hiyerarşileri oluşturur. Bu hiyerarşilerden her biri oluşturulduğunda, özünde veri modeline ek bir tablo eklenmiş olur. Tahmin edebileceğiniz gibi bu, Power BI raporunu önemli ölçüde şişirerek görsellerin oluşturulmasını yavaşlatır ve yenileme süresini artırır. Bu özelliği kapatmak ve bunun yerine tüm tarih/saat hiyerarşileri için özel bir tarih tablosu kullanmak iyi bir fikirdir.
- Gerçekten ihtiyaç duyduğunuz sütunları yüklemek – Power Query düzenleyicisini kullanarak, raporunuzda ihtiyaç duymadığınız veya kullanmadığınız sütunları kaldırmanız iyi olur. Genellikle “gerekirse lazım olur” düşüncesiyle elde tutulan en yaygın alanlardan biri Satır Kimliği alanıdır. Bu alan veri kümenize özgüdür; örneğin, Siparişler tablosunda her işlem için bir Sipariş Kimliği. Çoğu zaman bu kimlik alanı metin olarak depolanır ve modeli daha da şişirir. Kimlik alanı bir ilişkide açıkça kullanılmıyorsa, genellikle modelinize yüklenmesi gerekli değildir.
- Yalnızca ihtiyaç duyduğunuz satırları yüklemek – Tüm iş verilerinizi Power BI raporunuza aktarmanız gerektiği yanılgısına kapılmayın. Özellikle uzun süredir faaliyet gösteriyorsanız, bu, raporunuzun kimsenin aslında dikkat etmediği büyük miktarda veri içermesi anlamına gelebilir. Buradaki kilit nokta, raporun iş kullanıcılarıyla konuşup tam olarak ne kadar geçmiş veriye ihtiyaç duyduklarını öğrenmektir. Daha eski verileri görmeleri gerekiyorsa, her bir işlemi import etmek yerine o tablonun yalnızca özetlenmiş bir sürümünü içe aktarmayı düşünebilirsiniz.
Son Düşünceler
Sağlam veri modelleme uygulamaları kullanmak, verimli ve ölçeklenebilir Power BI raporları oluşturmak için kritik öneme sahiptir. Bu eğitim, hem kullanılabilirliği hem de performansı artıran yıldız şemasının önemini vurgular. İlişki oluşturma, kardinalite ve yönlülük gibi temel kavramları anlamak, veri modelinizin hem işlevsel hem de optimize edilmiş olmasını sağlar.
Ayrıca, gereksiz özellikleri kapatmak ve veri içe aktarmayı sınırlamak gibi en iyi uygulamaları benimsemek performansı daha da iyileştirir. Bu yönergeleri izleyerek Power BI raporlarınızın verimliliğini ve ölçeklenebilirliğini önemli ölçüde artırabilir, onları iş analizi için daha etkili araçlar hâline getirebilirsiniz. DataCamp ile kurslar alarak becerilerinizi geliştirmeye devam edin. Kurslar ve beceri yolları, bloglar ve eğitimler dâhil olmak üzere DataCamp Power BI kaynaklarının tamamına göz atın.
