Lezione 4: Creare relazioniLesson 4: Create relationships

SI APPLICA A:SìAzure Analysis ServicesSìSQL Server Analysis Services (a partire dalla versione 2017)APPLIES TO:yesAzure Analysis ServicesyesSQL Server Analysis Services (starting with 2017)

In questa lezione si verificheranno le relazioni create automaticamente quando sono stati importati i dati e si aggiungeranno nuove relazioni tra tabelle diverse.In this lesson, you verify the relationships that were created automatically when you imported data and add new relationships between different tables. Una relazione è una connessione tra due tabelle che stabilisce la modalità con cui devono essere correlati i dati in tali tabelle.A relationship is a connection between two tables that establishes how the data in those tables should be correlated. Ad esempio, la tabella DimProduct e la tabella DimProductSubcategory hanno una relazione basata sul fatto che ogni prodotto appartiene a una sottocategoria.For example, the DimProduct table and the DimProductSubcategory table have a relationship based on the fact that each product belongs to a subcategory. Per altre informazioni, vedere Relationships (Relazioni).To learn more, see Relationships.

Tempo previsto per il completamento della lezione: 10 minutiEstimated time to complete this lesson: 10 minutes

PrerequisitiPrerequisites

Questo argomento fa parte di un'esercitazione sulla creazione di modelli tabulari, con lezioni che è consigliabile completare nell'ordine indicato.This topic is part of a tabular modeling tutorial, which should be completed in order. Prima di eseguire le attività in questa lezione, è necessario avere completato la lezione precedente: Lezione 3: Contrassegnare come tabella data.Before performing the tasks in this lesson, you should have completed the previous lesson: Lesson 3: Mark as Date Table.

Esaminare le relazioni esistenti e aggiungere nuove relazioniReview existing relationships and add new relationships

Quando sono stati importati i dati usando Recupera dati, dal database AdventureWorksDW2014 si sono ottenute sette tabelle.When you imported data by using Get Data, you got seven tables from the AdventureWorksDW2014 database. In genere, quando si importano dati da un'origine relazionale, le relazioni esistenti vengono importate automaticamente insieme ai dati.Generally, when you import data from a relational source, existing relationships are automatically imported together with the data. Affinché la funzionalità Recupera dati crei automaticamente le relazioni nel modello di dati, deve esserci una relazione tra le tabelle nell'origine dati.In order for Get Data to automatically create relationships in the data model, there must be relationsips between tables at the data source.

Prima di procedere alla creazione del modello, verificare che tali relazioni tra tabelle siano state create in modo appropriato.Before you proceed with authoring your model, you should verify those relationships between tables were created properly. Per questa esercitazione vengono aggiunte anche tre nuove relazioni.For this tutorial, you also add three new relationships.

