in

The ORM Foundation

Get the facts!

Subset constraint terminology

Last post 08-27-2014 10:48 by Matt Nizol. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 08-27-2014 2:51

    Subset constraint terminology

    Is there a standard qualifier to distinguish a subset constraint that covers exactly one subset role and one superset role from other forms of the constraint?  In the BBB, I see the terms "pair-subset", "tuple-subset", and "join-subset" used to distinguish more complex forms of the constraint.  Is it understood that "subset constraint" used without qualification is the one-role form of the constraint?

  • 08-27-2014 8:22 In reply to

    Re: Subset constraint terminology

    Hi Matt,

    I don't think it is understood that an unprefixed 'subset constraint' means one role per tuple. I've used the terms 'single-column', 'basic', 'simple', etc. Although the NORMA UI presents rows and columns, technically each row (tuple) is an argument to the comparison operation, the argument length (column count) is an arity, and the number of arguments is the number of rows (always two for a subset). Columns are basically a UI notion. Given that the arity of each argument must be consistent for all arguments, you could also say that the set comparison constraint has a single arity, so 'subset constraint with arity 1' would be a reasonable formal description.

    Of course, just to make things fun (and play devil's advocate with myself), the term arity is correctly used both for the number of values in a tuple and the number of arguments in a function or operation, so arity is also reasonably applied to the number of arguments. So, subset is a binary comparison operation is a reasonable statement using an arity (binary = arity of 2). Given that this is always true, using subset constraint with arity 1 aka unary subset constraint is contradictory and sounds wrong. However, unary tuple subset constraint is unambiguous as it ties the arity with the tuple (row in NORMA) instead of argument count (column in NORMA).

    Technically join paths also apply to the tuples, not the entire constraint. A subset constraint can have zero, one, or two tuples with join paths. 

    -Matt

  • 08-27-2014 8:41 In reply to

    Re: Subset constraint terminology

    Thanks, Matt.  Given the standard use of "simple" to qualify internal uniqueness constraints that cover one role and non-disjunctive mandatory constraints, I also had thought that "simple" would be a reasonable qualifier for the type of subset constraint in question.  However, I don't see "simple subset constraint" used in the BBB, thus prompting this question. Moreover, it's not clear to me if "simple" is intended to describe a constraint that covers exactly one role (in the case of a simple uniqueness constraint) or more generally to describe a constraint that covers one or more role sequences, each of which consists of exactly one role (as in the case of a "simple" subset constraint).  Is there a standard consensus on the semantics of "simple" in ORM?

    In a draft of a paper I'm working on, I've used the term "role-subset" to distinguish this case from "pair-subset", "tuple-subset," "join-subset", etc., but I don't want to simply invent terminology. 

  • 08-27-2014 10:22 In reply to

    Re: Subset constraint terminology

    Hi Matt,

    I think the adjective 'simple' always needs to be taken in the context of the thing it is describing. In math terms, a 'simple multiplication problem' and a 'simple multi-variable definite integration problem' set significantly different bars for the meaning of simple. I think you can take Terry's use of simple X to mean the simplest valid structure of type X, which will correspond to all instances with the smallest valid population. So, a simple mandatory constraint restricts one role, a simple uniqueness restricts one role, and a simple subset constraint restricts two single-role tuples (the simplest possible valid form of a subset constraint).

    I wouldn't use role-subset as all (subset) constraints constrain roles, and a simple subset actually constrains two (at least relative to each other, the superset role is not actually constrained). Frankly, tuple-subset has the same problem (a tuple with arity one is still a tuple). I think simple subset constraint is entirely consistent with the BBB use of the term even though it is never directly applied. Of course, depending on your style guids, you can put a glossary in the paper as well and/or parenthetically and/or appositively define any term you like the first time you use it in the paper.

    -Matt 

  • 08-27-2014 10:48 In reply to

    Re: Subset constraint terminology

     Thank you!  That's a very helpful way of thinking about the "simple" qualifier.  "Simple subset constraint" it is.

     Matt 

Page 1 of 1 (5 items)
© 2008-2014 The ORM Foundation: A UK not-for-profit organisation -------------- Terms of Service