<?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: Okall Omondi</title>
    <description>The latest articles on DEV Community by Okall Omondi (@okall_omondi).</description>
    <link>https://dev.to/okall_omondi</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%2F2736615%2F6a25e559-b43b-4972-b2ac-c3b7406ef384.png</url>
      <title>DEV Community: Okall Omondi</title>
      <link>https://dev.to/okall_omondi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/okall_omondi"/>
    <language>en</language>
    <item>
      <title>Connecting Power BI to SQL Databases: Local SQL Server and Aiven PostgreSQL (SSL) Using DBeaver</title>
      <dc:creator>Okall Omondi</dc:creator>
      <pubDate>Sun, 12 Jul 2026 08:55:35 +0000</pubDate>
      <link>https://dev.to/okall_omondi/connecting-power-bi-to-sql-databases-local-sql-server-and-aiven-postgresql-ssl-using-dbeaver-30hf</link>
      <guid>https://dev.to/okall_omondi/connecting-power-bi-to-sql-databases-local-sql-server-and-aiven-postgresql-ssl-using-dbeaver-30hf</guid>
      <description>&lt;p&gt;If you're learning Power BI, one of the first practical skills you need is connecting it to a database. Most tutorials stop after showing a simple SQL Server connection, but real projects are rarely that simple. Sometimes the database is running on your own machine. Other times it lives in the cloud and requires SSL certificates before Power BI will even talk to it. &lt;/p&gt;

&lt;p&gt;In this guide, I'll walk through both scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Connecting Power BI to a local SQL Server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connecting Power BI to an Aiven PostgreSQL database using SSL, with DBeaver helping us verify the connection first.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not just to make the connection work, but to understand why each step matters so you can troubleshoot issues later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before You Start
&lt;/h3&gt;

&lt;p&gt;You should have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=58494" rel="noopener noreferrer"&gt;Power BI Desktop&lt;/a&gt; installed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PostreSQL Server installed locally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dbeaver.io/download/" rel="noopener noreferrer"&gt;DBeaver&lt;/a&gt; installed.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46jgn6qvq8np7lar63aq.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%2F46jgn6qvq8np7lar63aq.png" alt=" " width="799" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;a href="https://aiven.io/" rel="noopener noreferrer"&gt;Aiven&lt;/a&gt; PostgreSQL service powered on and 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%2Fol30bb9cjqnrn8id0vpb.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%2Fol30bb9cjqnrn8id0vpb.png" alt=" " width="799" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The SSL certificate file downloaded from Aiven, usually named &lt;code&gt;ca.pem&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DBeaver is useful because it lets you confirm that the database itself is reachable before involving Power BI. If DBeaver cannot connect, Power BI almost certainly won't either.&lt;/p&gt;

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

&lt;p&gt;Let's start with the easier case.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Find Your SQL Server Name
&lt;/h3&gt;

&lt;p&gt;Open SQL Server Management Studio (SSMS) if you have it installed, or check the SQL Server services list.&lt;/p&gt;

&lt;p&gt;Common server names look like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;localhost\SQLEXPRESS&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;DESKTOP-ABC123\SQLEXPRESS&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If you're using SQL Server Express, the &lt;code&gt;\SQLEXPRESS&lt;/code&gt; part is often required.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 2: Open Power BI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Launch Power BI Desktop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Get Data → SQL Server.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnrjrz1qd75rckdnhjzgd.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%2Fnrjrz1qd75rckdnhjzgd.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Enter Connection Details
&lt;/h3&gt;

&lt;p&gt;Fill in:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Server&lt;/td&gt;
&lt;td&gt;127.0.0.1:0000 (localhost IP Adress:port_number)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;postres in my case or leave blank to see all databases, or enter a specific database name.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Choose Import mode for beginners. It loads data into Power BI and is easier to work with than DirectQuery.&lt;/p&gt;

&lt;p&gt;Click OK.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Authenticate
&lt;/h3&gt;

&lt;p&gt;Power BI will ask how to log in.&lt;/p&gt;

&lt;p&gt;For a local development machine, Windows authentication is usually the simplest option because it uses your current Windows account.&lt;/p&gt;

&lt;p&gt;If your SQL Server uses SQL logins instead, choose Database and enter the username and password.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Select Tables
&lt;/h3&gt;

&lt;p&gt;After connecting, Power BI shows the available tables and views.&lt;/p&gt;

