Veri Modelindeki tablolar arasındaki ilişkiler

Uygulandığı Öğe
Microsoft 365 için Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

Farklı tablolarda ilişkiler oluşturarak veri analizinizi daha güçlendirin. İlişki, veri içeren iki tablo arasındaki bağlantıdır: her tablodaki bir sütun ilişkinin temelini oluşturur. İ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 aşağıdaki gibi bir yapıya sahip tek bir tabloda izleyebilirsiniz:

MüşteriNo Ad EMail İndirimOranı SiparişKimliği SiparişTarihi Ürün Miktar
1 Salah chris.ashton@contoso.com 0,05 256 01.07.2010 Kompakt Dijital 11
1 Salah chris.ashton@contoso.com 0,05 255 03.01.2010 SLR Fotoğraf Makinesi 15
2 Göktepe michal.jaworski@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üşteri Kimliği] Ad E-posta
1 Salah chris.ashton@contoso.com
2 Göktepe michal.jaworski@contoso.com

Müşteriİndirimleri

[Müşteri Kimliği] İndirimOranı
1 0,05
2 0,10

Siparişler

[Müşteri Kimliğ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

Açıkça oluşturduğunuz veya birden çok tabloyu eşzamanlı olarak içeri aktardığınızda Excel'in sizin adınıza otomatik olarak oluşturduğu ilişkiler, Veri Modeli içinde mevcuttur. Model oluşturmak ya da 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.

Sütunlar ve anahtarlar

İlişkiler her bir tabloda aynı verileri içeren sütunları temel alır. Örneğin, her birinde Müşteri No'su içeren bir sütun varsa, Müşteriler tablosunu bir Siparişler 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 birkaç tür anahtar vardır. Anahtarlar genellikle belirli özelliklere sahip bir 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 anahtar türü olmasına rağmen, buradaki amacımız için en önemlileri şunlardır:

  • Birincil anahtar: Tabloda bir satırı benzersiz olarak tanımlar. (Örneğin, Müşteriler tablosundaki MüşteriKimliği satırı.)
  • Diğer 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 sütuna başvuran bir sütun; Müşteri tablosundaki MüşteriNo'ya başvuran Satış tablosundakiMüşteriNo gibi.

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ş tablosundaki MüşteriNo (sütun) ile Müşteri tablosundaki MüşteriNo (arama sütunu) arasında bir ilişki tanımlanır. İ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.

İlişki türleri

Müşteri ile 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 birebirdir. Buradaki örneğimizde, her müşteri için tek bir indirim tanımlayan Müşteri_İndirimleri tablosunun Müşteriler tablosuyla bire bir ilişkisi vardır.

Bu tabloda, üç tablo (Müşteriler, Müşteriİndirimleri ve Siparişler) 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.

İlişkiler ve performans

Herhangi bir ilişki oluşturulduktan sonra, Excel normalde yeni oluşturulan ilişkideki tablolarda bulunan sütunları kullanan tüm formülleri yeniden hesaplamalıdır. Veri miktarına ve ilişkilerin karmaşıklığına bağlı olarak işlem biraz zaman alabilir. Daha fazla ayrıntı için bkz. Formülleri Yeniden Hesaplama.

Tablolar arasında birden çok ilişki

Veri Modelinin iki tablo arasında birden çok ilişkisi olabilir. Doğru hesaplamalar oluşturmak için Excel'de bir tablodan diğerine tek bir yol olması gerekir. Bu nedenle, her tablo çiftindeki tablolar arasında aynı anda yalnızca bir etkin ilişki olur. Diğerleri etkin olmasa da, etkin olmayan ilişkiyi formül ve sorgularda belirtebilirsiniz.

Diyagram Görünümü'nde, etkin ilişki düz çizgiyle, etkin olmayanlar ise kesik çizgilerle gösterilir. Örneğin, AdventureWorksDW2012'deki SolukTarih tablosunda, GerçekInternetSatışları tablosundaki SiparişTarihi, SonTarih ve GönderimTarihi adındaki üç farklı sütunla ilişkili olan bir TarihAnahtarı sütunu vardır. Etkin olan ilişki TarihAnahtarı ve SiparişTarihi arasında ise başka birini belirtmedikçe formüllerdeki varsayılan ilişki budur.

Tablo ilişkisi gereksinimleri

İlişki oluşturmak için aşağıdaki gereksinimlerin karşılanması gerekir:

Ölçüt 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 da, arama sütununda birden fazla boş değeriniz 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: Veri Modellerinde desteklenen veri türleri.

Excel Veri Modeli'nde desteklenmeyen veritabanı özellikleri

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: Tabloda mutlaka, tablodaki her satırı benzersiz olarak tanımlayan tek bir sütunun olması gerekir. Bileşik anahtara dayanan mevcut ilişkisi olan tabloları içeri aktarırsanız, Power Pivot'taki Tablo İçeri Aktarma Sihirbazı bu ilişkiyi, modelde oluşturulamayacağı için yoksayacaktır.

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 ya da Power Pivot eklentisini kullanarak Veri Modeli'nde bir hesaplanmış 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.

PowerPivot'taki ilişkilerin otomatik algılanması ve çıkarımı

Power Pivot eklentisini kullanarak verileri içeri 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 aktardığınızda, 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.

  • İ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: 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ş ortamında, esasen aynı veriyi içeren sütunların adlarında genellikle farklılıklar olur: Çalış Kimliği, ÇalışanKimliği, Çalışan Kimliği 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 (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.

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.