•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Database Design section within the Web Development category of DaniWeb, a massive community of 427,779 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,772 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Database Design advertiser: Programming Forums
Views: 1081 | Replies: 0
![]() |
| |
•
•
Join Date: Jul 2007
Posts: 1
Reputation:
Rep Power: 0
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.
![]() |
•
•
•
•
•
•
•
•
DaniWeb Database Design Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
- 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: How to convince my boss that normalisation is best
- Next Thread: Design Solution


Hybrid Mode