Farklı tabloların gizli olduğu ilişkiler oluşturarak veri analizinize daha fazla güç katın. İlişki, veri içeren iki tablo arasındaki bağlantıdır: her tablodaki bir sütun ilişkinin temelidir. İlişkilerin neden yararlı olduğunu görmek için işinizde müşteri siparişi verilerini izlediğinizi düşünün. Aşağıdaki gibi bir yapıya sahip tek bir tablodaki tüm verileri izleyebilirsiniz:
MüşteriNo |
Ad |
E-posta |
İndirimOranı |
SiparişKimliği |
SiparişTarihi |
Ürün |
Miktar |
---|---|---|---|---|---|---|---|
1 |
Salah |
tamer.salah@contoso.com |
0,05 |
256 |
01.07.2010 |
Kompakt Dijital |
11 |
1 |
Salah |
tamer.salah@contoso.com |
0,05 |
255 |
03.01.2010 |
SLR Fotoğraf Makinesi |
15 |
2 |
Göktepe |
mete.goktepe@contoso.com |
0,10 |
254 |
03.01.2010 |
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 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. SQL Server gibi ilişkisel veritabanlarında kullanılan yaklaşım budur. Örneğin, içeri aktardığınız veritabanı üç ilişkili tablo kullanarak sipariş verilerini gösterebilir:
Müşteriler
[MüşteriKimliği] |
Ad |
E-posta |
---|---|---|
1 |
Salah |
tamer.salah@contoso.com |
2 |
Göktepe |
mahmut.koc@contoso.com |
Müşteriİndirimleri
[MüşteriKimliği] |
İndirimOranı |
---|---|
1 |
0,05 |
2 |
0,10 |
Siparişler
[MüşteriKimliği] |
SiparişKimliği |
SiparişTarihi |
Ürün |
Miktar |
---|---|---|---|---|
1 |
256 |
01.07.2010 |
Kompakt Dijital |
11 |
1 |
255 |
03.01.2010 |
SLR Fotoğraf Makinesi |
15 |
2 |
254 |
03.01.2010 |
Ekonomik Movie-Maker |
27 |
İlişkiler, açıkça oluşturduğunuz veya excel'in aynı anda birden çok tabloyu içeri aktardığınızda sizin yerinize otomatik olarak oluşturduğu bir Veri Modeli içinde bulunur. Modeli oluşturmak veya yönetmek için Power Pivot eklentisini de kullanabilirsiniz. Ayrıntılar için bkz. Excel'de Veri Modeli Oluşturma .
Tabloları aynı veritabanından içeri aktarmak için Power Pivot eklentisi kullanırsanız, Power Pivot [köşeli parantez] içindeki sütunları temel alan tablolar arasındaki ilişkileri algılayabilir ve bu ilişkileri arka planda oluşturduğu Veri Modeli’nde yeniden oluşturabilir. Daha fazla bilgi için, bu makaledeki İlişkilerin Otomatik Algılanması ve Çıkarımı bölümüne bakın. Birden fazla kaynaktan içeri tablo aktarırsanız ilişkileri, İki tablo arasında ilişki oluşturma konusunda açıklandığı gibi el ile oluşturabilirsiniz.
İlişkiler her bir tabloda aynı verileri içeren sütunları temel alır. Örneğin, her birinde Müşteri Kimliği depolayan bir sütun varsa, Müşteriler tablosunu Orders tablosuyla ilişkilendirebilirsiniz. Örnekte sütun adları aynıdır, ancak böyle olması gerekmez. Sipariş tablosundaki tüm satırlarda Müşteri tablosunda da depolanan bir Numara olduğu sürece birisi MüşteriNo, diğer MüşteriNumarası olabilir.
İlişkisel veritabanında çeşitli anahtar türleri vardır. Anahtar genellikle özel özelliklere sahip sütundur. Her anahtarın amacını anlamak, PivotTable, PivotChart veya Power View'a veri sağlayan çok tablolu Veri Modelini yönetmenize yardımcı olur.
Birçok tür anahtar olsa da, buradaki amacımız için en önemlileri şunlardır:
-
Birincil anahtar: Müşteriler tablosundaki CustomerID gibi bir tablodaki satırı benzersiz olarak tanımlar.
-
Alternatif anahtar (veya aday anahtar): benzersiz olan birincil anahtar dışında bir sütun. Örneğin, Çalışan tablosunda her ikisi de benzersiz olan çalışan numarası ve sosyal güvenlik numarası olabilir.
-
Yabancı anahtar: Başka bir tablodaki benzersiz bir sütuna başvuruda bulunan, Siparişler tablosundaki CustomerID gibi, Müşteriler tablosundaki CustomerID'ye başvuran bir sütun.
Veri modelinde, birincil anahtar veya diğer anahtar ilişkili sütun olarak adlandırılır. Bir tabloda hem birincil anahtar hem de diğer anahtar varsa, ikisinden birini tablo ilişkisini temel alarak kullanabilirsiniz. Yabancı anahtar kaynak sütun veya yalnızca sütun olarak anılır. Örneğimizde, Siparişler tablosundaki CustomerID (sütun) ile Müşteriler tablosundaki CustomerID (arama sütunu) arasında bir ilişki tanımlanabilir. İlişkisel veritabanından içeri veri aktarıyorsanız, Excel 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.
Müşteriyle sipariş arasındaki ilişki bire çok ilişkidir. Her müşterinin birden çok siparişi olabilir, ancak bir siparişin birden çok müşterisi olamaz. Bir diğer önemli tablo ilişkisi de bire bir ilişkidir. Buradaki örneğimizde, her müşteri için tek bir indirim oranı tanımlayan CustomerDiscounts tablosunun Müşteriler tablosuyla bire bir ilişkisi vardır.
Bu tabloda üç tablo (Müşteriler, CustomerDiscounts ve Orders) arasındaki ilişkiler gösterilir:
İlişki |
Tür |
Arama Sütunu |
Sütun |
---|---|---|---|
Müşteriler-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 |
Not: Çok-Çok İlişkiler, Veri Modeli içinde desteklenmez. Çok-ç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, Ürün ve Müşteri tabloları arasındaki doğrudan ilişki verilebilir.
Herhangi bir ilişki oluşturulduktan sonra, Excel'in genellikle yeni oluşturulan ilişkideki tablolardaki sütunları kullanan formülleri yeniden hesaplaması gerekir. verilerin miktarına ve ilişkilerin karmaşıklığına bağlı olarak işleme biraz zaman alabilir. Diğer ayrıntılar için bkz. Formülleri Yeniden Hesaplama.
Veri Modelinin iki tablo arasında birden çok ilişkisi olabilir. Doğru hesaplamalar oluşturmak için Excel'in bir tablodan diğerine tek bir yola ihtiyacı vardır. Bu nedenle, her tablo çiftindeki tablolar arasında aynı anda yalnızca bir etkin ilişki olur. Diğerleri etkin olmasa da, formüllerde ve sorgularda etkin olmayan bir ilişki belirtebilirsiniz.
Diyagram Görünümü'nde etkin ilişki düz bir çizgidir ve etkin olmayanlar kesikli çizgilerdir. Örneğin, AdventureWorksDW2012'de DimDate tablosu FactInternetSales: OrderDate, DueDate ve ShipDate tablosundaki üç farklı sütunla ilgili DateKey adlı bir sütun içerir. Etkin olan ilişki TarihAnahtarı ve SiparişTarihi arasında ise başka birini belirtmedikçe formüllerdeki varsayılan ilişki budur.
İlişki oluşturmak için aşağıdaki gereksinimlerin karşılanması gerekir:
Ölçütler |
Açıklama |
---|---|
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. Veri Modelinde, null ve boş dizeler ayrı bir veri değeri olan boş değere eşdeğerdir. Bu, arama sütununda birden fazla null değerleriniz olamayacağı anlamına gelir. |
Uyumlu Veri Türleri |
Kaynak sütun ve arama sütunundaki veri türleri uyumlu olmalıdır. Veri türleri hakkında daha fazla bilgi için bkz . Veri Modellerinde desteklenen veri türleri. |
Veri Modelinde, anahtar bileşik bir anahtar ise tablo ilişkisi oluşturamazsınız. Bire bir ve bire çok ilişkiler oluşturmada da kısıtlandırılabilirsiniz. Diğer ilişki türleri desteklenmez.
Bileşik Anahtarlar ve Arama Sütunları
Bileşik anahtar birden çok sütundan oluşur. Veri Modelleri bileşik anahtarları kullanamaz: Bir tablonun her zaman tablodaki her satırı benzersiz olarak tanımlayan tam olarak bir sütunu olmalıdır. Bileşik anahtarı temel alan mevcut bir ilişkiye sahip tabloları içeri aktarırsanız, Power Pivot'taki Tablo İçeri Aktarma Sihirbazı modelde oluşturulamadığından bu ilişkiyi yoksayar.
Birincil ve yabancı anahtarları tanımlayan birden çok sütunu olan iki tablo arasında ilişki oluşturmak için ilişkiyi oluşturmadan önce ilk olarak değerleri tek bir anahtar sütunu oluşturacak şekilde birleştirin. Verileri içeri aktarmadan önce veya Power Pivot eklentisini kullanarak Veri Modeli'nde hesaplanmış bir sütun oluşturarak bunu yapabilirsiniz.
Çok-Çok İlişkiler
Veri Modelinde çok-çok ilişkileri olamaz. Modele öylece birleşim tabloları eklenemez. Bununla birlikte, çok-çok ilişkileri modellemek için DAX işlevlerini kullanabilirsiniz.
İç Birleşimler ve Döngüler
İç birleşimlere Veri Modelinde 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 Çalışan tablosunu kendisine bağlamış olabilirsiniz.
Excel, ç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 n - Tablo 1, sütun a
Döngü oluşmasına neden olacak bir ilişki tanımlamaya çalışırsanız, bir hata oluşturulur.
Power Pivot eklentisini kullanarak içeri veri aktarmanın avantajlarından biri, Power Pivot'un bazen ilişkileri algılayabilmesi ve Excel'de oluşturduğu Veri Modeli’nde yeni ilişkiler oluşturabilmesidir.
Birden çok tabloyu içeri aktarırken, Power Pivot tablolar arasında var olan ilişkileri otomatik olarak algılar. Ayrıca bir PivotTable oluşturduğunuzda, Power Pivot 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.
-
Tüm ilgili sütunlardaki veri türleri uyumlu olmalıdır. Otomatik algılama için yalnızca tam sayı ve metin veri türleri desteklenir. Veri türleri hakkında daha fazla bilgi için bkz . Veri Modellerinde 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ız Ürün 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 tarafından algılanması için, önce Ürün 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ş ayarında genellikle sütunların adlarında temelde aynı verileri içeren çeşitlemeler vardır: 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, içeri aktardığınız verilerdeki sütun adlarını var olan tablolarınızdaki sütunların adlarına benzeyecek şekilde değiştirmeyi deneyebilirsiniz. Excel birden fazla olası ilişki bulursa bir ilişki oluşturmaz.
Bu bilgiler neden tüm ilişkilerin algılanmadığını veya meta verilerdeki değişikliklerin (alan adı ve veri türleri gibi) otomatik ilişki algılama sonuçlarını nasıl iyileştirebileceğini anlamanıza yardımcı olabilir. Daha fazla bilgi için bkz . İlişkilerde Sorun Giderme.
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.
Ürün ve Kategori - el ile oluşturulur
Kategori ve AltKategori - el ile oluşturulur
Ürün ve AltKategori -- 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 Satış ve Ürün ile Satış ve Müşteri arasındaysa, buradan bir ilişki çıkarımı yapılmaz. Bunun nedeni Ürün ve Müşteri tabloları arasındaki ilişkinin çok-çok ilişki olmasıdır.