Develop an application to support course administration. Readthe following detailed description of this application, andcomplete the tasks listed below.

*. A course has a unique course number and title, and isassigned to one or more areas of the Computer Science program. Eachcourse has an instructor, at least one teaching or researchassistant, an online conference whiteboard, a time (interval), anda capacity (maximum number of participants). A course need not beoffered each term, but the challenge option is open throughout theentire year. A course may have some prerequisite courses, and astudent is not allowed to register for a course if s/he has notfulfilled the prerequisites or their equivalent. In addition, astudent who would like to challenge a course should have the courseprerequisites or authorization from the course instructor.

*. An instructor has a first name, last name, email address,phone number, fax number, and is assigned to several areas ofexpertise. Note that two different instructors might have the same(first and last) names, and they might share the same faxnumber.

*. A student is given a unique student number. For each student,we want to record first name and last name, email address, phonenumber, postal address, and GPA. Again, the same names may belongto two different individuals. A student may be enrolled in severalcourses each term. For each enrolment, we want to record the grade.There are two types of student: graduate and undergraduate.Undergraduate students have a study major, while graduate studentshave both a specialization and a thesis topic.

*. A teaching assistant is a graduate student, and we need torecord his/her first name, last name, year, and GPA, as well as howmany courses (including the current one) the teaching assistant hasalready taught.

*. A research assistant is a student for whom we want to recordthe usual basic information, plus the number of years of workexperience. The research assistant provides laboratory support forstudents, manages the conference whiteboard, and does someprogramming tasks.

*. An area of study is described by its name. An area may bedivided into several sub-areas. These areas are used to categorizeinstructors, as well as courses. For example, the area of gamedevelopment consists of sub-areas such as Graphics, Networking, andHuman-Computer Interaction; the area of E-Services Technologyconsists of Artificial Intelligence, Networking, and DistributedSystems.

Hint: For eachrelation without a unique attribute or combination of attributes,introducing an artificial primary key
might be a good idea.

Design an ER diagram for thiscourse administration system. Draw the complete ER diagrams,including all aspects discussed in the course. Clearly state anyfurther assumptions made, but note that you must not override thespecifications above.