<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benjamin Ochieng</title>
    <description>The latest articles on DEV Community by Benjamin Ochieng (@benjamin_ogol_1af8e695c87).</description>
    <link>https://dev.to/benjamin_ogol_1af8e695c87</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3952248%2Fd74b3c05-b497-41e3-9eab-03b93423695e.png</url>
      <title>DEV Community: Benjamin Ochieng</title>
      <link>https://dev.to/benjamin_ogol_1af8e695c87</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benjamin_ogol_1af8e695c87"/>
    <language>en</language>
    <item>
      <title>The Invisible Architecture Behind Every Great Power BI Report</title>
      <dc:creator>Benjamin Ochieng</dc:creator>
      <pubDate>Mon, 29 Jun 2026 06:44:54 +0000</pubDate>
      <link>https://dev.to/benjamin_ogol_1af8e695c87/the-invisible-architecture-behind-every-great-power-bi-report-3cam</link>
      <guid>https://dev.to/benjamin_ogol_1af8e695c87/the-invisible-architecture-behind-every-great-power-bi-report-3cam</guid>
      <description>&lt;p&gt;&lt;em&gt;A practical guide to database schemas, joins, and data modelling — and why they matter for every dashboard you will ever build&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Imagine you walk into a brand new supermarket. The shelves are fully stocked — thousands of products — but nothing is organised. Beverages are next to shoe polish. Rice is next to televisions. There are no labels, no sections, no logic. You could spend hours searching for a single item.&lt;/p&gt;

&lt;p&gt;That is exactly what happens when you load messy, unstructured data into Power BI. The tool is powerful. The data is there. But without structure, the dashboard you build will be unreliable at best and misleading at worst.&lt;/p&gt;

&lt;p&gt;This article is about the invisible architecture that sits beneath every great Power BI report — database schemas, joins, and data modelling. These are not the flashiest topics. But understanding them is what separates an analyst who builds dashboards from one who builds dashboards that are actually trusted.&lt;/p&gt;




&lt;h2&gt;
  
  
  First — What is Power BI?
&lt;/h2&gt;

&lt;p&gt;Power BI is Microsoft's business intelligence platform. It connects to virtually any data source — Excel files, SQL databases, cloud services, APIs — and transforms that data into interactive reports and dashboards that anyone in an organisation can use to make decisions.&lt;/p&gt;

&lt;p&gt;A sales manager in Nairobi can open a Power BI report on her phone and instantly see which product categories are underperforming. A CFO in London can filter a revenue dashboard by quarter, region, or salesperson in seconds. None of that is possible, though, if the data feeding those visuals is disorganised.&lt;/p&gt;

&lt;p&gt;That is where schemas, joins, and data modelling come in.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Blueprint: Database Schemas
&lt;/h2&gt;

&lt;p&gt;Before any data enters Power BI, it lives somewhere — in a database, a spreadsheet, or a cloud system. A &lt;strong&gt;database schema&lt;/strong&gt; is the blueprint of how that data is organised. It defines the tables, the columns within those tables, the rules that govern the data, and how different tables relate to each other.&lt;/p&gt;

&lt;p&gt;Think of it like the architectural drawing of a building. You do not start constructing walls before you have a plan. Similarly, you should not start building dashboards before understanding how your data is structured.&lt;/p&gt;

&lt;p&gt;There are three levels of schema that every analyst should know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conceptual&lt;/strong&gt; — the big picture. What are the main entities in this business? Customers, Products, Orders, Salespeople. This is the level where you ask business questions, not technical ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Logical&lt;/strong&gt; — the structure. How do those entities relate? A Customer places many Orders. Each Order contains multiple Products. This level defines tables, columns, and relationships — independent of any specific software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical&lt;/strong&gt; — the implementation. This is the actual database: the SQL tables, the primary keys, the foreign keys, the constraints. This is what Power BI connects to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9f8rxcr8rvkj5gs8twhi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9f8rxcr8rvkj5gs8twhi.png" alt="Levels of Schemas" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you open Power BI and click "Get Data," you are connecting to the physical layer. But the quality of your analysis depends entirely on how well the conceptual and logical layers were designed.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Connector: Joins
&lt;/h2&gt;

