This document proposes an algorithmic approach for normalizing relational databases up to third normal form (3NF) by considering all candidate keys, rather than just the primary key, which is often overlooked in current methods. The process of normalization aims to minimize redundancy and logical inconsistencies by organizing data into related tables. The paper details algorithms for handling redundant attributes, dependencies, and classifying them into full and partial dependencies, ultimately providing practical examples to illustrate the approach.