<?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: Sylvia Ndili</title>
    <description>The latest articles on DEV Community by Sylvia Ndili (@sndili).</description>
    <link>https://dev.to/sndili</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%2F913216%2F7888cc0c-c4a2-4b1f-8640-f402fe7f2b7b.jpeg</url>
      <title>DEV Community: Sylvia Ndili</title>
      <link>https://dev.to/sndili</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sndili"/>
    <language>en</language>
    <item>
      <title>How to Connect Power BI to SQL Databases (Local &amp; Cloud)</title>
      <dc:creator>Sylvia Ndili</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:55:40 +0000</pubDate>
      <link>https://dev.to/sndili/how-to-connect-power-bi-to-sql-databases-local-cloud-1a9l</link>
      <guid>https://dev.to/sndili/how-to-connect-power-bi-to-sql-databases-local-cloud-1a9l</guid>
      <description>&lt;p&gt;Connecting your data to Power BI is usually the very first step in building any meaningful dashboard. SQL databases, whether located on a local office server or hosted out in the cloud, they remain the industry foundation for this data. &lt;/p&gt;

&lt;p&gt;Let's walk through how to set up both local and cloud-based SQL connections in Power BI, step-by-step.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Connecting Power BI to a Local SQL Server
&lt;/h2&gt;

&lt;p&gt;To pull data from a local SQL Server, you will need to have a server name and database configuration parameters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Open the SQL Server Connector
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Launch &lt;strong&gt;Power BI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Home&lt;/strong&gt; tab ribbon, click on &lt;strong&gt;Get Data&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;More...&lt;/strong&gt; and search postgres to locate it under the &lt;em&gt;Database&lt;/em&gt; category.&lt;/li&gt;
&lt;/ol&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%2Fstgelul82oue5kbz8coa.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%2Fstgelul82oue5kbz8coa.png" alt=" " width="770" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Configure Server Details &amp;amp; Data Connectivity
&lt;/h3&gt;

&lt;p&gt;A dialog box will appear asking for your server credentials and access choices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; Enter your local server path i.e (localhost:5432)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; Enter your database name (postgres)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Connectivity Mode:&lt;/strong&gt; 

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Import:&lt;/strong&gt; Downloads a snapshot of the data into the Power BI file. Best for fast performance and complex modeling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DirectQuery:&lt;/strong&gt; Queries the data live every time you interact with a visual. Essential for massive datasets or real-time tracking.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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%2F3c0r3qgtgrvvr5in1huk.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%2F3c0r3qgtgrvvr5in1huk.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Provide Credentials
&lt;/h3&gt;

&lt;p&gt;For authentication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Database&lt;/strong&gt; to enter your username and password, then click &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Preview and Load Tables
The &lt;strong&gt;Navigator&lt;/strong&gt; window will open. Expand your database instance, check the boxes next to the tables or views you want to use and click &lt;strong&gt;Transform Data&lt;/strong&gt; to clean them inside Power Query.&lt;/li&gt;
&lt;/ul&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%2F7ednl2hdq6myz6i43ye5.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%2F7ednl2hdq6myz6i43ye5.png" alt=" " width="800" height="635"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: Connecting Power BI to a Cloud Database (Aiven)
&lt;/h2&gt;

&lt;p&gt;Cloud solutions like Aiven make it easy to deploy PostgreSQL databases. Because Aiven exposes a public endpoint by default, Power BI can securely stream cloud data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Gather Connection Details from Aiven
&lt;/h3&gt;

