Video: Manage Many to Many Relationships in Power Pivot 2024
U hoeft geen expert-database-modeler te zijn om Power Pivot te gebruiken. Maar het is belangrijk om relaties te begrijpen. Hoe beter u begrijpt hoe gegevens worden opgeslagen en beheerd in databases, des te effectiever u Power Pivot gebruikt voor rapportage.
Een relatie is het mechanisme waarmee afzonderlijke tabellen aan elkaar gerelateerd zijn. U kunt een relatie zien als een VERT.ZOEKEN, waarin u de gegevens in een gegevensbereik relateert aan de gegevens in een ander gegevensbereik met een index of een unieke ID. In databases doen relaties hetzelfde, maar zonder het gedoe van het schrijven van formules.
Relaties zijn belangrijk omdat de meeste gegevens waarmee u werkt, passen in een multidimensionale hiërarchie van soorten. U hebt bijvoorbeeld een tabel met klanten die producten kopen. Deze klanten hebben facturen nodig met factuurnummers. Die facturen hebben meerdere regels met transacties die aangeven wat ze hebben gekocht. Daar bestaat een hiërarchie.
In de eendimensionale spreadsheetwereld worden deze gegevens meestal opgeslagen in een platte tabel, zoals de tabel die hier wordt weergegeven.
Omdat klanten meer dan één factuur hebben, moet de klantinformatie (in dit voorbeeld CustomerID en CustomerName) worden herhaald. Dit veroorzaakt een probleem wanneer die gegevens moeten worden bijgewerkt.
Stel je bijvoorbeeld voor dat de naam van het bedrijf Aaron Fitz Electrical verandert in Fitz and Sons Electrical. Als u naar de tabel kijkt, ziet u dat meerdere rijen de oude naam bevatten. U zou ervoor moeten zorgen dat elke rij met de oude bedrijfsnaam wordt bijgewerkt om de wijziging weer te geven. Alle rijen die u mist, worden niet correct toegewezen aan de juiste klant.
Zou het niet logischer en efficiënter zijn om de naam en informatie van de klant slechts één keer op te nemen? In plaats van dezelfde klantinformatie herhaaldelijk te moeten schrijven, kunt u eenvoudigweg een referentienummer van de klant hebben.
Dit is het idee achter relaties. U kunt klanten van facturen scheiden en elk in hun eigen tabellen plaatsen. Vervolgens kunt u een unieke ID (zoals CustomerID) gebruiken om ze met elkaar te relateren.
De volgende afbeelding illustreert hoe deze gegevens eruit zouden zien in een relationele database. De gegevens worden opgesplitst in drie afzonderlijke tabellen: Klanten, FactuurHeader en FactuurDetails. Elke tabel zou dan gerelateerd zijn aan de hand van unieke identificaties (CustomerID en InvoiceNumber, in dit geval).
Databases gebruiken relaties om gegevens in unieke tabellen op te slaan en deze tabellen eenvoudig aan elkaar te relateren.De tabel Klanten zou een uniek record voor elke klant bevatten. Op die manier, als u de naam van een klant moet wijzigen, hoeft u alleen die record aan te passen. In de praktijk zou de tabel Klanten natuurlijk ook andere kenmerken bevatten, zoals klantadres, klantentelefoonnummer en startdatum van klant. Elk van deze andere kenmerken kan ook gemakkelijk worden opgeslagen en beheerd in de tabel Klanten.
Het meest voorkomende relatie type is een één-tot-veel relatie. Dat wil zeggen dat voor elk record in één tabel één record kan worden gekoppeld aan vele records in een afzonderlijke tabel. Een tabel met facturenhoofden is bijvoorbeeld gerelateerd aan een tabel met factuurdetail. De tabel met factuurhoofden heeft een unieke ID: Factuurnummer. Het factuurgegeven gebruikt het factuurnummer voor elke record die een detail van die specifieke factuur vertegenwoordigt.
Een ander soort relatietype is de één-op-één -relatie: voor elke record in één tabel is één en slechts één overeenkomende record in een andere tabel. Gegevens uit verschillende tabellen in een één-op-éénrelatie kunnen technisch worden gecombineerd tot één tabel.
Tot slot, in een veel-naar-veel relatie, kunnen records in beide tabellen elk aantal overeenkomende records in de andere tabel hebben. Een database bij een bank kan bijvoorbeeld een tabel met de verschillende soorten leningen hebben (woningkrediet, autolening, enzovoort) en een tabel met klanten. Een klant kan vele soorten leningen hebben. Ondertussen kan elk type lening aan veel klanten worden verleend.