<?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: ASHLEY KALONDU</title>
    <description>The latest articles on DEV Community by ASHLEY KALONDU (@ashleyk).</description>
    <link>https://dev.to/ashleyk</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%2F3972448%2F89d1c9b7-3020-49a2-a425-6cf4e0daa171.png</url>
      <title>DEV Community: ASHLEY KALONDU</title>
      <link>https://dev.to/ashleyk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashleyk"/>
    <language>en</language>
    <item>
      <title>Object Oriented Programming</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Tue, 22 Sep 2026 14:13:17 +0000</pubDate>
      <link>https://dev.to/ashleyk/object-oriented-programming-27n2</link>
      <guid>https://dev.to/ashleyk/object-oriented-programming-27n2</guid>
      <description>&lt;p&gt;I recently was working on creating codes to build a kiosk inventory and actions. I was creating dictionaries of the inventory(item, price, quantity, weight)  and functions to cover the respective actions (restocking, updating prices, checking stock ) and it was manageable because my kiosk had only 3 items bread, milk and sugar. &lt;/p&gt;

&lt;p&gt;When it comes bigger complicated stocks and many functions to be performed this would have been tedious, and this is where &lt;em&gt;Object oriented Programming&lt;/em&gt; comes in &lt;/p&gt;

&lt;h2&gt;
  
  
  OOP
&lt;/h2&gt;

&lt;p&gt;is a way of organizing programs by creating objects that contain their own data and the actions that can be performed on that data&lt;/p&gt;

&lt;h3&gt;
  
  
  Class
&lt;/h3&gt;

&lt;p&gt;is a blue print that describes the attributes and methods that can apply on its objects &lt;/p&gt;

&lt;p&gt;E.g &lt;em&gt;age = 25&lt;/em&gt;, here age is a variable that refers to an object 25 which is in the class &lt;em&gt;integers&lt;/em&gt; and it does not allow us to perform the .upper() method to it.&lt;br&gt;
When you try print(age.upper()) you will break your code because under class &lt;em&gt;integers&lt;/em&gt; we can't perform some methods e.g .Upper()&lt;/p&gt;

&lt;p&gt;So the blueprint integers has set methods and attributes for its objects. &lt;br&gt;
We can apply this method to a string because its class allows us to perform this method , but other methods that apply in class &lt;em&gt;integers&lt;/em&gt; won't apply in class &lt;em&gt;strings&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Object
&lt;/h3&gt;

&lt;p&gt;is an instance created under a class and holds some data (attributes)and can use the methods defined by its class. &lt;/p&gt;

&lt;h2&gt;
  
  
  How to write a class
&lt;/h2&gt;

&lt;p&gt;Write the keyword class followed by the name: &lt;br&gt;
Class name should be written using Camel case type of naming.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methods
&lt;/h3&gt;

&lt;p&gt;Its a function inside a class. &lt;em&gt;def&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;init&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This has double underscores on both sides referred to as dunder , and it allows us to give each object its information &lt;br&gt;
This is the setup method to run when a new object is created.&lt;/p&gt;

&lt;h3&gt;
  
  
  Attributes
&lt;/h3&gt;

&lt;p&gt;There are 2 types of attributes: &lt;/p&gt;

&lt;h4&gt;
  
  
  1. Instance Attributes
&lt;/h4&gt;

&lt;p&gt;is the information that describes the object and are described using the word &lt;em&gt;.self&lt;/em&gt;&lt;br&gt;
Its main purpose is to give description to the object &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Class Attributes
&lt;/h4&gt;

&lt;p&gt;is a description in &lt;em&gt;Class&lt;/em&gt; that covers all objects. All objects can be described using this attribute because its woven in the blue print. &lt;/p&gt;

&lt;h3&gt;
  
  
  Self
&lt;/h3&gt;

&lt;p&gt;Because objects have similar attributes e.g in my example there will be price for milk , price for sugar so to ensure the right price falls under the right object we use self. &lt;br&gt;
Self is not an attribute it just refers to the object and its always written first. &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%2F3i8cur7ivlzq1w42zs6w.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%2F3i8cur7ivlzq1w42zs6w.png" alt=" " width="799" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Python String Functions</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Wed, 16 Sep 2026 12:07:31 +0000</pubDate>
      <link>https://dev.to/ashleyk/python-string-functions-410</link>
      <guid>https://dev.to/ashleyk/python-string-functions-410</guid>
      <description>&lt;p&gt;Most data in the real world is string , and python offers a way to interact and transform data to enable us meet our analysis goals. &lt;/p&gt;

