<?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: Kinyanjui</title>
    <description>The latest articles on DEV Community by Kinyanjui (@s_ndungu_ebc94c8db8906f72).</description>
    <link>https://dev.to/s_ndungu_ebc94c8db8906f72</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3708620%2F58baa140-c31e-4498-bd86-31991b5fad88.jpg</url>
      <title>DEV Community: Kinyanjui</title>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/s_ndungu_ebc94c8db8906f72"/>
    <language>en</language>
    <item>
      <title>Connecting Power BI Desktop to a SQL Database.</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Thu, 19 Mar 2026 12:53:41 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/connecting-power-bi-desktop-to-an-sql-database-2k5f</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/connecting-power-bi-desktop-to-an-sql-database-2k5f</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=58494" rel="noopener noreferrer"&gt;Power BI &lt;/a&gt;is a Microsoft busniness analytics service that provides interactive visualizations and business intelligence capabilities with an interface simple enough for end users to create reports. The platform makes it possible for connecting to, cleaning, and modeling data from different sources like, Excel and Databases, to create insights important to the business progress via cloud. &lt;/p&gt;

&lt;p&gt;The key components are Power BI Desktop for creating reports, the Power BI service for publishing, and apps for visualization.&lt;br&gt;
Connecting Power BI to databases e.g SQL Server, &lt;a href="https://www.postgresql.org/" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/azure-sql/database" rel="noopener noreferrer"&gt;AzureSQL&lt;/a&gt;, or MySQL is important for going past manual, static reporting to scalable, automated, and real-time business intelligence.&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.amazonaws.com%2Fuploads%2Farticles%2Fa3z416b5nj7k30t97gwz.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fa3z416b5nj7k30t97gwz.jpg" alt="Power BI" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While Excel files or CSVS work for small datasets, datasets provide the necessary pipeline to manage large volumes of data securely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Connecting Power BI to a database Important?
&lt;/h2&gt;

&lt;p&gt;The following are the main reasons why connecting Power BI to a database is essential&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation and Real-time Insights:&lt;/strong&gt; Connecting directly makes it possible for scheduled refreshes or, using DirectQuery, live connections where data is updated instantly. This ensure no existence of manual Export/Import steps, ensuring decision-makers see the latest data as it flows in. &lt;/p&gt;

&lt;p&gt;** Scalability and Performance:** Databases are optimised to handle large datasets with millions or even billions of rows. Querying a database allows Power BI to retrieve only the necessary aggregated data rather than loading raw files into memory, leading to faster report performance and better handling of raw data volumes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single Source of Truth(Data centralization)&lt;/strong&gt;: Databases serve as a central pipeline for data, ensuring that all segements are analyzing the same, trusted data. In turn, this avoids situations where discrepancies occur, meaning more than one user are able to work on their own seperate, local files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enhanced Data Integrity and Structure:&lt;/strong&gt; SQL databases organize data into structured tables with defined relationships. For instance, Foreign/Primary keys. This reduces data redundancy and guarantees that relationships remain consistent across complex reports. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Efficient Data Transformation(Query Folding):&lt;/strong&gt; When conncted toa database, Power BI can leverage 'Query Folding', where data transformation like filtering and merging are pusshed back to the database engine. Essesntially, this enabkes for loading and transformation faster efficiently. &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.amazonaws.com%2Fuploads%2Farticles%2Fj7h8ushlzzpj207xy41a.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.amazonaws.com%2Fuploads%2Farticles%2Fj7h8ushlzzpj207xy41a.png" alt="Connecting Power BI to a SQL database" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Importances of SQL Databases for storing and managing analytical data.
&lt;/h2&gt;

&lt;p&gt;Due to their ability to provide structure, data integrity, efficient handling of large datasets, and semaless integration of tools, SQL Databases are essential for data storage and management.Business operations and key decision-making processes depend on SQL databases as their backbone. &lt;/p&gt;

&lt;h3&gt;
  
  
  Importances of Data Storage
&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.amazonaws.com%2Fuploads%2Farticles%2Fij626pocqmf3r73lso85.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fij626pocqmf3r73lso85.jpg" alt="Importance od Data storage-Synapse 360." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Structured Data Organization: SQL databases organize data into well-defined tables with columns and rows, just like in spreadsheets. This structured format, or predefined schema, makes the interaction clean, reliable, and easy to manage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Integrity and Consistency: Relational databases enhance data integrity via constraits like primary and foreign keys, ensuring data accuracy, consistency, and adhearance to predefined rules. In addition, adhearnce to ACID(Atomicity, Consistency, Isolation, Durability) properties. These properties guarantee reliable transaction processing, even in the event of system failures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce &lt;a href="https://www.google.com/search?q=redundancy+meaning&amp;amp;sca_esv=f818ef0c6d37c692&amp;amp;sxsrf=ANbL-n7MN_mrGYPk_ka0TBlnu_qHZVTNlQ%3A1773925516852&amp;amp;ei=jPS7aePYM-WgkdUP96WguAU&amp;amp;biw=1280&amp;amp;bih=585&amp;amp;oq=redundancy+&amp;amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiC3JlZHVuZGFuY3kgKgIIATIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIKEAAYgAQYigUYQzIFEAAYgAQyBRAAGIAEMgoQABiABBiKBRhDSKkUUL0EWL0EcAF4AZABAJgBzQGgAc0BqgEDMi0xuAEByAEA-AEBmAICoALsAcICChAAGEcY1gQYsAPCAg0QABiABBiKBRhDGLADwgIOEAAY5AIY1gQYsAPYAQHCAhcQLhjcBhi4BhjaBhjYAhjIAxiwA9gBAZgDAIgGAZAGE7oGBggBEAEYCZIHBTEuMC4xoAewBbIHAzItMbgH1gHCBwcyLTEuMC4xyAcagAgB&amp;amp;sclient=gws-wiz-serp" rel="noopener noreferrer"&gt;redundacy&lt;/a&gt;: By organizing data into tables(Normalization) SQL databases reduce data duplication, making storage more efficient and less prone to errors. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Importance of Analytical data and Analytical management.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Efficient retreival and manipulation: SQL is an efficient and powerful language for retreiving, filtering, sorting, and aggregating data, ecen from large datasets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handling Large datasets: SQL databases are designed to manage and analyze huge volumes of data without affecting the overall performance, whcih becomes important for enterprise-level analytics that would cause tools like Excel sluggish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complex Querying Capabilites. Analysts have the ability to perform operations involving complex data without compromising performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Cleaning and Transformation. SQL is used extensively in data preparation workflows for cleaning data. (Removing duplicates, handling missing values) and transforming it into the required format for analysis, ensuring high-quality input reporting modelling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collaboration and Standardization: SQL is a universal standard language across many industries, which enables harmony across teams and ensures that skills sets remain relevant and transferable across different systems and roles.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Connecting Power BI to Local PostgreSQL database.
&lt;/h2&gt;

