Relazioni tra tabelle nel modello di dati

Nota:  Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l' articolo in lingua inglese per riferimento.

Il browser in uso non supporta le funzionalità video. Installare Microsoft Silverlight, Adobe Flash Player o Internet Explorer 9.
Video: Relazioni in Power View e PowerPivot

Video: Relazioni in Power View e PowerPivot

Video: Relazioni in Power View e PowerPivot

Video: Relazioni in Power View e PowerPivot

Rendere più efficace per l'analisi dei dati mediante la creazione di relazioni tra tabelle differenti amogn. Una relazione è una connessione tra due tabelle che contengono dati: una colonna in ogni tabella è la base per la relazione. Per vedere perché le relazioni sono utili, immaginare rilevare i dati per gli ordini dei clienti nell'organizzazione. È possibile tenere traccia di tutti i dati in un'unica tabella con una struttura in questo:

CustomerID

Name

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Capon

cataldo.capon@contoso.com

5%

256

07-01-2010

Digitale compatta

11

1

Capon

cataldo.capon@contoso.com

5%

255

03-01-2010

Fotocamera SLR

15

2

Udinesi

luca.udinesi@contoso.com

10%

254

03-01-2010

Movie Maker

27

Questo approccio può funzionare, tuttavia comporta l'archiviazione di molti dati ridondanti, ad esempio l'indirizzo di posta elettronica del cliente per ogni ordine. L'archiviazione è economica, ma se l'indirizzo di posta elettronica cambia, è necessario assicurarsi di aggiornare ogni riga relativa al cliente. Una soluzione a questo problema consiste nel suddividere i dati in più tabelle e definire relazioni tra queste tabelle. Si tratta dell'approccio utilizzato nei database relazionali come SQL Server. Ad esempio, un database importato potrebbe rappresentare i dati dell'ordine tramite tre tabelle correlate:

Clienti

[CustomerID]

Name

Email

1

Capon

cataldo.capon@contoso.com

2

Udinesi

luca.udinesi@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

5%

2

10%

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

07-01-2010

Digitale compatta

11

1

255

03-01-2010

Fotocamera SLR

15

2

254

03-01-2010

Movie Maker

27

All'interno di un modello di dati sono presenti relazioni, ovvero una in modo esplicito creato o una, viene automaticamente creato per conto dell'utente quando si importano contemporaneamente più tabelle. È anche possibile utilizzare il componente aggiuntivo PowerPivot per creare o gestire il modello. Per informazioni dettagliate, vedere creare un modello di dati in Excel .

Se si usa il componente aggiuntivo PowerPivot per importare tabelle dallo stesso database, PowerPivot è in grado di rilevare le relazioni tra le tabelle in base alle colonne tra [parentesi] e di riprodurle in un modello di dati che viene compilato automaticamente in background. Per altre informazioni, vedere Inferenza e rilevamento automatici delle relazioni in questo articolo. Se si importano tabelle da più origini, è possibile creare relazioni manualmente come descritto in Creare una relazione tra due tabelle.

Relazioni sono basate su colonne in ogni tabella che contengano gli stessi dati. Si potrebbe riferirsi ad esempio una tabella clienti con una tabella ordini se ogni contenuta una colonna contenente un ID cliente. Nell'esempio, i nomi delle colonne sono identici, ma non si tratta di un requisito. Una potrebbe essere CustomerID e un'altra CustomerNumber, come tutte le righe nella tabella Ordini contengono un ID anche archiviata nella tabella Customers.

In un database relazionale, sono disponibili diversi tipi di chiavi. La chiave è in genere colonna con proprietà speciali. Comprendere lo scopo di ciascuna chiave consentono di gestire un modello di dati di più tabelle che fornisce i dati in un rapporto di tabella pivot o grafico pivot, Power View.

Anche se sono presenti molti tipi di tasti, sono più importanti ai fini di seguito:

  • Chiave primaria: identifica in modo univoco una riga in una tabella, ad esempio CustomerID nella tabella Customers .

  • Tasto alternativo (o candidati): una colonna diversa da quella la chiave primaria sia univoca. Ad esempio una tabella di dipendenti potrebbe archiviare un ID dipendente e un numero di previdenza sociale, che sono univoci.

  • Chiave esterna: una colonna che fa riferimento a una colonna univoca in un'altra tabella, ad esempio CustomerID nella tabella Orders , che fa riferimento a CustomerID nella tabella Customers.

In un modello di dati, la chiave primaria o alternativo viene considerato colonna correlata. Se una tabella contiene sia una chiave primaria e alternativa, è possibile usare uno come base di una relazione tra tabelle. La chiave esterna viene considerata la colonna di origine o la colonna soltanto. In questo esempio, è necessario definita una relazione tra CustomerID nella tabella ordini (colonna) e CustomerID nella tabella Customers (la colonna di ricerca). Se si importano dati da un database relazionale, per impostazione predefinita Excel sceglie la chiave esterna da una tabella e la chiave primaria corrispondente di altra tabella. Tuttavia, è possibile utilizzare qualsiasi colonna contenente valori univoci della colonna di ricerca.