&lt;p&gt;Select the tables you need and click Load.&lt;/p&gt;

&lt;p&gt;At this point, your local SQL Server is connected and ready for reporting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 2: Verify Aiven PostgreSQL in DBeaver First
&lt;/h3&gt;

&lt;p&gt;Cloud databases introduce one extra requirement: SSL encryption.&lt;/p&gt;

&lt;p&gt;Aiven provides PostgreSQL over an encrypted connection, which means Power BI needs the same certificate information that DBeaver uses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Create the Connection in DBeaver
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open DBeaver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click New Database Connection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose PostgreSQL.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enter the connection details from your Aiven dashboard:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Host&lt;/td&gt;
&lt;td&gt;pg-12345.aivencloud.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port&lt;/td&gt;
&lt;td&gt;12345&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;defaultdb&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User&lt;/td&gt;
&lt;td&gt;Your Aiven username&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password&lt;/td&gt;
&lt;td&gt;Your Aiven password&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 2: Configure SSL
&lt;/h3&gt;

&lt;p&gt;From the Aiven dashboard, download the CA 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%2F7ny6yjhqjd3umr72bn9c.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%2F7ny6yjhqjd3umr72bn9c.png" alt=" " width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On your windows PC launch Microsoft Management Console by typing &lt;code&gt;mmc&lt;/code&gt; in the search console, and add the certificate snap-in by clicking on File --&amp;gt; Add/Remove Snap-in.&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%2F5s3cdop969ltrvhebnou.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%2F5s3cdop969ltrvhebnou.png" alt=" " width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Restart Power BI if you had it open to ensure the SSL certificate is loaded.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 3: Connect Power BI to Aiven PostgreSQL with SSL
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Step 1: Install the PostgreSQL Connector if Needed
&lt;/h3&gt;

&lt;p&gt;Recent versions of Power BI already include it. If Power BI prompts you to install the PostgreSQL driver, follow the prompt and restart Power BI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Start the Connection
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select Get Data → PostgreSQL database.&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%2Fcql7u3lezaxtuz63mwlk.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%2Fcql7u3lezaxtuz63mwlk.png" alt=" " width="799" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter the server as &lt;code&gt;host:port&lt;/code&gt; from the aiven connection information section.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pg-12345.aivencloud.com:12345&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Enter the database name, such as &lt;code&gt;defaultdb&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Configure SSL in Power BI
&lt;/h3&gt;

&lt;p&gt;When the authentication window appears:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Choose Database authentication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter your Aiven username and password.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expand Advanced options if available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set SSL Mode to &lt;code&gt;verify-full&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browse to the same &lt;code&gt;ca.pem&lt;/code&gt; certificate used in DBeaver.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3y7wh0gg9l07nx1b6fwe.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%2F3y7wh0gg9l07nx1b6fwe.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Connect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Load the Data
&lt;/h3&gt;

&lt;p&gt;Power BI will display the PostgreSQL schemas and tables.&lt;/p&gt;

&lt;p&gt;Select the tables you need and click Load.&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%2Fcrzvz6xdy5ebbouyuf76.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%2Fcrzvz6xdy5ebbouyuf76.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first connection may take a little longer because Power BI is validating the SSL certificate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Use DBeaver Before Power BI?
&lt;/h3&gt;

&lt;p&gt;Beginners often try to troubleshoot everything inside Power BI, which can be frustrating because the error messages are not always specific.&lt;/p&gt;

&lt;p&gt;DBeaver gives clearer feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If the host or port is wrong, DBeaver tells you immediately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the password is incorrect, you'll see an authentication error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the SSL certificate is missing or invalid, DBeaver points directly to the SSL problem.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once DBeaver connects successfully, Power BI usually becomes a straightforward configuration task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Mistakes Beginners Run Into
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Using the wrong SQL Server instance name
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt; and &lt;code&gt;localhost\SQLEXPRESS&lt;/code&gt; are not the same thing. If one fails, check which instance is actually running. If &lt;code&gt;localhost&lt;/code&gt; is not working, use the localhost IP address &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Forgetting the port number for PostgreSQL
&lt;/h3&gt;

&lt;p&gt;Aiven does not always use the default PostgreSQL port &lt;code&gt;5432&lt;/code&gt;. Use the exact port shown in the Aiven dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skipping SSL configuration
&lt;/h3&gt;

