'Auxiliary relvar' by any other name? [was: Specialisation-by-Constraint for arithmetic operations]
Quote from AntC on June 16, 2020, 10:54 amQuote from Dave Voorhis on June 13, 2020, 10:34 amQuote from AntC on June 13, 2020, 5:59 am[...]
Much of the OOP argument for what they call 'inheritance' is Specialisation-by-Extension/structural sub-typing; for which TTM has a ready answer: auxiliary relvars.
What are auxiliary relvars?
I just searched for "auxiliary" in DTATRM and DBE, and found only one (completely unrelated) instance of the word in DBE.
[from my reply:]
What DBE Ch 23/The Decomposition Approach to 'Missing Information' arrives at by Vertical Decomposition/6NF. A toll bridge is a bridge that charges a toll; there's a base relvar holding bridge details (for all varieties of bridges); there's an auxiliary relvar that holds toll details, just for toll bridges. A Manager is an employee who manages a department; there's an employee relvar; there's an auxiliary relvar for managers identifying the department; if an EmployeeId appears in the employee relvar but not the manages-department auxiliary relvar, that is a non-manager employee.
More technically, an auxiliary relvar R2 has a key same as the based-on relvar R1 and an Inclusion Dependency from R2 to R1. So the cardinality of R2 :: R1 is zero-or-one :: one.
Contrast a Foreign Key constraint is a non-key attribute of the referring relvar Inclusion Dependency to the key of the referred-to. So cardinality referring :: referred is zero-to-many :: one.
The auxiliary-of dependency is transitive: if R3 is auxiliary of R2 and R2 of R1 then R3 is auxiliary of R1. (Dave's message gave ColumnarReport auxiliary of SectionedReport auxiliary of Report.)
I though I'd seen 'auxiliary' used in that sense round here (but of course I can't find it). If not, is there some other term?
It comes up in 6NF and 'Missing Information' as: If
CITY
might be non-applicable for some Products (because they're virtual/delivered electronically/not stored), partitionCITY
away from relvarP
, put{P#, CITY}
in an auxiliary relvar, key{P#}
refers toP# FROM P
.
Quote from Dave Voorhis on June 13, 2020, 10:34 amQuote from AntC on June 13, 2020, 5:59 am[...]
Much of the OOP argument for what they call 'inheritance' is Specialisation-by-Extension/structural sub-typing; for which TTM has a ready answer: auxiliary relvars.
What are auxiliary relvars?
I just searched for "auxiliary" in DTATRM and DBE, and found only one (completely unrelated) instance of the word in DBE.
[from my reply:]
What DBE Ch 23/The Decomposition Approach to 'Missing Information' arrives at by Vertical Decomposition/6NF. A toll bridge is a bridge that charges a toll; there's a base relvar holding bridge details (for all varieties of bridges); there's an auxiliary relvar that holds toll details, just for toll bridges. A Manager is an employee who manages a department; there's an employee relvar; there's an auxiliary relvar for managers identifying the department; if an EmployeeId appears in the employee relvar but not the manages-department auxiliary relvar, that is a non-manager employee.
More technically, an auxiliary relvar R2 has a key same as the based-on relvar R1 and an Inclusion Dependency from R2 to R1. So the cardinality of R2 :: R1 is zero-or-one :: one.
Contrast a Foreign Key constraint is a non-key attribute of the referring relvar Inclusion Dependency to the key of the referred-to. So cardinality referring :: referred is zero-to-many :: one.
The auxiliary-of dependency is transitive: if R3 is auxiliary of R2 and R2 of R1 then R3 is auxiliary of R1. (Dave's message gave ColumnarReport auxiliary of SectionedReport auxiliary of Report.)
I though I'd seen 'auxiliary' used in that sense round here (but of course I can't find it). If not, is there some other term?
It comes up in 6NF and 'Missing Information' as: If CITY
might be non-applicable for some Products (because they're virtual/delivered electronically/not stored), partition CITY
away from relvar P
, put {P#, CITY}
in an auxiliary relvar, key {P#}
refers to P# FROM P
.