patternMinor
Why are multivalued dependencies named that way?
Viewed 0 times
whymultivaluedarewaynamedthatdependencies
Problem
I'm doing a relational design course on Stanford open courseware. I understand why functional dependencies are named that way - A->B means B is specified when A is specified, or in other words, the value of B functionally depends on the value of A. But I'm not able to think of a simple reason why multivalued dependencies are named that way. Understanding this would make it much easier to remember and use the concept.
Solution
A multivalued dependency A->->B means that each value of A determines a set of values of B (and not a single value of B as in functional dependencies).
For instance, suppose that
programmer-id ->-> know-language
So, supposing that the programmer with program-id 7 knows SQL and Ruby, this means that in a table in which you have both attributes
For instance, suppose that
programmers have an attribute programmer-id and an attribute known-language, and each programmer can know several languages, you have the multivalued dependency:programmer-id ->-> know-language
So, supposing that the programmer with program-id 7 knows SQL and Ruby, this means that in a table in which you have both attributes
programmer-id and know-language, every time there is program-id 7 there must be two different rows, one with language 'SQL' and one with language Ruby, and all the other attributes equal:programmer-id know-language other-attribute1 other-attribute2 ...
7 SQL XXX YYY
7 Ruby XXX YYY
8 Java AAA BBB
...Code Snippets
programmer-id know-language other-attribute1 other-attribute2 ...
7 SQL XXX YYY
7 Ruby XXX YYY
8 Java AAA BBB
...Context
StackExchange Database Administrators Q#133753, answer score: 6
Revisions (0)
No revisions yet.