1) Identify an application that needs to use a database. For example, suppose you want to build an application to keep track of the videos in a video rental business, the customers of the business, and their rentals. This application will need to use a database to store the various pieces of the above information. Other examples include a book selling application (e.g., amazon.com), a real estate application that lists houses for sale (e.g., realestate.com), an application that allows students to enroll in courses, etc.
2) Design an ER diagram for this application. The ER diagram should capture all entities and relationships you want to eventually store in your relational database. This ER diagram should contain at least
A question we often got is that how complex this ER diagram should be. There is no hard rule (it depends after all on your application). But roughly, you should aim for about 4-6 entity sets and 4-8 relationships. Fewer than this, and your application may be too trivial. More than this, and it may be hard for you to manage in the context of a course project.
3) Translate the above ER diagram to a relational schema, using the various translation rules discussed in the class. When translating an is-a hierarchy, recall that you can translate it in at least three different ways. Decide on a way to translate and explain why you select that way.
Note that when you do the translation, it is okay to write a table schema like this: Students(sid, name, age, gpa). You don't have to write the full SQL query, such as CREATE TABLE STUDENTS ... (You will do that in Project Stage 2.)
Write down the ER diagram on a second piece of paper. (You are not supposed to use any computer program that allows you to draw an ER diagram, then automatically translates that ER diagram to relational schema.) Write down the relational schema on a third piece of paper. Then submit all three.
On the first page of the submission, please clearly write the full names, student IDs, and login names of all members in the team (or of yourself if you work alone). Would be great if you have a name for the team, so that we can use it to identify your team.