Relațiile dintre tabelele dintr-un model de date

Browserul nu acceptă redarea video. Instalați Microsoft Silverlight, Adobe Flash Player sau Internet Explorer 9.
Video: Relații în Power View și Power Pivot

Adăugați mai multă putere analizei dvs. de date prin crearea de relații între datele din diferite tabele. O relație este o conexiune între două tabele de date, bazate pe o coloană în fiecare. Pentru a vedea de ce sunt utile relațiile, imaginați-vă că urmăriți datele pentru comenzile clienților din compania dvs. Puteți urmări toate datele într-un singur tabel care are o structură ca următoarea:

CustomerID

Name

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

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

Această abordare poate funcționa, dar implică stocarea multor date redundante, cum ar fi adresa de e-mail a clientului pentru fiecare comandă. Stocarea este ieftină, dar dacă adresa de e-mail se modifică, trebuie să vă asigurați că actualizați fiecare rând pentru clientul respectiv. O soluție pentru această problemă este divizarea datelor în mai multe tabele și definirea relațiilor dintre tabelele respective. Aceasta este abordarea utilizată în bazele de date relaționale, cum ar fi SQL Server. De exemplu, o bază de date pe care o importați poate reprezenta datele comenzii prin utilizarea a trei tabele corelate:

Customers

[CustomerID]

Name

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

.05

2

.10

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

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

Există relații într-un model de date pe care l-ați creat în mod explicit sau pe care aplicația Excel îl creează în numele dvs. când importați simultan mai multe tabele. De asemenea, puteți utiliza programul de completare Power Pivot pentru a crea sau gestiona modelul. Pentru detalii, consultați Crearea unui model de date în Excel.

Dacă utilizați programul de completare Power Pivot pentru a importa tabele din aceeași bază de date, Power Pivot poate detecta relațiile dintre tabele pe baza coloanelor ce sunt între [paranteze] și poate reproduce aceste relații într-un model de date care este generat în spatele scenelor. Pentru informații suplimentare, consultați Detectarea automată și deducerea relațiilor din acest articol. Dacă importați tabele din mai multe surse, puteți crea manual relații așa cum se descrie în Crearea unei relații între două tabele.

Începutul paginii

În acest articol

Coloanele și cheile

Tipurile de relații

Relațiile și performanța

Mai multe relații între tabele

Cerințele pentru relațiile dintr-un tabel

Neacceptat în relația dintr-un tabel

Cheile compuse și coloanele de căutare

Relațiile de tip mai mulți-la-mai mulți

Unirile automate și buclele

Detectarea automată și deducerea relațiilor din PowerPivot

Detectarea automată pentru seturile denumite

Deducerea relațiilor

Coloanele și cheile

Relațiile se bazează pe coloanele din fiecare tabel ce conține aceleași date. De exemplu, tabelele Customers și Orders pot fi asociate unul altuia, deoarece ambele conțin o coloană ce stochează un ID de client. În exemplu, numele coloanelor sunt aceleași, dar aceasta nu este o cerință. Una poate fi CustomerID, iar cealaltă poate fi CustomerNumber, atâta timp cât toate rândurile din tabelul Orders conțin un ID ce este stocat și în tabelul Customers.

Într-o bază de date relațională, există câteva tipuri de chei, care sunt, în general, doar coloane cu proprietăți speciale. Înțelegerea scopului fiecărei chei vă poate ajuta să gestionați un model de date cu mai multe tabele care furnizează date într-un raport PivotTable, PivotChart sau Power View.

Următoarele chei sunt cele mai interesante pentru scopul nostru:

  • Cheie primară: identifică în mod unic un rând dintr-un tabel, cum ar fi CustomerID din tabelul Customers.

  • Cheie alternativă (sau cheie candidat): o coloană diferită de cheia primară care este unică. De exemplu, un tabel Employees poate stoca un ID de angajat și un cod numeric personal, ambele fiind unice.

  • Cheie externă: o coloană care se referă la o coloană unică dintr-un alt tabel, cum ar fi CustomerID din tabelul Orders, care face referire la CustomerID din tabelul Customers.

Într-un model de date, cheia primară sau cheia alternativă este denumită coloană corelată. Dacă un tabel conține atât o cheie primară, cât și o cheie alternativă, le puteți utiliza pe oricare drept bază a relației dintr-un tabel. Cheia externă este denumită coloană sursă sau pur și simplu coloană. În exemplul nostru, o relație va fi definită între CustomerID din tabelul Orders (coloana) și CustomerID din tabelul Customers (coloana de căutare). Dacă importați date dintr-o bază de date relațională, în mod implicit aplicația Excel alege cheia externă dintr-un tabel și cheia primară corespunzătoare din celălalt tabel. Totuși, puteți utiliza orice coloană care conține valori unice pentru coloana de căutare.

