The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+16 votes

Which normal form is considered adequate for normal relational database design?

  1. $2NF$
  2. $5NF$
  3. $4NF$
  4. $3NF$
asked in Databases by Veteran (52k points)
edited by | 1.3k views

4 Answers

+34 votes
Best answer
because we can always have a $3NF$ decomposition which is dependency preserving and lossless (not possible for any higher forms).
answered by Veteran (59.8k points)
edited by
till 3NF both lossless join and dependency preserving hold .for BCNF lossless join hold but dependency preserving not guaranteed.for higher than BCNF even lossless join also not guaranteed along with dependecy preserving
+17 votes
Answer: D
3NF will be adequate for normal relational database design since 3NF tables are free of insertion, update, and deletion anomalies.
answered by Boss (33.8k points)

Rajarshi Sarkar can you please explain - 3NF tables are free of insertion, update, and deletion anomalies.

+12 votes
3 NF cause it ensures both lossless and dependency preserving ..In BCNF DP is not always possible although it is more strict than 3NF..
answered by Active (1.9k points)
0 votes
Ans: D
answered by Loyal (6.9k points)
But why not BCNF, sure 3NF is dependency preserving. BCNF is less redundant compare to 3NF. Size of DB is an concern.
3NF is always lossless and dependency preserving but BCNF is always lossless only. Dependency preserving is not guaranteed in BCNF
Why we want the dependency preserving property in our database ,can anyone explain it ?

iknow that bcnf is less redundant then 3nf that's why i am thinking that bcnf should be optimal choice
@ Shivani gaikawad

The reason we want to preserve dependencies, is that each dependency represents a constraint on the database, and this constraint must be obeyed by the data in the DB. When a relation is decomposed, if some dependency is not preserved, then to check whether the data follows that lost constraint or not, we need to perform a join on the sub-relations to get back the original relation, just so that we can check if the constraint is satisfied.

So if we ensure that dependencies are preserved, then we don't need to perform a join to check constraints.

@SPluto thanks your explanation cleared my doubts


Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
49,540 questions
54,100 answers
71,007 users