Re: The fable of DEMETRIUS, CONSTRAINTICUS, and AUTOMATICUS

From: Kenneth Downs <firstinit.lastname_at_lastnameplusfam.net>
Date: Wed, 20 Oct 2004 17:00:43 -0400
Message-ID: <slj6lc.lmi.ln_at_mercury.downsfam.net>


Laconic2 wrote:

> OK, here I am jumping into Ken's reply to Marshall.
>
> "Kenneth Downs" <firstinit.lastname_at_lastnameplusfam.net> wrote in message
> news:0v46lc.r9h.ln_at_mercury.downsfam.net...
>

>> 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.

>
> It depends. If the constraint was declared via DDL, and enforced by the
> DBMS, then it's going to require someone with DDL priviliges on the DB.
> In
> the environments I used to work in, that meant the DBA, and NOT the
> appplication programmers. No wonder everybody treated DBA's like they
> were all Constrainticus.
>
> I've been a DBA. And I was Constrainticus at the time. I slept well at
> night.
>

Well, I'm going to have to give another go at explaining why I don't like people issuing DDL, no matter who they are or why they are doing it. I started a thread on this, but I guess it was too long-winded :(

My perspective comes from being the outside developer. The development shop has got its product(s), with various enhancements underway at any given time for any number of customers. Not many customer databases exactly match the platinum-iridium release system at the shop, and no two are likely to match each other.

In this situation, no change to the DDL can be considered trivial, the chances that parties will introduce conflicting changes is simply too high. This brings us once again to (drumroll) storing biz rules in data, so that every time there is a change to meta-state it goes through an automated analysis that traps conflicts and errors.

>
>

>> Hmmmm.  Let's define:
>>
>> $(DDL) = Expense required to use DDL
>> $(USR) = Expense required to have user make change.

>
> The budget is missing an item above.
>
> $(FU) = Expense required to make sense out of the mess made when the
> user
> made the change, unaware of the global consequences, and restore the
> status quo ante.
>
> (FU is an acronym for "Fatality Undo")

LOL. Yup, users will do that. But what exactly can they do? Anybody authorized to set salaries in payroll is not going to make that kind of mistake, they tend to be very serious people indeed.

Can you offer an example from a less sensitive area?

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

Original text of this message