This answer is directly from my CS course and is derived from a Connolly and Begg textbook.

Full functional dependencies
Define the candidate keys (here, property No, iDate, and pAddress) . This is because any combination of these 3 can allow you to find what other attributes are for a given tuple (I can find staffNo who did the inspection, given these three things, I can find carReg staffNo using these 3 things, etc. .d ..). But note: you need all three of these to find other attributes, not just a subset. Full dependencies always refer to keys other than the candidate, depending on the candidate keys, either depending on all, or on some.
Partial dependencies
Given these three candidate keys, find the candidate keys. Is there a subset of the candidate key that depends on another? Yes, this is pAddress. Given property No, you can figure out what the property address is. Then look outside the candidate keys. Are there any of these keys that depend only on the parts of the candidate key, and not on all components? In this case, no. Thus, partial dependencies always depend on candidate keys or non-candidate dependencies on keys only for individual candidate keys, and not for all components
Transitive dependencies
Now let's look at non-candidate keys (staffNo, comments, iTime (check time), sName, carReg). Is there something inside them that is functionally dependent on another? Yes, this is sName - statewide. No, you can find out the name of the employee. But staffNo is functionally dependent on 3 possible keys. Thus, transitivity, property No + iDate + pAddress β staffNo β sName, so sName is transitively dependent on staffNo . Transitive dependencies always refer to attributes outside of the candidate keys.
source share