La relazione tra un cliente e un ordine è una relazione uno-a-molti. Ogni cliente può avere più ordini, ma un ordine non può contenere più clienti. Un'altra relazione tra tabelle importante è-a-uno. In questo esempio qui, la tabella CustomerDiscounts che definisce un singolo tasso di sconto per ogni cliente, ha una relazione con la tabella clienti.

Questa tabella illustra le relazioni tra le tre tabelle (CustomerDiscounts, clientie ordini):

Relazione

Tipo

Colonna di ricerca

Colonna

Clienti-ScontiClienti

uno-a-uno

Clienti.IDCliente

ScontiClienti.IDCliente

Clienti-Ordini

uno-a-molti

Clienti.IDCliente

Ordini.IDCliente

Nota:  Le relazioni molti-a-molti non sono supportate in un modello di dati. Un esempio di una relazione molti-a-molti è una relazione diretta tra Prodotti e Clienti, in cui un cliente può comprare molti prodotti e lo stesso prodotto può essere comprato da molti clienti.

Dopo la creazione di una relazione, è necessario Excel in genere ricalcolare le formule che utilizzano le colonne di tabelle in relazione appena creata. Elaborazione potrebbe richiedere un po' di tempo a seconda della quantità di dati e la complessità delle relazioni. Per ulteriori informazioni, vedere Ricalcolare le formule.

Un modello di dati può contenere più relazioni tra due tabelle. Per creare calcoli accurati, Excel deve un singolo percorso da una tabella alla successiva. Di conseguenza, solo una relazione tra ogni coppia di tabelle è attiva alla volta. Se gli altri sono inattivi, è possibile specificare una relazione inattiva nelle formule e le query.

Nella visualizzazione Diagramma, la relazione attiva è una linea continua e quelle non attive sono le linee tratteggiate. Ad esempio, in AdventureWorksDW2012, la tabella DimDate contiene una colonna DateKey, che corrisponde alla tre colonne nella tabella FactInternetSales: OrderDate, in un'espressionee DataSpedizione. Se la relazione attiva è compresa tra DateKey e OrderDate, significa che la relazione predefinita nelle formule se non diversamente specificato.

Una relazione può essere creata quando vengono soddisfatti i requisiti seguenti:

Criteri

Descrizione

Identificatore univoco per ogni tabella

In ogni tabella deve essere presente una singola colonna tramite cui viene identificata in modo univoco ogni riga. La colonna correlata viene spesso definita chiave primaria.

Colonne di ricerca univoche

I valori dei dati nella colonna di ricerca devono essere univoci. In altri termini, nella colonna non possono essere contenuti duplicati. In un modello di dati le stringhe Null e vuote sono equivalenti a un valore vuoto, cioè un valore di dati distinto. Ciò vuole dire che non è possibile avere più valori Null nella colonna di ricerca.

Tipi di dati compatibili

I tipi di dati nella colonna di origine e nella colonna di ricerca devono essere compatibili. Per ulteriori informazioni sui tipi di dati, vedere tipi di dati supportati nei modelli di dati.

In un modello di dati non è possibile creare una relazione tra tabelle se la chiave è composta. Inoltre si è limitati a creare relazioni uno-a-uno e uno-a-molti. Gli altri tipi di relazioni non sono supportati.

Chiavi composte e colonne di ricerca

Una chiave composta è costituita da più di una colonna. Modelli di dati non è possibile usare le chiavi composte: una tabella deve avere sempre esattamente una colonna che identifica in modo univoco ogni riga della tabella. Se si importano tabelle con una relazione esistente in base a una chiave composta, importazione guidata tabella in PowerPivot ignorerà tale relazione perché non è possibile creare nel modello.

Per creare una relazione tra due tabelle con più colonne, la definizione di chiavi primarie ed esterne, innanzitutto combinare i valori per creare una singola colonna chiave prima di creare la relazione. È possibile farlo prima di importare i dati o mediante la creazione di una colonna calcolata nel modello di dati usando Power Pivot componente aggiuntivo.

Relazioni molti-a-molti

Un modello di dati non è possibile specificare le relazioni molti-a-molti. È possibile aggiungere semplicemente le tabelle di collegamento nel modello. Tuttavia, è possibile utilizzare funzioni DAX per le relazioni del modello molti-a-molti.

Self-join e cicli

I self-join non sono consentiti in un modello di dati. Un self-join è una relazione ricorsiva tra una tabella e se stessa. I self-join vengono spesso utilizzati per definire gerarchie padre-figlio. Ad esempio, è possibile creare un join di una tabella Dipendenti a se stessa in modo da creare una gerarchia in cui viene mostrata la catena di gestione di un'azienda.