Per esaminare le relazioni esistentiTo review existing relationships

  1. Fare clic sul menu Modello > Vista modelli > Vista diagramma.Click the Model menu > Model View > Diagram View.

    La finestra di progettazione dei modelli viene ora aperta in Vista diagramma, ovvero un formato grafico in cui sono rappresentate tutte le tabelle importate, con linee tra di esse.The model designer now appears in Diagram View, a graphical format displaying all the tables you imported with lines between them. Le linee tra le tabelle indicano le relazioni create automaticamente al momento dell'importazione dei dati.The lines between tables indicate the relationships that were automatically created when you imported the data.

    aas-lesson4-diagram

    Nota

    Se non è visibile alcuna relazione tra le tabelle, probabilmente significa che non ci sono relazioni tra tali tabelle nell'origine dati.If you don't see any relationships between tables, it likely means there are no relationships between those tables at the datasource.

    Includere il maggior numero di tabelle possibile usando i controlli mini mappa nell'angolo inferiore destro della finestra di progettazione dei modelli.Include as many of the tables as possible by using minimap controls in the lower-right corner of the model designer. È anche possibile fare clic e trascinare le tabelle in posizioni diverse, avvicinandole o disponendole in un ordine particolare.You can also click and drag tables to different locations, bringing tables closer together, or putting them in a particular order. Lo spostamento delle tabelle non influisce sulle relazioni tra le tabelle.Moving tables does not affect the relationships between the tables. Per visualizzare tutte le colonne in una determinata tabella, fare clic e trascinare un bordo della tabella per ingrandirla o ridurla.To view all the columns in a particular table, click and drag on a table edge to expand or make it smaller.

  2. Fare clic sulla linea continua tra la tabella DimCustomer e la tabella DimGeography.Click the solid line between the DimCustomer table and the DimGeography table. La linea continua tra queste due tabelle indica che questa relazione è attiva, vale a dire usata per impostazione predefinita durante il calcolo delle formule DAX.The solid line between these two tables shows this relationship is active, that is, it is used by default when calculating DAX formulas.

    Si noti che la colonna GeographyKey nella tabella DimCustomer e la colonna GeographyKey nella tabella DimGeography sono ora entrambe visualizzate all'interno di un riquadro.Notice the GeographyKey column in the DimCustomer table and the GeographyKey column in the DimGeography table now both each appear within a box. Queste colonne vengono usate nella relazione.These columns are used in the relationship. Le proprietà della relazione sono ora visualizzate nella finestra Proprietà.The relationship’s properties now also appear in the Properties window.

    Suggerimento

    Oltre a usare la finestra di progettazione dei modelli nella vista diagramma, è anche possibile usare la finestra di dialogo Gestisci relazioni per mostrare le relazioni tra tutte le tabelle in formato tabella.In addition to using the model designer in diagram view, you can also use the Manage Relationships dialog box to show the relationships between all tables in a table format. In Esplora modelli tabulari fare clic con il pulsante destro del mouse su Relazioni > Gestisci relazioni.In Tabular Model Explorer, right-click Relationships > Manage Relationships.

  3. Verificare che siano state create le relazioni seguenti al momento dell'importazione di ogni tabella dal database AdventureWorksDW:Verify the following relationships were created when each of the tables were imported from the AdventureWorksDW database:

    AttivoActive TableTable Tabella di ricerca correlataRelated Lookup Table
    Yes DimCustomer [GeographyKey]DimCustomer [GeographyKey] DimGeography [GeographyKey]DimGeography [GeographyKey]
    Yes DimProduct [ProductSubcategoryKey]DimProduct [ProductSubcategoryKey] DimProductSubcategory [ProductSubcategoryKey]DimProductSubcategory [ProductSubcategoryKey]
    Yes DimProductSubcategory [ProductCategoryKey]DimProductSubcategory [ProductCategoryKey] DimProductCategory [ProductCategoryKey]DimProductCategory [ProductCategoryKey]
    Yes FactInternetSales [CustomerKey]FactInternetSales [CustomerKey] DimCustomer [CustomerKey]DimCustomer [CustomerKey]
    Yes FactInternetSales [ProductKey]FactInternetSales [ProductKey] DimProduct [ProductKey]DimProduct [ProductKey]

    Se mancano alcune relazioni, verificare che il modello includa le tabelle seguenti: DimCustomer, DimDate, DimGeography, DimProduct, DimProductCategory, DimProductSubcategory e FactInternetSales.If any of the relationships are missing, verify your model includes the following tables: DimCustomer, DimDate, DimGeography, DimProduct, DimProductCategory, DimProductSubcategory, and FactInternetSales. Se si importano tabelle dalla stessa connessione origine dati in momenti distinti, le relazioni tra tali tabelle non vengono create e devono essere create manualmente.If tables from the same datasource connection are imported at separate times, any relationships between those tables are not be created and must be created manually. Se non è visualizzata alcuna relazione, significa che non ci sono relazioni nell'origine dati.If no relationships appear, it means there are no relationships at the datasource. È possibile crearle manualmente nel modello di dati.You can create them manually in the data model.

Dettagli del diagramma e delle relazioniTake a closer look

Nella vista diagramma è possibile notare la presenza di una freccia, un asterisco e un numero sulle linee che mostrano la relazione tra le tabelle.In Diagram View, notice an arrow, an asterisk, and a number on the lines that show the relationship between tables.

