Re: The fable of DEMETRIUS, CONSTRAINTICUS, and AUTOMATICUS

From: Kenneth Downs <firstinit.lastname_at_lastnameplusfam.net>
Date: Wed, 20 Oct 2004 12:49:35 -0400
Message-ID: <0v46lc.r9h.ln_at_mercury.downsfam.net>


Marshall Spight wrote:

> "Kenneth Downs" <firstinit.lastname_at_lastnameplusfam.net> wrote in message
> news:b2f3lc.8t6.ln_at_mercury.downsfam.net...

>>
>> Laconic2's reply with Marshall's reply to that actually gives the insight
>> better than I have:  you want to provide the constraints structurally.
>>
>> I'll do the details here.
>>
>> CASE 1: CONSTRAINT SALARY <= 100,000 (from your other post).
>>
>> All discreet finite range constraints can be converted to RI by having a
>> table of allowed values.  Salary codes with dollar values (or direct
>> salary values in a table).
>>
>> Some will knee-jerk react against the idea of a table with 100,000 rows,
>> but of course that is silly, we only enter the ones we are going to use.

>
> I must say I am impressed with your creativity. However, I find this
> exact solution unsatisfying, but I have a *related* idea which you
> may find interesting.
>
> What if we could *declare* a set according to its properties (constraints,
> really) and use them as if they were regular sets? So we could have
> a set ValidSalaries that was declarad as the set of all integers between
> 0 and 100,000?

The question would then become, how do you control the definition of the set? Can the user modify it? Can we declare a set as having a range of values from a table controlled by a user?

>
>

>> Advantage 1:  With a constraint, policy changes require a programmer. 
>> Now
>> you are truly Constrainticus, preventing things from getting done.  If
>> the salary values are in a table, policy changes can be implemented as
>> soon as
>> they are authorized, the top dog goes in and types it in.  Keeping to the
>> Greek philosophy idiom, this is much more virtuous, i.e, it conforms to
>> The Good.

>
> I dunno. If the constraints are declarative and not procedural, the
> change is about as easy either way.
>
>

Hmmmm. Let's define:

$(DDL) = Expense required to use DDL
$(USR) = Expense required to have user make change.

If I understand your statement, it is that

$(DDL)(Declarative) << $(DDL)(Procedural)

My claim is that this is only true if you are a programmer, if you are a user then:

$(USR) << $(DDL) for all values of $(USR) and $(DDL)

Hence, any time that you can put something in the user's control through direct data maintenance, it is a Good Thing.

-- 
Kenneth Downs
Use first initial plus last name at last name plus literal "fam.net" to
email me
Received on Wed Oct 20 2004 - 18:49:35 CEST

Original text of this message