Question: Create a SQL constraint for the given database: The constraint must ensure that an employee never works on more than three projects in a single
Create a SQL constraint for the given database:
The constraint must ensure that an employee never works on more than three projects in a single month. Write the necessary set of triggers for the tables to enforce the constraint.
These are the tables in the database:
Given SQL for creating the database:
CREATE TABLE IF NOT EXISTS ASSIGNMENT ( PID int(11) NOT NULL, EMPNUM int(11) NOT NULL, WORKHRS decimal(6,2) DEFAULT NULL, PRIMARY KEY (PID,EMPNUM), KEY EMPNUM (EMPNUM) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1000, 1, '30.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1000, 8, '75.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1000, 10, '55.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1100, 4, '40.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1100, 6, '45.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1200, 1, '25.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1200, 2, '20.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1200, 4, '45.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1200, 5, '40.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1300, 1, '35.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1300, 8, '80.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1300, 10, '50.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1400, 4, '15.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1400, 5, '10.00'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1400, 6, '27.50'); INSERT INTO ASSIGNMENT (PID, EMPNUM, WORKHRS) VALUES(1400, 13, '10.00');
CREATE TABLE IF NOT EXISTS DEPARTMENT ( DEPT char(35) NOT NULL, BUDGET char(30) NOT NULL, OFFICE char(15) NOT NULL, PHONE char(12) NOT NULL, PRIMARY KEY (DEPT) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Accounting', 'BC-300-10', 'BLDG01-100', '360-285-8300'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Administration', 'BC-100-10', 'BLDG01-300', '360-285-8100'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Finance', 'BC-400-10', 'BLDG01-140', '360-285-8400'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Human Resources', 'BC-500-10', 'BLDG01-180', '360-285-8500'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('InfoSystems', 'BC-800-10', 'BLDG02-270', '360-287-8800'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Legal', 'BC-200-10', 'BLDG01-200', '360-285-8200'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Marketing', 'BC-700-10', 'BLDG02-200', '360-287-8700'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Production', 'BC-600-10', 'BLDG02-100', '360-287-8600'); INSERT INTO DEPARTMENT (DEPT, BUDGET, OFFICE, PHONE) VALUES('Sales', 'BC-900-10', 'BLDG01-400', '360-285-8900'); CREATE TABLE IF NOT EXISTS EMPLOYEE ( EMPNUM int(11) NOT NULL AUTO_INCREMENT, FNAME char(25) NOT NULL, LNAME char(25) NOT NULL, DEPT char(35) NOT NULL, PHONE char(12) DEFAULT NULL, EMAIL varchar(100) NOT NULL, PRIMARY KEY (EMPNUM), UNIQUE KEY EMAIL (EMAIL), KEY DEPT (DEPT) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(1, 'Mary', 'Jacobs', 'Administration', '360-285-8110', 'Mary.Jacobs@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(2, 'Rosalie', 'Jackson', 'Administration', '360-285-8120', 'Rosalie.Jackson@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(3, 'Richard', 'Bandalone', 'Legal', '360-285-8210', 'Richard.Bandalone@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(4, 'Tom', 'Caruthers', 'Accounting', '360-285-8310', 'Tom.Caruthers@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(5, 'Heather', 'Jones', 'Accounting', '360-285-8320', 'Heather.Jones@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(6, 'Mary', 'Abernathy', 'Finance', '360-285-8410', 'Mary.Abernathy@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(7, 'George', 'Smith', 'Human Resources', '360-285-8510', 'George.Smith@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(8, 'Tom', 'Jackson', 'Production', '360-287-8610', 'Tom.Jackson@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(9, 'George', 'Jones', 'Production', '360-287-8620', 'George.Jones@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(10, 'Ken', 'Numoto', 'Marketing', '360-287-8710', 'Ken.Numoto@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(11, 'James', 'Nestor', 'InfoSystems', NULL, 'James.Nestor@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(12, 'Rick', 'Brown', 'InfoSystems', '360-287-8820', 'Rick.Brown@WPC.com'); INSERT INTO EMPLOYEE (EMPNUM, FNAME, LNAME, DEPT, PHONE, EMAIL) VALUES(13, 'Chris', 'Chester', 'InfoSystems', '360-287-8820', 'Chris.Chester@WPC.com');CREATE TABLE IF NOT EXISTS PROJECT ( PID int(11) NOT NULL, PNAME char(50) NOT NULL, DEPT char(35) NOT NULL, MAXHRS decimal(8,2) NOT NULL, SDATE date DEFAULT NULL, EDATE date DEFAULT NULL, PRIMARY KEY (PID), KEY DEPT (DEPT) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO PROJECT (PID, PNAME, DEPT, MAXHRS, SDATE, EDATE) VALUES(1000, '2019 Q3 Product Plan', 'Marketing', '135.00', '2019-05-10', '2019-06-15'); INSERT INTO PROJECT (PID, PNAME, DEPT, MAXHRS, SDATE, EDATE) VALUES(1100, '2019 Q3 Portfolio Analysis', 'Finance', '120.00', '2019-07-05', '2019-07-25'); INSERT INTO PROJECT (PID, PNAME, DEPT, MAXHRS, SDATE, EDATE) VALUES(1200, '2019 Q3 Tax Preparation', 'Accounting', '145.00', '2019-08-10', '2019-10-15'); INSERT INTO PROJECT (PID, PNAME, DEPT, MAXHRS, SDATE, EDATE) VALUES(1300, '2019 Q4 Product Plan', 'Marketing', '150.00', '2019-08-10', '2019-09-15'); INSERT INTO PROJECT (PID, PNAME, DEPT, MAXHRS, SDATE, EDATE) VALUES(1400, '2019 Q4 Portfolio Analysis', 'Finance', '140.00', '2019-10-05', NULL); ALTER TABLE ASSIGNMENT ADD CONSTRAINT ASSIGNMENT_ibfk_2 FOREIGN KEY (EMPNUM) REFERENCES EMPLOYEE (EMPNUM), ADD CONSTRAINT ASSIGNMENT_ibfk_1 FOREIGN KEY (PID) REFERENCES PROJECT (PID); ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_ibfk_1 FOREIGN KEY (DEPT) REFERENCES DEPARTMENT (DEPT); ALTER TABLE PROJECT ADD CONSTRAINT PROJECT_ibfk_1 FOREIGN KEY (DEPT) REFERENCES DEPARTMENT (DEPT);
ASSIGNMENT DEPARTMENT EMPLOYEE PID I EMPNUM | WORKHRS BUDGE FFICE PHONE EMPNUFNAME LNAME DEPT PHONE EMAIL 1000 1000 Administration 100-10 BLDG01-300 360-285-8100 BC-400-10 BLDGO1-140 360-285-8400 10 BLDGO1-180 360-285-8500 BC-800-10 BLDGO2-270 360-287-8800 BC-200-10 BLDGO1-200 360-285-8200 700-10 BLDG02-200 360-287-8700 BC-600-10 BLDGO2-100 360-287-8600 360-2B5-8110 Mary.acobs Rosalie.JacksonG WPC.com WPC.com Adminis Human ntoSystems 3 Richard Bandalone 360-2B5-8210 Richard.Bandalone@ WPC.cOm 1100 1200 1200 1200 1200 1300 6145.00 25.00 20.00 45.00 aruthers Accoun 360-285-8310 Tom.Caruthers@Wp 360-2B5-8320 Heather Jones@W Accountit Marketin Praduction 285-8410 Mary.Abemat Geor Human Resources 360-285-8510 George.Smith@WPC.com WP 135.00 360-2B7-8620 Geor 360-287-8710 Ken. NumotoWP 10 Ken Nest Brown 12 Rick 360-287-8820 Rick.Brown@WPC.com 1400 1400 400 s Chester PROJECT PID 1000 2019 Q3 Product Plan PNAME DEPT HR SDATE EDATE 135.00 2019-05-10 2019-06-15 100 2019 03 Portolio Anal 1200 2019 Q3 Tax Preparation Accounting 145.00 2019-08-10 2019-10-15 Marketing 150.00 2 2019-08-10 2019-09-1 5 ASSIGNMENT DEPARTMENT EMPLOYEE PID I EMPNUM | WORKHRS BUDGE FFICE PHONE EMPNUFNAME LNAME DEPT PHONE EMAIL 1000 1000 Administration 100-10 BLDG01-300 360-285-8100 BC-400-10 BLDGO1-140 360-285-8400 10 BLDGO1-180 360-285-8500 BC-800-10 BLDGO2-270 360-287-8800 BC-200-10 BLDGO1-200 360-285-8200 700-10 BLDG02-200 360-287-8700 BC-600-10 BLDGO2-100 360-287-8600 360-2B5-8110 Mary.acobs Rosalie.JacksonG WPC.com WPC.com Adminis Human ntoSystems 3 Richard Bandalone 360-2B5-8210 Richard.Bandalone@ WPC.cOm 1100 1200 1200 1200 1200 1300 6145.00 25.00 20.00 45.00 aruthers Accoun 360-285-8310 Tom.Caruthers@Wp 360-2B5-8320 Heather Jones@W Accountit Marketin Praduction 285-8410 Mary.Abemat Geor Human Resources 360-285-8510 George.Smith@WPC.com WP 135.00 360-2B7-8620 Geor 360-287-8710 Ken. NumotoWP 10 Ken Nest Brown 12 Rick 360-287-8820 Rick.Brown@WPC.com 1400 1400 400 s Chester PROJECT PID 1000 2019 Q3 Product Plan PNAME DEPT HR SDATE EDATE 135.00 2019-05-10 2019-06-15 100 2019 03 Portolio Anal 1200 2019 Q3 Tax Preparation Accounting 145.00 2019-08-10 2019-10-15 Marketing 150.00 2 2019-08-10 2019-09-1 5
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
