![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| ||||
| ||||
|
|
Is there "genuine" disagreement on what 1NF, 2NF and 3NF mean? Or is the variety of contradictory in-print definitions of Normal Forms due to sloppy thinking, slopping writing, or plain old ignorance from authors? Also, where can I find an accurate, concise (less than 3 sentences for each NF), and easy-for-any-IT-person-to-understand, definition of Normal Forms 1 through 3? My understanding of Normal Forms 1 through 3 is as follows. I look forward to being corrected--but hopefully in a polite, constructive, professional manner. I'm leaving out any mention of relations and relvars here, because I don't expect the typical IT person to know what those are (although it can be argued, convincingly I think, that they should): 1NF: * * * * * *1) No multivalued attributes (e.g. every attributein every tuple should be atomic) * * * * * *2) No repeating groups of attributes are allowed (e.g. SKILL_1, SKILL_2, SKILL_n are out) Many common definitions I've read in books on database design miss point #1 completely. Is that because #1 is not part of 1NF, because the authors are "protecting" the reader, or because of author ignorance on what it is for something to be in 1NF? |
|
2NF: * * * * * *1) Must already be in 1NF * * * * * *2) Every non-key attribute must rely exclusively on the key, e.g. no Functional Dependencies. Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? This is my understanding, but it may be dead wrong. If so, I need to know sooner or later. I have seen this point glossed over or missed by various authors, some even using the words "fully dependent" when perhaps they should have used "Functionally Dependent"; meaning they either don't know what a functional dependency is, or they're trying to "protect" the reader (and that may or may not be legit given the context and one's proclivities). |
|
3NF: * * * * 1) Must already be in 2NF * * * * 2) No transitive dependencies. All non-key attributes must rely exclusively on the key. I would like some concise and clear definitions of functional and transitive dependencies, because 2NF and 3NF sound similar to me. |
|
Pet peeve: I dislike the mantra, "the key, the whole key, and nothing but the key" to characterize Normal Forms 1 through 3. What is evidently intended as a helpful mantra seems to give a false sense of understanding. I'm all about some mnemonics, but understanding must preceed the mnemonic, right? Finally, what are some good books out there on database design for neophytes and experienced folks alike that gets the theory correct while not getting mired in what relational databases *could* be. I read a really great book by Fabian Pascal, the title of which escapes me, which I need to go and buy--believe it had the word Practitioner in it. I want to be faithful to relational theory as much as possible while getting work done with products currently on the market. I believe Fabian Pascal stated that theory was immensely important for practice; that it was not about a bunch of curmudgeonly academics bickering about how many angels can stand on the head of a pin. Is he correct? While it's essential that methodologists and theorists are out there visioning what databases can or should be, practitioners have to get projects completed with existing resources. Thanks very much. Dana |
#3
| |||||||
| |||||||
|
|
Is there "genuine" disagreement on what 1NF, 2NF and 3NF mean? Or is the variety of contradictory in-print definitions of Normal Forms due to sloppy thinking, slopping writing, or plain old ignorance from authors? Also, where can I find an accurate, concise (less than 3 sentences for each NF), and easy-for-any-IT-person-to-understand, definition of Normal Forms 1 through 3? |
|
My understanding of Normal Forms 1 through 3 is as follows. I look forward to being corrected--but hopefully in a polite, constructive, professional manner. I'm leaving out any mention of relations and relvars here, because I don't expect the typical IT person to know what those are (although it can be argued, convincingly I think, that they should): 1NF: 1) No multivalued attributes (e.g. every attribute in every tuple should be atomic) 2) No repeating groups of attributes are allowed (e.g. SKILL_1, SKILL_2, SKILL_n are out) Many common definitions I've read in books on database design miss point #1 completely. Is that because #1 is not part of 1NF, because the authors are "protecting" the reader, or because of author ignorance on what it is for something to be in 1NF? |
|
2NF: 1) Must already be in 1NF 2) Every non-key attribute must rely exclusively on the key, e.g. no Functional Dependencies. Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? This is my understanding, but it may be dead wrong. If so, I need to know sooner or later. I have seen this point glossed over or missed by various authors, some even using the words "fully dependent" when perhaps they should have used "Functionally Dependent"; meaning they either don't know what a functional dependency is, or they're trying to "protect" the reader (and that may or may not be legit given the context and one's proclivities). |
|
3NF: 1) Must already be in 2NF 2) No transitive dependencies. All non-key attributes must rely exclusively on the key. I would like some concise and clear definitions of functional and transitive dependencies, because 2NF and 3NF sound similar to me. Pet peeve: Transistive dependencies are real different from non full dependencies. I |
|
I dislike the mantra, "the key, the whole key, and nothing but the key" to characterize Normal Forms 1 through 3. What is evidently intended as a helpful mantra seems to give a false sense of understanding. I'm all about some mnemonics, but understanding must preceed the mnemonic, right? |
|
Finally, what are some good books out there on database design for neophytes and experienced folks alike that gets the theory correct while not getting mired in what relational databases *could* be. I read a really great book by Fabian Pascal, the title of which escapes me, which I need to go and buy--believe it had the word Practitioner in it. I want to be faithful to relational theory as much as possible while getting work done with products currently on the market. I believe Fabian Pascal stated that theory was immensely important for practice; that it was not about a bunch of curmudgeonly academics bickering about how many angels can stand on the head of a pin. Is he correct? While it's essential that methodologists and theorists are out there visioning what databases can or should be, practitioners have to get projects completed with existing resources. |
|
Thanks very much. Dana |
#4
| |||||||||||||
| |||||||||||||
|
|
Is there "genuine" disagreement on what 1NF, 2NF and 3NF mean? Or is the variety of contradictory in-print definitions of Normal Forms due to sloppy thinking, slopping writing, or plain old ignorance from authors? |
|
Also, where can I find an accurate, concise (less than 3 sentences for each NF), and easy-for-any-IT-person-to-understand, definition of Normal Forms 1 through 3? |
|
My understanding of Normal Forms 1 through 3 is as follows. I look forward to being corrected--but hopefully in a polite, constructive, professional manner. I'm leaving out any mention of relations and relvars here, because I don't expect the typical IT person to know what those are (although it can be argued, convincingly I think, that they should): 1NF: 1) No multivalued attributes (e.g. every attribute in every tuple should be atomic) 2) No repeating groups of attributes are allowed (e.g. SKILL_1, SKILL_2, SKILL_n are out) |
|
Many common definitions I've read in books on database design miss point #1 completely. Is that because #1 is not part of 1NF, because the authors are "protecting" the reader, or because of author ignorance on what it is for something to be in 1NF? |
|
2NF: 1) Must already be in 1NF 2) Every non-key attribute must rely exclusively on the key, e.g. no Functional Dependencies. |
|
Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? |
|
This is my understanding, but it may be dead wrong. If so, I need to know sooner or later. I have seen this point glossed over or missed by various authors, some even using the words "fully dependent" when perhaps they should have used "Functionally Dependent" |
|
; meaning they either don't know what a functional dependency is, or they're trying to "protect" the reader (and that may or may not be legit given the context and one's proclivities). |
|
3NF: 1) Must already be in 2NF 2) No transitive dependencies. All non-key attributes must rely exclusively on the key. I would like some concise and clear definitions of functional and transitive dependencies, because 2NF and 3NF sound similar to me. |
|
Pet peeve: I dislike the mantra, "the key, the whole key, and nothing but the key" to characterize Normal Forms 1 through 3. What is evidently intended as a helpful mantra seems to give a false sense of understanding. I'm all about some mnemonics, but understanding must preceed the mnemonic, right? |
|
Finally, what are some good books out there on database design for neophytes and experienced folks alike that gets the theory correct while not getting mired in what relational databases *could* be. I read a really great book by Fabian Pascal, the title of which escapes me, which I need to go and buy--believe it had the word Practitioner in it. |
|
I want to be faithful to relational theory as much as possible while getting work done with products currently on the market. I believe Fabian Pascal stated that theory was immensely important for practice; that it was not about a bunch of curmudgeonly academics bickering about how many angels can stand on the head of a pin. Is he correct? |
|
While it's essential that methodologists and theorists are out there visioning what databases can or should be, practitioners have to get projects completed with existing resources. |
#5
| |||
| |||
|
|
Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? It is the case. |
#6
| |||
| |||
|
|
"Bob Badour" <bbadour (AT) pei (DOT) sympatico.ca> wrote in message news:4a7c6737$0$23786$9a566e8b (AT) news (DOT) aliant.net... Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? It is the case. Here's a relation: Triangles {Id*, Area, SumOfAngles} * = key. The following dependency holds because the sum of the angles of any triangle is a constant: {}->{SumOfAngles} {} (the empty set) is a proper subset of the key {Id} and {}->{SumOfAngles} is a dependency on only part of the key. Triangles is a relation without a composite key and it violates 2NF. I don't see why 2NF shouldn't apply to this case, even though it's unusual and not especially interesting. |
#7
| |||
| |||
|
|
"Bob Badour" <bbadour (AT) pei (DOT) sympatico.ca> wrote in message news:4a7c6737$0$23786$9a566e8b (AT) news (DOT) aliant.net... Here's something I really need clarification on. Is it the case, or is it *not* the case, that 2NF "only applies" in cases where there is a composite key? It is the case. Here's a relation: Triangles {Id*, Area, SumOfAngles} * = key. The following dependency holds because the sum of the angles of any triangle is a constant: {}->{SumOfAngles} {} (the empty set) is a proper subset of the key {Id} and {}->{SumOfAngles} is a dependency on only part of the key. Triangles is a relation without a composite key and it violates 2NF. I don't see why 2NF shouldn't apply to this case, even though it's unusual and not especially interesting. |
#8
| |||
| |||
|
|
David Portas wrote: ....; For convenience, I might choose to ignore the fact that state determines zipcode (or does it? - |
#9
| |||
| |||
|
|
I guess this example is not applicable to trapezoids. |
#10
| |||
| |||
|
|
On Aug 8, 8:48 am, paul c <toledobythe... (AT) oohay (DOT) ac> wrote: I guess this example is not applicable to trapezoids. Every trapezoid is a quadrilateral. The internal angles of a quadrilateral always sum to 360 degrees. |
![]() |
| Thread Tools | |
| Display Modes | |
| |