&lt;p&gt;Data in the real world is never stored in a single table. A business database might have a &lt;code&gt;Customers&lt;/code&gt; table, an &lt;code&gt;Orders&lt;/code&gt; table, a &lt;code&gt;Products&lt;/code&gt; table, and a &lt;code&gt;Salespeople&lt;/code&gt; table — all separate, all connected by shared keys.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;join&lt;/strong&gt; is how you combine those tables to answer a real business question.&lt;/p&gt;

&lt;p&gt;Consider this scenario from a Kenyan electronics distributor: the Orders table holds transaction records, but it only stores a &lt;code&gt;CustomerID&lt;/code&gt; — not the customer's name or location. The Customers table holds names and locations but not what they purchased. To answer the question &lt;em&gt;"Which region generates the most revenue?"&lt;/em&gt; — you need both tables talking to each other.&lt;/p&gt;

&lt;p&gt;That is a join.&lt;/p&gt;

&lt;p&gt;There are several types, and each serves a different purpose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inner Join&lt;/strong&gt; — returns only rows where a match exists in both tables. Use this when you want clean, complete records. If a customer has never placed an order, they will not appear in the result. In Power BI, this is the most common join used in data modelling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvsxvw7iixnp7bctklyb4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvsxvw7iixnp7bctklyb4.png" alt="Inner Join image" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Outer Join&lt;/strong&gt; — returns all rows from the left table, and matched rows from the right. If no match exists, the right-side columns return NULL. Use this when you want to see all records from your primary table, even if related data is missing. For example: all products, including those with no sales yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right Outer Join&lt;/strong&gt; — the mirror of the left join. All rows from the right table, matched rows from the left.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6bkwslqiutd0imirpgka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6bkwslqiutd0imirpgka.png" alt="Right Outer join image" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Outer Join&lt;/strong&gt; — returns everything from both tables, matched or not. Useful when auditing data completeness — finding customers with no orders, or orders with no matching customer record.&lt;/p&gt;

&lt;p&gt;In Power BI, these relationships are managed visually in the &lt;strong&gt;Model View&lt;/strong&gt;. You drag a line between two tables, Power BI asks you which columns to join on, and it handles the rest. But you need to understand what type of join makes sense for your analysis — the tool does not make that decision for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Foundation: Data Modelling
&lt;/h2&gt;

&lt;p&gt;Data modelling is the process of deciding how all your tables connect and how your data is structured for analysis. It is the most critical step between raw data and a reliable dashboard.&lt;/p&gt;

&lt;p&gt;There are three stages:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff8454h0go8nbfjwekh6v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff8454h0go8nbfjwekh6v.png" alt="The 3 main stages to Data Modelling" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conceptual modelling&lt;/strong&gt; is where you define what exists. What are your entities — the main things your business cares about? For a retailer: Products, Customers, Orders, Regions. At this stage you are drawing boxes and arrows, not writing SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Logical modelling&lt;/strong&gt; is where you define how entities relate. A Customer places one or many Orders. An Order contains one or many Products. This stage produces a schema — the plan that developers and database administrators use to build the actual database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical modelling&lt;/strong&gt; is where you implement it. Tables get created, primary keys are assigned, foreign keys are set, and constraints are defined to protect data integrity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Choosing the Right Design: Six Database Schema Models
&lt;/h2&gt;

