|
database
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
I have no blogPUBLIC NOTICE:
I have no blog. I have never had a blog. I have no idea who is using my name, postings and likeness on that "SQL Apprentice" blog. As much as I detest your behavior in these groups, I find this blog
concept morally repugnant. I get the joke; somebody is posting "the best of Celko" from these groups, but they should have the guts to do it without assuming your identity. You probably don't give a damn what I think, but for once, I agree with the way you're handling this. I would probably see if there were some legal route to pursue. Stu --CELKO-- wrote: Show quoteHide quote > PUBLIC NOTICE: > I have no blog. I have never had a blog. I have no idea who is using > my name, postings and likeness on that "SQL Apprentice" blog. Stu wrote:
> As much as I detest your behavior in these groups, I find this blog Actually I found it quite a handly collection of Joe's posts... yes he> concept morally repugnant. I get the joke; somebody is posting "the > best of Celko" from these groups, but they should have the guts to do > it without assuming your identity. shouldn't pretend to actually BE Joe, but aside from that it doesn't seem to be a piss-take or malcious...(though I only skimmed through it). It's not that the author of the blog is copying Joe's posts verbatim
that bothers me; it's the impersonation factor. Joe does a pretty good job of maligning his own character (in my opinion); I just think the author of the blog shouldn't give the impression that they are Joe Celko. Stu Chris Lim wrote: Show quoteHide quote > Stu wrote: > > As much as I detest your behavior in these groups, I find this blog > > concept morally repugnant. I get the joke; somebody is posting "the > > best of Celko" from these groups, but they should have the guts to do > > it without assuming your identity. > > Actually I found it quite a handly collection of Joe's posts... yes he > shouldn't pretend to actually BE Joe, but aside from that it doesn't > seem to be a piss-take or malcious...(though I only skimmed through it). >> Actually I found it quite a handly collection of Joe's posts... yes he shouldn't pretend to actually BE Joe, but aside from that it doesn't seem to be a piss-take or malcious...(though I only skimmed through it). << So far, it is nothing but direct quotes from news group postings, whichare public and quotable. As long as he does not add or change anything, I do not have much to say about it. tho, I wish he would take the time to fix the spelling and grammar :) The headshot actually belongs to MKP, one of my publishers, and I have used it for ten years with their permission. And yes it does look like me; in fact I still wear the same three piece suits from the 1980's, which says a lot about my good health and bad fashion sense (want to see my Nerhu jacket? My Halston sportscoat? I still fit into things from the 1970's). Just what is the problem? If you wanted a blog could you
have done better? :) I respectfully submit only a nitwit could deduce he's assuming your identity (pardon the pun). And once you click it's in the public ear. The guy seems rather bright, creative and industrious. Now I can see punishing him for these morally repugnant and anti-social traits. So who wants to be the first one on their block to put this guy in a stock? Democracy is chaos, you give some you get some. And in the end you should feel flattered. In this case imitation (which it is not) is not the sincerest form of flattery, ridicule is:) Go Menace Go :) http://racster.blogspot.com Nice Blog Joe, and the photos ALMOST look like you too! It had me fooled...
;-) -- Show quoteHide quoteArnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157855268.221004.7520@b28g2000cwb.googlegroups.com... > > PUBLIC NOTICE: > I have no blog. I have never had a blog. I have no idea who is using > my name, postings and likeness on that "SQL Apprentice" blog. > If you are that bothered by it then contact the ISP and have it removed.
Personally I didn't think you where IT literate enough to have a blog..... -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157855268.221004.7520@b28g2000cwb.googlegroups.com... > > PUBLIC NOTICE: > I have no blog. I have never had a blog. I have no idea who is using > my name, postings and likeness on that "SQL Apprentice" blog. > >> If you are that bothered by it then contact the ISP and have it removed. << As long as it is public quotes, I cannot do much about it. It is likeNexis, Google or any other news source. But I do not want people to think I am blogging. I have turned down offers from software companies and trade publishers to do blogs for them back it was the new hot thing. I just cannot get into doing that much writing without making money on it. I can do an article in less time I would blog for a week and get a check. I can write a book and create an income stream that lasts for decades in a few months. Yeah, there are blogs that are making 6-digit incomes with ads and subscriptions (see "in Blogging for dollars" by Paul Sloan and Paul Kaihla, Business 2.0 Magazine Sep 2006) and changing the world with political disclosures. But let's be real; most blogs are a hobby, a public service and/or an ego booster. I prefer spending time on newsgroups for my hobby and contribution to the community. Interesting stance, I doubt they are making that much out of you; there has
only been about 7,000 hits since April according your counter. If it had happened to me I'd be on to them like a shot to have it closed down. > contribution to the community. Now that really is a contradiction in terms! I guess you don't "contribute" to sell your books...... -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157894898.239875.234330@d34g2000cwd.googlegroups.com... >>> If you are that bothered by it then contact the ISP and have it removed. >>> << > > As long as it is public quotes, I cannot do much about it. It is like > Nexis, Google or any other news source. > > But I do not want people to think I am blogging. I have turned down > offers from software companies and trade publishers to do blogs for > them back it was the new hot thing. I just cannot get into doing that > much writing without making money on it. I can do an article in less > time I would blog for a week and get a check. I can write a book and > create an income stream that lasts for decades in a few months. > > Yeah, there are blogs that are making 6-digit incomes with ads and > subscriptions (see "in Blogging for dollars" by Paul Sloan and Paul > Kaihla, Business 2.0 Magazine Sep 2006) and changing the world with > political disclosures. But let's be real; most blogs are a hobby, a > public service and/or an ego booster. I prefer spending time on > newsgroups for my hobby and contribution to the community. > >> I guess you don't "contribute" to sell your books.. << Sure! And to get consulting work, too. But if I put the effort intopromotion instead of giving away free consulting, I would do better. Does your blog result in more or less work for you? My blog is geared around me sharing my experiences, that costs nothing; as I
learn other people learn and I also learn from their comments - its a good model that perhaps you'd benefit from (no doubt there!). > Does your blog result in more or less work for you? Not directly and that is not what my blog or what I do with the UK user group is about; note: how often do you see me give direct plugs for my consultancy (akin to direct plugs you give to your books), answer: rarely to never. -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157904468.478861.85280@d34g2000cwd.googlegroups.com... >>> I guess you don't "contribute" to sell your books.. << > > Sure! And to get consulting work, too. But if I put the effort into > promotion instead of giving away free consulting, I would do better. > Does your blog result in more or less work for you? > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message Yeah, I understand the concept. How often do you see me plug RAC?news:etlxMsR1GHA.4176@TK2MSFTNGP06.phx.gbl... >. > how often do you see me give direct plugs for my consultancy (akin to > direct plugs you give to your books), answer: rarely to never. best, www.rac4sql.net http://racster.blogspot.com Steve doe not plug RAC
He's not sales rep on attack On this, I know jack! -- Show quoteHide quoteArnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous -- Arnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous "Steve Dassin" <steve@nospamrac4sql.net> wrote in message news:etq3JBS1GHA.4796@TK2MSFTNGP03.phx.gbl... > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > news:etlxMsR1GHA.4176@TK2MSFTNGP06.phx.gbl... >>. >> how often do you see me give direct plugs for my consultancy (akin to >> direct plugs you give to your books), answer: rarely to never. > > Yeah, I understand the concept. How often do you see me plug RAC? > > best, > www.rac4sql.net > http://racster.blogspot.com > "Arnie Rowland" <ar***@1568.com> wrote in message Golden! :)news:OK7glKU1GHA.4228@TK2MSFTNGP06.phx.gbl... > Steve doe not plug RAC > He's not sales rep on attack > On this, I know jack! There once was a girl named Sue Who came up with a crosstab result out of the blue, Here an MVP came to her resue, In a way befitting a guru, To which Steve replied with a smack, As the MVP was obviously thinking sack, It's not that his answer lacked, But oh the time wasted getting back, As he would have had much better luck, Had he first thought of Rac. best, >> how often do you see me give direct plugs for my consultancy (akin to direct plugs you give to your books), answer: rarely to never. << Every signature on every posting?> Every signature on every posting? You plank - thats a link to the technical content."TECHNICAL COMMENTARY FROM <MY JOB TITLE>" "VIDEO TUTORIALS...." A tad different to "you need to get a copy of my book trees and graphs....." without actually answering the OP's post...... -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157924882.948772.220250@h48g2000cwc.googlegroups.com... >>> how often do you see me give direct plugs for my consultancy (akin to >>> direct plugs you give to your books), answer: rarely to never. << > > Every signature on every posting? > Perhaps I should change my signature to a list of my books instead of
the vague "consultant" and "MVP" instead? Perhaps I should add 10 years on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug to me. Get real! If any of us wished to be "humble", we would use a false names and no links. Oh, I use no links and you do! Gee, so doI ! Et al ! Duh! One of the functions of newsgroups is to hook up newbie problems with the 30+ year old vets, the smart kids, the aread experts. etc. to gert an answer. The BADF news is that the newbie is more often than not given a kludge that gets him over his problem ( i.e. "Take more Heroin and you will not feel the pain", or "get 'er done" in the word of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). Tony, you, me, Steve, and others here are pros who are looking for the next job. You are looking for a coding job for a few weeks; Steve wants a RAC sale immediately and I want a training class series on a Fortuen 500 corporate basis or code review advisor job or "evegantistic role" for a good product. The target is dependent on what level or niche we aim at. The newsgroups are a change for us to do "community service" by postings. If Tony says "get 'er done with an IDENTITY column!!" and I say "Dr. Codd.. blah, blah, so you need to look for Relational keys .. blah, blah" , the reader should Google the postings, sources, etc. and then decide. --CELKO-- wrote:
<snip> Did you put in more typo's than usual just to make your fake blog look bad? ;-) >> Did you put in more typo's than usual just to make your fake blog look bad? <, TYPOS?! No, I am just back back from my niece' sbirhtday weekendn partyand I am druuunk. I think.... Wow - what an ego..... but we all know that....
The trouble is your postings only reflect you as somebody with little real world experience, class room bound and unable to learn new techniques and ideals; your dress, ideas and attitude is stuck in the late 70's and because you don't get industry exposure you are unaware how things have changed, and my broad experience of enterprise (fortune 500) mainly banks is that they are mainly 3 - 5 years behind current technology and thinking. As for me being a coder (rflol), yes, I do occaisionnally code for clients but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' and my clients are from small businesses through to fortune 500.... Tony says 'get the job done with surrogate keys' - at least get that right! I don't want all the consistency, locking and scalability problems you get when you copy the natural key (http://en.wikipedia.org/wiki/Natural_key) everywhere as the foreign key (there is no such thing as a relational key - even wikipedia.org hasn't a reference to it - when are you going to use the correct terminology so newbies can google.....); if you had done any coding you would realise it isn't practical to use composite keys inside an application. -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... > Perhaps I should change my signature to a list of my books instead of > the vague "consultant" and "MVP" instead? Perhaps I should add 10 years > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug > to me. > > Get real! If any of us wished to be "humble", we would use a false > names and no links. Oh, I use no links and you do! Gee, so doI ! Et > al ! > > Duh! One of the functions of newsgroups is to hook up newbie problems > with the 30+ year old vets, the smart kids, the aread experts. etc. to > gert an answer. The BADF news is that the newbie is more often than > not given a kludge that gets him over his problem ( i.e. "Take more > Heroin and you will not feel the pain", or "get 'er done" in the word > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). > > Tony, you, me, Steve, and others here are pros who are looking for the > next job. You are looking for a coding job for a few weeks; Steve > wants a RAC sale immediately and I want a training class series on a > Fortuen 500 corporate basis or code review advisor job or "evegantistic > role" for a good product. The target is dependent on what level or > niche we aim at. > > The newsgroups are a change for us to do "community service" by > postings. If Tony says "get 'er done with an IDENTITY column!!" and I > say "Dr. Codd.. blah, blah, so you need to look for Relational keys .. > blah, blah" , the reader should Google the postings, sources, etc. and > then decide. > On a side note...
Regarding using composite keys in an application, and the locking and scalability problems that come with them, would you consider this a limitation of SQL Server? I ask because I have used composite keys in applications extensively with Oracle. Oracle has a completely different approach to locking and I have never seen the sorts of problems that I see with SQL Server. Although the composite keys required more typing for the joins, it also saved time by not making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> REVIEW_COMMENTS in order to get the review comments for employee 123456. With surrogate keys, this is what I end up doing, but with natural, composite keys, I go straight to the review comments table. Granted, I have a 4 part key in that table without surrogates, and it takes up more space, but I find it much more intuitive than having to track surrogates all over the database. Show quoteHide quote "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... > Wow - what an ego..... but we all know that.... > > The trouble is your postings only reflect you as somebody with little real > world experience, class room bound and unable to learn new techniques and > ideals; your dress, ideas and attitude is stuck in the late 70's and because > you don't get industry exposure you are unaware how things have changed, and > my broad experience of enterprise (fortune 500) mainly banks is that they > are mainly 3 - 5 years behind current technology and thinking. > > As for me being a coder (rflol), yes, I do occaisionnally code for clients > but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' and > my clients are from small businesses through to fortune 500.... > > Tony says 'get the job done with surrogate keys' - at least get that right! > I don't want all the consistency, locking and scalability problems you get > when you copy the natural key (http://en.wikipedia.org/wiki/Natural_key) > everywhere as the foreign key (there is no such thing as a relational key - > even wikipedia.org hasn't a reference to it - when are you going to use the > correct terminology so newbies can google.....); if you had done any coding > you would realise it isn't practical to use composite keys inside an > application. > > -- > Tony Rogerson > SQL Server MVP > http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL > Server Consultant > http://sqlserverfaq.com - free video tutorials > > > "--CELKO--" <jcelko***@earthlink.net> wrote in message > news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... > > Perhaps I should change my signature to a list of my books instead of > > the vague "consultant" and "MVP" instead? Perhaps I should add 10 years > > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug > > to me. > > > > Get real! If any of us wished to be "humble", we would use a false > > names and no links. Oh, I use no links and you do! Gee, so doI ! Et > > al ! > > > > Duh! One of the functions of newsgroups is to hook up newbie problems > > with the 30+ year old vets, the smart kids, the aread experts. etc. to > > gert an answer. The BADF news is that the newbie is more often than > > not given a kludge that gets him over his problem ( i.e. "Take more > > Heroin and you will not feel the pain", or "get 'er done" in the word > > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). > > > > Tony, you, me, Steve, and others here are pros who are looking for the > > next job. You are looking for a coding job for a few weeks; Steve > > wants a RAC sale immediately and I want a training class series on a > > Fortuen 500 corporate basis or code review advisor job or "evegantistic > > role" for a good product. The target is dependent on what level or > > niche we aim at. > > > > The newsgroups are a change for us to do "community service" by > > postings. If Tony says "get 'er done with an IDENTITY column!!" and I > > say "Dr. Codd.. blah, blah, so you need to look for Relational keys .. > > blah, blah" , the reader should Google the postings, sources, etc. and > > then decide. > > > > Surely the data change is a problem even for Oracle? What system resources
would Oracle consume giving out the different versions of the rows.... The problem is more in the disconnected model aka browser technoligies, how do you know that 'yournaturalkey' is really still the row that you pulled down (and disconnected from server with)? How do you know that the key hasn't been modified since you last checked? You can't use timestamps because the key you are using might be pointing to a different row..... Consider the html <select> tag, how do you specify composite keys for the value clause? CSV is very clunky..... Far easier and safer to disconnect the 'meta' that is the natural key data by using surrogate keys throughout the application and within the foreign key relationships -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... > On a side note... > > Regarding using composite keys in an application, and the locking and > scalability problems that come with them, would you consider this a > limitation of SQL Server? > > I ask because I have used composite keys in applications extensively with > Oracle. Oracle has a completely different approach to locking and I have > never seen the sorts of problems that I see with SQL Server. Although the > composite keys required more typing for the joins, it also saved time by > not > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > REVIEW_COMMENTS in order to get the review comments for employee 123456. > With surrogate keys, this is what I end up doing, but with natural, > composite keys, I go straight to the review comments table. Granted, I > have > a 4 part key in that table without surrogates, and it takes up more space, > but I find it much more intuitive than having to track surrogates all over > the database. > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... >> Wow - what an ego..... but we all know that.... >> >> The trouble is your postings only reflect you as somebody with little >> real >> world experience, class room bound and unable to learn new techniques and >> ideals; your dress, ideas and attitude is stuck in the late 70's and > because >> you don't get industry exposure you are unaware how things have changed, > and >> my broad experience of enterprise (fortune 500) mainly banks is that they >> are mainly 3 - 5 years behind current technology and thinking. >> >> As for me being a coder (rflol), yes, I do occaisionnally code for >> clients >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' >> and >> my clients are from small businesses through to fortune 500.... >> >> Tony says 'get the job done with surrogate keys' - at least get that > right! >> I don't want all the consistency, locking and scalability problems you >> get >> when you copy the natural key (http://en.wikipedia.org/wiki/Natural_key) >> everywhere as the foreign key (there is no such thing as a relational > key - >> even wikipedia.org hasn't a reference to it - when are you going to use > the >> correct terminology so newbies can google.....); if you had done any > coding >> you would realise it isn't practical to use composite keys inside an >> application. >> >> -- >> Tony Rogerson >> SQL Server MVP >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > SQL >> Server Consultant >> http://sqlserverfaq.com - free video tutorials >> >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... >> > Perhaps I should change my signature to a list of my books instead of >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 years >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug >> > to me. >> > >> > Get real! If any of us wished to be "humble", we would use a false >> > names and no links. Oh, I use no links and you do! Gee, so doI ! Et >> > al ! >> > >> > Duh! One of the functions of newsgroups is to hook up newbie problems >> > with the 30+ year old vets, the smart kids, the aread experts. etc. to >> > gert an answer. The BADF news is that the newbie is more often than >> > not given a kludge that gets him over his problem ( i.e. "Take more >> > Heroin and you will not feel the pain", or "get 'er done" in the word >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). >> > >> > Tony, you, me, Steve, and others here are pros who are looking for the >> > next job. You are looking for a coding job for a few weeks; Steve >> > wants a RAC sale immediately and I want a training class series on a >> > Fortuen 500 corporate basis or code review advisor job or "evegantistic >> > role" for a good product. The target is dependent on what level or >> > niche we aim at. >> > >> > The newsgroups are a change for us to do "community service" by >> > postings. If Tony says "get 'er done with an IDENTITY column!!" and I >> > say "Dr. Codd.. blah, blah, so you need to look for Relational keys .. >> > blah, blah" , the reader should Google the postings, sources, etc. and >> > then decide. >> > >> >> > > > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> Why? The application would pass back the surrogate employee_id 123456 and > REVIEW_COMMENTS in order to get the review comments for employee 123456. you'd only join back out to get the meta data....So, even lookups are quicker.... -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... > On a side note... > > Regarding using composite keys in an application, and the locking and > scalability problems that come with them, would you consider this a > limitation of SQL Server? > > I ask because I have used composite keys in applications extensively with > Oracle. Oracle has a completely different approach to locking and I have > never seen the sorts of problems that I see with SQL Server. Although the > composite keys required more typing for the joins, it also saved time by > not > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > REVIEW_COMMENTS in order to get the review comments for employee 123456. > With surrogate keys, this is what I end up doing, but with natural, > composite keys, I go straight to the review comments table. Granted, I > have > a 4 part key in that table without surrogates, and it takes up more space, > but I find it much more intuitive than having to track surrogates all over > the database. > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... >> Wow - what an ego..... but we all know that.... >> >> The trouble is your postings only reflect you as somebody with little >> real >> world experience, class room bound and unable to learn new techniques and >> ideals; your dress, ideas and attitude is stuck in the late 70's and > because >> you don't get industry exposure you are unaware how things have changed, > and >> my broad experience of enterprise (fortune 500) mainly banks is that they >> are mainly 3 - 5 years behind current technology and thinking. >> >> As for me being a coder (rflol), yes, I do occaisionnally code for >> clients >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' >> and >> my clients are from small businesses through to fortune 500.... >> >> Tony says 'get the job done with surrogate keys' - at least get that > right! >> I don't want all the consistency, locking and scalability problems you >> get >> when you copy the natural key (http://en.wikipedia.org/wiki/Natural_key) >> everywhere as the foreign key (there is no such thing as a relational > key - >> even wikipedia.org hasn't a reference to it - when are you going to use > the >> correct terminology so newbies can google.....); if you had done any > coding >> you would realise it isn't practical to use composite keys inside an >> application. >> >> -- >> Tony Rogerson >> SQL Server MVP >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > SQL >> Server Consultant >> http://sqlserverfaq.com - free video tutorials >> >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... >> > Perhaps I should change my signature to a list of my books instead of >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 years >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug >> > to me. >> > >> > Get real! If any of us wished to be "humble", we would use a false >> > names and no links. Oh, I use no links and you do! Gee, so doI ! Et >> > al ! >> > >> > Duh! One of the functions of newsgroups is to hook up newbie problems >> > with the 30+ year old vets, the smart kids, the aread experts. etc. to >> > gert an answer. The BADF news is that the newbie is more often than >> > not given a kludge that gets him over his problem ( i.e. "Take more >> > Heroin and you will not feel the pain", or "get 'er done" in the word >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). >> > >> > Tony, you, me, Steve, and others here are pros who are looking for the >> > next job. You are looking for a coding job for a few weeks; Steve >> > wants a RAC sale immediately and I want a training class series on a >> > Fortuen 500 corporate basis or code review advisor job or "evegantistic >> > role" for a good product. The target is dependent on what level or >> > niche we aim at. >> > >> > The newsgroups are a change for us to do "community service" by >> > postings. If Tony says "get 'er done with an IDENTITY column!!" and I >> > say "Dr. Codd.. blah, blah, so you need to look for Relational keys .. >> > blah, blah" , the reader should Google the postings, sources, etc. and >> > then decide. >> > >> >> > > Tony,
Actually, I treat employee ID as a natural key, which may be incorrect in itself, but that's a different topic. In this case, with surrogate keys, I would use the employee Id to look up the surrogate keys in the JOBS table, which I would use to look up the surrogate keys in the ANNUAL_REVIEWS table, which I would use to look up the comments for those reviews in the REVIEW_COMMENTS table. With natuaral keys (again, I count employee ID as a natural key) I would simply get all of the rows from REVIEW_COMMENTS with EMPLOYEE_ID as part of it's composite key. Once I had retrieved the rows, the rest of the key (ReviewDate, ReviewSequence if more than one per date, and comment line) would tell me everything I needed to know about that review. As for changing data, if the natural key changes while I am trying to update that row, how will I update the row? This is a good point that you make, but here is another. If the natural key changed, even though the surrogate remains the same, how do I know that I still want to update that row? Surely I selected it based on the data that makes up the natural key, and not on the surrogate key? If the natural key changes, so does the basis of the entity which it represents. Subsequent attempts to update these rows should fail, IMO, and the user should be prompted to reload the data and make the change again. If I am updating an employees record, and correcting his job title in JOBS for a date of 1/1/2001, and someone else corrects that date to be 6/1/2002, I do not want to reupdate the updated record, which was just corrected. Now, if you are speaking about employees having a surrogate of employeeID, or vehicles having a VIN#, this is very different (IMO) than placing an IDENTITY column on every table (which some do recomend). To me, both of those IDs are characteristics of the entity, rather than surrogate keys. Show quoteHide quote "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message (http://en.wikipedia.org/wiki/Natural_key)news:%232%233Dnn1GHA.4452@TK2MSFTNGP02.phx.gbl... > > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > > REVIEW_COMMENTS in order to get the review comments for employee 123456. > > Why? The application would pass back the surrogate employee_id 123456 and > you'd only join back out to get the meta data....So, even lookups are > quicker.... > > -- > Tony Rogerson > SQL Server MVP > http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL > Server Consultant > http://sqlserverfaq.com - free video tutorials > > > "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... > > On a side note... > > > > Regarding using composite keys in an application, and the locking and > > scalability problems that come with them, would you consider this a > > limitation of SQL Server? > > > > I ask because I have used composite keys in applications extensively with > > Oracle. Oracle has a completely different approach to locking and I have > > never seen the sorts of problems that I see with SQL Server. Although the > > composite keys required more typing for the joins, it also saved time by > > not > > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > > REVIEW_COMMENTS in order to get the review comments for employee 123456. > > With surrogate keys, this is what I end up doing, but with natural, > > composite keys, I go straight to the review comments table. Granted, I > > have > > a 4 part key in that table without surrogates, and it takes up more space, > > but I find it much more intuitive than having to track surrogates all over > > the database. > > > > > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... > >> Wow - what an ego..... but we all know that.... > >> > >> The trouble is your postings only reflect you as somebody with little > >> real > >> world experience, class room bound and unable to learn new techniques and > >> ideals; your dress, ideas and attitude is stuck in the late 70's and > > because > >> you don't get industry exposure you are unaware how things have changed, > > and > >> my broad experience of enterprise (fortune 500) mainly banks is that they > >> are mainly 3 - 5 years behind current technology and thinking. > >> > >> As for me being a coder (rflol), yes, I do occaisionnally code for > >> clients > >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' > >> and > >> my clients are from small businesses through to fortune 500.... > >> > >> Tony says 'get the job done with surrogate keys' - at least get that > > right! > >> I don't want all the consistency, locking and scalability problems you > >> get > >> when you copy the natural key Show quoteHide quote > >> everywhere as the foreign key (there is no such thing as a relational > > key - > >> even wikipedia.org hasn't a reference to it - when are you going to use > > the > >> correct terminology so newbies can google.....); if you had done any > > coding > >> you would realise it isn't practical to use composite keys inside an > >> application. > >> > >> -- > >> Tony Rogerson > >> SQL Server MVP > >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > > SQL > >> Server Consultant > >> http://sqlserverfaq.com - free video tutorials > >> > >> > >> "--CELKO--" <jcelko***@earthlink.net> wrote in message > >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... > >> > Perhaps I should change my signature to a list of my books instead of > >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 years > >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like plug > >> > to me. > >> > > >> > Get real! If any of us wished to be "humble", we would use a false > >> > names and no links. Oh, I use no links and you do! Gee, so doI ! Et > >> > al ! > >> > > >> > Duh! One of the functions of newsgroups is to hook up newbie problems > >> > with the 30+ year old vets, the smart kids, the aread experts. etc. to > >> > gert an answer. The BADF news is that the newbie is more often than > >> > not given a kludge that gets him over his problem ( i.e. "Take more > >> > Heroin and you will not feel the pain", or "get 'er done" in the word > >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). > >> > > >> > Tony, you, me, Steve, and others here are pros who are looking for the > >> > next job. You are looking for a coding job for a few weeks; Steve > >> > wants a RAC sale immediately and I want a training class series on a > >> > Fortuen 500 corporate basis or code review advisor job or "evegantistic > >> > role" for a good product. The target is dependent on what level or > >> > niche we aim at. > >> > > >> > The newsgroups are a change for us to do "community service" by > >> > postings. If Tony says "get 'er done with an IDENTITY column!!" and I > >> > say "Dr. Codd.. blah, blah, so you need to look for Relational keys ... > >> > blah, blah" , the reader should Google the postings, sources, etc. and > >> > then decide. > >> > > >> > >> > > > > > > Employee ID is an actual surrogate key! The real 'natural key' to an
employee would surely be something like national insurance number? I'll try and blog about it with some examples, it sounds as though you are using the surrogate approach anyway! > but here is another. If the natural key changed, even though the You can timestamp the rows so on your trip back to the server to change the > surrogate > remains the same, how do I know that I still want to update that row? > Surely I selected it based on the data that makes up the natural key, and row you can check the row hasn't been updated using the timestamps (datetime). From that point on its a business decision as to what happens, most of the time the user will enter another row or try anyway and then enter into a complete user confusion stage.... Without the timestamp, imagine the situation that the natural key got changed to something else but a user entered a new record with the same old natural key, then the user (thinking they are updating the original row) goes and updates - ouch; these problems cannot happen when using the surrogate key approach because you can always pinpoint the 'correct' record and use techniques such as the datetime (last updated) to detect row updates... > Now, if you are speaking about employees having a surrogate of employeeID, This is where celko likes to try and be clever because he just doesn't get > or vehicles having a VIN#, this is very different (IMO) than placing an > IDENTITY column on every table (which some do recomend). To me, both of > those IDs are characteristics of the entity, rather than surrogate keys. the implementation phase. I say all tables should have a surrogate and in a non-distributed database the best way to do that is with IDENTITY, all tables should also (where one exists and lets face it not everything has a 'practical' natural key) be a natural key - you use a primary key constraint on the natural key and a unqiue constraint on the surrogate (IDENTITY). Tony. -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:eAuGt4n1GHA.1292@TK2MSFTNGP03.phx.gbl... > Tony, > Actually, I treat employee ID as a natural key, which may be incorrect in > itself, but that's a different topic. > > In this case, with surrogate keys, I would use the employee Id to look up > the surrogate keys in the JOBS table, which I would use to look up the > surrogate keys in the ANNUAL_REVIEWS table, which I would use to look up > the > comments for those reviews in the REVIEW_COMMENTS table. > > With natuaral keys (again, I count employee ID as a natural key) I would > simply get all of the rows from REVIEW_COMMENTS with EMPLOYEE_ID as part > of > it's composite key. Once I had retrieved the rows, the rest of the key > (ReviewDate, ReviewSequence if more than one per date, and comment line) > would tell me everything I needed to know about that review. > > As for changing data, if the natural key changes while I am trying to > update > that row, how will I update the row? This is a good point that you make, > but here is another. If the natural key changed, even though the > surrogate > remains the same, how do I know that I still want to update that row? > Surely I selected it based on the data that makes up the natural key, and > not on the surrogate key? If the natural key changes, so does the basis > of > the entity which it represents. Subsequent attempts to update these rows > should fail, IMO, and the user should be prompted to reload the data and > make the change again. If I am updating an employees record, and > correcting > his job title in JOBS for a date of 1/1/2001, and someone else corrects > that > date to be 6/1/2002, I do not want to reupdate the updated record, which > was > just corrected. > > Now, if you are speaking about employees having a surrogate of employeeID, > or vehicles having a VIN#, this is very different (IMO) than placing an > IDENTITY column on every table (which some do recomend). To me, both of > those IDs are characteristics of the entity, rather than surrogate keys. > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > news:%232%233Dnn1GHA.4452@TK2MSFTNGP02.phx.gbl... >> > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> >> > REVIEW_COMMENTS in order to get the review comments for employee >> > 123456. >> >> Why? The application would pass back the surrogate employee_id 123456 and >> you'd only join back out to get the meta data....So, even lookups are >> quicker.... >> >> -- >> Tony Rogerson >> SQL Server MVP >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > SQL >> Server Consultant >> http://sqlserverfaq.com - free video tutorials >> >> >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message >> news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... >> > On a side note... >> > >> > Regarding using composite keys in an application, and the locking and >> > scalability problems that come with them, would you consider this a >> > limitation of SQL Server? >> > >> > I ask because I have used composite keys in applications extensively > with >> > Oracle. Oracle has a completely different approach to locking and I > have >> > never seen the sorts of problems that I see with SQL Server. Although > the >> > composite keys required more typing for the joins, it also saved time >> > by >> > not >> > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> >> > REVIEW_COMMENTS in order to get the review comments for employee >> > 123456. >> > With surrogate keys, this is what I end up doing, but with natural, >> > composite keys, I go straight to the review comments table. Granted, I >> > have >> > a 4 part key in that table without surrogates, and it takes up more > space, >> > but I find it much more intuitive than having to track surrogates all > over >> > the database. >> > >> > >> > >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message >> > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... >> >> Wow - what an ego..... but we all know that.... >> >> >> >> The trouble is your postings only reflect you as somebody with little >> >> real >> >> world experience, class room bound and unable to learn new techniques > and >> >> ideals; your dress, ideas and attitude is stuck in the late 70's and >> > because >> >> you don't get industry exposure you are unaware how things have > changed, >> > and >> >> my broad experience of enterprise (fortune 500) mainly banks is that > they >> >> are mainly 3 - 5 years behind current technology and thinking. >> >> >> >> As for me being a coder (rflol), yes, I do occaisionnally code for >> >> clients >> >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' >> >> and >> >> my clients are from small businesses through to fortune 500.... >> >> >> >> Tony says 'get the job done with surrogate keys' - at least get that >> > right! >> >> I don't want all the consistency, locking and scalability problems you >> >> get >> >> when you copy the natural key > (http://en.wikipedia.org/wiki/Natural_key) >> >> everywhere as the foreign key (there is no such thing as a relational >> > key - >> >> even wikipedia.org hasn't a reference to it - when are you going to >> >> use >> > the >> >> correct terminology so newbies can google.....); if you had done any >> > coding >> >> you would realise it isn't practical to use composite keys inside an >> >> application. >> >> >> >> -- >> >> Tony Rogerson >> >> SQL Server MVP >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from > a >> > SQL >> >> Server Consultant >> >> http://sqlserverfaq.com - free video tutorials >> >> >> >> >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message >> >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... >> >> > Perhaps I should change my signature to a list of my books instead >> >> > of >> >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 > years >> >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like > plug >> >> > to me. >> >> > >> >> > Get real! If any of us wished to be "humble", we would use a false >> >> > names and no links. Oh, I use no links and you do! Gee, so doI ! > Et >> >> > al ! >> >> > >> >> > Duh! One of the functions of newsgroups is to hook up newbie > problems >> >> > with the 30+ year old vets, the smart kids, the aread experts. etc. > to >> >> > gert an answer. The BADF news is that the newbie is more often than >> >> > not given a kludge that gets him over his problem ( i.e. "Take >> >> > more >> >> > Heroin and you will not feel the pain", or "get 'er done" in the >> >> > word >> >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). >> >> > >> >> > Tony, you, me, Steve, and others here are pros who are looking for > the >> >> > next job. You are looking for a coding job for a few weeks; Steve >> >> > wants a RAC sale immediately and I want a training class series on a >> >> > Fortuen 500 corporate basis or code review advisor job or > "evegantistic >> >> > role" for a good product. The target is dependent on what level or >> >> > niche we aim at. >> >> > >> >> > The newsgroups are a change for us to do "community service" by >> >> > postings. If Tony says "get 'er done with an IDENTITY column!!" >> >> > and > I >> >> > say "Dr. Codd.. blah, blah, so you need to look for Relational keys > .. >> >> > blah, blah" , the reader should Google the postings, sources, etc. > and >> >> > then decide. >> >> > >> >> >> >> >> > >> > >> >> > > Ahhhh... I think I understand where you are coming from. You keep the
natural key on the table, but supplement it with a surrogate key. This provides a layer of redundancy by which you can verify key changes, and act according to your business needs. In Oracle, you would use ROWID, which is essentially a GUID that uniquely identifies every row (perhaps like a bookmark in a clustered index). You can select a rowid FOR UPDATE to insure no one changes it while you are working with it, or you can simply check the rowid when you go back to the database to see if it was updated. Now IIRC, the rowid will change if the row is updated or deleted, so you can't reference it from day to day, but because it is a GUID you can be certain that if it is still there, then no one touched the row. Instead of IDENTITY Oracle has SEQUENCE, which requires a little extra coding as it is not tied to a table, but rather is an independent object. Show quoteHide quote "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message news:e0fGPAo1GHA.3908@TK2MSFTNGP05.phx.gbl... > Employee ID is an actual surrogate key! The real 'natural key' to an > employee would surely be something like national insurance number? > > I'll try and blog about it with some examples, it sounds as though you are > using the surrogate approach anyway! > > > but here is another. If the natural key changed, even though the > > surrogate > > remains the same, how do I know that I still want to update that row? > > Surely I selected it based on the data that makes up the natural key, and > > You can timestamp the rows so on your trip back to the server to change the > row you can check the row hasn't been updated using the timestamps > (datetime). From that point on its a business decision as to what happens, > most of the time the user will enter another row or try anyway and then > enter into a complete user confusion stage.... > > Without the timestamp, imagine the situation that the natural key got > changed to something else but a user entered a new record with the same old > natural key, then the user (thinking they are updating the original row) > goes and updates - ouch; these problems cannot happen when using the > surrogate key approach because you can always pinpoint the 'correct' record > and use techniques such as the datetime (last updated) to detect row > updates... > > > Now, if you are speaking about employees having a surrogate of employeeID, > > or vehicles having a VIN#, this is very different (IMO) than placing an > > IDENTITY column on every table (which some do recomend). To me, both of > > those IDs are characteristics of the entity, rather than surrogate keys. > > This is where celko likes to try and be clever because he just doesn't get > the implementation phase. > > I say all tables should have a surrogate and in a non-distributed database > the best way to do that is with IDENTITY, all tables should also (where one > exists and lets face it not everything has a 'practical' natural key) be a > natural key - you use a primary key constraint on the natural key and a > unqiue constraint on the surrogate (IDENTITY). > > Tony. > > -- > Tony Rogerson > SQL Server MVP > http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL > Server Consultant > http://sqlserverfaq.com - free video tutorials > > > "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > news:eAuGt4n1GHA.1292@TK2MSFTNGP03.phx.gbl... > > Tony, > > Actually, I treat employee ID as a natural key, which may be incorrect in > > itself, but that's a different topic. > > > > In this case, with surrogate keys, I would use the employee Id to look up > > the surrogate keys in the JOBS table, which I would use to look up the > > surrogate keys in the ANNUAL_REVIEWS table, which I would use to look up > > the > > comments for those reviews in the REVIEW_COMMENTS table. > > > > With natuaral keys (again, I count employee ID as a natural key) I would > > simply get all of the rows from REVIEW_COMMENTS with EMPLOYEE_ID as part > > of > > it's composite key. Once I had retrieved the rows, the rest of the key > > (ReviewDate, ReviewSequence if more than one per date, and comment line) > > would tell me everything I needed to know about that review. > > > > As for changing data, if the natural key changes while I am trying to > > update > > that row, how will I update the row? This is a good point that you make, > > but here is another. If the natural key changed, even though the > > surrogate > > remains the same, how do I know that I still want to update that row? > > Surely I selected it based on the data that makes up the natural key, and > > not on the surrogate key? If the natural key changes, so does the basis > > of > > the entity which it represents. Subsequent attempts to update these rows > > should fail, IMO, and the user should be prompted to reload the data and > > make the change again. If I am updating an employees record, and > > correcting > > his job title in JOBS for a date of 1/1/2001, and someone else corrects > > that > > date to be 6/1/2002, I do not want to reupdate the updated record, which > > was > > just corrected. > > > > Now, if you are speaking about employees having a surrogate of employeeID, > > or vehicles having a VIN#, this is very different (IMO) than placing an > > IDENTITY column on every table (which some do recomend). To me, both of > > those IDs are characteristics of the entity, rather than surrogate keys. > > > > > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > > news:%232%233Dnn1GHA.4452@TK2MSFTNGP02.phx.gbl... > >> > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > >> > REVIEW_COMMENTS in order to get the review comments for employee > >> > 123456. > >> > >> Why? The application would pass back the surrogate employee_id 123456 and > >> you'd only join back out to get the meta data....So, even lookups are > >> quicker.... > >> > >> -- > >> Tony Rogerson > >> SQL Server MVP > >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > > SQL > >> Server Consultant > >> http://sqlserverfaq.com - free video tutorials > >> > >> > >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > >> news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... > >> > On a side note... > >> > > >> > Regarding using composite keys in an application, and the locking and > >> > scalability problems that come with them, would you consider this a > >> > limitation of SQL Server? > >> > > >> > I ask because I have used composite keys in applications extensively > > with > >> > Oracle. Oracle has a completely different approach to locking and I > > have > >> > never seen the sorts of problems that I see with SQL Server. Although > > the > >> > composite keys required more typing for the joins, it also saved time > >> > by > >> > not > >> > making me have to go through EMPLOYEES --> JOBS --> ANNUAL_REVIEWS --> > >> > REVIEW_COMMENTS in order to get the review comments for employee > >> > 123456. > >> > With surrogate keys, this is what I end up doing, but with natural, > >> > composite keys, I go straight to the review comments table. Granted, I > >> > have > >> > a 4 part key in that table without surrogates, and it takes up more > > space, > >> > but I find it much more intuitive than having to track surrogates all > > over > >> > the database. > >> > > >> > > >> > > >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > >> > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... > >> >> Wow - what an ego..... but we all know that.... > >> >> > >> >> The trouble is your postings only reflect you as somebody with little > >> >> real > >> >> world experience, class room bound and unable to learn new techniques > > and > >> >> ideals; your dress, ideas and attitude is stuck in the late 70's and > >> > because > >> >> you don't get industry exposure you are unaware how things have > > changed, > >> > and > >> >> my broad experience of enterprise (fortune 500) mainly banks is that > > they > >> >> are mainly 3 - 5 years behind current technology and thinking. > >> >> > >> >> As for me being a coder (rflol), yes, I do occaisionnally code for > >> >> clients > >> >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', 'reviews' > >> >> and > >> >> my clients are from small businesses through to fortune 500.... > >> >> > >> >> Tony says 'get the job done with surrogate keys' - at least get that > >> > right! > >> >> I don't want all the consistency, locking and scalability problems you > >> >> get > >> >> when you copy the natural key > > (http://en.wikipedia.org/wiki/Natural_key) > >> >> everywhere as the foreign key (there is no such thing as a relational > >> > key - > >> >> even wikipedia.org hasn't a reference to it - when are you going to > >> >> use > >> > the > >> >> correct terminology so newbies can google.....); if you had done any > >> > coding > >> >> you would realise it isn't practical to use composite keys inside an > >> >> application. > >> >> > >> >> -- > >> >> Tony Rogerson > >> >> SQL Server MVP > >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from > > a > >> > SQL > >> >> Server Consultant > >> >> http://sqlserverfaq.com - free video tutorials > >> >> > >> >> > >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message > >> >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... > >> >> > Perhaps I should change my signature to a list of my books instead > >> >> > of > >> >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 > > years > >> >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks like > > plug > >> >> > to me. > >> >> > > >> >> > Get real! If any of us wished to be "humble", we would use a false > >> >> > names and no links. Oh, I use no links and you do! Gee, so doI ! > > Et > >> >> > al ! > >> >> > > >> >> > Duh! One of the functions of newsgroups is to hook up newbie > > problems > >> >> > with the 30+ year old vets, the smart kids, the aread experts. etc. > > to > >> >> > gert an answer. The BADF news is that the newbie is more often than > >> >> > not given a kludge that gets him over his problem ( i.e. "Take > >> >> > more > >> >> > Heroin and you will not feel the pain", or "get 'er done" in the > >> >> > word > >> >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy shows). > >> >> > > >> >> > Tony, you, me, Steve, and others here are pros who are looking for > > the > >> >> > next job. You are looking for a coding job for a few weeks; Steve > >> >> > wants a RAC sale immediately and I want a training class series on a > >> >> > Fortuen 500 corporate basis or code review advisor job or > > "evegantistic > >> >> > role" for a good product. The target is dependent on what level or > >> >> > niche we aim at. > >> >> > > >> >> > The newsgroups are a change for us to do "community service" by > >> >> > postings. If Tony says "get 'er done with an IDENTITY column!!" > >> >> > and > > I > >> >> > say "Dr. Codd.. blah, blah, so you need to look for Relational keys > > .. > >> >> > blah, blah" , the reader should Google the postings, sources, etc. > > and > >> >> > then decide. > >> >> > > >> >> > >> >> > >> > > >> > > >> > >> > > > > > > The arguments over natural vs. surrogate keys is always one that seems to be
very convoluted and improperly presented. One could easily and eloquently argue that a National_ID, or VIN, or SSN, or Tax_ID, etc., are only surrogate keys created by and imported from another system, and are not NATURAL characteristics of the entity. In fact, I posit that attempting to identify individuals using only natural keys would be so unwieldy as to be impractical. Some form of surrogate keys will have to be introduced, or created, in order to efficiently handle the data. I ask, and this is a million dollar question, what combination of characteristics will absolutely, positively identify an individual WITHOUT resorting to the use of a surrogate key? It is interesting to read that Oracle's ROWID is now being brought into the discussion. It seems that in usage, Oracle's ROWID is quite similar to a column set to a TIMESTAMP datatype, which I often find quite useful to determine if a row has been altered. (And don't get me started about the lousy choice of a name for the TIMESTAMP datatype -should have been ROWVERSION.) -- Show quoteHide quoteArnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:O5pWCKo1GHA.968@TK2MSFTNGP03.phx.gbl... > Ahhhh... I think I understand where you are coming from. You keep the > natural key on the table, but supplement it with a surrogate key. This > provides a layer of redundancy by which you can verify key changes, and > act > according to your business needs. > > In Oracle, you would use ROWID, which is essentially a GUID that uniquely > identifies every row (perhaps like a bookmark in a clustered index). You > can select a rowid FOR UPDATE to insure no one changes it while you are > working with it, or you can simply check the rowid when you go back to the > database to see if it was updated. Now IIRC, the rowid will change if the > row is updated or deleted, so you can't reference it from day to day, but > because it is a GUID you can be certain that if it is still there, then no > one touched the row. > > Instead of IDENTITY Oracle has SEQUENCE, which requires a little extra > coding as it is not tied to a table, but rather is an independent object. > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > news:e0fGPAo1GHA.3908@TK2MSFTNGP05.phx.gbl... >> Employee ID is an actual surrogate key! The real 'natural key' to an >> employee would surely be something like national insurance number? >> >> I'll try and blog about it with some examples, it sounds as though you >> are >> using the surrogate approach anyway! >> >> > but here is another. If the natural key changed, even though the >> > surrogate >> > remains the same, how do I know that I still want to update that row? >> > Surely I selected it based on the data that makes up the natural key, > and >> >> You can timestamp the rows so on your trip back to the server to change > the >> row you can check the row hasn't been updated using the timestamps >> (datetime). From that point on its a business decision as to what >> happens, >> most of the time the user will enter another row or try anyway and then >> enter into a complete user confusion stage.... >> >> Without the timestamp, imagine the situation that the natural key got >> changed to something else but a user entered a new record with the same > old >> natural key, then the user (thinking they are updating the original row) >> goes and updates - ouch; these problems cannot happen when using the >> surrogate key approach because you can always pinpoint the 'correct' > record >> and use techniques such as the datetime (last updated) to detect row >> updates... >> >> > Now, if you are speaking about employees having a surrogate of > employeeID, >> > or vehicles having a VIN#, this is very different (IMO) than placing an >> > IDENTITY column on every table (which some do recomend). To me, both >> > of >> > those IDs are characteristics of the entity, rather than surrogate >> > keys. >> >> This is where celko likes to try and be clever because he just doesn't >> get >> the implementation phase. >> >> I say all tables should have a surrogate and in a non-distributed >> database >> the best way to do that is with IDENTITY, all tables should also (where > one >> exists and lets face it not everything has a 'practical' natural key) be >> a >> natural key - you use a primary key constraint on the natural key and a >> unqiue constraint on the surrogate (IDENTITY). >> >> Tony. >> >> -- >> Tony Rogerson >> SQL Server MVP >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > SQL >> Server Consultant >> http://sqlserverfaq.com - free video tutorials >> >> >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message >> news:eAuGt4n1GHA.1292@TK2MSFTNGP03.phx.gbl... >> > Tony, >> > Actually, I treat employee ID as a natural key, which may be incorrect > in >> > itself, but that's a different topic. >> > >> > In this case, with surrogate keys, I would use the employee Id to look > up >> > the surrogate keys in the JOBS table, which I would use to look up the >> > surrogate keys in the ANNUAL_REVIEWS table, which I would use to look >> > up >> > the >> > comments for those reviews in the REVIEW_COMMENTS table. >> > >> > With natuaral keys (again, I count employee ID as a natural key) I > would >> > simply get all of the rows from REVIEW_COMMENTS with EMPLOYEE_ID as >> > part >> > of >> > it's composite key. Once I had retrieved the rows, the rest of the key >> > (ReviewDate, ReviewSequence if more than one per date, and comment >> > line) >> > would tell me everything I needed to know about that review. >> > >> > As for changing data, if the natural key changes while I am trying to >> > update >> > that row, how will I update the row? This is a good point that you > make, >> > but here is another. If the natural key changed, even though the >> > surrogate >> > remains the same, how do I know that I still want to update that row? >> > Surely I selected it based on the data that makes up the natural key, > and >> > not on the surrogate key? If the natural key changes, so does the >> > basis >> > of >> > the entity which it represents. Subsequent attempts to update these > rows >> > should fail, IMO, and the user should be prompted to reload the data >> > and >> > make the change again. If I am updating an employees record, and >> > correcting >> > his job title in JOBS for a date of 1/1/2001, and someone else corrects >> > that >> > date to be 6/1/2002, I do not want to reupdate the updated record, >> > which >> > was >> > just corrected. >> > >> > Now, if you are speaking about employees having a surrogate of > employeeID, >> > or vehicles having a VIN#, this is very different (IMO) than placing an >> > IDENTITY column on every table (which some do recomend). To me, both >> > of >> > those IDs are characteristics of the entity, rather than surrogate >> > keys. >> > >> > >> > >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message >> > news:%232%233Dnn1GHA.4452@TK2MSFTNGP02.phx.gbl... >> >> > making me have to go through EMPLOYEES --> JOBS --> > ANNUAL_REVIEWS --> >> >> > REVIEW_COMMENTS in order to get the review comments for employee >> >> > 123456. >> >> >> >> Why? The application would pass back the surrogate employee_id 123456 > and >> >> you'd only join back out to get the meta data....So, even lookups are >> >> quicker.... >> >> >> >> -- >> >> Tony Rogerson >> >> SQL Server MVP >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from > a >> > SQL >> >> Server Consultant >> >> http://sqlserverfaq.com - free video tutorials >> >> >> >> >> >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message >> >> news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... >> >> > On a side note... >> >> > >> >> > Regarding using composite keys in an application, and the locking >> >> > and >> >> > scalability problems that come with them, would you consider this a >> >> > limitation of SQL Server? >> >> > >> >> > I ask because I have used composite keys in applications extensively >> > with >> >> > Oracle. Oracle has a completely different approach to locking and I >> > have >> >> > never seen the sorts of problems that I see with SQL Server. > Although >> > the >> >> > composite keys required more typing for the joins, it also saved >> >> > time >> >> > by >> >> > not >> >> > making me have to go through EMPLOYEES --> JOBS --> > ANNUAL_REVIEWS --> >> >> > REVIEW_COMMENTS in order to get the review comments for employee >> >> > 123456. >> >> > With surrogate keys, this is what I end up doing, but with natural, >> >> > composite keys, I go straight to the review comments table. >> >> > Granted, > I >> >> > have >> >> > a 4 part key in that table without surrogates, and it takes up more >> > space, >> >> > but I find it much more intuitive than having to track surrogates >> >> > all >> > over >> >> > the database. >> >> > >> >> > >> >> > >> >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message >> >> > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... >> >> >> Wow - what an ego..... but we all know that.... >> >> >> >> >> >> The trouble is your postings only reflect you as somebody with > little >> >> >> real >> >> >> world experience, class room bound and unable to learn new > techniques >> > and >> >> >> ideals; your dress, ideas and attitude is stuck in the late 70's >> >> >> and >> >> > because >> >> >> you don't get industry exposure you are unaware how things have >> > changed, >> >> > and >> >> >> my broad experience of enterprise (fortune 500) mainly banks is >> >> >> that >> > they >> >> >> are mainly 3 - 5 years behind current technology and thinking. >> >> >> >> >> >> As for me being a coder (rflol), yes, I do occaisionnally code for >> >> >> clients >> >> >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', > 'reviews' >> >> >> and >> >> >> my clients are from small businesses through to fortune 500.... >> >> >> >> >> >> Tony says 'get the job done with surrogate keys' - at least get >> >> >> that >> >> > right! >> >> >> I don't want all the consistency, locking and scalability problems > you >> >> >> get >> >> >> when you copy the natural key >> > (http://en.wikipedia.org/wiki/Natural_key) >> >> >> everywhere as the foreign key (there is no such thing as a > relational >> >> > key - >> >> >> even wikipedia.org hasn't a reference to it - when are you going to >> >> >> use >> >> > the >> >> >> correct terminology so newbies can google.....); if you had done >> >> >> any >> >> > coding >> >> >> you would realise it isn't practical to use composite keys inside >> >> >> an >> >> >> application. >> >> >> >> >> >> -- >> >> >> Tony Rogerson >> >> >> SQL Server MVP >> >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary > from >> > a >> >> > SQL >> >> >> Server Consultant >> >> >> http://sqlserverfaq.com - free video tutorials >> >> >> >> >> >> >> >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message >> >> >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... >> >> >> > Perhaps I should change my signature to a list of my books >> >> >> > instead >> >> >> > of >> >> >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 >> > years >> >> >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks >> >> >> > like >> > plug >> >> >> > to me. >> >> >> > >> >> >> > Get real! If any of us wished to be "humble", we would use a > false >> >> >> > names and no links. Oh, I use no links and you do! Gee, so doI >> >> >> > ! >> > Et >> >> >> > al ! >> >> >> > >> >> >> > Duh! One of the functions of newsgroups is to hook up newbie >> > problems >> >> >> > with the 30+ year old vets, the smart kids, the aread experts. > etc. >> > to >> >> >> > gert an answer. The BADF news is that the newbie is more often > than >> >> >> > not given a kludge that gets him over his problem ( i.e. "Take >> >> >> > more >> >> >> > Heroin and you will not feel the pain", or "get 'er done" in the >> >> >> > word >> >> >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy > shows). >> >> >> > >> >> >> > Tony, you, me, Steve, and others here are pros who are looking >> >> >> > for >> > the >> >> >> > next job. You are looking for a coding job for a few weeks; >> >> >> > Steve >> >> >> > wants a RAC sale immediately and I want a training class series >> >> >> > on > a >> >> >> > Fortuen 500 corporate basis or code review advisor job or >> > "evegantistic >> >> >> > role" for a good product. The target is dependent on what level > or >> >> >> > niche we aim at. >> >> >> > >> >> >> > The newsgroups are a change for us to do "community service" by >> >> >> > postings. If Tony says "get 'er done with an IDENTITY column!!" >> >> >> > and >> > I >> >> >> > say "Dr. Codd.. blah, blah, so you need to look for Relational > keys >> > .. >> >> >> > blah, blah" , the reader should Google the postings, sources, >> >> >> > etc. >> > and >> >> >> > then decide. >> >> >> > >> >> >> >> >> >> >> >> > >> >> > >> >> >> >> >> > >> > >> >> > > You are absolutley correct about your first two points. In truth, no
ordinary piece of data will do this, although fingerprints, voice prints, and retina scans can be used (as rediculously impracticle such a thing would be). The Oracle ROWID does much more than timestamp, although I think you can use it for a similar function. It is also the single fastest way to access a row in a table, even faster than using the PK index. Show quoteHide quote "Arnie Rowland" <ar***@1568.com> wrote in message news:%232P2p0o1GHA.1568@TK2MSFTNGP03.phx.gbl... > The arguments over natural vs. surrogate keys is always one that seems to be > very convoluted and improperly presented. > > One could easily and eloquently argue that a National_ID, or VIN, or SSN, or > Tax_ID, etc., are only surrogate keys created by and imported from another > system, and are not NATURAL characteristics of the entity. In fact, I posit > that attempting to identify individuals using only natural keys would be so > unwieldy as to be impractical. Some form of surrogate keys will have to be > introduced, or created, in order to efficiently handle the data. I ask, and > this is a million dollar question, what combination of characteristics will > absolutely, positively identify an individual WITHOUT resorting to the use > of a surrogate key? > > It is interesting to read that Oracle's ROWID is now being brought into the > discussion. It seems that in usage, Oracle's ROWID is quite similar to a > column set to a TIMESTAMP datatype, which I often find quite useful to > determine if a row has been altered. (And don't get me started about the > lousy choice of a name for the TIMESTAMP datatype -should have been > ROWVERSION.) > > -- > Arnie Rowland, Ph.D. > Westwood Consulting, Inc > > Most good judgment comes from experience. > Most experience comes from bad judgment. > - Anonymous > > > "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > news:O5pWCKo1GHA.968@TK2MSFTNGP03.phx.gbl... > > Ahhhh... I think I understand where you are coming from. You keep the > > natural key on the table, but supplement it with a surrogate key. This > > provides a layer of redundancy by which you can verify key changes, and > > act > > according to your business needs. > > > > In Oracle, you would use ROWID, which is essentially a GUID that uniquely > > identifies every row (perhaps like a bookmark in a clustered index). You > > can select a rowid FOR UPDATE to insure no one changes it while you are > > working with it, or you can simply check the rowid when you go back to the > > database to see if it was updated. Now IIRC, the rowid will change if the > > row is updated or deleted, so you can't reference it from day to day, but > > because it is a GUID you can be certain that if it is still there, then no > > one touched the row. > > > > Instead of IDENTITY Oracle has SEQUENCE, which requires a little extra > > coding as it is not tied to a table, but rather is an independent object. > > > > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > > news:e0fGPAo1GHA.3908@TK2MSFTNGP05.phx.gbl... > >> Employee ID is an actual surrogate key! The real 'natural key' to an > >> employee would surely be something like national insurance number? > >> > >> I'll try and blog about it with some examples, it sounds as though you > >> are > >> using the surrogate approach anyway! > >> > >> > but here is another. If the natural key changed, even though the > >> > surrogate > >> > remains the same, how do I know that I still want to update that row? > >> > Surely I selected it based on the data that makes up the natural key, > > and > >> > >> You can timestamp the rows so on your trip back to the server to change > > the > >> row you can check the row hasn't been updated using the timestamps > >> (datetime). From that point on its a business decision as to what > >> happens, > >> most of the time the user will enter another row or try anyway and then > >> enter into a complete user confusion stage.... > >> > >> Without the timestamp, imagine the situation that the natural key got > >> changed to something else but a user entered a new record with the same > > old > >> natural key, then the user (thinking they are updating the original row) > >> goes and updates - ouch; these problems cannot happen when using the > >> surrogate key approach because you can always pinpoint the 'correct' > > record > >> and use techniques such as the datetime (last updated) to detect row > >> updates... > >> > >> > Now, if you are speaking about employees having a surrogate of > > employeeID, > >> > or vehicles having a VIN#, this is very different (IMO) than placing an > >> > IDENTITY column on every table (which some do recomend). To me, both > >> > of > >> > those IDs are characteristics of the entity, rather than surrogate > >> > keys. > >> > >> This is where celko likes to try and be clever because he just doesn't > >> get > >> the implementation phase. > >> > >> I say all tables should have a surrogate and in a non-distributed > >> database > >> the best way to do that is with IDENTITY, all tables should also (where > > one > >> exists and lets face it not everything has a 'practical' natural key) be > >> a > >> natural key - you use a primary key constraint on the natural key and a > >> unqiue constraint on the surrogate (IDENTITY). > >> > >> Tony. > >> > >> -- > >> Tony Rogerson > >> SQL Server MVP > >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a > > SQL > >> Server Consultant > >> http://sqlserverfaq.com - free video tutorials > >> > >> > >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > >> news:eAuGt4n1GHA.1292@TK2MSFTNGP03.phx.gbl... > >> > Tony, > >> > Actually, I treat employee ID as a natural key, which may be incorrect > > in > >> > itself, but that's a different topic. > >> > > >> > In this case, with surrogate keys, I would use the employee Id to look > > up > >> > the surrogate keys in the JOBS table, which I would use to look up the > >> > surrogate keys in the ANNUAL_REVIEWS table, which I would use to look > >> > up > >> > the > >> > comments for those reviews in the REVIEW_COMMENTS table. > >> > > >> > With natuaral keys (again, I count employee ID as a natural key) I > > would > >> > simply get all of the rows from REVIEW_COMMENTS with EMPLOYEE_ID as > >> > part > >> > of > >> > it's composite key. Once I had retrieved the rows, the rest of the key > >> > (ReviewDate, ReviewSequence if more than one per date, and comment > >> > line) > >> > would tell me everything I needed to know about that review. > >> > > >> > As for changing data, if the natural key changes while I am trying to > >> > update > >> > that row, how will I update the row? This is a good point that you > > make, > >> > but here is another. If the natural key changed, even though the > >> > surrogate > >> > remains the same, how do I know that I still want to update that row? > >> > Surely I selected it based on the data that makes up the natural key, > > and > >> > not on the surrogate key? If the natural key changes, so does the > >> > basis > >> > of > >> > the entity which it represents. Subsequent attempts to update these > > rows > >> > should fail, IMO, and the user should be prompted to reload the data > >> > and > >> > make the change again. If I am updating an employees record, and > >> > correcting > >> > his job title in JOBS for a date of 1/1/2001, and someone else corrects > >> > that > >> > date to be 6/1/2002, I do not want to reupdate the updated record, > >> > which > >> > was > >> > just corrected. > >> > > >> > Now, if you are speaking about employees having a surrogate of > > employeeID, > >> > or vehicles having a VIN#, this is very different (IMO) than placing an > >> > IDENTITY column on every table (which some do recomend). To me, both > >> > of > >> > those IDs are characteristics of the entity, rather than surrogate > >> > keys. > >> > > >> > > >> > > >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > >> > news:%232%233Dnn1GHA.4452@TK2MSFTNGP02.phx.gbl... > >> >> > making me have to go through EMPLOYEES --> JOBS --> > > ANNUAL_REVIEWS --> > >> >> > REVIEW_COMMENTS in order to get the review comments for employee > >> >> > 123456. > >> >> > >> >> Why? The application would pass back the surrogate employee_id 123456 > > and > >> >> you'd only join back out to get the meta data....So, even lookups are > >> >> quicker.... > >> >> > >> >> -- > >> >> Tony Rogerson > >> >> SQL Server MVP > >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from > > a > >> > SQL > >> >> Server Consultant > >> >> http://sqlserverfaq.com - free video tutorials > >> >> > >> >> > >> >> "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > >> >> news:%23LIPk8m1GHA.2036@TK2MSFTNGP05.phx.gbl... > >> >> > On a side note... > >> >> > > >> >> > Regarding using composite keys in an application, and the locking > >> >> > and > >> >> > scalability problems that come with them, would you consider this a > >> >> > limitation of SQL Server? > >> >> > > >> >> > I ask because I have used composite keys in applications extensively > >> > with > >> >> > Oracle. Oracle has a completely different approach to locking and I > >> > have > >> >> > never seen the sorts of problems that I see with SQL Server. > > Although > >> > the > >> >> > composite keys required more typing for the joins, it also saved > >> >> > time > >> >> > by > >> >> > not > >> >> > making me have to go through EMPLOYEES --> JOBS --> > > ANNUAL_REVIEWS --> > >> >> > REVIEW_COMMENTS in order to get the review comments for employee > >> >> > 123456. > >> >> > With surrogate keys, this is what I end up doing, but with natural, > >> >> > composite keys, I go straight to the review comments table. > >> >> > Granted, > > I > >> >> > have > >> >> > a 4 part key in that table without surrogates, and it takes up more > >> > space, > >> >> > but I find it much more intuitive than having to track surrogates > >> >> > all > >> > over > >> >> > the database. > >> >> > > >> >> > > >> >> > > >> >> > "Tony Rogerson" <tonyroger***@sqlserverfaq.com> wrote in message > >> >> > news:OLCrqGj1GHA.1132@TK2MSFTNGP02.phx.gbl... > >> >> >> Wow - what an ego..... but we all know that.... > >> >> >> > >> >> >> The trouble is your postings only reflect you as somebody with > > little > >> >> >> real > >> >> >> world experience, class room bound and unable to learn new > > techniques > >> > and > >> >> >> ideals; your dress, ideas and attitude is stuck in the late 70's > >> >> >> and > >> >> > because > >> >> >> you don't get industry exposure you are unaware how things have > >> > changed, > >> >> > and > >> >> >> my broad experience of enterprise (fortune 500) mainly banks is > >> >> >> that > >> > they > >> >> >> are mainly 3 - 5 years behind current technology and thinking. > >> >> >> > >> >> >> As for me being a coder (rflol), yes, I do occaisionnally code for > >> >> >> clients > >> >> >> but 90% of my work is SQL consultancy 'mentoring', 'tuning', > > 'reviews' > >> >> >> and > >> >> >> my clients are from small businesses through to fortune 500.... > >> >> >> > >> >> >> Tony says 'get the job done with surrogate keys' - at least get > >> >> >> that > >> >> > right! > >> >> >> I don't want all the consistency, locking and scalability problems > > you > >> >> >> get > >> >> >> when you copy the natural key > >> > (http://en.wikipedia.org/wiki/Natural_key) > >> >> >> everywhere as the foreign key (there is no such thing as a > > relational > >> >> > key - > >> >> >> even wikipedia.org hasn't a reference to it - when are you going to > >> >> >> use > >> >> > the > >> >> >> correct terminology so newbies can google.....); if you had done > >> >> >> any > >> >> > coding > >> >> >> you would realise it isn't practical to use composite keys inside > >> >> >> an > >> >> >> application. > >> >> >> > >> >> >> -- > >> >> >> Tony Rogerson > >> >> >> SQL Server MVP > >> >> >> http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary > > from > >> > a > >> >> > SQL > >> >> >> Server Consultant > >> >> >> http://sqlserverfaq.com - free video tutorials > >> >> >> > >> >> >> > >> >> >> "--CELKO--" <jcelko***@earthlink.net> wrote in message > >> >> >> news:1158034189.319136.262460@d34g2000cwd.googlegroups.com... > >> >> >> > Perhaps I should change my signature to a list of my books > >> >> >> > instead > >> >> >> > of > >> >> >> > the vague "consultant" and "MVP" instead? Perhaps I should add 10 > >> > years > >> >> >> > on ANSO X3H2 to balance out the "MVP" signature? Sure loooks > >> >> >> > like > >> > plug > >> >> >> > to me. > >> >> >> > > >> >> >> > Get real! If any of us wished to be "humble", we would use a > > false > >> >> >> > names and no links. Oh, I use no links and you do! Gee, so doI > >> >> >> > ! > >> > Et > >> >> >> > al ! > >> >> >> > > >> >> >> > Duh! One of the functions of newsgroups is to hook up newbie > >> > problems > >> >> >> > with the 30+ year old vets, the smart kids, the aread experts. > > etc. > >> > to > >> >> >> > gert an answer. The BADF news is that the newbie is more often > > than > >> >> >> > not given a kludge that gets him over his problem ( i.e. "Take > >> >> >> > more > >> >> >> > Heroin and you will not feel the pain", or "get 'er done" in the > >> >> >> > word > >> >> >> > of 'Larry the Cable Guy' on USA television's Jeff Foxwhorthy > > shows). > >> >> >> > > >> >> >> > Tony, you, me, Steve, and others here are pros who are looking > >> >> >> > for > >> > the > >> >> >> > next job. You are looking for a coding job for a few weeks; > >> >> >> > Steve > >> >> >> > wants a RAC sale immediately and I want a training class series > >> >> >> > on > > a > >> >> >> > Fortuen 500 corporate basis or code review advisor job or > >> > "evegantistic > >> >> >> > role" for a good product. The target is dependent on what level > > or > >> >> >> > niche we aim at. > >> >> >> > > >> >> >> > The newsgroups are a change for us to do "community service" by > >> >> >> > postings. If Tony says "get 'er done with an IDENTITY column!!" > >> >> >> > and > >> > I > >> >> >> > say "Dr. Codd.. blah, blah, so you need to look for Relational > > keys > >> > .. > >> >> >> > blah, blah" , the reader should Google the postings, sources, > >> >> >> > etc. > >> > and > >> >> >> > then decide. > >> >> >> > > >> >> >> > >> >> >> > >> >> > > >> >> > > >> >> > >> >> > >> > > >> > > >> > >> > > > > > > Can the image of a person's fingerprints be encoded as a key? (i.e. less than
900 bytes for SQL Server) ML --- http://milambda.blogspot.com/ I think that if it were possible to do so with 900 bytes, fingerprint
searching/matching would be *so* much faster. Every police car and even beat cop would have fingerprint scanners hooked into their radios... Now 900 bytes PLUS other characteristics... -- Show quoteHide quoteArnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous "ML" <M*@discussions.microsoft.com> wrote in message news:22002E31-3CEB-4D06-A841-26A66925BF64@microsoft.com... > Can the image of a person's fingerprints be encoded as a key? (i.e. less > than > 900 bytes for SQL Server) > > > ML > > --- > http://milambda.blogspot.com/ Just to continue this hypothetical discussion, fingerprints are not
immutable. I don't have fingerprints on two of my fingers (due to an unfortunate high school chemistry prank) Stu ML wrote: Show quoteHide quote > Can the image of a person's fingerprints be encoded as a key? (i.e. less than > 900 bytes for SQL Server) > > > ML > > --- > http://milambda.blogspot.com/ Stu wrote:
> Just to continue this hypothetical discussion, fingerprints are not You have no natural key, does that mean you don't exist? :-)> immutable. I don't have fingerprints on two of my fingers (due to an > unfortunate high school chemistry prank) > Immutable?
According to Greek philosophers, because everything is always changing, you cannot fingerprint one and the same person twice and get the same results. It just makes it very hard to get a security clearance.
Tracy McKibben wrote: Show quoteHide quote > Stu wrote: > > Just to continue this hypothetical discussion, fingerprints are not > > immutable. I don't have fingerprints on two of my fingers (due to an > > unfortunate high school chemistry prank) > > > > You have no natural key, does that mean you don't exist? :-) > > > -- > Tracy McKibben > MCDBA > http://www.realsqlguy.com But would they be nulls, or empty sets?
Show quoteHide quote "ML" <M*@discussions.microsoft.com> wrote in message news:35E29A03-9CDB-455C-A1DD-1FA00A4D24B7@microsoft.com... > 18 + 2 nulls is still pretty good. :) > > > ML > > --- > http://milambda.blogspot.com/ Null or empty... This question is as old as the set theory, isn't it?
ML --- http://milambda.blogspot.com/ ML wrote:
He said fingerprints, not toeprints. You don't understand that fingers are not toes, hands are not feet. lmao.
That's pretty good. Show quoteHide quote "Tracy McKibben" <tr***@realsqlguy.com> wrote in message news:4507039A.7010408@realsqlguy.com... > ML wrote: > > 18 + 2 nulls is still pretty good. :) > > > > > > ML > > > > --- > > http://milambda.blogspot.com/ > > He said fingerprints, not toeprints. You don't understand that fingers > are not toes, hands are not feet. > > > -- > Tracy McKibben > MCDBA > http://www.realsqlguy.com .... and arms are not legs, therefore there is NO discernable relationship
between them all. -- Show quoteHide quoteArnie Rowland, Ph.D. Westwood Consulting, Inc Most good judgment comes from experience. Most experience comes from bad judgment. - Anonymous "Tracy McKibben" <tr***@realsqlguy.com> wrote in message news:4507039A.7010408@realsqlguy.com... > ML wrote: >> 18 + 2 nulls is still pretty good. :) >> >> >> ML >> >> --- >> http://milambda.blogspot.com/ > > He said fingerprints, not toeprints. You don't understand that fingers > are not toes, hands are not feet. > > > -- > Tracy McKibben > MCDBA > http://www.realsqlguy.com unless of course arms and legs are both limbs, and fingers and toes are
child entities of those limbs independent of the type of limb to which their FK refers... Show quoteHide quote "Arnie Rowland" <ar***@1568.com> wrote in message news:%23tx0PIq1GHA.1292@TK2MSFTNGP03.phx.gbl... > ... and arms are not legs, therefore there is NO discernable relationship > between them all. > > -- > Arnie Rowland, Ph.D. > Westwood Consulting, Inc > > Most good judgment comes from experience. > Most experience comes from bad judgment. > - Anonymous > > > "Tracy McKibben" <tr***@realsqlguy.com> wrote in message > news:4507039A.7010408@realsqlguy.com... > > ML wrote: > >> 18 + 2 nulls is still pretty good. :) > >> > >> > >> ML > >> > >> --- > >> http://milambda.blogspot.com/ > > > > He said fingerprints, not toeprints. You don't understand that fingers > > are not toes, hands are not feet. > > > > > > -- > > Tracy McKibben > > MCDBA > > http://www.realsqlguy.com > > Or we can take it all the way to Tetrapod Transitionals ;-)
Denis the SQL Menace http://sqlservercode.blogspot.com/ Jim Underwood wrote: Show quoteHide quote > unless of course arms and legs are both limbs, and fingers and toes are > child entities of those limbs independent of the type of limb to which their > FK refers... > > "Arnie Rowland" <ar***@1568.com> wrote in message > news:%23tx0PIq1GHA.1292@TK2MSFTNGP03.phx.gbl... > > ... and arms are not legs, therefore there is NO discernable relationship > > between them all. > > > > -- > > Arnie Rowland, Ph.D. > > Westwood Consulting, Inc > > > > Most good judgment comes from experience. > > Most experience comes from bad judgment. > > - Anonymous > > > > > > "Tracy McKibben" <tr***@realsqlguy.com> wrote in message > > news:4507039A.7010408@realsqlguy.com... > > > ML wrote: > > >> 18 + 2 nulls is still pretty good. :) > > >> > > >> > > >> ML > > >> > > >> --- > > >> http://milambda.blogspot.com/ > > > > > > He said fingerprints, not toeprints. You don't understand that fingers > > > are not toes, hands are not feet. > > > > > > > > > -- > > > Tracy McKibben > > > MCDBA > > > http://www.realsqlguy.com > > > > The whatsawhosicals?
Show quoteHide quote "SQL Menace" <denis.g***@gmail.com> wrote in message news:1158093138.593236.143080@m73g2000cwd.googlegroups.com... > Or we can take it all the way to Tetrapod Transitionals ;-) > > > Denis the SQL Menace > http://sqlservercode.blogspot.com/ > > > > Jim Underwood wrote: > > unless of course arms and legs are both limbs, and fingers and toes are > > child entities of those limbs independent of the type of limb to which their > > FK refers... > > > > "Arnie Rowland" <ar***@1568.com> wrote in message > > news:%23tx0PIq1GHA.1292@TK2MSFTNGP03.phx.gbl... > > > ... and arms are not legs, therefore there is NO discernable relationship > > > between them all. > > > > > > -- > > > Arnie Rowland, Ph.D. > > > Westwood Consulting, Inc > > > > > > Most good judgment comes from experience. > > > Most experience comes from bad judgment. > > > - Anonymous > > > > > > > > > "Tracy McKibben" <tr***@realsqlguy.com> wrote in message > > > news:4507039A.7010408@realsqlguy.com... > > > > ML wrote: > > > >> 18 + 2 nulls is still pretty good. :) > > > >> > > > >> > > > >> ML > > > >> > > > >> --- > > > >> http://milambda.blogspot.com/ > > > > > > > > He said fingerprints, not toeprints. You don't understand that fingers > > > > are not toes, hands are not feet. > > > > > > > > > > > > -- > > > > Tracy McKibben > > > > MCDBA > > > > http://www.realsqlguy.com > > > > > > > ahhhh... Evolution.
I knew I should have been paying more attention in high school science class. Show quoteHide quote "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:%23xyfntq1GHA.1132@TK2MSFTNGP02.phx.gbl... > The whatsawhosicals? > "SQL Menace" <denis.g***@gmail.com> wrote in message > news:1158093138.593236.143080@m73g2000cwd.googlegroups.com... > > Or we can take it all the way to Tetrapod Transitionals ;-) > > > > > > Denis the SQL Menace > > http://sqlservercode.blogspot.com/ > > > > > > > > Jim Underwood wrote: > > > unless of course arms and legs are both limbs, and fingers and toes are > > > child entities of those limbs independent of the type of limb to which > their > > > FK refers... > > > > > > "Arnie Rowland" <ar***@1568.com> wrote in message > > > news:%23tx0PIq1GHA.1292@TK2MSFTNGP03.phx.gbl... > > > > ... and arms are not legs, therefore there is NO discernable > relationship > > > > between them all. > > > > > > > > -- > > > > Arnie Rowland, Ph.D. > > > > Westwood Consulting, Inc > > > > > > > > Most good judgment comes from experience. > > > > Most experience comes from bad judgment. > > > > - Anonymous > > > > > > > > > > > > "Tracy McKibben" <tr***@realsqlguy.com> wrote in message > > > > news:4507039A.7010408@realsqlguy.com... > > > > > ML wrote: > > > > >> 18 + 2 nulls is still pretty good. :) > > > > >> > > > > >> > > > > >> ML > > > > >> > > > > >> --- > > > > >> http://milambda.blogspot.com/ > > > > > > > > > > He said fingerprints, not toeprints. You don't understand that > fingers > > > > > are not toes, hands are not feet. > > > > > > > > > > > > > > > -- > > > > > Tracy McKibben > > > > > MCDBA > > > > > http://www.realsqlguy.com > > > > > > > > > > > > SQL Menace wrote:
> Or we can take it all the way to Tetrapod Transitionals ;-) Ahh, another entry for my book "Conversations Not To Have In A Bar"> Actually I find scientific, religious, and political discussions far more
interesting after a few drinks. They rank right up there with discussions on "Family Guy" and the "American Pie" movies. Conversations on comic books and video games, however, those I avoid like the plague. There is something uniquely difficult about trying to transition from a discussion with your friends on whether or not batman can beat spiderman, to a discussion with a woman over whether she should give you her name and number, or just mace you. Show quoteHide quote "Tracy McKibben" <tr***@realsqlguy.com> wrote in message news:45071CB6.6090804@realsqlguy.com... > SQL Menace wrote: > > Or we can take it all the way to Tetrapod Transitionals ;-) > > > > Ahh, another entry for my book "Conversations Not To Have In A Bar" > > > > -- > Tracy McKibben > MCDBA > http://www.realsqlguy.com "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message Ah, you drink alone.news:uS%234F1q1GHA.4392@TK2MSFTNGP04.phx.gbl... > Actually I find scientific, religious, and political discussions far more > interesting after a few drinks. They rank right up there with discussions > on "Family Guy" and the "American Pie" movies. Ouch.
I walked into that one. Show quoteHide quote "Steve Dassin" <steve@nospamrac4sql.net> wrote in message news:e63L8kr1GHA.3656@TK2MSFTNGP04.phx.gbl... > "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message > news:uS%234F1q1GHA.4392@TK2MSFTNGP04.phx.gbl... > > Actually I find scientific, religious, and political discussions far more > > interesting after a few drinks. They rank right up there with discussions > > on "Family Guy" and the "American Pie" movies. > > Ah, you drink alone. > > Yes you did.
But if I throw darts I try to target the top dogs -:) Having a little sport is good for the soul. Show quoteHide quote "Jim Underwood" <james.underwoodATfallonclinic.com> wrote in message news:edA7Vaz1GHA.4748@TK2MSFTNGP04.phx.gbl... > Ouch. > I walked into that one. Diet coke, meet monitor. Monitor, meet diet Coke.
That was pretty damn funny. Tracy McKibben wrote: Show quoteHide quote > ML wrote: > > 18 + 2 nulls is still pretty good. :) > > > > > > ML > > > > --- > > http://milambda.blogspot.com/ > > He said fingerprints, not toeprints. You don't understand that fingers > are not toes, hands are not feet. > > > -- > Tracy McKibben > MCDBA > http://www.realsqlguy.com >> Fingers aren't toes, Records aren't rows, But who cares...<< Me! :))Actually I would like to use that on a tee-shirt or the heading of a chapter in my next book ... finger (en) = prst (sl)
toe (en) = prst (sl) Another language-dependent property. :) ML --- http://milambda.blogspot.com/ Well here are my 2 native languages
finger (en) = prst (rucni) (hr) toe (en) = prst (nozni) (hr) finger (en) = vinger (nl) toe (en) = teen (nl) Denis the SQL Menace http://sqlservercode.blogspot.com/ ML wrote: Show quoteHide quote > finger (en) = prst (sl) > toe (en) = prst (sl) > > Another language-dependent property. :) > > > ML > > --- > http://milambda.blogspot.com/ I don't think there is any encryption algorith capable of shrinking finger
print data down to so small a size, at least not at this time. As of 2002 the size of a fingerprint card file was around 10 megs, with the individual finger prints around 500 to 600K. With compression I think they were able to get the images down to about 8 percent their original size. So you could get a single fingerprint around 40 to 50 K. http://www.c3.lanl.gov/~brislawn/FBI/FBI.html Show quoteHide quote "ML" <M*@discussions.microsoft.com> wrote in message news:22002E31-3CEB-4D06-A841-26A66925BF64@microsoft.com... > Can the image of a person's fingerprints be encoded as a key? (i.e. less than > 900 bytes for SQL Server) > > > ML > > --- > http://milambda.blogspot.com/ >> I don't think there is any encryption algorithm capable of shrinking fingerprint data down to so small a size, at least not at this time. << In the US we use the Henry Galt classification system. There areseveral others in use in South America, Eastern and Western Europe. NIST (National Institute for Standards and Technology nee National Bureau of Standards) has a standard for an extended version of the US system. PrintTrac de la Rue and a Japanese company (cannot remember which one!) had scanners that do the work automatically years ago. I have been away from Georgia prisons for a lot of years now, so I am behind on the technology. (Sorry about the staight line, but I used more math there than I did in the DOT's road design section to get stats in a seriously skewed population) The degree of trust issue applies here. A thumb print is "good enough" for an ATM or POS system. But you want to see a full "Ten Card" for criminal identification to get an 8 point match. I looked up some more info on the finger prints, and it seems most of the
systems only store a few hundred bytes specifying certain identifiable details of each print. It is essentially a one way hash algorithm for finger prints. The computer can find likely matches based on this data, but for criminal justice purposes a human has to do the final analysis because the computers just are not there yet. For most security systems this one way hash is probably good enough, since the odds of someone with finger prints that are close enough to yours, trying to use the same access is astronomically low. It is possible, however, and might not be acceptable for the highest security facilities. "--CELKO--" <jcelko***@earthlink.net> wrote in message fingerprint data down to so small a size, at least not at this time. <<news:1158177117.398214.66420@e63g2000cwd.googlegroups.com... > >> I don't think there is any encryption algorithm capable of shrinking Show quoteHide quote > > In the US we use the Henry Galt classification system. There are > several others in use in South America, Eastern and Western Europe. > > NIST (National Institute for Standards and Technology nee National > Bureau of Standards) has a standard for an extended version of the US > system. PrintTrac de la Rue and a Japanese company (cannot remember > which one!) had scanners that do the work automatically years ago. I > have been away from Georgia prisons for a lot of years now, so I am > behind on the technology. (Sorry about the staight line, but I used > more math there than I did in the DOT's road design section to get > stats in a seriously skewed population) > > The degree of trust issue applies here. A thumb print is "good enough" > for an ATM or POS system. But you want to see a full "Ten Card" for > criminal identification to get an 8 point match. > > One could easily and eloquently argue that a National_ID, or VIN, or SSN, or More to the point, in 21st century it is kinda difficult to find a> Tax_ID, etc., are only surrogate keys created by and imported from another > system, and are not NATURAL characteristics of the entity. In fact, I posit > that attempting to identify individuals using only natural keys would be so > unwieldy as to be impractical. Some form of surrogate keys will have to be > introduced, or created, in order to efficiently handle the data. I ask, and > this is a million dollar question, what combination of characteristics will > absolutely, positively identify an individual WITHOUT resorting to the use > of a surrogate key? practitioner still willing to use SS# as a primary key. Exposing confidential information any more than necessary is becoming a major business risk. Lots of shops had to redesign their databases to some extent and replace SS# with surrogate keys. Do you guys still see your SS# on your health insurance card? You have a good point. My SSN is long since removed from my drivers
liscense, employee ID, and insurance cards. Show quoteHide quote "Alexander Kuznetsov" <AK_TIREDOFSPAM@hotmail.COM> wrote in message news:1158082872.602317.221190@i3g2000cwc.googlegroups.com... > > One could easily and eloquently argue that a National_ID, or VIN, or SSN, or > > Tax_ID, etc., are only surrogate keys created by and imported from another > > system, and are not NATURAL characteristics of the entity. In fact, I posit > > that attempting to identify individuals using only natural keys would be so > > unwieldy as to be impractical. Some form of surrogate keys will have to be > > introduced, or created, in order to efficiently handle the data. I ask, and > > this is a million dollar question, what combination of characteristics will > > absolutely, positively identify an individual WITHOUT resorting to the use > > of a surrogate key? > > More to the point, in 21st century it is kinda difficult to find a > practitioner still willing to use SS# as a primary key. Exposing > confidential information any more than necessary is becoming a major > business risk. Lots of shops had to redesign their databases to some > extent and replace SS# with surrogate keys. > Do you guys still see your SS# on your health insurance card? > >> Do you guys still see your SS# on your health insurance card? << As part of a hashing algorithm that generates the particular clientidentifier. I had to use the "open code" SSN slots for a construction timesheet DB because we have so many illegals (i.e. Mexicans) in that trade in the US. Frankly, the most common identifier I am using now is my email address and a password! I do so much stuff on the internet. The advantage is the company can verify my identity directly from it with an email. Likewise, my bank can track weird stuff and warn me ("Mr. Celko, this is your bank. Did you realllllly mean to order $25000 worth of Bulgarian Pronographis comic books from www.419_scams.cz? "). Tony Rogerson wrote:
> I say all tables should have a surrogate and in a non-distributed database Wouldn't you always make the primary key constraint based on the> the best way to do that is with IDENTITY, all tables should also (where one > exists and lets face it not everything has a 'practical' natural key) be a > natural key - you use a primary key constraint on the natural key and a > unqiue constraint on the surrogate (IDENTITY). surrogate key (since it's used as a foreign key to other tables) and place a unique constraint on the natural key? Chris You could do, but I see primary key meaning the natural key and the
surrogate is just there for behind the scenes stuff that the user never sees. -- Show quoteHide quoteTony Rogerson SQL Server MVP http://sqlblogcasts.com/blogs/tonyrogerson - technical commentary from a SQL Server Consultant http://sqlserverfaq.com - free video tutorials "Chris Lim" <blackca***@hotmail.com> wrote in message news:1158100748.418120.169520@p79g2000cwp.googlegroups.com... > Tony Rogerson wrote: >> I say all tables should have a surrogate and in a non-distributed >> database >> the best way to do that is with IDENTITY, all tables should also (where >> one >> exists and lets face it not everything has a 'practical' natural key) be >> a >> natural key - you use a primary key constraint on the natural key and a >> unqiue constraint on the surrogate (IDENTITY). > > Wouldn't you always make the primary key constraint based on the > surrogate key (since it's used as a foreign key to other tables) and > place a unique constraint on the natural key? > > Chris > --CELKO-- <jcelko***@earthlink.net> wrote:
>>> If you are that bothered by it then contact the ISP and have it But what about the identity theft issue? I mean there could be someone else >>> removed. << > > As long as it is public quotes, I cannot do much about it. It is like > Nexis, Google or any other news source. with your name but it's not really likely. And although it might have started as a joke it's unclear where it will head. Kind regards robert >> But what about the identity theft issue? I mean there could be someone else with your name but it's not really likely. And although it might have started as a joke it's unclear where it will head. << They finally put a disclaimer on the site. ow if I could just get himto correct my spelling and grammar .. >> But what about the identity theft issue? I mean there could be someone else with your name but it's not really likely. And although it might have started as a joke it's unclear where it will head. << They finally put a disclaimer on the site. ow if I could just get himto correct my spelling and grammar .. On a legal level you might not have cause for complaint, but ethically I
would take issue with collecting and publishing someone else's work like that, even if it is from public newsgroups. The biggest thing is the owner of the blog seems to be indiscriminately quoting all of your newsgroup posts, without any thought whatsoever. There is actually a lot of great advice on that blog, but it lacks the organization needed to make it truly useful. Some of the quotes were related to extremely interesting discussion threads, which have been unfortunately excluded. If the "author" actually wanted to contribute anything other than a poor attempt to make fun, they would apply some organization to the site and post some of the more interesting discussions. I am a bit disappointed that they used the catch phrase "Rows are not records; fields are not columns; tables are not files!!" without including last week's in depth explanation (or any of your previous explanations) of why it is such an issue. Show quoteHide quote "--CELKO--" <jcelko***@earthlink.net> wrote in message news:1157855268.221004.7520@b28g2000cwb.googlegroups.com... > > PUBLIC NOTICE: > I have no blog. I have never had a blog. I have no idea who is using > my name, postings and likeness on that "SQL Apprentice" blog. >
Trigger logic - this ok
xml file into table "Order By" Parameter to a Stored Procedure 'System.OutOfMemoryException' ? rows to column sql server 2000 Views Vs Stored Procedures! Even after year of coding I ask... Formatting and returning Time from Text Deferred drop Migrate data from Access to SQL 2005 |
|||||||||||||||||||||||