&lt;p&gt;Aiven requires encrypted connections. If you omit the certificate or use the wrong SSL mode, Power BI will refuse the connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mixing up authentication methods
&lt;/h3&gt;

&lt;p&gt;Local SQL Server often uses Windows authentication, while Aiven PostgreSQL uses database username and password authentication. Choosing the wrong method leads to login failures even when the credentials are correct.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;p&gt;By the end of this setup, you should be able to connect Power BI to two very different database environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Local SQL Server using Windows or SQL authentication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Aiven PostgreSQL using SSL certificates and database credentials.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The local SQL Server connection is mostly about identifying the correct server instance. The Aiven PostgreSQL connection is mostly about getting SSL configured correctly. DBeaver acts as a useful checkpoint before you bring Power BI into the picture.&lt;/p&gt;

&lt;p&gt;Once both connections are working, the experience inside Power BI is surprisingly similar. You choose tables, load the data, and start building reports. The difficult part is usually the first successful connection. After that, adding new tables or refreshing data becomes much easier because the connection settings are already saved.&lt;/p&gt;

&lt;p&gt;If you're practicing, I recommend testing the local SQL Server connection first, then moving to Aiven PostgreSQL. It builds confidence because you learn the Power BI workflow before dealing with SSL and cloud networking details.&lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>sql</category>
      <category>postgres</category>
      <category>database</category>
    </item>
    <item>
      <title>Understanding Data Modeling, Schemas, Relationships, and Joins: A Beginner's Guide</title>
      <dc:creator>Okall Omondi</dc:creator>
      <pubDate>Sat, 11 Jul 2026 03:33:53 +0000</pubDate>
      <link>https://dev.to/okall_omondi/understanding-data-modeling-schemas-relationships-and-joins-a-beginners-guide-23k4</link>
      <guid>https://dev.to/okall_omondi/understanding-data-modeling-schemas-relationships-and-joins-a-beginners-guide-23k4</guid>
      <description>&lt;p&gt;When people first start learning SQL, they usually focus on writing queries. You learn &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;WHERE&lt;/code&gt;, &lt;code&gt;GROUP BY&lt;/code&gt;, and maybe even a few aggregate functions. Everything seems manageable until you come across multiple tables. Suddenly, you're asking questions like:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why is the customer information in a different table? How are these tables connected? And what exactly is a JOIN?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you've been wondering the same thing, you're not alone.&lt;/p&gt;

&lt;p&gt;Before you can write meaningful SQL queries, you need to understand how data is organized. That's where data modeling, schemas, relationships, and joins come in. These concepts work together, and once they click, databases become much easier to understand.&lt;/p&gt;

&lt;p&gt;Let's go through them one step at a time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Data Modeling?
&lt;/h2&gt;

&lt;p&gt;Think about building a house.&lt;/p&gt;

&lt;p&gt;Before anyone starts laying bricks, an architect creates a blueprint. The blueprint shows where the rooms go, how they're connected, and where everything belongs.&lt;/p&gt;

&lt;p&gt;Data modeling works the same way.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;data model&lt;/strong&gt; is the blueprint of a database. It defines what information needs to be stored, how it should be organized, and how different pieces of information relate to one another.&lt;/p&gt;

&lt;p&gt;Instead of rooms and doors, a data model deals with things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers&lt;/li&gt;
&lt;li&gt;Products&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Employees&lt;/li&gt;
&lt;li&gt;Payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than storing everything in one giant table, the data model separates information into logical groups.&lt;/p&gt;

&lt;p&gt;For example, imagine you're designing a database for an online store.&lt;/p&gt;

&lt;p&gt;Instead of creating one huge table containing customer details, product information, payment records, and shipping addresses, you would divide the information into smaller tables.&lt;/p&gt;

&lt;p&gt;You might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers&lt;/li&gt;
&lt;li&gt;Products&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Order Items&lt;/li&gt;
&lt;li&gt;Payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each table has a clear purpose. This makes the database easier to maintain and reduces duplicate data.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is a Schema?
&lt;/h2&gt;

&lt;p&gt;Once you've designed your data model, the next step is creating the actual structure inside the database.&lt;/p&gt;

&lt;p&gt;This structure is called a &lt;strong&gt;schema&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A schema describes how the database is organized. It contains the tables, columns, data types, constraints, and relationships.&lt;/p&gt;