&lt;p&gt;Not all databases are structured the same way. The design you choose depends on your data's complexity, how it will be used, and what tool will consume it. Here are the six main schema designs — what they are, how they work, and when to use each one.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Flat Model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9wdpjawzuo07kzflpzbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9wdpjawzuo07kzflpzbn.png" alt="Image description of a Flat Model" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; The simplest possible structure — a single two-dimensional table, like a spreadsheet. Every row is a record, every column is a field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; A shopkeeper in Gikomba market tracking daily sales in a single Excel sheet — product name, quantity, price, date — all in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Small datasets, simple applications, quick personal tracking. It breaks down the moment your data gets complex or relationships between different types of data need to be tracked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐⭐⭐⭐ — the easiest. No technical knowledge required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; You will often receive data in this format. The job of the analyst is to recognise its limitations and restructure it before building a model.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Hierarchical Model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnsubp7fkikos24e7cm9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnsubp7fkikos24e7cm9f.png" alt="Image description of a Hierarchical Model" width="799" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; Data organised in a tree structure — one parent, many children. Each record has exactly one parent, but can have multiple children beneath it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; An organisation chart. A CEO sits at the top. Below are Directors. Below each Director are Managers. Below each Manager are staff. Each person has only one direct boss — that is a hierarchical relationship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; When your data has a clear, strict parent-child structure — organisational hierarchies, file systems, product category trees (Electronics → Phones → Smartphones).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitation:&lt;/strong&gt; It only works for one-to-many relationships. The moment one child needs two parents — say, a project that belongs to both the Finance and Operations departments — the hierarchical model breaks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐⭐ — straightforward to understand, but rigid in practice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; Power BI supports hierarchies natively — you can drill down from Year → Quarter → Month → Day in a chart. That drill-down functionality is a hierarchical model in action.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Network Model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F009s1rsfkr0wph9jfb60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F009s1rsfkr0wph9jfb60.png" alt="Image description of a Network Model" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; Like the hierarchical model but with the rigidity removed. Instead of a strict tree, the network model allows many-to-many relationships — a child can have multiple parents, and a parent can connect to many children in multiple directions. Think of it as a web rather than a tree.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; A university database where a Student can enrol in many Courses, and each Course can have many Students. No single parent-child rule applies — the relationships go in all directions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Complex systems where entities genuinely have many connections — supply chains, telecommunications networks, social networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitation:&lt;/strong&gt; The flexibility that makes it powerful also makes it difficult to design and maintain. It is rarely used in modern business analytics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐ — complex to design and navigate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; Low direct relevance. Power BI's model view works best with simpler, cleaner relationships. If your data looks like a network model, it usually needs restructuring before it is brought into Power BI.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Relational Model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmeltbg7iesrzbjw9xdm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmeltbg7iesrzbjw9xdm9.png" alt="Image description of a Relational Model" width="799" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; The dominant model in modern databases. Data is stored in multiple separate tables, and tables are linked to each other through shared keys — a primary key in one table matches a foreign key in another. This is the foundation of SQL databases like MySQL, PostgreSQL, and SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; M-Pesa transaction records. One table stores Customer details (CustomerID, Name, Phone). Another stores Transactions (TransactionID, CustomerID, Amount, Date). The &lt;code&gt;CustomerID&lt;/code&gt; field connects the two — that link is a foreign key relationship, and it is the heart of the relational model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Almost always, for business data. The relational model handles complex data efficiently, avoids duplication, and scales well. It is what most organisations use for their operational databases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐⭐⭐ — requires understanding of keys and relationships, but tools like Power BI make it very manageable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; This is Power BI's native language. When you connect Power BI to a SQL database, you are connecting to a relational model. The Model View in Power BI is essentially a visual representation of relational table relationships.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Star Schema
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8vec99v2w49wjqnkc4b3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8vec99v2w49wjqnkc4b3.png" alt="Image description of a Star Schema" width="799" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; A specialised design built specifically for analytics and reporting — not for storing live operational data, but for analysing historical data at speed. It has one central &lt;strong&gt;fact table&lt;/strong&gt; containing measurable business events (sales, transactions, clicks), surrounded by multiple &lt;strong&gt;dimension tables&lt;/strong&gt; containing descriptive information (who, what, where, when).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; A supermarket analytics database. The fact table holds every sales transaction — date, product, store, quantity, price. The dimension tables describe: &lt;em&gt;which product?&lt;/em&gt; (Product table), &lt;em&gt;which store?&lt;/em&gt; (Store table), &lt;em&gt;which customer?&lt;/em&gt; (Customer table), &lt;em&gt;when?&lt;/em&gt; (Date table). The fact table sits in the middle like the centre of a star, with dimension tables radiating outward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Whenever you are building dashboards or analytical reports. It is fast, simple to query, and easy to understand. Most Power BI data models follow the star schema pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐⭐⭐⭐ for analysts — this is the most intuitive structure for building reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; This is the &lt;strong&gt;recommended structure for Power BI&lt;/strong&gt;. Microsoft's own documentation advises building star schemas before loading data into Power BI. The reason is performance — Power BI's calculation engine (called DAX) runs significantly faster on a well-built star schema than on flat or unstructured data.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Snowflake Schema
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8d69gj4f4tlybkqkkqla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8d69gj4f4tlybkqkkqla.png" alt="Image description of a Snowflake Schema" width="799" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it is:&lt;/strong&gt; A variation of the star schema. The difference is that in a snowflake schema, the dimension tables are further broken down into sub-tables — normalised, in database terminology. Instead of one flat Product dimension table, you might have a Product table linking to a Category table, which links to a Department table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; Continuing the supermarket example — in a star schema, the Product dimension might have columns for ProductName, Category, and Department all in one table. In a snowflake schema, Category and Department would each be separate tables, linked back to Product. The shape this creates looks like a snowflake — many branching connections rather than simple spokes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; When storage efficiency matters and your dimension tables contain significant redundancy. Normalising reduces data duplication. It is more common in large enterprise data warehouses where storage costs are significant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trade-off:&lt;/strong&gt; Snowflake schemas are more complex to query. Joining multiple tables to get a single answer takes more processing. For Power BI specifically, this extra complexity can slow report performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of use:&lt;/strong&gt; ⭐⭐⭐ — more complex than star schema. Requires more joins to retrieve the same information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI relevance:&lt;/strong&gt; Power BI can work with snowflake schemas, but the general advice is to flatten them back toward a star schema before building your model. The performance gain from simplicity usually outweighs the storage savings from normalisation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Which Schema Should You Use and When?
&lt;/h2&gt;

