August 21, 2008
Discussion Group and Website integration - Monday, June 04, 2007

Our integration layer between our webiste (www.infoadvisors.com) and our discussion server (http://wb.itboards.com) is currently out of service.  That means if you are registering for the first time, you'll need to first register here on the website, then register again on the discussion group (via the ENTER link on each board's page).  If you use the same credentials on both, then when we turn integration back on your accounts will be in sync again.

Please register here on the website first.  Thanks for your patience.

 
What we're working on... Minimize

    Discussion Group Login Minimize
    Print  

    Registered User Poll - Log in to Vote Minimize
    Which Modeling Tools Do You Use Regularly?









     
    You must sign in to vote in this survey.
    Print  


    Home    

    Welcome... Minimize

    Welcome to InfoAdvisors' website dedicated to information technology processes.  You'll find subscriber-written articles on UML, data management, data modeling, process modeling, ITIL, information governance, as well as materials to help you improve your information management resources.





    May 30

    Written by: Karen Lopez
    Friday, May 30, 2008 4:47 PM

    If you've heard me present, then you know that one of my primary design mantras is:

    Everything is a trade off.  You need to be able to explain, in both business and technical terms, the cost, benefits, and risks associated with every design decision.

    If you can't do that, then you aren't doing design: you are copying design patterns from other designs and hoping for the best outcome, even if your current design has different requirements and risk tolerances.

    I am often told that a database design must have surrogate keys on every table and that "right" way to implement surrogate keys is to use the Identity property in SQL Server (or the RowID in Oracle, or the Identity property in DB2).  These sorts of features of modern DBMSs do vary from vendor to vendor, so the cost, benefit, and risk associated with each varies by version and by vendor.  Most IT pros I speak with don't know that.

    Many people I speak with assume, incorrectly, that Identity Property = Surrogate Key = Primary Key= Unique Index but this is incorrect. It is important for database designers to understand the differences between these concepts.

    Nigel Rivett has written a great article over at Simple-talk.com about SQL Server's identity property and some of the interesting "features" of this incrementing function:

    Note: An identity column is not guaranteed to be unique nor consecutive. You should always place a unique index on an identity column if your system requires uniqueness.

    ...

    Note: The next value is the step added to the current seed; not one more than the max value in the table, or even the step from the last or maximum value.

    I'm guessing that 6+ out of 10 of experienced SQL Server designers and developers are not clear on these two gotchas.  Other DBMSs have technical issues as well.  When I'm questioned on why I don't just slap on an identity property, call it a PK an move on to the next change request, I usually start asking questions:

    1. Will the application need to assume that the values are always sequential?  What if the sequence is missing a few steps?  Will that break the code?
    2. Will the Identity column value be displayed anywhere outside the database, such as on a report or on a screen?  Will the users be confused if a sequence is missing or if they "restart" in the middle of an order?
    3. Will the Identity column value be used outside this database? How?  Where?
    4. What are our plans for dealing with rows that exceed the maximum number of identity values (in some versions of DB2, identity values maxed out at 32k or so)?

    Identity properties can be useful, but as in every design decision, there are uses that are appropriate and uses that are not -- it all comes down to cost, benefit, and risk.

    powered by metaPost

    Tags:

    Your name:
    Title:
    Comment:
    Security Code
    Enter the code shown above in the box below
    Add Comment    Cancel  

    InfoAdvisors Calendar List Minimize

    Event StartTitle

    Month viewMonth view  Week viewWeek view  List viewList view   Print  

    Search Minimize

    Print  

    New Profies Minimize
    Print  

    Users Online Minimize
    Membership Membership:
    Latest New User Latest: BlackCloud
    New Today New Today: 0
    New Yesterday New Yesterday: 1
    User Count Overall: 2128

    People Online People Online:
    Visitors Visitors: 14
    Members Members: 0
    Total Total: 14

    Online Now Online Now:
    Print  

    Partners Minimize
    InfoAdvisors partners with
     
    embt.png
     
     
    CA
    Microsoft
    Sybase
    Telelogic
     
    We can help you evaluate and successfully implement our partners' products
     

    Archive  Minimize 
    Print