In Excel non è possibile creare cicli tra relazioni in una cartella di lavoro. In altre parole, il set di relazioni seguente non è consentito.

Da Tabella 1, colonna a   a   Tabella 2, colonna f

Da Tabella 2, colonna f   a   Tabella 3, colonna n

Da Tabella 3, colonna n   a   Tabella 1, colonna a

Se si tenta di creare una relazione che comporterebbe la creazione di un ciclo, viene generato un errore.

Uno dei vantaggi dell'importazione di dati tramite il componente aggiuntivo PowerPivot consiste nel fatto che tramite PowerPivot è talvolta possibile rilevare relazioni e crearne di nuove nel modello di dati creato in Excel.

Quando si importano più tabelle, PowerPivot rileva automaticamente le relazioni esistenti tra le tabelle. Inoltre, quando viene creata una tabella pivot, PowerPivot analizza i dati nelle tabelle,  rileva le possibili relazioni non definite e suggerisce le colonne appropriate da includere in queste relazioni.

Nell'algoritmo di rilevamento vengono utilizzati i dati statistici relativi ai valori e ai metadati delle colonne per eseguire inferenze sulla probabilità di relazioni.

  • I tipi di dati in tutte le colonne correlate devono essere compatibili. Per il rilevamento automatico, sono supportati solo numeri interi e tipi di dati di testo. Per ulteriori informazioni sui tipi di dati, vedere Tipi di dati supportati nei modelli di dati.

  • Affinché la relazione venga rilevata correttamente, il numero di chiavi univoche nella colonna di ricerca deve essere maggiore dei valori nella tabella sul lato molti. In altre parole, nella colonna chiave sul lato molti della relazione non deve essere contenuto alcun valore che non sia disponibile nella colonna chiave della tabella di ricerca. Si supponga, ad esempio, di disporre di una tabella in cui siano elencati prodotti con i relativi ID (la tabella di ricerca) e una tabella in cui siano elencate le vendite per ogni prodotto (il lato molti della relazione). Se nei record di vendita è contenuto l'ID di un prodotto che non dispone di un ID corrispondente nella tabella Products, non è possibile creare la relazione automaticamente, ma dovrebbe essere possibile crearla manualmente. Affinché tramite Excel venga rilevata la relazione, è necessario innanzitutto aggiornare la tabella di ricerca Product con gli ID dei prodotti mancanti.

  • Verificare che il nome della colonna chiave sul lato "molti" è simile al nome della colonna chiave nella tabella di ricerca. Non è necessario che i nomi corrispondere esattamente al. Ad esempio, in un contesto aziendale, spesso è variazioni ai nomi delle colonne che contengono essenzialmente gli stessi dati: Emp ID, IDDipendente, ID dipendente, EMP_IDe così via. Nell'algoritmo vengono rilevati nomi simili e assegna una probabilità superiore alle colonne che hanno nomi simili o corrispondenza esatta. Pertanto, per aumentare la probabilità di creazione di una relazione, è possibile rinominare le colonne di dati da importare un nome simile a colonne delle tabelle esistenti. Se vengono rilevati più possibili relazioni, creare una relazione.

Queste informazioni potrebbero consentire di capire il motivo per cui non tutte le relazioni vengono rilevate o il modo in cui le modifiche apportate ai metadati, ad esempio al nome del campo e ai tipi di dati, possono migliorare i risultati del rilevamento automatico delle relazioni. Per ulteriori informazioni, vedere Risolvere i problemi relativi alle relazioni.

Rilevamento automatico per set denominati

Le relazioni non vengono rilevate automaticamente tra set denominati e campi correlati in una tabella pivot. Le relazioni possono essere create manualmente. Se si desidera utilizzare il rilevamento automatico delle relazioni, rimuovere ogni set denominato e aggiungere i singoli campi dal set denominato direttamente alla tabella pivot.

Inferenza delle relazioni

In alcuni casi, le relazioni tra le tabelle vengono concatenate automaticamente. Se ad esempio si crea una relazione tra i primi due set di tabelle indicati di seguito, viene dedotta l'esistenza di una relazione tra le altre due tabelle e viene stabilita automaticamente una relazione.

Prodotti e Categoria -- creata manualmente

Categoria e Sottocategoria -- creata manualmente

Prodotti e Sottocategoria -- relazione dedotta

Affinché relazioni vengano concatenate automaticamente, le relazioni devono andare in una direzione, come riportato in precedenza. Se le relazioni iniziali erano tra, ad esempio, Vendite e Prodotti e Vendite e Clienti, la relazione non viene dedotta. Ciò avviene perché la relazione tra Prodotti e Clienti è una relazione molti-a-molti.

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×