| | |
2NF and Multi-candidate Keys
Please support our Database Design advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Jul 2007
Posts: 1
Reputation:
Solved Threads: 0
The 2NF states that all non-key attributes must be fully functionally dependent on the candidate key. I was wondering would the relation be in 2NF if "each" individual candidate key determines all other attributes including other candidate keys not presented on the left-hand side?
What if a dependency only determines "all" the non-keys rather than all the non-keys + other candidate keys? Let's assume we have the following relation: R (PK, CCK1, CCK2, CCK3, CCK4, CCK5, NK1, NK2, NK3). This relation contains three candidate keys: PK (which is the primary key of the relation), {CCK1, CCK2} <-- The second candidate key, and {CCK3, CCK4, CCK5} as the third candidate key.
If there is a dependency that states {CCK1, CCK2} -> {PK, CCK3, CCK4, CCK5, NK1, NK2, NK3}, is this FD in 2NF? How about {CCK1, CCK2} -> {CCK3, CCK4, CCK5, NK1, NK2, NK3}? What about partial dependency of one candidate key unto another candidate key, for instance, {CCK1, CCk2} -> {PK, CCK3, CCK4, NK1, NK2, NK3}? Notice CCK2 is missing from the dependency.
The first example perhaps is indeed in 2NF but what about the latter FD? The reason I am confused is that the definition of 2NF does not indicate any fully functionally dependency on the candidate keys and only talks about non-key attributes.
Any insight would be greatly appreciated.
What if a dependency only determines "all" the non-keys rather than all the non-keys + other candidate keys? Let's assume we have the following relation: R (PK, CCK1, CCK2, CCK3, CCK4, CCK5, NK1, NK2, NK3). This relation contains three candidate keys: PK (which is the primary key of the relation), {CCK1, CCK2} <-- The second candidate key, and {CCK3, CCK4, CCK5} as the third candidate key.
If there is a dependency that states {CCK1, CCK2} -> {PK, CCK3, CCK4, CCK5, NK1, NK2, NK3}, is this FD in 2NF? How about {CCK1, CCK2} -> {CCK3, CCK4, CCK5, NK1, NK2, NK3}? What about partial dependency of one candidate key unto another candidate key, for instance, {CCK1, CCk2} -> {PK, CCK3, CCK4, NK1, NK2, NK3}? Notice CCK2 is missing from the dependency.
The first example perhaps is indeed in 2NF but what about the latter FD? The reason I am confused is that the definition of 2NF does not indicate any fully functionally dependency on the candidate keys and only talks about non-key attributes.
Any insight would be greatly appreciated.
![]() |
Similar Threads
- How to Quickly Lock Your Computer and Use Other Windows Logo Shortcut Keys (Windows tips 'n' tweaks)
- Hashtable accepting multiple keys? (VB.NET)
- Turn On the Sticky Keys Feature (Windows tips 'n' tweaks)
- Tell us about yourself! (Community Introductions)
- Multi-threading with C++.NET (C++)
- Acer laptop keys not working (Troubleshooting Dead Machines)
- Can't get multimedia keys to work on mac keyboard (Apple Hardware)
Other Threads in the Database Design Forum
- Previous Thread: Novice Table Relation Question
- Next Thread: Design Solution
| Thread Tools | Search this Thread |





