PMU Car Rental Company Schema Design Database Programming Software
make sure to follow all the instructions In this project, you will design and implement a database for keeping track of information about a car rental company. You will first design an ER schema diagram for this database application. Then, you will map the ER schema into a relational database schema and implement it on MySQL. Finally, you will load some data into your database, and create some queries and update transactions.Assume that the following requirements were collected for this application:1. The database keeps track of CUSTOMERs. Each CUSTOMER has a unique IdNo (assume this is a unique integer generated by the system for each new CUSTOMER, such as 1, 2, 3, …), a Name (assume this is string consisting of an single initial and last name only for simplicity, such as “J.Smith” or “R.Wong”), and a Phone (a string of 12 characters such as “817-272-3000”).2. The database keeps track of CARs available for rental, which are categorized based on their type. There are six main types: COMPACT, MEDIUM, LARGE, SUV (Sports Utility Vehice), TRUCK, and VAN. Each type of car has its own DailyRate and WeeklyRate (assume all cars of the same type have the same rental rates). For simplicity, we will assume that there is only one rental location.3. Each CAR has a VehicleID (a unique number for each car – assume it is a number 1001, 1002, 1003, …), Model (Chevy, Toyota, Ford, …), and Year (2015, 2014, …).4. The database will keep track of the current (active) RENTALs as well as scheduled RENTALs of each CAR. The are three types of RENTAL: DAILY, WEEKLY, AND MONTHLY. For each DAILY RENTAL, the information kept will include the specific CAR and CUSTOMER as well as the NoOfDays, StartDate, and ReturnDate (the ReturnDate can be calculated from the StartDate and NoOfDays). For each WEEKLY RENTAL, the information kept will include the specific CAR and CUSTOMER as well as the NoOfWeeks, StartDate, and ReturnDate (the ReturnDate can be calculated from the StartDate and NoOfWeeks). For each Monthly RENTAL, the information kept will include the specific CAR and CUSTOMER as well as the NoOfMonths, StartDate, and ReturnDate (the ReturnDate can be calculated from the StartDate and NoOfMonths) Each rental will also have the AmountDue for the rental, which is a derived value that can be calculated from the other information.5. The database will also keep track of which CARs are available for rental during which periods.You will first design an ER schema diagram based upon the RENTALs database requirements specified above, and create an ER schema diagram and documentation report describing your design choices. As part of this assignment, you should identify any missing or incomplete requirements, and explicitly state them in your documentation. You should also explicitly state any assumptions you made that were not part of the requirements listed above.The second part of the assignment will be to map the ER schema design to a relational database schema, and create the tables corresponding to the relational schema using the MySQL. You will add to your report a listing of the CREATE TABLE statements. Specify as many constraints (key, referential integrity) as you can in the relational schema. You should state the choices you made during the ER-to-relational mapping, and the reasons for your choices.The third part of the project is to load some data into the database, and apply certain update transactions and retrieval queries. You will create your own data. Include at least 10 customers, and at least 20 cars of different types.The following are the tasks for the third part of the project:1. Load some initial data (as discussed above) into the database tables that you created in Part 2 of the assignment. You can either write a loading program, or use SQL, or use SQL/FORMS. The data format should be designed by you. (Note: You can also use the transactions created by you in item 3 below to load some of the data).2. Write queries to retrieve and print all the data you entered. Try to print the data so that it is easy to understand (for example, print appropriate headings, such as: Customers, Compact Cars, SUVs, Current Rentals, etc).3. Write the following database update transactions using Python programming language or scripting language.3.1 The first transaction is to add information about a new CUSTOMER.3.2 The second transaction is to add all the information about a new CAR.3.3 The third transaction is to add all the information about a new RENTAL reservation (this must find a free car of the appropriate type for the rental period).3.4 The fourth transaction is to handle the return of a rented car. This transaction should print the total customer payment due for the rental, and enter it in the database.4. Test your transactions by adding a few new customers, cars, reservations, by changing some rental rates and reservations rates.Due Dates: December 5th 2020.The files that you turn in should be submitted via Canvas. Late penalty: -5% per day late.Project teams: Each project can be done in a team of 2 persons, or individually.