&lt;h2&gt;
  
  
  To check Type of Data
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;###1.Types&lt;/strong&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Type()
&lt;/h5&gt;

&lt;p&gt;This method enables us to check the type/class of data held in our variables&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%2F4n72grthd69lx3m10re4.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%2F4n72grthd69lx3m10re4.png" alt=" " width="799" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Str()
&lt;/h5&gt;

&lt;p&gt;This is a built in function that turns any type of data into a string. &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%2Fzvrvimrsvgz0f1i4xemb.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%2Fzvrvimrsvgz0f1i4xemb.png" alt=" " width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
in instances where you dont use f-strings you might to covert your data into text to match the rest of the data type and perform the print function&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%2Fmuq4pd1bx0fmqxw3jpft.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%2Fmuq4pd1bx0fmqxw3jpft.png" alt=" " width="797" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;### Transformations&lt;/strong&gt;&lt;br&gt;
This methods aim to change the appearance or form of the text&lt;/p&gt;

&lt;h5&gt;
  
  
  Replace()
&lt;/h5&gt;

&lt;p&gt;In this you are aiming to replace an existing text with a new value, in you syntax you should specify the old value and the new value / or replace it with nothing&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%2Fw7wpdkniloyo3zwtw310.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%2Fw7wpdkniloyo3zwtw310.png" alt=" " width="792" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  split()
&lt;/h5&gt;

&lt;p&gt;This aims to split strings to a list , you clarity the item to be used as the separation point and it will be replaced with commas (,)&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%2Fkqvda2lx8uvv0oes8xxm.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%2Fkqvda2lx8uvv0oes8xxm.png" alt=" " width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Using + /Concat
&lt;/h5&gt;

&lt;p&gt;We can use the plus sign to join similar data types &lt;br&gt;
&lt;em&gt;"Hello " + "World" results in "Hello World"&lt;/em&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Join
&lt;/h5&gt;

&lt;p&gt;Joins turns strings,sets,tuples into a single string, you outline the separator you want to be used &lt;br&gt;
&lt;em&gt;"SEPARATOR".join(list)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flwpfnb4r4m3mq7ykqnot.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%2Flwpfnb4r4m3mq7ykqnot.png" alt=" " width="800" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Multiplier
&lt;/h5&gt;

&lt;p&gt;We use the asterisk that serves as the multiple sign. &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%2F3gl1jmftmk6k7eeyic46.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%2F3gl1jmftmk6k7eeyic46.png" alt=" " width="800" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning of Whitespaces
&lt;/h2&gt;

&lt;h5&gt;
  
  
  lstrip()
&lt;/h5&gt;

