İlişkilere Genel Bakış
Bu bölümde Excel için PowerPivot içindeki tablolar arasında tanımlanabilen ilişkiler tanıtılır. Bu konuda aşağıdaki bölümler bulunur:
İlişki nedir?
İlişkilerin Gereksinimleri
İlişkilerin Otomatik Algılanması ve Çıkarımı
Bu konuyu okuduktan sonra ilişkinin ne olduğunu, ilişki tanımlamak için gerekenleri ve Excel için PowerPivot tarafından ilişkilerin nasıl otomatik olarak algılanabileceğini anlayacaksınız. Bu arada veritabanı uzmanlarının ilişkileri açıklamak için kullandığı terminoloji hakkında da bilgi edineceksiniz.
İlişki nedir?
İlişki, iki veri tablosu arasında kurulan, her bir tablodaki bir veya daha fazla sütunu temel alan bir bağlantıdır (PowerPivot için her tabloda tek bir sütun). İlişkilerin neden yararlı olduğunu görmek için işinizde müşteri siparişi verilerini izlediğinizi düşünün. Tüm verileri, yapısı aşağıdaki gibi olan tek bir tabloda izleyebilirsiniz:
MüşteriNo |
Ad |
E-posta |
İndirimOranı |
SiparişNo |
SiparişTarihi |
Ürün |
Miktar |
---|---|---|---|---|---|---|---|
1 |
Salah |
tamer.salah@contoso.com |
.05 |
256 |
2010-01-07 |
Kompakt Dijital |
11 |
1 |
Salah |
tamer.salah@contoso.com |
.05 |
255 |
2010-01-03 |
SLR Fotoğraf Makinesi |
15 |
2 |
Göktepe |
mete.goktepe@contoso.com |
.10 |
254 |
2010-01-03 |
Ekonomik Movie-Maker |
27 |
Bu yaklaşım işleyebilir, ancak çok fazla yinelenen veri (her siparişte müşterinin e-posta adresi olması gibi) depolanmasına neden olur. Depolama ucuzdur, ancak müşterinin e-posta adresi değiştiğinde söz konusu müşteriye ilişkin her satırı güncelleştirmeniz gerekir. Bu sorunun çözümlerinden biri, verileri birden çok tabloya bölmek ve bu tablolar arasında ilişkiler tanımlamaktır. Bu SQL Server gibi ilişkisel veritabanlarında kullanılan yaklaşımdır. Örneğin, Excel için PowerPivot uygulamasına aldığınız veritabanı üç ilişkili tablo kullanarak sipariş verilerini gösterebilir:
Müşteri
[MüşteriNo] |
Ad |
E-posta |
---|---|---|
1 |
Salah |
tamer.salah@contoso.com |
2 |
Göktepe |
mete.goktepe@contoso.com |
Müşteriİndirimleri
[MüşteriNo] |
İndirimOranı |
---|---|
1 |
.05 |
2 |
.10 |
Sipariş
[MüşteriNo] |
SiparişNo |
SiparişTarihi |
Ürün |
Miktar |
---|---|---|---|---|
1 |
256 |
2010-01-07 |
Kompakt Dijital |
11 |
1 |
255 |
2010-01-03 |
SLR Fotoğraf Makinesi |
15 |
2 |
254 |
2010-01-03 |
Ekonomik Movie-Maker |
27 |
Bu tabloları aynı veritabanından alırsanız, PowerPivot tablolar arasındaki ilişkileri [köşeli parantez] içindeki sütunları temel alarak algılayabilir ve bu ilişkileri PowerPivot penceresinde yeniden oluşturabilir. Daha fazla bilgi için, bu konudaki İlişkilerin Otomatik Algılanması ve Çıkarımı bölümüne bakın. Tabloları birden çok kaynaktan alırsanız, ilişkileri İki Tablo Arasında İlişki Oluşturma konusunda açıklandığı şekilde el ile oluşturabilirsiniz.
Sütunlar ve Anahtarlar
İlişkiler her bir tabloda aynı verileri içeren sütunları temel alır. Örneğin, Customers ve Orders tablolarının her ikisinin de Müşteri No'sunu içeren bir sütunu olduğundan bu tablolar birbirleriyle ilişkilendirilebilir. Örnekte sütun adları aynıdır, ancak böyle olması gerekmez. Orders tablosundaki tüm satırlarda Customers tablosunda da depolanan bir kimlik olduğu sürece birisi CustomerID ve diğeri CustomerNumber olabilir.
İlişkisel veritabanında genelde belirli özelliklere sahip sütunlar olan birkaç tür anahtar vardır. Aşağıdaki dört anahtar türü, amaçlarımız açısından en ilgi çekici olanlarıdır:
Birincil anahtar: tabloda bir satırı benzersiz olarak tanımlar; örneğin Customers tablosunda CustomerID.
Diğer anahtar (veya aday anahtar): benzersiz olan birincil anahtar dışında bir sütun. Örneğin, Employees tablosunda her ikisi de benzersiz olan çalışan numarası ve sosyal güvenlik numarası olabilir.
Yabancı anahtar: başka bir tablonun benzersiz sütununa başvuran bir sütun; Customers tablosundaki CustomerID sütununa başvuran Orders tablosundaki CustomerID gibi.
Bileşik anahtar: birden çok sütundan oluşan bileşik bir anahtar. Excel için PowerPivot içinde bileşik anahtarlar desteklenmez. Daha fazla bilgi için bu konuda yer alan "Bileşik Anahtarlar ve Arama Sütunları" bölümüne bakın.
Excel için PowerPivot uygulamasında, birincil anahtar veya diğer anahtar ilişkili arama sütunu veya yalnızca arama sütunu olarak adlandırılır. Bir tabloda hem birincil anahtar hem de diğer anahtar varsa, ikisinden birini arama sütunu olarak kullanabilirsiniz. Yabancı anahtar kaynak sütun veya yalnızca sütun olarak anılır. Örneğimizde, Orders tablosundaki CustomerID (sütun) ile Customers tablosundaki CustomerID (arama sütunu) arasında bir ilişki tanımlanır. İlişkisel veritabanından veri alıyorsanız, Excel için PowerPivot varsayılan olarak, bir tablodan yabancı anahtarı, diğer tablodan da buna karşılık gelen birincil anahtarı seçer. Bununla birlikte, arama sütunu için benzersiz değerleri olan herhangi bir sütun seçebilirsiniz.
İlişki Türleri
Customers ile Orders arasındaki ilişki bir-çok ilişkisidir. Her müşterinin birden çok siparişi olabilir, ancak bir siparişin birden çok müşterisi olamaz. Diğer ilişki türleri birebir ve çoka çok ilişkidir. Her müşteri için tek bir indirim tanımlayan CustomerDiscounts tablosunun Customers tablosuyla ilişkisi bire bir türündedir. Çoka çok ilişkiye örnek olarak, bir müşterinin birden çok ürün satın alabildiği ve aynı ürünün birden çok müşteri tarafından alınabildiği, Products ve Customers, tabloları arasındaki doğrudan ilişki verilebilir. Products3 kullanıcı arabiriminde çoka çok ilişkileri desteklemez. Excel için PowerPivot kullanıcı arabirimi arasında çok-çok ilişkilerini desteklemez. Daha fazla bilgi için bkz. bu konudaki "Çok-Çok İlişkiler".
Aşağıdaki tabloda üç tablo arasındaki ilişkiler gösterilir:
İlişki |
Tür |
Arama Sütunu |
Sütun |
---|---|---|---|
Müşteri-Müşteri_İndirimleri |
bire bir |
Müşteri.MüşteriNo |
Müşteri_İndirimleri.MüşteriNo |
Müşteri-Sipariş |
bire çok |
Müşteri.MüşteriNo |
Sipariş.MüşteriNo |
İlişkiler ve Performans
Herhangi bir ilişki oluşturulduktan sonra, normalde Excel için PowerPivot tarafından yeni oluşturulan ilişkideki tablolarda bulunan sütunları kullanan tüm formüllerin yeniden hesaplanması gerekir. Veri miktarına ve ilişkilerin karmaşıklığına bağlı olarak işlem biraz zaman alabilir. Daha fazla bilgi için, bkz. Formülleri Yeniden Hesaplama.
İlişkilerin Gereksinimleri
Excel için PowerPivot, ilişki oluşturulurken birkaç gereksinimin karşılanmasını gerektirir:
Tablolar Arasında Tek Bir İlişki
Birden çok ilişki bulunması, tablolar arasında belirsiz bağımlılıklara neden olabilir. Doğru hesaplamalar oluşturmak için bir tablodan diğerine tek bir yol olması gerekir. Bu nedenle, her tablo çifti arasında tek bir ilişki olabilir. Örneğin, AdventureWorksDW2012 'deki DimDate tablosunda, FactInternetSales tablosundaki OrderDate, DueDate ve ShipDate adındaki üç farklı sütunla ilişkili olan bir DateKey sütunu vardır. Bu tabloları almaya çalışırsanız, birinci ilişki başarıyla oluşturulur, ancak aynı sütunu ilgilendiren sonraki ilişkilerde aşağıdaki hatayı alırsınız:
* İlişki: tablo[sütun 1]-> tablo[sütun 2] - Durum: hata - Neden: <tablo 1> ve <tablo 2> tabloları arasında ilişki oluşturulamıyor. İki tablo arasında yalnızca bir doğrudan veya dolaylı ilişki olabilir.
İki tablonuz ve bunlar arasında birden çok ilişki varsa, arama sütununu içeren tablonun birden çok kopyasını almanız ve her tablo çifti arasında bir ilişki oluşturmanız gerekir.
Her Kaynak Sütun İçin Bir İlişki
Kaynak sütun birden fazla ilişkide yer alamaz. Bir sütunu bir ilişkide kaynak sütun olarak zaten kullandıysanız ve bu sütunu farklı bir tablodaki başka bir ilişkili arama sütununa bağlamak istiyorsanız, sütunun bir kopyasını oluşturabilir ve yeni ilişki için bu sütunu kullanabilirsiniz.
Hesaplanmış sütunda bir DAX formülü kullanarak tam olarak aynı değerlere sahip bir sütun oluşturmak kolaydır. Daha fazla bilgi için, bkz. Hesaplanmış Sütunlar.
Her Tablo İçin Benzersiz Tanımlayıcı
Her tabloda, söz konusu tablodaki her satırı benzersiz biçimde tanımlayan tek bir sütun olması gerekir. Bu sütun genellikle birincil anahtar olarak adlandırılır.
Benzersiz Arama Sütunları
Arama sütunlarındaki veri değerlerinin benzersiz olması gerekir. Başka bir deyişle, sütunda yinelenen değerler olamaz. Excel için PowerPivot'de null ve boş dizeler boşluğa eşittir, bu da farklı veri değeridir. Bu, arama sütununda birden fazla null değerleriniz olamayacağı anlamına gelir.
Uyumlu Veri Türleri
Kaynak sütundaki ve arama sütunundaki veri türlerinin uyumlu olması gerekir. Veri türleri hakkında daha fazla bilgi için, bkz. PowerPivot Çalışma Kitaplarında Desteklenen Veri Türleri.
Bileşik Anahtarlar ve Arama Sütunları
PowerPivot çalışma kitabında bileşik anahtarlar kullanamazsınız; mutlaka tablodaki her satırı benzersiz olarak tanımlayan tek bir sütununuz olması gerekir. Bileşik anahtara dayanan var olan bir ilişkisi olan tablolar almaya çalışıyorsanız, Tablo Alma Sihirbazı bu ilişkiyi PowerPivot'de oluşturulamayacağı için yok sayacaktır.
PowerPivot'de iki tablo arasında ilişki oluşturmak istediğinizde ve birincil anahtarları ve yabancı anahtarları tanımlayan birden çok sütun olduğunda, ilişkiyi oluşturmadan önce değerleri tek bir anahtar sütun oluşturacak şekilde birleştirmeniz gerekir. Bunu verileri almadan önce yapabilirsiniz ya da PowerPivot içinde bir hesaplanmış sütun oluşturarak yapabilirsiniz.
Çoka Çok İlişkiler
Excel için PowerPivot çoka çok ilişkileri desteklemez ve PowerPivot uygulamasında basit bir şekilde birleşim tabloları ekleyemezsiniz. Bununla birlikte, çoka çok ilişkileri modellemek için DAX işlevlerini kullanabilirsiniz.
İç Birleşimler ve Döngüler
İç birleşimlere PowerPivot tablolarında izin verilmez. İç birleşim, bir tablonun yine kendisiyle olan yinelemeli ilişkidir. İç birleşimler genellikle üst-alt hiyerarşilerinde kullanılır. Örneğin, işletmedeki yönetim zincirini gösteren bir hiyerarşi üretmek için Employees tablosunu kendisiyle birleştirmiş olabilirsiniz.
Excel için PowerPivot, çalışma kitabındaki ilişkiler arasında döngüler oluşturulmasına izin vermez. Başka bir deyişle aşağıdaki ilişki kümesine izin verilmez.
Tablo 1, sütun a - Tablo 2, sütun f
Tablo 2, sütun f - Tablo 3, sütun n
Tablo 3, sütun b - Tablo 1, sütun a
Döngü oluşmasına neden olacak bir ilişki tanımlamaya çalışırsanız, bir hata oluşturulur.
İlişkilerin Otomatik Algılanması ve Çıkarımı
PowerPivot pencerenize veri alırken, Tablo Alma Sihirbazı tablolar arasında var olan ilişkileri otomatik olarak algılar. Ayrıca bir PivotTable oluşturduğunuzda Excel için PowerPivot tablolardaki verileri çözümler. Tanımlanmamış olası ilişkileri algılar ve bu ilişkilere eklenecek uygun sütunları önerir.
Algılama algoritması ilişki olasılıklarıyla ilgili çıkarımlar yapmak için sütunlarında değerleri ve meta verileriyle ilgili istatistiksel veriler kullanır.
İlişkili sütunlardaki veri türlerinin uyumlu olması gerekir. Otomatik algılamada yalnızca tamsayı ve metin veri türleri desteklenir. Veri türleri hakkında daha fazla bilgi için, bkz. PowerPivot Çalışma Kitaplarında Desteklenen Veri Türleri.
İlişkinin başarıyla algılanması için, arama sütunundaki benzersiz anahtarların sayısı çok tarafındaki tablodaki değerlerden fazla olmalıdır. Diğer deyişle, ilişkinin çok tarafındaki anahtar sütunu arama tablosunun anahtar sütununda bulunmayan hiçbir değer içermemelidir. Örneğin, ürünleri kimlikleriyle listeleyen bir tablonuz (arama tablosu) ve her ürünün satışlarını listeleyen bir satış tablonuz (ilişkinin çok tarafı) olduğunu varsayalım. Satış kayıtlarını Products tablosunda karşılık gelen bir ürün bulunmayan bir kimlik içeriyorsa, ilişki otomatik olarak oluşturulamaz ancak siz el ile oluşturabilirsiniz. İlişkinin Excel için PowerPivot tarafından algılanması için, önce Products arama tablosunu eksik ürünlerin kimlikleriyle güncelleştirmeniz gerekir.
Çok tarafındaki anahtar sütununun adının arama tablosundaki anahtar sütununun adına benzediğinden emin olun. Adların tamamen aynı olması gerekmez. Örneğin, bir iş ortamında esasen aynı veriyi içeren sütunların adlarında genellikle farklılıklar olur: Emp ID, EmployeeID, Employee ID, EMP_ID vb. Algoritma benzer adları algılar ve adları benzer olan veya tam olarak eşleşen sütunlara daha yüksek bir olasılık atar. Bu nedenle, ilişkinin oluşturulma olasılığını artırmak için, aldığınız verilerdeki sütun adlarını var olan tablolarınızdaki sütunların adlarına benzeyecek şekilde değiştirmeyi deneyebilirsiniz. Excel için PowerPivot birden fazla olası ilişki bulursa bir ilişki oluşturmaz.
Bu bilgiler neden tüm ilişkilerin algılanmadığını veya meta verilerdeki (alan adı ve veri türleri gibi) değişikliklerin otomatik ilişki algılama sonuçlarının geliştirilmesini nasıl sağlayacağını anlamanıza yardımcı olabilir. Daha fazla bilgi için, bkz. İlişki Sorunlarını Giderme ve Behind the scenes of PowerPivot’s automatic relationship detection (PowerPivot'un otomatik ilişki algılamasının perde arkası).
Adlandırılmış Kümeleri Otomatik Algılama
Adlandırılmış Kümeler ile PivotTable'daki alanlar arasındaki ilişkiler otomatik olarak algılanmaz. Bu ilişkileri el ile yapılandırabilirsiniz. Otomatik ilişki algılamayı kullanmak istiyorsanız, her bir Adlandırılmış Kümeyi kaldırın ve Adlandırılmış Kümedeki tek tek alanları doğrudan PivotTable'a ekleyin.
İlişkilerin Çıkarımı
Bazı durumlarda, tablolar arasındaki ilişki zinciri otomatik olarak oluşturulur. Örneğin, aşağıdaki ilk iki tablo kümesi arasında bir ilişki oluşturursanız, diğer iki tablo arasında bir ilişki olduğu sonucu çıkarılır ve ilişki otomatik olarak kurulur.
Products ve Category -- el ile oluşturulan
Category ve SubCategory -- el ile oluşturulan
Products ve SubCategory -- ilişki olduğu sonucu çıkarılır
İlişkilerin arasında otomatik olarak zincir oluşturulması için ilişkilerin yukarıdaki gibi tek bir yönde olması gerekir. Örneğin başlangıç ilişkileri Sales ve Products ile Sales ve Customers arasındaysa, buradan bir ilişki çıkarımı yapılmaz. Bunun nedeni Products ve Customers tabloları arasındaki ilişkinin çoka çok ilişki olmasıdır.
Ayrıca bkz.
Kavramlar
İki Tablo Arasında İlişki Oluşturma