Department (DeptId, DeptName, DeptAddress, Chair); PK: DeptId; FK: Chair refs Fa
ID: 3755808 • Letter: D
Question
Department (DeptId, DeptName, DeptAddress, Chair); PK: DeptId; FK: Chair refs Faculty.
Faculty (FacName, FacSSNo, OfficeAddress, Worksfor); PK: FacSSNo; FK: Worksfor refs Department.
DegreeProgram (ProgId, ProgramName, ProgType, Coordinator, UnivReq, CollReq); PK: ProgId; FK: Coordinator refs Faculty.
Student (Sid, SSNo, Sname, CurAddress, Major, StuLevel, Gpa); PK: Sid; FK: Major refs DegreeProgram; UNIQUE: SSNo.
DDoffers (DeptId, ProgId, DeptReqrmnt), PK: (DeptId, ProgId); FK: DeptId refs Department, ProgId refs DegreeProgram.
Divide-and-Conquer Query Construction
Once we have recognized a multi-unit query, we can use the divide-and-conquer method to construct it.
First, based on the keyword found in the query condition, we divide the original query requirement into multiple single-unit queries. We can then construct the single-unit queries separately using the method presented in Section 1 Constructing Single Unit Queries.
After the single-unit queries are constructed, they can be combined using the set operator corresponding to the keywords found in the query condition: set intersect (Ç) for AND, set union (È) for OR, and set difference (-) for NOT.
Query: Return the names of the departments whose addresses are 'MCS' or 'HOH'.
a) In plain English, write down the first query unit.
Answer:
b) In plain English, write down the second query unit.
Answer:
c) What should be the set operator to combine the first and second query units.
Answer:
d) Based on your answers above, provide the complete query statement. You can write it as a relational algebraic expression or SQL command.
Answer:
Explanation / Answer
Here the query is about to return the name of departments with address = 'MCS' or 'HOH'
This is a multi-unit query as it contains condition which needs to be maintained.
The requirement can be divided into two parts. First part should be columns that are to be returned. Second unit will be the tables used in the query and condition for that
a) In plain English, write down the first query unit.
Answer: Get the department names from the department table.
b) In plain English, write down the second query unit.
Answer: The condition is where department address = 'MCS' or 'HOH'
c) What should be the set operator to combine the first and second query units.
Answer: set union (È) for OR as department with address = 'MCS' or 'HOH' are needed.
d) Based on your answers above, provide the complete query statement. You can write it as a relational algebraic expression or SQL command.
Answer: SELECT DeptName FROM Department WHERE DeptAddress = 'MCS' OR DeptAddress = 'HOH';
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.