&lt;p&gt;Here is a simple decision guide:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Recommended Schema&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quick personal tracking, small dataset&lt;/td&gt;
&lt;td&gt;Flat Model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strict parent-child data (org charts, categories)&lt;/td&gt;
&lt;td&gt;Hierarchical Model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex many-to-many relationships&lt;/td&gt;
&lt;td&gt;Network Model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Operational business database (live transactions)&lt;/td&gt;
&lt;td&gt;Relational Model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Analytics, dashboards, Power BI reports&lt;/td&gt;
&lt;td&gt;Star Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large enterprise data warehouse, storage-sensitive&lt;/td&gt;
&lt;td&gt;Snowflake Schema&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For the vast majority of analysts building Power BI dashboards — &lt;strong&gt;start with the star schema&lt;/strong&gt;. It is the easiest to build, the fastest to query, and the most natural fit for how Power BI thinks about data.&lt;/p&gt;

&lt;p&gt;If your data arrives as a flat model (a single Excel sheet), your job is to identify the entities and split them into a fact table and dimension tables. If it arrives as a relational model from a SQL database, restructure it into a star schema before building your Power BI model. If it is a snowflake, consider flattening it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This All Matters for Every Dashboard You Build
&lt;/h2&gt;

&lt;p&gt;Here is the real-world connection.&lt;/p&gt;

&lt;p&gt;During my own analysis of an electronics sales dataset — 632 transactions across 13 countries — the data came from multiple sources. Revenue figures lived in one table. Salesperson information in another. Product categories in a third. Without understanding joins and schemas, I could not have combined those sources to answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Which salesperson generates the highest revenue per order?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Do high-discount products attract more customer reviews?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Which region is growing fastest month on month?&lt;/em&gt;
Every single one of those questions required data from at least two tables. Every answer depended on a correctly defined relationship. The final Power BI model followed a star schema — a central Sales fact table surrounded by dimension tables for Products, Salespeople, Regions, and Dates. Every slicer, every chart, every KPI card on the dashboard was powered by that structure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power BI gives you the tools to build beautiful, interactive dashboards. But schemas give your data structure. Joins give your data breadth. Data modelling gives your analysis integrity. And choosing the right schema design gives your reports the speed and reliability that decision-makers depend on.&lt;/p&gt;

