Több energiát adhat az adatelemzéshez kapcsolatok létrehozásával, különböző táblák létrehozásával. A kapcsolat két, adatokat tartalmazó tábla közötti kapcsolat: minden tábla egy-egy oszlopa a kapcsolat alapja. A kapcsolatok hasznosságának megértéséhez képzelje el, hogy vállalkozásában az ügyfelek megrendeléseire vonatkozó adatokat kell nyomon követnie. Egyetlen tábla összes adatát nyomon követheti az alábbihoz hasonló struktúrával:
Ügyfél-azonosító |
Név |
Levelezés |
Kedvezmény |
Rendelésazonosító |
RendelésDátuma |
Termék |
Mennyiség |
---|---|---|---|---|---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
.05 |
256 |
2010-01-07 |
Compact Digital |
11 |
1 |
Ashton |
chris.ashton@contoso.com |
.05 |
255 |
2010-01-03 |
SLR Camera |
15 |
2 |
Jaworski |
michal.jaworski@contoso.com |
.10 |
254 |
2010-01-03 |
Budget Movie-Maker |
27 |
Ez a megközelítés működőképes lehet, de nagyon sok felesleges adat tárolásával jár, például minden rendelésnél szerepel a vevő e-mail címe. Az adattárolás olcsó, de ügyelnie kell arra, hogy az adott vevőre vonatkozóan az összes sort frissítse, ha megváltozik a vevő e-mail címe. A probléma egyik megoldása, ha az adatokat több táblázatra osztja fel, és a táblázatok között kapcsolatokat ad meg. Ezt a megközelítést alkalmazzák a relációs adatbázisok, mint például az SQL Server. Az importált adatbázis például a rendelési adatokat akár három kapcsolódó táblában képezheti le:
Ügyfelek
[Ügyfél-azonosító] |
Név |
Levelezés |
---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
2 |
Jaworski |
michal.jaworski@contoso.com |
Ügyfélkedvezmények
[Ügyfél-azonosító] |
Kedvezmény |
---|---|
1 |
,05 |
2 |
,10 |
Rendelések
[Ügyfél-azonosító] |
Rendelésazonosító |
RendelésDátuma |
Termék |
Mennyiség |
---|---|---|---|---|
1 |
256 |
2010-01-07 |
Compact Digital |
11 |
1 |
255 |
2010-01-03 |
SLR Camera |
15 |
2 |
254 |
2010-01-03 |
Budget Movie-Maker |
27 |
A kapcsolatok egy adatmodellen belül léteznek – az egyiket ön explicit módon hozza létre, vagy amelyet az Excel automatikusan hoz létre az Ön nevében, amikor egyszerre több táblát importál. A Power Pivot modult is használhatja a modell létrehozására vagy kezelésére. További információ az Adatmodell létrehozása az Excel programban című témakörben olvasható.
Ha a Power Pivot modult használja táblák importálására ugyanabból az adatbázisból, akkor a Power Pivot a [szögletes zárójelek] között álló oszlopok alapján képes észlelni a táblák közötti kapcsolatokat, majd a háttérben összeállított adatmodellben reprodukálni ezeket a kapcsolatokat. További információt a cikk későbbi, Kapcsolatok automatikus észlelése és származtatása című szakaszában olvashat. Ha több forrásból importál táblákat, a kapcsolatokat létrehozhatja kézzel a következő témakörben leírtak szerint: Kapcsolat létrehozása két táblázat között.
A kapcsolatok olyan oszlopokon alapulnak, amelyek mindegyik táblában ugyanazokat az adatokat tartalmazzák. Például összekapcsolhat egy Vevők táblát egy Rendelések táblával, ha mindegyik tartalmaz egy ügyfél-azonosítót tároló oszlopot. A példában az oszlopnevek azonosak, de ez nem követelmény. Egyikük lehetne CustomerID (Ügyfél-azonosító), míg a másik CustomerNumber (Ügyfélszám), mindaddig, amíg az Orders (Rendelések) tábla olyan azonosítót tartalmaz, amely a Customers (Ügyfelek) táblában is tárolva van.
A relációs adatbázisokban számos kulcstípus létezik. A kulcsok általában speciális tulajdonságokkal rendelkező oszlopok. Az egyes kulcsok szerepének megértése segíthet egy olyan, több táblázatot tartalmazó adatmodell kezelésében, amely adatokat szolgáltat kimutatásokhoz, kimutatásdiagramokhoz vagy Power View nézetet tartalmazó jelentésekhez.
Bár számos típusú kulcs létezik, ezek a legfontosabbak a mi céljainkhoz:
-
Elsődleges kulcs: egyedileg azonosítja egy tábla egy sorát, például a CustomerID értéket a Vevők táblában.
-
Alternatív kulcs (vagy jelölt kulcs): az elsődleges kulcstól eltérő, egyedi oszlop. Például egy Employees (Alkalmazottak) tábla tárolhat egy alkalmazotti azonosítót és egy társadalombiztosítási számot, amelyek egyaránt egyedi azonosítók.
-
Idegen kulcs: olyan oszlop, amely egy másik tábla egyedi oszlopára hivatkozik, például a Rendelések táblában lévő CustomerID oszlopra, amely a Vevők táblában a CustomerID értékre hivatkozik.
Az adatmodellekben az elsődleges vagy a másodlagos kulcs az úgynevezett kapcsolódó oszlop. Amennyiben egy táblázat elsődleges és másodlagos kulcsot is tartalmaz, bármelyik használható táblázatkapcsolat alapjául. A külső kulcs nevezhető forrásoszlopnak vagy egyszerűen csak oszlopnak. A példánkban a CustomerID (Ügyfélazonosító) tábla (oszlop) és aCustomerID (Vevőazonosító) tábla (a keresőmező oszlop) között van definiálva. Amennyiben relációs adatbázisból importál adatokat, az Excel alapértelmezés szerint az egyik táblából kiválasztja a külső kulcsot, a másik táblából pedig a hozzá tartozó elsődleges kulcsot. Bármely olyan oszlop használható azonban keresési oszlopként, amely egyedi értékeket tartalmaz.
Az ügyfél és a rendelés közötti kapcsolat egy-a-többhöz kapcsolat. Mindegyik ügyfélnek több rendelése is lehet, de egy rendeléshez nem tartozhat több ügyfél. Egy másik fontos táblakapcsolat az egy-az-egyhez. Ebben a példában a CustomerDiscounts tábla, amely minden ügyfélhez egyetlen kedvezményt határoz meg, egy-az-egyhez kapcsolatban áll az Ügyfelek táblával.
Ez a táblázat a három tábla (Customers, CustomerDiscounts és Orders) közötti kapcsolatokat mutatja be:
Kapcsolatok |
Típus |
Keresőoszlop |
Oszlop |
---|---|---|---|
Customers-CustomerDiscounts |
„egy az egyhez” |
Customers.CustomerID |
CustomerDiscounts.CustomerID |
Customers-Orders |
„egy a többhöz” |
Customers.CustomerID |
Orders.CustomerID |
Megjegyzés: A „több a többhöz” kapcsolatok adatmodellekben nem támogatottak. A „több a többhöz” típusú kapcsolatra példa a Products (Termékek) és a Customers (Ügyfelek) tábla közötti közvetlen kapcsolat, vagyis amikor egy ügyfél több terméket vásárolhat, míg ugyanazt a terméket több ügyfél is megvásárolhatja.
A kapcsolatok létrehozása után az Excelnek általában újra kell számítania az újonnan létrehozott kapcsolat tábláiból származó oszlopokat használó képleteket. Az adatmennyiségtől és a kapcsolatok bonyolultságától függően az adatok feldolgozása eltarthat egy ideig. További részletekért lásd: Képletek újraszámítása.
Egy adatmodellben több kapcsolat is lehetséges két táblázat között. A pontos számítások létrehozásához az Excelnek egyetlen útvonalra van szüksége az egyik táblázattól a másikig. Ezért egy-egy táblapár között egy időben csak az egyik kapcsolat aktív. Bár a többi inaktív, megadhat egy inaktív kapcsolatot a képletekben és a lekérdezésekben.
Diagramnézetben az aktív kapcsolat egy folytonos vonal, az inaktívak pedig szaggatott vonalak. Az AdventureWorksDW2012-ben például a DimDate tábla tartalmaz egy DateKey nevű oszlopot, amely a FactInternetSales tábla három különböző oszlopához kapcsolódik: OrderDate, DueDate és ShipDate. Ha a DateKey és az OrderDate oszlop közötti kapcsolat aktív, akkor a képletekben ez lesz az alapértelmezett kapcsolat, amíg nem ad meg mást.
Akkor hozható létre kapcsolat, ha teljesülnek az alábbi követelmények:
Feltétel |
Leírás |
---|---|
Egyedi azonosító mindegyik táblázathoz |
Minden táblázatnak rendelkeznie kell egy oszloppal, amely egyedileg azonosítja a táblázat egyes sorait. Ezt az oszlopot gyakran elsődleges kulcsnak hívják. |
Egyedi keresési oszlopok |
A keresési oszlopban szereplő adatértékeknek egyedieknek kell lenniük. Más megfogalmazásban: az oszlop nem tartalmazhat ismétlődő értékeket. Az adatmodellekben a null értékek és az üres karakterláncok egyenértékűek az üres értékkel, amely egy önálló adatérték. Ez azt jelenti, hogy a keresési oszlop nem tartalmazhat több null értéket. |
Kompatibilis adattípusok |
A forrásoszlop és a keresési oszlop adattípusainak kompatibilisnek kell lenniük egymással. Az adattípusokkal kapcsolatos további információkért lásd: Az adatmodellekben támogatott adattípusok. |
Egy adatmodellben nem hozható létre táblázatkapcsolat, ha a kulcs összetett kulcs. Emellett kizárólag „egy az egyhez” és „egy a többhöz” kapcsolat hozható létre. A többi kapcsolattípus nem támogatott.
Az összetett kulcsok és a keresési oszlopok
Az összetett kulcs egynél több oszlopból álló kulcs. Az adatmodellek nem használhatnak összetett kulcsokat: a tábláknak mindig pontosan egy olyan oszloppal kell rendelkezniük, amely egyedileg azonosítja a tábla egyes sorait. Ha összetett kulcson alapuló meglévő kapcsolatokkal rendelkező táblákat importál, a Power Pivot Táblaimportáló varázslója figyelmen kívül hagyja ezt a kapcsolatot, mert nem hozható létre a modellben.
Ha két tábla között kézzel kíván kapcsolatot létrehozni, és több oszlop határozza meg az elsődleges és a külső kulcsokat, a kapcsolat létrehozása előtt az értékek egyesítésével egyetlen kulcsoszlopot kell létrehoznia. Ezt megteheti az adatok importálása előtt, vagy létrehozhat egy számított oszlopot az adatmodellben a Power Pivot bővítmény használatával.
„Több a többhöz” kapcsolatok
Az adatmodellekben nem szerepelhetnek „több a többhöz” kapcsolatok. Amodellben nem vehet fel kapcsolótáblákat . DAX-függvényekkel azonban lehetséges a „több a többhöz” kapcsolatok modellezése.
Önillesztések és hurkok
Az önillesztés nem engedélyezett az adatmodellekben. Az önillesztés egy rekurzív kapcsolat egy tábla és saját maga között. Az önillesztések gyakran a szülő-gyermek hierarchiák meghatározásához kerülnek felhasználásra. Például az alkalmazottakat tartalmazó tábla önillesztésével olyan hierarchia hozható létre, amely mutatja a vállalkozás vezetési struktúráját.
Az Excel nem engedélyezi a kapcsolati hurkok létrehozását a munkafüzetekben. Más szóval a következő kapcsolatkészlet tiltott.
1. tábla, „a” oszlop – 2. tábla, „f” oszlop
2. tábla, „f” oszlop – 3. tábla, „n” oszlop
3. tábla, „n” oszlop – 1. tábla, „a” oszlop
Ha olyan kapcsolatot próbál létrehozni, amely hurkot eredményezne, a program hibát jelez.
Az adatoknak a Power Pivot modullal történő importálása egyebek között azzal az előnnyel jár, hogy a Power Pivot néha képes észlelni a kapcsolatokat, és új kapcsolatokat hozhat létre az Excelben létrehozott adatmodellben.
Amikor több táblát importál, a automatikusan észleli a táblák közötti meglévő kapcsolatokat. Kimutatás létrehozásakor Power Pivot a táblákban lévő adatokat is elemzi. Észleli azokat a lehetséges kapcsolatokat, amelyek nincsenek meghatározva, valamint javaslatot tesz az ezekben a kapcsolatokban használható, megfelelő oszlopokra.
Az észlelési algoritmus az oszlopok értékeire és metaadataira vonatkozó statisztikai adatok használatával állapít meg feltételezéseket a kapcsolatok valószínűségére vonatkozóan.
-
Az összes kapcsolódó oszlopban található adatoknak kompatibilisnek kell lenniük egymással. Az automatikus észlelésnél csak az egész szám és a szöveges adattípusok támogatottak. Az adattípusok részletes ismertetését lásd: Az adatmodellekben támogatott adattípusok.
-
Egy kapcsolat sikeres észleléséhez az szükséges, hogy a keresési oszlopban található egyedi kulcsok száma nagyobb legyen a „több” oldalon álló táblázat értékeinek számánál. Más szóval, a kapcsolat „több” oldalán álló kulcsoszlopnak nem szabad olyan értéket tartalmaznia, amely nem szerepel a keresési tábla kulcsoszlopában. Tegyük fel például, hogy van egy, a termékeket azonosítójukkal együtt tartalmazó tábla (a keresési tábla), valamint egy értékesítési tábla, amely felsorolja az értékesítési forgalmat minden egyes termékhez (a kapcsolat „több” oldala). Ha az értékesítési rekordok egy olyan termék azonosítóját is tartalmazzák, amelynek megfelelő azonosító nem található a termékek táblájában, akkor a kapcsolat nem hozható létre automatikusan, de kézzel esetleg létrehozhatja. Ahhoz, hogy az Excel észlelje a kapcsolatot, először frissítenie kell a termékek keresési tábláját, hogy az tartalmazza a hiányzó termékek azonosítóját.
-
Győződjön meg arról, hogy a kulcsoszlop neve a több oldalon hasonló a keresési tábla kulcsoszlopának nevéhez. A neveknek nem kell pontosan azonosnak lenniük. Például egy üzleti beállításban gyakran változik azoknak az oszlopoknak a neve, amelyek lényegében ugyanazokat az adatokat tartalmazzák: Emp ID, EmployeeID, Employee ID, EMP_ID stb. Az algoritmus hasonló neveket észlel, és nagyobb valószínűséggel rendel hozzá hasonló vagy pontosan egyező nevű oszlopokat. Ezért a kapcsolat létrehozásának valószínűségének növelése érdekében megpróbálhatja átnevezni az importált adatok oszlopait a meglévő táblák oszlopaihoz hasonlóra. Ha az Excel több lehetséges kapcsolatot talál, akkor nem hoz létre kapcsolatot.
Ez a tájékoztatás segíthet annak megértésében, hogy miért nem észlel a program minden kapcsolatot, illetve hogy a metaadatok – például a mezőnév és az adattípusok – megváltoztatása hogyan javíthatja a kapcsolatok automatikus észlelésének hatékonyságát. További ismertetést a következő témakörben talál: Kapcsolatok hibaelhárítása.
Elnevezett készletek automatikus észlelése
A program nem észleli automatikusan az elnevezett készletek és egy kimutatásban szereplő kapcsolódó mezők közötti kapcsolatokat. Ezek a kapcsolatok manuálisan állíthatók fel. Ha az automatikus kapcsolatészlelést szeretné használni, távolítsa el az elnevezett készleteket, és vegye fel az elnevezett készlet egyes mezőit közvetlenül a kimutatásba.
Kapcsolatok származtatása
Bizonyos esetekben a táblák közötti kapcsolatok automatikusan láncolódnak. Ez azt jelenti, hogy ha például létrehoz egy kapcsolatot az alábbi első két táblakészlet között, a másik két tábla között a program feltételezi a kapcsolat meglétét, és automatikusan létrejön egy kapcsolat.
Products (Termékek) és Category (Kategória) – manuálisan létrehozva
Category (Kategória) és SubCategory (Alkategória) – manuálisan létrehozva
Products (Termékek) és SubCategory (Alkategória) – következtetett kapcsolat
A kapcsolatok automatikus láncolásához a kapcsolatoknak a fentieknek megfelelően egy irányba kell haladniuk. Amennyiben a kiinduló kapcsolatok például a Sales (Értékesítés) és a Products (Termékek), illetve a Sales (Értékesítés) és a Customers (Ügyfelek) táblák között voltak, a rendszer nem származtat kapcsolatot. Ennek az az oka, hogy a Products (Termékek) és a Customers (Ügyfelek) táblák között „több a többhöz” típusú kapcsolat van.