&lt;p&gt;Think of it as the database's floor plan.&lt;/p&gt;

&lt;p&gt;For example, a &lt;strong&gt;Customers&lt;/strong&gt; table might look like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Email&lt;/th&gt;
&lt;th&gt;Phone&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Jane Doe&lt;/td&gt;
&lt;td&gt;[&lt;a href="mailto:jane@email.com"&gt;jane@email.com&lt;/a&gt;]&lt;/td&gt;
&lt;td&gt;555-1234&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The schema defines that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;CustomerID&lt;/code&gt; is an integer.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Name&lt;/code&gt; is text.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Email&lt;/code&gt; stores email addresses.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Phone&lt;/code&gt; stores phone numbers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also specifies rules, such as requiring every customer to have a unique CustomerID.&lt;/p&gt;

&lt;p&gt;Without a schema, a database would have no structure. It would simply be a collection of unorganized data.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding Primary Keys
&lt;/h2&gt;

&lt;p&gt;If every customer has a name, why can't we just use names to identify them?&lt;/p&gt;

&lt;p&gt;Because names aren't always unique.&lt;/p&gt;

&lt;p&gt;You might have two customers named John Kamau. Which one are you referring to?&lt;/p&gt;

&lt;p&gt;This is why databases use &lt;strong&gt;primary keys&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A primary key is a column whose value uniquely identifies every row in a table.&lt;/p&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Kamau&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;John Kamau&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The names are identical, but the CustomerIDs are different.&lt;/p&gt;

&lt;p&gt;This guarantees that every customer can always be identified correctly.&lt;/p&gt;

&lt;p&gt;A good primary key should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Never be empty&lt;/li&gt;
&lt;li&gt;Never contain duplicate values&lt;/li&gt;
&lt;li&gt;Stay stable over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Almost every table in a relational database has one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding Relationships Between Tables
&lt;/h2&gt;

&lt;p&gt;Databases become powerful because tables don't exist in isolation.&lt;/p&gt;

&lt;p&gt;They're connected through &lt;strong&gt;relationships&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A relationship tells the database how information in one table is connected to information in another.&lt;/p&gt;

&lt;p&gt;Imagine these two tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Musyoka&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Kiilu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Orders
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5001&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5002&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5003&lt;/td&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice something?&lt;/p&gt;

&lt;p&gt;The Orders table contains CustomerID.&lt;/p&gt;

&lt;p&gt;That's not a coincidence.&lt;/p&gt;

&lt;p&gt;It links every order to the customer who placed it.&lt;/p&gt;

&lt;p&gt;CustomerID inside the Orders table is called a &lt;strong&gt;foreign key&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A foreign key points to the primary key in another table.&lt;/p&gt;

&lt;p&gt;This is how databases connect information without storing the same customer details repeatedly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Types of Relationships
&lt;/h2&gt;

&lt;p&gt;Most beginner databases use three types of relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  One-to-One
&lt;/h3&gt;

&lt;p&gt;One record matches exactly one record.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;One employee has one company ID card.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These relationships are less common.&lt;/p&gt;




&lt;h3&gt;
  
  
  One-to-Many
&lt;/h3&gt;

&lt;p&gt;This is by far the most common relationship.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;One customer places many orders.&lt;/li&gt;
&lt;li&gt;One teacher teaches many students.&lt;/li&gt;
&lt;li&gt;One department has many employees.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice that one side has a single record, while the other side can have many.&lt;/p&gt;




&lt;h3&gt;
  
  
  Many-to-Many
&lt;/h3&gt;

&lt;p&gt;Sometimes both sides can have multiple records.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Students enroll in many courses.&lt;/li&gt;
&lt;li&gt;Courses contain many students.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Databases usually solve this by introducing a third table called a &lt;strong&gt;junction table&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Students&lt;/li&gt;
&lt;li&gt;Courses&lt;/li&gt;
&lt;li&gt;StudentCourses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The StudentCourses table stores which student is enrolled in which course.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Are Joins?
&lt;/h2&gt;

&lt;p&gt;Now comes the question most beginners ask.&lt;/p&gt;

&lt;p&gt;If customer information is stored in one table and order information is stored in another, how do we view them together?&lt;/p&gt;