&lt;p&gt;Before switching to Power BI, grab your credentials from the Aiven Console.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log in to your &lt;strong&gt;Aiven Console&lt;/strong&gt; and select your PostgreSQL service(make sure it's running).&lt;/li&gt;
&lt;/ul&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%2Ffoc0b6necw4c9hfb6ngf.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%2Ffoc0b6necw4c9hfb6ngf.png" alt=" " width="800" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Overview&lt;/strong&gt; tab, find the &lt;strong&gt;Connection information&lt;/strong&gt; and copy the following fields: &lt;strong&gt;Host&lt;/strong&gt;, &lt;strong&gt;Port&lt;/strong&gt;, &lt;strong&gt;User&lt;/strong&gt;, &lt;strong&gt;Password&lt;/strong&gt;, and &lt;strong&gt;Database Name&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&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%2F6brwf8qq50k3axvpuwu8.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%2F6brwf8qq50k3axvpuwu8.png" alt=" " width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Install the CA Certificate on Your Windows Machine
&lt;/h3&gt;

&lt;p&gt;Power BI relies on the Windows Certificate Store to validate SSL handshakes. Download and install your &lt;code&gt;ca.pem&lt;/code&gt; file as a trusted certificate.&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%2Fgfct67iuu8u3meintm3g.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%2Fgfct67iuu8u3meintm3g.png" alt=" " width="795" height="31"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click the Windows Start menu, search for &lt;strong&gt;Manage user certificates&lt;/strong&gt;, and open it.&lt;/li&gt;
&lt;li&gt;In the left panel, locate and click on &lt;strong&gt;Trusted Root Certification Authorities&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Right-click on the &lt;strong&gt;Certificates&lt;/strong&gt; folder inside that directory, navigate to &lt;strong&gt;All Tasks&lt;/strong&gt;, and click &lt;strong&gt;Import&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Certificate Import Wizard&lt;/strong&gt; will pop up. Click &lt;em&gt;Next&lt;/em&gt;, change the file extension filter to "All Files (&lt;em&gt;.&lt;/em&gt;)" so you can find your &lt;code&gt;ca.pem&lt;/code&gt; file, select it, and complete the installation wizard instructions.&lt;/li&gt;
&lt;/ul&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%2F2zsykz3cc0gf65duqt1u.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%2F2zsykz3cc0gf65duqt1u.png" alt=" " width="799" height="560"&gt;&lt;/a&gt;&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%2F9s40rbbmgydluabgfb9t.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%2F9s40rbbmgydluabgfb9t.png" alt=" " width="800" height="774"&gt;&lt;/a&gt;&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%2Ff6vb0q5aibzjjqnlhq1i.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%2Ff6vb0q5aibzjjqnlhq1i.png" alt=" " width="799" height="760"&gt;&lt;/a&gt;&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%2F2y0bxqbi86x60x59hcjh.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%2F2y0bxqbi86x60x59hcjh.png" alt=" " width="489" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Select the PostgreSQL Connector in Power BI
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Back in Power BI, click &lt;strong&gt;Get Data&lt;/strong&gt; on the Home ribbon.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;More...&lt;/strong&gt;, choose &lt;strong&gt;Database&lt;/strong&gt; on the left menu, and select &lt;strong&gt;PostgreSQL database&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&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%2Fpor7n4ng7tppc5cpyez1.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%2Fpor7n4ng7tppc5cpyez1.png" alt=" " width="770" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Establish the connection on Power BI&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; Combine your host and port separated by a colon (e.g., &lt;code&gt;pg-your-project-name.aivencloud.com:12345&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; Type the exact name of the database you intend to read from (e.g., &lt;code&gt;defaultdb&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Select either &lt;strong&gt;Import&lt;/strong&gt;, then click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&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%2Fagjrp1s1f89vduv8y12t.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%2Fagjrp1s1f89vduv8y12t.png" alt=" " width="799" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authenticate with Database Credentials - Username and Password, then click &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select Tables - The Navigator panel will look up your database. Select your dataset, then click &lt;strong&gt;Load&lt;/strong&gt; for a clean dataset or &lt;strong&gt;Transform&lt;/strong&gt; to start the process of cleaning on Power Query&lt;/li&gt;
&lt;/ul&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%2F2yctal6nsmelh4i3goi7.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%2F2yctal6nsmelh4i3goi7.png" alt=" " width="799" height="428"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Finally
&lt;/h3&gt;

&lt;p&gt;Once these parameters are configured, your relationships can be built directly inside the Power BI Model view. The core difference ultimately boils down to network topology: local connections require safe local-network access paths or gateways, while cloud-hosted services like Aiven rely primarily on public connection strings backed by strong encryption and user credentials.&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>sql</category>
      <category>postgres</category>
      <category>database</category>
    </item>
    <item>
      <title>Power BI Finally Started Clicking(Schemas, Relationships &amp; Joins)</title>
      <dc:creator>Sylvia Ndili</dc:creator>
      <pubDate>Sun, 28 Jun 2026 19:31:47 +0000</pubDate>
      <link>https://dev.to/sndili/power-bi-finally-started-clickingschemas-relationships-joins-22ej</link>
      <guid>https://dev.to/sndili/power-bi-finally-started-clickingschemas-relationships-joins-22ej</guid>
      <description>&lt;p&gt;You've loaded your data into Power BI. You've got the tables. Now what are you expected to do?&lt;/p&gt;

&lt;p&gt;Here's the thing most beginners skip: &lt;strong&gt;how your tables connect to each other is more important than the data inside them.&lt;/strong&gt; A poorly structured model will give you wrong numbers, slow reports and a difficult time every time you try to add a new chart.&lt;/p&gt;

&lt;p&gt;This week we're covering the foundation of Power BI, &lt;strong&gt;data modeling&lt;/strong&gt;. Specifically: what kinds of tables exist, how schemas work, what relationships are and what joins are doing behind the scenes.&lt;/p&gt;

&lt;p&gt;One thing that took me a while to get in Power BI is that loading data is only half the job. The other half is telling Power BI &lt;em&gt;how your tables talk to each other&lt;/em&gt;. That's what schemas, relationships and joins are about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem I hadn't anticipated
&lt;/h2&gt;

&lt;p&gt;When I first loaded data into Power BI, I had three separate tables; customers, products and sales. I could build charts from each one individually, but the moment I tried to combine them like "show me sales by customer city", things either broke or gave me numbers that made no sense.&lt;br&gt;
Turns out I had no relationships set up. Power BI had no idea how those three tables were supposed to connect. That's what I got to learn.&lt;/p&gt;
&lt;h2&gt;
  
  
  Fact Tables vs Dimension Tables
&lt;/h2&gt;

&lt;p&gt;Every Power BI model has two kinds of tables doing different jobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fact tables&lt;/strong&gt; store your actual transactions - every sale, every order, every event. They're usually huge and full of numbers and IDs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimension tables&lt;/strong&gt; give those numbers context. Your Customers, Products and Dates tables are dimension tables (fewer rows but more descriptive columns). They answer the who, what and when behind every fact.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Star Schema
&lt;/h2&gt;

&lt;p&gt;Power BI is basically built for this layout. One fact table sits in the middle, dimension tables connect around it. For instance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;           DIM_Date
               |
DIM_Customer — FACT_Sales — DIM_Product
               |
           DIM_Store
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Filters flow from the outside in, queries run fast and the model stays easy to read. There's a variation called the Snowflake Schema where you break dimension tables into sub-tables, but in Power BI it adds complexity without much payoff. Star schema is the standard.&lt;/p&gt;

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

&lt;p&gt;The snowflake schema extends the star by breaking dimension tables into sub-tables. For example, instead of one &lt;code&gt;DIM_Customer&lt;/code&gt; table with a &lt;code&gt;City&lt;/code&gt; and &lt;code&gt;Country&lt;/code&gt; column, you'd have a separate &lt;code&gt;DIM_City&lt;/code&gt; table linked to a &lt;code&gt;DIM_Country&lt;/code&gt; table.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships
&lt;/h2&gt;

&lt;p&gt;A relationship is the link between two tables through a shared column.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Key (PK)&lt;/strong&gt; - uniquely identifies every row in a table. No duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Foreign Key (FK)&lt;/strong&gt; - that same ID living in another table as a reference.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most common type is &lt;strong&gt;One-to-Many (1:N)&lt;/strong&gt; - one customer, many orders. One product, many sales. The dimension table always sits on the "one" side, the fact table on the "many" side.&lt;/p&gt;

&lt;p&gt;When you have a situation where many rows in Table A relate to many rows in Table B - like students and courses, that's a &lt;strong&gt;Many-to-Many&lt;/strong&gt; relationship. Power BI doesn't handle this cleanly on its own so you use a &lt;strong&gt;bridge table&lt;/strong&gt; in between, which breaks it into two clean one-to-many links.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-Filter Direction
&lt;/h2&gt;

&lt;p&gt;When you click on something in a visual, other visuals filter too. That behaviour is controlled by cross-filter direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single direction&lt;/strong&gt; - filters flow from dimension into fact only. This is the default and what you should stick with most of the time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bidirectional&lt;/strong&gt; - filters travel both ways. Useful in specific cases but can slow things down and cause circular logic if overused.&lt;/p&gt;

&lt;h2&gt;
  
  
  Active vs Inactive Relationships
&lt;/h2&gt;

&lt;p&gt;You can have more than one relationship between two tables but only one can be active at a time. A common example - a Sales table with both an &lt;code&gt;OrderDate&lt;/code&gt; and a &lt;code&gt;ShipDate&lt;/code&gt;, both linking to the same date table. One relationship is active by default, the other sits inactive until you call it explicitly in DAX using &lt;code&gt;USERELATIONSHIP()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Joins
&lt;/h2&gt;

&lt;p&gt;This is what Power BI does behind the scenes when combining tables in a visual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inner join&lt;/strong&gt; - only rows with a match in both tables come through. Unmatched rows get dropped silently, which is why some totals can look off unexpectedly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left join&lt;/strong&gt; - all rows from the left table come through, matched or not. Unmatched rows just show blank on the right side. This is what Power BI uses most of the time when pulling from a dimension into a fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross Join&lt;/strong&gt; - every row in Table A paired with every row in Table B. Rarely useful; produces enormous result sets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Little hacks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; Use Star Schema whenever possible&lt;/li&gt;
&lt;li&gt; Keep dimension tables on the "one" side, fact tables on the "many" side&lt;/li&gt;
&lt;li&gt; One active relationship per table pair&lt;/li&gt;
&lt;li&gt; Avoid bidirectional filtering unless you have a specific reason&lt;/li&gt;
&lt;li&gt; Resolve Many-to-Many with a bridge table&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Data modeling isn't the flashy part of Power BI, but it's the part that makes everything else work. Get your schema right, define clean relationships and your reports will be fast, your numbers accurate and your filters will just work.&lt;/p&gt;

&lt;p&gt;If you have questions about anything covered here, drop them in the comments!&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>powerbi</category>
      <category>data</category>
    </item>
    <item>
      <title>Excel and Real-World Data Analysis - What I Learned in Week 1</title>
      <dc:creator>Sylvia Ndili</dc:creator>
      <pubDate>Sat, 06 Jun 2026 16:24:56 +0000</pubDate>
      <link>https://dev.to/sndili/excel-and-real-world-data-analysis-what-i-learned-in-week-1-4h0</link>
      <guid>https://dev.to/sndili/excel-and-real-world-data-analysis-what-i-learned-in-week-1-4h0</guid>
      <description>&lt;p&gt;To be honest, when I signed up for a Data Science and Analytics course, it hadn't crossed my mind that Excel was the very first tool I would start with. I figured we'd jump straight into dashboards, maybe some Python, something that felt more "data sciency". But here we are, Week 1, deep in spreadsheets.&lt;/p&gt;

&lt;p&gt;And the best part about this is that I'm actually glad it started here.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what is Excel?
&lt;/h2&gt;

&lt;p&gt;Excel is a spreadsheet tool by Microsoft. You work with data in rows and columns, run calculations, sort things, filter things and build reports. Sounds simple, right? But once you start using it on real data, you realize it's literally the backbone of a huge chunk of the business world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ways Excel shows up in real work
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- Financial Reporting&lt;/strong&gt; - Accountants and finance teams use Excel to track income, expenses, budgets and forecasts. Every month, someone somewhere is pulling together a financial report in Excel before it ever reaches a boardroom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Sales and Business Performance&lt;/strong&gt; - Sales teams track numbers in Excel — who sold what, which region is hitting targets, which product is underperforming. It's the first place most managers go when they want to understand their numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Marketing Analysis&lt;/strong&gt; - Marketers use Excel to measure campaigns, click rates, conversions and customer behavior over time. Before any fancy BI tool, most marketing teams have a spreadsheet tracking what's working.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features I used this week
&lt;/h2&gt;

&lt;p&gt;Before jumping into formulas, the first thing I had to do was just understand how Excel is laid out. It sounds obvious but getting comfortable with the interface first made everything else easier.&lt;/p&gt;

&lt;p&gt;Once I had that down, I started working with these features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sorting&lt;/strong&gt; - Organizing data by numbers, text or dates. Useful when you need to quickly rank results or find the highest/lowest values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filtering&lt;/strong&gt; - Showing only the rows that match a certain condition. Instead of scrolling through hundreds of entries, you just filter and focus on what matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Validation&lt;/strong&gt; - This one is about keeping data clean at the entry point. You can set rules so that only certain values are accepted in a column. It stops messy, inconsistent data before it becomes a problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freeze Panes&lt;/strong&gt; - When you're scrolling through a big dataset, your headers disappear off the top of the screen. Freeze Panes keeps them visible no matter how far down you scroll. Simple but incredibly useful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Functions I Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;SUM&lt;/code&gt;, &lt;code&gt;AVERAGE&lt;/code&gt; and &lt;code&gt;COUNT&lt;/code&gt;&lt;/strong&gt; - These feel basic but they're everywhere. I used SUM to total a column of sales figures, AVERAGE to find a mean score and COUNT to quickly see how many entries were in a dataset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;COUNTIF&lt;/code&gt;&lt;/strong&gt; - This was my favourite this week. Instead of manually counting how many times something appears, COUNTIF does it automatically based on a condition. I used it to count how many entries matched a specific category. Such a small thing that makes a big difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;SUMIF&lt;/code&gt; and &lt;code&gt;SUMIFS&lt;/code&gt;&lt;/strong&gt; - Add values that meet one or more conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;AVERAGEIF&lt;/code&gt; and &lt;code&gt;AVERAGEIFS&lt;/code&gt;&lt;/strong&gt; - Calculate averages based on selected conditions.&lt;/p&gt;

&lt;p&gt;These are the functions that help you answer actual business questions - total sales by product, customer count by region, average performance across departments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text and Date Functions&lt;/strong&gt; - I also got introduced to &lt;code&gt;LEFT()&lt;/code&gt;, &lt;code&gt;RIGHT()&lt;/code&gt;, &lt;code&gt;LEN()&lt;/code&gt;, and &lt;code&gt;CONCAT()&lt;/code&gt; for working with text, and &lt;code&gt;TODAY()&lt;/code&gt;, &lt;code&gt;NOW()&lt;/code&gt;, &lt;code&gt;DAY()&lt;/code&gt;, &lt;code&gt;MONTH()&lt;/code&gt;, &lt;code&gt;YEAR()&lt;/code&gt; for dates. These are used a lot in data cleaning — pulling out parts of a string, combining columns, or breaking a date into components you can analyze separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  How this changed the way I see data
&lt;/h2&gt;

&lt;p&gt;Before this week, I looked at a spreadsheet and just saw a table. Now I see questions. What's the total? What's the average? What's pulling the numbers up or down? Excel didn't just teach me formulas, it taught me to ask better questions about data.&lt;/p&gt;

&lt;p&gt;I'm only in Week 1 and I already feel like I'm thinking differently. That's quite the leap.&lt;/p&gt;

&lt;p&gt;If you're also starting out in data analytics, don't skip Excel thinking it's too basic. It's the foundation everything else is built on.&lt;/p&gt;




&lt;p&gt;💬 Are you also learning data analytics or just getting started with Excel? Drop a comment - I'd love to connect with others on the same path.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
      <category>dataanalytics</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