&lt;p&gt;Power BI connects to a local PostgreSQL databases using the built-in PostgreSQL connector, requiring the server to be running(Usually localhost or 127.0.0.1), port 5432, and database credentials. It supports “Import” (snapshot) or “DirectQuery” (live) modes, typically requiring a local gateway for refreshing dashboards in the Power BI service. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps to Connect Power BI to local PostgreSQL&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;Preparation&lt;/strong&gt;: Ensure your PostegreSQL  server is active, and you know the server name. (localhost), port (5432), database name, username, and password. &lt;br&gt;
Get data: In Power BI Desktop, go to Home&amp;gt; Get Data&amp;gt;More…&amp;gt;Database&amp;gt;PostgreSQL database and click Connect. &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.amazonaws.com%2Fuploads%2Farticles%2Fzqn8omo29b706ing5oz5.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.amazonaws.com%2Fuploads%2Farticles%2Fzqn8omo29b706ing5oz5.png" alt="Connecting Power BI to PostgreSQL" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Configure Connection:&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Server: Type localhost or 127.0.0.1 (or localhost5432).&lt;/li&gt;
&lt;li&gt;Database: Enter the name of your specific PostgreSQL database. &lt;/li&gt;
&lt;li&gt;Data connectivity mode: Select Import (faster, static data) or DirectQuery (live connection).&lt;/li&gt;
&lt;li&gt;Enter Credentials: Choose Basic and enter your PostgreSQL username and password. &lt;/li&gt;
&lt;li&gt;Select Tables: In the navigator window, window, select the tables or views you wish to load, then click Load or Transform Data.&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.amazonaws.com%2Fuploads%2Farticles%2Fy3rjg97m22gza204eg6n.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.amazonaws.com%2Fuploads%2Farticles%2Fy3rjg97m22gza204eg6n.png" alt="Table View" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Driver Requirements: Power BI usually comes with the necessary drivers, but if not, you may need to install the psqlODBC driver.&lt;br&gt;
Firewall: Ensure Windows Firewall allows traffic on the Postgre SQL port&lt;br&gt;
(default: 5432)&lt;br&gt;
Cloud refresh: To refresh data in the Power BI Service, you must install and configure an- on premises data gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to connect Power BI to a cloud database such as &lt;a href="https://aiven.io/postgresql" rel="noopener noreferrer"&gt;Aiven PostgreSQL&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;To connect Power BI to an Aiven PostgreSQL database, one needs to collect the details from the Aiven Console, ensure you have the correct driver installed, and configure a secure connection in Power Desktop. &lt;br&gt;
&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=58494" rel="noopener noreferrer"&gt;Power BI Desktop Installed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;An active Aiven for PostgreSQL service with your connection details (host, port database name, username, password). &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.amazonaws.com%2Fuploads%2Farticles%2Fnpgvxwla3yzi1nq0v56w.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.amazonaws.com%2Fuploads%2Farticles%2Fnpgvxwla3yzi1nq0v56w.png" alt="Aiven Console with connection details" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The PostgtreSQL ODBC driver installed on your machine (If not already included with Power BI).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The SSL CA certificate download from your Aiven service. Aiven requires secure connections, and this certificate is used for verification. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Connection Steps:&lt;br&gt;
&lt;strong&gt;1.Download the SSL Certificate from Aiven&lt;/strong&gt;&lt;br&gt;
-Log in to your Aiven console and navigate to your Postgre SQL server’s Overview tab.&lt;br&gt;
-Scroll to the Connection Information section and download the CA certificate file (Usually ca.pem).&lt;br&gt;
-(Optional but recommended) Install the Certificate in your Windows machine’s Trusted Root Certification Authorities store for seamless verification. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Get data In Power BI Desktop.&lt;/strong&gt;&lt;br&gt;
-Open Power BI Desktop.&lt;br&gt;
-Open the Home tab, click Get data&amp;gt; More…&lt;br&gt;
-In the Get Data Window, search for “ PostgreSQL” and select PostgreSQL database then click connect.&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.amazonaws.com%2Fuploads%2Farticles%2Fenk7q31ceixpr0x9nk9y.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.amazonaws.com%2Fuploads%2Farticles%2Fenk7q31ceixpr0x9nk9y.png" alt="Connecting Aiven Connection details to Power BI Desktop" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Configure Connection Settings&lt;/strong&gt;&lt;br&gt;
-In the PostgreSQL database dialog box, enter the server (hostname and port, e.g., your-service-project.aivencloud.com:port) and Database name from your Aiven details. &lt;br&gt;
-Select the Data Connectivity mode (Import is recommended for most cases).&lt;br&gt;
-In the Advanced options, you may need to specify SSL parameters like sslmode=require or sslmode=verify-full&amp;amp;sslrootcert=path\to\ca.pem. The built-in connector often handles the SSL encryption automatically if the certificate is correctly installed on the system. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Authenticate&lt;/strong&gt;&lt;br&gt;
-Power BI will prompt you for credentials. Select the Database authentication method. &lt;br&gt;
-Enter the Username and Password from your Aiven connection details.&lt;br&gt;
-Click Connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Load data.&lt;/strong&gt;&lt;br&gt;
-In the navigator window, select the tables you want to analyze. A data preview will be shown. &lt;br&gt;
-Click Load to import the data directly into Power BI, or click Transform Data to use the Power Query Editor for cleaning and shaping the data before loading.&lt;/p&gt;