&lt;p&gt;The answer is &lt;strong&gt;JOINs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A JOIN combines rows from two or more tables based on a related column.&lt;/p&gt;

&lt;p&gt;Let's use the earlier example.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Musyoka&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Kiilu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Orders
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5001&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you write a JOIN, the result becomes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5001&lt;/td&gt;
&lt;td&gt;Musyoka&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The database matches CustomerID in both tables and combines the related information.&lt;/p&gt;

&lt;p&gt;This is why relationships are so important. Without them, JOINs wouldn't know how the tables are connected.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Types of SQL Joins
&lt;/h2&gt;

&lt;p&gt;You'll encounter several types of joins as you learn SQL.&lt;/p&gt;

&lt;h3&gt;
  
  
  INNER JOIN
&lt;/h3&gt;

&lt;p&gt;Returns only matching records.&lt;/p&gt;

&lt;p&gt;If a customer has no orders, they won't appear in the results.&lt;/p&gt;

&lt;p&gt;This is the join you'll probably use most often.&lt;/p&gt;

&lt;h3&gt;
  
  
  LEFT JOIN
&lt;/h3&gt;

&lt;p&gt;Returns every record from the left table, even if there's no matching record in the right table.&lt;/p&gt;

&lt;p&gt;This is useful when you want to find customers who haven't placed any orders yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  RIGHT JOIN
&lt;/h3&gt;

&lt;p&gt;Works like a LEFT JOIN but starts from the right table instead.&lt;/p&gt;

&lt;p&gt;Many SQL developers rarely use it because a LEFT JOIN can usually achieve the same result by switching the table order.&lt;/p&gt;

&lt;h3&gt;
  
  
  FULL OUTER JOIN
&lt;/h3&gt;

&lt;p&gt;Returns all records from both tables, matching where possible.&lt;/p&gt;

&lt;p&gt;If there's no match, the missing values are shown as &lt;code&gt;NULL&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Not every database system supports this join directly.&lt;/p&gt;




&lt;h2&gt;
  
  
  How These Concepts Fit Together
&lt;/h2&gt;

&lt;p&gt;It's easy to see these as separate topics, but they're really parts of the same picture.&lt;/p&gt;

&lt;p&gt;Here's the flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You create a &lt;strong&gt;data model&lt;/strong&gt; to plan your database.&lt;/li&gt;
&lt;li&gt;You implement that design using a &lt;strong&gt;schema&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Tables are connected through &lt;strong&gt;relationships&lt;/strong&gt; using primary and foreign keys.&lt;/li&gt;
&lt;li&gt;SQL &lt;strong&gt;JOINs&lt;/strong&gt; use those relationships to retrieve data from multiple tables.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you understand this sequence, writing SQL queries starts to make much more sense.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Beginner Mistakes
&lt;/h2&gt;

&lt;p&gt;Everyone makes mistakes while learning databases. Here are a few that come up often.&lt;/p&gt;

&lt;h3&gt;
  
  
  Putting everything into one table
&lt;/h3&gt;

&lt;p&gt;It may seem simpler at first, but it quickly leads to duplicated data and maintenance headaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ignoring primary keys
&lt;/h3&gt;

&lt;p&gt;Without unique identifiers, it's difficult to connect tables correctly or guarantee data accuracy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Joining on the wrong columns
&lt;/h3&gt;

&lt;p&gt;Always check that you're joining a foreign key to its corresponding primary key. Joining unrelated columns can produce incorrect or misleading results.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memorizing joins without understanding relationships
&lt;/h3&gt;

&lt;p&gt;Many beginners try to memorize SQL syntax first. It's usually more effective to understand how the tables relate to one another. Once the relationships are clear, choosing the correct join becomes much easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Practical Tips for Learning
&lt;/h2&gt;

&lt;p&gt;If you're just getting started, don't rush into complex database designs.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draw your tables on paper before creating them.&lt;/li&gt;
&lt;li&gt;Label the primary and foreign keys.&lt;/li&gt;
&lt;li&gt;Practice identifying one-to-one, one-to-many, and many-to-many relationships.&lt;/li&gt;
&lt;li&gt;Build small databases, such as a library, school, or online store.&lt;/li&gt;
&lt;li&gt;Write simple JOIN queries and predict the results before running them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach helps you understand the logic behind the database rather than simply memorizing SQL syntax.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;data model&lt;/strong&gt; is the blueprint that plans how data should be organized.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;schema&lt;/strong&gt; defines the structure of the database, including tables and columns.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;primary key&lt;/strong&gt; uniquely identifies each record in a table.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;foreign key&lt;/strong&gt; connects one table to another.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relationships&lt;/strong&gt; describe how tables are linked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JOINs&lt;/strong&gt; combine data from related tables to answer real-world questions.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Data modeling, schemas, relationships, and joins can seem like separate topics when you're first learning databases. In reality, they're different pieces of the same foundation.&lt;/p&gt;

