So far we have seen how the Query Editor can be used to generate tables of data - after this point, these tables are loaded into the Power BI data model, the internal database that stores all imported data in Power BI, and into a dataset. A dataset consists of tables of data linked together by relationships, so that all of the tables can be queried as a whole. Relationships link a column on one table to a column on another table, similar to how you can join two tables together in SQL. There are a number of rules that have to be followed when creating relationships, for example that you cannot use composite keys and that on one side of the relationship you need a column that does not contain any duplicate values. Relationship filter direction controls how data in the tables on either side of the relationship is filtered when it is used in reports.
One commonly-asked question about the Power BI data model is how much data you can import into it. In fact this question is very difficult to answer: it depends on how well your data is compressed when it is loaded into Power BI, and this in turn can depend on a number of factors including how many distinct values there are in each column of each table. It is possible to reduce the amount of memory used by the data model, and therefore increase the amount of data you can import, by remodelling your data.
Once you have loaded your data into the data model, there are many properties you can set that govern how the data model behaves when you build reports. You can, for instance, control how the data in a column is formatted when it is used in a report and also how it gets sorted. Hierarchies can be used to help your users drill down through the data, you can create custom groups of values, hide columns, setting data categories, controlling how data is summarized by default and how the Q&A feature can identify columns and tables.