&lt;p&gt;Once the data is loaded, the tables will appear in the Fields pane, and you can begin creating visualizations.&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.amazonaws.com%2Fuploads%2Farticles%2Fudo6esly3e6mxnwsfa8g.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.amazonaws.com%2Fuploads%2Farticles%2Fudo6esly3e6mxnwsfa8g.png" alt="Table View in Power BI Desktop" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why SSL Certificates are required for secure database connections.
&lt;/h3&gt;

&lt;p&gt;SSL (Secure Sockets Layer/TLS) certificates are required for database connections to ensure that data travelling between the application(Client) and the database server remains secure, private, and untampered with. &lt;/p&gt;

&lt;p&gt;The following outlines why they are essential:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Encryption in Transit: Without SSL, data – including database querries, query results, and login credentials – is transmitted in plain text. SSL encrypts this data, making it unreadable if intercepted by attackers.&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.amazonaws.com%2Fuploads%2Farticles%2F5gjte0snr9o9vd2a7owr.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2F5gjte0snr9o9vd2a7owr.jpg" alt="SSL" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preventing Man-in-the Middle attacks: SSL certificates provide server authentication, ensuring the client is connecting to the legitimate database server rather than a malicious imposter aiming to capture data.&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.amazonaws.com%2Fuploads%2Farticles%2Fb5mdten0izajpmu1a5j2.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fb5mdten0izajpmu1a5j2.jpg" alt="SSL Security" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ensuring Data Integrity: SSL ensures that data cannot be modified or corrupted during transit without being detected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regulatory Compliance: Many industry regulations, including PCI-DSS, HIIPA, and GDPR, mandate the encryption of sensitive data in transit, making SSL a necessity for compliance. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security for Remote/Cloud Networks: Even within a company network, SSL enforces a “Zero trust” approach. It is particularly crucial when databases are hosted in the cloud or accessed over public, untrusted networks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a nutshell, SLL certificates turn an insecure, transparent connection into a secure, encrypted tunnel, protecting critical data from being tampered. &lt;/p&gt;

&lt;h2&gt;
  
  
  How tables are and relationships are created in Power BI Desktop.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Loading the Data.
Before you can analyze anything, you must bring tables into Power BI environment. &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connect to Source: Use “Get Data” to connect to your data source (Excel, PostgreSQL, or a CSV).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Power Query: Once you select your four tables (Customers, Products, sales, and Inventory), you should click Transform Data. This opens the Power Query Editor where you clean data -  Ensuring date formats are correct, removing duplicates from the “Customers” table, and making siure the “Products” IDS match tables. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Load: After cleaning, click Close &amp;amp; Aply. The data is then loaded into the Power BI ‘internal data source.’&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;The core Concept: Facts Vs Dimension Tables
To model the data correctly, you must understand the two types of tables you are working with:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fact Tables (The “What Happened”): These contain quantitative data about business processes.  Example; Sales (Contains price, quantity, and date) and Inventory (contains stock levels).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fact tables (The ‘Who, What, Where’): These contain descriptive attributes.&lt;br&gt;
Example; Customers (names, emails) and Products (Categories, brands, Cost).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Creating Relationships.
Relationships tell Power BI how a row in one table relates to a row in another. This is usually done in the Model View (The relationship icon on the left sidebar).&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The common Key: You connect using “Keys”. Example, you drag the productid from the Products table to the ProductID in the Sales Table. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cardinality (One-to-many): This is the most common relationship.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Direction of Flow: By default, the relationship filters in one direction (From the Dimension table to the Fact table). When you select a specific product name, the relationship tells the Sales table to only show the rows for that specific ID.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Why data Modeling matters.
Without these relationships, Power BI is just a collection of separate spreadsheets. Data modelling allows for the Cross-Filtering:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Accurate Aggregation: It ensures that when you drag “Customer Name” and “Toal Revenue” into a chart, Power BI knows exactly which sales belong to which person. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connecting Disparate Data: Relationships allow to compare Sales Vs Inventory. You can see if a dip Sales was caused by a specific product being out of stock, even though that data lives in two different tables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimization: Instead of having one massive, messy table with 100 columns, you can have a clean “Star Schema” that makes the report run faster and DAX formulas easier to write.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;SQL skills are essential for Power BI analysts because they form the foundation of efficient data handling before visualization begins. With SQL, analysts can directly retrieve relevant data from databases, apply precise filters to narrow down large datasets, and perform aggregations such as sums, averages, and counts at the source level, reducing the load on Power BI. This pre-processing ensures cleaner, well-structured data, which leads to faster report performance and more accurate insights. Additionally, SQL enables analysts to join multiple tables, create calculated fields, and shape data into analysis-ready formats, making the overall dashboard-building process smoother, more scalable, and more reliable.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Joins and Window Functions In SQL</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Tue, 03 Mar 2026 09:08:12 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/joins-and-window-functions-in-sql-44p</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/joins-and-window-functions-in-sql-44p</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In the world of SQL, there is a fundamental difference between having data and understanding it. If your database is a library, raw tables are just books scattered across different book-shelves. To give an insightful story, you need to have a connection between those books and analyze the narrative within them. This is where the two most powerful tool in data analysis come in. Joins and Windows. &lt;br&gt;
Often, data analysis feels like a jigsaw puzzle where the pieces are not consolidated and are scattered across different boxes. Joins and Window functions are the basic tools to arrange those pieces together to create order. While they might appear similar - both combine data - Meaning they serve in a different capacity in your analytical workflow. In this article, we shall break down how they work, when to use them and how to combine them in solving complex real-world problems. &lt;/p&gt;
&lt;h2&gt;
  
  
  JOINS: The "Horizontal" Connection
&lt;/h2&gt;

&lt;p&gt;Joins are used to link two or more tables together on a thread column between them. They act like a way to enrich your data. If you have a listof orders but require the customers' names, you join the orders table to the customers' table. &lt;/p&gt;
&lt;h2&gt;
  
  
  Types of Joins:
&lt;/h2&gt;