&lt;p&gt;Once you understand how data is organized and why tables are connected the way they are, SQL becomes far less intimidating. Queries stop feeling like random commands and start feeling like conversations with the database.&lt;/p&gt;

&lt;p&gt;If you're learning SQL, spend time understanding the structure before chasing more advanced syntax. A solid grasp of these fundamentals will make every future topic—from writing reports to designing databases—much easier to learn.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>powerplatform</category>
      <category>database</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How Excel is Used in Real-World Data Analysis</title>
      <dc:creator>Okall Omondi</dc:creator>
      <pubDate>Sat, 06 Jun 2026 06:35:07 +0000</pubDate>
      <link>https://dev.to/okall_omondi/how-excel-is-used-in-real-world-data-analysis-17hl</link>
      <guid>https://dev.to/okall_omondi/how-excel-is-used-in-real-world-data-analysis-17hl</guid>
      <description>&lt;h2&gt;
  
  
  What is Excel?
&lt;/h2&gt;

&lt;p&gt;Well, the simplest answer? Excel is a tool. &lt;br&gt;
You might ask, which tool? &lt;br&gt;
Think of it as a bookshelf, or the wardrobe in your house. &lt;br&gt;
What does the bookshelf and the wardrobe have in common? Partitions. &lt;br&gt;
Most bookshelves have identifiers to help you locate the exact partition where the book is stored. The last library I visited had letters and numbers. The letters were written horizontally (from left to right) across the bookshelf and the numbers were written vertically (from top to bottom). I could easily identify the exact partition by using the letter and number combination, for example the first partition in the bookshelf was A1. This is the exact way Excel is organized with letters and numbers. &lt;/p&gt;

&lt;p&gt;The partition A1 in the bookshelf represents &lt;strong&gt;a cell&lt;/strong&gt; in Excel. The horizontal letters (from left to right) of the bookshelf represent &lt;strong&gt;a row&lt;/strong&gt; in an Excel, and the vertical numbers from top to bottom in a bookshelf represent &lt;strong&gt;a column&lt;/strong&gt; in an Excel. A single bookshelf represents &lt;strong&gt;a worksheet&lt;/strong&gt; in Excel and several bookshelves represent &lt;strong&gt;a workbook&lt;/strong&gt; in Excel. Simple right?&lt;/p&gt;

&lt;h2&gt;
  
  
  How Excel is used in real world Data Analysis.
&lt;/h2&gt;

&lt;p&gt;You have probably heard of the phrase “data is the new oil” right? What makes it the new oil? Apart from it being the new “money printer”, data is the “know it all”, it is the real story teller. However, before data can tell you stories and turn into your cash machine, you must first make sense of it, to understand what happened and why it happened. The process of understanding what happened and why it happened is called Data Analysis. By understanding what happened and why it happened, you can easily figure out what will happen (Data Science). Excel is fundamental in the understanding phase, and in the figuring out phase, because it acts as the story for the data to be understood and figured out.&lt;/p&gt;

&lt;p&gt;Which areas do we then use Excel in the real world? Imagine this scenario, you are running a small refurbished laptops resale shop, every laptop you sell with a small profit on top of the purchase price, and making profits in your head. However, at the end of the month you find out you are short of cash to pay bills forcing you to borrow money from friends, yet, you did not sell any laptop at a loss. What do you do? This is where Excel comes in. Excel can help you to store your sales data, organize the data and clean the data. Excel also gives you formulas such as &lt;code&gt;SUM, AVERAGE, MIN, MAX, COUNT&lt;/code&gt; and functions such as &lt;code&gt;IF, SUMIF, AVERAGEIFS, VLOOKUP&lt;/code&gt; which you can use to do calculations and create logics to see how your business is doing. Excel also has pivot table functionality which is helpful in summarizing data quickly. You can also draw insights from the data using the various visualization tools in Excel such as charts and graphs to help you see where you are losing money and make informed decisions. &lt;/p&gt;

