Boyce-codd normal form (bcnf), Database Management System

Assignment Help:

Boyce-Codd Normal Form (BCNF)

The relation NEWSTUDENT (Enrolmentno, Sno, Sname, Cname, Cno,) has every attributes participating in candidate keys as all the attributes are assumed to be unique. We thus had the following candidate keys.

(Enrolmentno, Cno)

(Enrolmentno, Cname)

(Sname, Cno)

(Sname, Cname)

As the relation has no non-key attributes, the relation is in 2NF and as well in 3NF. Though, the relation suffers from the anomalies (please check it yourself by making the relational instance of the NEWSTUDENT relation).

The complexity in this relation is being caused by dependence within the candidate keys.

Definition: A relation is in BCNF, if it is in 3NF and if each determinant is a candidate key.

  • A determinant is the left side of an FD
  • Most relations that are in 3NF are also in BCNF. A 3NF relation is not in

BCNF if all the following conditions apply.

(a)     The candidate keys in the relation are composite keys.

(b)     There is more than one overlapping candidate keys in the relation and a number of attributes in the keys are overlapping and some are not overlapping.

(c)      There is a FD from the non-overlapping attribute(s) of single candidate key to non-overlapping attribute(s) of other candidate key.

Let us recall the NEWSTUDENT relation:

NEWSTUDENT (Enrolmentno, Sname, Sno,  Cno, Cname) Set of FDs:

Enrolmentno     →           Sname              (1)

Sname  →                       Enrolmentno     (2)

Cno       →                      Cname              (3)

Cname  →                      Cno                   (4)

The relation even though in 3NF, but is not in BCNF and can be decomposed on any one of the FDs in (1) & (2); and any one of the FDs in (3) & (4) as:

STUD1 (Enrolmentno, Sname) COUR1 (Cno, Cname)

The third relation that will join the two relation will be:

ST_CO(Enrolmentno, Cno)

Since this is a slightly complex form, let us give one more example, for BCNF. Consider for example, the relation:

ENROL(Enrolmentno, Sname, Cno, Cname, Dateenrolled)

Let us suppose that the relation has the following candidate keys:

(Enrolmentno, Cno)

(Enrolmentno, Cname)

(Sname, Cno)

(Sname, Cname)

(We have supposed Cname and Sname are unique identifiers).

The relation has the following set of dependencies:

Enrolmentno     →    Sname

Sname             →     Enrolmentno

Cno                  →     Cname

Cname             →     Cno

Enrolmentno, Cno     →  Dateenrolled

The relation is in 3NF but not in BCNF as there are dependencies. The relation suffers from all anomalies. Please draw the relational instance and checks these troubles. The BCNF decomposition of the relation would be:

STUD1 (Enrolment no, Sname)

COU1 (Cno, Cname)

ENROL1 (Enrolmentno, Cno, Dateenrolled)

We now have a relation that only has information about students, another only about subjects and the third only about relationship enrolls.


Related Discussions:- Boyce-codd normal form (bcnf)

How many types of views are there, How many types of Views are there? ...

How many types of Views are there? There are Four types of views:- Database View Help View Projection View Maintenance View

Explain about sql server 2000, What is the difference between SQL Server 2...

What is the difference between SQL Server 2000 complete and differential backups? A complete backup makes a copy of the whole database. A differential backup creates a copy of

Deadlock prevention, Deadlock Prevention One of the easiest approaches ...

Deadlock Prevention One of the easiest approaches for avoiding a deadlock would be to obtain all the locks at the begin of the transaction. Though, this approach restricts conc

Explain the attribute inheritance, Explain the Attribute inheritance An...

Explain the Attribute inheritance Ans: Throughout the rendering of the objects in a view, attribute sets of objects higher in the view hierarchy are inherited via objects below

What is the use of group by clause, What is the use of group by clause?  ...

What is the use of group by clause?  Group  by  clause  is  used to apply  aggregate  functions  to a  set  of  tuples. The attributes given in the group by clause are used to

ERD, online eductional management system ke diagram

online eductional management system ke diagram

Prepare a site map and submit it in bing and google, Project Description: ...

Project Description: I am updating my Javascript + HTML website with five domains for the same website I would like to know if I want to create site map and submit it in all the

Explain discretionary access control, Problem: (a) Given the following ...

Problem: (a) Given the following relation: Stats(Name,Sex,Children, Occupation, Salary, Tax, Audits) Write SQL code to define the following security constraints: (i) User

Relational algebraic operators, Problem Explain at least five relationa...

Problem Explain at least five relational algebraic operators with a suitable example. Note: All the above descriptions should be done by taking at least two examples from ou

Creating views with read only option-data control, Creating views with Read...

Creating views with Read only option : In the view definition this option is used to make sure that no DML operations can be done on the view.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd