<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Praneeth Kumar Vankadari on Medium]]></title>
        <description><![CDATA[Stories by Praneeth Kumar Vankadari on Medium]]></description>
        <link>https://medium.com/@praneethkumar9908?source=rss-ec9f9694ba43------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*41hVb4nDrCnqvRiN</url>
            <title>Stories by Praneeth Kumar Vankadari on Medium</title>
            <link>https://medium.com/@praneethkumar9908?source=rss-ec9f9694ba43------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 16 May 2026 18:05:57 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@praneethkumar9908/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Normalization]]></title>
            <link>https://medium.com/@praneethkumar9908/normalization-eb7f86cee0cc?source=rss-ec9f9694ba43------2</link>
            <guid isPermaLink="false">https://medium.com/p/eb7f86cee0cc</guid>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[normalization]]></category>
            <category><![CDATA[dbms]]></category>
            <dc:creator><![CDATA[Praneeth Kumar Vankadari]]></dc:creator>
            <pubDate>Sun, 18 Feb 2024 16:04:15 GMT</pubDate>
            <atom:updated>2024-02-18T16:04:15.612Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/693/1*sMJQKR1gtbkFqFuaoYuPNQ.jpeg" /></figure><p><strong>Introduction:</strong></p><p>Normalization is a fundamental concept in Database Management Systems (DBMS) that ensures data organization is efficient, minimizes redundancy, and maintains data integrity. By breaking down complex data into smaller, manageable parts, normalization optimizes data storage and retrieval, making it an essential technique for any well-designed database. In this blog post, we will explore what normalization is, its significance, and the various types of normalization.</p><p><strong>What is Normalization?</strong></p><p>Normalization, in the context of DBMS, refers to the process of structuring a database to eliminate data redundancy and improve data integrity. It involves decomposing a database into multiple tables, each containing specific data. This systematic organization allows for efficient data retrieval and maintenance, reducing the chances of inconsistencies and anomalies.</p><p><strong>Importance of Normalization:</strong></p><p>1. <strong>Reducing Data Redundancy</strong>: By eliminating redundant data, normalization ensures that information is stored in a single place, reducing storage requirements and preventing inconsistencies.</p><p>2. <strong>Data Integrity</strong>: Normalization enforces rules that maintain data integrity, ensuring that data is accurate and consistent across the entire database.</p><p>3. <strong>Scalability</strong>: A well-normalized database can easily scale as new data is added without sacrificing performance or increasing complexity.</p><p>4. <strong>Simplified</strong> <strong>Maintenance</strong>: Normalization simplifies the task of updating and modifying data, as changes only need to be made in one place.</p><p><strong>Types of Normalization:</strong></p><p>There are different levels of normalization, each represented by a normal form (NF). The higher the normal form, the more normalized and refined the database becomes.</p><ol><li><strong>First Normal Form (1NF):</strong><br>In 1NF, data is organized into tables, and each attribute contains only atomic (indivisible) values. There are no repeating groups or arrays in any attribute, ensuring that each cell in the table contains a single value.</li></ol><p><strong>1NF example:-</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/528/0*yyYbW3s7zm4mXxZq.png" /></figure><p><strong>2. Second Normal Form (2NF):</strong><br>2NF builds upon 1NF and eliminates partial dependencies. It requires that every non-prime attribute in a table is fully functionally dependent on the primary key. By splitting the table into multiple related tables, each containing a distinct set of attributes, 2NF further reduces redundancy.</p><p><strong>2NF example:-</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/0*TyiT6NiGyRv9R6j-.png" /><figcaption><strong>Split table 1</strong></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/501/0*BaPHCi0HsGIpwS6c.png" /><figcaption><strong>Split table 2</strong></figcaption></figure><p><strong>3. Third Normal Form (3NF):</strong><br>In 3NF, every non-prime attribute must be non-transitively dependent on the primary key. This form helps remove transitive dependencies, further improving data integrity.</p><p><strong>3NF Example:-</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/528/0*Vu4L4NlivwuzP8T7.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/0*iruyoHISht3Pqfqy.png" /></figure><p><strong>4. Boyce-Codd Normal Form (BCNF):</strong><br>BCNF is an extension of 3NF and aims to eliminate all functional dependencies between non-prime attributes. It ensures that every determinant (an attribute that uniquely determines another attribute) is a candidate key.</p><p><strong>Conclusion:</strong></p><p>Normalization is a crucial process in database design, enabling efficient storage, retrieval, and maintenance of data while enhancing data integrity. By organizing data into well-structured tables, normalization reduces redundancy and ensures consistency across the database. Understanding the different normalization forms empowers database designers to create robust and scalable databases that meet the needs of modern applications and business requirements.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eb7f86cee0cc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Object-Oriented Programming in Java]]></title>
            <link>https://medium.com/@praneethkumar9908/object-oriented-programming-in-java-f620566d5333?source=rss-ec9f9694ba43------2</link>
            <guid isPermaLink="false">https://medium.com/p/f620566d5333</guid>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[writing]]></category>
            <dc:creator><![CDATA[Praneeth Kumar Vankadari]]></dc:creator>
            <pubDate>Sun, 11 Feb 2024 05:24:34 GMT</pubDate>
            <atom:updated>2024-02-11T05:24:34.749Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1RJkGsKklYAkC1CPmoY9Og.jpeg" /></figure><p>This blog will help give you a thorough understanding of the underlying principles of object-oriented programming and its concepts.</p><h4>What is Object-Oriented Programming?</h4><p>Object-oriented programming (OOP) is a fundamental programming paradigm based on the concept of <em>“</em>objects<em>”</em>. These objects can contain data in the form of fields (often known as attributes or properties) and code in the form of procedures (often known as methods).</p><h4>What is a Class?</h4><p>A class is defined as a collection of objects. You can also think of a class as a blueprint from which you can create an individual object. It is a logical entity. It can’t be physical.</p><p>To create a class, we use the keyword class.</p><p><strong>Example of class:</strong></p><pre>class Car {<br>  // fields<br>  String color;<br>  String brand;<br>  <br>  // constructor<br>  Car(String color, String brand){<br>    this.color = color;<br>    this.brand = brand;<br>  }<br><br>  // method<br>  void break(){<br>    System.out.println(&quot;Break...&quot;);<br>  }<br>}</pre><p>In the above example, we have fields (also called variables) and methods, which represent the state and behavior of the object, respectively.</p><p><strong>Note</strong> that in Java, we use fields to store data, while we use methods to perform operations.</p><p><strong>Note</strong> that a class should always start with an uppercase first letter.</p><h4>What is an Object?</h4><p>An object is an entity in the real world that can be distinctly identified. Objects have states and behaviors. In other words, they consist of methods and properties to make a particular type of data useful.</p><p><strong>Example of object:</strong></p><pre>public class Main {<br>  public static void main(String[] args) {<br>    // creating object<br>    Car obj = new Car();<br>    <br>    // assigning initial values<br>    obj.color = &quot;Black&quot;;<br>    obj.brand = &quot;TATA&quot;;<br><br>    // accessing members through reference variable<br>    System.out.println(obj.color);<br>    obj.break();<br>  }<br>}</pre><h4>Key Principles of Object-Oriented Programming.</h4><p>There are the four main principles of the Object-Oriented Programming paradigm. These principles are also known as the pillars of Object-Oriented Programming.</p><p>The four main principles of Object-Oriented Programming are:</p><ol><li>Encapsulation</li><li>Inheritance</li><li>Abstraction</li><li>Polymorphism</li></ol><h4>Encapsulation</h4><p><strong>Encapsulation </strong>is a process of wrapping code and data together into a single unit, for example, a capsule which is mixed of several medicines.</p><p>We can create a fully encapsulated class in Java by making all the data members of the class private. Now we can use setter and getter methods to set and get the data in it.</p><p>Let me give you an example that demonstrates how the get and set methods work:</p><p><strong>Example of Encapsulation:</strong></p><pre>public class Student {<br>  private String name; // private = restricted access<br><br>  // Getter<br>  public String getName() {<br>    return name;<br>  }<br><br>  // Setter<br>  public void setName(String newName) {<br>    this.name = newName;<br>  }<br>}</pre><h4>Inheritance</h4><p><strong>Inheritance</strong> allows classes to inherit attributes and methods of other classes. This means that parent classes extend attributes and behaviors to child classes. Inheritance supports reusability.</p><p>A simple example that explains the term inheritance is that human beings (in general) inherit certain properties from the class “Human” such as the ability to speak, breathe, eat, drink, and so on.</p><p>We group the “inheritance concept” into two categories:</p><ul><li><strong>subclass</strong> (child) — the class that inherits from another class.</li><li><strong>superclass</strong> (parent) — the class being inherited from.</li></ul><p>To inherit from a class, we use the extends keyword.</p><p>In the below example, the JerryTheMouse class is created by inheriting the methods and fields from the Animal class.</p><p>JerryTheMouse is the subclass and Animal is the superclass.</p><p><strong>Example of Inheritance:</strong></p><pre>class Animal {<br><br>  // field and method of the parent class<br>  String name;<br><br>  public void eat() {<br>    System.out.println(&quot;I can eat&quot;);<br>  }<br>}<br><br>// inherit from Animal<br>class JerryTheMouse extends Animal {<br><br>  // new method in subclass<br>  public void display() {<br>    System.out.println(&quot;My name is &quot; + name);<br>  }<br>}<br><br>class Main {<br>  public static void main(String[] args) {<br><br>    // create an object of the subclass<br>    JerryTheMouse mouse = new JerryTheMouse();<br><br>    // access field of superclass<br>    mouse.name = &quot;Jerry, the mouse&quot;;<br>    mouse.display();<br><br>    // call method of superclass<br>    // using object of subclass<br>    mouse.eat();<br><br>  }<br>}</pre><h4>Abstraction</h4><p><strong>Abstraction</strong> is a process of hiding the implementation details and showing only functionality to the user.</p><p>A simple example to explain abstraction is to think about the process that comes into play when you send an email. When you send an email, complex details such as what happens as soon as it is sent and the protocol that the server uses are hidden from you.</p><p>When you send an e-mail, you just need to enter the email address of the receiver, the email subject, type the content, and click send.</p><p>You can abstract stuff by using <strong>abstract classes</strong> or <strong>interfaces</strong>.</p><p>The abstract keyword is a non-access modifier, used for classes and methods:</p><ul><li><strong>Abstract class:</strong> is a restricted class that cannot be used to create objects. To access it, it must be inherited from another class.</li><li><strong>Abstract method:</strong> A method that doesn’t have its body is known as an abstract method. We use the same abstract keyword to create abstract methods.</li></ul><p>The body of an abstract method is provided by the subclass (inherited from).</p><p><strong>Example of Abstraction:</strong></p><pre>abstract class Shape {<br>   // Abstract method to calculate area (no implementation)<br>   public abstract double calculateArea();<br>}<br><br>class Circle extends Shape {<br> private double radius;<br><br> public Circle(double radius) {<br>   this.radius = radius;<br> }<br><br> @Override<br> public double calculateArea() {<br>   return Math.PI * radius * radius;<br> }<br>}<br><br>class Square extends Shape {<br> private double side;<br><br> public Square(double side) {<br>   this.side = side;<br> }<br><br> @Override<br> public double calculateArea() {<br>   return side * side;<br> }<br>}</pre><h4>Polymorphism</h4><p><strong>Polymorphism</strong> refers to the ability of an object to take on many forms. Polymorphism normally occurs when we have many classes that are related to each other by inheritance.</p><p>Polymorphism is similar to how a person can have different characteristics at the same time.</p><p>For instance, a man can be a father, a grandfather, a husband, an employee, and so forth — all at the same time. So, the same person possesses different characteristics or behaviors in different situations.</p><p><strong>Example:</strong></p><p>We are going to create objects Cow and Cat, and call the animalSound() method on each of them.</p><pre>class Animal {<br>  public void animalSound() {<br>    System.out.println(&quot;An animal can make a sound.&quot;);<br>  }<br>}<br><br>class Cow extends Animal {<br>  public void animalSound() {<br>    System.out.println(&quot;A cow says: Moooo&quot;);<br>  }<br>}<br><br>class Cat extends Animal {<br>  public void animalSound() {<br>    System.out.println(&quot;A cat says: Meeooww&quot;);<br>  }<br>}<br><br>class Main {<br>  public static void main(String[] args) {<br>    Animal myAnimal = new Animal();<br>    Animal myCow = new Cow();<br>    Animal myCat = new Cat();<br>        <br>    myAnimal.animalSound();<br>    myCow.animalSound();<br>    myCat.animalSound();<br>  }<br>}</pre><p>Inheritance and polymorphism are very useful for code reusability. You can reuse the attributes and methods of an existing class when you create a new class.</p><h4>Interfaces</h4><p>An interface is a collection of abstract methods. In other words, an interface is a completely &quot;<strong>abstract class</strong>&quot; used to group related methods with empty bodies.</p><p>An interface specifies what a class can do but not how it can do it.</p><p><strong>Example:</strong></p><pre>// create an interface<br>interface Language {<br>  void getName(String name);<br>}<br><br>// class implements interface<br>class ProgrammingLanguage implements Language {<br><br>// implementation of abstract method<br>  public void getName(String name) {<br>    System.out.println(&quot;One of my favorite programming languages is: &quot; + name);<br>  }<br>}<br><br>class Main {<br>  public static void main(String[] args) {<br>    ProgrammingLanguage language = new ProgrammingLanguage();<br>    language.getName(&quot;Java&quot;);<br>  }<br>}</pre><h4>Conclusion</h4><p>We have looked at some of the main object-oriented programming concepts in this blog. Having a good understanding of these concepts is essential if you want to use them well and write good code.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f620566d5333" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>