Database for Staffing Portal
The purpose of this project is to design and implement a relational database for an online
staffing portal [OSP]. Generally speaking, customers and clients expect the OSP to:
1. Collect information about available positions
2. Present available opening positions to the job seekers
3. Collect CV’s from candidates
4. Present available CV’s to the employers so they can find an employee that matches
1. Explore some of the online staffing sites on the Web to collect the basic facts and
requirements. Write down the information and requirements you gathered. Give the
URLs for the sites contacted.
2. Specify a number of essential functional dependencies for each relation. Identify
possible keys, whenever exist, and the primary key and foreign keys for each relation.
3. Draw an appropriate E/R diagram that satisfies requirements collected, indicating
weak and subclass entity sets, whenever exist, and multiplicity of relationships.
4. Translate the E/R diagram to relational database schemas.
5. Examine the database relations for BCNF violations. Decompose the relations that
are not in BCNF into collections of relations that are in BCNF as necessary.
In your preliminary analysis in Part I, you have determined the basic facts about the
industry and operations of the OSP. Generate relational algebra [RA] expressions and
expression trees, and SQL code to answer the following queries. Use standard notation and
appropriate RA terminology. You may need to modify the database schema to answer the
1. Find all the jobs posted per company in each category per function over a year per
3. Determine the demand for jobs in each category per function and region.
4. Determine the supply of applicants for jobs per company, function and region.
5. Determine the success rate of the OSP in filling the job openings per company,
function, and region.
Submit a written report that includes:
1. The complete E/R diagram and schema of the relational database fully specifying the
given requirements and any other requirements gathered. Identify all keys, foreign keys,
functional dependencies of the database relations.
2. SQL code that creates the tables structure.
3. SQL code that loads the data. Data must be representative of fair size.
4. RA expressions, RA expression trees, and SQL code that answer the given queries.
5. Sample outputs for your SQL code.