&lt;h2&gt;
  
  
  How has learning Excel changed how I see data?
&lt;/h2&gt;

&lt;p&gt;Learning Excel and understanding its capabilities has been an eye opener, and I now view every instance of my life as a data point to be tracked and understood. This past week I have started tracking simple things in my life like the time I go to bed, the time I wake up, how long I take on a task, and so much more. I will be using this data to improve and be a better person.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>excel</category>
      <category>dataanalysis</category>
    </item>
    <item>
      <title>Diving into Bug Bounty Hunting: My Journey Begins with Resources and Tips for Beginners</title>
      <dc:creator>Okall Omondi</dc:creator>
      <pubDate>Mon, 20 Jan 2025 07:31:54 +0000</pubDate>
      <link>https://dev.to/okall_omondi/diving-into-bug-bounty-hunting-my-journey-begins-with-resources-and-tips-for-beginners-ggg</link>
      <guid>https://dev.to/okall_omondi/diving-into-bug-bounty-hunting-my-journey-begins-with-resources-and-tips-for-beginners-ggg</guid>
      <description>&lt;p&gt;After taking the much needed break and rest in the festive seasons, a period in which I had much reflection on my career and life goals, I dove into &lt;strong&gt;cybersecurity&lt;/strong&gt; with a focus on bug bounty hunting. I have been contemplating on this for a while, ever since I came across the 0 to 100K in Bug Bounty Year One thread on X by &lt;a href="https://x.com/Rhynorater" rel="noopener noreferrer"&gt;@Rhynorater&lt;/a&gt;. I used ChatGPT to create a bug bounty hunting road map and begun on a resource finding mission. I will write weekly posts documenting my journey and milestones into becoming a bug bounty hunter. This first article will document some of the useful resources that those aspiring to become bounty hunters can use. The resources range from ChatGPT, YouTube Channels, websites, GitHub Accounts, X Accounts, and SubReddits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remember
&lt;/h3&gt;

&lt;p&gt;When starting out, always be aware of the shiny object syndrome and analysis paralysis. Shiny object syndrome (SOS) is the tendency to be distracted by new ideas (courses) that are often at the expense of your current goal, which is becoming a bug bounty hunter in this case. Analysis paralysis is that point when you cannot decide because you are overwhelmed with courses/ materials and you are not sure of which one to use. &lt;/p&gt;

