Database Design term refers to the formal process of creating a complete data model of a database. The Database Design is very important process in the lifecycle of every database, because it affects its performance, scalability and usability.
The Database Design process usually involves more then one person. To do a proper database design, you need a person who has good relational database knowledge and has extensive technical database design expertise. On the other hand you also need a person who has knowledge of the domain, which the database will describe. It is very rare to find one person with knowledge in both technical database design and the described domain.
Usually the person with the domain knowledge describes the domain, its elements and the data that needs to be stored to the database designer. This step is very important as it defines the goals and the requirements of the database.
The next task for the database designer is to determine the relationships between all objects that will be stored in the database. This is again done with help from the person who has knowledge of the described domain. In general the database designer looks for dependencies in the data and tries to describe them as accurately as possible.
The last generic step involved in the database design is structuring the data into a set of database objects (for RDBMS the data is stored in database tables).
A good Database Design implements exactly the data requirements of the end users (the ones with the domain knowledge). A proper Database Design ensures that there is no redundant data in the database and that the data structure is flexible enough to easily handle change in the database requirements.