Tipurile de relații

Relația dintre tabelele Customers și Orders este o relație de tip unu-la-mai mulți. Fiecare client poate avea mai multe comenzi, dar o comandă nu poate avea mai mulți clienți. Celelalte tipuri de relații sunt unu-la-unu și mai mulți-la-mai mulți. Tabelul CustomerDiscounts ce definește o singur rată de reducere pentru fiecare client este într-o relație de tip unu-la-unu cu tabelul Customers.

Tabelul următor prezintă relațiile dintre cele trei tabele:

Relație

Tip

Coloană de căutare

Coloană

Customers-CustomerDiscounts

unu-la-unu

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

unu-la-mai mulți

Customers.CustomerID

Orders.CustomerID

Notă :  Relațiile de tip mai mulți-la-mai mulți nu sunt acceptate într-un model de date. Un exemplu de relație de tip mai mulți-la-mai mulți este o relație directă între tabelele Products și Customers, în care un client poate cumpăra mai multe produse și același produs poate fi cumpărat de mulți clienți.

Relațiile și performanța

După crearea tuturor relațiilor, aplicația Excel trebuie să recalculeze toate formulele care utilizează coloanele din tabele în relația nou creată. Procesarea poate dura un timp în funcție de volumul de date și de complexitatea relațiilor. Pentru detalii, consultați Recalcularea formulelor.

Mai multe relații între tabele

Un model de date poate avea mai multe relații între două tabele. Pentru a crea calcule precise, aplicația Excel are nevoie de o singură cale de la un tabel la următorul. Prin urmare, numai o singură relație între fiecare pereche de tabele este activă la un moment dat. Celelalte sunt inactive, însă puteți specifica o relație inactivă în formule și interogări. În Vizualizare diagramă, relația activă este o linie continuă și cele inactive sunt linii întrerupte. De exemplu, în AdventureWorksDW2012, tabelul DimDate conține o coloană, DateKey, care este corelată cu trei coloane diferite în tabelul FactInternetSales: OrderDate, DueDate și ShipDate. Dacă relația activă este între DateKey și OrderDate, aceea este relația implicită în formule dacă nu specificați altceva.

Începutul paginii

Cerințele pentru relațiile dintr-un tabel

O relație poate fi creată când se îndeplinesc următoarele cerințe:

Criterii

Descriere

Identificatorul unic pentru fiecare tabel

Fiecare tabel trebuie să conțină o singură coloană care identifică în mod unic fiecare rând din tabelul respectiv. Această coloană este denumită adesea cheie primară.

Coloanele unice de căutare

Valorile datelor din coloana de căutare trebuie să fie unice. Cu alte cuvinte, coloana nu poate conține dubluri. Într-un model de date, valorile null și șirurile necompletate sunt echivalente cu o valoare goală care este o valoare distinctă de date. Aceasta înseamnă că nu puteți avea mai multe valori null în coloana de căutare.

Tipurile de date compatibile

Tipurile de date din coloana sursă și din coloana de căutare trebuie să fie compatibile. Pentru informații suplimentare legate de tipurile de date, consultați Tipurile de date acceptate înmodelele de date.

Neacceptat în relația dintr-un tabel

Într-un model de date, puteți crea o relație între tabele dacă cheia este o cheie compusă. De asemenea, sunteți limitați să creați relații de tip unu-la-unu și unu-la-mai mulți. Alte tipuri de relații nu sunt acceptate.

Cheile compuse și coloanele de căutare

O cheie compusă este alcătuită din mai multe coloane. Modelele de date nu pot utiliza chei compuse; un tabel trebuie să conțină exact o coloană care identifică în mod unic fiecare rând din tabel. Dacă importați tabele care au o relație existentă bazată pe o cheie compusă, Expertul import tabel din Power Pivot va ignora relația respectivă, deoarece nu poate fi creată în model.

Pentru a crea o relație între două tabele care au mai multe coloane ce definesc chei primare și externe, combinați mai întâi valorile pentru a crea o singură coloană cheie înainte de a crea relația. Puteți face acest lucru înainte de a importa datele sau creând o coloană calculată în modelul de date ce utilizează programul de completare Power Pivot.

Relațiile de tip mai mulți-la-mai mulți

Un model de date nu poate conține relații de tip mai mulți-la-mai mulți. Nu puteți adăuga pur și simplu tabele cu joncțiuni în model. Totuși, puteți utiliza funcțiile DAX pentru a modela relații de tip mai mulți-la-mai mulți.

Unirile automate și buclele