&lt;p&gt;Inner Join - Returns records that have matching values in both tables.&lt;br&gt;
Left Join - Returns all records from them left table, and matched records from the right. &lt;br&gt;
Right Join - Returns all records from the right table, and matched records from the left.&lt;br&gt;
Full Join - Returns all records when there is a match in either table. &lt;br&gt;
Scenario: You have an Employees table and want to see every employees' name right next to their manager's name. Since the manager is also an employee, their data is in the same table.&lt;br&gt;
&lt;code&gt;SELECT &lt;br&gt;
    e.Name AS Employee, &lt;br&gt;
    m.Name AS Manager&lt;br&gt;
FROM Employees e&lt;br&gt;
LEFT JOIN Employees m ON e.ManagerID = m.EmployeeID;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Rule of Join; Joins change the breadth of your data by adding columns from other tables, but they can also change the row count if there are multiple matches.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  WINDOW FUNCTIONS: The "Vertical" calculation.
&lt;/h2&gt;

&lt;p&gt;Window functions perform the role of calculations across a set of table rows that  are somehow related to the current row. Unlike aggregate functions, like &lt;em&gt;Sum, Avg, with GROUPED BY,&lt;/em&gt; Window functions do not group rows into a single output row. The rows retain their seperate identities. This is made possible through the &lt;em&gt;OVER() Clause.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Key Components&lt;/strong&gt;&lt;br&gt;
Partition by: Divides the results set into partitions (Groups)&lt;br&gt;
Order By: Sorts the rows within each partition.&lt;br&gt;
Frame Clause: Defines the subset of rows to look at e.g The last two days. &lt;/p&gt;

&lt;p&gt;Example: The Running Total.&lt;br&gt;
If you want to see your daily sales alongside a running total of all sales to date, you use a window function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    Date, 
    DailySales,
    SUM(DailySales) OVER (ORDER BY Date) AS RunningTotal
FROM Sales;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When to Use Which:
&lt;/h2&gt;

&lt;p&gt;Choosing between a Join and  Window Function depends on your 'Data Goal'.&lt;br&gt;
Use a join when;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You need data that lives in another table.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are building a foundation dataset for a report.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You need to filter one table based on the existence pf records in another. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use a Window Function when;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You need to compare a row to its neighbors e.g How much more did we sell today than yesterday. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You need to do ranking, e.g Who are the top 4 customers by region?&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    Region, 
    Salesperson, 
    TotalSales,
    DENSE_RANK() OVER (PARTITION BY Region ORDER BY TotalSales DESC) AS SalesRank
FROM RegionalSales;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;You need to calculate a moving average or a cumulative sum. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;At first glance, Joins and Windows might seem like competing methods for combining data. However, as we have explored in the article, the two are actually distinct. By mastering both, you move beyond simply "Retrieving" data and begin generating meaningful insights. You stop asking what data is and start explaining it. &lt;/p&gt;

</description>
      <category>sql</category>
      <category>datascience</category>
      <category>luxdevhq</category>
    </item>
    <item>
      <title>How Analysts Translate Messy Data, DAX, and Dashboards into Action Using Power BI</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Sat, 07 Feb 2026 15:35:40 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/translating-data-chaos-into-business-actions-with-power-bi-keh</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/translating-data-chaos-into-business-actions-with-power-bi-keh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The true value of a Data Analyst is not just their ability to use software; it is their duty to do the right translations They take the mess- the scattered and unassembled business operations- and refine it through the lens of Power Bi. By combining the structural rigor of Power Querry, the mathematical depth of DAX, and the psychology visual design, they turn numbers into a roadmap for growth.&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.amazonaws.com%2Fuploads%2Farticles%2Fsklu4dummyj1wpxgzxoi.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.amazonaws.com%2Fuploads%2Farticles%2Fsklu4dummyj1wpxgzxoi.png" alt="Mess to Insights" width="800" height="741"&gt;&lt;/a&gt;&lt;br&gt;
Sales files flow to your email with broken dates, Finance exports do not balance, operations data lives in three different systems, the leadership still wants clear answers by a tight deadline. This is where a Power BI analyst earns their keep-nots by coming up with legible charts, but by translating chaos into decisions. &lt;/p&gt;

&lt;p&gt;This article looks into how analysts actually do that: Right from harnessing messy data, to writing purposeful DAX, to designing dashboards that drive action – Not confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Harnessing the Chaos
&lt;/h2&gt;

&lt;p&gt;The following list shows some of the key issues that raw data arrive with.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inconsistent date formats (Text vs date)&lt;/li&gt;
&lt;li&gt;Duplicate records and missing keys&lt;/li&gt;
&lt;li&gt;Mixed currencies, units, or naming conventions&lt;/li&gt;
&lt;li&gt;Flat files pretending to be relational data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Data profiling:&lt;/strong&gt; Check for outliers or null values that could skew details.&lt;br&gt;
&lt;strong&gt;Transformation:&lt;/strong&gt; Setting up these steps so that when the next set of uncleaned data arrives, Cleaning happens automatically.&lt;br&gt;
As an analyst, don’t panic. Ask one question first;&lt;br&gt;
What decision will this data support?&lt;br&gt;
The question determines how clean is “Clean Enough”&lt;/p&gt;

&lt;h2&gt;
  
  
  Power Query: Where order begins
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Here, standardize columns and data types&lt;/li&gt;
&lt;li&gt;Create surrogate keys&lt;/li&gt;
&lt;li&gt;Normalize wide tables into fact and dimension structures&lt;/li&gt;
&lt;li&gt;Remove noise without destroying signal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This stage is less about transformation wizardry and more of data empathy- Getting to know how data was created and how it should really behave. &lt;br&gt;
&lt;em&gt;Clean data is not about perfection. It is about trust, Data that can be relied on.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Modeling: Turning Tables into meaning
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2F2afjkpilauu5lhhol5mx.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.amazonaws.com%2Fuploads%2Farticles%2F2afjkpilauu5lhhol5mx.png" alt="Mess to Insights" width="800" height="732"&gt;&lt;/a&gt;&lt;br&gt;
Once data is clean, an analyst shifts from data fixing to data thinking. The model is the product. &lt;br&gt;
A well designed- data model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses fact and dimension tables intentionally. &lt;/li&gt;
&lt;li&gt;Avoids bi-directional relationships unless justified&lt;/li&gt;
&lt;li&gt;Aligns grain(Low-level meaning) across tables. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Star schemas are not academic preferences - they make DAX able to make meanigful and reliable insights.when the model is right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Measures become simpler&lt;/li&gt;
&lt;li&gt;Visuals behave predictably&lt;/li&gt;
&lt;li&gt;Business logic lives in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unpleasant models come up with dashboards that look okay but answer the wrong questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  DAX: Encoding Business Logic, not Math tricks
&lt;/h2&gt;

&lt;p&gt;DAX intimidates many people because it feels like Excel formulas -But behaves very differently.&lt;br&gt;
Good analysts stop asking: “How do I write this formula?” and start asking: What question should this measure answer?”&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning insights into action
&lt;/h2&gt;

&lt;p&gt;This step isn’t the dashboard itself, rather, it is the interpretation. A great analyst uses Power BI features to trigger real-world movement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data-Driven Alerts: having notifications so a manager gets an email if inventory drops below 10%&lt;/li&gt;
&lt;li&gt;Power automate integration:  Allowing users to initiate a business process(Like refreshing budget) directly from the report.&lt;/li&gt;
&lt;li&gt;The narrative: Using the “Smart Narrative” tool to summarize the key takeaways in plain English, ensuring no one misses the “Call to action”&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;In the end, the journey from messy data to a polished Power BI dashboard is about more than just technical proficiency – It is about decision enablement. A dashboard that sits idle is a failure, no matter how complex the DAX or how clean the data model is.&lt;br&gt;
The true milestone of a successful analyst is the ability to fade into the background, leaving the stakeholder with a clear, undeniable path forward. When Power BI is used correctly, the technology disappears, and the insights take the center stage. By mastering the power of translation, analysts do not just report on the past; they provide the clarity needed to build a more efficient, profitable future.  &lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>datascience</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>From Raw Data to Insights: Schemas and Data Modeling</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Mon, 02 Feb 2026 04:56:26 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/from-raw-data-to-insights-schemas-and-data-modeling-3gf6</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/from-raw-data-to-insights-schemas-and-data-modeling-3gf6</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Data doesn't become useful the moment you collect it, rather, it becomes useful when it is well structured. The structure is what schemas and data modeling are all about. Whether you're working in Excel or PowerBi or a full data warehouse, getting to know, understanding schemas and data modeling is the foundational skill for any data analyst. &lt;br&gt;
This article breaks down schemas and data modeling in an elaborate way well suited for beginers.&lt;/p&gt;

&lt;p&gt;Now lets dive in. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A Schema&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;(The blueprint)&lt;br&gt;
Refers to the way tables are structred and the interelation they have with eachother. in other words, schemas define the logical structure, organization and relationships of tables within a data model. Majorly, they narrow down on structuring data for optimal performance and reporting.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Data Modeling&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;(The Plan)&lt;br&gt;
It essentially refers to the crucial process of arranging and creating an interelation between data tables to create a logical, efficient sematic model, which in turn helps in creating accurate analysis and powerful reports by defining relationships, creating DAX computations(Measures) and having organized data by using schemas within Power querry and Model view.&lt;/p&gt;

&lt;p&gt;Lets now connect the two. Data modeling is the process of designing a blueprint for organizing data based on various business needs and requirements, while a schema is the ground and technical implimentation of that blueptint within DBMS. The interelation is a direct progression from concept to physical reality. &lt;br&gt;
&lt;em&gt;The data model guides the schema design - The schema is the actualization of the model.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Schemas Matter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make data easier to understand&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce query performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce data duplication&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support scalable reporting and analysis&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of Schemas in Power BI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Star Schema&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Refers to a mature modeling approach widely adopted by the relational data warehouses. It needs user to classify their model tables as their dimension or fact. It is designed for high performance. In addition it consists one or more central Fact tables (With metrics/measures) sorrounded by de-normalised dimensions tables (Containing Descriptive attributes)&lt;br&gt;
The strucure: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fact Table(Center)&lt;/strong&gt; &amp;gt;&amp;gt; Contains Numeric measures (Things you aggregate) and foreigns keys to dimensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimension Tables (Around it)&lt;/strong&gt; &amp;gt;&amp;gt; Contains descriptive attributes and one row per entity.&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.amazonaws.com%2Fuploads%2Farticles%2F1gzsbf5ev2pnvawzrmpt.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.amazonaws.com%2Fuploads%2Farticles%2F1gzsbf5ev2pnvawzrmpt.png" alt="Fact and Dimensions" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reasons why Star Schema is recomended
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Faster performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simpler DAX&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fewer relationship&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy to explain to stakeholders&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tips: &lt;br&gt;
If it describes something&amp;gt;&amp;gt; Dimension&lt;br&gt;
If it is a sum of a number&amp;gt;&amp;gt; Fact&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Snowflake Schemas&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is a more complex, and widely normalised version of the Star schema. This refers to when dimensions are normalised into multiple tabls. This is further broken down into Sub-dimensions to reduce data redundancy. Its basically an extension of the star schema often utilised for complex, hierachical data, improving storage efficiency at the cost of Query  performance due to more required joins. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;: Reduces duplication&lt;br&gt;
&lt;strong&gt;Cons&lt;/strong&gt;: Slower, More complex DAX, and harder to maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Flatten demensions where possible. Storage is cheap, Confusion is expensive.**&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparing A Good data model Vs A Bad data model.
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Good Model&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Bad Model&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Multiple small dimension tables&lt;/td&gt;
&lt;td&gt;One big table with over 50 columns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple relationships&lt;/td&gt;
&lt;td&gt;Many to many relationships everywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No duplicates&lt;/td&gt;
&lt;td&gt;Duplicate in columns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Role of Power Query in data modeling.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Removes duplicates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creates dimension tables&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Geenarate surrogate keys&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean and starndardize columns&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Common Modeling mistakes and how to avoid them&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Using data columns in fact table only&lt;/th&gt;
&lt;th&gt;Create a proper Data table&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Many-to-many relationships&lt;/td&gt;
&lt;td&gt;Introduce bridge tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Too many bidirectional filters&lt;/td&gt;
&lt;td&gt;Redesign tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calculated columns everwhere&lt;/td&gt;
&lt;td&gt;Prefer measures&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Data modeling is the bridge between raw data and clean insights, once your model are solid, DAX becomes silple and not scary. &lt;br&gt;
Schemas and Data modeling may feel abstract at first, but they are what seperates messy data from insightful and reliable analytics systsems.Mastering them will Improve your dashboards, reduce errors, and make analysis scalable.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>luxdevhq</category>
      <category>powerbi</category>
    </item>
    <item>
      <title>The Excel Evolution: Navigating from Data Entry to Data Artistry without stress</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Sun, 25 Jan 2026 17:01:42 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/the-excel-evolution-navigating-from-data-entry-to-data-artistry-without-stress-45mh</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/the-excel-evolution-navigating-from-data-entry-to-data-artistry-without-stress-45mh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Microsoft Excel is one of the tools that might look simple at first - But the deeper you dive, the more powerful and insightful it gets. Regardless of whether one is tracking expenses, analyzing business or building dashboards, Excel can handle it all. This article servers to give a roadmap to preventing you from getting stuck or overwhelmed. Each stage in the article builds on the previous one just like levelling up in a game.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;STAGE 1: Understanding the Interface&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Excel consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Workbooks - The Excel file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Worksheets - Individual sheets inside a workbook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cells - Boxes that contains data e.g. &lt;code&gt;A1, B2, C7&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rows and Columns - Rows run horizontally, columns vertically.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2F8nhaawn4u5gz27dm7tw5.webp" 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.amazonaws.com%2Fuploads%2Farticles%2F8nhaawn4u5gz27dm7tw5.webp" alt="Microsoft Excel Interface" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic Data Entry&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter texts, Numbers and dates&lt;/li&gt;