&lt;p&gt;Get those right, and Power BI becomes genuinely powerful. Skip them, and you are building on sand.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>powerbi</category>
      <category>modelling</category>
      <category>database</category>
    </item>
    <item>
      <title>How Excel is Used in Real-World Data Analysis</title>
      <dc:creator>Benjamin Ochieng</dc:creator>
      <pubDate>Sat, 06 Jun 2026 17:29:40 +0000</pubDate>
      <link>https://dev.to/benjamin_ogol_1af8e695c87/learning-data-science-and-data-analytics-163d</link>
      <guid>https://dev.to/benjamin_ogol_1af8e695c87/learning-data-science-and-data-analytics-163d</guid>
      <description>&lt;p&gt;Prior to taking this course, I believed that Excel was simply another table. A common place where people left numbers when they were not sure what to do with them. I can honestly say after a few weeks, that was an embarrassing mistake.&lt;br&gt;
Excel is one of the applications developed by Microsoft that is used for spread sheets. The fundamental idea is that it enables you to collect, organize, calculate and visualize data, without writing a single line of code. It's ubiquitous, so much so, that one might find it in finance teams, HR departments, hospitals, construction companies and small businesses across Kenya and the world.&lt;br&gt;
&lt;strong&gt;Financial Reporting &amp;amp; Budget Tracking&lt;/strong&gt;&lt;br&gt;
A common application of Excel in the real world is financial reporting. Organizations rely on it to monitor revenues and expenditure, create budget projections, and monitor performance relative to a specific goal. This is easily managed with Excel because it can hold a lot of many to many transactional data, and has the ability to auto calculate differences, percentages, and totals. When a company performs a comparison of revenue for this quarter against the same quarter last year, it's pretty sure doing it in EXCEL.&lt;br&gt;
&lt;strong&gt;HR and Workforce Data&lt;/strong&gt;&lt;br&gt;
HR teams use Excel to keep records of employees, from salaries to departments, hire dates, employee performance scores, etc. This is the type of data I used in our data cleansing that I used to work with. I saw blank salary fields, children aged 4 years old, and hire dates such as 31st April (which is not a valid date) was a clear indicator of the value of clean data. Bad inputs create bad outputs, and Excel can help you catch and correct the issues before they get to the people who have to make the decisions.&lt;br&gt;
&lt;strong&gt;Project Tracking and Timeline Management&lt;/strong&gt;&lt;br&gt;
In construction and project-based industries (which I am familiar with working as a site engineer) Excel is used to track milestones, resource allocation and working days are calculated. One of the functions that I found interesting this week is &lt;em&gt;NETWORKDAYS&lt;/em&gt;. It works out the business day count between two dates, automatically excluding weekends and public holidays. For project managers creating delivery schedules, that's a time-saving function for counting by hand hours.&lt;br&gt;
&lt;strong&gt;What Changing My Mind Felt Like is about.&lt;/strong&gt;&lt;br&gt;
My transition was more to the learning of formulas than anything else. The realization that Excel is where raw data becomes useful. When I used &lt;em&gt;AVERAGE&lt;/em&gt; and &lt;em&gt;MEDIAN&lt;/em&gt; to fill in missing values, or &lt;em&gt;MODE&lt;/em&gt; to determine the most frequently occurring value in a column, I was not simply performing calculations, but making decisions about what the data should be telling me. That's a responsibility that alters the way you think about numbers.&lt;br&gt;
A person's cleaning of the data determines the trustworthiness of the data. That cleaning occurs in the pages of Excel — and now I see why it's important to get it right.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>data</category>
      <category>analytics</category>
      <category>excel</category>
    </item>
  </channel>
</rss>
