John - Thanks for your insights. I appreciate you final comment that you haven't seen RI as the real performance problem. Dennis Williams DBA Lifetouch, Inc. [EMAIL PROTECTED]
-----Original Message----- Sent: Tuesday, January 22, 2002 7:40 AM To: Multiple recipients of list ORACLE-L Hi Dennis, Just my opinion but I tried to follow these rules as a DBA. 1. If the business rule can be implemented with pk, fk, unique or check constraints I do it as such 2. If the business rule can be implemented as a trigger I code it as a trigger 3. If none of the above, I implement as a stored procedure and try to insure that every developer uses this procedure. Occasionally I have heard the "performance discussion" in regards to constraints. In 5 years of consulting I have never had constraints be THE problem. But if I was a developer that had written some of the awful SQL I have seen, I might have tried [:-)] . Constraints do put a premium on error checking by the application on inserts/updates. Hope this helps, John [EMAIL PROTECTED] wrote: >Jared - I wasn't clear, but then again it is Monday. I have a team of >inexperienced developers starting a big, new Java application. They have a >good, experienced data model consultant helping them create the data model. >They are eager to include referential integrity. So eager it has me a little >worried. My question: "Is there too much of a good thing?". In Oracle 7, >sometimes sites would remove RI to ensure good performance (we are starting >this project on Oracle9i). Has anyone encountered problems with too many >constraints? Any guidelines you use with developers? Thanks. >Dennis Williams >DBA >Lifetouch, Inc. >[EMAIL PROTECTED] > > >-----Original Message----- >Sent: Monday, January 21, 2002 4:16 PM >To: Multiple recipients of list ORACLE-L > > >I would be you lunch that what they are implementing in their >code is not actually RI. They may be implementing code to >ensure things get inserted in the right order, and that child rows >have a parent. > >This is a very weak form of RI. Oracle is very good at implementing >RI, and it is not dependent on an application. RI in the database >is the route to choose unless there is some good reason not to. > >RI in the database will prevent orphaned data created through >updates, deletes or even ( gasp! ) bugs in the app. > >Programmers tend to dislike RI in the database because it >forces them to maintain data integrity in a transaction. This is >not a bad thing, it just forces them to have a good understanding >of their transactions. > >Point out to them that it is less code to write as well. :) > >Jared > > > > > > > >DENNIS WILLIAMS <[EMAIL PROTECTED]> >Sent by: [EMAIL PROTECTED] >01/21/02 01:35 PM >Please respond to ORACLE-L > > > To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> > cc: > Subject: Limits on referential integrity > > >How much referential integrity should be implemented in Oracle? We are >starting a large new Java project. Our current applications keep their >referential integrity inside their own dictionary, so I haven't had to >deal >much with referential integrity recently. Can there be too much of a good >thing? What guidelines do you tend to use? At this point the developers >are >designing the data model so they are busily linking all the little boxes. >My >attitude at this point is "implement what you've got and if there are >performance problems we'll deal with them when they arise". Can anyone >give >me a better motto? >Thanks. >Dennis Williams >DBA >Lifetouch, Inc. >[EMAIL PROTECTED] > -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: DENNIS WILLIAMS INET: [EMAIL PROTECTED] Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).