&lt;li&gt;Edit and Delete cell content&lt;/li&gt;
&lt;li&gt;Copy &amp;amp; paste data.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use autofil to quickly fill patterns.&lt;br&gt;
&lt;strong&gt;Basic Formatting&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Formatting makes your data legible&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change font size, color, and style&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply borders and cell colors&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Format numbers (Currency, Percentage and Dates)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change row height and column width.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Simplple Formulae&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`=SUM (A1:A10)`
`=AVERAGE (A1:A10)`
`=MIN ()` &amp;amp; `=MAX ()`
`=COUNT ()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;`&lt;br&gt;
At this stage, Excel may start to feel like a smarter calculator and thats fine. It should feel like that.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Stage 2: Logical and Conditional Formatting&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here, Start thinking logically with excel.&lt;br&gt;
These functions help Excel 'think.'&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
=IF() -Makes Decisions&lt;br&gt;
=AND()Combines conditions&lt;br&gt;
=OR() Also Combines conditions&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Working with data&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relative and Absolute cell referencing. (&lt;code&gt;A1&lt;/code&gt; vs &lt;code&gt;$A$1&lt;/code&gt;
Relative cell referencing is the  Default Excel referencing; Makes changes based on relative position. On the other hand, Absolute Cell referencing is locked- Always points to the same exact cell.&lt;/li&gt;
&lt;li&gt;Sortinng &amp;amp; and Filtering.
Sorting rearrages rows alphabetically or numerically(A-Z, Z-A, Smallest-Largest) Where as Filtering hides rows that do not meet the specified or desired criteria, displaying only the relevant data for analysis.&lt;/li&gt;
&lt;li&gt;Remove duplicates.
This functions gets rid of repetitive unnecessary data. In Excel, select Data tab, click &lt;strong&gt;Remove duplicates&lt;/strong&gt;, check the relevant columns in the columns in the dialog box(Ensuring headers are noted if present), Press OK.&lt;/li&gt;
&lt;li&gt;Texts to columns&lt;/li&gt;
&lt;li&gt;Page set up and printing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Stage 3: Data Handling&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You should concentrate on the following areas to help in handling large datasets.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Validation.
This function restricts excel from accepting data entry in cells to specific types, values or formats using the rule &lt;code&gt;Data&amp;gt;Data Validation&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Remove duplicates.
This function removes duplicates contents in a dataset via the &lt;code&gt;Data&amp;gt;Remove dumplicates&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Texts functions. e.g; &lt;code&gt;LEFT&lt;/code&gt; , &lt;code&gt;RIGHT&lt;/code&gt;, &lt;code&gt;LEN&lt;/code&gt;, &lt;code&gt;TRIM&lt;/code&gt;, &lt;code&gt;CONCAT&lt;/code&gt;
Excel text functions make changes to strings, extract data, format numbers, and clean data for smooth working.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;LOOKUP functions&lt;/strong&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.amazonaws.com%2Fuploads%2Farticles%2Fvgpv9d673dq52emp75q0.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.amazonaws.com%2Fuploads%2Farticles%2Fvgpv9d673dq52emp75q0.png" alt="LOOKUP FUNCTIONS" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;VLOOKUP()&lt;/code&gt; and &lt;code&gt;HLOOKUP()&lt;/code&gt;&lt;br&gt;
VLOOKUP function searches for a specific value in the leftmost column of a table and returns a corresponding value from another column in the same row. On the other hand, HLOOKUP searches for a value in the top row of data table and returns a corresponding value from a specified row in the same formula.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;XLOOKUP()&lt;/code&gt;&lt;br&gt;
This function finds data in the table or range by row, serving as a more effective and flexible alternative to &lt;code&gt;VLOOKUP,HLOOKUP, And INDEX/MATCH.&lt;/code&gt;&lt;br&gt;
&lt;code&gt;INDEX() + MATCH()&lt;/code&gt;&lt;br&gt;
This function allows lefward serches, column insertions, and faster processing on large data sets. INDEX returns a value from a range, while MATCH finds the row number of a value creating a dynamic, resilient, and Non-volatile LOOKUP tool.&lt;br&gt;
Altogether, these functions allow excel to pull data from massive tables and data sets instantly.&lt;br&gt;
&lt;strong&gt;Charts and Visuals&lt;/strong&gt;&lt;br&gt;
Excel has the ability to turn large, uncleaned data into insights and visializations.&lt;br&gt;
Tools include; Column, bar, line, and Pie charts. - Custom charts formating, adding lables, titles and legends.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Stage 4: Advanced Excel - Becoming a Pro.&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pivot Tables&lt;/strong&gt;
This is an important segment that one cannot ignore. These tables summarize large data sets within seconds without having to write formulas.
Before using pivot tables, ensure your data is cleaned. Select your data by clicking anywhere inside the data set, Insert Pivot table, Choose from Table/Range, and Click OK.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  When Should one use Pivot Tables?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Summarize large datasets quickly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compare totals, averages and Counts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Group data by date, country, category and customer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build Dashboards and reports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Avoid complex formulas like &lt;code&gt;SUMIFS&lt;/code&gt;, COUNTIFS&lt;/p&gt;
&lt;h3&gt;
  
  
  Creating a Pivot table.
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select ypur data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Insert Pivot table(New Worksheet)&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fn12qhxswhi8ihnghhhkh.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.amazonaws.com%2Fuploads%2Farticles%2Fn12qhxswhi8ihnghhhkh.png" alt="Pivot table" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
Group data by category.&lt;br&gt;
Calculates totals, averages, and counts&lt;br&gt;
Rearrange data dynamically without formulas&lt;br&gt;
Creating Pivot charts&lt;br&gt;
Advanced formulas include; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=SUMIFS()&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=COUNTIFS()&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=AVERAGEIF()&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Array formulas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nested functions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic formulas; &lt;code&gt;FILTER&lt;/code&gt;, &lt;code&gt;SORT()&lt;/code&gt;, and &lt;code&gt;UNIQUE()&lt;/code&gt;&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fodv7embgr4bepqg8cq1g.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.amazonaws.com%2Fuploads%2Farticles%2Fodv7embgr4bepqg8cq1g.png" alt="IF Functions" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NOTE: It is important to understand that the difference between beginner and a Pro isn't speed - It's confidence and accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Excel is a big ocean, More than just a speadsheet tool - It is a career skill especially in a data driven world. Starting with basic data entry and formulas, moving into analysis and Visualizations, and finally mastering automation and advanced functions. Just identify the right tool for the given problem. You will move from beginner to pro.&lt;/p&gt;

</description>
      <category>luxdev</category>
      <category>beginners</category>
      <category>excel</category>
      <category>datascience</category>
    </item>
    <item>
      <title>The Ultimate Manual: Understanding Git and GitHub without Headache.</title>
      <dc:creator>Kinyanjui</dc:creator>
      <pubDate>Sat, 17 Jan 2026 05:27:06 +0000</pubDate>
      <link>https://dev.to/s_ndungu_ebc94c8db8906f72/the-ultimate-manual-understanding-git-and-github-without-headche-43lp</link>
      <guid>https://dev.to/s_ndungu_ebc94c8db8906f72/the-ultimate-manual-understanding-git-and-github-without-headche-43lp</guid>
      <description>&lt;h2&gt;
  
  
  The concept: Git vs. GitHub on Windows.
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Fh8m223f32e2zc59jbfkh.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.amazonaws.com%2Fuploads%2Farticles%2Fh8m223f32e2zc59jbfkh.png" alt=" " width="800" height="719"&gt;&lt;/a&gt;&lt;br&gt;
Imagine, you are working on a major project. You spend quite a large number of hours writing code, only to find out that the 'fix' you implimented ten minuted ago broke everything. You try and hit the redo button repeatedly but it's not enough. Your work is gone. &lt;br&gt;
That's where &lt;a href="https://www.google.com/search?q=version+control&amp;amp;oq=version+&amp;amp;gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIHCAEQABiABDIHCAIQABiABDIHCAMQABiABDIHCAQQABiABDIHCAUQABiABDIHCAYQABiABDIHCAcQABiABDIHCAgQABiABDIHCAkQABiPAtIBCDIzMjRqMGo3qAIIsAIB8QX9i4FDdg_Qp_EF_YuBQ3YP0Kc&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8" rel="noopener noreferrer"&gt;Version Control&lt;/a&gt; comes in. This article aims at helping beginner developers to bridge the gap between GitHub and Git Bash. The distinct roles seperating the two are;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Git. The local tool- This is the &lt;a href="https://www.google.com/search?q=version+control&amp;amp;oq=version+&amp;amp;gs_lcrp=EgZjaHJvbWUqDggAEEUYJxg7GIAEGIoFMg4IABBFGCcYOxiABBiKBTIHCAEQABiABDIHCAIQABiABDIHCAMQABiABDIHCAQQABiABDIHCAUQABiABDIHCAYQABiABDIHCAcQABiABDIHCAgQABiABDIHCAkQABiPAtIBCDIzMjRqMGo3qAIIsAIB8QX9i4FDdg_Qp_EF_YuBQ3YP0Kc&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8" rel="noopener noreferrer"&gt;Version Control&lt;/a&gt; system that lives in one's computer and tracks changes in files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. This is the cloud platform where one hosts Git repositories online so that collaborating with others is made easy. &lt;br&gt;
Advantages include; Safety, Tracability and Accountability, High-Confidence Experimentation, Collaboration, and Off-site Back-up. &lt;/p&gt;
&lt;h2&gt;
  
  
  Setting Up the Environment(Git Bash).
&lt;/h2&gt;

&lt;p&gt;To begin with, one needs to install &lt;a href="https://git-scm.com/install/" rel="noopener noreferrer"&gt;GIT&lt;/a&gt;&lt;br&gt;
The next step involves configuring your identity(Email and Name). This crucial activity helps Git Identify who is making the changes.&lt;br&gt;
&lt;/p&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config -global user.name "your name"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config -global user.email "youremail@example.come
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Setting Up the environment(GitHub)
&lt;/h2&gt;

&lt;p&gt;Sign in to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt; and set &lt;a href="https://www.google.com/search?q=SSH+key&amp;amp;oq=SSH+key&amp;amp;gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgwIARAAGEMYgAQYigUyBwgCEAAYgAQyBwgDEAAYgAQyBwgEEAAYgAQyBggFEEUYPTIGCAYQRRg8MgYIBxBFGDzSAQg3MDEzajBqN6gCCLACAfEFQbDxadvvlno&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8" rel="noopener noreferrer"&gt;SSH key&lt;/a&gt; and Personal Access Token for secure connection. &lt;br&gt;
A SSH key provides a secure password-less way to connect your local machine to a remote server or a service. &lt;br&gt;
To generate a key, Open terminal(GitBash on Windows) and run the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh-keygen -t ed25519 -C "youremail@example.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompted to 'Enter a file to save the Key', just press &lt;em&gt;Enter&lt;/em&gt; to accept the default file location.&lt;br&gt;
To check for existing SSH keys, run the command;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding a &lt;a href="https://www.google.com/search?q=Public+key+in+git&amp;amp;sca_esv=e4930b54a8b6c4ed&amp;amp;sxsrf=ANbL-n4RzGPy_dTH6SMEM8ynegX2bEaBgg%3A1768599327285&amp;amp;ei=H69qaZSYEb3NkdUPhqTO4QM&amp;amp;ved=0ahUKEwjUo5z1gZGSAxW9ZqQEHQaSMzwQ4dUDCBE&amp;amp;uact=5&amp;amp;oq=Public+key+in+git&amp;amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiEVB1YmxpYyBrZXkgaW4gZ2l0MgUQABiABDIGEAAYFhgeMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeMgYQABgWGB4yBhAAGBYYHkiCLlDEBVjjKHABeAGQAQCYAcUCoAGhDqoBBTItNS4yuAEDyAEA-AEBmAIIoAL6DsICChAAGLADGNYEGEfCAg0QABiABBiwAxhDGIoFwgIKEAAYgAQYQxiKBcICChAAGIAEGBQYhwKYAwCIBgGQBgqSBwcxLjAuNS4yoAfLLLIHBTItNS4yuAfrDsIHBTItNC40yAdEgAgA&amp;amp;sclient=gws-wiz-serp" rel="noopener noreferrer"&gt;Public key&lt;/a&gt; to your GitHub account.
&lt;/h2&gt;

&lt;p&gt;On windows(GitBash) run the command;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat ~/ssh/id_ed2519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On GitHub, navigate to;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Settings&amp;gt;SSH and GPG Keys&amp;gt;Select **New SSH Key**, Provide a descriptive title and paste the Public key generated from GitBash in the **key field.** &amp;gt;add key.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In your terminal, run;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A message confirming a successiful authentication will be seen. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Push and Pull commands.
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2F9qr4jwbxqaay01assx7g.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.amazonaws.com%2Fuploads%2Farticles%2F9qr4jwbxqaay01assx7g.png" alt=" " width="800" height="716"&gt;&lt;/a&gt;&lt;br&gt;
Git does not automatically save everything. It needs you to be intentional . Think of it like capturing a photo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The working directory(The Set)&lt;/strong&gt;. This is in the occassion where one is currently editing files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The staging area(The pose)&lt;/strong&gt;. One chooses which changes are ready to be saved. You run the command;&lt;br&gt;
&lt;code&gt;git add&lt;/code&gt; to put them in the &lt;em&gt;frame.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The repository.(The Photo). You run &lt;code&gt;git commit -m "your message"&lt;/code&gt; to snap the shutter. These changes now become permanent in history. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To master Git, one needs to understand the journey code takes from a local machine to a remote server like GitHub. This process involves three stages; Your working directory(Files you're editing), The staging Area(Files you've marked to save), The Repository(The permanent history.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Pushing Code to GitHub.&lt;br&gt;
Pushing is the act of uploading local commits to a remote server. This makes your code accessible to others and act as backup.&lt;br&gt;
&lt;code&gt;git push origin main&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pulling Code from GitHub.&lt;br&gt;
Pulling refers to how you download the latest changes that others have uploaded. It keeps the local version in sync with the master copy online.&lt;br&gt;
&lt;code&gt;git add &amp;amp; commit&lt;/code&gt; &amp;gt;Local folder to Local history.&lt;br&gt;
&lt;code&gt;git pull&lt;/code&gt; &amp;gt;GitHub to Local History.&lt;br&gt;
&lt;code&gt;git push&lt;/code&gt; &amp;gt;Local History to GitHub.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fmltvn18xacvpj9sg7mwa.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.amazonaws.com%2Fuploads%2Farticles%2Fmltvn18xacvpj9sg7mwa.png" alt=" " width="800" height="733"&gt;&lt;/a&gt;&lt;br&gt;
The table below shows _the big five commands on Git, the action they represent, and the real world Analogy. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Real-World Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;'git innit'&lt;/td&gt;
&lt;td&gt;Initializes a new repository.&lt;/td&gt;
&lt;td&gt;Setting up a new filing cabinet.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;'git add'&lt;/td&gt;
&lt;td&gt;Initializes your changes&lt;/td&gt;
&lt;td&gt;Putting a letter in the envelope.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;'git commit -m "msg"'&lt;/td&gt;
&lt;td&gt;Sends changes to GitHub&lt;/td&gt;
&lt;td&gt;Dropping the letter in the mailbox.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;'git pull'&lt;/td&gt;
&lt;td&gt;fetches changes from GitHub&lt;/td&gt;
&lt;td&gt;Checking your mail for updates.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Your Firts Repository.
&lt;/h2&gt;

&lt;p&gt;To start tracking your project, navigate to your project folder in the terminal bu using the command &lt;code&gt;git init&lt;/code&gt;. Once you have written some code, follow the &lt;em&gt;"Save Ritual."&lt;/em&gt;&lt;br&gt;
Saving your code on your laptop is good. However, saving it on GitHub is much better. It protects projects in instances where a laptop crashes and allows one to show off their work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion.
&lt;/h2&gt;

&lt;p&gt;Learning Git and GitHub can sometimes feel like learning a new language on top of your programming langauge. However, it is an important step that helps one level up as a developer. By understanding the cycle of tracking, pushing, and pulling, you are not just saving files -  you re building a professional portfolio and a safety net which give you more confidence to experiment. &lt;br&gt;
Do not panic if you will have to look up commands(Even the pros do). Practice makes perfect, the more you use these command, the more it becomes second nature. My advice would be, go ahead: create a repository, make a mess and use this "Headcache-Free Manual."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What was the first thing you ever 'pushed' to GitHub? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>luxdevhq</category>
      <category>git</category>
      <category>beginners</category>
      <category>manual</category>
    </item>
  </channel>
</rss>
