![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
My beginner's book on RDBMS theory by Louis Davidson (APress) says that there's a trend towards using GUIDs (artificial keys) as computing power increases. This makes sense, though I do appreciate the point made by a poster here that if you use compound keys you have "built in" protection against accidentally inserting the same data by mistake, rather than having to programmically guard against this. Just point out what the textbook says, not trying to start any flame wars... hahaha. Another thing: has it occurred to anybody (and sorry if this idea is old) that the Codd RDBMS scheme of PK/FK/Constraints is a way of avoiding pointers and saving memory? If you have infinite memory, infinite computing power, and pointers, just link everything to everything, and then you can ask a query like "where does the group of people who met last July 3, 2007 in a room ABC to listen to a presentor lecture on the US Constitution for a course called Constitutional History 101 next meet?" The program will figure it out, using a probability analysis, since if there were 100 people, including the professor, who got married and changed her name on July 4th, and everybody is linked to everybody else, you can see where the next lecture is for 99 out of 100 people, and tell them. The one person (the teacher) who changed their name, well there's enough 'redundancy' in the system (the exact opposite of the Codd model) so that she'll get an update for the next meeting place anyway, since she's no doubt linked with the other 99 people in some way or another-- not by name, but by the fact that on July 3rd she was in a building X with 99 other people at the same time of day, so ergo she must be the teacher (by process of elimination), even if she now has a new name. What happens if she doesn't check her old or new email is another matter however, but that's not the database's problem, that's called "human error". Using the traditional Codd model you also can say that if every attribute to the entity table(s) "StudentTeacherCourse" et al. are 3NF and beyond complete, then you also solve this problem, but it takes a lot of work to construct this table(s)--isn't it better to throw everything in a bin, link it to everything else, and let an inference engine sort out the probabitlies? Methinks so, at least someday in the future (AI). RL The short answer is NO! |
#3
| |||
| |||
|
|
My beginner's book on RDBMS theory by Louis Davidson (APress) says that there's a trend towards using GUIDs (artificial keys) as computing power increases. This makes sense, though I do appreciate the point made by a poster here that if you use compound keys you have "built in" protection against accidentally inserting the same data by mistake, rather than having to programmically guard against this. Just point out what the textbook says, not trying to start any flame wars... hahaha. |
|
Another thing: has it occurred to anybody (and sorry if this idea is old) that the Codd RDBMS scheme of PK/FK/Constraints is a way of avoiding pointers and saving memory? |
#4
| |||||
| |||||
|
|
My beginner's book on RDBMS theory by Louis Davidson (APress) says that there's a trend towards using GUIDs (artificial keys) as computing power increases. |
|
This makes sense, |
|
though I do appreciate the point made by a poster here that if you use compound keys you have "built in" protection against accidentally inserting the same data by mistake, rather than having to programmically guard against this. |
|
Just point out what the textbook says, not trying to start any flame wars... hahaha. |
|
Another thing: has it occurred to anybody (and sorry if this idea is old) that the Codd RDBMS scheme of PK/FK/Constraints is a way of avoiding pointers and saving memory? If you have infinite memory, infinite computing power, and pointers, just link everything to everything, and then you can ask a query like "where does the group of people who met last July 3, 2007 in a room ABC to listen to a presentor lecture on the US Constitution for a course called Constitutional History 101 next meet?" |
#5
| |||
| |||
|
|
My beginner's book on RDBMS theory by Louis Davidson (APress) says that there's a trend towards using GUIDs (artificial keys) as computing power increases. |
#6
| ||||
| ||||
|
|
My beginner's book on RDBMS theory by Louis Davidson (APress) says that there's a trend towards using GUIDs (artificial keys) as computing power increases. |
|
This makes sense, though I do appreciate the point made by a poster here that if you use compound keys you have "built in" protection against accidentally inserting the same data by mistake, rather than having to programmically guard against this. Just point out what the textbook says, not trying to start any flame wars... hahaha. Another thing: has it occurred to anybody (and sorry if this idea is old) that the Codd RDBMS scheme of PK/FK/Constraints is a way of avoiding pointers and saving memory? If you have infinite memory, infinite computing power, and pointers, just link everything to everything, and then you can ask a query like "where does the group of people who met last July 3, 2007 in a room ABC to listen to a presentor lecture on the US Constitution for a course called Constitutional History 101 next meet?" The program will figure it out, using a probability analysis, since if there were 100 people, including the professor, who got married and changed her name on July 4th, and everybody is linked to everybody else, you can see where the next lecture is for 99 out of 100 people, and tell them. The one person (the teacher) who changed their name, well there's enough 'redundancy' in the system (the exact opposite of the Codd model) so that she'll get an update for the next meeting place anyway, since she's no doubt linked with the other 99 people in some way or another-- not by name, but by the fact that on July 3rd she was in a building X with 99 other people at the same time of day, so ergo she must be the teacher (by process of elimination), even if she now has a new name. What happens if she doesn't check her old or new email is another matter however, but that's not the database's problem, that's called "human error". |
|
Using the traditional Codd model you also can say that if every attribute to the entity table(s) "StudentTeacherCourse" et al. are 3NF and beyond complete, then you also solve this problem, but it takes a lot of work to construct this table(s)--isn't it better to throw everything in a bin, link it to everything else, and let an inference engine sort out the probabitlies? Methinks so, at least someday in the future (AI). |
|
RL |
#7
| |||
| |||
|
|
If this is the book I think it is (Pro SQL Server 2005 yadda yadda), then please do me -or rather yourself- a favor and stop trying to learn database theory from it. There are a lot of things that Louis and I agree on, but database theory is definitely not among them. Parts of his book are useful, the art is figuring out which parts. Best, Hugo |
#8
| |||
| |||
|
|
On Dec 15, 2:30 pm, Hugo Kornelis h... (AT) perFact (DOT) REMOVETHIS.info.INVALID> wrote: If this is the book I think it is (Pro SQL Server 2005 yadda yadda), then please do me -or rather yourself- a favor and stop trying to learn database theory from it. There are a lot of things that Louis and I agree on, but database theory is definitely not among them. Parts of his book are useful, the art is figuring out which parts. Best, Hugo Hugo are you famous? "Louis and I"? I should start hanging out here more often! In defense of Louis Davidson, his book is OK for beginners IMO (from what I've seen on the net) in that he uses similar examples to what I've seen elsewhere. If anything, the book is too plodding for me. Specifically on artificial keys, on p. 151 Davidson says (ironically or perhaps intentionally when discussing Boyce-Codd Normal Forms, where all attributes are fully dependent on a key): |
|
"Depending on the choice of primary key this [this choice, of using a key for BCNF] can be a great distinction. There's a massive movement [note!-RL] towards using meaningless surrogate keys (of which I'm a big fan). [that's the author talking--RL] If you don't deal with the case of more than one key, it's easy to forget that the important keys are the natural keys of the entity, and normalization should take them into consideration. Too often when answering newsgroup posts [this means us; in other parts of the book Louis says he sometimes posts in Usenet groups, perhaps or in particular even this one--RL], the problem of poor key choices for a table has to be solved before solving the problem at hand". So, from this passage, I think the author does a good job disclaiming the slavish use of GUIDs without understanding their drawbacks, even after the author said he's a "big fan" of such GUIDs. RL |
#9
| |||
| |||
|
|
Mark Twain is quoted as saying, "it isn't what we don't know that gives us trouble; it's what we know that ain't so". |
#10
| |||
| |||
|
|
"David Cressey" <cressey73 (AT) verizon (DOT) net> wrote in message news:TN89j.705$7I.145 (AT) trndny09 (DOT) .. Mark Twain is quoted as saying, "it isn't what we don't know that gives us trouble; it's what we know that ain't so". A very excellent saying to be sure, but I think it is actually attributed to Charles Browne, writing under the pseudonym Artemus Ward. |
|
Roy |
![]() |
| Thread Tools | |
| Display Modes | |
| |