https://bertorobles.medium.com/how-to-become-a-software-engineer-step-by-step-guide-chapter-6-database-management-essentials-b58f2c736d60