You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Philip DONAGHY <Ph...@thales-is.com> on 2004/12/02 14:25:17 UTC

[sql]Applying xml schema constraints on the database model

We are making a datamodel from xml schema and would like to suggest
support for constraints in a similar way xml schema does it. For example
if an element of an xml instance can contain a maximum of 3 child
elements (maxOccurs="3"), can the commons sql datamodel add a "trigger
before insert" which verifies that there are not more than 3 children
inserted in the child table. The same could be done for "trigger before
delete" for minOccurs constraints.

What does the Apache community of Java Thinkers make of this nasty idea
:p

Any other ideas for xml schema-like support in the relational database
model.

If this is not a good idea what would be the alternatives?

Philip Donaghy and Olivier Croisier

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [sql]Applying xml schema constraints on the database model

Posted by Eric Giguere <er...@videotron.ca>.
Hi Philip

Only personnal opinions following, based on experience.

Your topic is mainly, as I understood, discussing validation rules but 
with the specific case of cardinality.

Like in many situations, there is more than one way to get the acheived 
goal. The solution you described is one. The implementation of 
validation rules is a very sensitive area. Validation should normally 
occur at data entry level. Once you've reach the business layer in an 
application, all validation should already be done because business 
objects are, after all, very trusting creature. Capturing these errors 
at entry level lowers the number of lines of code that will acutally 
need to perform that same exact check deeper in the soft.

With the described method, using triggers, the validation occurs quite 
late in the process. We're all the way down to the DB and its getting 
late for validation but not to late :). In Java, it means the your 
business layer as made a call to your data layer. Should the error be 
allowed to travel that far in code?

The schema defined and used  by common-sql is specialized in one area : 
offering a model to create DB scripts and other niceties. And since 
validation rules are applied to an "entity" in an application and not on 
a table itself ( but that does not mean that no rules should be 
implemented in the DB) is not the right model to put this information 
in. Its maybe better to put these rules in the domain model. These will 
have an impact on other that DB code anyway.

Eric.



Philip DONAGHY wrote:

>We are making a datamodel from xml schema and would like to suggest
>support for constraints in a similar way xml schema does it. For example
>if an element of an xml instance can contain a maximum of 3 child
>elements (maxOccurs="3"), can the commons sql datamodel add a "trigger
>before insert" which verifies that there are not more than 3 children
>inserted in the child table. The same could be done for "trigger before
>delete" for minOccurs constraints.
>
>What does the Apache community of Java Thinkers make of this nasty idea
>:p
>
>Any other ideas for xml schema-like support in the relational database
>model.
>
>If this is not a good idea what would be the alternatives?
>
>Philip Donaghy and Olivier Croisier
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>
>  
>



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org