Tony said:
Ah, a semantic question. <shrug> No idea.
Tony
I also think the Relations collection is a case of poor naming by
Microsoft. In mathematics, a relation has a precise definition that is
similar to a function, but a function (also called a mapping, but I
consider them a subset of mappings) is only allowed one range value for
each domain value. Relations are more general because they don't have
that restriction and are usually represented by pairs (for the 2D case)
of values in a way that is equivalent to a lookup table. In Access,
relationships are based on the idea of subsets through the use of
foreign keys to identify the subset members. That makes the terminology
even more confusing because both functions ("constrained" mappings) and
relationships ("unconstrained" mappings) can be one-to-one, onto,
injective, etc., basically descriptions of set "
relationships
."
I consider the relationships in Access to be quite limited compared to
all the set relationships available in mathematics. For instance, you
can only discover if a mapping is onto by running an unmatched query and
getting no results. Note that an unmatched query is run on tables
containing similar information. The many-to-many Access relationship is
shoehorned into the subset idea by saying that combinations from both
tables are subsets of the cartesian product table (all the join table
possibilities) which allows for general mappings (mathematical
relations). Plus, a table with a key in other tables doesn't contain
any of its members! I'd better give an example of what I mean:
tblEmployees
EID AutoNumber
FirstName Text
LastName Text
tblBenefits
BID AutoNumber
EID Long (FK)
BenefitName Text
tblBenefits contains all the employee benefits given to all the
employees in tblEmployees, but tblEmployees doesn't contain a single
benefit. In set theory, a subset is a set of elements from another set.
O.K., to get slightly more technical: If x is a member of set A
implies that x is a member of set B then A is a subset of B. In Access,
the key in the main table is a pointer to a partition of the set of all
employee benefits. So, unlike the set mappings in mathematics about
which terms like "onto" are used, the set mappings in Access aren't
really between tblEmployees and tblBenefits as the relationship diagrams
seem to suggest, and aren't really set mappings in the mathematical
sense either. They are partitions of a table within itself using the
foreign key to identify which partition members belong together. So the
set relation terminology used by Microsoft is being applied to
"subdivisions"
. Therefore, the set relationship terminology of
mathematics does not correlate to the SQL-speak relationships in spite
of the fact that similar terms are often used for both.
I'm just starting to put all these ideas together for the first time so
I may have made some mistakes but my intuition tells me that
mathematical set relationships are different than the relationships used
in SQL. If they are somehow analogous to each other in a way that I
don't see yet, I would appreciate some enlightenment.
James A. Fortune
(e-mail address removed)