aas-lesson4-line

La freccia indica la direzione del filtro,The arrow shows the filter direction. l'asterisco indica che la tabella rappresenta il lato "molti" nella cardinalità della relazione e il numero uno indica che la tabella corrisponde al lato "uno" della relazione.The asterisk shows this table is the many side in the relationship's cardinality, and the one shows this table is the one side of the relationship. Se è necessario modificare una relazione, ad esempio cambiare la direzione del filtro o la cardinalità della relazione, fare doppio clic sulla linea della relazione per aprire la finestra di dialogo Modifica relazione.If you need to edit a relationship; for example, change the relationship's filter direction or cardinality, double-click the relationship line to open the Edit Relationship dialog.

aas-lesson4-edit

Queste funzionalità sono pensate per la modellazione avanzata dei dati ed esulano dagli scopi di questa esercitazione.These features are meant for advanced data modeling and are outside the scope of this tutorial. Per altre informazioni, vedere Filtri incrociati bidirezionali per i modelli tabulari in Analysis Services.To learn more, see Bi-directional cross filters for tabular models in Analysis Services.

In alcuni casi, potrebbe essere necessario creare relazioni aggiuntive tra le tabelle nel modello per supportare una determinata logica di business.In some cases, you may need to create additional relationships between tables in your model to support certain business logic. Per questa esercitazione, è necessario creare tre relazioni aggiuntive tra la tabella FactInternetSales e la tabella DimDate.For this tutorial, you need to create three additional relationships between the FactInternetSales table and the DimDate table.

Per aggiungere nuove relazioni tra le tabelleTo add new relationships between tables

  1. Nella finestra di progettazione dei modelli, nella tabella FactInternetSales fare clic sulla colonna OrderDate e tenere premuto, trascinare il cursore sulla colonna Date nella tabella DimDate e quindi rilasciare.In the model designer, in the FactInternetSales table, click, and hold on the OrderDate column, then drag the cursor to the Date column in the DimDate table, and then release.

    Verrà visualizzata una linea continua che indica che è stata creata una relazione attiva tra la colonna OrderDate nella tabella FactInternetSales e la colonna Date nella tabella Date.A solid line appears showing you have created an active relationship between the OrderDate column in the Internet Sales table, and the Date column in the Date table.

    aas-lesson4-new

    Nota

    Quando si creano nuove relazioni, la cardinalità e la direzione di filtro tra la tabella primaria e la tabella di ricerca correlata vengono selezionate automaticamente.When creating relationships, the cardinality and filter direction between the primary table and the related lookup table is automatically selected.

  2. Nella tabella FactInternetSales fare clic sulla colonna DueDate e tenere premuto, trascinare il cursore fino alla colonna Date nella tabella DimDate e quindi rilasciare.In the FactInternetSales table, click and hold on the DueDate column, then drag the cursor to the Date column in the DimDate table, and then release.

    Verrà visualizzata una linea punteggiata che indica che è stata creata una relazione inattiva tra la colonna DueDate nella tabella FactInternetSales e la colonna Date nella tabella DimDate.A dotted line appears showing you have created an inactive relationship between the DueDate column in the FactInternetSales table, and the Date column in the DimDate table. È possibile creare più relazioni tra le tabelle, ma può essere attiva una sola relazione alla volta.You can have multiple relationships between tables, but only one relationship can be active at a time. Le relazioni inattive possono essere rese attive eseguire aggregazioni speciali in espressioni DAX personalizzate.Inactive relationships can be made active to perform special aggregations in custom DAX expressions.

  3. Creare infine un'ultima relazione.Finally, create one more relationship. Nella tabella FactInternetSales fare clic sulla colonna ShipDate e tenere premuto, trascinare il cursore fino alla colonna Date nella tabella DimDate e quindi rilasciare.In the FactInternetSales table, click and hold on the ShipDate column, then drag the cursor to the Date column in the DimDate table, and then release.

    aas-lesson4-newinactive

Passaggi successiviWhat's next?

Lezione 5: Creare colonne calcolate.Lesson 5: Create calculated columns.