When designing a database, decisions decisions must be made regarding how best to take some system or process in the real world and model it in a database. This process consists of deciding which tables to create and which columns they will contain, as well as the relationships between the tables. While it would be nice if this process were totally intuitive and obvious or, even better automated, this is simply not the case, A well designed database takes time and effort to conceive, refine, and build. The end result is robust, scalable and efficient data storage, that enhances data integrity and security.