This is my first time studying multivalued dependencies and there is a question that was posted by my lecturer as a class exercise. I have an answer, but I'm not 100% sure it was right. Please let me know if my answer is complete and correct:



My answer

Multi-valued dependencies

  • courseCode ↠ lecturerId
  • courseCode ↠ (startDate, StartTime)
  • (courseCode, startDate, StartTime) ↠ learnerId
  • learnerId ↠ (courseCode, startDate)

Functional dependencies

  • courseCode → (courseName, weeklyHours, noofWeeks)
  • (courseCode, startDate,StartTime) → lecturerId
  • (courseCode, lecturerId) → (startDate, StartTime) Note: I'm not sure if this is even needed
  • lecturerId → (lecturerName, lecturerEmail, lecturerGender)
  • learnerId → (learnerName, learnerEmail)
  • 1
    Armstrong's axioms tell you all the FDs that hold when some do. There are similar axioms for MVDs. (See Wikipedia MVD.) Moreover you need to know all the FDs & MVDs that hold. (MVDs come in pairs.) You can do this by exhaustion, or there are algorithms. What reference does your class use? You need to use it. Perhaps the simplest definition for an MVD is that it corresponds to a binary JD--a table equals the join of two of its projections. This requires that you can phrase a table's (characteristic) predicate (statement template parameterized by columns) as the AND of two components'.
    – philipxy
    Commented Aug 29, 2017 at 0:33
  • 2
    Please use text inline any time you can. Ie cut & paste (after ocr if necessary). Images should be supplemental or necessary. PS See my stackoverflow MVD answers.
    – philipxy
    Commented Aug 29, 2017 at 0:50
  • 1
    What is the question? What is the assignment?
    – philipxy
    Commented Aug 29, 2017 at 6:53


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.