&lt;p&gt;This methods clears any white space on the left side of the string(&lt;em&gt;leading whitespaces&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmbz87gjt1sdyxbmveurf.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%2Fmbz87gjt1sdyxbmveurf.png" alt=" " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  rstrip
&lt;/h5&gt;

&lt;p&gt;This method clear whitespace on the right side of the string (&lt;em&gt;trailing spaces&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbmf4tjwjnp01dnnwxclg.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%2Fbmf4tjwjnp01dnnwxclg.png" alt=" " width="799" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  strip()
&lt;/h5&gt;

&lt;p&gt;This method removes leading and trailing white spaces. It doesn't change the original string it returns a new string. &lt;br&gt;
&lt;em&gt;Strip()&lt;/em&gt; can also be used to remove special characters from the leading and trailing ends only. &lt;br&gt;
Strip can't clear white spaces or special characters within the data. &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%2Fe72hdkz3xwg61dvj576e.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%2Fe72hdkz3xwg61dvj576e.png" alt=" " width="799" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning Cases
&lt;/h2&gt;

&lt;h5&gt;
  
  
  &lt;em&gt;Lower()&lt;/em&gt;
&lt;/h5&gt;

&lt;p&gt;Standardizes the string to lower case&lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;em&gt;Upper()&lt;/em&gt;
&lt;/h5&gt;

&lt;p&gt;Standardizes the string to upper case &lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;em&gt;Title()&lt;/em&gt;
&lt;/h5&gt;

&lt;p&gt;It capitalizes every first letter of all words&lt;/p&gt;

&lt;h2&gt;
  
  
  Searching
&lt;/h2&gt;

&lt;h5&gt;
  
  
  Startswith()
&lt;/h5&gt;

&lt;p&gt;This checks the prefix of a string to check for matching and returns either True / False&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%2Fxs9gzhj6czlyupxho90x.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%2Fxs9gzhj6czlyupxho90x.png" alt=" " width="799" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Endwith()
&lt;/h5&gt;

&lt;p&gt;This checks the suffix to check for matching and returns a boolean true/false &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%2F26umirmwouwwefb4v04s.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%2F26umirmwouwwefb4v04s.png" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Find
&lt;/h5&gt;

&lt;p&gt;This helps us find the index of the first occurrence of the substring, it returns -1 incase the substring isn't found &lt;/p&gt;

&lt;h5&gt;
  
  
  Integer
&lt;/h5&gt;

&lt;p&gt;This checks the position of a substring in a string, performs similar to &lt;em&gt;find&lt;/em&gt; but the difference is that if the substring doesn't exist it will crash . &lt;br&gt;
The safe option is using find because incase the substring doesn't exist it gives a -1 feedback &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%2Fkj7ubckd0ls76cwvuivw.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%2Fkj7ubckd0ls76cwvuivw.png" alt=" " width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  In operator
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;In&lt;/em&gt; check if a value exists in a list, tuple, string&lt;br&gt;
It returns True if found and False if the substring doesn't exist&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%2F2ut0tzj2e6abft28xhfm.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%2F2ut0tzj2e6abft28xhfm.png" alt=" " width="777" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation
&lt;/h2&gt;

&lt;p&gt;This methods check if the strings meet certain conditions. &lt;br&gt;
The feedback is boolean , either True or False &lt;/p&gt;

&lt;p&gt;&lt;em&gt;text.isalpha()&lt;/em&gt;       Only letters&lt;br&gt;
&lt;em&gt;text.isdigit()&lt;/em&gt;       Only digits&lt;br&gt;
&lt;em&gt;text.isalnum()&lt;/em&gt;       Letters and numbers only&lt;br&gt;
&lt;em&gt;text.isnumeric()&lt;/em&gt;     Numeric characters&lt;br&gt;
&lt;em&gt;text.isspace()&lt;/em&gt;       Only spaces&lt;br&gt;
&lt;em&gt;text.islower()&lt;/em&gt;       All letters are lowercase&lt;br&gt;
&lt;em&gt;text.isupper()&lt;/em&gt;       All letters are uppercase&lt;br&gt;
&lt;em&gt;text.istitle()&lt;/em&gt;       Each word starts with uppercase&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Python Lists : Common way to store data</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Mon, 14 Sep 2026 16:15:27 +0000</pubDate>
      <link>https://dev.to/ashleyk/python-lists-common-way-to-store-data-11kc</link>
      <guid>https://dev.to/ashleyk/python-lists-common-way-to-store-data-11kc</guid>
      <description>&lt;p&gt;Python has 4 built Data structures that dictate how data is stored, accessed and accessed. &lt;br&gt;
 &lt;em&gt;1. Sets&lt;/em&gt;&lt;br&gt;
 &lt;em&gt;2. Dictionaries&lt;/em&gt;&lt;br&gt;
 &lt;em&gt;3. Tuples&lt;/em&gt;&lt;br&gt;
 &lt;em&gt;4. Lists&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Characteristics of List
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;1. Stored in square brackets [ ]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;2. Ordered&lt;/em&gt;&lt;br&gt;
&lt;em&gt;3. Mutable&lt;/em&gt;&lt;br&gt;
&lt;em&gt;4. Can hold duplicate values&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Access and Read Lists
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Index
&lt;/h4&gt;

&lt;p&gt;Lists can be accessed through index( 0 as the beginning index on the furthest left and -1 when starting from the last element )&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%2Fx4pz3l17dmo6bd2aketc.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%2Fx4pz3l17dmo6bd2aketc.png" alt=" " width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Slicing
&lt;/h4&gt;

&lt;p&gt;In slicing we aim to use indexing to extract a part of our list, but a key part to be know is that the end isn't included in our sub_list&lt;/p&gt;

&lt;p&gt;Code : &lt;em&gt;my_list [start: stop: step]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp2g8pjuagu5durdoi67i.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%2Fp2g8pjuagu5durdoi67i.png" alt=" " width="800" height="88"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Unpack
&lt;/h2&gt;

&lt;p&gt;Unpacking is taking all the items in a list and assigning variables in order to perform operations. &lt;br&gt;
In places where you don't want to assign a variable you use an &lt;em&gt;underscore&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fku8hsonwmfwicx4ldgqw.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%2Fku8hsonwmfwicx4ldgqw.png" alt=" " width="799" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to explore and analyze
&lt;/h2&gt;

&lt;h4&gt;
  
  
  To explore the the highest, lowest, how big our list is
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;len(my_list)&lt;/em&gt;: Returns the total number of elements in the list.&lt;br&gt;
&lt;em&gt;max(my_list)&lt;/em&gt;: Finds the highest value (numeric or alphabetical).&lt;br&gt;
&lt;em&gt;min(my_list)&lt;/em&gt;: Finds the lowest value.&lt;br&gt;
&lt;em&gt;sum(my_list)&lt;/em&gt;: Calculates the total sum of all numeric values&lt;/p&gt;

&lt;h4&gt;
  
  
  How to search for specific items and count how often they appear
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;my_list.count(x)&lt;/em&gt;: Counts how many times the value x appears.&lt;br&gt;
&lt;em&gt;my_list.index(x)&lt;/em&gt;: Finds the index position of the first occurrence of x&lt;/p&gt;

&lt;h4&gt;
  
  
  How to check membership and identity
&lt;/h4&gt;

&lt;p&gt;x in my_list&lt;br&gt;
x is my_list&lt;/p&gt;

&lt;h4&gt;
  
  
  How to check quality of our list
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;all(my_list)&lt;/em&gt;: Find all values with real meaning, if we have missing values the feedback will be false &lt;br&gt;
&lt;em&gt;any(my_list)&lt;/em&gt;: Have at least 1 value, you only get a false if all items are missing .&lt;/p&gt;

&lt;h2&gt;
  
  
  How to change
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Append
&lt;/h4&gt;

&lt;p&gt;Appends adds new data at the end of the list &lt;br&gt;
&lt;em&gt;my_list.append(value)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Insert
&lt;/h4&gt;

&lt;p&gt;Insert adds specific values at specific position&lt;br&gt;
&lt;em&gt;my_list.insert(index, value)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Clear
&lt;/h4&gt;

&lt;p&gt;Deletes all the items in the list&lt;br&gt;
&lt;em&gt;my_list.clear()&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Remove by value
&lt;/h4&gt;

&lt;p&gt;This removes the first items of that value&lt;br&gt;
&lt;em&gt;my_list.remove(value)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Deleting by position (pop)
&lt;/h4&gt;

&lt;p&gt;This you need to specify the index position of item you want to delete and it returns what has been removed. You need to specify the index in order to avoid deleting all information on the list&lt;br&gt;
&lt;em&gt;my_list.pop(index)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Update
&lt;/h4&gt;

&lt;p&gt;In this case we use indexing and the = sign , if you don't specify the index you will end up updating the whole list&lt;br&gt;&lt;br&gt;
&lt;em&gt;my_list[index] = new_value&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to order a list in python
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Sort
&lt;/h4&gt;

&lt;p&gt;We can change the order of the original list using sort()&lt;br&gt;
&lt;em&gt;my_list.sort()&lt;/em&gt; will order the original list in an ascending order&lt;br&gt;
&lt;em&gt;my_list.sort(reverse=True)&lt;/em&gt; will sort the original list in a descending order&lt;/p&gt;

&lt;h4&gt;
  
  
  Sorted
&lt;/h4&gt;

&lt;p&gt;This method , leaves the original list creates a new one copy and changes the order &lt;br&gt;
&lt;em&gt;new_list = sorted(my_list)&lt;/em&gt; creates a copy and sorts in an ascending order &lt;br&gt;
&lt;em&gt;new_list_desc = sorted(my_list, reverse=True)&lt;/em&gt; creates a copy and sorts in a descending order &lt;/p&gt;

&lt;h4&gt;
  
  
  Reverse
&lt;/h4&gt;

&lt;p&gt;No sorting logic is involved here, it just reverses the structure of the list(last to first)&lt;br&gt;
This changes the original list &lt;br&gt;
&lt;em&gt;my_list = ["A", "B", "C", "D"]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Reverse - changes the original list : my_list.reverse()&lt;/em&gt;&lt;br&gt;
&lt;em&gt;print(my_list) :  ['D', 'C', 'B', 'A']&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Reversed
&lt;/h4&gt;

&lt;p&gt;This creates a copy and reverses it &lt;br&gt;
&lt;em&gt;my_list = ["A", "B", "C", "D"]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;new_list = list(reversed(my_list))&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;print(new_list) : ['D', 'C', 'B', 'A']&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Synergy between PostgreSQL and PowerBi</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Sat, 11 Jul 2026 10:33:19 +0000</pubDate>
      <link>https://dev.to/ashleyk/synergy-between-postgresql-and-powerbi-5epm</link>
      <guid>https://dev.to/ashleyk/synergy-between-postgresql-and-powerbi-5epm</guid>
      <description>&lt;h1&gt;
  
  
  PostgreSQL
&lt;/h1&gt;

&lt;p&gt;PostgreSQL is a database used to store , manage and retrieve structured data. It can be hosted in 2 places &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locally hosted postgres&lt;/strong&gt;&lt;br&gt;
This database runs on your own computer and can only be accessed through your laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud hosted&lt;/strong&gt;&lt;br&gt;
In this case the database lives in a server owned by a cloud provider and they offer this access as a service. Examples are like &lt;/p&gt;

&lt;p&gt;1.Azure &lt;br&gt;
2.AWS &lt;br&gt;
3.Google Cloud &lt;br&gt;
4.Aiven &lt;br&gt;
5.Digital Ocean &lt;/p&gt;

&lt;p&gt;To enable you connect remotely, the cloud provider gives you&lt;br&gt;
1.Host&lt;br&gt;
2.Port&lt;br&gt;
3.Database name&lt;br&gt;
4.Username&lt;br&gt;
5.Password&lt;/p&gt;

&lt;h2&gt;
  
  
  Using a DBMS
&lt;/h2&gt;

&lt;p&gt;A &lt;em&gt;DBMS&lt;/em&gt; is a software that enables one interact with their database either its stored locally or in the cloud. &lt;/p&gt;

&lt;p&gt;We usually don't directly interact with PostgreSQL , we need a &lt;em&gt;DBMS&lt;/em&gt; to provide an interface to interact with the database and perform &lt;em&gt;DDL&lt;/em&gt;, &lt;em&gt;DML&lt;/em&gt;, &lt;em&gt;DQL&lt;/em&gt;, &lt;em&gt;DCL&lt;/em&gt;, &lt;em&gt;DCL&lt;/em&gt;, &lt;em&gt;TCL&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Example is &lt;strong&gt;DBeaver&lt;/strong&gt; and you fist choose the database to connect with and in our case is &lt;em&gt;postgreSQL&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwgb2u85m2tjfrhkiyzsi.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%2Fwgb2u85m2tjfrhkiyzsi.png" alt=" " width="586" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we connect using the details &lt;strong&gt;&lt;em&gt;host&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;port&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;password of your database&lt;/em&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftsewktqpeqi5qnxrv3h9.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%2Ftsewktqpeqi5qnxrv3h9.png" alt=" " width="590" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For local hosted connection details are usually:&lt;br&gt;
&lt;em&gt;Host&lt;/em&gt;: 127.0.0.1 /localhost&lt;br&gt;
&lt;em&gt;Port&lt;/em&gt;: 5432 and for cloud hosted the provider share the details. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating and Importing Data
&lt;/h2&gt;

&lt;p&gt;Once connected to a PostgreSQL database through DBeaver, there are two common ways to populate the database:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating tables and inserting data using SQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a schema &lt;br&gt;
Open an SQL script and write SQL commands to create tables.&lt;br&gt;
Define primary keys and foreign keys to establish relationships between the tables.&lt;br&gt;
Insert data into the tables using INSERT statements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importing existing data&lt;/strong&gt;&lt;br&gt;
Create a schema&lt;br&gt;
If the data already exists in files such as CSV or Excel import it into the database.&lt;br&gt;
During the importing the tables are loaded into to the schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to Power Bi
&lt;/h2&gt;

&lt;p&gt;After our database contains the data , we use Power Bi as the reporting tool. PowerBi connect to many tools to get the data e.g&lt;br&gt;
&lt;em&gt;Excel&lt;/em&gt;&lt;br&gt;
&lt;em&gt;CSV&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Database, in our case PostgreSQL&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenww1ong34kos3b1d5a0.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%2Fenww1ong34kos3b1d5a0.png" alt=" " width="565" height="417"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Local Connection&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6gxnuow2dhpvlp2rvsbm.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%2F6gxnuow2dhpvlp2rvsbm.png" alt=" " width="733" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The server is the host: port , which is 127.0.0.1:5432&lt;/p&gt;

&lt;h2&gt;
  
  
  SSL CERTIFICATE
&lt;/h2&gt;

&lt;p&gt;Local database usually connect directly because Power BI and PostgreSQL are on the same computer, however for Cloud they don't. &lt;br&gt;
For security purposes we need download an SSL certificate which the cloud provider should give and upload it in our laptops in our certificate manager under &lt;em&gt;Trusted Root Certification Authorities&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frnrp5r4bklk2jl2osu7h.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%2Frnrp5r4bklk2jl2osu7h.png" alt=" " width="791" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuehxsvuviiieefzdwtwc.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%2Fuehxsvuviiieefzdwtwc.png" alt=" " width="791" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F877muip44l3oxtvc0oag.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%2F877muip44l3oxtvc0oag.png" alt=" " width="799" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this case, Power BI has successfully connected to the Aiven PostgreSQL database. We can transform and clean it using Power Query, create visualizations and develop interactive reports and dashboards.&lt;/p&gt;

</description>
    </item>
    <item>
      <title># POWER BI OVER SPREADSHEETS</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Fri, 10 Jul 2026 11:28:33 +0000</pubDate>
      <link>https://dev.to/ashleyk/-power-bi-over-spreadsheets-hk2</link>
      <guid>https://dev.to/ashleyk/-power-bi-over-spreadsheets-hk2</guid>
      <description>&lt;h2&gt;
  
  
  Flat Tables
&lt;/h2&gt;

&lt;p&gt;Our interactions with spreadsheet expose us to &lt;strong&gt;flat tables&lt;/strong&gt; which is one large table storing all the data. Every row store all the information of one record and it’s easier to read because everything is one place. &lt;/p&gt;

&lt;p&gt;However, many values are repeated across rows, making the table inefficient. This increases storage requirements and makes updating and maintaining the data more difficult.&lt;/p&gt;

&lt;p&gt;Imagine in a instance where a doctor record changes , and he had treated 1000 patients, how would we update his information across 1000 rows? &lt;/p&gt;

&lt;h3&gt;
  
  
  Power BI introduces schemas
&lt;/h3&gt;

&lt;p&gt;Unlike spread sheets, Power Bi is designed to work with &lt;strong&gt;relational tables&lt;/strong&gt; other than one flat table. It can store data across several tables while ensuring the &lt;em&gt;relationship is maintained&lt;/em&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  Data modelling/Normalization
&lt;/h4&gt;

&lt;p&gt;In &lt;em&gt;modelling&lt;/em&gt;, Power Bi enables us to move from one flat table to several related tables. &lt;/p&gt;

&lt;p&gt;The table below represents part of a hospital's records. Each row stores information about a patient visit, including details about the attending doctor. Since the same doctor may attend to many patients, the doctor's information such as gender, specialty, and years of experience is repeated across multiple rows.&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%2Fz1j1vep0w1vkp7izmeaj.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%2Fz1j1vep0w1vkp7izmeaj.png" alt=" " width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can create a separate table to store the doctors' information and establish a relationship with the main table using the &lt;strong&gt;Doctor ID&lt;/strong&gt;. Whenever we need additional information about a doctor, such as their specialty, we use the &lt;strong&gt;Doctor ID&lt;/strong&gt; to reference the Doctors table and retrieve the required details.&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%2F4wzlmzjfl27uk2hi2vqu.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%2F4wzlmzjfl27uk2hi2vqu.png" alt=" " width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the hospital has only four doctors, so there is no need to repeat their information throughout the hospital records.&lt;/p&gt;

&lt;p&gt;We can do this and create several tables while maintaining a relationship with the fact table using an ID, which in this case is the primary key.  &lt;/p&gt;

&lt;p&gt;Example: In the below table the doctors id is captured in the facts table to maintain the relationship. &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%2Ff938h2frhjk0j79ke53c.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%2Ff938h2frhjk0j79ke53c.png" alt=" " width="772" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database normalization&lt;/strong&gt; is organizing data so that the same information is not repeated unnecessarily.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;main table&lt;/em&gt; is called the &lt;strong&gt;fact table&lt;/strong&gt;. It stores the primary records and contains the IDs used to link to the related dimension tables.&lt;/p&gt;

&lt;p&gt;The separate tables created from the repeated information are called &lt;strong&gt;dimension tables&lt;/strong&gt;. They store description information, such as &lt;em&gt;doctor details&lt;/em&gt;, &lt;em&gt;procedure information&lt;/em&gt;, or &lt;em&gt;hospital departments&lt;/em&gt;. These dimension tables surround the fact table, forming a star known as a &lt;strong&gt;star schema&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk94vr8jcd2qqeb6ihjen.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%2Fk94vr8jcd2qqeb6ihjen.png" alt=" " width="782" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Relationship Cardinality
&lt;/h5&gt;

&lt;p&gt;This represents the relationship between different tables. How many columns in one table match in the other tables&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-One&lt;/strong&gt;: Each record in Table A relates to exactly one record in Table B, there is often little benefit in keeping them separate&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-Many&lt;/strong&gt;: One record in Table A is associated with multiple records in Table B. example 1 record from the doctors table represents many records of the doctor treating various patients &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Many-to-Many&lt;/strong&gt;: Records in both tables can relate to multiple records in the other.&lt;/p&gt;

&lt;p&gt;By using data normalization and relationships with the right cardinality, Power BI enables data to be organized more efficiently than a flat spreadsheet. This reduces data redundancy, improves maintainability, and makes analysis and reporting more effective.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Excel is Used in Real-World Data Analysis .</title>
      <dc:creator>ASHLEY KALONDU</dc:creator>
      <pubDate>Sun, 07 Jun 2026 12:00:31 +0000</pubDate>
      <link>https://dev.to/ashleyk/how-excel-is-used-in-real-world-data-analysis--1k30</link>
      <guid>https://dev.to/ashleyk/how-excel-is-used-in-real-world-data-analysis--1k30</guid>
      <description>&lt;p&gt;I have used excel for years but in the basic way possible, just the usual enter data and do basic aggregations. What I know is there is a very big world out there on how excel is used, seemed far-fetched to me because I did not get to work on large data sets. &lt;br&gt;
This week, I started getting deeper into excel and for the first team I received a disorganized data and knew how to locate duplicates. &lt;br&gt;
A brief introduction to what Excel is&lt;br&gt;
• In this week I have learnt the comprehensiveness of excel a software for storing, cleaning, analyzing visualizing data. It’s an all-comprehensive tool for a data professional. &lt;br&gt;
3 ways excel can be used in real world data analysis &lt;/p&gt;

&lt;p&gt;• Sales Performance: Excel can be used to map out when a business attained either highest or lowest sales using a pivot table. A visualization can be created of the current sales vis a vis the set targets. We can map out the highest and lowest sold products/service and aid in decision making &lt;br&gt;
• Monitoring and Evaluation: Monitoring and evaluation professionals interact with excel when storing data for all their field activities, they go through the phase of cleaning and mapping out the success of their programs against their donor given targets. This enables them be aware if they are making an impact with their programs in the society.&lt;br&gt;
• Budgeting and Forecasting: Excel is used to map out our budgets usage, double down to which areas have high expenses and also used in creating a forecast of future expenditure.&lt;br&gt;
Mention at least 3 Excel features or formulas you've learned so far and explain how they can be applied&lt;br&gt;
• Sum if and Sum ifs: This function is used when doing conditional aggregates. Data reveals more information when we calculate aggregates and more so conditional ones, this information can be used to drive decisions. For example, in an HR dataset, we can get the sum salary of Female in an IT department in comparison to the Male sum of salary in the same IT department. &lt;br&gt;
• Pivot Table: I came across a pivot table a very strong analytical tool. By using the 3 elements row, column and values and its capabilities sort and order data we are able to analyze and understand the different parameters of our data. &lt;br&gt;
• Central of tendency (Mean, Medium and Mode): The central tendency shows us where the majority of our data lie. If the mean and the median are in a close range with each other the data cluster around a certain value but it there is a big disparity between the 2 it shows our data has extreme outliers.&lt;br&gt;
Your personal reflection: &lt;br&gt;
• Excel is making interaction with data seamless and fun . &lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>datascience</category>
      <category>microsoft</category>
    </item>
  </channel>
</rss>