&lt;p&gt;Another thing I will recommend while starting is developing a good note taking system. There are various Note Taking Apps you can use, such as Notion, Evernote, Microsoft OneNote, Joplin, Obsidian and many others. When choosing a note app, there are factors you have to put into consideration. Some features I look for in a note taking app are cost, ease of use, organizational features, and cross device access. My choice is &lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt;. Having a good note taking system is like having a second brain. Good notes always come in handy along your career trajectory, and they are what will catapult you to the next level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;p&gt;Now, back to resources. I will focus on the free resources here, as I believe most of the required knowledge is free if you have the patience and time to go after it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ChatGPT:&lt;/strong&gt; The first and key resource I found helpful is ChatGPT. You are not restricted to this. You can use GPTs of your choice like copilot, Gemini or any other you may prefer. I used ChatGPT to brainstorm and be sure that I really wanted to go into bug bounty hunting. After being sure I wanted this, I prompted it to come up with a learning path and a study plan for bug bounty hunting. There are unlimited ways you can use GPTs from generating explanations, examples and analogies, motivation, role-plays, questions, mind maps, mental associations and much more. You can also use them to engineer effective prompts which you can then re-use to get exact answers you want. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;YouTube Channels:&lt;/strong&gt; Some of the YouTube channels I have found to be amazing are: &lt;br&gt;
&lt;a href="https://www.youtube.com/@NahamSec" rel="noopener noreferrer"&gt;NahamSec&lt;/a&gt; - Has detailed bug bounty tutorials and live hacking sessions.&lt;br&gt;
&lt;a href="https://www.youtube.com/@STOKfredrik" rel="noopener noreferrer"&gt;STÖK&lt;/a&gt; - Offers practical bug hunting techniques and methodologies.&lt;br&gt;
&lt;a href="https://www.youtube.com/@InsiderPhD" rel="noopener noreferrer"&gt;InsiderPhD&lt;/a&gt; - Insider PHD is great for beginners, provides structured learning content. This is the channel I have been using, mostly. I highly recommend it if you are starting out.&lt;br&gt;
&lt;a href="https://www.youtube.com/@jhaddix" rel="noopener noreferrer"&gt;Jason Haddix&lt;/a&gt; - Industry veteran sharing advanced techniques and methodologies&lt;br&gt;
&lt;a href="https://www.youtube.com/@TCMSecurityAcademy" rel="noopener noreferrer"&gt;TCM Security&lt;/a&gt; - Comprehensive ethical hacking and penetration testing tutorials&lt;br&gt;
&lt;a href="https://www.youtube.com/@HackerSploit" rel="noopener noreferrer"&gt;HackerSploit&lt;/a&gt; - Detailed tutorials on various security tools and techniques&lt;br&gt;
&lt;a href="https://www.youtube.com/@LiveOverflow" rel="noopener noreferrer"&gt;LiveOverflow&lt;/a&gt; - In-depth technical content about security research and exploitation&lt;br&gt;
&lt;a href="https://www.youtube.com/@portswigger" rel="noopener noreferrer"&gt;PortSwigger&lt;/a&gt; - Official channel for Burp Suite with web security tutorials&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning Websites:&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://portswigger.net/web-security" rel="noopener noreferrer"&gt;PortSwigger Web Security Academy&lt;/a&gt; - Free, comprehensive web security training. I recommend PortSwigger Academy if you are starting out.&lt;br&gt;
&lt;a href="https://www.bugcrowd.com/hackers/bugcrowd-university" rel="noopener noreferrer"&gt;Bugcrowd University&lt;/a&gt; - Free educational resources for bug bounty hunters. Bugcrowd also provides a platform for the Vulnerability Disclosure Program (VDP) and Bug Bounty Programs (BBP). It is a good place to start your bug bounty hunting by creating an account on their platform.&lt;br&gt;
&lt;a href="https://www.tryhackme.com/" rel="noopener noreferrer"&gt;TryHackMe&lt;/a&gt; - Interactive cybersecurity training platform with guided learning paths. Try Hack Me is fully free, but it has some amazing labs that provide hands-on experience.&lt;br&gt;
&lt;a href="https://www.hackthebox.com/" rel="noopener noreferrer"&gt;HackTheBox&lt;/a&gt; - Platform offering realistic penetration testing labs and challenges&lt;br&gt;
&lt;a href="https://www.hackerone.com/hacktivity" rel="noopener noreferrer"&gt;HackerOne Hacktivity&lt;/a&gt; - Public bug reports to learn from real-world examples. HackerOne also provides a platform for the Vulnerability Disclosure Program (VDP) and Bug Bounty Programs (BBP).&lt;br&gt;
&lt;a href="https://pentesterlab.com" rel="noopener noreferrer"&gt;PentesterLab&lt;/a&gt; - Hands-on exercises for web penetration testing&lt;br&gt;
&lt;a href="https://www.vulnhub.com" rel="noopener noreferrer"&gt;VulnHub&lt;/a&gt; - Provides materials to gain practical cybersecurity experience&lt;br&gt;
&lt;a href="https://owasp.org" rel="noopener noreferrer"&gt;OWASP&lt;/a&gt; - Comprehensive resource for web application security knowledge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Accounts:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/m0chan/BugBounty/tree/master" rel="noopener noreferrer"&gt;BugBounty&lt;/a&gt;: This GitHub account has most of the resources you need in becoming a bounty hunter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;X Accounts:&lt;/strong&gt; There is an amazing Bug Bounty Community on X with lots of accounts dedicated to sharing information on Bug Bounty Hunting. I will not recommend any account in particular but if you are on X, search for a bug bounty and you’ll find lots of accounts with posts that will inspire you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SubReddits:&lt;/strong&gt; Reddit is another Social Media platform I like. There is an amazing community here with amazing people who are always ready to jump in and assist with any query you might be having. Just be sure to search first if the question was asked and answered before. Also, be sure to ask on the right subreddit. The subreddit for bug bounty hunters which is active, and I’d recommend you join is &lt;a href="https://www.reddit.com/r/bugbounty/" rel="noopener noreferrer"&gt;r/bugbounty/&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>security</category>
      <category>beginners</category>
      <category>career</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
