Relațiile dintre tabelele dintr-un model de date

Notă: Dorim să vă oferim cel mai recent conținut de ajutor, cât mai rapid posibil, în limba dvs. Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Vă rugăm să ne spuneți dacă informațiile v-au fost utile, în partea de jos a acestei pagini. Aici se află articolul în limba engleză, ca să îl puteți consulta cu ușurință.

Browserul nu acceptă redarea video. Instalați Microsoft Silverlight, Adobe Flash Player sau Internet Explorer 9.

Adăugați mai multă putere la analiza datelor prin crearea relațiilor amogn tabele diferite. O relație este o conexiune între două tabele care conțin date: o coloană din fiecare tabel este baza relației. Pentru a vedea de ce sunt utile relațiile, imaginați-vă că urmăriți datele pentru comenzile clienților din firma dvs. Puteți urmări toate datele dintr-un singur tabel cu o structură ca aceasta:

IDClient

Nume

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

Relațiile există într-un model de date — una pe care o creați în mod explicit sau una pe care Excel o creează automat în numele dvs., atunci când importați simultan mai multe tabele. De asemenea, puteți utiliza programul de completare Power Pivot pentru a crea sau a gestiona modelul. Consultați crearea unui model de date în Excel pentru detalii.

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.

Relațiile se bazează pe coloanele din fiecare tabel ce conține aceleași date. De exemplu, puteți să raportați un tabel clienți cu un tabel de comenzi dacă fiecare conține o coloană care 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ă mai multe tipuri de taste. O cheie este de obicei coloană 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.

Deși există mai multe tipuri de chei, acestea sunt cele mai importante pentru scopul nostru:

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

  • 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 IDClient din tabelul Orders , care face referire la IDClient din tabelul clienți.

Î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 IDClient în tabelul Orders (coloana) și IDClient din tabelul clienți (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.

Relația dintre un client și o comandă este o relație unu-la-mai-mulți. Fiecare client poate avea mai multe comenzi, dar o comandă nu poate avea mai mulți clienți. O altă relație importantă de tabel este unu-la-unu. În exemplul nostru de aici, tabelul CustomerDiscounts , care definește o rată de reducere unică pentru fiecare client, are o relație unu-la-unu cu tabelul clienți.

Acest tabel afișează relațiile dintre cele trei tabele (clienți, CustomerDiscountsși comenzi):

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.

După ce s-a creat o relație, Excel trebuie să recalculeze de obicei toate formulele care utilizează coloane din tabelele din relația nou creată. Procesarea poate dura un timp în funcție de volumul de date și de complexitatea relațiilor. Pentru mai multe detalii, consultați reCalcularea formulelor.

Un model de date poate avea mai multe relații între două tabele. Pentru a construi calcule precise, Excel are nevoie de o singură cale de la un tabel la altul. Prin urmare, numai o singură relație între fiecare pereche de tabele este activă la un moment dat. Deși ceilalți sunt inactivi, puteți specifica o relație inactivă în formule și interogări.

În vizualizarea diagramă, relația activă este o linie solidă, iar cele inactive sunt linii întrerupte. De exemplu, în AdventureWorksDW2012, tabelul DimDate conține o coloană, cheiedată, care este legată de trei coloane diferite din tabelul FactInternetSales: OrderDate, DueDateși controlului DatăLivrare. Dacă relația activă este între DateKey și OrderDate, aceea este relația implicită în formule dacă nu specificați altceva.

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, șirurile cu valoare Null și cele goale sunt echivalente cu un șir necompletat, care reprezintă o valoare de date distinctă. 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 mai multe informații despre tipurile de date, consultați tipuri de date acceptate în modelele de date.

Î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 tastele compozite: un tabel trebuie să aibă întotdeauna o singură coloană care identifică în mod unic fiecare rând din tabel. Dacă importați tabele care au o relație existentă pe baza unei chei compozite, Expertul import tabel din Power Pivot va ignora acea relație, 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 să importați datele sau creând o coloană calculată în modelul de date utilizând 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.

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 din mai multe laturi este similar cu numele coloanei cheie din tabelul de căutare. Numele nu trebuie să fie exact la fel. De exemplu, într-o setare de firmă, deseori aveți variații pentru numele coloanelor care conțin în esență aceleași date: ID-ul EMP, IDAngajat, ID-ul angajaților, EMP_IDetc. Algoritmul detectează nume similare și atribuie o probabilitate mai mare acestor coloane care au nume asemănătoare sau care se potrivesc exact. Prin urmare, pentru a mări probabilitatea creării unei relații, puteți încerca să redenumiți coloanele din datele pe care le importați în ceva similar cu coloanele din tabelele existente. Dacă 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.

Extindeți-vă competențele Office
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.

×