Video: DAX Fridays! #44: CROSSFILTER 2024
Du behöver inte vara en expert databasmodeller för att använda Power Pivot. Men det är viktigt att förstå relationer. Ju bättre du förstår hur data lagras och hanteras i databaser, desto effektivare kommer du att utnyttja Power Pivot för rapportering.
A förhållande är mekanismen genom vilken separata tabeller är relaterade till varandra. Du kan tänka på ett förhållande som en VLOOKUP, där du relaterar data i ett dataområde till data i ett annat dataområde med hjälp av ett index eller en unik identifierare. I databaser gör relationer samma sak, men utan att behöva skriva formler.
Förhållandena är viktiga eftersom de flesta data du arbetar med passar in i en flerdimensionell hierarki av sorter. Till exempel kan du få en tabell som visar kunder som köper produkter. Dessa kunder kräver fakturor som har fakturanummer. Dessa fakturor har flera transaktionsrapporter som anger vad de köpte. En hierarki finns där.
Nu i den endimensionella kalkylarkvärlden lagras dessa data vanligtvis i ett platt bord, som det som visas här.
Eftersom kunderna har mer än en faktura måste kundinformationen (i det här exemplet CustomerID och CustomerName) upprepas. Detta orsakar ett problem när data måste uppdateras.
Tänk exempelvis att namnet på företaget Aaron Fitz Electrical ändras till Fitz and Sons Electrical. När du tittar på bordet ser du att flera rader innehåller det gamla namnet. Du måste se till att varje rad som innehåller det gamla företagsnamnet uppdateras för att spegla ändringen. Alla rader du saknar kommer inte att korrigera korrekt tillbaka till rätt kund.
Skulle det inte vara mer logiskt och effektivt att bara registrera kundens namn och information? Då, snarare än att skriva samma kundinformation flera gånger, kan du helt enkelt ha någon form av kundreferensnummer.
Detta är tanken bakom relationer. Du kan skilja kunder från fakturor, placera var och en i sina egna tabeller. Då kan du använda en unik identifierare (som CustomerID) för att relatera dem tillsammans.
Följande bild illustrerar hur denna data skulle se ut i en relationsdatabas. Uppgifterna skulle delas in i tre separata tabeller: Kunder, FakturaHeader och FakturaDetaljer. Varje tabell skulle då relateras med unika identifierare (CustomerID och FakturaNumber, i det här fallet).
Databaser använder relationer för att lagra data i unika tabeller och enkelt relatera dessa tabeller till varandra.Kundernas tabell skulle innehålla en unik post för varje kund. På så sätt, om du behöver byta kundens namn, behöver du bara göra ändringen i den posten. Självklart, i det verkliga livet, skulle kundens tabell innehålla andra attribut, till exempel kundadress, kundnummer och kundens startdatum. Några av dessa andra attribut kan också enkelt lagras och hanteras i tabellen Kunder.
Den vanligaste relationenstypen är ett förhållande mellan en till många. Det vill säga, för varje post i ett bord, kan en post matchas med många poster i ett separat bord. Exempelvis är ett fakturahuvudtabell relaterat till en fakturadetaljerings tabell. Fakturatrubriken har en unik identifierare: Fakturanummer. Fakturadetaljerna kommer att använda fakturanummer för varje post som representerar en detalj av den fakturaen.
En annan typ av relationstyp är förhållandet ett-till-ett: För varje post i ett bord ligger en och enda matchande post i en annan tabell. Data från olika tabeller i ett en-till-ett-förhållande kan tekniskt kombineras till ett enda bord.
Slutligen, i ett många till många förhållanden, kan poster i båda tabellerna ha ett antal matchande poster i den andra tabellen. Till exempel kan en databas hos en bank ha en tabell över de olika typerna av lån (hemlån, billån osv.) Och ett kundbord. En kund kan ha många typer av lån. Under tiden kan varje typ av lån beviljas många kunder.