Unirile automate nu sunt permise într-un model de date. O unire automată este o relație recursivă între un tabel și ea însăși. Unirile automate sunt utilizate adesea pentru a defini ierarhii părinte-fiu. De exemplu, puteți uni un tabel Employees cu el însuși pentru a crea o ierarhie ce prezintă ierarhia administrativă într-o companie.

Aplicația Excel nu permite crearea buclelor între relațiile dintr-un registru de lucru. Cu alte cuvinte, următorul set de relații este interzis.

  • Între Tabelul 1, coloana a   și   Tabelul 2, coloana f

  • Între Tabelul 2, coloana f   și   Tabelul 3, coloana n

  • Între Tabelul 3, coloana n   și   Tabelul 1, coloana a

Dacă încercați să creați o relație care va duce la crearea unei bucle, este generată o eroare.

Începutul paginii

Detectarea automată și deducerea relațiilor în Power Pivot

Unul dintre avantajele importului de date cu ajutorul programului de completare Power Pivot este acela că Power Pivot poate detecta uneori relații și poate crea relații noi în modelul de date pe care îl creează în Excel.

Când importați mai multe tabele, Power Pivot detectează automat toate relațiile existente între tabele. De asemenea, când creați un raport PivotTable, Power Pivot analizează datele din tabele.  Detectează posibilele relații care nu au fost definite și sugerează coloanele corespunzătoare de inclus în relațiile respective.

Algoritmul de detectare utilizează date statistice legate de valorile și metadatele coloanelor pentru genera deduceri legate probabilitatea relațiilor.

  • Tipurile de date din toate coloanele corelate trebuie să fie compatibile. Pentru detectarea automată, sunt acceptate numai tipuri de date numere întregi și text. Pentru informații suplimentare legate de tipurile de date, consultați Tipurile de date acceptate în modelele de date.

  • Pentru detectarea relației, numărul cheilor unice din coloana de căutare trebuie să fie mai mare decât valorile din tabelul din partea mai mulți. Cu alte cuvinte, coloana cheie din partea mai mulți a relației nu trebuie să conțină nicio valoare care nu este în coloana cheie din tabelul de căutare. De exemplu, să presupunem că aveți un tabel ce listează produse cu ID-urile lor (tabelul de căutare) și un tabel de vânzări care listează vânzările pentru fiecare produs (partea mai mulți a relației). Dacă înregistrările de vânzări conțin ID-ul unui produs care nu are un ID corespunzător în tabelul Products, relația nu poate fi creată automat, însă o puteți crea manual. Pentru ca aplicația Excel să detecteze relația, trebuie să actualizați mai întâi tabelul de căutare Product cu ID-urile produselor lipsă.

  • Asigurați-vă că numele coloanei cheie de pe partea mai mulți este similar cu numele coloanei cheie din tabelul de căutare. Numele nu trebuie să fie exact aceleași. De exemplu, în setarea unei companii, aveți adesea variații ale numelor coloanelor ce conțin în principiu aceleași date: Emp ID, EmployeeID, Employee ID, EMP_ID etc. Algoritmul detectează nume similare și atribuie o probabilitate mai mare acelor coloane care au nume similare sau care corespund exact. Prin urmare, pentru a crește probabilitatea creării unei relații, puteți încerca să redenumiți coloanele din datele pe care le importați cu un nume asemănător coloanelor din tabelele existente. Dacă aplicația Excel găsește mai multe relații posibile, atunci nu creează o relație.

Aceste informații vă pot ajuta să înțelegeți de ce nu sunt detectate toate relațiile sau modul în care modificările din metadate - cum ar fi numele câmpului și tipurile de date - pot îmbunătăți rezultatele detectării automate a relațiilor. Pentru informații suplimentare, consultați Depanarea relațiilor.

Detectarea automată pentru seturile denumite

Relațiile nu sunt detectate automat între seturile denumite și câmpurile corelate dintr-un raport PivotTable. Puteți crea manual aceste relații. Dacă doriți să utilizați detectarea automată a relațiilor, eliminați fiecare set denumit și adăugați câmpurile individuale din setul denumit direct în raportul PivotTable.

Deducerea relațiilor

În anumite cazuri, relațiile dintre tabele sunt înlănțuite automat. De exemplu, în cazul în care creați o relație între primele două seturi de tabele de mai jos, se deduce existența unei relații între celelalte două tabele și se stabilește automat o relație.

  • Products și Category - create manual

  • Category și SubCategory - create manual

  • Products și SubCategory - relația este dedusă

Pentru înlănțuirea automată a relațiilor, acestea trebuie să meargă într-o direcție, după cum este prezentat mai sus. Dacă relațiile inițiale au fost, de exemplu, între tabelele Sales și Products și Sales și Customers, nu se deduce o relație. Aceasta deoarece relația dintre tabelele Products și Customers este o relație de tip mai mulți-la-mai mulți.

Începutul paginii

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×