Re: ID field as logical address

From: Bernard Peek <bap_at_shrdlu.com>
Date: Mon, 8 Jun 2009 15:21:03 +0100
Message-ID: <5PX1BiYP5RLKFw9W_at_shrdlu.com>


In message <hV8Xl.1375$u86.509_at_nwrddc01.gnilink.net>, Walter Mitty <wamitty_at_verizon.net> writes

>Your reply is crystal clear except for one minor point. It's not clear (at
>least to me) who the pronoun "we" refers to in the phrase "we therefore
>choose a range of surrogate keys."

I'm referring to the data modellers and database designers who have to turn theoretical concepts into database schemas.

>
>It seems to me that, in some cases, the people who choose surrogates and
>assign a new surrogate value to a newly discovered entity instance are
>"outside the application", such as a hiring clerk in HR assigning a new
>employee badge number to an employee on his/her first day of service. In
>some cases, the assignment is "inside the application, but outside the
>dataabase". In these cases, HR sees the new badge number as having been
>assigned by some process behind the data entry screen. But the programmers
>see the assignment has having been done by their programs.
>
>In yet other cases, the database designer has chosen to use an autogenerated
>datatype for the column that holds the surrogate. This might be called
>"inside the DBMS but outside the database". But to most people, inside the
>DBMS and inside the database are tantamount to the same thing.
>
>So, what do you mean by "we", kemosave?

When we talk about "systems" we generally have at least some idea of where the boundaries of the systems lie. But in different contexts people can use different definitions which may include or exclude different components. If I decide, as a data modeller, that a particular table should have an Autonumber column I may add it to the logical data structure. The job of converting that to a physical structure may fall to someone else; who may add implementation-specific elements. One of those may be an external mechanism that generates the key values. So whether this is inside or outside the database depends on who you ask, and at what stage through the development process. In brief: it depends.

-- 
Bernard Peek
Received on Mon Jun 08 2009 - 16:21:03 CEST

Original text of this message